Diff of the two buildlogs: -- --- b1/build.log 2023-04-29 17:14:07.195754885 +0000 +++ b2/build.log 2023-04-29 19:28:05.898896702 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Sat Apr 29 03:56:31 -12 2023 -I: pbuilder-time-stamp: 1682783791 +I: Current time: Sun Apr 30 07:18:58 +14 2023 +I: pbuilder-time-stamp: 1682788738 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/bullseye-reproducible-base.tgz] I: copying local configuration @@ -17,8 +17,8 @@ I: copying [./git_2.30.2-1+deb11u2.debian.tar.xz] I: Extracting source gpgv: unknown type of key resource 'trustedkeys.kbx' -gpgv: keyblock resource '/tmp/dpkg-verify-sig.EzkTqgti/trustedkeys.kbx': General error -gpgv: Signature made Tue Feb 21 22:02:50 2023 -12 +gpgv: keyblock resource '/tmp/dpkg-verify-sig.HqE4PS9O/trustedkeys.kbx': General error +gpgv: Signature made Thu Feb 23 00:02:50 2023 +14 gpgv: using RSA key 861CFE698425FC1A7839303B3B52CA2A0AAFD954 gpgv: Can't check signature: No public key dpkg-source: warning: failed to verify signature on ./git_2.30.2-1+deb11u2.dsc @@ -38,135 +38,166 @@ dpkg-source: info: applying CVE-2023-23946.patch I: using fakeroot in build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/2970/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/28469/tmp/hooks/D01_modify_environment starting +debug: Running on virt32b. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 Apr 30 07:20 /bin/sh -> /bin/bash +I: Setting pbuilder2's login shell to /bin/bash +I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other +I: user script /srv/workspace/pbuilder/28469/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/28469/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='armhf' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all,-fixfilepath parallel=3' - DISTRIBUTION='bullseye' - HOME='/root' - HOST_ARCH='armhf' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="1" [2]="4" [3]="1" [4]="release" [5]="arm-unknown-linux-gnueabihf") + BASH_VERSION='5.1.4(1)-release' + BUILDDIR=/build + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=armhf + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all,-fixfilepath parallel=4' + DIRSTACK=() + DISTRIBUTION=bullseye + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=arm + HOST_ARCH=armhf IFS=' ' - INVOCATION_ID='32a2c2f1b9d74131b67acc8e97be38d3' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - MAIL='/var/mail/root' - OPTIND='1' - PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' - PBCURRENTCOMMANDLINEOPERATION='build' - PBUILDER_OPERATION='build' - PBUILDER_PKGDATADIR='/usr/share/pbuilder' - PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' - PBUILDER_SYSCONFDIR='/etc' - PPID='2970' - PS1='# ' - PS2='> ' + INVOCATION_ID=fc7f673676bf47609dbec5bd999694e3 + LANG=C + LANGUAGE=it_CH:it + LC_ALL=C + MACHTYPE=arm-unknown-linux-gnueabihf + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnueabihf + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=28469 PS4='+ ' - PWD='/' - SHELL='/bin/bash' - SHLVL='2' - SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.f0hwki9n/pbuilderrc_GsVd --distribution bullseye --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bullseye-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.f0hwki9n/b1 --logfile b1/build.log git_2.30.2-1+deb11u2.dsc' - SUDO_GID='113' - SUDO_UID='107' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://10.0.0.15:3142/' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.f0hwki9n/pbuilderrc_ixuC --distribution bullseye --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bullseye-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.f0hwki9n/b2 --logfile b2/build.log git_2.30.2-1+deb11u2.dsc' + SUDO_GID=112 + SUDO_UID=106 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://10.0.0.15:3142/ I: uname -a - Linux virt64b 5.10.0-21-arm64 #1 SMP Debian 5.10.162-1 (2023-01-21) aarch64 GNU/Linux + Linux i-capture-the-hostname 5.10.0-21-armmp-lpae #1 SMP Debian 5.10.162-1 (2023-01-21) armv7l GNU/Linux I: ls -l /bin total 3580 - -rwxr-xr-x 1 root root 816764 Mar 27 2022 bash - -rwxr-xr-x 3 root root 26052 Jul 20 2020 bunzip2 - -rwxr-xr-x 3 root root 26052 Jul 20 2020 bzcat - lrwxrwxrwx 1 root root 6 Jul 20 2020 bzcmp -> bzdiff - -rwxr-xr-x 1 root root 2225 Jul 20 2020 bzdiff - lrwxrwxrwx 1 root root 6 Jul 20 2020 bzegrep -> bzgrep - -rwxr-xr-x 1 root root 4877 Sep 4 2019 bzexe - lrwxrwxrwx 1 root root 6 Jul 20 2020 bzfgrep -> bzgrep - -rwxr-xr-x 1 root root 3775 Jul 20 2020 bzgrep - -rwxr-xr-x 3 root root 26052 Jul 20 2020 bzip2 - -rwxr-xr-x 1 root root 9636 Jul 20 2020 bzip2recover - lrwxrwxrwx 1 root root 6 Jul 20 2020 bzless -> bzmore - -rwxr-xr-x 1 root root 1297 Jul 20 2020 bzmore - -rwxr-xr-x 1 root root 26668 Sep 22 2020 cat - -rwxr-xr-x 1 root root 43104 Sep 22 2020 chgrp - -rwxr-xr-x 1 root root 38984 Sep 22 2020 chmod - -rwxr-xr-x 1 root root 43112 Sep 22 2020 chown - -rwxr-xr-x 1 root root 92616 Sep 22 2020 cp - -rwxr-xr-x 1 root root 75524 Dec 10 2020 dash - -rwxr-xr-x 1 root root 75880 Sep 22 2020 date - -rwxr-xr-x 1 root root 55436 Sep 22 2020 dd - -rwxr-xr-x 1 root root 59912 Sep 22 2020 df - -rwxr-xr-x 1 root root 96764 Sep 22 2020 dir - -rwxr-xr-x 1 root root 55012 Jan 20 2022 dmesg - lrwxrwxrwx 1 root root 8 Nov 6 2019 dnsdomainname -> hostname - lrwxrwxrwx 1 root root 8 Nov 6 2019 domainname -> hostname - -rwxr-xr-x 1 root root 22508 Sep 22 2020 echo - -rwxr-xr-x 1 root root 28 Jan 24 20:23 egrep - -rwxr-xr-x 1 root root 22496 Sep 22 2020 false - -rwxr-xr-x 1 root root 28 Jan 24 20:23 fgrep - -rwxr-xr-x 1 root root 47492 Jan 20 2022 findmnt - -rwsr-xr-x 1 root root 26076 Feb 26 2021 fusermount - -rwxr-xr-x 1 root root 124508 Jan 24 20:23 grep - -rwxr-xr-x 2 root root 2346 Apr 9 2022 gunzip - -rwxr-xr-x 1 root root 6447 Apr 9 2022 gzexe - -rwxr-xr-x 1 root root 64212 Apr 9 2022 gzip - -rwxr-xr-x 1 root root 13784 Nov 6 2019 hostname - -rwxr-xr-x 1 root root 43180 Sep 22 2020 ln - -rwxr-xr-x 1 root root 35068 Feb 7 2020 login - -rwxr-xr-x 1 root root 96764 Sep 22 2020 ls - -rwxr-xr-x 1 root root 99940 Jan 20 2022 lsblk - -rwxr-xr-x 1 root root 51408 Sep 22 2020 mkdir - -rwxr-xr-x 1 root root 43184 Sep 22 2020 mknod - -rwxr-xr-x 1 root root 30780 Sep 22 2020 mktemp - -rwxr-xr-x 1 root root 34408 Jan 20 2022 more - -rwsr-xr-x 1 root root 34400 Jan 20 2022 mount - -rwxr-xr-x 1 root root 9824 Jan 20 2022 mountpoint - -rwxr-xr-x 1 root root 88524 Sep 22 2020 mv - lrwxrwxrwx 1 root root 8 Nov 6 2019 nisdomainname -> hostname - lrwxrwxrwx 1 root root 14 Dec 16 2021 pidof -> /sbin/killall5 - -rwxr-xr-x 1 root root 26652 Sep 22 2020 pwd - lrwxrwxrwx 1 root root 4 Mar 27 2022 rbash -> bash - -rwxr-xr-x 1 root root 30740 Sep 22 2020 readlink - -rwxr-xr-x 1 root root 43104 Sep 22 2020 rm - -rwxr-xr-x 1 root root 30732 Sep 22 2020 rmdir - -rwxr-xr-x 1 root root 14144 Sep 27 2020 run-parts - -rwxr-xr-x 1 root root 76012 Dec 22 2018 sed - lrwxrwxrwx 1 root root 4 Apr 20 21:39 sh -> dash - -rwxr-xr-x 1 root root 22532 Sep 22 2020 sleep - -rwxr-xr-x 1 root root 55360 Sep 22 2020 stty - -rwsr-xr-x 1 root root 46704 Jan 20 2022 su - -rwxr-xr-x 1 root root 22532 Sep 22 2020 sync - -rwxr-xr-x 1 root root 340872 Feb 16 2021 tar - -rwxr-xr-x 1 root root 9808 Sep 27 2020 tempfile - -rwxr-xr-x 1 root root 67696 Sep 22 2020 touch - -rwxr-xr-x 1 root root 22496 Sep 22 2020 true - -rwxr-xr-x 1 root root 9636 Feb 26 2021 ulockmgr_server - -rwsr-xr-x 1 root root 22108 Jan 20 2022 umount - -rwxr-xr-x 1 root root 22520 Sep 22 2020 uname - -rwxr-xr-x 2 root root 2346 Apr 9 2022 uncompress - -rwxr-xr-x 1 root root 96764 Sep 22 2020 vdir - -rwxr-xr-x 1 root root 38512 Jan 20 2022 wdctl - lrwxrwxrwx 1 root root 8 Nov 6 2019 ypdomainname -> hostname - -rwxr-xr-x 1 root root 1984 Apr 9 2022 zcat - -rwxr-xr-x 1 root root 1678 Apr 9 2022 zcmp - -rwxr-xr-x 1 root root 5898 Apr 9 2022 zdiff - -rwxr-xr-x 1 root root 29 Apr 9 2022 zegrep - -rwxr-xr-x 1 root root 29 Apr 9 2022 zfgrep - -rwxr-xr-x 1 root root 2081 Apr 9 2022 zforce - -rwxr-xr-x 1 root root 8049 Apr 9 2022 zgrep - -rwxr-xr-x 1 root root 2206 Apr 9 2022 zless - -rwxr-xr-x 1 root root 1842 Apr 9 2022 zmore - -rwxr-xr-x 1 root root 4577 Apr 9 2022 znew -I: user script /srv/workspace/pbuilder/2970/tmp/hooks/D02_print_environment finished + -rwxr-xr-x 1 root root 816764 Mar 28 2022 bash + -rwxr-xr-x 3 root root 26052 Jul 21 2020 bunzip2 + -rwxr-xr-x 3 root root 26052 Jul 21 2020 bzcat + lrwxrwxrwx 1 root root 6 Jul 21 2020 bzcmp -> bzdiff + -rwxr-xr-x 1 root root 2225 Jul 21 2020 bzdiff + lrwxrwxrwx 1 root root 6 Jul 21 2020 bzegrep -> bzgrep + -rwxr-xr-x 1 root root 4877 Sep 5 2019 bzexe + lrwxrwxrwx 1 root root 6 Jul 21 2020 bzfgrep -> bzgrep + -rwxr-xr-x 1 root root 3775 Jul 21 2020 bzgrep + -rwxr-xr-x 3 root root 26052 Jul 21 2020 bzip2 + -rwxr-xr-x 1 root root 9636 Jul 21 2020 bzip2recover + lrwxrwxrwx 1 root root 6 Jul 21 2020 bzless -> bzmore + -rwxr-xr-x 1 root root 1297 Jul 21 2020 bzmore + -rwxr-xr-x 1 root root 26668 Sep 23 2020 cat + -rwxr-xr-x 1 root root 43104 Sep 23 2020 chgrp + -rwxr-xr-x 1 root root 38984 Sep 23 2020 chmod + -rwxr-xr-x 1 root root 43112 Sep 23 2020 chown + -rwxr-xr-x 1 root root 92616 Sep 23 2020 cp + -rwxr-xr-x 1 root root 75524 Dec 11 2020 dash + -rwxr-xr-x 1 root root 75880 Sep 23 2020 date + -rwxr-xr-x 1 root root 55436 Sep 23 2020 dd + -rwxr-xr-x 1 root root 59912 Sep 23 2020 df + -rwxr-xr-x 1 root root 96764 Sep 23 2020 dir + -rwxr-xr-x 1 root root 55012 Jan 21 2022 dmesg + lrwxrwxrwx 1 root root 8 Nov 8 2019 dnsdomainname -> hostname + lrwxrwxrwx 1 root root 8 Nov 8 2019 domainname -> hostname + -rwxr-xr-x 1 root root 22508 Sep 23 2020 echo + -rwxr-xr-x 1 root root 28 Jan 25 22:23 egrep + -rwxr-xr-x 1 root root 22496 Sep 23 2020 false + -rwxr-xr-x 1 root root 28 Jan 25 22:23 fgrep + -rwxr-xr-x 1 root root 47492 Jan 21 2022 findmnt + -rwsr-xr-x 1 root root 26076 Feb 27 2021 fusermount + -rwxr-xr-x 1 root root 124508 Jan 25 22:23 grep + -rwxr-xr-x 2 root root 2346 Apr 10 2022 gunzip + -rwxr-xr-x 1 root root 6447 Apr 10 2022 gzexe + -rwxr-xr-x 1 root root 64212 Apr 10 2022 gzip + -rwxr-xr-x 1 root root 13784 Nov 8 2019 hostname + -rwxr-xr-x 1 root root 43180 Sep 23 2020 ln + -rwxr-xr-x 1 root root 35068 Feb 8 2020 login + -rwxr-xr-x 1 root root 96764 Sep 23 2020 ls + -rwxr-xr-x 1 root root 99940 Jan 21 2022 lsblk + -rwxr-xr-x 1 root root 51408 Sep 23 2020 mkdir + -rwxr-xr-x 1 root root 43184 Sep 23 2020 mknod + -rwxr-xr-x 1 root root 30780 Sep 23 2020 mktemp + -rwxr-xr-x 1 root root 34408 Jan 21 2022 more + -rwsr-xr-x 1 root root 34400 Jan 21 2022 mount + -rwxr-xr-x 1 root root 9824 Jan 21 2022 mountpoint + -rwxr-xr-x 1 root root 88524 Sep 23 2020 mv + lrwxrwxrwx 1 root root 8 Nov 8 2019 nisdomainname -> hostname + lrwxrwxrwx 1 root root 14 Dec 17 2021 pidof -> /sbin/killall5 + -rwxr-xr-x 1 root root 26652 Sep 23 2020 pwd + lrwxrwxrwx 1 root root 4 Mar 28 2022 rbash -> bash + -rwxr-xr-x 1 root root 30740 Sep 23 2020 readlink + -rwxr-xr-x 1 root root 43104 Sep 23 2020 rm + -rwxr-xr-x 1 root root 30732 Sep 23 2020 rmdir + -rwxr-xr-x 1 root root 14144 Sep 28 2020 run-parts + -rwxr-xr-x 1 root root 76012 Dec 23 2018 sed + lrwxrwxrwx 1 root root 9 Apr 30 07:20 sh -> /bin/bash + -rwxr-xr-x 1 root root 22532 Sep 23 2020 sleep + -rwxr-xr-x 1 root root 55360 Sep 23 2020 stty + -rwsr-xr-x 1 root root 46704 Jan 21 2022 su + -rwxr-xr-x 1 root root 22532 Sep 23 2020 sync + -rwxr-xr-x 1 root root 340872 Feb 17 2021 tar + -rwxr-xr-x 1 root root 9808 Sep 28 2020 tempfile + -rwxr-xr-x 1 root root 67696 Sep 23 2020 touch + -rwxr-xr-x 1 root root 22496 Sep 23 2020 true + -rwxr-xr-x 1 root root 9636 Feb 27 2021 ulockmgr_server + -rwsr-xr-x 1 root root 22108 Jan 21 2022 umount + -rwxr-xr-x 1 root root 22520 Sep 23 2020 uname + -rwxr-xr-x 2 root root 2346 Apr 10 2022 uncompress + -rwxr-xr-x 1 root root 96764 Sep 23 2020 vdir + -rwxr-xr-x 1 root root 38512 Jan 21 2022 wdctl + lrwxrwxrwx 1 root root 8 Nov 8 2019 ypdomainname -> hostname + -rwxr-xr-x 1 root root 1984 Apr 10 2022 zcat + -rwxr-xr-x 1 root root 1678 Apr 10 2022 zcmp + -rwxr-xr-x 1 root root 5898 Apr 10 2022 zdiff + -rwxr-xr-x 1 root root 29 Apr 10 2022 zegrep + -rwxr-xr-x 1 root root 29 Apr 10 2022 zfgrep + -rwxr-xr-x 1 root root 2081 Apr 10 2022 zforce + -rwxr-xr-x 1 root root 8049 Apr 10 2022 zgrep + -rwxr-xr-x 1 root root 2206 Apr 10 2022 zless + -rwxr-xr-x 1 root root 1842 Apr 10 2022 zmore + -rwxr-xr-x 1 root root 4577 Apr 10 2022 znew +I: user script /srv/workspace/pbuilder/28469/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -364,7 +395,7 @@ Get: 110 http://deb.debian.org/debian bullseye/main armhf unzip armhf 6.0-26+deb11u1 [157 kB] Get: 111 http://deb.debian.org/debian bullseye/main armhf xmlto armhf 0.0.28-2.1 [32.5 kB] Get: 112 http://deb.debian.org/debian bullseye/main armhf zlib1g-dev armhf 1:1.2.11.dfsg-2+deb11u2 [185 kB] -Fetched 41.0 MB in 10s (4160 kB/s) +Fetched 41.0 MB in 7s (6285 kB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package bsdextrautils. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19450 files and directories currently installed.) @@ -841,7 +872,11 @@ fakeroot is already the newest version (1.25.3-1.1). 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. I: Building the package -I: Running cd /build/git-2.30.2/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../git_2.30.2-1+deb11u2_source.changes +I: user script /srv/workspace/pbuilder/28469/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for bullseye +I: user script /srv/workspace/pbuilder/28469/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/git-2.30.2/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../git_2.30.2-1+deb11u2_source.changes dpkg-buildpackage: info: source package git dpkg-buildpackage: info: source version 1:2.30.2-1+deb11u2 dpkg-buildpackage: info: source distribution bullseye-security @@ -869,11 +904,11 @@ make[2]: Leaving directory '/build/git-2.30.2/contrib/subtree' /usr/bin/make clean NO_OPENSSL=1 prefix=/usr gitexecdir=/usr/lib/git-core libexecdir=/usr/lib/git-core mandir=/usr/share/man htmldir=/usr/share/doc/git/html INSTALLDIRS=vendor SANE_TOOL_PATH= INSTALL=install TAR=tar NO_CROSS_DIRECTORY_HARDLINKS=1 NO_INSTALL_HARDLINKS=1 NO_PERL_CPAN_FALLBACKS=1 PYTHON_PATH=/usr/bin/python3 DEFAULT_PAGER=pager DEFAULT_EDITOR=editor CC='gcc' CFLAGS='-Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2' LDFLAGS='-Wl,-z,relro' HOST_CPU='arm' V=1 USE_LIBPCRE2=1 make[2]: Entering directory '/build/git-2.30.2' -rm -f /build/git-2.30.2/./*.gcda /build/git-2.30.2/builtin/*.gcda /build/git-2.30.2/compat/*.gcda /build/git-2.30.2/ewah/*.gcda /build/git-2.30.2/negotiator/*.gcda /build/git-2.30.2/refs/*.gcda /build/git-2.30.2/sha1dc/*.gcda /build/git-2.30.2/sha256/block/*.gcda /build/git-2.30.2/t/helper/*.gcda /build/git-2.30.2/trace2/*.gcda /build/git-2.30.2/xdiff/*.gcda -rm -f /build/git-2.30.2/./*.gcno /build/git-2.30.2/builtin/*.gcno /build/git-2.30.2/compat/*.gcno /build/git-2.30.2/ewah/*.gcno /build/git-2.30.2/negotiator/*.gcno /build/git-2.30.2/refs/*.gcno /build/git-2.30.2/sha1dc/*.gcno /build/git-2.30.2/sha256/block/*.gcno /build/git-2.30.2/t/helper/*.gcno /build/git-2.30.2/trace2/*.gcno /build/git-2.30.2/xdiff/*.gcno +rm -f contrib/coccinelle/*.cocci.patch* make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -rm -f contrib/coccinelle/*.cocci.patch* +rm -f /build/git-2.30.2/./*.gcda /build/git-2.30.2/builtin/*.gcda /build/git-2.30.2/compat/*.gcda /build/git-2.30.2/ewah/*.gcda /build/git-2.30.2/negotiator/*.gcda /build/git-2.30.2/refs/*.gcda /build/git-2.30.2/sha1dc/*.gcda /build/git-2.30.2/sha256/block/*.gcda /build/git-2.30.2/t/helper/*.gcda /build/git-2.30.2/trace2/*.gcda /build/git-2.30.2/xdiff/*.gcda +rm -f /build/git-2.30.2/./*.gcno /build/git-2.30.2/builtin/*.gcno /build/git-2.30.2/compat/*.gcno /build/git-2.30.2/ewah/*.gcno /build/git-2.30.2/negotiator/*.gcno /build/git-2.30.2/refs/*.gcno /build/git-2.30.2/sha1dc/*.gcno /build/git-2.30.2/sha256/block/*.gcno /build/git-2.30.2/t/helper/*.gcno /build/git-2.30.2/trace2/*.gcno /build/git-2.30.2/xdiff/*.gcno make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' rm -f ./*.gcov builtin/*.gcov compat/*.gcov ewah/*.gcov negotiator/*.gcov refs/*.gcov sha1dc/*.gcov sha256/block/*.gcov t/helper/*.gcov trace2/*.gcov xdiff/*.gcov @@ -983,10 +1018,10 @@ * new build flags make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o fuzz-commit-graph.o -c -MF ./.depend/fuzz-commit-graph.o.d -MQ fuzz-commit-graph.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' fuzz-commit-graph.c +gcc -o fuzz-pack-idx.o -c -MF ./.depend/fuzz-pack-idx.o.d -MQ fuzz-pack-idx.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' fuzz-pack-idx.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o fuzz-pack-idx.o -c -MF ./.depend/fuzz-pack-idx.o.d -MQ fuzz-pack-idx.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' fuzz-pack-idx.c +gcc -o fuzz-commit-graph.o -c -MF ./.depend/fuzz-commit-graph.o.d -MQ fuzz-commit-graph.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' fuzz-commit-graph.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o fuzz-pack-headers.o -c -MF ./.depend/fuzz-pack-headers.o.d -MQ fuzz-pack-headers.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' fuzz-pack-headers.c @@ -1001,25 +1036,22 @@ gcc -o abspath.o -c -MF ./.depend/abspath.o.d -MQ abspath.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' abspath.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o daemon.o -c -MF ./.depend/daemon.o.d -MQ daemon.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' daemon.c -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' -gcc -o add-interactive.o -c -MF ./.depend/add-interactive.o.d -MQ add-interactive.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' add-interactive.c -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' gcc -o advice.o -c -MF ./.depend/advice.o.d -MQ advice.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' advice.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o alias.o -c -MF ./.depend/alias.o.d -MQ alias.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' alias.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' +gcc -o daemon.o -c -MF ./.depend/daemon.o.d -MQ daemon.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' daemon.c +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' gcc -o alloc.o -c -MF ./.depend/alloc.o.d -MQ alloc.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' alloc.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o archive-tar.o -c -MF ./.depend/archive-tar.o.d -MQ archive-tar.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' archive-tar.c +gcc -o add-interactive.o -c -MF ./.depend/add-interactive.o.d -MQ add-interactive.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' add-interactive.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o add-patch.o -c -MF ./.depend/add-patch.o.d -MQ add-patch.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' add-patch.c +gcc -o archive-tar.o -c -MF ./.depend/archive-tar.o.d -MQ archive-tar.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' archive-tar.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o archive-zip.o -c -MF ./.depend/archive-zip.o.d -MQ archive-zip.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' archive-zip.c @@ -1028,13 +1060,13 @@ * new prefix flags make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o archive.o -c -MF ./.depend/archive.o.d -MQ archive.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' archive.c +gcc -o base85.o -c -MF ./.depend/base85.o.d -MQ base85.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' base85.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o base85.o -c -MF ./.depend/base85.o.d -MQ base85.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' base85.c +gcc -o add-patch.o -c -MF ./.depend/add-patch.o.d -MQ add-patch.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' add-patch.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o bisect.o -c -MF ./.depend/bisect.o.d -MQ bisect.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' bisect.c +gcc -o archive.o -c -MF ./.depend/archive.o.d -MQ archive.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' archive.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o blob.o -c -MF ./.depend/blob.o.d -MQ blob.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' blob.c @@ -1043,25 +1075,25 @@ gcc -o bloom.o -c -MF ./.depend/bloom.o.d -MQ bloom.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' bloom.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o branch.o -c -MF ./.depend/branch.o.d -MQ branch.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' branch.c +gcc -o bisect.o -c -MF ./.depend/bisect.o.d -MQ bisect.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' bisect.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o bulk-checkin.o -c -MF ./.depend/bulk-checkin.o.d -MQ bulk-checkin.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' bulk-checkin.c +gcc -o branch.o -c -MF ./.depend/branch.o.d -MQ branch.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' branch.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o blame.o -c -MF ./.depend/blame.o.d -MQ blame.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' blame.c +gcc -o bulk-checkin.o -c -MF ./.depend/bulk-checkin.o.d -MQ bulk-checkin.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' bulk-checkin.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o bundle.o -c -MF ./.depend/bundle.o.d -MQ bundle.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' bundle.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o apply.o -c -MF ./.depend/apply.o.d -MQ apply.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' apply.c +gcc -o chdir-notify.o -c -MF ./.depend/chdir-notify.o.d -MQ chdir-notify.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' chdir-notify.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o checkout.o -c -MF ./.depend/checkout.o.d -MQ checkout.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' checkout.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o chdir-notify.o -c -MF ./.depend/chdir-notify.o.d -MQ chdir-notify.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' chdir-notify.c +gcc -o blame.o -c -MF ./.depend/blame.o.d -MQ blame.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' blame.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o cache-tree.o -c -MF ./.depend/cache-tree.o.d -MQ cache-tree.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' cache-tree.c @@ -1073,10 +1105,10 @@ gcc -o column.o -c -MF ./.depend/column.o.d -MQ column.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' column.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o commit-reach.o -c -MF ./.depend/commit-reach.o.d -MQ commit-reach.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' commit-reach.c +gcc -o apply.o -c -MF ./.depend/apply.o.d -MQ apply.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' apply.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o combine-diff.o -c -MF ./.depend/combine-diff.o.d -MQ combine-diff.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' combine-diff.c +gcc -o commit-reach.o -c -MF ./.depend/commit-reach.o.d -MQ commit-reach.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' commit-reach.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o compat/obstack.o -c -MF compat/.depend/obstack.o.d -MQ compat/obstack.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' compat/obstack.c @@ -1085,6 +1117,9 @@ gcc -o compat/terminal.o -c -MF compat/.depend/terminal.o.d -MQ compat/terminal.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' compat/terminal.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' +gcc -o combine-diff.o -c -MF ./.depend/combine-diff.o.d -MQ combine-diff.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' combine-diff.c +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' gcc -o commit-graph.o -c -MF ./.depend/commit-graph.o.d -MQ commit-graph.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' commit-graph.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' @@ -1094,25 +1129,31 @@ gcc -o connected.o -c -MF ./.depend/connected.o.d -MQ connected.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' connected.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' +gcc -o copy.o -c -MF ./.depend/copy.o.d -MQ copy.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' copy.c +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' gcc -o connect.o -c -MF ./.depend/connect.o.d -MQ connect.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' connect.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o copy.o -c -MF ./.depend/copy.o.d -MQ copy.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' copy.c +gcc -o csum-file.o -c -MF ./.depend/csum-file.o.d -MQ csum-file.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' csum-file.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o convert.o -c -MF ./.depend/convert.o.d -MQ convert.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' convert.c +gcc -o ctype.o -c -MF ./.depend/ctype.o.d -MQ ctype.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' ctype.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o credential.o -c -MF ./.depend/credential.o.d -MQ credential.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' credential.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o ctype.o -c -MF ./.depend/ctype.o.d -MQ ctype.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' ctype.c +gcc -o decorate.o -c -MF ./.depend/decorate.o.d -MQ decorate.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' decorate.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o csum-file.o -c -MF ./.depend/csum-file.o.d -MQ csum-file.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' csum-file.c +gcc -o convert.o -c -MF ./.depend/convert.o.d -MQ convert.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' convert.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o decorate.o -c -MF ./.depend/decorate.o.d -MQ decorate.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' decorate.c +gcc -o diff-delta.o -c -MF ./.depend/diff-delta.o.d -MQ diff-delta.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' diff-delta.c +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' +gcc -o date.o -c -MF ./.depend/date.o.d -MQ date.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' date.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o config.o -c -MF ./.depend/config.o.d -MQ config.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' -DETC_GITCONFIG='"/etc/gitconfig"' config.c @@ -1125,10 +1166,7 @@ | ^~~ make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o diff-delta.o -c -MF ./.depend/diff-delta.o.d -MQ diff-delta.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' diff-delta.c -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' -gcc -o date.o -c -MF ./.depend/date.o.d -MQ date.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' date.c +gcc -o diff-no-index.o -c -MF ./.depend/diff-no-index.o.d -MQ diff-no-index.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' diff-no-index.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o delta-islands.o -c -MF ./.depend/delta-islands.o.d -MQ delta-islands.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' delta-islands.c @@ -1137,9 +1175,6 @@ gcc -o diff-lib.o -c -MF ./.depend/diff-lib.o.d -MQ diff-lib.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' diff-lib.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o diff-no-index.o -c -MF ./.depend/diff-no-index.o.d -MQ diff-no-index.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' diff-no-index.c -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' gcc -o diffcore-break.o -c -MF ./.depend/diffcore-break.o.d -MQ diffcore-break.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' diffcore-break.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' @@ -1152,33 +1187,30 @@ gcc -o diffcore-pickaxe.o -c -MF ./.depend/diffcore-pickaxe.o.d -MQ diffcore-pickaxe.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' diffcore-pickaxe.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o diffcore-rename.o -c -MF ./.depend/diffcore-rename.o.d -MQ diffcore-rename.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' diffcore-rename.c +gcc -o dir-iterator.o -c -MF ./.depend/dir-iterator.o.d -MQ dir-iterator.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' dir-iterator.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o dir-iterator.o -c -MF ./.depend/dir-iterator.o.d -MQ dir-iterator.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' dir-iterator.c +gcc -o diffcore-rename.o -c -MF ./.depend/diffcore-rename.o.d -MQ diffcore-rename.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' diffcore-rename.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o editor.o -c -MF ./.depend/editor.o.d -MQ editor.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' editor.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o entry.o -c -MF ./.depend/entry.o.d -MQ entry.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' entry.c +gcc -o environment.o -c -MF ./.depend/environment.o.d -MQ environment.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' environment.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o environment.o -c -MF ./.depend/environment.o.d -MQ environment.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' environment.c +gcc -o entry.o -c -MF ./.depend/entry.o.d -MQ entry.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' entry.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o ewah/bitmap.o -c -MF ewah/.depend/bitmap.o.d -MQ ewah/bitmap.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' ewah/bitmap.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o dir.o -c -MF ./.depend/dir.o.d -MQ dir.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' dir.c +gcc -o ewah/ewah_bitmap.o -c -MF ewah/.depend/ewah_bitmap.o.d -MQ ewah/ewah_bitmap.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' ewah/ewah_bitmap.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o ewah/ewah_io.o -c -MF ewah/.depend/ewah_io.o.d -MQ ewah/ewah_io.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' ewah/ewah_io.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o ewah/ewah_bitmap.o -c -MF ewah/.depend/ewah_bitmap.o.d -MQ ewah/ewah_bitmap.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' ewah/ewah_bitmap.c -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' gcc -o ewah/ewah_rlw.o -c -MF ewah/.depend/ewah_rlw.o.d -MQ ewah/ewah_rlw.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' ewah/ewah_rlw.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' @@ -1191,22 +1223,22 @@ gcc -o fmt-merge-msg.o -c -MF ./.depend/fmt-merge-msg.o.d -MQ fmt-merge-msg.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' fmt-merge-msg.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o fetch-pack.o -c -MF ./.depend/fetch-pack.o.d -MQ fetch-pack.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' fetch-pack.c +gcc -o dir.o -c -MF ./.depend/dir.o.d -MQ dir.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' dir.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o fsck.o -c -MF ./.depend/fsck.o.d -MQ fsck.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' fsck.c +gcc -o fsmonitor.o -c -MF ./.depend/fsmonitor.o.d -MQ fsmonitor.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' fsmonitor.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o gettext.o -c -MF ./.depend/gettext.o.d -MQ gettext.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' -DGIT_LOCALE_PATH='"share/locale"' gettext.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o fsmonitor.o -c -MF ./.depend/fsmonitor.o.d -MQ fsmonitor.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' fsmonitor.c +gcc -o fetch-pack.o -c -MF ./.depend/fetch-pack.o.d -MQ fetch-pack.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' fetch-pack.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o gpg-interface.o -c -MF ./.depend/gpg-interface.o.d -MQ gpg-interface.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' gpg-interface.c +gcc -o fsck.o -c -MF ./.depend/fsck.o.d -MQ fsck.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' fsck.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o diff.o -c -MF ./.depend/diff.o.d -MQ diff.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' diff.c +gcc -o gpg-interface.o -c -MF ./.depend/gpg-interface.o.d -MQ gpg-interface.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' gpg-interface.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o hashmap.o -c -MF ./.depend/hashmap.o.d -MQ hashmap.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' hashmap.c @@ -1215,10 +1247,10 @@ gcc -o graph.o -c -MF ./.depend/graph.o.d -MQ graph.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' graph.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o grep.o -c -MF ./.depend/grep.o.d -MQ grep.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' grep.c +gcc -o hex.o -c -MF ./.depend/hex.o.d -MQ hex.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' hex.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o hex.o -c -MF ./.depend/hex.o.d -MQ hex.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' hex.c +gcc -o grep.o -c -MF ./.depend/grep.o.d -MQ grep.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' grep.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o ident.o -c -MF ./.depend/ident.o.d -MQ ident.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' ident.c @@ -1236,22 +1268,27 @@ gcc -o line-range.o -c -MF ./.depend/line-range.o.d -MQ line-range.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' line-range.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o line-log.o -c -MF ./.depend/line-log.o.d -MQ line-log.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' line-log.c +/bin/sh ./generate-cmdlist.sh \ + \ + command-list.txt >command-list.h+ && mv command-list.h+ command-list.h +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' +gcc -o diff.o -c -MF ./.depend/diff.o.d -MQ diff.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' diff.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o linear-assignment.o -c -MF ./.depend/linear-assignment.o.d -MQ linear-assignment.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' linear-assignment.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o list-objects-filter-options.o -c -MF ./.depend/list-objects-filter-options.o.d -MQ list-objects-filter-options.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' list-objects-filter-options.c +gcc -o line-log.o -c -MF ./.depend/line-log.o.d -MQ line-log.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' line-log.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o list-objects-filter.o -c -MF ./.depend/list-objects-filter.o.d -MQ list-objects-filter.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' list-objects-filter.c +gcc -o list-objects-filter-options.o -c -MF ./.depend/list-objects-filter-options.o.d -MQ list-objects-filter-options.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' list-objects-filter-options.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o list-objects.o -c -MF ./.depend/list-objects.o.d -MQ list-objects.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' list-objects.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o lockfile.o -c -MF ./.depend/lockfile.o.d -MQ lockfile.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' lockfile.c +gcc -o list-objects-filter.o -c -MF ./.depend/list-objects-filter.o.d -MQ list-objects-filter.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' list-objects-filter.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o ll-merge.o -c -MF ./.depend/ll-merge.o.d -MQ ll-merge.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' ll-merge.c @@ -1260,30 +1297,28 @@ gcc -o ls-refs.o -c -MF ./.depend/ls-refs.o.d -MQ ls-refs.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' ls-refs.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o mailinfo.o -c -MF ./.depend/mailinfo.o.d -MQ mailinfo.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' mailinfo.c -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' -/bin/sh ./generate-cmdlist.sh \ - \ - command-list.txt >command-list.h+ && mv command-list.h+ command-list.h +gcc -o lockfile.o -c -MF ./.depend/lockfile.o.d -MQ lockfile.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' lockfile.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o log-tree.o -c -MF ./.depend/log-tree.o.d -MQ log-tree.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' log-tree.c +gcc -o mailmap.o -c -MF ./.depend/mailmap.o.d -MQ mailmap.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' mailmap.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o mailmap.o -c -MF ./.depend/mailmap.o.d -MQ mailmap.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' mailmap.c +gcc -o match-trees.o -c -MF ./.depend/match-trees.o.d -MQ match-trees.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' match-trees.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o mem-pool.o -c -MF ./.depend/mem-pool.o.d -MQ mem-pool.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' mem-pool.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o match-trees.o -c -MF ./.depend/match-trees.o.d -MQ match-trees.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' match-trees.c +gcc -o merge-ort.o -c -MF ./.depend/merge-ort.o.d -MQ merge-ort.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' merge-ort.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o merge-blobs.o -c -MF ./.depend/merge-blobs.o.d -MQ merge-blobs.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' merge-blobs.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o merge-ort.o -c -MF ./.depend/merge-ort.o.d -MQ merge-ort.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' merge-ort.c +gcc -o log-tree.o -c -MF ./.depend/log-tree.o.d -MQ log-tree.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' log-tree.c +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' +gcc -o mailinfo.o -c -MF ./.depend/mailinfo.o.d -MQ mailinfo.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' mailinfo.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o merge-ort-wrappers.o -c -MF ./.depend/merge-ort-wrappers.o.d -MQ merge-ort-wrappers.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' merge-ort-wrappers.c @@ -1295,16 +1330,13 @@ gcc -o mergesort.o -c -MF ./.depend/mergesort.o.d -MQ mergesort.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' mergesort.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o name-hash.o -c -MF ./.depend/name-hash.o.d -MQ name-hash.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' name-hash.c -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' gcc -o negotiator/default.o -c -MF negotiator/.depend/default.o.d -MQ negotiator/default.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' negotiator/default.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o negotiator/noop.o -c -MF negotiator/.depend/noop.o.d -MQ negotiator/noop.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' negotiator/noop.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o midx.o -c -MF ./.depend/midx.o.d -MQ midx.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' midx.c +gcc -o name-hash.o -c -MF ./.depend/name-hash.o.d -MQ name-hash.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' name-hash.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o negotiator/skipping.o -c -MF negotiator/.depend/skipping.o.d -MQ negotiator/skipping.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' negotiator/skipping.c @@ -1316,22 +1348,22 @@ gcc -o notes-utils.o -c -MF ./.depend/notes-utils.o.d -MQ notes-utils.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' notes-utils.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o notes-merge.o -c -MF ./.depend/notes-merge.o.d -MQ notes-merge.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' notes-merge.c +gcc -o midx.o -c -MF ./.depend/midx.o.d -MQ midx.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' midx.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o merge-recursive.o -c -MF ./.depend/merge-recursive.o.d -MQ merge-recursive.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' merge-recursive.c +gcc -o notes-merge.o -c -MF ./.depend/notes-merge.o.d -MQ notes-merge.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' notes-merge.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o notes.o -c -MF ./.depend/notes.o.d -MQ notes.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' notes.c +gcc -o oid-array.o -c -MF ./.depend/oid-array.o.d -MQ oid-array.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' oid-array.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o oid-array.o -c -MF ./.depend/oid-array.o.d -MQ oid-array.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' oid-array.c +gcc -o object.o -c -MF ./.depend/object.o.d -MQ object.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' object.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o oidmap.o -c -MF ./.depend/oidmap.o.d -MQ oidmap.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' oidmap.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o object.o -c -MF ./.depend/object.o.d -MQ object.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' object.c +gcc -o notes.o -c -MF ./.depend/notes.o.d -MQ notes.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' notes.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o oidset.o -c -MF ./.depend/oidset.o.d -MQ oidset.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' oidset.c @@ -1343,19 +1375,22 @@ gcc -o pack-bitmap-write.o -c -MF ./.depend/pack-bitmap-write.o.d -MQ pack-bitmap-write.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' pack-bitmap-write.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' +gcc -o merge-recursive.o -c -MF ./.depend/merge-recursive.o.d -MQ merge-recursive.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' merge-recursive.c +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' gcc -o pack-objects.o -c -MF ./.depend/pack-objects.o.d -MQ pack-objects.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' pack-objects.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o pack-revindex.o -c -MF ./.depend/pack-revindex.o.d -MQ pack-revindex.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' pack-revindex.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o pack-write.o -c -MF ./.depend/pack-write.o.d -MQ pack-write.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' pack-write.c +gcc -o pager.o -c -MF ./.depend/pager.o.d -MQ pager.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' pager.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o pack-bitmap.o -c -MF ./.depend/pack-bitmap.o.d -MQ pack-bitmap.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' pack-bitmap.c +gcc -o pack-write.o -c -MF ./.depend/pack-write.o.d -MQ pack-write.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' pack-write.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o pager.o -c -MF ./.depend/pager.o.d -MQ pager.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' pager.c +gcc -o pack-bitmap.o -c -MF ./.depend/pack-bitmap.o.d -MQ pack-bitmap.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' pack-bitmap.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o parse-options-cb.o -c -MF ./.depend/parse-options-cb.o.d -MQ parse-options-cb.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' parse-options-cb.c @@ -1370,25 +1405,25 @@ gcc -o parse-options.o -c -MF ./.depend/parse-options.o.d -MQ parse-options.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' parse-options.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o packfile.o -c -MF ./.depend/packfile.o.d -MQ packfile.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' packfile.c +gcc -o pathspec.o -c -MF ./.depend/pathspec.o.d -MQ pathspec.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' pathspec.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o pathspec.o -c -MF ./.depend/pathspec.o.d -MQ pathspec.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' pathspec.c +gcc -o pkt-line.o -c -MF ./.depend/pkt-line.o.d -MQ pkt-line.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' pkt-line.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o preload-index.o -c -MF ./.depend/preload-index.o.d -MQ preload-index.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' preload-index.c +gcc -o packfile.o -c -MF ./.depend/packfile.o.d -MQ packfile.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' packfile.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o pkt-line.o -c -MF ./.depend/pkt-line.o.d -MQ pkt-line.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' pkt-line.c +gcc -o preload-index.o -c -MF ./.depend/preload-index.o.d -MQ preload-index.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' preload-index.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o path.o -c -MF ./.depend/path.o.d -MQ path.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' path.c +gcc -o progress.o -c -MF ./.depend/progress.o.d -MQ progress.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' progress.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o prio-queue.o -c -MF ./.depend/prio-queue.o.d -MQ prio-queue.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' prio-queue.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o progress.o -c -MF ./.depend/progress.o.d -MQ progress.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' progress.c +gcc -o path.o -c -MF ./.depend/path.o.d -MQ path.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' path.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o promisor-remote.o -c -MF ./.depend/promisor-remote.o.d -MQ promisor-remote.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' promisor-remote.c @@ -1403,18 +1438,18 @@ gcc -o prune-packed.o -c -MF ./.depend/prune-packed.o.d -MQ prune-packed.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' prune-packed.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o quote.o -c -MF ./.depend/quote.o.d -MQ quote.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' quote.c -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' gcc -o reachable.o -c -MF ./.depend/reachable.o.d -MQ reachable.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' reachable.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o range-diff.o -c -MF ./.depend/range-diff.o.d -MQ range-diff.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' range-diff.c +gcc -o quote.o -c -MF ./.depend/quote.o.d -MQ quote.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' quote.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o pretty.o -c -MF ./.depend/pretty.o.d -MQ pretty.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' pretty.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' +gcc -o range-diff.o -c -MF ./.depend/range-diff.o.d -MQ range-diff.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' range-diff.c +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' gcc -o rebase.o -c -MF ./.depend/rebase.o.d -MQ rebase.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' rebase.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' @@ -1424,42 +1459,42 @@ gcc -o reflog-walk.o -c -MF ./.depend/reflog-walk.o.d -MQ reflog-walk.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' reflog-walk.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' +gcc -o refs/debug.o -c -MF refs/.depend/debug.o.d -MQ refs/debug.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' refs/debug.c +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' gcc -o refs.o -c -MF ./.depend/refs.o.d -MQ refs.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' refs.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' +gcc -o refs/iterator.o -c -MF refs/.depend/iterator.o.d -MQ refs/iterator.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' refs/iterator.c +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' gcc -o ref-filter.o -c -MF ./.depend/ref-filter.o.d -MQ ref-filter.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' ref-filter.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o read-cache.o -c -MF ./.depend/read-cache.o.d -MQ read-cache.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' read-cache.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o refs/debug.o -c -MF refs/.depend/debug.o.d -MQ refs/debug.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' refs/debug.c +gcc -o refspec.o -c -MF ./.depend/refspec.o.d -MQ refspec.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' refspec.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o refs/iterator.o -c -MF refs/.depend/iterator.o.d -MQ refs/iterator.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' refs/iterator.c +gcc -o refs/files-backend.o -c -MF refs/.depend/files-backend.o.d -MQ refs/files-backend.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' refs/files-backend.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o refs/ref-cache.o -c -MF refs/.depend/ref-cache.o.d -MQ refs/ref-cache.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' refs/ref-cache.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o refspec.o -c -MF ./.depend/refspec.o.d -MQ refspec.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' refspec.c -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' -gcc -o refs/packed-backend.o -c -MF refs/.depend/packed-backend.o.d -MQ refs/packed-backend.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' refs/packed-backend.c +gcc -o repo-settings.o -c -MF ./.depend/repo-settings.o.d -MQ repo-settings.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' repo-settings.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o replace-object.o -c -MF ./.depend/replace-object.o.d -MQ replace-object.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' replace-object.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o repo-settings.o -c -MF ./.depend/repo-settings.o.d -MQ repo-settings.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' repo-settings.c +gcc -o refs/packed-backend.o -c -MF refs/.depend/packed-backend.o.d -MQ refs/packed-backend.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' refs/packed-backend.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o repository.o -c -MF ./.depend/repository.o.d -MQ repository.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' repository.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o refs/files-backend.o -c -MF refs/.depend/files-backend.o.d -MQ refs/files-backend.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' refs/files-backend.c -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' gcc -o reset.o -c -MF ./.depend/reset.o.d -MQ reset.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' reset.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' @@ -1472,10 +1507,10 @@ gcc -o remote.o -c -MF ./.depend/remote.o.d -MQ remote.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' remote.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o send-pack.o -c -MF ./.depend/send-pack.o.d -MQ send-pack.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' send-pack.c +gcc -o run-command.o -c -MF ./.depend/run-command.o.d -MQ run-command.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' run-command.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o run-command.o -c -MF ./.depend/run-command.o.d -MQ run-command.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' run-command.c +gcc -o send-pack.o -c -MF ./.depend/send-pack.o.d -MQ send-pack.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' send-pack.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o serve.o -c -MF ./.depend/serve.o.d -MQ serve.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' serve.c @@ -1484,19 +1519,16 @@ gcc -o server-info.o -c -MF ./.depend/server-info.o.d -MQ server-info.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' server-info.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o revision.o -c -MF ./.depend/revision.o.d -MQ revision.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' revision.c -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' gcc -o setup.o -c -MF ./.depend/setup.o.d -MQ setup.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' setup.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o sha1-lookup.o -c -MF ./.depend/sha1-lookup.o.d -MQ sha1-lookup.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' sha1-lookup.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o sha1-file.o -c -MF ./.depend/sha1-file.o.d -MQ sha1-file.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' sha1-file.c +gcc -o revision.o -c -MF ./.depend/revision.o.d -MQ revision.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' revision.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o sha1-name.o -c -MF ./.depend/sha1-name.o.d -MQ sha1-name.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' sha1-name.c +gcc -o sha1-file.o -c -MF ./.depend/sha1-file.o.d -MQ sha1-file.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' sha1-file.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o sideband.o -c -MF ./.depend/sideband.o.d -MQ sideband.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' sideband.c @@ -1505,6 +1537,9 @@ gcc -o sigchain.o -c -MF ./.depend/sigchain.o.d -MQ sigchain.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' sigchain.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' +gcc -o sha1-name.o -c -MF ./.depend/sha1-name.o.d -MQ sha1-name.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' sha1-name.c +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' gcc -o shallow.o -c -MF ./.depend/shallow.o.d -MQ shallow.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' shallow.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' @@ -1517,16 +1552,10 @@ gcc -o streaming.o -c -MF ./.depend/streaming.o.d -MQ streaming.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' streaming.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o string-list.o -c -MF ./.depend/string-list.o.d -MQ string-list.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' string-list.c -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' -gcc -o sequencer.o -c -MF ./.depend/sequencer.o.d -MQ sequencer.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' sequencer.c -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' -gcc -o strbuf.o -c -MF ./.depend/strbuf.o.d -MQ strbuf.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' strbuf.c +gcc -o strmap.o -c -MF ./.depend/strmap.o.d -MQ strmap.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' strmap.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o strmap.o -c -MF ./.depend/strmap.o.d -MQ strmap.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' strmap.c +gcc -o string-list.o -c -MF ./.depend/string-list.o.d -MQ string-list.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' string-list.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o strvec.o -c -MF ./.depend/strvec.o.d -MQ strvec.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' strvec.c @@ -1535,22 +1564,22 @@ gcc -o sub-process.o -c -MF ./.depend/sub-process.o.d -MQ sub-process.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' sub-process.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o symlinks.o -c -MF ./.depend/symlinks.o.d -MQ symlinks.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' symlinks.c +gcc -o strbuf.o -c -MF ./.depend/strbuf.o.d -MQ strbuf.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' strbuf.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o submodule-config.o -c -MF ./.depend/submodule-config.o.d -MQ submodule-config.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' submodule-config.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o tag.o -c -MF ./.depend/tag.o.d -MQ tag.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' tag.c +gcc -o symlinks.o -c -MF ./.depend/symlinks.o.d -MQ symlinks.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' symlinks.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o thread-utils.o -c -MF ./.depend/thread-utils.o.d -MQ thread-utils.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' thread-utils.c +gcc -o tag.o -c -MF ./.depend/tag.o.d -MQ tag.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' tag.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o tempfile.o -c -MF ./.depend/tempfile.o.d -MQ tempfile.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' tempfile.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o submodule.o -c -MF ./.depend/submodule.o.d -MQ submodule.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' submodule.c +gcc -o thread-utils.o -c -MF ./.depend/thread-utils.o.d -MQ thread-utils.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' thread-utils.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o tmp-objdir.o -c -MF ./.depend/tmp-objdir.o.d -MQ tmp-objdir.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' tmp-objdir.c @@ -1559,13 +1588,19 @@ gcc -o trace.o -c -MF ./.depend/trace.o.d -MQ trace.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' trace.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o trace2/tr2_cmd_name.o -c -MF trace2/.depend/tr2_cmd_name.o.d -MQ trace2/tr2_cmd_name.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' trace2/tr2_cmd_name.c +gcc -o submodule.o -c -MF ./.depend/submodule.o.d -MQ submodule.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' submodule.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o trace2/tr2_cfg.o -c -MF trace2/.depend/tr2_cfg.o.d -MQ trace2/tr2_cfg.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' trace2/tr2_cfg.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o trace2/tr2_dst.o -c -MF trace2/.depend/tr2_dst.o.d -MQ trace2/tr2_dst.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' trace2/tr2_dst.c +gcc -o trace2/tr2_cmd_name.o -c -MF trace2/.depend/tr2_cmd_name.o.d -MQ trace2/tr2_cmd_name.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' trace2/tr2_cmd_name.c +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' +gcc -o sequencer.o -c -MF ./.depend/sequencer.o.d -MQ sequencer.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' sequencer.c +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' +gcc -o trace2.o -c -MF ./.depend/trace2.o.d -MQ trace2.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' trace2.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o trace2/tr2_sid.o -c -MF trace2/.depend/tr2_sid.o.d -MQ trace2/tr2_sid.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' trace2/tr2_sid.c @@ -1574,24 +1609,27 @@ gcc -o trace2/tr2_sysenv.o -c -MF trace2/.depend/tr2_sysenv.o.d -MQ trace2/tr2_sysenv.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' trace2/tr2_sysenv.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o trace2.o -c -MF ./.depend/trace2.o.d -MQ trace2.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' trace2.c +gcc -o trace2/tr2_dst.o -c -MF trace2/.depend/tr2_dst.o.d -MQ trace2/tr2_dst.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' trace2/tr2_dst.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o trace2/tr2_tbuf.o -c -MF trace2/.depend/tr2_tbuf.o.d -MQ trace2/tr2_tbuf.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' trace2/tr2_tbuf.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o trace2/tr2_tgt_normal.o -c -MF trace2/.depend/tr2_tgt_normal.o.d -MQ trace2/tr2_tgt_normal.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' trace2/tr2_tgt_normal.c +gcc -o trace2/tr2_tls.o -c -MF trace2/.depend/tr2_tls.o.d -MQ trace2/tr2_tls.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' trace2/tr2_tls.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o trace2/tr2_tgt_event.o -c -MF trace2/.depend/tr2_tgt_event.o.d -MQ trace2/tr2_tgt_event.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' trace2/tr2_tgt_event.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o trace2/tr2_tls.o -c -MF trace2/.depend/tr2_tls.o.d -MQ trace2/tr2_tls.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' trace2/tr2_tls.c +gcc -o trace2/tr2_tgt_normal.o -c -MF trace2/.depend/tr2_tgt_normal.o.d -MQ trace2/tr2_tgt_normal.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' trace2/tr2_tgt_normal.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o trace2/tr2_tgt_perf.o -c -MF trace2/.depend/tr2_tgt_perf.o.d -MQ trace2/tr2_tgt_perf.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' trace2/tr2_tgt_perf.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' +gcc -o tree-diff.o -c -MF ./.depend/tree-diff.o.d -MQ tree-diff.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' tree-diff.c +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' gcc -o trailer.o -c -MF ./.depend/trailer.o.d -MQ trailer.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' trailer.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' @@ -1604,64 +1642,61 @@ gcc -o tree.o -c -MF ./.depend/tree.o.d -MQ tree.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' tree.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o tree-diff.o -c -MF ./.depend/tree-diff.o.d -MQ tree-diff.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' tree-diff.c +gcc -o url.o -c -MF ./.depend/url.o.d -MQ url.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' url.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o tree-walk.o -c -MF ./.depend/tree-walk.o.d -MQ tree-walk.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' tree-walk.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o url.o -c -MF ./.depend/url.o.d -MQ url.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' url.c -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' -gcc -o upload-pack.o -c -MF ./.depend/upload-pack.o.d -MQ upload-pack.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' upload-pack.c +gcc -o usage.o -c -MF ./.depend/usage.o.d -MQ usage.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' usage.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o urlmatch.o -c -MF ./.depend/urlmatch.o.d -MQ urlmatch.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' urlmatch.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o usage.o -c -MF ./.depend/usage.o.d -MQ usage.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' usage.c +gcc -o userdiff.o -c -MF ./.depend/userdiff.o.d -MQ userdiff.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' userdiff.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o unpack-trees.o -c -MF ./.depend/unpack-trees.o.d -MQ unpack-trees.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' unpack-trees.c +gcc -o varint.o -c -MF ./.depend/varint.o.d -MQ varint.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' varint.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o userdiff.o -c -MF ./.depend/userdiff.o.d -MQ userdiff.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' userdiff.c +gcc -o upload-pack.o -c -MF ./.depend/upload-pack.o.d -MQ upload-pack.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' upload-pack.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o varint.o -c -MF ./.depend/varint.o.d -MQ varint.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' varint.c +gcc -o versioncmp.o -c -MF ./.depend/versioncmp.o.d -MQ versioncmp.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' versioncmp.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o versioncmp.o -c -MF ./.depend/versioncmp.o.d -MQ versioncmp.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' versioncmp.c +gcc -o utf8.o -c -MF ./.depend/utf8.o.d -MQ utf8.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' utf8.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o walker.o -c -MF ./.depend/walker.o.d -MQ walker.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' walker.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o utf8.o -c -MF ./.depend/utf8.o.d -MQ utf8.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' utf8.c +gcc -o wildmatch.o -c -MF ./.depend/wildmatch.o.d -MQ wildmatch.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' wildmatch.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o wildmatch.o -c -MF ./.depend/wildmatch.o.d -MQ wildmatch.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' wildmatch.c +gcc -o unpack-trees.o -c -MF ./.depend/unpack-trees.o.d -MQ unpack-trees.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' unpack-trees.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o write-or-die.o -c -MF ./.depend/write-or-die.o.d -MQ write-or-die.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' write-or-die.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o wrapper.o -c -MF ./.depend/wrapper.o.d -MQ wrapper.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' wrapper.c +gcc -o ws.o -c -MF ./.depend/ws.o.d -MQ ws.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' ws.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o ws.o -c -MF ./.depend/ws.o.d -MQ ws.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' ws.c +gcc -o wrapper.o -c -MF ./.depend/wrapper.o.d -MQ wrapper.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' wrapper.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o worktree.o -c -MF ./.depend/worktree.o.d -MQ worktree.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' worktree.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o xdiff-interface.o -c -MF ./.depend/xdiff-interface.o.d -MQ xdiff-interface.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' xdiff-interface.c +gcc -o unix-socket.o -c -MF ./.depend/unix-socket.o.d -MQ unix-socket.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' unix-socket.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o zlib.o -c -MF ./.depend/zlib.o.d -MQ zlib.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' zlib.c +gcc -o xdiff-interface.o -c -MF ./.depend/xdiff-interface.o.d -MQ xdiff-interface.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' xdiff-interface.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o unix-socket.o -c -MF ./.depend/unix-socket.o.d -MQ unix-socket.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' unix-socket.c +gcc -o zlib.o -c -MF ./.depend/zlib.o.d -MQ zlib.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' zlib.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o sha1dc_git.o -c -MF ./.depend/sha1dc_git.o.d -MQ sha1dc_git.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' sha1dc_git.c @@ -1670,31 +1705,31 @@ gcc -o sha1dc/ubc_check.o -c -MF sha1dc/.depend/ubc_check.o.d -MQ sha1dc/ubc_check.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' sha1dc/ubc_check.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o sha1dc/sha1.o -c -MF sha1dc/.depend/sha1.o.d -MQ sha1dc/sha1.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' sha1dc/sha1.c -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' -gcc -o sha256/block/sha256.o -c -MF sha256/block/.depend/sha256.o.d -MQ sha256/block/sha256.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' sha256/block/sha256.c -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' gcc -o compat/fopen.o -c -MF compat/.depend/fopen.o.d -MQ compat/fopen.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' compat/fopen.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o compat/strlcpy.o -c -MF compat/.depend/strlcpy.o.d -MQ compat/strlcpy.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' compat/strlcpy.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' +gcc -o sha256/block/sha256.o -c -MF sha256/block/.depend/sha256.o.d -MQ sha256/block/sha256.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' sha256/block/sha256.c +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' gcc -o compat/qsort_s.o -c -MF compat/.depend/qsort_s.o.d -MQ compat/qsort_s.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' compat/qsort_s.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o wt-status.o -c -MF ./.depend/wt-status.o.d -MQ wt-status.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' wt-status.c +gcc -o sha1dc/sha1.o -c -MF sha1dc/.depend/sha1.o.d -MQ sha1dc/sha1.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' sha1dc/sha1.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o xdiff/xemit.o -c -MF xdiff/.depend/xemit.o.d -MQ xdiff/xemit.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' xdiff/xemit.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' +gcc -o xdiff/xdiffi.o -c -MF xdiff/.depend/xdiffi.o.d -MQ xdiff/xdiffi.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' xdiff/xdiffi.c +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' gcc -o xdiff/xhistogram.o -c -MF xdiff/.depend/xhistogram.o.d -MQ xdiff/xhistogram.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' xdiff/xhistogram.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o xdiff/xdiffi.o -c -MF xdiff/.depend/xdiffi.o.d -MQ xdiff/xdiffi.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' xdiff/xdiffi.c +gcc -o wt-status.o -c -MF ./.depend/wt-status.o.d -MQ wt-status.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' wt-status.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o xdiff/xpatience.o -c -MF xdiff/.depend/xpatience.o.d -MQ xdiff/xpatience.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' xdiff/xpatience.c @@ -1709,28 +1744,22 @@ gcc -o xdiff/xutils.o -c -MF xdiff/.depend/xutils.o.d -MQ xdiff/xutils.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' xdiff/xutils.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o http-backend.o -c -MF ./.depend/http-backend.o.d -MQ http-backend.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' http-backend.c -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' gcc -o sh-i18n--envsubst.o -c -MF ./.depend/sh-i18n--envsubst.o.d -MQ sh-i18n--envsubst.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' sh-i18n--envsubst.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o imap-send.o -c -MF ./.depend/imap-send.o.d -MQ imap-send.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' imap-send.c +gcc -o http-backend.o -c -MF ./.depend/http-backend.o.d -MQ http-backend.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' http-backend.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o shell.o -c -MF ./.depend/shell.o.d -MQ shell.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' shell.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o http-fetch.o -c -MF ./.depend/http-fetch.o.d -MQ http-fetch.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' http-fetch.c -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' -gcc -o http-walker.o -c -MF ./.depend/http-walker.o.d -MQ http-walker.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' http-walker.c +gcc -o imap-send.o -c -MF ./.depend/imap-send.o.d -MQ imap-send.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' imap-send.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o http.o -c -MF ./.depend/http.o.d -MQ http.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' http.c +gcc -o http-fetch.o -c -MF ./.depend/http-fetch.o.d -MQ http-fetch.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' http-fetch.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o http-push.o -c -MF ./.depend/http-push.o.d -MQ http-push.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' http-push.c +gcc -o http-walker.o -c -MF ./.depend/http-walker.o.d -MQ http-walker.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' http-walker.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' * new script parameters @@ -1739,9 +1768,6 @@ * new perl-specific parameters make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o remote-curl.o -c -MF ./.depend/remote-curl.o.d -MQ remote-curl.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' remote-curl.c -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' * new Python interpreter location make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' @@ -1750,13 +1776,19 @@ mv git-instaweb+ git-instaweb make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/add.o -c -MF builtin/.depend/add.o.d -MQ builtin/add.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/add.c +gcc -o git.o -c -MF ./.depend/git.o.d -MQ git.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' '-DGIT_HTML_PATH="share/doc/git/html"' '-DGIT_MAN_PATH="share/man"' '-DGIT_INFO_PATH="share/info"' git.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/annotate.o -c -MF builtin/.depend/annotate.o.d -MQ builtin/annotate.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/annotate.c +gcc -o http.o -c -MF ./.depend/http.o.d -MQ http.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' http.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o git.o -c -MF ./.depend/git.o.d -MQ git.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' '-DGIT_HTML_PATH="share/doc/git/html"' '-DGIT_MAN_PATH="share/man"' '-DGIT_INFO_PATH="share/info"' git.c +gcc -o http-push.o -c -MF ./.depend/http-push.o.d -MQ http-push.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' http-push.c +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' +gcc -o remote-curl.o -c -MF ./.depend/remote-curl.o.d -MQ remote-curl.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' remote-curl.c +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' +gcc -o builtin/annotate.o -c -MF builtin/.depend/annotate.o.d -MQ builtin/annotate.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/annotate.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o builtin/apply.o -c -MF builtin/.depend/apply.o.d -MQ builtin/apply.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/apply.c @@ -1765,79 +1797,79 @@ gcc -o builtin/archive.o -c -MF builtin/.depend/archive.o.d -MQ builtin/archive.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/archive.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/bisect--helper.o -c -MF builtin/.depend/bisect--helper.o.d -MQ builtin/bisect--helper.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/bisect--helper.c +gcc -o builtin/add.o -c -MF builtin/.depend/add.o.d -MQ builtin/add.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/add.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/am.o -c -MF builtin/.depend/am.o.d -MQ builtin/am.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/am.c +gcc -o builtin/bisect--helper.o -c -MF builtin/.depend/bisect--helper.o.d -MQ builtin/bisect--helper.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/bisect--helper.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o builtin/blame.o -c -MF builtin/.depend/blame.o.d -MQ builtin/blame.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/blame.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/bugreport.o -c -MF builtin/.depend/bugreport.o.d -MQ builtin/bugreport.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/bugreport.c +gcc -o builtin/bundle.o -c -MF builtin/.depend/bundle.o.d -MQ builtin/bundle.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/bundle.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/bundle.o -c -MF builtin/.depend/bundle.o.d -MQ builtin/bundle.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/bundle.c +gcc -o builtin/bugreport.o -c -MF builtin/.depend/bugreport.o.d -MQ builtin/bugreport.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/bugreport.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/check-attr.o -c -MF builtin/.depend/check-attr.o.d -MQ builtin/check-attr.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/check-attr.c +gcc -o builtin/branch.o -c -MF builtin/.depend/branch.o.d -MQ builtin/branch.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/branch.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/cat-file.o -c -MF builtin/.depend/cat-file.o.d -MQ builtin/cat-file.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/cat-file.c +gcc -o builtin/check-ignore.o -c -MF builtin/.depend/check-ignore.o.d -MQ builtin/check-ignore.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/check-ignore.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/check-mailmap.o -c -MF builtin/.depend/check-mailmap.o.d -MQ builtin/check-mailmap.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/check-mailmap.c +gcc -o builtin/check-attr.o -c -MF builtin/.depend/check-attr.o.d -MQ builtin/check-attr.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/check-attr.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/check-ignore.o -c -MF builtin/.depend/check-ignore.o.d -MQ builtin/check-ignore.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/check-ignore.c +gcc -o builtin/am.o -c -MF builtin/.depend/am.o.d -MQ builtin/am.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/am.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/branch.o -c -MF builtin/.depend/branch.o.d -MQ builtin/branch.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/branch.c +gcc -o builtin/check-mailmap.o -c -MF builtin/.depend/check-mailmap.o.d -MQ builtin/check-mailmap.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/check-mailmap.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o builtin/check-ref-format.o -c -MF builtin/.depend/check-ref-format.o.d -MQ builtin/check-ref-format.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/check-ref-format.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/checkout-index.o -c -MF builtin/.depend/checkout-index.o.d -MQ builtin/checkout-index.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/checkout-index.c +gcc -o builtin/cat-file.o -c -MF builtin/.depend/cat-file.o.d -MQ builtin/cat-file.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/cat-file.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/clean.o -c -MF builtin/.depend/clean.o.d -MQ builtin/clean.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/clean.c +gcc -o builtin/checkout-index.o -c -MF builtin/.depend/checkout-index.o.d -MQ builtin/checkout-index.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/checkout-index.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o builtin/column.o -c -MF builtin/.depend/column.o.d -MQ builtin/column.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/column.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/checkout.o -c -MF builtin/.depend/checkout.o.d -MQ builtin/checkout.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/checkout.c -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' gcc -o builtin/commit-graph.o -c -MF builtin/.depend/commit-graph.o.d -MQ builtin/commit-graph.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/commit-graph.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/clone.o -c -MF builtin/.depend/clone.o.d -MQ builtin/clone.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/clone.c +gcc -o builtin/clean.o -c -MF builtin/.depend/clean.o.d -MQ builtin/clean.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/clean.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o builtin/commit-tree.o -c -MF builtin/.depend/commit-tree.o.d -MQ builtin/commit-tree.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/commit-tree.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/count-objects.o -c -MF builtin/.depend/count-objects.o.d -MQ builtin/count-objects.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/count-objects.c +gcc -o builtin/clone.o -c -MF builtin/.depend/clone.o.d -MQ builtin/clone.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/clone.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/config.o -c -MF builtin/.depend/config.o.d -MQ builtin/config.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/config.c +gcc -o builtin/checkout.o -c -MF builtin/.depend/checkout.o.d -MQ builtin/checkout.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/checkout.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/credential-cache--daemon.o -c -MF builtin/.depend/credential-cache--daemon.o.d -MQ builtin/credential-cache--daemon.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/credential-cache--daemon.c +gcc -o builtin/count-objects.o -c -MF builtin/.depend/count-objects.o.d -MQ builtin/count-objects.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/count-objects.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o builtin/credential-cache.o -c -MF builtin/.depend/credential-cache.o.d -MQ builtin/credential-cache.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/credential-cache.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/credential-store.o -c -MF builtin/.depend/credential-store.o.d -MQ builtin/credential-store.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/credential-store.c +gcc -o builtin/credential-cache--daemon.o -c -MF builtin/.depend/credential-cache--daemon.o.d -MQ builtin/credential-cache--daemon.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/credential-cache--daemon.c +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' +gcc -o builtin/config.o -c -MF builtin/.depend/config.o.d -MQ builtin/config.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/config.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o builtin/credential.o -c -MF builtin/.depend/credential.o.d -MQ builtin/credential.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/credential.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/commit.o -c -MF builtin/.depend/commit.o.d -MQ builtin/commit.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/commit.c +gcc -o builtin/credential-store.o -c -MF builtin/.depend/credential-store.o.d -MQ builtin/credential-store.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/credential-store.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o builtin/diff-files.o -c -MF builtin/.depend/diff-files.o.d -MQ builtin/diff-files.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/diff-files.c @@ -1846,16 +1878,19 @@ gcc -o builtin/diff-index.o -c -MF builtin/.depend/diff-index.o.d -MQ builtin/diff-index.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/diff-index.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' +gcc -o builtin/commit.o -c -MF builtin/.depend/commit.o.d -MQ builtin/commit.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/commit.c +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' gcc -o builtin/diff-tree.o -c -MF builtin/.depend/diff-tree.o.d -MQ builtin/diff-tree.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/diff-tree.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o builtin/describe.o -c -MF builtin/.depend/describe.o.d -MQ builtin/describe.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/describe.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/env--helper.o -c -MF builtin/.depend/env--helper.o.d -MQ builtin/env--helper.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/env--helper.c +gcc -o builtin/diff.o -c -MF builtin/.depend/diff.o.d -MQ builtin/diff.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/diff.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/diff.o -c -MF builtin/.depend/diff.o.d -MQ builtin/diff.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/diff.c +gcc -o builtin/env--helper.o -c -MF builtin/.depend/env--helper.o.d -MQ builtin/env--helper.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/env--helper.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o builtin/difftool.o -c -MF builtin/.depend/difftool.o.d -MQ builtin/difftool.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/difftool.c @@ -1864,9 +1899,6 @@ gcc -o builtin/fetch-pack.o -c -MF builtin/.depend/fetch-pack.o.d -MQ builtin/fetch-pack.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/fetch-pack.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/fast-export.o -c -MF builtin/.depend/fast-export.o.d -MQ builtin/fast-export.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/fast-export.c -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' gcc -o builtin/fmt-merge-msg.o -c -MF builtin/.depend/fmt-merge-msg.o.d -MQ builtin/fmt-merge-msg.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/fmt-merge-msg.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' @@ -1876,53 +1908,53 @@ gcc -o builtin/for-each-repo.o -c -MF builtin/.depend/for-each-repo.o.d -MQ builtin/for-each-repo.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/for-each-repo.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/fetch.o -c -MF builtin/.depend/fetch.o.d -MQ builtin/fetch.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/fetch.c +gcc -o builtin/fast-export.o -c -MF builtin/.depend/fast-export.o.d -MQ builtin/fast-export.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/fast-export.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/fsck.o -c -MF builtin/.depend/fsck.o.d -MQ builtin/fsck.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/fsck.c +gcc -o builtin/fetch.o -c -MF builtin/.depend/fetch.o.d -MQ builtin/fetch.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/fetch.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/get-tar-commit-id.o -c -MF builtin/.depend/get-tar-commit-id.o.d -MQ builtin/get-tar-commit-id.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/get-tar-commit-id.c +gcc -o builtin/fsck.o -c -MF builtin/.depend/fsck.o.d -MQ builtin/fsck.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/fsck.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o builtin/gc.o -c -MF builtin/.depend/gc.o.d -MQ builtin/gc.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/gc.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/fast-import.o -c -MF builtin/.depend/fast-import.o.d -MQ builtin/fast-import.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/fast-import.c -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/hash-object.o -c -MF builtin/.depend/hash-object.o.d -MQ builtin/hash-object.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/hash-object.c +gcc -o builtin/get-tar-commit-id.o -c -MF builtin/.depend/get-tar-commit-id.o.d -MQ builtin/get-tar-commit-id.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/get-tar-commit-id.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' /bin/sh ./generate-configlist.sh \ >config-list.h+ && mv config-list.h+ config-list.h make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/grep.o -c -MF builtin/.depend/grep.o.d -MQ builtin/grep.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/grep.c +gcc -o builtin/hash-object.o -c -MF builtin/.depend/hash-object.o.d -MQ builtin/hash-object.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/hash-object.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/interpret-trailers.o -c -MF builtin/.depend/interpret-trailers.o.d -MQ builtin/interpret-trailers.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/interpret-trailers.c +gcc -o builtin/init-db.o -c -MF builtin/.depend/init-db.o.d -MQ builtin/init-db.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' -DDEFAULT_GIT_TEMPLATE_DIR='"share/git-core/templates"' builtin/init-db.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/init-db.o -c -MF builtin/.depend/init-db.o.d -MQ builtin/init-db.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' -DDEFAULT_GIT_TEMPLATE_DIR='"share/git-core/templates"' builtin/init-db.c +gcc -o builtin/interpret-trailers.o -c -MF builtin/.depend/interpret-trailers.o.d -MQ builtin/interpret-trailers.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/interpret-trailers.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/index-pack.o -c -MF builtin/.depend/index-pack.o.d -MQ builtin/index-pack.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/index-pack.c +gcc -o builtin/grep.o -c -MF builtin/.depend/grep.o.d -MQ builtin/grep.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/grep.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/ls-files.o -c -MF builtin/.depend/ls-files.o.d -MQ builtin/ls-files.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/ls-files.c +gcc -o builtin/fast-import.o -c -MF builtin/.depend/fast-import.o.d -MQ builtin/fast-import.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/fast-import.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o builtin/ls-remote.o -c -MF builtin/.depend/ls-remote.o.d -MQ builtin/ls-remote.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/ls-remote.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/mailinfo.o -c -MF builtin/.depend/mailinfo.o.d -MQ builtin/mailinfo.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/mailinfo.c +gcc -o builtin/ls-files.o -c -MF builtin/.depend/ls-files.o.d -MQ builtin/ls-files.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/ls-files.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o builtin/ls-tree.o -c -MF builtin/.depend/ls-tree.o.d -MQ builtin/ls-tree.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/ls-tree.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/mailsplit.o -c -MF builtin/.depend/mailsplit.o.d -MQ builtin/mailsplit.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/mailsplit.c +gcc -o builtin/index-pack.o -c -MF builtin/.depend/index-pack.o.d -MQ builtin/index-pack.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/index-pack.c +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' +gcc -o builtin/mailinfo.o -c -MF builtin/.depend/mailinfo.o.d -MQ builtin/mailinfo.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/mailinfo.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o builtin/merge-base.o -c -MF builtin/.depend/merge-base.o.d -MQ builtin/merge-base.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/merge-base.c @@ -1931,22 +1963,25 @@ gcc -o builtin/merge-file.o -c -MF builtin/.depend/merge-file.o.d -MQ builtin/merge-file.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/merge-file.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/merge-index.o -c -MF builtin/.depend/merge-index.o.d -MQ builtin/merge-index.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/merge-index.c +gcc -o builtin/mailsplit.o -c -MF builtin/.depend/mailsplit.o.d -MQ builtin/mailsplit.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/mailsplit.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o builtin/merge-ours.o -c -MF builtin/.depend/merge-ours.o.d -MQ builtin/merge-ours.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/merge-ours.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' +gcc -o builtin/merge-index.o -c -MF builtin/.depend/merge-index.o.d -MQ builtin/merge-index.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/merge-index.c +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' gcc -o builtin/merge-recursive.o -c -MF builtin/.depend/merge-recursive.o.d -MQ builtin/merge-recursive.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/merge-recursive.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/log.o -c -MF builtin/.depend/log.o.d -MQ builtin/log.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/log.c +gcc -o builtin/mktag.o -c -MF builtin/.depend/mktag.o.d -MQ builtin/mktag.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/mktag.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/merge-tree.o -c -MF builtin/.depend/merge-tree.o.d -MQ builtin/merge-tree.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/merge-tree.c +gcc -o builtin/log.o -c -MF builtin/.depend/log.o.d -MQ builtin/log.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/log.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/mktag.o -c -MF builtin/.depend/mktag.o.d -MQ builtin/mktag.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/mktag.c +gcc -o builtin/merge-tree.o -c -MF builtin/.depend/merge-tree.o.d -MQ builtin/merge-tree.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/merge-tree.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o builtin/multi-pack-index.o -c -MF builtin/.depend/multi-pack-index.o.d -MQ builtin/multi-pack-index.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/multi-pack-index.c @@ -1970,10 +2005,10 @@ gcc -o builtin/pack-refs.o -c -MF builtin/.depend/pack-refs.o.d -MQ builtin/pack-refs.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/pack-refs.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/patch-id.o -c -MF builtin/.depend/patch-id.o.d -MQ builtin/patch-id.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/patch-id.c +gcc -o builtin/prune-packed.o -c -MF builtin/.depend/prune-packed.o.d -MQ builtin/prune-packed.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/prune-packed.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/prune-packed.o -c -MF builtin/.depend/prune-packed.o.d -MQ builtin/prune-packed.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/prune-packed.c +gcc -o builtin/patch-id.o -c -MF builtin/.depend/patch-id.o.d -MQ builtin/patch-id.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/patch-id.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o builtin/pack-redundant.o -c -MF builtin/.depend/pack-redundant.o.d -MQ builtin/pack-redundant.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/pack-redundant.c @@ -1982,19 +2017,16 @@ gcc -o builtin/prune.o -c -MF builtin/.depend/prune.o.d -MQ builtin/prune.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/prune.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/pull.o -c -MF builtin/.depend/pull.o.d -MQ builtin/pull.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/pull.c -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/push.o -c -MF builtin/.depend/push.o.d -MQ builtin/push.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/push.c +gcc -o builtin/range-diff.o -c -MF builtin/.depend/range-diff.o.d -MQ builtin/range-diff.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/range-diff.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/range-diff.o -c -MF builtin/.depend/range-diff.o.d -MQ builtin/range-diff.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/range-diff.c +gcc -o builtin/pull.o -c -MF builtin/.depend/pull.o.d -MQ builtin/pull.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/pull.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o builtin/read-tree.o -c -MF builtin/.depend/read-tree.o.d -MQ builtin/read-tree.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/read-tree.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/pack-objects.o -c -MF builtin/.depend/pack-objects.o.d -MQ builtin/pack-objects.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/pack-objects.c +gcc -o builtin/push.o -c -MF builtin/.depend/push.o.d -MQ builtin/push.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/push.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o builtin/reflog.o -c -MF builtin/.depend/reflog.o.d -MQ builtin/reflog.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/reflog.c @@ -2006,7 +2038,7 @@ gcc -o builtin/remote-fd.o -c -MF builtin/.depend/remote-fd.o.d -MQ builtin/remote-fd.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/remote-fd.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/rebase.o -c -MF builtin/.depend/rebase.o.d -MQ builtin/rebase.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/rebase.c +gcc -o builtin/pack-objects.o -c -MF builtin/.depend/pack-objects.o.d -MQ builtin/pack-objects.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/pack-objects.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o builtin/receive-pack.o -c -MF builtin/.depend/receive-pack.o.d -MQ builtin/receive-pack.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/receive-pack.c @@ -2015,40 +2047,46 @@ gcc -o builtin/repack.o -c -MF builtin/.depend/repack.o.d -MQ builtin/repack.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/repack.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/replace.o -c -MF builtin/.depend/replace.o.d -MQ builtin/replace.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/replace.c +gcc -o builtin/rebase.o -c -MF builtin/.depend/rebase.o.d -MQ builtin/rebase.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/rebase.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o builtin/rerere.o -c -MF builtin/.depend/rerere.o.d -MQ builtin/rerere.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/rerere.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/reset.o -c -MF builtin/.depend/reset.o.d -MQ builtin/reset.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/reset.c +gcc -o builtin/replace.o -c -MF builtin/.depend/replace.o.d -MQ builtin/replace.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/replace.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/rev-list.o -c -MF builtin/.depend/rev-list.o.d -MQ builtin/rev-list.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/rev-list.c +gcc -o builtin/reset.o -c -MF builtin/.depend/reset.o.d -MQ builtin/reset.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/reset.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o builtin/remote.o -c -MF builtin/.depend/remote.o.d -MQ builtin/remote.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/remote.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' +gcc -o builtin/rev-list.o -c -MF builtin/.depend/rev-list.o.d -MQ builtin/rev-list.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/rev-list.c +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' gcc -o builtin/revert.o -c -MF builtin/.depend/revert.o.d -MQ builtin/revert.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/revert.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o builtin/rm.o -c -MF builtin/.depend/rm.o.d -MQ builtin/rm.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/rm.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' +gcc -o builtin/send-pack.o -c -MF builtin/.depend/send-pack.o.d -MQ builtin/send-pack.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/send-pack.c +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' gcc -o builtin/rev-parse.o -c -MF builtin/.depend/rev-parse.o.d -MQ builtin/rev-parse.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/rev-parse.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/send-pack.o -c -MF builtin/.depend/send-pack.o.d -MQ builtin/send-pack.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/send-pack.c +gcc -o builtin/shortlog.o -c -MF builtin/.depend/shortlog.o.d -MQ builtin/shortlog.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/shortlog.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o builtin/show-index.o -c -MF builtin/.depend/show-index.o.d -MQ builtin/show-index.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/show-index.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/shortlog.o -c -MF builtin/.depend/shortlog.o.d -MQ builtin/shortlog.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/shortlog.c +gcc -o builtin/show-ref.o -c -MF builtin/.depend/show-ref.o.d -MQ builtin/show-ref.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/show-ref.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/show-ref.o -c -MF builtin/.depend/show-ref.o.d -MQ builtin/show-ref.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/show-ref.c +gcc -o builtin/stripspace.o -c -MF builtin/.depend/stripspace.o.d -MQ builtin/stripspace.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/stripspace.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o builtin/sparse-checkout.o -c -MF builtin/.depend/sparse-checkout.o.d -MQ builtin/sparse-checkout.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/sparse-checkout.c @@ -2057,34 +2095,28 @@ gcc -o builtin/show-branch.o -c -MF builtin/.depend/show-branch.o.d -MQ builtin/show-branch.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/show-branch.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/stripspace.o -c -MF builtin/.depend/stripspace.o.d -MQ builtin/stripspace.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/stripspace.c -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' gcc -o builtin/symbolic-ref.o -c -MF builtin/.depend/symbolic-ref.o.d -MQ builtin/symbolic-ref.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/symbolic-ref.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/stash.o -c -MF builtin/.depend/stash.o.d -MQ builtin/stash.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/stash.c -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' gcc -o builtin/unpack-file.o -c -MF builtin/.depend/unpack-file.o.d -MQ builtin/unpack-file.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/unpack-file.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/tag.o -c -MF builtin/.depend/tag.o.d -MQ builtin/tag.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/tag.c +gcc -o builtin/stash.o -c -MF builtin/.depend/stash.o.d -MQ builtin/stash.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/stash.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o builtin/unpack-objects.o -c -MF builtin/.depend/unpack-objects.o.d -MQ builtin/unpack-objects.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/unpack-objects.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/submodule--helper.o -c -MF builtin/.depend/submodule--helper.o.d -MQ builtin/submodule--helper.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/submodule--helper.c +gcc -o builtin/tag.o -c -MF builtin/.depend/tag.o.d -MQ builtin/tag.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/tag.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o builtin/update-server-info.o -c -MF builtin/.depend/update-server-info.o.d -MQ builtin/update-server-info.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/update-server-info.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/update-ref.o -c -MF builtin/.depend/update-ref.o.d -MQ builtin/update-ref.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/update-ref.c +gcc -o builtin/upload-archive.o -c -MF builtin/.depend/upload-archive.o.d -MQ builtin/upload-archive.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/upload-archive.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/upload-archive.o -c -MF builtin/.depend/upload-archive.o.d -MQ builtin/upload-archive.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/upload-archive.c +gcc -o builtin/update-ref.o -c -MF builtin/.depend/update-ref.o.d -MQ builtin/update-ref.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/update-ref.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o builtin/upload-pack.o -c -MF builtin/.depend/upload-pack.o.d -MQ builtin/upload-pack.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/upload-pack.c @@ -2093,16 +2125,16 @@ gcc -o builtin/var.o -c -MF builtin/.depend/var.o.d -MQ builtin/var.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/var.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/update-index.o -c -MF builtin/.depend/update-index.o.d -MQ builtin/update-index.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/update-index.c +gcc -o builtin/verify-pack.o -c -MF builtin/.depend/verify-pack.o.d -MQ builtin/verify-pack.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/verify-pack.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o builtin/verify-commit.o -c -MF builtin/.depend/verify-commit.o.d -MQ builtin/verify-commit.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/verify-commit.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/verify-tag.o -c -MF builtin/.depend/verify-tag.o.d -MQ builtin/verify-tag.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/verify-tag.c +gcc -o builtin/submodule--helper.o -c -MF builtin/.depend/submodule--helper.o.d -MQ builtin/submodule--helper.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/submodule--helper.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/verify-pack.o -c -MF builtin/.depend/verify-pack.o.d -MQ builtin/verify-pack.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/verify-pack.c +gcc -o builtin/verify-tag.o -c -MF builtin/.depend/verify-tag.o.d -MQ builtin/verify-tag.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/verify-tag.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' rm -f git-mergetool--lib git-mergetool--lib+ && sed -e '1s|#!.*/sh|#!/bin/sh|' -e 's|@SHELL_PATH@|/bin/sh|' -e 's|@@DIFF@@|diff|' -e 's|@@LOCALEDIR@@|/usr/share/locale|g' -e 's/@@NO_CURL@@//g' -e 's/@@USE_GETTEXT_SCHEME@@//g' -e '/^# @@BROKEN_PATH_FIX@@$/d' -e 's|@@GITWEBDIR@@|/usr/share/gitweb|g' -e 's|@@PERL@@|/usr/bin/perl|g' -e 's|@@SANE_TEXT_GREP@@|-a|g' -e 's|@@PAGER_ENV@@|LESS=FRX LV=-c|g' git-mergetool--lib.sh >git-mergetool--lib+ && \ @@ -2117,17 +2149,17 @@ mv git-sh-i18n+ git-sh-i18n make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/write-tree.o -c -MF builtin/.depend/write-tree.o.d -MQ builtin/write-tree.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/write-tree.c -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' rm -f git-sh-setup git-sh-setup+ && sed -e '1s|#!.*/sh|#!/bin/sh|' -e 's|@SHELL_PATH@|/bin/sh|' -e 's|@@DIFF@@|diff|' -e 's|@@LOCALEDIR@@|/usr/share/locale|g' -e 's/@@NO_CURL@@//g' -e 's/@@USE_GETTEXT_SCHEME@@//g' -e '/^# @@BROKEN_PATH_FIX@@$/d' -e 's|@@GITWEBDIR@@|/usr/share/gitweb|g' -e 's|@@PERL@@|/usr/bin/perl|g' -e 's|@@SANE_TEXT_GREP@@|-a|g' -e 's|@@PAGER_ENV@@|LESS=FRX LV=-c|g' git-sh-setup.sh >git-sh-setup+ && \ mv git-sh-setup+ git-sh-setup make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o attr.o -c -MF ./.depend/attr.o.d -MQ attr.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' -DETC_GITATTRIBUTES='"/etc/gitattributes"' attr.c +gcc -o builtin/write-tree.o -c -MF builtin/.depend/write-tree.o.d -MQ builtin/write-tree.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/write-tree.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o help.o -c -MF ./.depend/help.o.d -MQ help.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' help.c +gcc -o builtin/update-index.o -c -MF builtin/.depend/update-index.o.d -MQ builtin/update-index.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/update-index.c +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' +gcc -o version.o -c -MF ./.depend/version.o.d -MQ version.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' '-DGIT_VERSION="2.30.2"' '-DGIT_USER_AGENT="git/2.30.2"' '-DGIT_BUILT_FROM_COMMIT=""' version.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' rm -f xdiff/lib.a && ar rcs xdiff/lib.a xdiff/xdiffi.o xdiff/xemit.o xdiff/xhistogram.o xdiff/xmerge.o xdiff/xpatience.o xdiff/xprepare.o xdiff/xutils.o @@ -2153,9 +2185,6 @@ mv git-merge-octopus+ git-merge-octopus make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o version.o -c -MF ./.depend/version.o.d -MQ version.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' '-DGIT_VERSION="2.30.2"' '-DGIT_USER_AGENT="git/2.30.2"' '-DGIT_BUILT_FROM_COMMIT=""' version.c -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' rm -f git-merge-one-file git-merge-one-file+ && sed -e '1s|#!.*/sh|#!/bin/sh|' -e 's|@SHELL_PATH@|/bin/sh|' -e 's|@@DIFF@@|diff|' -e 's|@@LOCALEDIR@@|/usr/share/locale|g' -e 's/@@NO_CURL@@//g' -e 's/@@USE_GETTEXT_SCHEME@@//g' -e '/^# @@BROKEN_PATH_FIX@@$/d' -e 's|@@GITWEBDIR@@|/usr/share/gitweb|g' -e 's|@@PERL@@|/usr/bin/perl|g' -e 's|@@SANE_TEXT_GREP@@|-a|g' -e 's|@@PAGER_ENV@@|LESS=FRX LV=-c|g' git-merge-one-file.sh >git-merge-one-file+ && \ chmod +x git-merge-one-file+ && \ mv git-merge-one-file+ git-merge-one-file @@ -2171,9 +2200,6 @@ mv git-mergetool+ git-mergetool make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o builtin/worktree.o -c -MF builtin/.depend/worktree.o.d -MQ builtin/worktree.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/worktree.c -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' rm -f git-quiltimport git-quiltimport+ && sed -e '1s|#!.*/sh|#!/bin/sh|' -e 's|@SHELL_PATH@|/bin/sh|' -e 's|@@DIFF@@|diff|' -e 's|@@LOCALEDIR@@|/usr/share/locale|g' -e 's/@@NO_CURL@@//g' -e 's/@@USE_GETTEXT_SCHEME@@//g' -e '/^# @@BROKEN_PATH_FIX@@$/d' -e 's|@@GITWEBDIR@@|/usr/share/gitweb|g' -e 's|@@PERL@@|/usr/bin/perl|g' -e 's|@@SANE_TEXT_GREP@@|-a|g' -e 's|@@PAGER_ENV@@|LESS=FRX LV=-c|g' git-quiltimport.sh >git-quiltimport+ && \ chmod +x git-quiltimport+ && \ mv git-quiltimport+ git-quiltimport @@ -2214,6 +2240,9 @@ mv git-p4+ git-p4 make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' +gcc -o attr.o -c -MF ./.depend/attr.o.d -MQ attr.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' -DETC_GITATTRIBUTES='"/etc/gitattributes"' attr.c +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' rm -f git-add--interactive git-add--interactive+ && \ sed -e '1{' \ -e ' s|#!.*perl|#!/usr/bin/perl|' \ @@ -2298,16 +2327,25 @@ mv git-svn+ git-svn make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' +gcc -o builtin/worktree.o -c -MF builtin/.depend/worktree.o.d -MQ builtin/worktree.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' builtin/worktree.c +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' +gcc -o help.o -c -MF ./.depend/help.o.d -MQ help.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' help.c +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' rm -f libgit.a && ar rcs libgit.a abspath.o add-interactive.o add-patch.o advice.o alias.o alloc.o apply.o archive-tar.o archive-zip.o archive.o attr.o base85.o bisect.o blame.o blob.o bloom.o branch.o bulk-checkin.o bundle.o cache-tree.o chdir-notify.o checkout.o color.o column.o combine-diff.o commit-graph.o commit-reach.o commit.o compat/obstack.o compat/terminal.o config.o connect.o connected.o convert.o copy.o credential.o csum-file.o ctype.o date.o decorate.o delta-islands.o diff-delta.o diff-lib.o diff-no-index.o diff.o diffcore-break.o diffcore-delta.o diffcore-order.o diffcore-pickaxe.o diffcore-rename.o dir-iterator.o dir.o editor.o entry.o environment.o ewah/bitmap.o ewah/ewah_bitmap.o ewah/ewah_io.o ewah/ewah_rlw.o exec-cmd.o fetch-negotiator.o fetch-pack.o fmt-merge-msg.o fsck.o fsmonitor.o gettext.o gpg-interface.o graph.o grep.o hashmap.o help.o hex.o ident.o json-writer.o kwset.o levenshtein.o line-log.o line-range.o linear-assignment.o list-objects-filter-options.o list-objects-filter.o list-objects.o ll-merge.o lockfile.o log-tree.o ls-refs.o mailinfo.o mailmap.o match-trees.o mem-pool.o merge-blobs.o merge-ort.o merge-ort-wrappers.o merge-recursive.o merge.o mergesort.o midx.o name-hash.o negotiator/default.o negotiator/noop.o negotiator/skipping.o notes-cache.o notes-merge.o notes-utils.o notes.o object.o oid-array.o oidmap.o oidset.o pack-bitmap-write.o pack-bitmap.o pack-check.o pack-objects.o pack-revindex.o pack-write.o packfile.o pager.o parse-options-cb.o parse-options.o patch-delta.o patch-ids.o path.o pathspec.o pkt-line.o preload-index.o pretty.o prio-queue.o progress.o promisor-remote.o prompt.o protocol.o prune-packed.o quote.o range-diff.o reachable.o read-cache.o rebase-interactive.o rebase.o ref-filter.o reflog-walk.o refs.o refs/debug.o refs/files-backend.o refs/iterator.o refs/packed-backend.o refs/ref-cache.o refspec.o remote.o replace-object.o repo-settings.o repository.o rerere.o reset.o resolve-undo.o revision.o run-command.o send-pack.o sequencer.o serve.o server-info.o setup.o sha1-file.o sha1-lookup.o sha1-name.o shallow.o sideband.o sigchain.o split-index.o stable-qsort.o strbuf.o streaming.o string-list.o strmap.o strvec.o sub-process.o submodule-config.o submodule.o symlinks.o tag.o tempfile.o thread-utils.o tmp-objdir.o trace.o trace2.o trace2/tr2_cfg.o trace2/tr2_cmd_name.o trace2/tr2_dst.o trace2/tr2_sid.o trace2/tr2_sysenv.o trace2/tr2_tbuf.o trace2/tr2_tgt_event.o trace2/tr2_tgt_normal.o trace2/tr2_tgt_perf.o trace2/tr2_tls.o trailer.o transport-helper.o transport.o tree-diff.o tree-walk.o tree.o unpack-trees.o upload-pack.o url.o urlmatch.o usage.o userdiff.o utf8.o varint.o version.o versioncmp.o walker.o wildmatch.o worktree.o wrapper.o write-or-die.o ws.o wt-status.o xdiff-interface.o zlib.o unix-socket.o sha1dc_git.o sha1dc/sha1.o sha1dc/ubc_check.o sha256/block/sha256.o compat/fopen.o compat/strlcpy.o compat/qsort_s.o make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o builtin/help.o -c -MF builtin/.depend/help.o.d -MQ builtin/help.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' '-DGIT_HTML_PATH="share/doc/git/html"' '-DGIT_MAN_PATH="share/man"' '-DGIT_INFO_PATH="share/info"' builtin/help.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' +gcc -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' -o git-http-backend -Wl,-z,relro http-backend.o common-main.o libgit.a xdiff/lib.a -lpcre2-8 -lz -lpthread -lrt +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' gcc -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' -o git-daemon -Wl,-z,relro daemon.o common-main.o libgit.a xdiff/lib.a -lpcre2-8 -lz -lpthread -lrt make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' -o git-http-backend -Wl,-z,relro http-backend.o common-main.o libgit.a xdiff/lib.a -lpcre2-8 -lz -lpthread -lrt +gcc -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' -o git-sh-i18n--envsubst -Wl,-z,relro sh-i18n--envsubst.o common-main.o libgit.a xdiff/lib.a -lpcre2-8 -lz -lpthread -lrt make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' -o git-imap-send -Wl,-z,relro imap-send.o http.o common-main.o \ @@ -2317,9 +2355,6 @@ gcc -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' -o git-shell -Wl,-z,relro shell.o common-main.o libgit.a xdiff/lib.a -lpcre2-8 -lz -lpthread -lrt make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' -o git-sh-i18n--envsubst -Wl,-z,relro sh-i18n--envsubst.o common-main.o libgit.a xdiff/lib.a -lpcre2-8 -lz -lpthread -lrt -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' gcc -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' -o git-http-fetch -Wl,-z,relro http.o http-walker.o http-fetch.o common-main.o \ -lcurl libgit.a xdiff/lib.a -lpcre2-8 -lz -lpthread -lrt make[2]: Leaving directory '/build/git-2.30.2' @@ -2328,10 +2363,6 @@ -lcurl -lexpat libgit.a xdiff/lib.a -lpcre2-8 -lz -lpthread -lrt make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' -o git-http-push -Wl,-z,relro http.o http-push.o common-main.o \ - -lcurl -lexpat libgit.a xdiff/lib.a -lpcre2-8 -lz -lpthread -lrt -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' rm -f git-remote-https && \ ln git-remote-http git-remote-https 2>/dev/null || \ ln -s git-remote-http git-remote-https 2>/dev/null || \ @@ -2350,44 +2381,48 @@ cp git-remote-http git-remote-ftps make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' +gcc -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' -o git-http-push -Wl,-z,relro http.o http-push.o common-main.o \ + -lcurl -lexpat libgit.a xdiff/lib.a -lpcre2-8 -lz -lpthread -lrt +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' gcc -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' -o git -Wl,-z,relro \ git.o builtin/add.o builtin/am.o builtin/annotate.o builtin/apply.o builtin/archive.o builtin/bisect--helper.o builtin/blame.o builtin/branch.o builtin/bugreport.o builtin/bundle.o builtin/cat-file.o builtin/check-attr.o builtin/check-ignore.o builtin/check-mailmap.o builtin/check-ref-format.o builtin/checkout-index.o builtin/checkout.o builtin/clean.o builtin/clone.o builtin/column.o builtin/commit-graph.o builtin/commit-tree.o builtin/commit.o builtin/config.o builtin/count-objects.o builtin/credential-cache--daemon.o builtin/credential-cache.o builtin/credential-store.o builtin/credential.o builtin/describe.o builtin/diff-files.o builtin/diff-index.o builtin/diff-tree.o builtin/diff.o builtin/difftool.o builtin/env--helper.o builtin/fast-export.o builtin/fast-import.o builtin/fetch-pack.o builtin/fetch.o builtin/fmt-merge-msg.o builtin/for-each-ref.o builtin/for-each-repo.o builtin/fsck.o builtin/gc.o builtin/get-tar-commit-id.o builtin/grep.o builtin/hash-object.o builtin/help.o builtin/index-pack.o builtin/init-db.o builtin/interpret-trailers.o builtin/log.o builtin/ls-files.o builtin/ls-remote.o builtin/ls-tree.o builtin/mailinfo.o builtin/mailsplit.o builtin/merge-base.o builtin/merge-file.o builtin/merge-index.o builtin/merge-ours.o builtin/merge-recursive.o builtin/merge-tree.o builtin/merge.o builtin/mktag.o builtin/mktree.o builtin/multi-pack-index.o builtin/mv.o builtin/name-rev.o builtin/notes.o builtin/pack-objects.o builtin/pack-redundant.o builtin/pack-refs.o builtin/patch-id.o builtin/prune-packed.o builtin/prune.o builtin/pull.o builtin/push.o builtin/range-diff.o builtin/read-tree.o builtin/rebase.o builtin/receive-pack.o builtin/reflog.o builtin/remote-ext.o builtin/remote-fd.o builtin/remote.o builtin/repack.o builtin/replace.o builtin/rerere.o builtin/reset.o builtin/rev-list.o builtin/rev-parse.o builtin/revert.o builtin/rm.o builtin/send-pack.o builtin/shortlog.o builtin/show-branch.o builtin/show-index.o builtin/show-ref.o builtin/sparse-checkout.o builtin/stash.o builtin/stripspace.o builtin/submodule--helper.o builtin/symbolic-ref.o builtin/tag.o builtin/unpack-file.o builtin/unpack-objects.o builtin/update-index.o builtin/update-ref.o builtin/update-server-info.o builtin/upload-archive.o builtin/upload-pack.o builtin/var.o builtin/verify-commit.o builtin/verify-pack.o builtin/verify-tag.o builtin/worktree.o builtin/write-tree.o common-main.o libgit.a xdiff/lib.a -lpcre2-8 -lz -lpthread -lrt make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' +rm -f git-annotate && \ +ln git git-annotate 2>/dev/null || \ +ln -s git git-annotate 2>/dev/null || \ +cp git git-annotate +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' rm -f git-add && \ ln git git-add 2>/dev/null || \ ln -s git git-add 2>/dev/null || \ cp git git-add make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' +rm -f git-bisect--helper && \ +ln git git-bisect--helper 2>/dev/null || \ +ln -s git git-bisect--helper 2>/dev/null || \ +cp git git-bisect--helper +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' rm -f git-am && \ ln git git-am 2>/dev/null || \ ln -s git git-am 2>/dev/null || \ cp git git-am make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -rm -f git-annotate && \ -ln git git-annotate 2>/dev/null || \ -ln -s git git-annotate 2>/dev/null || \ -cp git git-annotate -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' rm -f git-apply && \ ln git git-apply 2>/dev/null || \ ln -s git git-apply 2>/dev/null || \ cp git git-apply make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -rm -f git-archive && \ -ln git git-archive 2>/dev/null || \ -ln -s git git-archive 2>/dev/null || \ -cp git git-archive -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' -rm -f git-bisect--helper && \ -ln git git-bisect--helper 2>/dev/null || \ -ln -s git git-bisect--helper 2>/dev/null || \ -cp git git-bisect--helper +rm -f git-blame && \ +ln git git-blame 2>/dev/null || \ +ln -s git git-blame 2>/dev/null || \ +cp git git-blame make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' rm -f git-branch && \ @@ -2396,12 +2431,6 @@ cp git git-branch make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -rm -f git-blame && \ -ln git git-blame 2>/dev/null || \ -ln -s git git-blame 2>/dev/null || \ -cp git git-blame -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' rm -f git-bugreport && \ ln git git-bugreport 2>/dev/null || \ ln -s git git-bugreport 2>/dev/null || \ @@ -2426,10 +2455,10 @@ cp git git-check-attr make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -rm -f git-check-ignore && \ -ln git git-check-ignore 2>/dev/null || \ -ln -s git git-check-ignore 2>/dev/null || \ -cp git git-check-ignore +rm -f git-archive && \ +ln git git-archive 2>/dev/null || \ +ln -s git git-archive 2>/dev/null || \ +cp git git-archive make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' rm -f git-check-mailmap && \ @@ -2438,10 +2467,10 @@ cp git git-check-mailmap make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -rm -f git-check-ref-format && \ -ln git git-check-ref-format 2>/dev/null || \ -ln -s git git-check-ref-format 2>/dev/null || \ -cp git git-check-ref-format +rm -f git-check-ignore && \ +ln git git-check-ignore 2>/dev/null || \ +ln -s git git-check-ignore 2>/dev/null || \ +cp git git-check-ignore make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' rm -f git-checkout-index && \ @@ -2450,12 +2479,24 @@ cp git git-checkout-index make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' +rm -f git-check-ref-format && \ +ln git git-check-ref-format 2>/dev/null || \ +ln -s git git-check-ref-format 2>/dev/null || \ +cp git git-check-ref-format +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' rm -f git-checkout && \ ln git git-checkout 2>/dev/null || \ ln -s git git-checkout 2>/dev/null || \ cp git git-checkout make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' +rm -f git-commit-graph && \ +ln git git-commit-graph 2>/dev/null || \ +ln -s git git-commit-graph 2>/dev/null || \ +cp git git-commit-graph +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' rm -f git-clean && \ ln git git-clean 2>/dev/null || \ ln -s git git-clean 2>/dev/null || \ @@ -2474,18 +2515,6 @@ cp git git-column make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -rm -f git-commit-graph && \ -ln git git-commit-graph 2>/dev/null || \ -ln -s git git-commit-graph 2>/dev/null || \ -cp git git-commit-graph -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' -rm -f git-commit-tree && \ -ln git git-commit-tree 2>/dev/null || \ -ln -s git git-commit-tree 2>/dev/null || \ -cp git git-commit-tree -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' rm -f git-commit && \ ln git git-commit 2>/dev/null || \ ln -s git git-commit 2>/dev/null || \ @@ -2498,6 +2527,12 @@ cp git git-config make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' +rm -f git-commit-tree && \ +ln git git-commit-tree 2>/dev/null || \ +ln -s git git-commit-tree 2>/dev/null || \ +cp git git-commit-tree +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' rm -f git-count-objects && \ ln git git-count-objects 2>/dev/null || \ ln -s git git-count-objects 2>/dev/null || \ @@ -2510,12 +2545,6 @@ cp git git-credential-cache--daemon make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -rm -f git-credential-cache && \ -ln git git-credential-cache 2>/dev/null || \ -ln -s git git-credential-cache 2>/dev/null || \ -cp git git-credential-cache -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' rm -f git-credential-store && \ ln git git-credential-store 2>/dev/null || \ ln -s git git-credential-store 2>/dev/null || \ @@ -2528,10 +2557,10 @@ cp git git-credential make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -rm -f git-describe && \ -ln git git-describe 2>/dev/null || \ -ln -s git git-describe 2>/dev/null || \ -cp git git-describe +rm -f git-diff-index && \ +ln git git-diff-index 2>/dev/null || \ +ln -s git git-diff-index 2>/dev/null || \ +cp git git-diff-index make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' rm -f git-diff-files && \ @@ -2540,10 +2569,16 @@ cp git git-diff-files make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -rm -f git-diff-index && \ -ln git git-diff-index 2>/dev/null || \ -ln -s git git-diff-index 2>/dev/null || \ -cp git git-diff-index +rm -f git-credential-cache && \ +ln git git-credential-cache 2>/dev/null || \ +ln -s git git-credential-cache 2>/dev/null || \ +cp git git-credential-cache +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' +rm -f git-describe && \ +ln git git-describe 2>/dev/null || \ +ln -s git git-describe 2>/dev/null || \ +cp git git-describe make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' rm -f git-diff-tree && \ @@ -2552,10 +2587,10 @@ cp git git-diff-tree make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -rm -f git-diff && \ -ln git git-diff 2>/dev/null || \ -ln -s git git-diff 2>/dev/null || \ -cp git git-diff +rm -f git-fast-export && \ +ln git git-fast-export 2>/dev/null || \ +ln -s git git-fast-export 2>/dev/null || \ +cp git git-fast-export make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' rm -f git-difftool && \ @@ -2564,16 +2599,10 @@ cp git git-difftool make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -rm -f git-env--helper && \ -ln git git-env--helper 2>/dev/null || \ -ln -s git git-env--helper 2>/dev/null || \ -cp git git-env--helper -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' -rm -f git-fast-export && \ -ln git git-fast-export 2>/dev/null || \ -ln -s git git-fast-export 2>/dev/null || \ -cp git git-fast-export +rm -f git-diff && \ +ln git git-diff 2>/dev/null || \ +ln -s git git-diff 2>/dev/null || \ +cp git git-diff make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' rm -f git-fast-import && \ @@ -2588,28 +2617,28 @@ cp git git-fetch-pack make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' +rm -f git-env--helper && \ +ln git git-env--helper 2>/dev/null || \ +ln -s git git-env--helper 2>/dev/null || \ +cp git git-env--helper +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' rm -f git-fetch && \ ln git git-fetch 2>/dev/null || \ ln -s git git-fetch 2>/dev/null || \ cp git git-fetch make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -rm -f git-fmt-merge-msg && \ -ln git git-fmt-merge-msg 2>/dev/null || \ -ln -s git git-fmt-merge-msg 2>/dev/null || \ -cp git git-fmt-merge-msg -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' rm -f git-for-each-ref && \ ln git git-for-each-ref 2>/dev/null || \ ln -s git git-for-each-ref 2>/dev/null || \ cp git git-for-each-ref make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -rm -f git-for-each-repo && \ -ln git git-for-each-repo 2>/dev/null || \ -ln -s git git-for-each-repo 2>/dev/null || \ -cp git git-for-each-repo +rm -f git-fmt-merge-msg && \ +ln git git-fmt-merge-msg 2>/dev/null || \ +ln -s git git-fmt-merge-msg 2>/dev/null || \ +cp git git-fmt-merge-msg make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' rm -f git-fsck && \ @@ -2618,6 +2647,12 @@ cp git git-fsck make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' +rm -f git-for-each-repo && \ +ln git git-for-each-repo 2>/dev/null || \ +ln -s git git-for-each-repo 2>/dev/null || \ +cp git git-for-each-repo +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' rm -f git-gc && \ ln git git-gc 2>/dev/null || \ ln -s git git-gc 2>/dev/null || \ @@ -2636,18 +2671,18 @@ cp git git-grep make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -rm -f git-hash-object && \ -ln git git-hash-object 2>/dev/null || \ -ln -s git git-hash-object 2>/dev/null || \ -cp git git-hash-object -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' rm -f git-help && \ ln git git-help 2>/dev/null || \ ln -s git git-help 2>/dev/null || \ cp git git-help make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' +rm -f git-hash-object && \ +ln git git-hash-object 2>/dev/null || \ +ln -s git git-hash-object 2>/dev/null || \ +cp git git-hash-object +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' rm -f git-index-pack && \ ln git git-index-pack 2>/dev/null || \ ln -s git git-index-pack 2>/dev/null || \ @@ -2660,36 +2695,36 @@ cp git git-init-db make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -rm -f git-interpret-trailers && \ -ln git git-interpret-trailers 2>/dev/null || \ -ln -s git git-interpret-trailers 2>/dev/null || \ -cp git git-interpret-trailers -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' rm -f git-log && \ ln git git-log 2>/dev/null || \ ln -s git git-log 2>/dev/null || \ cp git git-log make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' +rm -f git-interpret-trailers && \ +ln git git-interpret-trailers 2>/dev/null || \ +ln -s git git-interpret-trailers 2>/dev/null || \ +cp git git-interpret-trailers +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' rm -f git-ls-files && \ ln git git-ls-files 2>/dev/null || \ ln -s git git-ls-files 2>/dev/null || \ cp git git-ls-files make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -rm -f git-ls-remote && \ -ln git git-ls-remote 2>/dev/null || \ -ln -s git git-ls-remote 2>/dev/null || \ -cp git git-ls-remote -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' rm -f git-ls-tree && \ ln git git-ls-tree 2>/dev/null || \ ln -s git git-ls-tree 2>/dev/null || \ cp git git-ls-tree make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' +rm -f git-ls-remote && \ +ln git git-ls-remote 2>/dev/null || \ +ln -s git git-ls-remote 2>/dev/null || \ +cp git git-ls-remote +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' rm -f git-mailinfo && \ ln git git-mailinfo 2>/dev/null || \ ln -s git git-mailinfo 2>/dev/null || \ @@ -2720,16 +2755,22 @@ cp git git-merge-index make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' +rm -f git-merge-recursive && \ +ln git git-merge-recursive 2>/dev/null || \ +ln -s git git-merge-recursive 2>/dev/null || \ +cp git git-merge-recursive +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' rm -f git-merge-ours && \ ln git git-merge-ours 2>/dev/null || \ ln -s git git-merge-ours 2>/dev/null || \ cp git git-merge-ours make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -rm -f git-merge-recursive && \ -ln git git-merge-recursive 2>/dev/null || \ -ln -s git git-merge-recursive 2>/dev/null || \ -cp git git-merge-recursive +rm -f git-mktag && \ +ln git git-mktag 2>/dev/null || \ +ln -s git git-mktag 2>/dev/null || \ +cp git git-mktag make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' rm -f git-merge-tree && \ @@ -2744,12 +2785,6 @@ cp git git-merge make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -rm -f git-mktag && \ -ln git git-mktag 2>/dev/null || \ -ln -s git git-mktag 2>/dev/null || \ -cp git git-mktag -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' rm -f git-mktree && \ ln git git-mktree 2>/dev/null || \ ln -s git git-mktree 2>/dev/null || \ @@ -2852,22 +2887,16 @@ cp git git-receive-pack make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -rm -f git-reflog && \ -ln git git-reflog 2>/dev/null || \ -ln -s git git-reflog 2>/dev/null || \ -cp git git-reflog -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' rm -f git-remote-ext && \ ln git git-remote-ext 2>/dev/null || \ ln -s git git-remote-ext 2>/dev/null || \ cp git git-remote-ext make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -rm -f git-remote && \ -ln git git-remote 2>/dev/null || \ -ln -s git git-remote 2>/dev/null || \ -cp git git-remote +rm -f git-reflog && \ +ln git git-reflog 2>/dev/null || \ +ln -s git git-reflog 2>/dev/null || \ +cp git git-reflog make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' rm -f git-remote-fd && \ @@ -2876,6 +2905,12 @@ cp git git-remote-fd make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' +rm -f git-remote && \ +ln git git-remote 2>/dev/null || \ +ln -s git git-remote 2>/dev/null || \ +cp git git-remote +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' rm -f git-repack && \ ln git git-repack 2>/dev/null || \ ln -s git git-repack 2>/dev/null || \ @@ -2966,18 +3001,18 @@ cp git git-stash make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -rm -f git-stripspace && \ -ln git git-stripspace 2>/dev/null || \ -ln -s git git-stripspace 2>/dev/null || \ -cp git git-stripspace -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' rm -f git-submodule--helper && \ ln git git-submodule--helper 2>/dev/null || \ ln -s git git-submodule--helper 2>/dev/null || \ cp git git-submodule--helper make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' +rm -f git-stripspace && \ +ln git git-stripspace 2>/dev/null || \ +ln -s git git-stripspace 2>/dev/null || \ +cp git git-stripspace +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' rm -f git-symbolic-ref && \ ln git git-symbolic-ref 2>/dev/null || \ ln -s git git-symbolic-ref 2>/dev/null || \ @@ -3014,22 +3049,16 @@ cp git git-update-ref make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -rm -f git-update-server-info && \ -ln git git-update-server-info 2>/dev/null || \ -ln -s git git-update-server-info 2>/dev/null || \ -cp git git-update-server-info -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' rm -f git-upload-archive && \ ln git git-upload-archive 2>/dev/null || \ ln -s git git-upload-archive 2>/dev/null || \ cp git git-upload-archive make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -rm -f git-upload-pack && \ -ln git git-upload-pack 2>/dev/null || \ -ln -s git git-upload-pack 2>/dev/null || \ -cp git git-upload-pack +rm -f git-update-server-info && \ +ln git git-update-server-info 2>/dev/null || \ +ln -s git git-update-server-info 2>/dev/null || \ +cp git git-update-server-info make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' rm -f git-var && \ @@ -3044,10 +3073,10 @@ cp git git-verify-commit make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -rm -f git-verify-pack && \ -ln git git-verify-pack 2>/dev/null || \ -ln -s git git-verify-pack 2>/dev/null || \ -cp git git-verify-pack +rm -f git-upload-pack && \ +ln git git-upload-pack 2>/dev/null || \ +ln -s git git-upload-pack 2>/dev/null || \ +cp git git-upload-pack make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' rm -f git-verify-tag && \ @@ -3062,54 +3091,60 @@ cp git git-worktree make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' +rm -f git-verify-pack && \ +ln git git-verify-pack 2>/dev/null || \ +ln -s git git-verify-pack 2>/dev/null || \ +cp git git-verify-pack +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' rm -f git-write-tree && \ ln git git-write-tree 2>/dev/null || \ ln -s git git-write-tree 2>/dev/null || \ cp git git-write-tree make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -rm -f git-cherry && \ -ln git git-cherry 2>/dev/null || \ -ln -s git git-cherry 2>/dev/null || \ -cp git git-cherry -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' rm -f git-cherry-pick && \ ln git git-cherry-pick 2>/dev/null || \ ln -s git git-cherry-pick 2>/dev/null || \ cp git git-cherry-pick make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' +rm -f git-cherry && \ +ln git git-cherry 2>/dev/null || \ +ln -s git git-cherry 2>/dev/null || \ +cp git git-cherry +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' rm -f git-format-patch && \ ln git git-format-patch 2>/dev/null || \ ln -s git git-format-patch 2>/dev/null || \ cp git git-format-patch make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -rm -f git-fsck-objects && \ -ln git git-fsck-objects 2>/dev/null || \ -ln -s git git-fsck-objects 2>/dev/null || \ -cp git git-fsck-objects -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' rm -f git-init && \ ln git git-init 2>/dev/null || \ ln -s git git-init 2>/dev/null || \ cp git git-init make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -rm -f git-restore && \ -ln git git-restore 2>/dev/null || \ -ln -s git git-restore 2>/dev/null || \ -cp git git-restore -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' rm -f git-maintenance && \ ln git git-maintenance 2>/dev/null || \ ln -s git git-maintenance 2>/dev/null || \ cp git git-maintenance make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' +rm -f git-merge-subtree && \ +ln git git-merge-subtree 2>/dev/null || \ +ln -s git git-merge-subtree 2>/dev/null || \ +cp git git-merge-subtree +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' +rm -f git-fsck-objects && \ +ln git git-fsck-objects 2>/dev/null || \ +ln -s git git-fsck-objects 2>/dev/null || \ +cp git git-fsck-objects +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' rm -f git-show && \ ln git git-show 2>/dev/null || \ ln -s git git-show 2>/dev/null || \ @@ -3122,16 +3157,10 @@ cp git git-stage make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -rm -f git-merge-subtree && \ -ln git git-merge-subtree 2>/dev/null || \ -ln -s git git-merge-subtree 2>/dev/null || \ -cp git git-merge-subtree -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' -rm -f git-status && \ -ln git git-status 2>/dev/null || \ -ln -s git git-status 2>/dev/null || \ -cp git git-status +rm -f git-restore && \ +ln git git-restore 2>/dev/null || \ +ln -s git git-restore 2>/dev/null || \ +cp git git-restore make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' rm -f git-switch && \ @@ -3140,6 +3169,12 @@ cp git git-switch make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' +rm -f git-status && \ +ln git git-status 2>/dev/null || \ +ln -s git git-status 2>/dev/null || \ +cp git git-status +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' rm -f git-whatchanged && \ ln git git-whatchanged 2>/dev/null || \ ln -s git git-whatchanged 2>/dev/null || \ @@ -3340,6 +3375,10 @@ date >boilerplates.made make[3]: Leaving directory '/build/git-2.30.2/templates' make[2]: Entering directory '/build/git-2.30.2' +mkdir -p po/build/locale/el/LC_MESSAGES/ && msgfmt --check --statistics -o po/build/locale/el/LC_MESSAGES/git.mo po/el.po +1038 translated messages, 3325 untranslated messages. +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' mkdir -p po/build/locale/ca/LC_MESSAGES/ && msgfmt --check --statistics -o po/build/locale/ca/LC_MESSAGES/git.mo po/ca.po 4386 translated messages, 652 fuzzy translations. make[2]: Leaving directory '/build/git-2.30.2' @@ -3348,18 +3387,14 @@ 5037 translated messages. make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -mkdir -p po/build/locale/bg/LC_MESSAGES/ && msgfmt --check --statistics -o po/build/locale/bg/LC_MESSAGES/git.mo po/bg.po -5037 translated messages. -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' -mkdir -p po/build/locale/el/LC_MESSAGES/ && msgfmt --check --statistics -o po/build/locale/el/LC_MESSAGES/git.mo po/el.po -1038 translated messages, 3325 untranslated messages. -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' mkdir -p po/build/locale/is/LC_MESSAGES/ && msgfmt --check --statistics -o po/build/locale/is/LC_MESSAGES/git.mo po/is.po 14 translated messages. make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' +mkdir -p po/build/locale/bg/LC_MESSAGES/ && msgfmt --check --statistics -o po/build/locale/bg/LC_MESSAGES/git.mo po/bg.po +5037 translated messages. +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' mkdir -p po/build/locale/fr/LC_MESSAGES/ && msgfmt --check --statistics -o po/build/locale/fr/LC_MESSAGES/git.mo po/fr.po 5037 translated messages. make[2]: Leaving directory '/build/git-2.30.2' @@ -3368,14 +3403,14 @@ 4931 translated messages. make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -mkdir -p po/build/locale/it/LC_MESSAGES/ && msgfmt --check --statistics -o po/build/locale/it/LC_MESSAGES/git.mo po/it.po -5013 translated messages. -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' mkdir -p po/build/locale/ko/LC_MESSAGES/ && msgfmt --check --statistics -o po/build/locale/ko/LC_MESSAGES/git.mo po/ko.po 3608 translated messages. make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' +mkdir -p po/build/locale/it/LC_MESSAGES/ && msgfmt --check --statistics -o po/build/locale/it/LC_MESSAGES/git.mo po/it.po +5013 translated messages. +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' mkdir -p po/build/locale/pl/LC_MESSAGES/ && msgfmt --check --statistics -o po/build/locale/pl/LC_MESSAGES/git.mo po/pl.po 5037 translated messages. make[2]: Leaving directory '/build/git-2.30.2' @@ -3388,11 +3423,11 @@ 3521 translated messages, 1060 untranslated messages. make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -mkdir -p po/build/locale/sv/LC_MESSAGES/ && msgfmt --check --statistics -o po/build/locale/sv/LC_MESSAGES/git.mo po/sv.po +mkdir -p po/build/locale/vi/LC_MESSAGES/ && msgfmt --check --statistics -o po/build/locale/vi/LC_MESSAGES/git.mo po/vi.po 5037 translated messages. make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -mkdir -p po/build/locale/tr/LC_MESSAGES/ && msgfmt --check --statistics -o po/build/locale/tr/LC_MESSAGES/git.mo po/tr.po +mkdir -p po/build/locale/sv/LC_MESSAGES/ && msgfmt --check --statistics -o po/build/locale/sv/LC_MESSAGES/git.mo po/sv.po 5037 translated messages. make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' @@ -3400,7 +3435,7 @@ 5037 translated messages. make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -mkdir -p po/build/locale/vi/LC_MESSAGES/ && msgfmt --check --statistics -o po/build/locale/vi/LC_MESSAGES/git.mo po/vi.po +mkdir -p po/build/locale/tr/LC_MESSAGES/ && msgfmt --check --statistics -o po/build/locale/tr/LC_MESSAGES/git.mo po/tr.po 5037 translated messages. make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' @@ -3471,13 +3506,13 @@ mkdir -p perl/build/lib/Git/SVN/ && \ sed -e 's|@@LOCALEDIR@@|/usr/share/locale|g' \ -e 's|@@NO_PERL_CPAN_FALLBACKS@@|1|g' \ -< perl/Git/SVN/Log.pm > perl/build/lib/Git/SVN/Log.pm +< perl/Git/SVN/Migration.pm > perl/build/lib/Git/SVN/Migration.pm make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' mkdir -p perl/build/lib/Git/SVN/ && \ sed -e 's|@@LOCALEDIR@@|/usr/share/locale|g' \ -e 's|@@NO_PERL_CPAN_FALLBACKS@@|1|g' \ -< perl/Git/SVN/Migration.pm > perl/build/lib/Git/SVN/Migration.pm +< perl/Git/SVN/Log.pm > perl/build/lib/Git/SVN/Log.pm make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' mkdir -p perl/build/lib/Git/SVN/ && \ @@ -3492,12 +3527,6 @@ < perl/Git/SVN/Ra.pm > perl/build/lib/Git/SVN/Ra.pm make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -mkdir -p perl/build/lib/Git/SVN/ && \ -sed -e 's|@@LOCALEDIR@@|/usr/share/locale|g' \ - -e 's|@@NO_PERL_CPAN_FALLBACKS@@|1|g' \ -< perl/Git/SVN/Utils.pm > perl/build/lib/Git/SVN/Utils.pm -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' mkdir -p perl/build/lib/Git/LoadCPAN/Mail/ && \ sed -e 's|@@LOCALEDIR@@|/usr/share/locale|g' \ -e 's|@@NO_PERL_CPAN_FALLBACKS@@|1|g' \ @@ -3510,24 +3539,30 @@ < perl/Git/SVN/Memoize/YAML.pm > perl/build/lib/Git/SVN/Memoize/YAML.pm make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o t/helper/test-advise.o -c -MF t/helper/.depend/test-advise.o.d -MQ t/helper/test-advise.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-advise.c +mkdir -p perl/build/lib/Git/SVN/ && \ +sed -e 's|@@LOCALEDIR@@|/usr/share/locale|g' \ + -e 's|@@NO_PERL_CPAN_FALLBACKS@@|1|g' \ +< perl/Git/SVN/Utils.pm > perl/build/lib/Git/SVN/Utils.pm make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o t/helper/test-fake-ssh.o -c -MF t/helper/.depend/test-fake-ssh.o.d -MQ t/helper/test-fake-ssh.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-fake-ssh.c +gcc -o t/helper/test-tool.o -c -MF t/helper/.depend/test-tool.o.d -MQ t/helper/test-tool.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-tool.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o t/helper/test-tool.o -c -MF t/helper/.depend/test-tool.o.d -MQ t/helper/test-tool.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-tool.c +gcc -o t/helper/test-advise.o -c -MF t/helper/.depend/test-advise.o.d -MQ t/helper/test-advise.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-advise.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o t/helper/test-bloom.o -c -MF t/helper/.depend/test-bloom.o.d -MQ t/helper/test-bloom.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-bloom.c +gcc -o t/helper/test-fake-ssh.o -c -MF t/helper/.depend/test-fake-ssh.o.d -MQ t/helper/test-fake-ssh.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-fake-ssh.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o t/helper/test-crontab.o -c -MF t/helper/.depend/test-crontab.o.d -MQ t/helper/test-crontab.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-crontab.c +gcc -o t/helper/test-bloom.o -c -MF t/helper/.depend/test-bloom.o.d -MQ t/helper/test-bloom.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-bloom.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o t/helper/test-chmtime.o -c -MF t/helper/.depend/test-chmtime.o.d -MQ t/helper/test-chmtime.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-chmtime.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' +gcc -o t/helper/test-crontab.o -c -MF t/helper/.depend/test-crontab.o.d -MQ t/helper/test-crontab.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-crontab.c +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' gcc -o t/helper/test-config.o -c -MF t/helper/.depend/test-config.o.d -MQ t/helper/test-config.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-config.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' @@ -3537,40 +3572,40 @@ gcc -o t/helper/test-dir-iterator.o -c -MF t/helper/.depend/test-dir-iterator.o.d -MQ t/helper/test-dir-iterator.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-dir-iterator.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o t/helper/test-date.o -c -MF t/helper/.depend/test-date.o.d -MQ t/helper/test-date.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-date.c -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' gcc -o t/helper/test-delta.o -c -MF t/helper/.depend/test-delta.o.d -MQ t/helper/test-delta.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-delta.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o t/helper/test-drop-caches.o -c -MF t/helper/.depend/test-drop-caches.o.d -MQ t/helper/test-drop-caches.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-drop-caches.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o t/helper/test-dump-fsmonitor.o -c -MF t/helper/.depend/test-dump-fsmonitor.o.d -MQ t/helper/test-dump-fsmonitor.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-dump-fsmonitor.c +gcc -o t/helper/test-date.o -c -MF t/helper/.depend/test-date.o.d -MQ t/helper/test-date.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-date.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o t/helper/test-dump-cache-tree.o -c -MF t/helper/.depend/test-dump-cache-tree.o.d -MQ t/helper/test-dump-cache-tree.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-dump-cache-tree.c +gcc -o t/helper/test-dump-fsmonitor.o -c -MF t/helper/.depend/test-dump-fsmonitor.o.d -MQ t/helper/test-dump-fsmonitor.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-dump-fsmonitor.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o t/helper/test-dump-split-index.o -c -MF t/helper/.depend/test-dump-split-index.o.d -MQ t/helper/test-dump-split-index.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-dump-split-index.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o t/helper/test-example-decorate.o -c -MF t/helper/.depend/test-example-decorate.o.d -MQ t/helper/test-example-decorate.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-example-decorate.c +gcc -o t/helper/test-dump-cache-tree.o -c -MF t/helper/.depend/test-dump-cache-tree.o.d -MQ t/helper/test-dump-cache-tree.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-dump-cache-tree.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o t/helper/test-dump-untracked-cache.o -c -MF t/helper/.depend/test-dump-untracked-cache.o.d -MQ t/helper/test-dump-untracked-cache.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-dump-untracked-cache.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' +gcc -o t/helper/test-example-decorate.o -c -MF t/helper/.depend/test-example-decorate.o.d -MQ t/helper/test-example-decorate.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-example-decorate.c +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' gcc -o t/helper/test-genrandom.o -c -MF t/helper/.depend/test-genrandom.o.d -MQ t/helper/test-genrandom.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-genrandom.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o t/helper/test-genzeros.o -c -MF t/helper/.depend/test-genzeros.o.d -MQ t/helper/test-genzeros.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-genzeros.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o t/helper/test-fast-rebase.o -c -MF t/helper/.depend/test-fast-rebase.o.d -MQ t/helper/test-fast-rebase.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-fast-rebase.c +gcc -o t/helper/test-hash-speed.o -c -MF t/helper/.depend/test-hash-speed.o.d -MQ t/helper/test-hash-speed.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-hash-speed.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o t/helper/test-hash-speed.o -c -MF t/helper/.depend/test-hash-speed.o.d -MQ t/helper/test-hash-speed.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-hash-speed.c +gcc -o t/helper/test-fast-rebase.o -c -MF t/helper/.depend/test-fast-rebase.o.d -MQ t/helper/test-fast-rebase.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-fast-rebase.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o t/helper/test-hash.o -c -MF t/helper/.depend/test-hash.o.d -MQ t/helper/test-hash.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-hash.c @@ -3582,10 +3617,13 @@ gcc -o t/helper/test-hashmap.o -c -MF t/helper/.depend/test-hashmap.o.d -MQ t/helper/test-hashmap.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-hashmap.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' +gcc -o t/helper/test-match-trees.o -c -MF t/helper/.depend/test-match-trees.o.d -MQ t/helper/test-match-trees.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-match-trees.c +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' gcc -o t/helper/test-lazy-init-name-hash.o -c -MF t/helper/.depend/test-lazy-init-name-hash.o.d -MQ t/helper/test-lazy-init-name-hash.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-lazy-init-name-hash.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o t/helper/test-match-trees.o -c -MF t/helper/.depend/test-match-trees.o.d -MQ t/helper/test-match-trees.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-match-trees.c +gcc -o t/helper/test-mergesort.o -c -MF t/helper/.depend/test-mergesort.o.d -MQ t/helper/test-mergesort.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-mergesort.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o t/helper/test-json-writer.o -c -MF t/helper/.depend/test-json-writer.o.d -MQ t/helper/test-json-writer.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-json-writer.c @@ -3594,7 +3632,7 @@ gcc -o t/helper/test-mktemp.o -c -MF t/helper/.depend/test-mktemp.o.d -MQ t/helper/test-mktemp.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-mktemp.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o t/helper/test-mergesort.o -c -MF t/helper/.depend/test-mergesort.o.d -MQ t/helper/test-mergesort.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-mergesort.c +gcc -o t/helper/test-online-cpus.o -c -MF t/helper/.depend/test-online-cpus.o.d -MQ t/helper/test-online-cpus.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-online-cpus.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o t/helper/test-oid-array.o -c -MF t/helper/.depend/test-oid-array.o.d -MQ t/helper/test-oid-array.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-oid-array.c @@ -3603,31 +3641,28 @@ gcc -o t/helper/test-oidmap.o -c -MF t/helper/.depend/test-oidmap.o.d -MQ t/helper/test-oidmap.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-oidmap.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o t/helper/test-online-cpus.o -c -MF t/helper/.depend/test-online-cpus.o.d -MQ t/helper/test-online-cpus.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-online-cpus.c -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' gcc -o t/helper/test-parse-pathspec-file.o -c -MF t/helper/.depend/test-parse-pathspec-file.o.d -MQ t/helper/test-parse-pathspec-file.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-parse-pathspec-file.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o t/helper/test-pkt-line.o -c -MF t/helper/.depend/test-pkt-line.o.d -MQ t/helper/test-pkt-line.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-pkt-line.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o t/helper/test-parse-options.o -c -MF t/helper/.depend/test-parse-options.o.d -MQ t/helper/test-parse-options.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-parse-options.c +gcc -o t/helper/test-prio-queue.o -c -MF t/helper/.depend/test-prio-queue.o.d -MQ t/helper/test-prio-queue.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-prio-queue.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o t/helper/test-path-utils.o -c -MF t/helper/.depend/test-path-utils.o.d -MQ t/helper/test-path-utils.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-path-utils.c +gcc -o t/helper/test-parse-options.o -c -MF t/helper/.depend/test-parse-options.o.d -MQ t/helper/test-parse-options.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-parse-options.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o t/helper/test-prio-queue.o -c -MF t/helper/.depend/test-prio-queue.o.d -MQ t/helper/test-prio-queue.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-prio-queue.c +gcc -o t/helper/test-path-utils.o -c -MF t/helper/.depend/test-path-utils.o.d -MQ t/helper/test-path-utils.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-path-utils.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o t/helper/test-progress.o -c -MF t/helper/.depend/test-progress.o.d -MQ t/helper/test-progress.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-progress.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o t/helper/test-read-cache.o -c -MF t/helper/.depend/test-read-cache.o.d -MQ t/helper/test-read-cache.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-read-cache.c +gcc -o t/helper/test-proc-receive.o -c -MF t/helper/.depend/test-proc-receive.o.d -MQ t/helper/test-proc-receive.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-proc-receive.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o t/helper/test-proc-receive.o -c -MF t/helper/.depend/test-proc-receive.o.d -MQ t/helper/test-proc-receive.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-proc-receive.c +gcc -o t/helper/test-read-cache.o -c -MF t/helper/.depend/test-read-cache.o.d -MQ t/helper/test-read-cache.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-read-cache.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o t/helper/test-read-graph.o -c -MF t/helper/.depend/test-read-graph.o.d -MQ t/helper/test-read-graph.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-read-graph.c @@ -3645,18 +3680,18 @@ gcc -o t/helper/test-repository.o -c -MF t/helper/.depend/test-repository.o.d -MQ t/helper/test-repository.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-repository.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o t/helper/test-ref-store.o -c -MF t/helper/.depend/test-ref-store.o.d -MQ t/helper/test-ref-store.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-ref-store.c -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' gcc -o t/helper/test-revision-walking.o -c -MF t/helper/.depend/test-revision-walking.o.d -MQ t/helper/test-revision-walking.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-revision-walking.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o t/helper/test-scrap-cache-tree.o -c -MF t/helper/.depend/test-scrap-cache-tree.o.d -MQ t/helper/test-scrap-cache-tree.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-scrap-cache-tree.c +gcc -o t/helper/test-ref-store.o -c -MF t/helper/.depend/test-ref-store.o.d -MQ t/helper/test-ref-store.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-ref-store.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o t/helper/test-serve-v2.o -c -MF t/helper/.depend/test-serve-v2.o.d -MQ t/helper/test-serve-v2.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-serve-v2.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' +gcc -o t/helper/test-scrap-cache-tree.o -c -MF t/helper/.depend/test-scrap-cache-tree.o.d -MQ t/helper/test-scrap-cache-tree.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-scrap-cache-tree.c +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' gcc -o t/helper/test-sha1.o -c -MF t/helper/.depend/test-sha1.o.d -MQ t/helper/test-sha1.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-sha1.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' @@ -3675,16 +3710,16 @@ gcc -o t/helper/test-submodule-nested-repo-config.o -c -MF t/helper/.depend/test-submodule-nested-repo-config.o.d -MQ t/helper/test-submodule-nested-repo-config.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-submodule-nested-repo-config.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o t/helper/test-submodule-config.o -c -MF t/helper/.depend/test-submodule-config.o.d -MQ t/helper/test-submodule-config.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-submodule-config.c +gcc -o t/helper/test-subprocess.o -c -MF t/helper/.depend/test-subprocess.o.d -MQ t/helper/test-subprocess.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-subprocess.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o t/helper/test-string-list.o -c -MF t/helper/.depend/test-string-list.o.d -MQ t/helper/test-string-list.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-string-list.c +gcc -o t/helper/test-submodule-config.o -c -MF t/helper/.depend/test-submodule-config.o.d -MQ t/helper/test-submodule-config.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-submodule-config.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o t/helper/test-subprocess.o -c -MF t/helper/.depend/test-subprocess.o.d -MQ t/helper/test-subprocess.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-subprocess.c +gcc -o t/helper/test-string-list.o -c -MF t/helper/.depend/test-string-list.o.d -MQ t/helper/test-string-list.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-string-list.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o t/helper/test-trace2.o -c -MF t/helper/.depend/test-trace2.o.d -MQ t/helper/test-trace2.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-trace2.c +gcc -o t/helper/test-windows-named-pipe.o -c -MF t/helper/.depend/test-windows-named-pipe.o.d -MQ t/helper/test-windows-named-pipe.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-windows-named-pipe.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' gcc -o t/helper/test-urlmatch-normalization.o -c -MF t/helper/.depend/test-urlmatch-normalization.o.d -MQ t/helper/test-urlmatch-normalization.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-urlmatch-normalization.c @@ -3693,7 +3728,7 @@ gcc -o t/helper/test-wildmatch.o -c -MF t/helper/.depend/test-wildmatch.o.d -MQ t/helper/test-wildmatch.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-wildmatch.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o t/helper/test-windows-named-pipe.o -c -MF t/helper/.depend/test-windows-named-pipe.o.d -MQ t/helper/test-windows-named-pipe.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-windows-named-pipe.c +gcc -o t/helper/test-trace2.o -c -MF t/helper/.depend/test-trace2.o.d -MQ t/helper/test-trace2.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-trace2.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' sed -e '1s|#!.*/sh|#!/bin/sh|' \ @@ -3702,9 +3737,6 @@ chmod +x bin-wrappers/git make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -gcc -o t/helper/test-write-cache.o -c -MF t/helper/.depend/test-write-cache.o.d -MQ t/helper/test-write-cache.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-write-cache.c -make[2]: Leaving directory '/build/git-2.30.2' -make[2]: Entering directory '/build/git-2.30.2' sed -e '1s|#!.*/sh|#!/bin/sh|' \ -e 's|@@BUILD_DIR@@|/build/git-2.30.2|' \ -e 's|@@PROG@@|git-receive-pack|' < wrap-for-bin.sh > bin-wrappers/git-receive-pack && \ @@ -3747,6 +3779,9 @@ chmod +x bin-wrappers/test-tool make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' +gcc -o t/helper/test-write-cache.o -c -MF t/helper/.depend/test-write-cache.o.d -MQ t/helper/test-write-cache.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-write-cache.c +make[2]: Leaving directory '/build/git-2.30.2' +make[2]: Entering directory '/build/git-2.30.2' gcc -o t/helper/test-xml-encode.o -c -MF t/helper/.depend/test-xml-encode.o.d -MQ t/helper/test-xml-encode.o -MMD -MP -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -I. -DHAVE_SYSINFO -DGIT_HOST_CPU="\"arm\"" -DUSE_LIBPCRE2 -DHAVE_ALLOCA_H -DUSE_CURL_FOR_IMAP_SEND -DNO_OPENSSL -DSHA1_DC -DSHA1DC_NO_STANDARD_INCLUDES -DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 -DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" -DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\"" -DSHA256_BLK -DHAVE_PATHS_H -DHAVE_DEV_TTY -DHAVE_CLOCK_GETTIME -DHAVE_CLOCK_MONOTONIC -DHAVE_GETDELIM '-DPROCFS_EXECUTABLE_PATH="/proc/self/exe"' -DFREAD_READS_DIRECTORIES -DNO_STRLCPY -DDEFAULT_EDITOR='"editor"' -DDEFAULT_PAGER='"pager"' -DSHELL_PATH='"/bin/sh"' -DPAGER_ENV='"LESS=FRX LV=-c"' t/helper/test-xml-encode.c make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' @@ -3840,9 +3875,6 @@ mv howto/using-merge-subtree.html+ howto/using-merge-subtree.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 git-bisect-lk2009.txt -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f howto/using-signed-tag-in-pull-request.html+ howto/using-signed-tag-in-pull-request.html && \ sed -e '1,/^$/d' howto/using-signed-tag-in-pull-request.txt | \ TZ=UTC asciidoc -a git-relative-html-prefix=../ -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 - >howto/using-signed-tag-in-pull-request.html+ && \ @@ -3867,22 +3899,31 @@ mv howto/separating-topic-branches.html+ howto/separating-topic-branches.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 git-bisect-lk2009.txt +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f howto/setup-git-server-over-http.html+ howto/setup-git-server-over-http.html && \ sed -e '1,/^$/d' howto/setup-git-server-over-http.txt | \ TZ=UTC asciidoc -a git-relative-html-prefix=../ -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 - >howto/setup-git-server-over-http.html+ && \ mv howto/setup-git-server-over-http.html+ howto/setup-git-server-over-http.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f howto/recover-corrupted-blob-object.html+ howto/recover-corrupted-blob-object.html && \ +sed -e '1,/^$/d' howto/recover-corrupted-blob-object.txt | \ +TZ=UTC asciidoc -a git-relative-html-prefix=../ -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 - >howto/recover-corrupted-blob-object.html+ && \ +mv howto/recover-corrupted-blob-object.html+ howto/recover-corrupted-blob-object.html +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f howto/revert-a-faulty-merge.html+ howto/revert-a-faulty-merge.html && \ sed -e '1,/^$/d' howto/revert-a-faulty-merge.txt | \ TZ=UTC asciidoc -a git-relative-html-prefix=../ -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 - >howto/revert-a-faulty-merge.html+ && \ mv howto/revert-a-faulty-merge.html+ howto/revert-a-faulty-merge.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f howto/recover-corrupted-blob-object.html+ howto/recover-corrupted-blob-object.html && \ -sed -e '1,/^$/d' howto/recover-corrupted-blob-object.txt | \ -TZ=UTC asciidoc -a git-relative-html-prefix=../ -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 - >howto/recover-corrupted-blob-object.html+ && \ -mv howto/recover-corrupted-blob-object.html+ howto/recover-corrupted-blob-object.html +rm -f howto/recover-corrupted-object-harder.html+ howto/recover-corrupted-object-harder.html && \ +sed -e '1,/^$/d' howto/recover-corrupted-object-harder.txt | \ +TZ=UTC asciidoc -a git-relative-html-prefix=../ -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 - >howto/recover-corrupted-object-harder.html+ && \ +mv howto/recover-corrupted-object-harder.html+ howto/recover-corrupted-object-harder.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f howto/rebuild-from-update-hook.html+ howto/rebuild-from-update-hook.html && \ @@ -3891,10 +3932,10 @@ mv howto/rebuild-from-update-hook.html+ howto/rebuild-from-update-hook.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f howto/recover-corrupted-object-harder.html+ howto/recover-corrupted-object-harder.html && \ -sed -e '1,/^$/d' howto/recover-corrupted-object-harder.txt | \ -TZ=UTC asciidoc -a git-relative-html-prefix=../ -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 - >howto/recover-corrupted-object-harder.html+ && \ -mv howto/recover-corrupted-object-harder.html+ howto/recover-corrupted-object-harder.html +rm -f howto/keep-canonical-history-correct.html+ howto/keep-canonical-history-correct.html && \ +sed -e '1,/^$/d' howto/keep-canonical-history-correct.txt | \ +TZ=UTC asciidoc -a git-relative-html-prefix=../ -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 - >howto/keep-canonical-history-correct.html+ && \ +mv howto/keep-canonical-history-correct.html+ howto/keep-canonical-history-correct.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f howto/rebase-from-internal-branch.html+ howto/rebase-from-internal-branch.html && \ @@ -3903,10 +3944,7 @@ mv howto/rebase-from-internal-branch.html+ howto/rebase-from-internal-branch.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f howto/keep-canonical-history-correct.html+ howto/keep-canonical-history-correct.html && \ -sed -e '1,/^$/d' howto/keep-canonical-history-correct.txt | \ -TZ=UTC asciidoc -a git-relative-html-prefix=../ -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 - >howto/keep-canonical-history-correct.html+ && \ -mv howto/keep-canonical-history-correct.html+ howto/keep-canonical-history-correct.html +TZ=UTC asciidoc -a git-relative-html-prefix=../ -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 technical/api-merge.txt make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' TZ=UTC asciidoc -a git-relative-html-prefix=../ -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 technical/api-error-handling.txt @@ -3918,17 +3956,9 @@ mv howto/maintain-git.html+ howto/maintain-git.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -TZ=UTC asciidoc -a git-relative-html-prefix=../ -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 technical/api-merge.txt -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' TZ=UTC asciidoc -a git-relative-html-prefix=../ -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 technical/api-parse-options.txt make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f user-manual.xml+ user-manual.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d book -o user-manual.xml+ user-manual.txt && \ -mv user-manual.xml+ user-manual.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' TZ=UTC asciidoc -a git-relative-html-prefix=../ -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 technical/api-trace2.txt make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' @@ -3941,15 +3971,20 @@ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 MyFirstObjectWalk.txt make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -TZ=UTC asciidoc -a git-relative-html-prefix=../ -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 technical/hash-function-transition.txt -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' TZ=UTC asciidoc -a git-relative-html-prefix=../ -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 technical/index-format.txt make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' TZ=UTC asciidoc -a git-relative-html-prefix=../ -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 technical/long-running-process-protocol.txt make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f user-manual.xml+ user-manual.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d book -o user-manual.xml+ user-manual.txt && \ +mv user-manual.xml+ user-manual.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' +TZ=UTC asciidoc -a git-relative-html-prefix=../ -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 technical/hash-function-transition.txt +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' TZ=UTC asciidoc -a git-relative-html-prefix=../ -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 technical/http-protocol.txt make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' @@ -3962,10 +3997,10 @@ TZ=UTC asciidoc -a git-relative-html-prefix=../ -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 technical/pack-heuristics.txt make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -TZ=UTC asciidoc -a git-relative-html-prefix=../ -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 technical/pack-protocol.txt +TZ=UTC asciidoc -a git-relative-html-prefix=../ -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 technical/partial-clone.txt make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -TZ=UTC asciidoc -a git-relative-html-prefix=../ -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 technical/partial-clone.txt +TZ=UTC asciidoc -a git-relative-html-prefix=../ -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 technical/pack-protocol.txt make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' TZ=UTC asciidoc -a git-relative-html-prefix=../ -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 technical/protocol-common.txt @@ -3977,13 +4012,16 @@ TZ=UTC asciidoc -a git-relative-html-prefix=../ -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 technical/racy-git.txt make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +TZ=UTC asciidoc -a git-relative-html-prefix=../ -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 technical/send-pack-pipeline.txt +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' TZ=UTC asciidoc -a git-relative-html-prefix=../ -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 technical/protocol-v2.txt make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' TZ=UTC asciidoc -a git-relative-html-prefix=../ -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 technical/shallow.txt make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -TZ=UTC asciidoc -a git-relative-html-prefix=../ -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 technical/send-pack-pipeline.txt +cd technical && '/bin/sh' ./api-index.sh make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' TZ=UTC asciidoc -a git-relative-html-prefix=../ -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 technical/signature-format.txt @@ -3992,12 +4030,6 @@ TZ=UTC asciidoc -a git-relative-html-prefix=../ -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 technical/trivial-merge.txt make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -cd technical && '/bin/sh' ./api-index.sh -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' -TZ=UTC asciidoc -a git-relative-html-prefix=../ -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 technical/reftable.txt -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f everyday.html+ everyday.html && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -o everyday.html+ everyday.txto && \ mv everyday.html+ everyday.html @@ -4008,36 +4040,39 @@ mv git-remote-helpers.html+ git-remote-helpers.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-annotate.xml+ git-annotate.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-annotate.xml+ git-annotate.txt && \ -mv git-annotate.xml+ git-annotate.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-am.xml+ git-am.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-am.xml+ git-am.txt && \ mv git-am.xml+ git-am.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-annotate.xml+ git-annotate.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-annotate.xml+ git-annotate.txt && \ +mv git-annotate.xml+ git-annotate.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-add.xml+ git-add.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-add.xml+ git-add.txt && \ mv git-add.xml+ git-add.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +TZ=UTC asciidoc -a git-relative-html-prefix=../ -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 technical/reftable.txt +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-archimport.xml+ git-archimport.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-archimport.xml+ git-archimport.txt && \ mv git-archimport.xml+ git-archimport.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-apply.xml+ git-apply.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-apply.xml+ git-apply.txt && \ -mv git-apply.xml+ git-apply.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-archive.xml+ git-archive.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-archive.xml+ git-archive.txt && \ mv git-archive.xml+ git-archive.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-apply.xml+ git-apply.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-apply.xml+ git-apply.txt && \ +mv git-apply.xml+ git-apply.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-bisect.xml+ git-bisect.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-bisect.xml+ git-bisect.txt && \ mv git-bisect.xml+ git-bisect.xml @@ -4048,16 +4083,16 @@ mv git-bugreport.xml+ git-bugreport.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-blame.xml+ git-blame.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-blame.xml+ git-blame.txt && \ -mv git-blame.xml+ git-blame.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-branch.xml+ git-branch.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-branch.xml+ git-branch.txt && \ mv git-branch.xml+ git-branch.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-blame.xml+ git-blame.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-blame.xml+ git-blame.txt && \ +mv git-blame.xml+ git-blame.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-bundle.xml+ git-bundle.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-bundle.xml+ git-bundle.txt && \ mv git-bundle.xml+ git-bundle.xml @@ -4068,11 +4103,6 @@ mv git-check-attr.xml+ git-check-attr.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-cat-file.xml+ git-cat-file.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-cat-file.xml+ git-cat-file.txt && \ -mv git-cat-file.xml+ git-cat-file.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-check-ignore.xml+ git-check-ignore.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-check-ignore.xml+ git-check-ignore.txt && \ mv git-check-ignore.xml+ git-check-ignore.xml @@ -4083,6 +4113,11 @@ mv git-check-mailmap.xml+ git-check-mailmap.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-cat-file.xml+ git-cat-file.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-cat-file.xml+ git-cat-file.txt && \ +mv git-cat-file.xml+ git-cat-file.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-check-ref-format.xml+ git-check-ref-format.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-check-ref-format.xml+ git-check-ref-format.txt && \ mv git-check-ref-format.xml+ git-check-ref-format.xml @@ -4118,6 +4153,11 @@ mv git-clean.xml+ git-clean.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-clone.xml+ git-clone.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-clone.xml+ git-clone.txt && \ +mv git-clone.xml+ git-clone.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-column.xml+ git-column.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-column.xml+ git-column.txt && \ mv git-column.xml+ git-column.xml @@ -4128,11 +4168,6 @@ mv git-commit-graph.xml+ git-commit-graph.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-clone.xml+ git-clone.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-clone.xml+ git-clone.txt && \ -mv git-clone.xml+ git-clone.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-commit-tree.xml+ git-commit-tree.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-commit-tree.xml+ git-commit-tree.txt && \ mv git-commit-tree.xml+ git-commit-tree.xml @@ -4148,11 +4183,6 @@ mv git-credential-cache--daemon.xml+ git-credential-cache--daemon.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-commit.xml+ git-commit.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-commit.xml+ git-commit.txt && \ -mv git-commit.xml+ git-commit.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-credential-cache.xml+ git-credential-cache.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-credential-cache.xml+ git-credential-cache.txt && \ mv git-credential-cache.xml+ git-credential-cache.xml @@ -4163,6 +4193,11 @@ mv git-credential-store.xml+ git-credential-store.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-commit.xml+ git-commit.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-commit.xml+ git-commit.txt && \ +mv git-commit.xml+ git-commit.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-credential.xml+ git-credential.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-credential.xml+ git-credential.txt && \ mv git-credential.xml+ git-credential.xml @@ -4178,9 +4213,9 @@ mv git-cvsimport.xml+ git-cvsimport.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-cvsserver.xml+ git-cvsserver.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-cvsserver.xml+ git-cvsserver.txt && \ -mv git-cvsserver.xml+ git-cvsserver.xml +rm -f git-describe.xml+ git-describe.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-describe.xml+ git-describe.txt && \ +mv git-describe.xml+ git-describe.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-daemon.xml+ git-daemon.xml && \ @@ -4188,14 +4223,9 @@ mv git-daemon.xml+ git-daemon.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-describe.xml+ git-describe.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-describe.xml+ git-describe.txt && \ -mv git-describe.xml+ git-describe.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-diff-files.xml+ git-diff-files.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-diff-files.xml+ git-diff-files.txt && \ -mv git-diff-files.xml+ git-diff-files.xml +rm -f git-cvsserver.xml+ git-cvsserver.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-cvsserver.xml+ git-cvsserver.txt && \ +mv git-cvsserver.xml+ git-cvsserver.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-diff-index.xml+ git-diff-index.xml && \ @@ -4203,14 +4233,9 @@ mv git-diff-index.xml+ git-diff-index.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-diff.xml+ git-diff.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-diff.xml+ git-diff.txt && \ -mv git-diff.xml+ git-diff.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-diff-tree.xml+ git-diff-tree.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-diff-tree.xml+ git-diff-tree.txt && \ -mv git-diff-tree.xml+ git-diff-tree.xml +rm -f git-diff-files.xml+ git-diff-files.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-diff-files.xml+ git-diff-files.txt && \ +mv git-diff-files.xml+ git-diff-files.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-difftool.xml+ git-difftool.xml && \ @@ -4218,9 +4243,9 @@ mv git-difftool.xml+ git-difftool.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-config.xml+ git-config.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-config.xml+ git-config.txt && \ -mv git-config.xml+ git-config.xml +rm -f git-diff-tree.xml+ git-diff-tree.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-diff-tree.xml+ git-diff-tree.txt && \ +mv git-diff-tree.xml+ git-diff-tree.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-fast-export.xml+ git-fast-export.xml && \ @@ -4233,14 +4258,9 @@ mv git-fetch-pack.xml+ git-fetch-pack.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-filter-branch.xml+ git-filter-branch.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-filter-branch.xml+ git-filter-branch.txt && \ -mv git-filter-branch.xml+ git-filter-branch.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-fmt-merge-msg.xml+ git-fmt-merge-msg.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-fmt-merge-msg.xml+ git-fmt-merge-msg.txt && \ -mv git-fmt-merge-msg.xml+ git-fmt-merge-msg.xml +rm -f git-diff.xml+ git-diff.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-diff.xml+ git-diff.txt && \ +mv git-diff.xml+ git-diff.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-fetch.xml+ git-fetch.xml && \ @@ -4248,34 +4268,44 @@ mv git-fetch.xml+ git-fetch.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-filter-branch.xml+ git-filter-branch.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-filter-branch.xml+ git-filter-branch.txt && \ +mv git-filter-branch.xml+ git-filter-branch.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-fast-import.xml+ git-fast-import.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-fast-import.xml+ git-fast-import.txt && \ mv git-fast-import.xml+ git-fast-import.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-fmt-merge-msg.xml+ git-fmt-merge-msg.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-fmt-merge-msg.xml+ git-fmt-merge-msg.txt && \ +mv git-fmt-merge-msg.xml+ git-fmt-merge-msg.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-for-each-repo.xml+ git-for-each-repo.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-for-each-repo.xml+ git-for-each-repo.txt && \ mv git-for-each-repo.xml+ git-for-each-repo.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-fsck-objects.xml+ git-fsck-objects.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-fsck-objects.xml+ git-fsck-objects.txt && \ -mv git-fsck-objects.xml+ git-fsck-objects.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-for-each-ref.xml+ git-for-each-ref.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-for-each-ref.xml+ git-for-each-ref.txt && \ mv git-for-each-ref.xml+ git-for-each-ref.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-fsck-objects.xml+ git-fsck-objects.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-fsck-objects.xml+ git-fsck-objects.txt && \ +mv git-fsck-objects.xml+ git-fsck-objects.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-fsck.xml+ git-fsck.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-fsck.xml+ git-fsck.txt && \ mv git-fsck.xml+ git-fsck.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-gc.xml+ git-gc.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-gc.xml+ git-gc.txt && \ -mv git-gc.xml+ git-gc.xml +rm -f git-config.xml+ git-config.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-config.xml+ git-config.txt && \ +mv git-config.xml+ git-config.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-get-tar-commit-id.xml+ git-get-tar-commit-id.xml && \ @@ -4283,6 +4313,11 @@ mv git-get-tar-commit-id.xml+ git-get-tar-commit-id.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-gc.xml+ git-gc.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-gc.xml+ git-gc.txt && \ +mv git-gc.xml+ git-gc.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-format-patch.xml+ git-format-patch.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-format-patch.xml+ git-format-patch.txt && \ mv git-format-patch.xml+ git-format-patch.xml @@ -4303,6 +4338,11 @@ mv git-grep.xml+ git-grep.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-http-fetch.xml+ git-http-fetch.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-http-fetch.xml+ git-http-fetch.txt && \ +mv git-http-fetch.xml+ git-http-fetch.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-help.xml+ git-help.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-help.xml+ git-help.txt && \ mv git-help.xml+ git-help.xml @@ -4313,11 +4353,6 @@ mv git-http-backend.xml+ git-http-backend.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-http-fetch.xml+ git-http-fetch.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-http-fetch.xml+ git-http-fetch.txt && \ -mv git-http-fetch.xml+ git-http-fetch.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-http-push.xml+ git-http-push.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-http-push.xml+ git-http-push.txt && \ mv git-http-push.xml+ git-http-push.xml @@ -4338,14 +4373,19 @@ mv git-index-pack.xml+ git-index-pack.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-init.xml+ git-init.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-init.xml+ git-init.txt && \ +mv git-init.xml+ git-init.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-instaweb.xml+ git-instaweb.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-instaweb.xml+ git-instaweb.txt && \ mv git-instaweb.xml+ git-instaweb.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-init.xml+ git-init.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-init.xml+ git-init.txt && \ -mv git-init.xml+ git-init.xml +rm -f git-ls-remote.xml+ git-ls-remote.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-ls-remote.xml+ git-ls-remote.txt && \ +mv git-ls-remote.xml+ git-ls-remote.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-interpret-trailers.xml+ git-interpret-trailers.xml && \ @@ -4358,9 +4398,9 @@ mv git-ls-files.xml+ git-ls-files.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-ls-remote.xml+ git-ls-remote.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-ls-remote.xml+ git-ls-remote.txt && \ -mv git-ls-remote.xml+ git-ls-remote.xml +rm -f git-mailinfo.xml+ git-mailinfo.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-mailinfo.xml+ git-mailinfo.txt && \ +mv git-mailinfo.xml+ git-mailinfo.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-ls-tree.xml+ git-ls-tree.xml && \ @@ -4368,16 +4408,16 @@ mv git-ls-tree.xml+ git-ls-tree.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-mailinfo.xml+ git-mailinfo.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-mailinfo.xml+ git-mailinfo.txt && \ -mv git-mailinfo.xml+ git-mailinfo.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-mailsplit.xml+ git-mailsplit.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-mailsplit.xml+ git-mailsplit.txt && \ mv git-mailsplit.xml+ git-mailsplit.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-merge-file.xml+ git-merge-file.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-merge-file.xml+ git-merge-file.txt && \ +mv git-merge-file.xml+ git-merge-file.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-maintenance.xml+ git-maintenance.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-maintenance.xml+ git-maintenance.txt && \ mv git-maintenance.xml+ git-maintenance.xml @@ -4388,16 +4428,6 @@ mv git-merge-base.xml+ git-merge-base.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-merge-file.xml+ git-merge-file.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-merge-file.xml+ git-merge-file.txt && \ -mv git-merge-file.xml+ git-merge-file.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-merge-one-file.xml+ git-merge-one-file.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-merge-one-file.xml+ git-merge-one-file.txt && \ -mv git-merge-one-file.xml+ git-merge-one-file.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-merge-index.xml+ git-merge-index.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-merge-index.xml+ git-merge-index.txt && \ mv git-merge-index.xml+ git-merge-index.xml @@ -4408,6 +4438,11 @@ mv git-merge-tree.xml+ git-merge-tree.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-merge-one-file.xml+ git-merge-one-file.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-merge-one-file.xml+ git-merge-one-file.txt && \ +mv git-merge-one-file.xml+ git-merge-one-file.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-mergetool--lib.xml+ git-mergetool--lib.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-mergetool--lib.xml+ git-mergetool--lib.txt && \ mv git-mergetool--lib.xml+ git-mergetool--lib.xml @@ -4418,16 +4453,6 @@ mv git-mergetool.xml+ git-mergetool.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-merge.xml+ git-merge.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-merge.xml+ git-merge.txt && \ -mv git-merge.xml+ git-merge.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-log.xml+ git-log.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-log.xml+ git-log.txt && \ -mv git-log.xml+ git-log.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-mktag.xml+ git-mktag.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-mktag.xml+ git-mktag.txt && \ mv git-mktag.xml+ git-mktag.xml @@ -4438,24 +4463,24 @@ mv git-mktree.xml+ git-mktree.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-mv.xml+ git-mv.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-mv.xml+ git-mv.txt && \ -mv git-mv.xml+ git-mv.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-multi-pack-index.xml+ git-multi-pack-index.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-multi-pack-index.xml+ git-multi-pack-index.txt && \ mv git-multi-pack-index.xml+ git-multi-pack-index.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-mv.xml+ git-mv.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-mv.xml+ git-mv.txt && \ +mv git-mv.xml+ git-mv.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-name-rev.xml+ git-name-rev.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-name-rev.xml+ git-name-rev.txt && \ mv git-name-rev.xml+ git-name-rev.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-pack-objects.xml+ git-pack-objects.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-pack-objects.xml+ git-pack-objects.txt && \ -mv git-pack-objects.xml+ git-pack-objects.xml +rm -f git-merge.xml+ git-merge.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-merge.xml+ git-merge.txt && \ +mv git-merge.xml+ git-merge.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-notes.xml+ git-notes.xml && \ @@ -4463,6 +4488,16 @@ mv git-notes.xml+ git-notes.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-log.xml+ git-log.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-log.xml+ git-log.txt && \ +mv git-log.xml+ git-log.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-pack-objects.xml+ git-pack-objects.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-pack-objects.xml+ git-pack-objects.txt && \ +mv git-pack-objects.xml+ git-pack-objects.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-pack-redundant.xml+ git-pack-redundant.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-pack-redundant.xml+ git-pack-redundant.txt && \ mv git-pack-redundant.xml+ git-pack-redundant.xml @@ -4473,6 +4508,11 @@ mv git-pack-refs.xml+ git-pack-refs.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-patch-id.xml+ git-patch-id.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-patch-id.xml+ git-patch-id.txt && \ +mv git-patch-id.xml+ git-patch-id.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-p4.xml+ git-p4.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-p4.xml+ git-p4.txt && \ mv git-p4.xml+ git-p4.xml @@ -4483,11 +4523,6 @@ mv git-prune-packed.xml+ git-prune-packed.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-patch-id.xml+ git-patch-id.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-patch-id.xml+ git-patch-id.txt && \ -mv git-patch-id.xml+ git-patch-id.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-prune.xml+ git-prune.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-prune.xml+ git-prune.txt && \ mv git-prune.xml+ git-prune.xml @@ -4503,19 +4538,14 @@ mv git-range-diff.xml+ git-range-diff.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-push.xml+ git-push.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-push.xml+ git-push.txt && \ -mv git-push.xml+ git-push.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-read-tree.xml+ git-read-tree.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-read-tree.xml+ git-read-tree.txt && \ mv git-read-tree.xml+ git-read-tree.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-pull.xml+ git-pull.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-pull.xml+ git-pull.txt && \ -mv git-pull.xml+ git-pull.xml +rm -f git-push.xml+ git-push.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-push.xml+ git-push.txt && \ +mv git-push.xml+ git-push.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-receive-pack.xml+ git-receive-pack.xml && \ @@ -4528,6 +4558,11 @@ mv git-reflog.xml+ git-reflog.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-pull.xml+ git-pull.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-pull.xml+ git-pull.txt && \ +mv git-pull.xml+ git-pull.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-remote-ext.xml+ git-remote-ext.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-remote-ext.xml+ git-remote-ext.txt && \ mv git-remote-ext.xml+ git-remote-ext.xml @@ -4583,19 +4618,14 @@ mv git-revert.xml+ git-revert.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-rev-parse.xml+ git-rev-parse.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-rev-parse.xml+ git-rev-parse.txt && \ -mv git-rev-parse.xml+ git-rev-parse.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-rm.xml+ git-rm.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-rm.xml+ git-rm.txt && \ mv git-rm.xml+ git-rm.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-rev-list.xml+ git-rev-list.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-rev-list.xml+ git-rev-list.txt && \ -mv git-rev-list.xml+ git-rev-list.xml +rm -f git-rev-parse.xml+ git-rev-parse.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-rev-parse.xml+ git-rev-parse.txt && \ +mv git-rev-parse.xml+ git-rev-parse.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-send-pack.xml+ git-send-pack.xml && \ @@ -4603,16 +4633,16 @@ mv git-send-pack.xml+ git-send-pack.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-sh-i18n.xml+ git-sh-i18n.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-sh-i18n.xml+ git-sh-i18n.txt && \ -mv git-sh-i18n.xml+ git-sh-i18n.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-sh-i18n--envsubst.xml+ git-sh-i18n--envsubst.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-sh-i18n--envsubst.xml+ git-sh-i18n--envsubst.txt && \ mv git-sh-i18n--envsubst.xml+ git-sh-i18n--envsubst.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-sh-i18n.xml+ git-sh-i18n.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-sh-i18n.xml+ git-sh-i18n.txt && \ +mv git-sh-i18n.xml+ git-sh-i18n.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-send-email.xml+ git-send-email.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-send-email.xml+ git-send-email.txt && \ mv git-send-email.xml+ git-send-email.xml @@ -4623,31 +4653,31 @@ mv git-sh-setup.xml+ git-sh-setup.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-rev-list.xml+ git-rev-list.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-rev-list.xml+ git-rev-list.txt && \ +mv git-rev-list.xml+ git-rev-list.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-shell.xml+ git-shell.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-shell.xml+ git-shell.txt && \ mv git-shell.xml+ git-shell.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-show-branch.xml+ git-show-branch.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-show-branch.xml+ git-show-branch.txt && \ -mv git-show-branch.xml+ git-show-branch.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-show-index.xml+ git-show-index.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-show-index.xml+ git-show-index.txt && \ mv git-show-index.xml+ git-show-index.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-show-branch.xml+ git-show-branch.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-show-branch.xml+ git-show-branch.txt && \ +mv git-show-branch.xml+ git-show-branch.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-show-ref.xml+ git-show-ref.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-show-ref.xml+ git-show-ref.txt && \ mv git-show-ref.xml+ git-show-ref.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-shortlog.xml+ git-shortlog.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-shortlog.xml+ git-shortlog.txt && \ -mv git-shortlog.xml+ git-shortlog.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-sparse-checkout.xml+ git-sparse-checkout.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-sparse-checkout.xml+ git-sparse-checkout.txt && \ mv git-sparse-checkout.xml+ git-sparse-checkout.xml @@ -4658,6 +4688,16 @@ mv git-stage.xml+ git-stage.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-shortlog.xml+ git-shortlog.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-shortlog.xml+ git-shortlog.txt && \ +mv git-shortlog.xml+ git-shortlog.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-stripspace.xml+ git-stripspace.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-stripspace.xml+ git-stripspace.txt && \ +mv git-stripspace.xml+ git-stripspace.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-stash.xml+ git-stash.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-stash.xml+ git-stash.txt && \ mv git-stash.xml+ git-stash.xml @@ -4668,16 +4708,6 @@ mv git-status.xml+ git-status.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-stripspace.xml+ git-stripspace.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-stripspace.xml+ git-stripspace.txt && \ -mv git-stripspace.xml+ git-stripspace.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-show.xml+ git-show.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-show.xml+ git-show.txt && \ -mv git-show.xml+ git-show.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-switch.xml+ git-switch.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-switch.xml+ git-switch.txt && \ mv git-switch.xml+ git-switch.xml @@ -4688,6 +4718,11 @@ mv git-submodule.xml+ git-submodule.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-show.xml+ git-show.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-show.xml+ git-show.txt && \ +mv git-show.xml+ git-show.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-symbolic-ref.xml+ git-symbolic-ref.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-symbolic-ref.xml+ git-symbolic-ref.txt && \ mv git-symbolic-ref.xml+ git-symbolic-ref.xml @@ -4698,6 +4733,11 @@ mv git-unpack-file.xml+ git-unpack-file.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-unpack-objects.xml+ git-unpack-objects.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-unpack-objects.xml+ git-unpack-objects.txt && \ +mv git-unpack-objects.xml+ git-unpack-objects.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-tag.xml+ git-tag.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-tag.xml+ git-tag.txt && \ mv git-tag.xml+ git-tag.xml @@ -4708,9 +4748,9 @@ mv git-svn.xml+ git-svn.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-unpack-objects.xml+ git-unpack-objects.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-unpack-objects.xml+ git-unpack-objects.txt && \ -mv git-unpack-objects.xml+ git-unpack-objects.xml +rm -f git-update-ref.xml+ git-update-ref.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-update-ref.xml+ git-update-ref.txt && \ +mv git-update-ref.xml+ git-update-ref.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-update-server-info.xml+ git-update-server-info.xml && \ @@ -4718,11 +4758,6 @@ mv git-update-server-info.xml+ git-update-server-info.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-update-ref.xml+ git-update-ref.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-update-ref.xml+ git-update-ref.txt && \ -mv git-update-ref.xml+ git-update-ref.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-upload-archive.xml+ git-upload-archive.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-upload-archive.xml+ git-upload-archive.txt && \ mv git-upload-archive.xml+ git-upload-archive.xml @@ -4748,16 +4783,16 @@ mv git-verify-commit.xml+ git-verify-commit.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-verify-tag.xml+ git-verify-tag.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-verify-tag.xml+ git-verify-tag.txt && \ -mv git-verify-tag.xml+ git-verify-tag.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-verify-pack.xml+ git-verify-pack.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-verify-pack.xml+ git-verify-pack.txt && \ mv git-verify-pack.xml+ git-verify-pack.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-verify-tag.xml+ git-verify-tag.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-verify-tag.xml+ git-verify-tag.txt && \ +mv git-verify-tag.xml+ git-verify-tag.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-web--browse.xml+ git-web--browse.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-web--browse.xml+ git-web--browse.txt && \ mv git-web--browse.xml+ git-web--browse.xml @@ -4768,16 +4803,16 @@ mv git-whatchanged.xml+ git-whatchanged.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-worktree.xml+ git-worktree.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-worktree.xml+ git-worktree.txt && \ -mv git-worktree.xml+ git-worktree.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-write-tree.xml+ git-write-tree.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-write-tree.xml+ git-write-tree.txt && \ mv git-write-tree.xml+ git-write-tree.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-worktree.xml+ git-worktree.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-worktree.xml+ git-worktree.txt && \ +mv git-worktree.xml+ git-worktree.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f gitk.xml+ gitk.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o gitk.xml+ gitk.txt && \ mv gitk.xml+ gitk.xml @@ -4788,14 +4823,9 @@ mv gitweb.xml+ gitweb.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f gitattributes.xml+ gitattributes.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o gitattributes.xml+ gitattributes.txt && \ -mv gitattributes.xml+ gitattributes.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git.xml+ git.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git.xml+ git.txt && \ -mv git.xml+ git.xml +rm -f gitignore.xml+ gitignore.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o gitignore.xml+ gitignore.txt && \ +mv gitignore.xml+ gitignore.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f githooks.xml+ githooks.xml && \ @@ -4803,14 +4833,19 @@ mv githooks.xml+ githooks.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f gitattributes.xml+ gitattributes.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o gitattributes.xml+ gitattributes.txt && \ +mv gitattributes.xml+ gitattributes.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f gitmodules.xml+ gitmodules.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o gitmodules.xml+ gitmodules.txt && \ mv gitmodules.xml+ gitmodules.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f gitignore.xml+ gitignore.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o gitignore.xml+ gitignore.txt && \ -mv gitignore.xml+ gitignore.xml +rm -f gitcli.xml+ gitcli.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o gitcli.xml+ gitcli.txt && \ +mv gitcli.xml+ gitcli.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f gitrepository-layout.xml+ gitrepository-layout.xml && \ @@ -4818,14 +4853,9 @@ mv gitrepository-layout.xml+ gitrepository-layout.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f gitcli.xml+ gitcli.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o gitcli.xml+ gitcli.txt && \ -mv gitcli.xml+ gitcli.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f gitcredentials.xml+ gitcredentials.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o gitcredentials.xml+ gitcredentials.txt && \ -mv gitcredentials.xml+ gitcredentials.xml +rm -f git.xml+ git.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git.xml+ git.txt && \ +mv git.xml+ git.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f gitweb.conf.xml+ gitweb.conf.xml && \ @@ -4833,6 +4863,11 @@ mv gitweb.conf.xml+ gitweb.conf.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f gitcredentials.xml+ gitcredentials.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o gitcredentials.xml+ gitcredentials.txt && \ +mv gitcredentials.xml+ gitcredentials.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f gitcvs-migration.xml+ gitcvs-migration.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o gitcvs-migration.xml+ gitcvs-migration.txt && \ mv gitcvs-migration.xml+ gitcvs-migration.xml @@ -4853,14 +4888,19 @@ mv giteveryday.xml+ giteveryday.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f gitfaq.xml+ gitfaq.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o gitfaq.xml+ gitfaq.txt && \ +mv gitfaq.xml+ gitfaq.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f gitnamespaces.xml+ gitnamespaces.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o gitnamespaces.xml+ gitnamespaces.txt && \ mv gitnamespaces.xml+ gitnamespaces.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f gitfaq.xml+ gitfaq.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o gitfaq.xml+ gitfaq.txt && \ -mv gitfaq.xml+ gitfaq.xml +rm -f gitsubmodules.xml+ gitsubmodules.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o gitsubmodules.xml+ gitsubmodules.txt && \ +mv gitsubmodules.xml+ gitsubmodules.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f gitglossary.xml+ gitglossary.xml && \ @@ -4878,11 +4918,6 @@ mv gitremote-helpers.xml+ gitremote-helpers.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f gitsubmodules.xml+ gitsubmodules.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o gitsubmodules.xml+ gitsubmodules.txt && \ -mv gitsubmodules.xml+ gitsubmodules.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f gittutorial-2.xml+ gittutorial-2.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o gittutorial-2.xml+ gittutorial-2.txt && \ mv gittutorial-2.xml+ gittutorial-2.xml @@ -4893,19 +4928,14 @@ mv git-add.html+ git-add.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f gittutorial.xml+ gittutorial.xml && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o gittutorial.xml+ gittutorial.txt && \ -mv gittutorial.xml+ gittutorial.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f gitworkflows.xml+ gitworkflows.xml && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o gitworkflows.xml+ gitworkflows.txt && \ mv gitworkflows.xml+ gitworkflows.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-annotate.html+ git-annotate.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-annotate.html+ git-annotate.txt && \ -mv git-annotate.html+ git-annotate.html +rm -f gittutorial.xml+ gittutorial.xml && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o gittutorial.xml+ gittutorial.txt && \ +mv gittutorial.xml+ gittutorial.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-am.html+ git-am.html && \ @@ -4913,41 +4943,46 @@ mv git-am.html+ git-am.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-apply.html+ git-apply.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-apply.html+ git-apply.txt && \ -mv git-apply.html+ git-apply.html -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-archimport.html+ git-archimport.html && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-archimport.html+ git-archimport.txt && \ mv git-archimport.html+ git-archimport.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-annotate.html+ git-annotate.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-annotate.html+ git-annotate.txt && \ +mv git-annotate.html+ git-annotate.html +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-apply.html+ git-apply.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-apply.html+ git-apply.txt && \ +mv git-apply.html+ git-apply.html +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-archive.html+ git-archive.html && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-archive.html+ git-archive.txt && \ mv git-archive.html+ git-archive.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-bisect.html+ git-bisect.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-bisect.html+ git-bisect.txt && \ -mv git-bisect.html+ git-bisect.html -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-bugreport.html+ git-bugreport.html && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-bugreport.html+ git-bugreport.txt && \ mv git-bugreport.html+ git-bugreport.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-blame.html+ git-blame.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-blame.html+ git-blame.txt && \ -mv git-blame.html+ git-blame.html -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-branch.html+ git-branch.html && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-branch.html+ git-branch.txt && \ mv git-branch.html+ git-branch.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-bisect.html+ git-bisect.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-bisect.html+ git-bisect.txt && \ +mv git-bisect.html+ git-bisect.html +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-blame.html+ git-blame.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-blame.html+ git-blame.txt && \ +mv git-blame.html+ git-blame.html +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-bundle.html+ git-bundle.html && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-bundle.html+ git-bundle.txt && \ mv git-bundle.html+ git-bundle.html @@ -4958,19 +4993,14 @@ mv git-check-attr.html+ git-check-attr.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-cat-file.html+ git-cat-file.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-cat-file.html+ git-cat-file.txt && \ -mv git-cat-file.html+ git-cat-file.html -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-check-ignore.html+ git-check-ignore.html && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-check-ignore.html+ git-check-ignore.txt && \ mv git-check-ignore.html+ git-check-ignore.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-check-ref-format.html+ git-check-ref-format.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-check-ref-format.html+ git-check-ref-format.txt && \ -mv git-check-ref-format.html+ git-check-ref-format.html +rm -f git-cat-file.html+ git-cat-file.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-cat-file.html+ git-cat-file.txt && \ +mv git-cat-file.html+ git-cat-file.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-check-mailmap.html+ git-check-mailmap.html && \ @@ -4978,6 +5008,11 @@ mv git-check-mailmap.html+ git-check-mailmap.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-check-ref-format.html+ git-check-ref-format.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-check-ref-format.html+ git-check-ref-format.txt && \ +mv git-check-ref-format.html+ git-check-ref-format.html +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-checkout-index.html+ git-checkout-index.html && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-checkout-index.html+ git-checkout-index.txt && \ mv git-checkout-index.html+ git-checkout-index.html @@ -4993,16 +5028,16 @@ mv git-cherry.html+ git-cherry.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-checkout.html+ git-checkout.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-checkout.html+ git-checkout.txt && \ -mv git-checkout.html+ git-checkout.html -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-citool.html+ git-citool.html && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-citool.html+ git-citool.txt && \ mv git-citool.html+ git-citool.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-checkout.html+ git-checkout.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-checkout.html+ git-checkout.txt && \ +mv git-checkout.html+ git-checkout.html +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-clean.html+ git-clean.html && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-clean.html+ git-clean.txt && \ mv git-clean.html+ git-clean.html @@ -5068,16 +5103,16 @@ mv git-cvsimport.html+ git-cvsimport.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-cvsserver.html+ git-cvsserver.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-cvsserver.html+ git-cvsserver.txt && \ -mv git-cvsserver.html+ git-cvsserver.html -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-daemon.html+ git-daemon.html && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-daemon.html+ git-daemon.txt && \ mv git-daemon.html+ git-daemon.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-cvsserver.html+ git-cvsserver.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-cvsserver.html+ git-cvsserver.txt && \ +mv git-cvsserver.html+ git-cvsserver.html +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-describe.html+ git-describe.html && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-describe.html+ git-describe.txt && \ mv git-describe.html+ git-describe.html @@ -5093,14 +5128,9 @@ mv git-diff-index.html+ git-diff-index.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-config.html+ git-config.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-config.html+ git-config.txt && \ -mv git-config.html+ git-config.html -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-diff.html+ git-diff.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-diff.html+ git-diff.txt && \ -mv git-diff.html+ git-diff.html +rm -f git-difftool.html+ git-difftool.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-difftool.html+ git-difftool.txt && \ +mv git-difftool.html+ git-difftool.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-diff-tree.html+ git-diff-tree.html && \ @@ -5108,9 +5138,9 @@ mv git-diff-tree.html+ git-diff-tree.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-difftool.html+ git-difftool.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-difftool.html+ git-difftool.txt && \ -mv git-difftool.html+ git-difftool.html +rm -f git-fast-export.html+ git-fast-export.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-fast-export.html+ git-fast-export.txt && \ +mv git-fast-export.html+ git-fast-export.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-fetch-pack.html+ git-fetch-pack.html && \ @@ -5118,9 +5148,19 @@ mv git-fetch-pack.html+ git-fetch-pack.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-fast-export.html+ git-fast-export.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-fast-export.html+ git-fast-export.txt && \ -mv git-fast-export.html+ git-fast-export.html +rm -f git-diff.html+ git-diff.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-diff.html+ git-diff.txt && \ +mv git-diff.html+ git-diff.html +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-fast-import.html+ git-fast-import.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-fast-import.html+ git-fast-import.txt && \ +mv git-fast-import.html+ git-fast-import.html +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-fetch.html+ git-fetch.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-fetch.html+ git-fetch.txt && \ +mv git-fetch.html+ git-fetch.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-filter-branch.html+ git-filter-branch.html && \ @@ -5133,19 +5173,14 @@ mv git-fmt-merge-msg.html+ git-fmt-merge-msg.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-fetch.html+ git-fetch.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-fetch.html+ git-fetch.txt && \ -mv git-fetch.html+ git-fetch.html -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-for-each-repo.html+ git-for-each-repo.html && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-for-each-repo.html+ git-for-each-repo.txt && \ mv git-for-each-repo.html+ git-for-each-repo.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-fast-import.html+ git-fast-import.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-fast-import.html+ git-fast-import.txt && \ -mv git-fast-import.html+ git-fast-import.html +rm -f git-fsck-objects.html+ git-fsck-objects.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-fsck-objects.html+ git-fsck-objects.txt && \ +mv git-fsck-objects.html+ git-fsck-objects.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-for-each-ref.html+ git-for-each-ref.html && \ @@ -5153,9 +5188,14 @@ mv git-for-each-ref.html+ git-for-each-ref.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-fsck-objects.html+ git-fsck-objects.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-fsck-objects.html+ git-fsck-objects.txt && \ -mv git-fsck-objects.html+ git-fsck-objects.html +rm -f git-config.html+ git-config.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-config.html+ git-config.txt && \ +mv git-config.html+ git-config.html +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-get-tar-commit-id.html+ git-get-tar-commit-id.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-get-tar-commit-id.html+ git-get-tar-commit-id.txt && \ +mv git-get-tar-commit-id.html+ git-get-tar-commit-id.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-fsck.html+ git-fsck.html && \ @@ -5168,9 +5208,9 @@ mv git-gc.html+ git-gc.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-get-tar-commit-id.html+ git-get-tar-commit-id.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-get-tar-commit-id.html+ git-get-tar-commit-id.txt && \ -mv git-get-tar-commit-id.html+ git-get-tar-commit-id.html +rm -f git-hash-object.html+ git-hash-object.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-hash-object.html+ git-hash-object.txt && \ +mv git-hash-object.html+ git-hash-object.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-gui.html+ git-gui.html && \ @@ -5188,11 +5228,6 @@ mv git-grep.html+ git-grep.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-hash-object.html+ git-hash-object.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-hash-object.html+ git-hash-object.txt && \ -mv git-hash-object.html+ git-hash-object.html -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-help.html+ git-help.html && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-help.html+ git-help.txt && \ mv git-help.html+ git-help.html @@ -5213,11 +5248,6 @@ mv git-http-push.html+ git-http-push.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-imap-send.html+ git-imap-send.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-imap-send.html+ git-imap-send.txt && \ -mv git-imap-send.html+ git-imap-send.html -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-index-pack.html+ git-index-pack.html && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-index-pack.html+ git-index-pack.txt && \ mv git-index-pack.html+ git-index-pack.html @@ -5228,9 +5258,9 @@ mv git-init-db.html+ git-init-db.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-instaweb.html+ git-instaweb.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-instaweb.html+ git-instaweb.txt && \ -mv git-instaweb.html+ git-instaweb.html +rm -f git-imap-send.html+ git-imap-send.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-imap-send.html+ git-imap-send.txt && \ +mv git-imap-send.html+ git-imap-send.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-init.html+ git-init.html && \ @@ -5238,6 +5268,11 @@ mv git-init.html+ git-init.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-instaweb.html+ git-instaweb.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-instaweb.html+ git-instaweb.txt && \ +mv git-instaweb.html+ git-instaweb.html +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-interpret-trailers.html+ git-interpret-trailers.html && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-interpret-trailers.html+ git-interpret-trailers.txt && \ mv git-interpret-trailers.html+ git-interpret-trailers.html @@ -5258,19 +5293,19 @@ mv git-ls-tree.html+ git-ls-tree.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-mailsplit.html+ git-mailsplit.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-mailsplit.html+ git-mailsplit.txt && \ -mv git-mailsplit.html+ git-mailsplit.html -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-mailinfo.html+ git-mailinfo.html && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-mailinfo.html+ git-mailinfo.txt && \ mv git-mailinfo.html+ git-mailinfo.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-maintenance.html+ git-maintenance.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-maintenance.html+ git-maintenance.txt && \ -mv git-maintenance.html+ git-maintenance.html +rm -f git-mailsplit.html+ git-mailsplit.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-mailsplit.html+ git-mailsplit.txt && \ +mv git-mailsplit.html+ git-mailsplit.html +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-merge-file.html+ git-merge-file.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-merge-file.html+ git-merge-file.txt && \ +mv git-merge-file.html+ git-merge-file.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-merge-base.html+ git-merge-base.html && \ @@ -5278,9 +5313,9 @@ mv git-merge-base.html+ git-merge-base.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-merge-file.html+ git-merge-file.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-merge-file.html+ git-merge-file.txt && \ -mv git-merge-file.html+ git-merge-file.html +rm -f git-maintenance.html+ git-maintenance.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-maintenance.html+ git-maintenance.txt && \ +mv git-maintenance.html+ git-maintenance.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-merge-index.html+ git-merge-index.html && \ @@ -5288,19 +5323,14 @@ mv git-merge-index.html+ git-merge-index.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-merge-one-file.html+ git-merge-one-file.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-merge-one-file.html+ git-merge-one-file.txt && \ -mv git-merge-one-file.html+ git-merge-one-file.html -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-merge-tree.html+ git-merge-tree.html && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-merge-tree.html+ git-merge-tree.txt && \ mv git-merge-tree.html+ git-merge-tree.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-merge.html+ git-merge.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-merge.html+ git-merge.txt && \ -mv git-merge.html+ git-merge.html +rm -f git-merge-one-file.html+ git-merge-one-file.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-merge-one-file.html+ git-merge-one-file.txt && \ +mv git-merge-one-file.html+ git-merge-one-file.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-mergetool--lib.html+ git-mergetool--lib.html && \ @@ -5318,11 +5348,6 @@ mv git-mktag.html+ git-mktag.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-log.html+ git-log.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-log.html+ git-log.txt && \ -mv git-log.html+ git-log.html -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-mktree.html+ git-mktree.html && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-mktree.html+ git-mktree.txt && \ mv git-mktree.html+ git-mktree.html @@ -5338,11 +5363,21 @@ mv git-mv.html+ git-mv.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-merge.html+ git-merge.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-merge.html+ git-merge.txt && \ +mv git-merge.html+ git-merge.html +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-name-rev.html+ git-name-rev.html && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-name-rev.html+ git-name-rev.txt && \ mv git-name-rev.html+ git-name-rev.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-log.html+ git-log.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-log.html+ git-log.txt && \ +mv git-log.html+ git-log.html +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-notes.html+ git-notes.html && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-notes.html+ git-notes.txt && \ mv git-notes.html+ git-notes.html @@ -5358,11 +5393,6 @@ mv git-pack-objects.html+ git-pack-objects.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-p4.html+ git-p4.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-p4.html+ git-p4.txt && \ -mv git-p4.html+ git-p4.html -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-pack-refs.html+ git-pack-refs.html && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-pack-refs.html+ git-pack-refs.txt && \ mv git-pack-refs.html+ git-pack-refs.html @@ -5378,6 +5408,11 @@ mv git-prune-packed.html+ git-prune-packed.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-p4.html+ git-p4.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-p4.html+ git-p4.txt && \ +mv git-p4.html+ git-p4.html +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-prune.html+ git-prune.html && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-prune.html+ git-prune.txt && \ mv git-prune.html+ git-prune.html @@ -5393,9 +5428,9 @@ mv git-range-diff.html+ git-range-diff.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-pull.html+ git-pull.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-pull.html+ git-pull.txt && \ -mv git-pull.html+ git-pull.html +rm -f git-read-tree.html+ git-read-tree.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-read-tree.html+ git-read-tree.txt && \ +mv git-read-tree.html+ git-read-tree.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-push.html+ git-push.html && \ @@ -5403,9 +5438,9 @@ mv git-push.html+ git-push.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-read-tree.html+ git-read-tree.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-read-tree.html+ git-read-tree.txt && \ -mv git-read-tree.html+ git-read-tree.html +rm -f git-pull.html+ git-pull.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-pull.html+ git-pull.txt && \ +mv git-pull.html+ git-pull.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-receive-pack.html+ git-receive-pack.html && \ @@ -5418,19 +5453,14 @@ mv git-reflog.html+ git-reflog.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-remote-fd.html+ git-remote-fd.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-remote-fd.html+ git-remote-fd.txt && \ -mv git-remote-fd.html+ git-remote-fd.html -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-remote-ext.html+ git-remote-ext.html && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-remote-ext.html+ git-remote-ext.txt && \ mv git-remote-ext.html+ git-remote-ext.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-rebase.html+ git-rebase.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-rebase.html+ git-rebase.txt && \ -mv git-rebase.html+ git-rebase.html +rm -f git-remote-fd.html+ git-remote-fd.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-remote-fd.html+ git-remote-fd.txt && \ +mv git-remote-fd.html+ git-remote-fd.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-remote.html+ git-remote.html && \ @@ -5443,16 +5473,21 @@ mv git-repack.html+ git-repack.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-request-pull.html+ git-request-pull.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-request-pull.html+ git-request-pull.txt && \ -mv git-request-pull.html+ git-request-pull.html -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-replace.html+ git-replace.html && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-replace.html+ git-replace.txt && \ mv git-replace.html+ git-replace.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-rebase.html+ git-rebase.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-rebase.html+ git-rebase.txt && \ +mv git-rebase.html+ git-rebase.html +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-request-pull.html+ git-request-pull.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-request-pull.html+ git-request-pull.txt && \ +mv git-request-pull.html+ git-request-pull.html +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-rerere.html+ git-rerere.html && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-rerere.html+ git-rerere.txt && \ mv git-rerere.html+ git-rerere.html @@ -5483,16 +5518,6 @@ mv git-rev-parse.html+ git-rev-parse.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-rev-list.html+ git-rev-list.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-rev-list.html+ git-rev-list.txt && \ -mv git-rev-list.html+ git-rev-list.html -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-send-email.html+ git-send-email.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-send-email.html+ git-send-email.txt && \ -mv git-send-email.html+ git-send-email.html -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-send-pack.html+ git-send-pack.html && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-send-pack.html+ git-send-pack.txt && \ mv git-send-pack.html+ git-send-pack.html @@ -5503,19 +5528,29 @@ mv git-sh-i18n--envsubst.html+ git-sh-i18n--envsubst.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-send-email.html+ git-send-email.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-send-email.html+ git-send-email.txt && \ +mv git-send-email.html+ git-send-email.html +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-sh-i18n.html+ git-sh-i18n.html && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-sh-i18n.html+ git-sh-i18n.txt && \ mv git-sh-i18n.html+ git-sh-i18n.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-shell.html+ git-shell.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-shell.html+ git-shell.txt && \ +mv git-shell.html+ git-shell.html +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-sh-setup.html+ git-sh-setup.html && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-sh-setup.html+ git-sh-setup.txt && \ mv git-sh-setup.html+ git-sh-setup.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-shell.html+ git-shell.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-shell.html+ git-shell.txt && \ -mv git-shell.html+ git-shell.html +rm -f git-rev-list.html+ git-rev-list.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-rev-list.html+ git-rev-list.txt && \ +mv git-rev-list.html+ git-rev-list.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-show-index.html+ git-show-index.html && \ @@ -5533,9 +5568,9 @@ mv git-show-ref.html+ git-show-ref.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-shortlog.html+ git-shortlog.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-shortlog.html+ git-shortlog.txt && \ -mv git-shortlog.html+ git-shortlog.html +rm -f git-stage.html+ git-stage.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-stage.html+ git-stage.txt && \ +mv git-stage.html+ git-stage.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-sparse-checkout.html+ git-sparse-checkout.html && \ @@ -5543,14 +5578,9 @@ mv git-sparse-checkout.html+ git-sparse-checkout.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-stage.html+ git-stage.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-stage.html+ git-stage.txt && \ -mv git-stage.html+ git-stage.html -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-show.html+ git-show.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-show.html+ git-show.txt && \ -mv git-show.html+ git-show.html +rm -f git-shortlog.html+ git-shortlog.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-shortlog.html+ git-shortlog.txt && \ +mv git-shortlog.html+ git-shortlog.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-stash.html+ git-stash.html && \ @@ -5558,14 +5588,19 @@ mv git-stash.html+ git-stash.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-stripspace.html+ git-stripspace.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-stripspace.html+ git-stripspace.txt && \ +mv git-stripspace.html+ git-stripspace.html +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-status.html+ git-status.html && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-status.html+ git-status.txt && \ mv git-status.html+ git-status.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-stripspace.html+ git-stripspace.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-stripspace.html+ git-stripspace.txt && \ -mv git-stripspace.html+ git-stripspace.html +rm -f git-switch.html+ git-switch.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-switch.html+ git-switch.txt && \ +mv git-switch.html+ git-switch.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-submodule.html+ git-submodule.html && \ @@ -5573,9 +5608,9 @@ mv git-submodule.html+ git-submodule.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-switch.html+ git-switch.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-switch.html+ git-switch.txt && \ -mv git-switch.html+ git-switch.html +rm -f git-show.html+ git-show.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-show.html+ git-show.txt && \ +mv git-show.html+ git-show.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-symbolic-ref.html+ git-symbolic-ref.html && \ @@ -5588,6 +5623,11 @@ mv git-unpack-file.html+ git-unpack-file.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-unpack-objects.html+ git-unpack-objects.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-unpack-objects.html+ git-unpack-objects.txt && \ +mv git-unpack-objects.html+ git-unpack-objects.html +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-tag.html+ git-tag.html && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-tag.html+ git-tag.txt && \ mv git-tag.html+ git-tag.html @@ -5598,9 +5638,9 @@ mv git-svn.html+ git-svn.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-unpack-objects.html+ git-unpack-objects.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-unpack-objects.html+ git-unpack-objects.txt && \ -mv git-unpack-objects.html+ git-unpack-objects.html +rm -f git-update-ref.html+ git-update-ref.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-update-ref.html+ git-update-ref.txt && \ +mv git-update-ref.html+ git-update-ref.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-update-server-info.html+ git-update-server-info.html && \ @@ -5608,51 +5648,46 @@ mv git-update-server-info.html+ git-update-server-info.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-update-ref.html+ git-update-ref.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-update-ref.html+ git-update-ref.txt && \ -mv git-update-ref.html+ git-update-ref.html -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-upload-archive.html+ git-upload-archive.html && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-upload-archive.html+ git-upload-archive.txt && \ mv git-upload-archive.html+ git-upload-archive.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-update-index.html+ git-update-index.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-update-index.html+ git-update-index.txt && \ -mv git-update-index.html+ git-update-index.html -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-upload-pack.html+ git-upload-pack.html && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-upload-pack.html+ git-upload-pack.txt && \ mv git-upload-pack.html+ git-upload-pack.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-update-index.html+ git-update-index.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-update-index.html+ git-update-index.txt && \ +mv git-update-index.html+ git-update-index.html +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-var.html+ git-var.html && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-var.html+ git-var.txt && \ mv git-var.html+ git-var.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-verify-pack.html+ git-verify-pack.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-verify-pack.html+ git-verify-pack.txt && \ -mv git-verify-pack.html+ git-verify-pack.html -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-verify-commit.html+ git-verify-commit.html && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-verify-commit.html+ git-verify-commit.txt && \ mv git-verify-commit.html+ git-verify-commit.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-whatchanged.html+ git-whatchanged.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-whatchanged.html+ git-whatchanged.txt && \ -mv git-whatchanged.html+ git-whatchanged.html -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-verify-tag.html+ git-verify-tag.html && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-verify-tag.html+ git-verify-tag.txt && \ mv git-verify-tag.html+ git-verify-tag.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-verify-pack.html+ git-verify-pack.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-verify-pack.html+ git-verify-pack.txt && \ +mv git-verify-pack.html+ git-verify-pack.html +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-whatchanged.html+ git-whatchanged.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-whatchanged.html+ git-whatchanged.txt && \ +mv git-whatchanged.html+ git-whatchanged.html +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-web--browse.html+ git-web--browse.html && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git-web--browse.html+ git-web--browse.txt && \ mv git-web--browse.html+ git-web--browse.html @@ -5678,16 +5713,6 @@ mv gitweb.html+ gitweb.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f gitattributes.html+ gitattributes.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o gitattributes.html+ gitattributes.txt && \ -mv gitattributes.html+ gitattributes.html -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git.html+ git.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git.html+ git.txt && \ -mv git.html+ git.html -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f githooks.html+ githooks.html && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o githooks.html+ githooks.txt && \ mv githooks.html+ githooks.html @@ -5703,6 +5728,11 @@ mv gitmodules.html+ gitmodules.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f gitattributes.html+ gitattributes.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o gitattributes.html+ gitattributes.txt && \ +mv gitattributes.html+ gitattributes.html +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f gitrepository-layout.html+ gitrepository-layout.html && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o gitrepository-layout.html+ gitrepository-layout.txt && \ mv gitrepository-layout.html+ gitrepository-layout.html @@ -5713,21 +5743,26 @@ mv gitcli.html+ gitcli.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git.html+ git.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o git.html+ git.txt && \ +mv git.html+ git.html +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f gitcredentials.html+ gitcredentials.html && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o gitcredentials.html+ gitcredentials.txt && \ mv gitcredentials.html+ gitcredentials.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f gitweb.conf.html+ gitweb.conf.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o gitweb.conf.html+ gitweb.conf.txt && \ -mv gitweb.conf.html+ gitweb.conf.html -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f gitcvs-migration.html+ gitcvs-migration.html && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o gitcvs-migration.html+ gitcvs-migration.txt && \ mv gitcvs-migration.html+ gitcvs-migration.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f gitweb.conf.html+ gitweb.conf.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o gitweb.conf.html+ gitweb.conf.txt && \ +mv gitweb.conf.html+ gitweb.conf.html +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f gitdiffcore.html+ gitdiffcore.html && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o gitdiffcore.html+ gitdiffcore.txt && \ mv gitdiffcore.html+ gitdiffcore.html @@ -5738,31 +5773,21 @@ mv giteveryday.html+ giteveryday.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f gitcore-tutorial.html+ gitcore-tutorial.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o gitcore-tutorial.html+ gitcore-tutorial.txt && \ -mv gitcore-tutorial.html+ gitcore-tutorial.html -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f gitfaq.html+ gitfaq.html && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o gitfaq.html+ gitfaq.txt && \ mv gitfaq.html+ gitfaq.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f gitcore-tutorial.html+ gitcore-tutorial.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o gitcore-tutorial.html+ gitcore-tutorial.txt && \ +mv gitcore-tutorial.html+ gitcore-tutorial.html +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f gitnamespaces.html+ gitnamespaces.html && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o gitnamespaces.html+ gitnamespaces.txt && \ mv gitnamespaces.html+ gitnamespaces.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f gitremote-helpers.html+ gitremote-helpers.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o gitremote-helpers.html+ gitremote-helpers.txt && \ -mv gitremote-helpers.html+ gitremote-helpers.html -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f gitrevisions.html+ gitrevisions.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o gitrevisions.html+ gitrevisions.txt && \ -mv gitrevisions.html+ gitrevisions.html -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f gitglossary.html+ gitglossary.html && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o gitglossary.html+ gitglossary.txt && \ mv gitglossary.html+ gitglossary.html @@ -5773,17 +5798,27 @@ mv gitsubmodules.html+ gitsubmodules.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f gitrevisions.html+ gitrevisions.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o gitrevisions.html+ gitrevisions.txt && \ +mv gitrevisions.html+ gitrevisions.html +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f gitremote-helpers.html+ gitremote-helpers.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o gitremote-helpers.html+ gitremote-helpers.txt && \ +mv gitremote-helpers.html+ gitremote-helpers.html +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f gittutorial-2.html+ gittutorial-2.html && \ TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o gittutorial-2.html+ gittutorial-2.txt && \ mv gittutorial-2.html+ gittutorial-2.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f gittutorial.html+ gittutorial.html && \ -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o gittutorial.html+ gittutorial.txt && \ -mv gittutorial.html+ gittutorial.html +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 howto-index.txt make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 howto-index.txt +rm -f user-manual.html+ user-manual.html && \ +xsltproc --xinclude --stringparam html.stylesheet docbook-xsl.css --param generate.consistent.ids 1 -o user-manual.html+ docbook.xsl user-manual.xml && \ +mv user-manual.html+ user-manual.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f gitworkflows.html+ gitworkflows.html && \ @@ -5791,37 +5826,37 @@ mv gitworkflows.html+ gitworkflows.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -TZ=UTC asciidoc -a git-relative-html-prefix=../ -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 technical/api-index.txt +rm -f gittutorial.html+ gittutorial.html && \ +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 -d manpage -o gittutorial.html+ gittutorial.txt && \ +mv gittutorial.html+ gittutorial.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 SubmittingPatches.txt +TZ=UTC asciidoc -a git-relative-html-prefix=../ -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 technical/api-index.txt make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f user-manual.html+ user-manual.html && \ -xsltproc --xinclude --stringparam html.stylesheet docbook-xsl.css --param generate.consistent.ids 1 -o user-manual.html+ docbook.xsl user-manual.xml && \ -mv user-manual.html+ user-manual.html +TZ=UTC asciidoc -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b xhtml11 SubmittingPatches.txt make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-am.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-am.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-add.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-add.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-annotate.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-annotate.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-apply.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-apply.xml +rm -f git-add.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-add.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-archimport.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-archimport.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-apply.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-apply.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-archive.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-archive.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' @@ -5830,46 +5865,46 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-bisect.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-blame.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-blame.xml +rm -f git-bugreport.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-bugreport.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-branch.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-branch.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-bugreport.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-bugreport.xml +rm -f git-blame.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-blame.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-bundle.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-bundle.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-cat-file.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-cat-file.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-check-attr.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-check-attr.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-check-ignore.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-check-ignore.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-check-mailmap.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-check-mailmap.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-checkout-index.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-checkout-index.xml +rm -f git-cat-file.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-cat-file.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-check-ignore.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-check-ignore.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-check-ref-format.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-check-ref-format.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-checkout-index.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-checkout-index.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-cherry-pick.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-cherry-pick.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' @@ -5906,14 +5941,14 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-commit-tree.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-commit.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-commit.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-count-objects.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-count-objects.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-commit.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-commit.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-credential-cache--daemon.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-credential-cache--daemon.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' @@ -5922,16 +5957,12 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-credential-cache.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-credential.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-credential.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-credential-store.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-credential-store.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-config.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-config.xml +rm -f git-credential.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-credential.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-cvsexportcommit.1 && \ @@ -5942,36 +5973,40 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-cvsimport.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-daemon.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-daemon.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-cvsserver.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-cvsserver.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-describe.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-describe.xml +rm -f git-daemon.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-daemon.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-diff-index.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-diff-index.xml +rm -f git-describe.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-describe.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-diff-files.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-diff-files.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-diff-index.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-diff-index.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-diff-tree.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-diff-tree.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-difftool.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-difftool.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-diff.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-diff.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-difftool.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-difftool.xml +rm -f git-config.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-config.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-fast-export.1 && \ @@ -5982,14 +6017,14 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-fetch-pack.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-fast-import.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-fast-import.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-filter-branch.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-filter-branch.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-fast-import.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-fast-import.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-fetch.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-fetch.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' @@ -6002,6 +6037,10 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-for-each-repo.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-fsck-objects.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-fsck-objects.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-for-each-ref.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-for-each-ref.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' @@ -6010,20 +6049,20 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-format-patch.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-fsck-objects.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-fsck-objects.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-fsck.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-fsck.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-get-tar-commit-id.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-get-tar-commit-id.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-gc.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-gc.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-get-tar-commit-id.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-get-tar-commit-id.xml +rm -f git-gui.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-gui.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-grep.1 && \ @@ -6034,10 +6073,6 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-hash-object.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-gui.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-gui.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-help.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-help.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' @@ -6058,20 +6093,24 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-imap-send.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-init-db.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-init-db.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-index-pack.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-index-pack.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-init-db.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-init-db.xml +rm -f git-init.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-init.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-instaweb.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-instaweb.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-init.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-init.xml +rm -f git-ls-files.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-ls-files.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-interpret-trailers.1 && \ @@ -6082,10 +6121,6 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-ls-remote.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-ls-files.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-ls-files.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-mailinfo.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-mailinfo.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' @@ -6094,18 +6129,10 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-ls-tree.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-log.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-log.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-mailsplit.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-mailsplit.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-maintenance.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-maintenance.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-merge-base.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-merge-base.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' @@ -6114,54 +6141,66 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-merge-file.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-merge-index.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-merge-index.xml +rm -f git-maintenance.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-maintenance.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-merge-one-file.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-merge-one-file.xml +rm -f git-log.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-log.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-merge-tree.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-merge-tree.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-merge-index.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-merge-index.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-merge-one-file.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-merge-one-file.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-mergetool--lib.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-mergetool--lib.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-merge.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-merge.xml +rm -f git-mktag.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-mktag.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-mergetool.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-mergetool.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-multi-pack-index.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-multi-pack-index.xml +rm -f git-merge.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-merge.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-mktree.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-mktree.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-mktag.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-mktag.xml +rm -f git-name-rev.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-name-rev.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-mv.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-mv.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-name-rev.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-name-rev.xml +rm -f git-multi-pack-index.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-multi-pack-index.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-notes.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-notes.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-pack-redundant.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-pack-redundant.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-pack-objects.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-pack-objects.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' @@ -6170,10 +6209,6 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-p4.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-pack-redundant.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-pack-redundant.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-pack-refs.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-pack-refs.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' @@ -6194,32 +6229,36 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-quiltimport.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-pull.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-pull.xml +rm -f git-range-diff.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-range-diff.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-push.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-push.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-read-tree.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-read-tree.xml +rm -f git-pull.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-pull.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-range-diff.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-range-diff.xml +rm -f git-read-tree.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-read-tree.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-rebase.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-rebase.xml +rm -f git-receive-pack.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-receive-pack.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-reflog.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-reflog.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-receive-pack.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-receive-pack.xml +rm -f git-remote-ext.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-remote-ext.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-rebase.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-rebase.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-remote-fd.1 && \ @@ -6230,18 +6269,14 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-remote.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-remote-ext.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-remote-ext.xml +rm -f git-repack.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-repack.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-request-pull.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-request-pull.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-repack.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-repack.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-replace.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-replace.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' @@ -6266,16 +6301,16 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-rev-parse.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-rev-list.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-rev-list.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-rm.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-rm.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-send-email.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-send-email.xml +rm -f git-rev-list.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-rev-list.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-sh-i18n--envsubst.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-sh-i18n--envsubst.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-send-pack.1 && \ @@ -6286,18 +6321,18 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-sh-i18n.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-sh-i18n--envsubst.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-sh-i18n--envsubst.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-sh-setup.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-sh-setup.xml +rm -f git-send-email.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-send-email.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-shell.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-shell.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-sh-setup.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-sh-setup.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-show-branch.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-show-branch.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' @@ -6306,20 +6341,16 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-shortlog.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-show-index.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-show-index.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-show-ref.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-show-ref.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-sparse-checkout.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-sparse-checkout.xml +rm -f git-show-index.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-show-index.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-show.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-show.xml +rm -f git-sparse-checkout.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-sparse-checkout.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-stage.1 && \ @@ -6330,30 +6361,38 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-stash.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-status.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-status.xml +rm -f git-show.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-show.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-stripspace.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-stripspace.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-submodule.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-submodule.xml +rm -f git-status.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-status.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-symbolic-ref.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-symbolic-ref.xml +rm -f git-submodule.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-submodule.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-switch.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-switch.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-symbolic-ref.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-symbolic-ref.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-svn.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-svn.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-tag.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-tag.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-unpack-file.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-unpack-file.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' @@ -6362,10 +6401,6 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-unpack-objects.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-tag.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-tag.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-update-index.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-update-index.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' @@ -6378,10 +6413,6 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-update-server-info.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-upload-pack.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-upload-pack.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-upload-archive.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-upload-archive.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' @@ -6390,6 +6421,14 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-var.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-upload-pack.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-upload-pack.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-verify-commit.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-verify-commit.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-verify-pack.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-verify-pack.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' @@ -6398,18 +6437,14 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-verify-tag.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-verify-commit.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-verify-commit.xml +rm -f git-whatchanged.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-whatchanged.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-web--browse.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-web--browse.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-whatchanged.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-whatchanged.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-worktree.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-worktree.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' @@ -6426,38 +6461,38 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man gitweb.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f gitignore.5 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man gitignore.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f githooks.5 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man githooks.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f gitattributes.5 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man gitattributes.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f gitrepository-layout.5 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man gitrepository-layout.xml +rm -f gitignore.5 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man gitignore.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f gitmodules.5 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man gitmodules.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f gitweb.conf.5 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man gitweb.conf.xml +rm -f gitrepository-layout.5 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man gitrepository-layout.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f gitcli.7 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man gitcli.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f gitweb.conf.5 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man gitweb.conf.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f gitcredentials.7 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man gitcredentials.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' @@ -6494,25 +6529,25 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man gitremote-helpers.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f gitrevisions.7 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man gitrevisions.xml -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f gitsubmodules.7 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man gitsubmodules.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f gittutorial-2.7 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man gittutorial-2.xml +rm -f gitrevisions.7 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man gitrevisions.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' -rm -f gitworkflows.7 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man gitworkflows.xml +rm -f gittutorial-2.7 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man gittutorial-2.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' rm -f gittutorial.7 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man gittutorial.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' +rm -f gitworkflows.7 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man gitworkflows.xml +make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[1]: Entering directory '/build/git-2.30.2' # git-mediawiki make[1]: Leaving directory '/build/git-2.30.2' @@ -6560,28 +6595,28 @@ mv git-add--interactive+ git-add--interactive make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -rm -f git-archimport git-archimport+ && \ +rm -f git-cvsexportcommit git-cvsexportcommit+ && \ sed -e '1{' \ -e ' s|#!.*perl|#!/usr/bin/perl|' \ -e ' r GIT-PERL-HEADER' \ -e ' G' \ -e '}' \ -e 's/@@GIT_VERSION@@/2.30.2/g' \ - git-archimport.perl >git-archimport+ && \ -chmod +x git-archimport+ && \ -mv git-archimport+ git-archimport + git-cvsexportcommit.perl >git-cvsexportcommit+ && \ +chmod +x git-cvsexportcommit+ && \ +mv git-cvsexportcommit+ git-cvsexportcommit make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -rm -f git-cvsexportcommit git-cvsexportcommit+ && \ +rm -f git-archimport git-archimport+ && \ sed -e '1{' \ -e ' s|#!.*perl|#!/usr/bin/perl|' \ -e ' r GIT-PERL-HEADER' \ -e ' G' \ -e '}' \ -e 's/@@GIT_VERSION@@/2.30.2/g' \ - git-cvsexportcommit.perl >git-cvsexportcommit+ && \ -chmod +x git-cvsexportcommit+ && \ -mv git-cvsexportcommit+ git-cvsexportcommit + git-archimport.perl >git-archimport+ && \ +chmod +x git-archimport+ && \ +mv git-archimport+ git-archimport make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' rm -f git-cvsimport git-cvsimport+ && \ @@ -6596,16 +6631,16 @@ mv git-cvsimport+ git-cvsimport make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -rm -f git-cvsserver git-cvsserver+ && \ +rm -f git-svn git-svn+ && \ sed -e '1{' \ -e ' s|#!.*perl|#!/usr/bin/perl|' \ -e ' r GIT-PERL-HEADER' \ -e ' G' \ -e '}' \ -e 's/@@GIT_VERSION@@/2.30.2/g' \ - git-cvsserver.perl >git-cvsserver+ && \ -chmod +x git-cvsserver+ && \ -mv git-cvsserver+ git-cvsserver + git-svn.perl >git-svn+ && \ +chmod +x git-svn+ && \ +mv git-svn+ git-svn make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' rm -f git-send-email git-send-email+ && \ @@ -6620,16 +6655,16 @@ mv git-send-email+ git-send-email make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -rm -f git-svn git-svn+ && \ +rm -f git-cvsserver git-cvsserver+ && \ sed -e '1{' \ -e ' s|#!.*perl|#!/usr/bin/perl|' \ -e ' r GIT-PERL-HEADER' \ -e ' G' \ -e '}' \ -e 's/@@GIT_VERSION@@/2.30.2/g' \ - git-svn.perl >git-svn+ && \ -chmod +x git-svn+ && \ -mv git-svn+ git-svn + git-cvsserver.perl >git-cvsserver+ && \ +chmod +x git-cvsserver+ && \ +mv git-cvsserver+ git-cvsserver make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' rm -f git-p4 git-p4+ && \ @@ -6817,6 +6852,146 @@ 1..14 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t0004-unwritable.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0004-unwritable/.git/ +expecting success of 0004.1 'setup': + + >file && + git add file && + test_tick && + git commit -m initial && + echo >file && + git add file + + +[master (root-commit) 1bd44cb] initial + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 file +ok 1 - setup + +checking prerequisite: SANITY + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SANITY" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-SANITY" && + mkdir SANETESTD.1 SANETESTD.2 && + + chmod +w SANETESTD.1 SANETESTD.2 && + >SANETESTD.1/x 2>SANETESTD.2/x && + chmod -w SANETESTD.1 && + chmod -r SANETESTD.1/x && + chmod -rx SANETESTD.2 || + BUG "cannot prepare SANETESTD" + + ! test -r SANETESTD.1/x && + ! rm SANETESTD.1/x && ! test -f SANETESTD.2/x + status=$? + + chmod +rwx SANETESTD.1 SANETESTD.2 && + rm -rf SANETESTD.1 SANETESTD.2 || + BUG "cannot clean SANETESTD" + return $status + +) +rm: cannot remove 'SANETESTD.1/x': Permission denied +prerequisite SANITY ok +expecting success of 0004.2 'write-tree should notice unwritable repository': + test_when_finished "chmod 775 .git/objects .git/objects/??" && + chmod a-w .git/objects .git/objects/?? && + test_must_fail git write-tree + +error: insufficient permission for adding an object to repository database .git/objects +fatal: git-write-tree: error building trees +ok 2 - write-tree should notice unwritable repository + +expecting success of 0004.3 'commit should notice unwritable repository': + test_when_finished "chmod 775 .git/objects .git/objects/??" && + chmod a-w .git/objects .git/objects/?? && + test_must_fail git commit -m second + +error: insufficient permission for adding an object to repository database .git/objects +error: insufficient permission for adding an object to repository database .git/objects +error: Error building trees +ok 3 - commit should notice unwritable repository + +expecting success of 0004.4 'update-index should notice unwritable repository': + test_when_finished "chmod 775 .git/objects .git/objects/??" && + echo 6O >file && + chmod a-w .git/objects .git/objects/?? && + test_must_fail git update-index file + +error: insufficient permission for adding an object to repository database .git/objects +error: file: failed to insert into database +fatal: Unable to process path file +ok 4 - update-index should notice unwritable repository + +expecting success of 0004.5 'add should notice unwritable repository': + test_when_finished "chmod 775 .git/objects .git/objects/??" && + echo b >file && + chmod a-w .git/objects .git/objects/?? && + test_must_fail git add file + +error: insufficient permission for adding an object to repository database .git/objects +error: file: failed to insert into database +error: unable to index file 'file' +fatal: updating files failed +ok 5 - add should notice unwritable repository + +# passed all 5 test(s) +1..5 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t0005-signals.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0005-signals/.git/ +expecting success of 0005.1 'sigchain works': + { test-tool sigchain >actual; ret=$?; } && + { + # Signal death by raise() on Windows acts like exit(3), + # regardless of the signal number. So we must allow that + # as well as the normal signal check. + test_match_signal 15 "$ret" || + test "$ret" = 3 + } && + test_cmp expect actual + +Terminated +ok 1 - sigchain works + +expecting success of 0005.2 'signals are propagated using shell convention': + # we use exec here to avoid any sub-shell interpretation + # of the exit code + git config alias.sigterm "!exec test-tool sigchain" && + test_expect_code 143 git sigterm + +three +two +one +error: exec test-tool sigchain died of signal 15 +ok 2 - signals are propagated using shell convention + +expecting success of 0005.3 'create blob': + test-tool genrandom foo 16384 >file && + git add file + +ok 3 - create blob + +expecting success of 0005.4 'a constipated git dies with SIGPIPE': + OUT=$( ((large_git; echo $? 1>&3) | :) 3>&1 ) && + test_match_signal 13 "$OUT" + +ok 4 - a constipated git dies with SIGPIPE + +expecting success of 0005.5 'a constipated git dies with SIGPIPE even if parent ignores it': + OUT=$( ((trap "" PIPE; large_git; echo $? 1>&3) | :) 3>&1 ) && + test_match_signal 13 "$OUT" + +ok 5 - a constipated git dies with SIGPIPE even if parent ignores it + +# passed all 5 test(s) +1..5 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t0003-attributes.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0003-attributes/.git/ expecting success of 0003.1 'open-quoted pathname': @@ -7312,6 +7487,73 @@ 1..30 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t0007-git-var.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0007-git-var/.git/ +expecting success of 0007.1 'get GIT_AUTHOR_IDENT': + test_tick && + echo "$GIT_AUTHOR_NAME <$GIT_AUTHOR_EMAIL> $GIT_AUTHOR_DATE" >expect && + git var GIT_AUTHOR_IDENT >actual && + test_cmp expect actual + +ok 1 - get GIT_AUTHOR_IDENT + +expecting success of 0007.2 'get GIT_COMMITTER_IDENT': + test_tick && + echo "$GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE" >expect && + git var GIT_COMMITTER_IDENT >actual && + test_cmp expect actual + +ok 2 - get GIT_COMMITTER_IDENT + +checking prerequisite: FAIL_PREREQS + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-FAIL_PREREQS" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-FAIL_PREREQS" && + test_bool_env GIT_TEST_FAIL_PREREQS false + +) +prerequisite FAIL_PREREQS not satisfied +checking prerequisite: AUTOIDENT + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-AUTOIDENT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-AUTOIDENT" && + sane_unset GIT_AUTHOR_NAME && + sane_unset GIT_AUTHOR_EMAIL && + git var GIT_AUTHOR_IDENT + +) +second user 1112912053 -0700 +prerequisite AUTOIDENT ok +ok 3 # skip requested identities are strict (missing !AUTOIDENT of !FAIL_PREREQS,!AUTOIDENT) + +expecting success of 0007.4 'git var -l lists variables': + git var -l >actual && + echo "$GIT_AUTHOR_NAME <$GIT_AUTHOR_EMAIL> $GIT_AUTHOR_DATE" >expect && + sed -n s/GIT_AUTHOR_IDENT=//p actual.author && + test_cmp expect actual.author + +ok 4 - git var -l lists variables + +expecting success of 0007.5 'git var -l lists config': + git var -l >actual && + echo false >expect && + sed -n s/core\\.bare=//p actual.bare && + test_cmp expect actual.bare + +ok 5 - git var -l lists config + +expecting success of 0007.6 'listing and asking for variables are exclusive': + test_must_fail git var -l GIT_COMMITTER_IDENT + +usage: git var (-l | ) +ok 6 - listing and asking for variables are exclusive + +# passed all 6 test(s) +1..6 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t0001-init.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0001-init/.git/ expecting success of 0001.1 'plain': @@ -8457,243 +8699,34 @@ 1..60 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t0004-unwritable.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0004-unwritable/.git/ -expecting success of 0004.1 'setup': - - >file && - git add file && - test_tick && - git commit -m initial && - echo >file && - git add file - - -[master (root-commit) 1bd44cb] initial - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - create mode 100644 file -ok 1 - setup - -checking prerequisite: SANITY - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SANITY" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-SANITY" && - mkdir SANETESTD.1 SANETESTD.2 && - - chmod +w SANETESTD.1 SANETESTD.2 && - >SANETESTD.1/x 2>SANETESTD.2/x && - chmod -w SANETESTD.1 && - chmod -r SANETESTD.1/x && - chmod -rx SANETESTD.2 || - BUG "cannot prepare SANETESTD" - - ! test -r SANETESTD.1/x && - ! rm SANETESTD.1/x && ! test -f SANETESTD.2/x - status=$? - - chmod +rwx SANETESTD.1 SANETESTD.2 && - rm -rf SANETESTD.1 SANETESTD.2 || - BUG "cannot clean SANETESTD" - return $status - -) -rm: cannot remove 'SANETESTD.1/x': Permission denied -prerequisite SANITY ok -expecting success of 0004.2 'write-tree should notice unwritable repository': - test_when_finished "chmod 775 .git/objects .git/objects/??" && - chmod a-w .git/objects .git/objects/?? && - test_must_fail git write-tree - -error: insufficient permission for adding an object to repository database .git/objects -fatal: git-write-tree: error building trees -ok 2 - write-tree should notice unwritable repository - -expecting success of 0004.3 'commit should notice unwritable repository': - test_when_finished "chmod 775 .git/objects .git/objects/??" && - chmod a-w .git/objects .git/objects/?? && - test_must_fail git commit -m second - -error: insufficient permission for adding an object to repository database .git/objects -error: insufficient permission for adding an object to repository database .git/objects -error: Error building trees -ok 3 - commit should notice unwritable repository - -expecting success of 0004.4 'update-index should notice unwritable repository': - test_when_finished "chmod 775 .git/objects .git/objects/??" && - echo 6O >file && - chmod a-w .git/objects .git/objects/?? && - test_must_fail git update-index file - -error: insufficient permission for adding an object to repository database .git/objects -error: file: failed to insert into database -fatal: Unable to process path file -ok 4 - update-index should notice unwritable repository - -expecting success of 0004.5 'add should notice unwritable repository': - test_when_finished "chmod 775 .git/objects .git/objects/??" && - echo b >file && - chmod a-w .git/objects .git/objects/?? && - test_must_fail git add file - -error: insufficient permission for adding an object to repository database .git/objects -error: file: failed to insert into database -error: unable to index file 'file' -fatal: updating files failed -ok 5 - add should notice unwritable repository - -# passed all 5 test(s) -1..5 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t0005-signals.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0005-signals/.git/ -expecting success of 0005.1 'sigchain works': - { test-tool sigchain >actual; ret=$?; } && - { - # Signal death by raise() on Windows acts like exit(3), - # regardless of the signal number. So we must allow that - # as well as the normal signal check. - test_match_signal 15 "$ret" || - test "$ret" = 3 - } && +*** t0009-prio-queue.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0009-prio-queue/.git/ +expecting success of 0009.1 'basic ordering': + test-tool prio-queue 2 6 3 10 9 5 7 4 5 8 1 dump >actual && test_cmp expect actual -Terminated -ok 1 - sigchain works - -expecting success of 0005.2 'signals are propagated using shell convention': - # we use exec here to avoid any sub-shell interpretation - # of the exit code - git config alias.sigterm "!exec test-tool sigchain" && - test_expect_code 143 git sigterm - -three -two -one -error: exec test-tool sigchain died of signal 15 -ok 2 - signals are propagated using shell convention - -expecting success of 0005.3 'create blob': - test-tool genrandom foo 16384 >file && - git add file - -ok 3 - create blob - -expecting success of 0005.4 'a constipated git dies with SIGPIPE': - OUT=$( ((large_git; echo $? 1>&3) | :) 3>&1 ) && - test_match_signal 13 "$OUT" - -ok 4 - a constipated git dies with SIGPIPE - -expecting success of 0005.5 'a constipated git dies with SIGPIPE even if parent ignores it': - OUT=$( ((trap "" PIPE; large_git; echo $? 1>&3) | :) 3>&1 ) && - test_match_signal 13 "$OUT" - -ok 5 - a constipated git dies with SIGPIPE even if parent ignores it +ok 1 - basic ordering -# passed all 5 test(s) -1..5 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t0007-git-var.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0007-git-var/.git/ -expecting success of 0007.1 'get GIT_AUTHOR_IDENT': - test_tick && - echo "$GIT_AUTHOR_NAME <$GIT_AUTHOR_EMAIL> $GIT_AUTHOR_DATE" >expect && - git var GIT_AUTHOR_IDENT >actual && +expecting success of 0009.2 'mixed put and get': + test-tool prio-queue 6 2 4 get 5 3 get get 1 dump >actual && test_cmp expect actual -ok 1 - get GIT_AUTHOR_IDENT +ok 2 - mixed put and get -expecting success of 0007.2 'get GIT_COMMITTER_IDENT': - test_tick && - echo "$GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE" >expect && - git var GIT_COMMITTER_IDENT >actual && +expecting success of 0009.3 'notice empty queue': + test-tool prio-queue 1 2 get get get 1 2 get get get >actual && test_cmp expect actual -ok 2 - get GIT_COMMITTER_IDENT - -checking prerequisite: FAIL_PREREQS - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-FAIL_PREREQS" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-FAIL_PREREQS" && - test_bool_env GIT_TEST_FAIL_PREREQS false - -) -prerequisite FAIL_PREREQS not satisfied -checking prerequisite: AUTOIDENT - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-AUTOIDENT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-AUTOIDENT" && - sane_unset GIT_AUTHOR_NAME && - sane_unset GIT_AUTHOR_EMAIL && - git var GIT_AUTHOR_IDENT - -) -Author identity unknown - -*** Please tell me who you are. - -Run - - git config --global user.email "you@example.com" - git config --global user.name "Your Name" - -to set your account's default identity. -Omit --global to set the identity only in this repository. - -fatal: empty ident name (for ) not allowed -prerequisite AUTOIDENT not satisfied -expecting success of 0007.3 'requested identities are strict': - ( - sane_unset GIT_COMMITTER_NAME && - sane_unset GIT_COMMITTER_EMAIL && - test_must_fail git var GIT_COMMITTER_IDENT - ) - -Committer identity unknown - -*** Please tell me who you are. - -Run - - git config --global user.email "you@example.com" - git config --global user.name "Your Name" - -to set your account's default identity. -Omit --global to set the identity only in this repository. - -fatal: empty ident name (for ) not allowed -ok 3 - requested identities are strict - -expecting success of 0007.4 'git var -l lists variables': - git var -l >actual && - echo "$GIT_AUTHOR_NAME <$GIT_AUTHOR_EMAIL> $GIT_AUTHOR_DATE" >expect && - sed -n s/GIT_AUTHOR_IDENT=//p actual.author && - test_cmp expect actual.author - -ok 4 - git var -l lists variables - -expecting success of 0007.5 'git var -l lists config': - git var -l >actual && - echo false >expect && - sed -n s/core\\.bare=//p actual.bare && - test_cmp expect actual.bare - -ok 5 - git var -l lists config +ok 3 - notice empty queue -expecting success of 0007.6 'listing and asking for variables are exclusive': - test_must_fail git var -l GIT_COMMITTER_IDENT +expecting success of 0009.4 'stack order': + test-tool prio-queue stack 8 1 5 4 6 2 3 dump >actual && + test_cmp expect actual -usage: git var (-l | ) -ok 6 - listing and asking for variables are exclusive +ok 4 - stack order -# passed all 6 test(s) -1..6 +# passed all 4 test(s) +1..4 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' *** t0006-date.sh *** @@ -9233,1301 +9266,6 @@ 1..83 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t0009-prio-queue.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0009-prio-queue/.git/ -expecting success of 0009.1 'basic ordering': - test-tool prio-queue 2 6 3 10 9 5 7 4 5 8 1 dump >actual && - test_cmp expect actual - -ok 1 - basic ordering - -expecting success of 0009.2 'mixed put and get': - test-tool prio-queue 6 2 4 get 5 3 get get 1 dump >actual && - test_cmp expect actual - -ok 2 - mixed put and get - -expecting success of 0009.3 'notice empty queue': - test-tool prio-queue 1 2 get get get 1 2 get get get >actual && - test_cmp expect actual - -ok 3 - notice empty queue - -expecting success of 0009.4 'stack order': - test-tool prio-queue stack 8 1 5 4 6 2 3 dump >actual && - test_cmp expect actual - -ok 4 - stack order - -# passed all 4 test(s) -1..4 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t0000-basic.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0000-basic/.git/ -expecting success of 0000.1 'verify that the running shell supports "local"': - x="notlocal" && - y="alsonotlocal" && - echo "local alsolocal" >expected1 && - try_local_xy >actual1 && - test_cmp expected1 actual1 && - echo "notlocal alsonotlocal" >expected2 && - echo "$x $y" >actual2 && - test_cmp expected2 actual2 - -ok 1 - verify that the running shell supports "local" - -expecting success of 0000.2 '.git/objects should be empty after git init in an empty repo': - find .git/objects -type f -print >should-be-empty && - test_line_count = 0 should-be-empty - -ok 2 - .git/objects should be empty after git init in an empty repo - -expecting success of 0000.3 '.git/objects should have 3 subdirectories': - find .git/objects -type d -print >full-of-directories && - test_line_count = 3 full-of-directories - -ok 3 - .git/objects should have 3 subdirectories - -expecting success of 0000.4 'success is reported like this': - : - -ok 4 - success is reported like this - -expecting success of 0000.5 'pretend we have a fully passing test suite': - run_sub_test_lib_test full-pass '3 passing tests' <<-\EOF && - for i in 1 2 3 - do - test_expect_success "passing test #$i" 'true' - done - test_done - EOF - check_sub_test_lib_test full-pass <<-\EOF - > ok 1 - passing test #1 - > ok 2 - passing test #2 - > ok 3 - passing test #3 - > # passed all 3 test(s) - > 1..3 - EOF - -ok 5 - pretend we have a fully passing test suite - -expecting success of 0000.6 'pretend we have a partially passing test suite': - run_sub_test_lib_test_err partial-pass '2/3 tests passing' <<-\EOF && - test_expect_success 'passing test #1' 'true' - test_expect_success 'failing test #2' 'false' - test_expect_success 'passing test #3' 'true' - test_done - EOF - check_sub_test_lib_test partial-pass <<-\EOF - > ok 1 - passing test #1 - > not ok 2 - failing test #2 - # false - > ok 3 - passing test #3 - > # failed 1 among 3 test(s) - > 1..3 - EOF - -ok 6 - pretend we have a partially passing test suite - -expecting success of 0000.7 'pretend we have a known breakage': - run_sub_test_lib_test failing-todo 'A failing TODO test' <<-\EOF && - test_expect_success 'passing test' 'true' - test_expect_failure 'pretend we have a known breakage' 'false' - test_done - EOF - check_sub_test_lib_test failing-todo <<-\EOF - > ok 1 - passing test - > not ok 2 - pretend we have a known breakage # TODO known breakage - > # still have 1 known breakage(s) - > # passed all remaining 1 test(s) - > 1..2 - EOF - -ok 7 - pretend we have a known breakage - -expecting success of 0000.8 'pretend we have fixed a known breakage': - run_sub_test_lib_test passing-todo 'A passing TODO test' <<-\EOF && - test_expect_failure 'pretend we have fixed a known breakage' 'true' - test_done - EOF - check_sub_test_lib_test passing-todo <<-\EOF - > ok 1 - pretend we have fixed a known breakage # TODO known breakage vanished - > # 1 known breakage(s) vanished; please update test(s) - > 1..1 - EOF - -ok 8 - pretend we have fixed a known breakage - -expecting success of 0000.9 'pretend we have fixed one of two known breakages (run in sub test-lib)': - run_sub_test_lib_test partially-passing-todos '2 TODO tests, one passing' <<-\EOF && - test_expect_failure 'pretend we have a known breakage' 'false' - test_expect_success 'pretend we have a passing test' 'true' - test_expect_failure 'pretend we have fixed another known breakage' 'true' - test_done - EOF - check_sub_test_lib_test partially-passing-todos <<-\EOF - > not ok 1 - pretend we have a known breakage # TODO known breakage - > ok 2 - pretend we have a passing test - > ok 3 - pretend we have fixed another known breakage # TODO known breakage vanished - > # 1 known breakage(s) vanished; please update test(s) - > # still have 1 known breakage(s) - > # passed all remaining 1 test(s) - > 1..3 - EOF - -ok 9 - pretend we have fixed one of two known breakages (run in sub test-lib) - -expecting success of 0000.10 'pretend we have a pass, fail, and known breakage': - run_sub_test_lib_test_err mixed-results1 'mixed results #1' <<-\EOF && - test_expect_success 'passing test' 'true' - test_expect_success 'failing test' 'false' - test_expect_failure 'pretend we have a known breakage' 'false' - test_done - EOF - check_sub_test_lib_test mixed-results1 <<-\EOF - > ok 1 - passing test - > not ok 2 - failing test - > # false - > not ok 3 - pretend we have a known breakage # TODO known breakage - > # still have 1 known breakage(s) - > # failed 1 among remaining 2 test(s) - > 1..3 - EOF - -ok 10 - pretend we have a pass, fail, and known breakage - -expecting success of 0000.11 'pretend we have a mix of all possible results': - run_sub_test_lib_test_err mixed-results2 'mixed results #2' <<-\EOF && - test_expect_success 'passing test' 'true' - test_expect_success 'passing test' 'true' - test_expect_success 'passing test' 'true' - test_expect_success 'passing test' 'true' - test_expect_success 'failing test' 'false' - test_expect_success 'failing test' 'false' - test_expect_success 'failing test' 'false' - test_expect_failure 'pretend we have a known breakage' 'false' - test_expect_failure 'pretend we have a known breakage' 'false' - test_expect_failure 'pretend we have fixed a known breakage' 'true' - test_done - EOF - check_sub_test_lib_test mixed-results2 <<-\EOF - > ok 1 - passing test - > ok 2 - passing test - > ok 3 - passing test - > ok 4 - passing test - > not ok 5 - failing test - > # false - > not ok 6 - failing test - > # false - > not ok 7 - failing test - > # false - > not ok 8 - pretend we have a known breakage # TODO known breakage - > not ok 9 - pretend we have a known breakage # TODO known breakage - > ok 10 - pretend we have fixed a known breakage # TODO known breakage vanished - > # 1 known breakage(s) vanished; please update test(s) - > # still have 2 known breakage(s) - > # failed 3 among remaining 7 test(s) - > 1..10 - EOF - -ok 11 - pretend we have a mix of all possible results - -checking prerequisite: C_LOCALE_OUTPUT - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false - -) -prerequisite C_LOCALE_OUTPUT ok -expecting success of 0000.12 'test --verbose': - run_sub_test_lib_test_err \ - t1234-verbose "test verbose" --verbose <<-\EOF && - test_expect_success "passing test" true - test_expect_success "test with output" "echo foo" - test_expect_success "failing test" false - test_done - EOF - mv t1234-verbose/out t1234-verbose/out+ && - grep -v "^Initialized empty" t1234-verbose/out+ >t1234-verbose/out && - check_sub_test_lib_test t1234-verbose <<-\EOF - > expecting success of 1234.1 'passing test': true - > ok 1 - passing test - > Z - > expecting success of 1234.2 'test with output': echo foo - > foo - > ok 2 - test with output - > Z - > expecting success of 1234.3 'failing test': false - > not ok 3 - failing test - > # false - > Z - > # failed 1 among 3 test(s) - > 1..3 - EOF - -ok 12 - test --verbose - -expecting success of 0000.13 'test --verbose-only': - run_sub_test_lib_test_err \ - t2345-verbose-only-2 "test verbose-only=2" \ - --verbose-only=2 <<-\EOF && - test_expect_success "passing test" true - test_expect_success "test with output" "echo foo" - test_expect_success "failing test" false - test_done - EOF - check_sub_test_lib_test t2345-verbose-only-2 <<-\EOF - > ok 1 - passing test - > Z - > expecting success of 2345.2 'test with output': echo foo - > foo - > ok 2 - test with output - > Z - > not ok 3 - failing test - > # false - > # failed 1 among 3 test(s) - > 1..3 - EOF - -ok 13 - test --verbose-only - -expecting success of 0000.14 'GIT_SKIP_TESTS': - ( - GIT_SKIP_TESTS='git.2' && export GIT_SKIP_TESTS && - run_sub_test_lib_test git-skip-tests-basic 'GIT_SKIP_TESTS' <<-\EOF && - for i in 1 2 3 - do - test_expect_success "passing test #$i" 'true' - done - test_done - EOF - check_sub_test_lib_test git-skip-tests-basic <<-\EOF - > ok 1 - passing test #1 - > ok 2 # skip passing test #2 (GIT_SKIP_TESTS) - > ok 3 - passing test #3 - > # passed all 3 test(s) - > 1..3 - EOF - ) - -ok 14 - GIT_SKIP_TESTS - -expecting success of 0000.15 'GIT_SKIP_TESTS several tests': - ( - GIT_SKIP_TESTS='git.2 git.5' && export GIT_SKIP_TESTS && - run_sub_test_lib_test git-skip-tests-several 'GIT_SKIP_TESTS several tests' <<-\EOF && - for i in 1 2 3 4 5 6 - do - test_expect_success "passing test #$i" 'true' - done - test_done - EOF - check_sub_test_lib_test git-skip-tests-several <<-\EOF - > ok 1 - passing test #1 - > ok 2 # skip passing test #2 (GIT_SKIP_TESTS) - > ok 3 - passing test #3 - > ok 4 - passing test #4 - > ok 5 # skip passing test #5 (GIT_SKIP_TESTS) - > ok 6 - passing test #6 - > # passed all 6 test(s) - > 1..6 - EOF - ) - -ok 15 - GIT_SKIP_TESTS several tests - -expecting success of 0000.16 'GIT_SKIP_TESTS sh pattern': - ( - GIT_SKIP_TESTS='git.[2-5]' && export GIT_SKIP_TESTS && - run_sub_test_lib_test git-skip-tests-sh-pattern 'GIT_SKIP_TESTS sh pattern' <<-\EOF && - for i in 1 2 3 4 5 6 - do - test_expect_success "passing test #$i" 'true' - done - test_done - EOF - check_sub_test_lib_test git-skip-tests-sh-pattern <<-\EOF - > ok 1 - passing test #1 - > ok 2 # skip passing test #2 (GIT_SKIP_TESTS) - > ok 3 # skip passing test #3 (GIT_SKIP_TESTS) - > ok 4 # skip passing test #4 (GIT_SKIP_TESTS) - > ok 5 # skip passing test #5 (GIT_SKIP_TESTS) - > ok 6 - passing test #6 - > # passed all 6 test(s) - > 1..6 - EOF - ) - -ok 16 - GIT_SKIP_TESTS sh pattern - -expecting success of 0000.17 'GIT_SKIP_TESTS entire suite': - ( - GIT_SKIP_TESTS='git' && export GIT_SKIP_TESTS && - run_sub_test_lib_test git-skip-tests-entire-suite 'GIT_SKIP_TESTS entire suite' <<-\EOF && - for i in 1 2 3 - do - test_expect_success "passing test #$i" 'true' - done - test_done - EOF - check_sub_test_lib_test git-skip-tests-entire-suite <<-\EOF - > 1..0 # SKIP skip all tests in git - EOF - ) - -ok 17 - GIT_SKIP_TESTS entire suite - -expecting success of 0000.18 'GIT_SKIP_TESTS does not skip unmatched suite': - ( - GIT_SKIP_TESTS='notgit' && export GIT_SKIP_TESTS && - run_sub_test_lib_test git-skip-tests-unmatched-suite 'GIT_SKIP_TESTS does not skip unmatched suite' <<-\EOF && - for i in 1 2 3 - do - test_expect_success "passing test #$i" 'true' - done - test_done - EOF - check_sub_test_lib_test git-skip-tests-unmatched-suite <<-\EOF - > ok 1 - passing test #1 - > ok 2 - passing test #2 - > ok 3 - passing test #3 - > # passed all 3 test(s) - > 1..3 - EOF - ) - -ok 18 - GIT_SKIP_TESTS does not skip unmatched suite - -expecting success of 0000.19 '--run basic': - run_sub_test_lib_test run-basic '--run basic' --run='1,3,5' <<-\EOF && - for i in 1 2 3 4 5 6 - do - test_expect_success "passing test #$i" 'true' - done - test_done - EOF - check_sub_test_lib_test run-basic <<-\EOF - > ok 1 - passing test #1 - > ok 2 # skip passing test #2 (--run) - > ok 3 - passing test #3 - > ok 4 # skip passing test #4 (--run) - > ok 5 - passing test #5 - > ok 6 # skip passing test #6 (--run) - > # passed all 6 test(s) - > 1..6 - EOF - -ok 19 - --run basic - -expecting success of 0000.20 '--run with a range': - run_sub_test_lib_test run-range '--run with a range' --run='1-3' <<-\EOF && - for i in 1 2 3 4 5 6 - do - test_expect_success "passing test #$i" 'true' - done - test_done - EOF - check_sub_test_lib_test run-range <<-\EOF - > ok 1 - passing test #1 - > ok 2 - passing test #2 - > ok 3 - passing test #3 - > ok 4 # skip passing test #4 (--run) - > ok 5 # skip passing test #5 (--run) - > ok 6 # skip passing test #6 (--run) - > # passed all 6 test(s) - > 1..6 - EOF - -ok 20 - --run with a range - -expecting success of 0000.21 '--run with two ranges': - run_sub_test_lib_test run-two-ranges '--run with two ranges' --run='1-2,5-6' <<-\EOF && - for i in 1 2 3 4 5 6 - do - test_expect_success "passing test #$i" 'true' - done - test_done - EOF - check_sub_test_lib_test run-two-ranges <<-\EOF - > ok 1 - passing test #1 - > ok 2 - passing test #2 - > ok 3 # skip passing test #3 (--run) - > ok 4 # skip passing test #4 (--run) - > ok 5 - passing test #5 - > ok 6 - passing test #6 - > # passed all 6 test(s) - > 1..6 - EOF - -ok 21 - --run with two ranges - -expecting success of 0000.22 '--run with a left open range': - run_sub_test_lib_test run-left-open-range '--run with a left open range' --run='-3' <<-\EOF && - for i in 1 2 3 4 5 6 - do - test_expect_success "passing test #$i" 'true' - done - test_done - EOF - check_sub_test_lib_test run-left-open-range <<-\EOF - > ok 1 - passing test #1 - > ok 2 - passing test #2 - > ok 3 - passing test #3 - > ok 4 # skip passing test #4 (--run) - > ok 5 # skip passing test #5 (--run) - > ok 6 # skip passing test #6 (--run) - > # passed all 6 test(s) - > 1..6 - EOF - -ok 22 - --run with a left open range - -expecting success of 0000.23 '--run with a right open range': - run_sub_test_lib_test run-right-open-range '--run with a right open range' --run='4-' <<-\EOF && - for i in 1 2 3 4 5 6 - do - test_expect_success "passing test #$i" 'true' - done - test_done - EOF - check_sub_test_lib_test run-right-open-range <<-\EOF - > ok 1 # skip passing test #1 (--run) - > ok 2 # skip passing test #2 (--run) - > ok 3 # skip passing test #3 (--run) - > ok 4 - passing test #4 - > ok 5 - passing test #5 - > ok 6 - passing test #6 - > # passed all 6 test(s) - > 1..6 - EOF - -ok 23 - --run with a right open range - -expecting success of 0000.24 '--run with basic negation': - run_sub_test_lib_test run-basic-neg '--run with basic negation' --run='!3' <<-\EOF && - for i in 1 2 3 4 5 6 - do - test_expect_success "passing test #$i" 'true' - done - test_done - EOF - check_sub_test_lib_test run-basic-neg <<-\EOF - > ok 1 - passing test #1 - > ok 2 - passing test #2 - > ok 3 # skip passing test #3 (--run) - > ok 4 - passing test #4 - > ok 5 - passing test #5 - > ok 6 - passing test #6 - > # passed all 6 test(s) - > 1..6 - EOF - -ok 24 - --run with basic negation - -expecting success of 0000.25 '--run with two negations': - run_sub_test_lib_test run-two-neg '--run with two negations' --run='!3,!6' <<-\EOF && - for i in 1 2 3 4 5 6 - do - test_expect_success "passing test #$i" 'true' - done - test_done - EOF - check_sub_test_lib_test run-two-neg <<-\EOF - > ok 1 - passing test #1 - > ok 2 - passing test #2 - > ok 3 # skip passing test #3 (--run) - > ok 4 - passing test #4 - > ok 5 - passing test #5 - > ok 6 # skip passing test #6 (--run) - > # passed all 6 test(s) - > 1..6 - EOF - -ok 25 - --run with two negations - -expecting success of 0000.26 '--run a range and negation': - run_sub_test_lib_test run-range-and-neg '--run a range and negation' --run='-4,!2' <<-\EOF && - for i in 1 2 3 4 5 6 - do - test_expect_success "passing test #$i" 'true' - done - test_done - EOF - check_sub_test_lib_test run-range-and-neg <<-\EOF - > ok 1 - passing test #1 - > ok 2 # skip passing test #2 (--run) - > ok 3 - passing test #3 - > ok 4 - passing test #4 - > ok 5 # skip passing test #5 (--run) - > ok 6 # skip passing test #6 (--run) - > # passed all 6 test(s) - > 1..6 - EOF - -ok 26 - --run a range and negation - -expecting success of 0000.27 '--run range negation': - run_sub_test_lib_test run-range-neg '--run range negation' --run='!1-3' <<-\EOF && - for i in 1 2 3 4 5 6 - do - test_expect_success "passing test #$i" 'true' - done - test_done - EOF - check_sub_test_lib_test run-range-neg <<-\EOF - > ok 1 # skip passing test #1 (--run) - > ok 2 # skip passing test #2 (--run) - > ok 3 # skip passing test #3 (--run) - > ok 4 - passing test #4 - > ok 5 - passing test #5 - > ok 6 - passing test #6 - > # passed all 6 test(s) - > 1..6 - EOF - -ok 27 - --run range negation - -expecting success of 0000.28 '--run include, exclude and include': - run_sub_test_lib_test run-inc-neg-inc '--run include, exclude and include' --run='1-5,!1-3,2' <<-\EOF && - for i in 1 2 3 4 5 6 - do - test_expect_success "passing test #$i" 'true' - done - test_done - EOF - check_sub_test_lib_test run-inc-neg-inc <<-\EOF - > ok 1 # skip passing test #1 (--run) - > ok 2 - passing test #2 - > ok 3 # skip passing test #3 (--run) - > ok 4 - passing test #4 - > ok 5 - passing test #5 - > ok 6 # skip passing test #6 (--run) - > # passed all 6 test(s) - > 1..6 - EOF - -ok 28 - --run include, exclude and include - -expecting success of 0000.29 '--run include, exclude and include, comma separated': - run_sub_test_lib_test run-inc-neg-inc-comma '--run include, exclude and include, comma separated' --run=1-5,\!1-3,2 <<-\EOF && - for i in 1 2 3 4 5 6 - do - test_expect_success "passing test #$i" 'true' - done - test_done - EOF - check_sub_test_lib_test run-inc-neg-inc-comma <<-\EOF - > ok 1 # skip passing test #1 (--run) - > ok 2 - passing test #2 - > ok 3 # skip passing test #3 (--run) - > ok 4 - passing test #4 - > ok 5 - passing test #5 - > ok 6 # skip passing test #6 (--run) - > # passed all 6 test(s) - > 1..6 - EOF - -ok 29 - --run include, exclude and include, comma separated - -expecting success of 0000.30 '--run exclude and include': - run_sub_test_lib_test run-neg-inc '--run exclude and include' --run='!3-,5' <<-\EOF && - for i in 1 2 3 4 5 6 - do - test_expect_success "passing test #$i" 'true' - done - test_done - EOF - check_sub_test_lib_test run-neg-inc <<-\EOF - > ok 1 - passing test #1 - > ok 2 - passing test #2 - > ok 3 # skip passing test #3 (--run) - > ok 4 # skip passing test #4 (--run) - > ok 5 - passing test #5 - > ok 6 # skip passing test #6 (--run) - > # passed all 6 test(s) - > 1..6 - EOF - -ok 30 - --run exclude and include - -expecting success of 0000.31 '--run empty selectors': - run_sub_test_lib_test run-empty-sel '--run empty selectors' --run='1,,3,,,5' <<-\EOF && - for i in 1 2 3 4 5 6 - do - test_expect_success "passing test #$i" 'true' - done - test_done - EOF - check_sub_test_lib_test run-empty-sel <<-\EOF - > ok 1 - passing test #1 - > ok 2 # skip passing test #2 (--run) - > ok 3 - passing test #3 - > ok 4 # skip passing test #4 (--run) - > ok 5 - passing test #5 - > ok 6 # skip passing test #6 (--run) - > # passed all 6 test(s) - > 1..6 - EOF - -ok 31 - --run empty selectors - -expecting success of 0000.32 '--run substring selector': - run_sub_test_lib_test run-substring-selector '--run empty selectors' --run='relevant' <<-\EOF && - test_expect_success "relevant test" 'true' - for i in 1 2 3 4 5 6 - do - test_expect_success "other test #$i" 'true' - done - test_done - EOF - check_sub_test_lib_test run-substring-selector <<-\EOF - > ok 1 - relevant test - > ok 2 # skip other test #1 (--run) - > ok 3 # skip other test #2 (--run) - > ok 4 # skip other test #3 (--run) - > ok 5 # skip other test #4 (--run) - > ok 6 # skip other test #5 (--run) - > ok 7 # skip other test #6 (--run) - > # passed all 7 test(s) - > 1..7 - EOF - -ok 32 - --run substring selector - -expecting success of 0000.33 '--run keyword selection': - run_sub_test_lib_test_err run-inv-range-start '--run invalid range start' --run='a-5' <<-\EOF && - test_expect_success "passing test #1" 'true' - test_done - EOF - check_sub_test_lib_test_err run-inv-range-start <<-\EOF_OUT 3<<-\EOF_ERR - > FATAL: Unexpected exit with code 1 - EOF_OUT - > error: --run: invalid non-numeric in range start: 'a-5' - EOF_ERR - -ok 33 - --run keyword selection - -expecting success of 0000.34 '--run invalid range end': - run_sub_test_lib_test_err run-inv-range-end '--run invalid range end' --run='1-z' <<-\EOF && - test_expect_success "passing test #1" 'true' - test_done - EOF - check_sub_test_lib_test_err run-inv-range-end <<-\EOF_OUT 3<<-\EOF_ERR - > FATAL: Unexpected exit with code 1 - EOF_OUT - > error: --run: invalid non-numeric in range end: '1-z' - EOF_ERR - -ok 34 - --run invalid range end - -expecting success of 0000.35 'test runs if prerequisite is satisfied': - test_have_prereq HAVEIT && - haveit=yes - -ok 35 - test runs if prerequisite is satisfied - -ok 36 # skip unmet prerequisite causes test to be skipped (missing DONTHAVEIT) - -expecting success of 0000.37 'test runs if prerequisites are satisfied': - test_have_prereq HAVEIT && - test_have_prereq HAVETHIS && - haveit=yes - -ok 37 - test runs if prerequisites are satisfied - -ok 38 # skip unmet prerequisites causes test to be skipped (missing DONTHAVEIT of HAVEIT,DONTHAVEIT) - -ok 39 # skip unmet prerequisites causes test to be skipped (missing DONTHAVEIT of DONTHAVEIT,HAVEIT) - -checking prerequisite: LAZY_TRUE - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-LAZY_TRUE" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-LAZY_TRUE" &&true -) -prerequisite LAZY_TRUE ok -expecting success of 0000.40 'test runs if lazy prereq is satisfied': - havetrue=yes - -ok 40 - test runs if lazy prereq is satisfied - -ok 41 # skip missing lazy prereqs skip tests (missing !LAZY_TRUE) - -checking prerequisite: LAZY_FALSE - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-LAZY_FALSE" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-LAZY_FALSE" &&false -) -prerequisite LAZY_FALSE not satisfied -expecting success of 0000.42 'negative lazy prereqs checked': - nothavefalse=yes - -ok 42 - negative lazy prereqs checked - -ok 43 # skip missing negative lazy prereqs will skip (missing LAZY_FALSE) - -expecting success of 0000.44 'tests clean up after themselves': - test_when_finished clean=yes - -ok 44 - tests clean up after themselves - -checking prerequisite: NESTED_PREREQ - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-NESTED_PREREQ" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-NESTED_PREREQ" && - >outer && - test_have_prereq NESTED_INNER && - echo "can create new file in cwd" >file && - test -f outer && - test ! -f inner - -) -checking prerequisite: NESTED_INNER - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-NESTED_INNER" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-NESTED_INNER" && - >inner && - rm -f outer - -) -prerequisite NESTED_INNER ok -prerequisite NESTED_PREREQ ok -expecting success of 0000.45 'evaluating nested lazy prereqs dont interfere with each other': - nestedworks=yes - -ok 45 - evaluating nested lazy prereqs dont interfere with each other - -expecting success of 0000.46 'lazy prereqs do not turn off tracing': - run_sub_test_lib_test lazy-prereq-and-tracing 'lazy prereqs and -x' -v -x <<-\EOF && - test_lazy_prereq LAZY true - - test_expect_success lazy 'test_have_prereq LAZY && echo trace' - - test_done - EOF - - grep 'echo trace' lazy-prereq-and-tracing/err - -+ echo trace -ok 46 - lazy prereqs do not turn off tracing - -expecting success of 0000.47 'tests clean up even on failures': - run_sub_test_lib_test_err failing-cleanup 'Failing tests with cleanup commands' <<-\EOF && - test_expect_success 'tests clean up even after a failure' ' - touch clean-after-failure && - test_when_finished rm clean-after-failure && - (exit 1) - ' - test_expect_success 'failure to clean up causes the test to fail' ' - test_when_finished "(exit 2)" - ' - test_done - EOF - check_sub_test_lib_test failing-cleanup <<-\EOF - > not ok 1 - tests clean up even after a failure - > # Z - > # touch clean-after-failure && - > # test_when_finished rm clean-after-failure && - > # (exit 1) - > # Z - > not ok 2 - failure to clean up causes the test to fail - > # Z - > # test_when_finished "(exit 2)" - > # Z - > # failed 2 among 2 test(s) - > 1..2 - EOF - -ok 47 - tests clean up even on failures - -expecting success of 0000.48 'test_atexit is run': - run_sub_test_lib_test_err atexit-cleanup 'Run atexit commands' -i <<-\EOF && - test_expect_success 'tests clean up even after a failure' ' - > ../../clean-atexit && - test_atexit rm ../../clean-atexit && - > ../../also-clean-atexit && - test_atexit rm ../../also-clean-atexit && - > ../../dont-clean-atexit && - (exit 1) - ' - test_done - EOF - test_path_is_file dont-clean-atexit && - test_path_is_missing clean-atexit && - test_path_is_missing also-clean-atexit - -ok 48 - test_atexit is run - -expecting success of 0000.49 'test_oid provides sane info by default': - test_oid zero >actual && - grep "^00*\$" actual && - rawsz="$(test_oid rawsz)" && - hexsz="$(test_oid hexsz)" && - test "$hexsz" -eq $(wc -c actual && - grep "^00*\$" actual && - rawsz="$(test_oid rawsz)" && - hexsz="$(test_oid hexsz)" && - test $(wc -c actual && - grep "^00*\$" actual && - rawsz="$(test_oid rawsz)" && - hexsz="$(test_oid hexsz)" && - test $(wc -c err && - grep "error: test_bool_env requires bool values" err && - - envvar=true && - ! ( test_bool_env envvar invalid ) 7>err && - grep "error: test_bool_env requires bool values" err - ) - -fatal: bad numeric config value 'invalid' for 'envvar': invalid unit -error: test_bool_env requires bool values both for $envvar and for the default fallback -error: option `--default' expects a boolean value with `--type=bool`, not `invalid` -usage: git env--helper --type=[bool|ulong] - - --type value is given this type - --default default for git_env_*(...) to fall back on - --exit-code be quiet only use git_env_*() value as exit code - -error: test_bool_env requires bool values both for $envvar and for the default fallback -ok 53 - test_bool_env - -expecting success of 0000.54 'git update-index without --add should fail adding': - test_must_fail git update-index should-be-empty - -error: should-be-empty: cannot add to the index - missing --add option? -fatal: Unable to process path should-be-empty -ok 54 - git update-index without --add should fail adding - -expecting success of 0000.55 'git update-index with --add should succeed': - git update-index --add should-be-empty - -ok 55 - git update-index with --add should succeed - -expecting success of 0000.56 'writing tree out with git write-tree': - tree=$(git write-tree) - -ok 56 - writing tree out with git write-tree - -expecting success of 0000.57 'validate object ID of a known tree': - test "$tree" = "$(test_oid simpletree)" - -ok 57 - validate object ID of a known tree - -expecting success of 0000.58 'git update-index without --remove should fail removing': - rm -f should-be-empty full-of-directories && - test_must_fail git update-index should-be-empty - -error: should-be-empty: does not exist and --remove not passed -fatal: Unable to process path should-be-empty -ok 58 - git update-index without --remove should fail removing - -expecting success of 0000.59 'git update-index with --remove should be able to remove': - git update-index --remove should-be-empty - -ok 59 - git update-index with --remove should be able to remove - -expecting success of 0000.60 'git write-tree should be able to write an empty tree': - tree=$(git write-tree) - -ok 60 - git write-tree should be able to write an empty tree - -expecting success of 0000.61 'validate object ID of a known tree': - test "$tree" = $EMPTY_TREE - -ok 61 - validate object ID of a known tree - -expecting success of 0000.62 'adding various types of objects with git update-index --add': - mkdir path2 path3 path3/subp3 && - paths="path0 path2/file2 path3/file3 path3/subp3/file3" && - ( - for p in $paths - do - echo "hello $p" >$p || exit 1 - test_ln_s_add "hello $p" ${p}sym || exit 1 - done - ) && - find path* ! -type d -print | xargs git update-index --add - -checking prerequisite: SYMLINKS - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && - # test whether the filesystem supports symbolic links - ln -s x y && test -h y - -) -prerequisite SYMLINKS ok -ok 62 - adding various types of objects with git update-index --add - -expecting success of 0000.63 'showing stage with git ls-files --stage': - git ls-files --stage >current - -ok 63 - showing stage with git ls-files --stage - -expecting success of 0000.64 'validate git ls-files output for a known tree': - cat >expected <<-EOF && - 100644 $(test_oid path0f) 0 path0 - 120000 $(test_oid path0s) 0 path0sym - 100644 $(test_oid path2f) 0 path2/file2 - 120000 $(test_oid path2s) 0 path2/file2sym - 100644 $(test_oid path3f) 0 path3/file3 - 120000 $(test_oid path3s) 0 path3/file3sym - 100644 $(test_oid subp3f) 0 path3/subp3/file3 - 120000 $(test_oid subp3s) 0 path3/subp3/file3sym - EOF - test_cmp expected current - -ok 64 - validate git ls-files output for a known tree - -expecting success of 0000.65 'writing tree out with git write-tree': - tree=$(git write-tree) - -ok 65 - writing tree out with git write-tree - -expecting success of 0000.66 'validate object ID for a known tree': - test "$tree" = "$(test_oid root)" - -ok 66 - validate object ID for a known tree - -expecting success of 0000.67 'showing tree with git ls-tree': - git ls-tree $tree >current - -ok 67 - showing tree with git ls-tree - -expecting success of 0000.68 'git ls-tree output for a known tree': - cat >expected <<-EOF && - 100644 blob $(test_oid path0f) path0 - 120000 blob $(test_oid path0s) path0sym - 040000 tree $(test_oid path2d) path2 - 040000 tree $(test_oid path3d) path3 - EOF - test_cmp expected current - -ok 68 - git ls-tree output for a known tree - -expecting success of 0000.69 'showing tree with git ls-tree -r': - git ls-tree -r $tree >current - -ok 69 - showing tree with git ls-tree -r - -expecting success of 0000.70 'git ls-tree -r output for a known tree': - cat >expected <<-EOF && - 100644 blob $(test_oid path0f) path0 - 120000 blob $(test_oid path0s) path0sym - 100644 blob $(test_oid path2f) path2/file2 - 120000 blob $(test_oid path2s) path2/file2sym - 100644 blob $(test_oid path3f) path3/file3 - 120000 blob $(test_oid path3s) path3/file3sym - 100644 blob $(test_oid subp3f) path3/subp3/file3 - 120000 blob $(test_oid subp3s) path3/subp3/file3sym - EOF - test_cmp expected current - -ok 70 - git ls-tree -r output for a known tree - -expecting success of 0000.71 'showing tree with git ls-tree -r -t': - git ls-tree -r -t $tree >current - -ok 71 - showing tree with git ls-tree -r -t - -expecting success of 0000.72 'git ls-tree -r output for a known tree': - cat >expected <<-EOF && - 100644 blob $(test_oid path0f) path0 - 120000 blob $(test_oid path0s) path0sym - 040000 tree $(test_oid path2d) path2 - 100644 blob $(test_oid path2f) path2/file2 - 120000 blob $(test_oid path2s) path2/file2sym - 040000 tree $(test_oid path3d) path3 - 100644 blob $(test_oid path3f) path3/file3 - 120000 blob $(test_oid path3s) path3/file3sym - 040000 tree $(test_oid subp3d) path3/subp3 - 100644 blob $(test_oid subp3f) path3/subp3/file3 - 120000 blob $(test_oid subp3s) path3/subp3/file3sym - EOF - test_cmp expected current - -ok 72 - git ls-tree -r output for a known tree - -expecting success of 0000.73 'writing partial tree out with git write-tree --prefix': - ptree=$(git write-tree --prefix=path3) - -ok 73 - writing partial tree out with git write-tree --prefix - -expecting success of 0000.74 'validate object ID for a known tree': - test "$ptree" = $(test_oid path3d) - -ok 74 - validate object ID for a known tree - -expecting success of 0000.75 'writing partial tree out with git write-tree --prefix': - ptree=$(git write-tree --prefix=path3/subp3) - -ok 75 - writing partial tree out with git write-tree --prefix - -expecting success of 0000.76 'validate object ID for a known tree': - test "$ptree" = $(test_oid subp3d) - -ok 76 - validate object ID for a known tree - -expecting success of 0000.77 'put invalid objects into the index': - rm -f .git/index && - suffix=$(echo $ZERO_OID | sed -e "s/^.//") && - cat >badobjects <<-EOF && - 100644 blob $(test_oid 001) dir/file1 - 100644 blob $(test_oid 002) dir/file2 - 100644 blob $(test_oid 003) dir/file3 - 100644 blob $(test_oid 004) dir/file4 - 100644 blob $(test_oid 005) dir/file5 - EOF - git update-index --index-info expected <current && - test_cmp expected current - -ok 81 - validate git diff-files output for a know cache/work tree state - -expecting success of 0000.82 'git update-index --refresh should succeed': - git update-index --refresh - -ok 82 - git update-index --refresh should succeed - -expecting success of 0000.83 'no diff after checkout and git update-index --refresh': - git diff-files >current && - cmp -s current /dev/null - -ok 83 - no diff after checkout and git update-index --refresh - -expecting success of 0000.84 'git commit-tree records the correct tree in a commit': - commit0=$(echo NO | git commit-tree $P) && - tree=$(git show --pretty=raw $commit0 | - sed -n -e "s/^tree //p" -e "/^author /q") && - test "z$tree" = "z$P" - -ok 84 - git commit-tree records the correct tree in a commit - -expecting success of 0000.85 'git commit-tree records the correct parent in a commit': - commit1=$(echo NO | git commit-tree $P -p $commit0) && - parent=$(git show --pretty=raw $commit1 | - sed -n -e "s/^parent //p" -e "/^author /q") && - test "z$commit0" = "z$parent" - -ok 85 - git commit-tree records the correct parent in a commit - -expecting success of 0000.86 'git commit-tree omits duplicated parent in a commit': - commit2=$(echo NO | git commit-tree $P -p $commit0 -p $commit0) && - parent=$(git show --pretty=raw $commit2 | - sed -n -e "s/^parent //p" -e "/^author /q" | - sort -u) && - test "z$commit0" = "z$parent" && - numparent=$(git show --pretty=raw $commit2 | - sed -n -e "s/^parent //p" -e "/^author /q" | - wc -l) && - test $numparent = 1 - -error: duplicate parent d664f4b2f72710b8e019acf96c4773c8ac3993b8 ignored -ok 86 - git commit-tree omits duplicated parent in a commit - -expecting success of 0000.87 'update-index D/F conflict': - mv path0 tmp && - mv path2 path0 && - mv tmp path2 && - git update-index --add --replace path2 path0/file2 && - numpath0=$(git ls-files path0 | wc -l) && - test $numpath0 = 1 - -ok 87 - update-index D/F conflict - -expecting success of 0000.88 'very long name in the index handled sanely': - - a=a && # 1 - a=$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a && # 16 - a=$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a && # 256 - a=$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a && # 4096 - a=${a}q && - - >path4 && - git update-index --add path4 && - ( - git ls-files -s path4 | - sed -e "s/ .*/ /" | - tr -d "\012" && - echo "$a" - ) | git update-index --index-info && - len=$(git ls-files "a*" | wc -c) && - test $len = 4098 - -ok 88 - very long name in the index handled sanely - -expecting success of 0000.89 'test_must_fail on a failing git command': - test_must_fail git notacommand - -git: 'notacommand' is not a git command. See 'git --help'. -ok 89 - test_must_fail on a failing git command - -expecting success of 0000.90 'test_must_fail on a failing git command with env': - test_must_fail env var1=a var2=b git notacommand - -git: 'notacommand' is not a git command. See 'git --help'. -ok 90 - test_must_fail on a failing git command with env - -expecting success of 0000.91 'test_must_fail rejects a non-git command': - ! test_must_fail grep ^$ notafile 2>err && - grep -F "test_must_fail: only 'git' is allowed" err - -test_must_fail: only 'git' is allowed: grep ^$ notafile -ok 91 - test_must_fail rejects a non-git command - -expecting success of 0000.92 'test_must_fail rejects a non-git command with env': - ! test_must_fail env var1=a var2=b grep ^$ notafile 2>err && - grep -F "test_must_fail: only 'git' is allowed" err - -test_must_fail: only 'git' is allowed: env var1=a var2=b grep ^$ notafile -ok 92 - test_must_fail rejects a non-git command with env - -# passed all 92 test(s) -1..92 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t0010-racy-git.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0010-racy-git/.git/ -expecting success of 0010.1 'Racy GIT trial #0 part A': test "" != "$files" -ok 1 - Racy GIT trial #0 part A - -expecting success of 0010.2 'Racy GIT trial #0 part B': test "" != "$files" -ok 2 - Racy GIT trial #0 part B - -expecting success of 0010.3 'Racy GIT trial #1 part A': test "" != "$files" -ok 3 - Racy GIT trial #1 part A - -expecting success of 0010.4 'Racy GIT trial #1 part B': test "" != "$files" -ok 4 - Racy GIT trial #1 part B - -expecting success of 0010.5 'Racy GIT trial #2 part A': test "" != "$files" -ok 5 - Racy GIT trial #2 part A - -expecting success of 0010.6 'Racy GIT trial #2 part B': test "" != "$files" -ok 6 - Racy GIT trial #2 part B - -expecting success of 0010.7 'Racy GIT trial #3 part A': test "" != "$files" -ok 7 - Racy GIT trial #3 part A - -expecting success of 0010.8 'Racy GIT trial #3 part B': test "" != "$files" -ok 8 - Racy GIT trial #3 part B - -expecting success of 0010.9 'Racy GIT trial #4 part A': test "" != "$files" -ok 9 - Racy GIT trial #4 part A - -expecting success of 0010.10 'Racy GIT trial #4 part B': test "" != "$files" -ok 10 - Racy GIT trial #4 part B - -# passed all 10 test(s) -1..10 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' *** t0011-hashmap.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0011-hashmap/.git/ expecting success of 0011.1 'put': @@ -10794,6 +9532,42 @@ 1..14 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t0010-racy-git.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0010-racy-git/.git/ +expecting success of 0010.1 'Racy GIT trial #0 part A': test "" != "$files" +ok 1 - Racy GIT trial #0 part A + +expecting success of 0010.2 'Racy GIT trial #0 part B': test "" != "$files" +ok 2 - Racy GIT trial #0 part B + +expecting success of 0010.3 'Racy GIT trial #1 part A': test "" != "$files" +ok 3 - Racy GIT trial #1 part A + +expecting success of 0010.4 'Racy GIT trial #1 part B': test "" != "$files" +ok 4 - Racy GIT trial #1 part B + +expecting success of 0010.5 'Racy GIT trial #2 part A': test "" != "$files" +ok 5 - Racy GIT trial #2 part A + +expecting success of 0010.6 'Racy GIT trial #2 part B': test "" != "$files" +ok 6 - Racy GIT trial #2 part B + +expecting success of 0010.7 'Racy GIT trial #3 part A': test "" != "$files" +ok 7 - Racy GIT trial #3 part A + +expecting success of 0010.8 'Racy GIT trial #3 part B': test "" != "$files" +ok 8 - Racy GIT trial #3 part B + +expecting success of 0010.9 'Racy GIT trial #4 part A': test "" != "$files" +ok 9 - Racy GIT trial #4 part A + +expecting success of 0010.10 'Racy GIT trial #4 part B': test "" != "$files" +ok 10 - Racy GIT trial #4 part B + +# passed all 10 test(s) +1..10 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t0013-sha1dc.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0013-sha1dc/.git/ expecting success of 0013.1 'test-sha1 detects shattered pdf': @@ -12638,89 +11412,3112 @@ 1..146 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t0008-ignores.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0008-ignores/.git/ -expecting success of 0008.1 'setup': - init_vars && - mkdir -p a/b/ignored-dir a/submodule b && - if test_have_prereq SYMLINKS - then - ln -s b a/symlink - fi && - ( - cd a/submodule && - git init && - echo a >a && - git add a && - git commit -m"commit in submodule" - ) && - git add a/submodule && - cat <<-\EOF >.gitignore && - one - ignored-* - top-level-dir/ - EOF - for dir in . a - do - : >$dir/not-ignored && - : >$dir/ignored-and-untracked && - : >$dir/ignored-but-in-index - done && - git add -f ignored-but-in-index a/ignored-but-in-index && - cat <<-\EOF >a/.gitignore && - two* - *three - EOF - cat <<-\EOF >a/b/.gitignore && - four - five - # this comment should affect the line numbers - six - ignored-dir/ - # and so should this blank line: +*** t0020-crlf.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0020-crlf/.git/ +expecting success of 0020.1 'setup': - !on* - !two - EOF - echo "seven" >a/b/ignored-dir/.gitignore && - test -n "$HOME" && - cat <<-\EOF >"$global_excludes" && - globalone - !globaltwo - globalthree - EOF - cat <<-\EOF >>.git/info/exclude - per-repo - EOF + git config core.autocrlf false && -checking prerequisite: SYMLINKS + for w in Hello world how are you; do echo $w; done >one && + mkdir dir && + for w in I am very very fine thank you; do echo $w; done >dir/two && + for w in Oh here is NULQin text here; do echo $w; done | q_to_nul >three && + git add . && -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && - # test whether the filesystem supports symbolic links - ln -s x y && test -h y + git commit -m initial && -) -prerequisite SYMLINKS ok -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0008-ignores/a/submodule/.git/ -[master (root-commit) d93acdf] commit in submodule + one=$(git rev-parse HEAD:one) && + dir=$(git rev-parse HEAD:dir) && + two=$(git rev-parse HEAD:dir/two) && + three=$(git rev-parse HEAD:three) && + + for w in Some extra lines here; do echo $w; done >>one && + git diff >patch.file && + patched=$(git hash-object --stdin - 1 file changed, 1 insertion(+) - create mode 100644 a -warning: adding embedded git repository: a/submodule -hint: You've added another git repository inside your current repository. -hint: Clones of the outer repository will not contain the contents of + 3 files changed, 12 insertions(+) + create mode 100644 dir/two + create mode 100644 one + create mode 100644 three +ok 1 - setup + +expecting success of 0020.2 'safecrlf: autocrlf=input, all CRLF': + + git config core.autocrlf input && + git config core.safecrlf true && + + for w in I am all CRLF; do echo $w; done | append_cr >allcrlf && + test_must_fail git add allcrlf + +fatal: CRLF would be replaced by LF in allcrlf +ok 2 - safecrlf: autocrlf=input, all CRLF + +expecting success of 0020.3 'safecrlf: autocrlf=input, mixed LF/CRLF': + + git config core.autocrlf input && + git config core.safecrlf true && + + for w in Oh here is CRLFQ in text; do echo $w; done | q_to_cr >mixed && + test_must_fail git add mixed + +fatal: CRLF would be replaced by LF in mixed +ok 3 - safecrlf: autocrlf=input, mixed LF/CRLF + +expecting success of 0020.4 'safecrlf: autocrlf=true, all LF': + + git config core.autocrlf true && + git config core.safecrlf true && + + for w in I am all LF; do echo $w; done >alllf && + test_must_fail git add alllf + +fatal: LF would be replaced by CRLF in alllf +ok 4 - safecrlf: autocrlf=true, all LF + +expecting success of 0020.5 'safecrlf: autocrlf=true mixed LF/CRLF': + + git config core.autocrlf true && + git config core.safecrlf true && + + for w in Oh here is CRLFQ in text; do echo $w; done | q_to_cr >mixed && + test_must_fail git add mixed + +fatal: LF would be replaced by CRLF in mixed +ok 5 - safecrlf: autocrlf=true mixed LF/CRLF + +expecting success of 0020.6 'safecrlf: print warning only once': + + git config core.autocrlf input && + git config core.safecrlf warn && + + for w in I am all LF; do echo $w; done >doublewarn && + git add doublewarn && + git commit -m "nowarn" && + for w in Oh here is CRLFQ in text; do echo $w; done | q_to_cr >doublewarn && + git add doublewarn 2>err && + if test_have_prereq C_LOCALE_OUTPUT + then + test $(grep "CRLF will be replaced by LF" err | wc -l) = 1 + fi + +[master 4d5dbcd] nowarn + Author: A U Thor + 1 file changed, 4 insertions(+) + create mode 100644 doublewarn +checking prerequisite: C_LOCALE_OUTPUT + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false + +) +prerequisite C_LOCALE_OUTPUT ok +ok 6 - safecrlf: print warning only once + +expecting success of 0020.7 'safecrlf: git diff demotes safecrlf=true to warn': + git config core.autocrlf input && + git config core.safecrlf true && + git diff HEAD + +diff --git a/doublewarn b/doublewarn +index 03ba6c2..1ed2a2c 100644 +--- a/doublewarn ++++ b/doublewarn +@@ -1,4 +1,6 @@ +-I +-am +-all +-LF ++Oh ++here ++is ++CRLF ++in ++text +ok 7 - safecrlf: git diff demotes safecrlf=true to warn + +expecting success of 0020.8 'safecrlf: no warning with safecrlf=false': + git config core.autocrlf input && + git config core.safecrlf false && + + for w in I am all CRLF; do echo $w; done | append_cr >allcrlf && + git add allcrlf 2>err && + test_must_be_empty err + +ok 8 - safecrlf: no warning with safecrlf=false + +expecting success of 0020.9 'switch off autocrlf, safecrlf, reset HEAD': + git config core.autocrlf false && + git config core.safecrlf false && + git reset --hard HEAD^ + +HEAD is now at 69d7d88 initial +ok 9 - switch off autocrlf, safecrlf, reset HEAD + +expecting success of 0020.10 'update with autocrlf=input': + + rm -f tmp one dir/two three && + git read-tree --reset -u HEAD && + git config core.autocrlf input && + munge_cr append one && + munge_cr append dir/two && + git update-index -- one dir/two && + differs=$(git diff-index --cached HEAD) && + verbose test -z "$differs" + + +ok 10 - update with autocrlf=input + +expecting success of 0020.11 'update with autocrlf=true': + + rm -f tmp one dir/two three && + git read-tree --reset -u HEAD && + git config core.autocrlf true && + munge_cr append one && + munge_cr append dir/two && + git update-index -- one dir/two && + differs=$(git diff-index --cached HEAD) && + verbose test -z "$differs" + + +ok 11 - update with autocrlf=true + +expecting success of 0020.12 'checkout with autocrlf=true': + + rm -f tmp one dir/two three && + git config core.autocrlf true && + git read-tree --reset -u HEAD && + munge_cr remove one && + munge_cr remove dir/two && + git update-index -- one dir/two && + test "$one" = $(git hash-object --stdin .gitattributes && + git config core.autocrlf true && + git read-tree --reset -u HEAD && + + ! has_cr dir/two && + verbose has_cr one && + ! has_cr three + +ok 20 - .gitattributes says two is binary + +expecting success of 0020.21 '.gitattributes says two is input': + + rm -f tmp one dir/two three && + echo "two crlf=input" >.gitattributes && + git read-tree --reset -u HEAD && + + ! has_cr dir/two + +ok 21 - .gitattributes says two is input + +expecting success of 0020.22 '.gitattributes says two and three are text': + + rm -f tmp one dir/two three && + echo "t* crlf" >.gitattributes && + git read-tree --reset -u HEAD && + + verbose has_cr dir/two && + verbose has_cr three + +ok 22 - .gitattributes says two and three are text + +expecting success of 0020.23 'in-tree .gitattributes (1)': + + echo "one -crlf" >>.gitattributes && + git add .gitattributes && + git commit -m "Add .gitattributes" && + + rm -rf tmp one dir .gitattributes patch.file three && + git read-tree --reset -u HEAD && + + ! has_cr one && + verbose has_cr three + +[master 31eb750] Add .gitattributes + Author: A U Thor + 1 file changed, 2 insertions(+) + create mode 100644 .gitattributes +ok 23 - in-tree .gitattributes (1) + +expecting success of 0020.24 'in-tree .gitattributes (2)': + + rm -rf tmp one dir .gitattributes patch.file three && + git read-tree --reset HEAD && + git checkout-index -f -q -u -a && + + ! has_cr one && + verbose has_cr three + +ok 24 - in-tree .gitattributes (2) + +expecting success of 0020.25 'in-tree .gitattributes (3)': + + rm -rf tmp one dir .gitattributes patch.file three && + git read-tree --reset HEAD && + git checkout-index -u .gitattributes && + git checkout-index -u one dir/two three && + + ! has_cr one && + verbose has_cr three + +ok 25 - in-tree .gitattributes (3) + +expecting success of 0020.26 'in-tree .gitattributes (4)': + + rm -rf tmp one dir .gitattributes patch.file three && + git read-tree --reset HEAD && + git checkout-index -u one dir/two three && + git checkout-index -u .gitattributes && + + ! has_cr one && + verbose has_cr three + +ok 26 - in-tree .gitattributes (4) + +expecting success of 0020.27 'checkout with existing .gitattributes': + + git config core.autocrlf true && + git config --unset core.safecrlf && + echo ".file2 -crlfQ" | q_to_cr >> .gitattributes && + git add .gitattributes && + git commit -m initial && + echo ".file -crlfQ" | q_to_cr >> .gitattributes && + echo "contents" > .file && + git add .gitattributes .file && + git commit -m second && + + git checkout master~1 && + git checkout master && + test "$(git diff-files --raw)" = "" + + +[master 6d0586a] initial + Author: A U Thor + 1 file changed, 1 insertion(+) +[master f2c783e] second + Author: A U Thor + 2 files changed, 2 insertions(+) + create mode 100644 .file +Note: switching to 'master~1'. + +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. + +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: + + git switch -c + +Or undo this operation with: + + git switch - + +Turn off this advice by setting config variable advice.detachedHead to false + +HEAD is now at 6d0586a initial +Previous HEAD position was 6d0586a initial +Switched to branch 'master' +ok 27 - checkout with existing .gitattributes + +expecting success of 0020.28 'checkout when deleting .gitattributes': + + git rm .gitattributes && + echo "contentsQ" | q_to_cr > .file2 && + git add .file2 && + git commit -m third && + + git checkout master~1 && + git checkout master && + has_cr .file2 + + +rm '.gitattributes' +[master edaea69] third + Author: A U Thor + 2 files changed, 1 insertion(+), 4 deletions(-) + create mode 100644 .file2 + delete mode 100644 .gitattributes +Note: switching to 'master~1'. + +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. + +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: + + git switch -c + +Or undo this operation with: + + git switch - + +Turn off this advice by setting config variable advice.detachedHead to false + +HEAD is now at f2c783e second +Previous HEAD position was f2c783e second +Switched to branch 'master' +ok 28 - checkout when deleting .gitattributes + +expecting success of 0020.29 'invalid .gitattributes (must not crash)': + + echo "three +crlf" >>.gitattributes && + git diff + + ++crlf is not a valid attribute name: .gitattributes:1 +ok 29 - invalid .gitattributes (must not crash) + +expecting success of 0020.30 'setting up for new autocrlf tests': + git config core.autocrlf false && + git config core.safecrlf false && + rm -rf .????* * && + for w in I am all LF; do echo $w; done >alllf && + for w in Oh here is CRLFQ in text; do echo $w; done | q_to_cr >mixed && + for w in I am all CRLF; do echo $w; done | append_cr >allcrlf && + git add -A . && + git commit -m "alllf, allcrlf and mixed only" && + git tag -a -m "message" autocrlf-checkpoint + +[master 021c55b] alllf, allcrlf and mixed only + Author: A U Thor + 7 files changed, 8 insertions(+), 14 deletions(-) + delete mode 100644 .file + delete mode 100644 .file2 + create mode 100644 allcrlf + create mode 100644 alllf + delete mode 100644 dir/two + rename three => mixed (57%) + delete mode 100644 one +ok 30 - setting up for new autocrlf tests + +expecting success of 0020.31 'report no change after setting autocrlf': + git config core.autocrlf true && + touch * && + git diff --exit-code + +ok 31 - report no change after setting autocrlf + +expecting success of 0020.32 'files are clean after checkout': + rm * && + git checkout -f && + git diff --exit-code + +ok 32 - files are clean after checkout + +expecting success of 0020.33 'LF only file gets CRLF with autocrlf': + test "$(cr_to_Q_no_NL < alllf)" = "IQamQallQLFQ" + +ok 33 - LF only file gets CRLF with autocrlf + +expecting success of 0020.34 'Mixed file is still mixed with autocrlf': + test "$(cr_to_Q_no_NL < mixed)" = "OhhereisCRLFQintext" + +ok 34 - Mixed file is still mixed with autocrlf + +expecting success of 0020.35 'CRLF only file has CRLF with autocrlf': + test "$(cr_to_Q_no_NL < allcrlf)" = "IQamQallQCRLFQ" + +ok 35 - CRLF only file has CRLF with autocrlf + +expecting success of 0020.36 'New CRLF file gets LF in repo': + tr -d "\015" < alllf | append_cr > alllf2 && + git add alllf2 && + git commit -m "alllf2 added" && + git config core.autocrlf false && + rm * && + git checkout -f && + test_cmp alllf alllf2 + +[master 6ebdedc] alllf2 added + Author: A U Thor + 1 file changed, 4 insertions(+) + create mode 100644 alllf2 +ok 36 - New CRLF file gets LF in repo + +# passed all 36 test(s) +1..36 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t0022-crlf-rename.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0022-crlf-rename/.git/ +expecting success of 0022.1 'setup': + + cat "$TEST_DIRECTORY"/t0022-crlf-rename.sh >sample && + git add sample && + + test_tick && + git commit -m Initial && + + append_cr <"$TEST_DIRECTORY"/t0022-crlf-rename.sh >elpmas && + git add elpmas && + rm -f sample && + + test_tick && + git commit -a -m Second + + +[master (root-commit) 6ee20c2] Initial + Author: A U Thor + 1 file changed, 33 insertions(+) + create mode 100644 sample +[master d248b45] Second + Author: A U Thor + 1 file changed, 33 insertions(+), 33 deletions(-) + rename sample => elpmas (94%) +ok 1 - setup + +expecting success of 0022.2 'diff -M': + + git diff-tree -M -r --name-status HEAD^ HEAD | + sed -e "s/R[0-9]*/RNUM/" >actual && + echo "RNUM sample elpmas" >expect && + test_cmp expect actual + + +ok 2 - diff -M + +# passed all 2 test(s) +1..2 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t0023-crlf-am.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0023-crlf-am/.git/ +expecting success of 0023.1 'setup': + + git config core.autocrlf true && + echo foo >bar && + git add bar && + test_tick && + git commit -m initial + + +warning: LF will be replaced by CRLF in bar. +The file will have its original line endings in your working directory +[master (root-commit) 1adb513] initial + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 bar +ok 1 - setup + +expecting success of 0023.2 'am': + + git am -3 sample && + git add sample && + + test_tick && + git commit -m Initial + + +[master (root-commit) 4f7f1aa] Initial + Author: A U Thor + 1 file changed, 2 insertions(+) + create mode 100644 sample +ok 1 - setup + +expecting success of 0024.2 'tar archive': + + git archive --format=tar HEAD | + ( mkdir untarred && cd untarred && "$TAR" -xf - ) && + + test_cmp sample untarred/sample + + +ok 2 - tar archive + +checking prerequisite: UNZIP + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-UNZIP" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-UNZIP" && + "$GIT_UNZIP" -v + test $? -ne 127 + +) +UnZip 6.00 of 20 April 2009, by Debian. Original by Info-ZIP. + +Latest sources and executables are at ftp://ftp.info-zip.org/pub/infozip/ ; +see ftp://ftp.info-zip.org/pub/infozip/UnZip.html for other sites. + +Compiled with gcc 10.2.1 20210110 for Unix (Linux ELF). + +UnZip special compilation options: + ACORN_FTYPE_NFS + COPYRIGHT_CLEAN (PKZIP 0.9x unreducing method not supported) + SET_DIR_ATTRIB + SYMLINKS (symbolic links supported, if RTL and file system permit) + TIMESTAMP + UNIXBACKUP + USE_EF_UT_TIME + USE_UNSHRINK (PKZIP/Zip 1.x unshrinking method supported) + USE_DEFLATE64 (PKZIP 4.x Deflate64(tm) supported) + UNICODE_SUPPORT [wide-chars, char coding: other] (handle UTF-8 paths) + LARGE_FILE_SUPPORT (large files over 2 GiB supported) + ZIP64_SUPPORT (archives using Zip64 for large files supported) + USE_BZIP2 (PKZIP 4.6+, using bzip2 lib version 1.0.8, 13-Jul-2019) + VMS_TEXT_CONV + WILD_STOP_AT_DIR + [decryption, version 2.11 of 05 Jan 2007] + +UnZip and ZipInfo environment options: + UNZIP: [none] + UNZIPOPT: [none] + ZIPINFO: [none] + ZIPINFOOPT: [none] +prerequisite UNZIP ok +expecting success of 0024.3 'zip archive': + + git archive --format=zip HEAD >test.zip && + + ( mkdir unzipped && cd unzipped && "$GIT_UNZIP" ../test.zip ) && + + test_cmp sample unzipped/sample + + +Archive: ../test.zip +4f7f1aaec1ee996d8f5e13c2cfbd43a378578e1f + extracting: sample +ok 3 - zip archive + +# passed all 3 test(s) +1..3 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t0025-crlf-renormalize.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0025-crlf-renormalize/.git/ +expecting success of 0025.1 'setup': + git config core.autocrlf false && + printf "LINEONE\nLINETWO\nLINETHREE\n" >LF.txt && + printf "LINEONE\r\nLINETWO\r\nLINETHREE\r\n" >CRLF.txt && + printf "LINEONE\r\nLINETWO\nLINETHREE\n" >CRLF_mix_LF.txt && + git add . && + git commit -m initial + +[master (root-commit) 98c48e8] initial + Author: A U Thor + 3 files changed, 9 insertions(+) + create mode 100644 CRLF.txt + create mode 100644 CRLF_mix_LF.txt + create mode 100644 LF.txt +ok 1 - setup + +expecting success of 0025.2 'renormalize CRLF in repo': + echo "*.txt text=auto" >.gitattributes && + git add --renormalize "*.txt" && + cat >expect <<-\EOF && + i/lf w/crlf attr/text=auto CRLF.txt + i/lf w/lf attr/text=auto LF.txt + i/lf w/mixed attr/text=auto CRLF_mix_LF.txt + EOF + git ls-files --eol | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 2 - renormalize CRLF in repo + +expecting success of 0025.3 'ignore-errors not mistaken for renormalize': + git reset --hard && + echo "*.txt text=auto" >.gitattributes && + git ls-files --eol >expect && + git add --ignore-errors "*.txt" && + git ls-files --eol >actual && + test_cmp expect actual + +HEAD is now at 98c48e8 initial +ok 3 - ignore-errors not mistaken for renormalize + +# passed all 3 test(s) +1..3 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t0026-eol-config.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0026-eol-config/.git/ +expecting success of 0026.1 'setup': + + git config core.autocrlf false && + + echo "one text" > .gitattributes && + + for w in Hello world how are you; do echo $w; done >one && + for w in I am very very fine thank you; do echo $w; done >two && + git add . && + + git commit -m initial && + + one=$(git rev-parse HEAD:one) && + two=$(git rev-parse HEAD:two) && + + echo happy. + +[master (root-commit) f7a09ee] initial + Author: A U Thor + 3 files changed, 13 insertions(+) + create mode 100644 .gitattributes + create mode 100644 one + create mode 100644 two +happy. +ok 1 - setup + +expecting success of 0026.2 'eol=lf puts LFs in normalized file': + + rm -f .gitattributes tmp one two && + git config core.eol lf && + git read-tree --reset -u HEAD && + + ! has_cr one && + ! has_cr two && + onediff=$(git diff one) && + twodiff=$(git diff two) && + test -z "$onediff" && test -z "$twodiff" + +ok 2 - eol=lf puts LFs in normalized file + +expecting success of 0026.3 'eol=crlf puts CRLFs in normalized file': + + rm -f .gitattributes tmp one two && + git config core.eol crlf && + git read-tree --reset -u HEAD && + + has_cr one && + ! has_cr two && + onediff=$(git diff one) && + twodiff=$(git diff two) && + test -z "$onediff" && test -z "$twodiff" + +ok 3 - eol=crlf puts CRLFs in normalized file + +expecting success of 0026.4 'autocrlf=true overrides eol=lf': + + rm -f .gitattributes tmp one two && + git config core.eol lf && + git config core.autocrlf true && + git read-tree --reset -u HEAD && + + has_cr one && + has_cr two && + onediff=$(git diff one) && + twodiff=$(git diff two) && + test -z "$onediff" && test -z "$twodiff" + +ok 4 - autocrlf=true overrides eol=lf + +expecting success of 0026.5 'autocrlf=true overrides unset eol': + + rm -f .gitattributes tmp one two && + git config --unset-all core.eol && + git config core.autocrlf true && + git read-tree --reset -u HEAD && + + has_cr one && + has_cr two && + onediff=$(git diff one) && + twodiff=$(git diff two) && + test -z "$onediff" && test -z "$twodiff" + +ok 5 - autocrlf=true overrides unset eol + +ok 6 # skip eol native is crlf (missing NATIVE_CRLF) + +# passed all 6 test(s) +1..6 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t0000-basic.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0000-basic/.git/ +expecting success of 0000.1 'verify that the running shell supports "local"': + x="notlocal" && + y="alsonotlocal" && + echo "local alsolocal" >expected1 && + try_local_xy >actual1 && + test_cmp expected1 actual1 && + echo "notlocal alsonotlocal" >expected2 && + echo "$x $y" >actual2 && + test_cmp expected2 actual2 + +ok 1 - verify that the running shell supports "local" + +expecting success of 0000.2 '.git/objects should be empty after git init in an empty repo': + find .git/objects -type f -print >should-be-empty && + test_line_count = 0 should-be-empty + +ok 2 - .git/objects should be empty after git init in an empty repo + +expecting success of 0000.3 '.git/objects should have 3 subdirectories': + find .git/objects -type d -print >full-of-directories && + test_line_count = 3 full-of-directories + +ok 3 - .git/objects should have 3 subdirectories + +expecting success of 0000.4 'success is reported like this': + : + +ok 4 - success is reported like this + +expecting success of 0000.5 'pretend we have a fully passing test suite': + run_sub_test_lib_test full-pass '3 passing tests' <<-\EOF && + for i in 1 2 3 + do + test_expect_success "passing test #$i" 'true' + done + test_done + EOF + check_sub_test_lib_test full-pass <<-\EOF + > ok 1 - passing test #1 + > ok 2 - passing test #2 + > ok 3 - passing test #3 + > # passed all 3 test(s) + > 1..3 + EOF + +ok 5 - pretend we have a fully passing test suite + +expecting success of 0000.6 'pretend we have a partially passing test suite': + run_sub_test_lib_test_err partial-pass '2/3 tests passing' <<-\EOF && + test_expect_success 'passing test #1' 'true' + test_expect_success 'failing test #2' 'false' + test_expect_success 'passing test #3' 'true' + test_done + EOF + check_sub_test_lib_test partial-pass <<-\EOF + > ok 1 - passing test #1 + > not ok 2 - failing test #2 + # false + > ok 3 - passing test #3 + > # failed 1 among 3 test(s) + > 1..3 + EOF + +ok 6 - pretend we have a partially passing test suite + +expecting success of 0000.7 'pretend we have a known breakage': + run_sub_test_lib_test failing-todo 'A failing TODO test' <<-\EOF && + test_expect_success 'passing test' 'true' + test_expect_failure 'pretend we have a known breakage' 'false' + test_done + EOF + check_sub_test_lib_test failing-todo <<-\EOF + > ok 1 - passing test + > not ok 2 - pretend we have a known breakage # TODO known breakage + > # still have 1 known breakage(s) + > # passed all remaining 1 test(s) + > 1..2 + EOF + +ok 7 - pretend we have a known breakage + +expecting success of 0000.8 'pretend we have fixed a known breakage': + run_sub_test_lib_test passing-todo 'A passing TODO test' <<-\EOF && + test_expect_failure 'pretend we have fixed a known breakage' 'true' + test_done + EOF + check_sub_test_lib_test passing-todo <<-\EOF + > ok 1 - pretend we have fixed a known breakage # TODO known breakage vanished + > # 1 known breakage(s) vanished; please update test(s) + > 1..1 + EOF + +ok 8 - pretend we have fixed a known breakage + +expecting success of 0000.9 'pretend we have fixed one of two known breakages (run in sub test-lib)': + run_sub_test_lib_test partially-passing-todos '2 TODO tests, one passing' <<-\EOF && + test_expect_failure 'pretend we have a known breakage' 'false' + test_expect_success 'pretend we have a passing test' 'true' + test_expect_failure 'pretend we have fixed another known breakage' 'true' + test_done + EOF + check_sub_test_lib_test partially-passing-todos <<-\EOF + > not ok 1 - pretend we have a known breakage # TODO known breakage + > ok 2 - pretend we have a passing test + > ok 3 - pretend we have fixed another known breakage # TODO known breakage vanished + > # 1 known breakage(s) vanished; please update test(s) + > # still have 1 known breakage(s) + > # passed all remaining 1 test(s) + > 1..3 + EOF + +ok 9 - pretend we have fixed one of two known breakages (run in sub test-lib) + +expecting success of 0000.10 'pretend we have a pass, fail, and known breakage': + run_sub_test_lib_test_err mixed-results1 'mixed results #1' <<-\EOF && + test_expect_success 'passing test' 'true' + test_expect_success 'failing test' 'false' + test_expect_failure 'pretend we have a known breakage' 'false' + test_done + EOF + check_sub_test_lib_test mixed-results1 <<-\EOF + > ok 1 - passing test + > not ok 2 - failing test + > # false + > not ok 3 - pretend we have a known breakage # TODO known breakage + > # still have 1 known breakage(s) + > # failed 1 among remaining 2 test(s) + > 1..3 + EOF + +ok 10 - pretend we have a pass, fail, and known breakage + +expecting success of 0000.11 'pretend we have a mix of all possible results': + run_sub_test_lib_test_err mixed-results2 'mixed results #2' <<-\EOF && + test_expect_success 'passing test' 'true' + test_expect_success 'passing test' 'true' + test_expect_success 'passing test' 'true' + test_expect_success 'passing test' 'true' + test_expect_success 'failing test' 'false' + test_expect_success 'failing test' 'false' + test_expect_success 'failing test' 'false' + test_expect_failure 'pretend we have a known breakage' 'false' + test_expect_failure 'pretend we have a known breakage' 'false' + test_expect_failure 'pretend we have fixed a known breakage' 'true' + test_done + EOF + check_sub_test_lib_test mixed-results2 <<-\EOF + > ok 1 - passing test + > ok 2 - passing test + > ok 3 - passing test + > ok 4 - passing test + > not ok 5 - failing test + > # false + > not ok 6 - failing test + > # false + > not ok 7 - failing test + > # false + > not ok 8 - pretend we have a known breakage # TODO known breakage + > not ok 9 - pretend we have a known breakage # TODO known breakage + > ok 10 - pretend we have fixed a known breakage # TODO known breakage vanished + > # 1 known breakage(s) vanished; please update test(s) + > # still have 2 known breakage(s) + > # failed 3 among remaining 7 test(s) + > 1..10 + EOF + +ok 11 - pretend we have a mix of all possible results + +checking prerequisite: C_LOCALE_OUTPUT + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false + +) +prerequisite C_LOCALE_OUTPUT ok +expecting success of 0000.12 'test --verbose': + run_sub_test_lib_test_err \ + t1234-verbose "test verbose" --verbose <<-\EOF && + test_expect_success "passing test" true + test_expect_success "test with output" "echo foo" + test_expect_success "failing test" false + test_done + EOF + mv t1234-verbose/out t1234-verbose/out+ && + grep -v "^Initialized empty" t1234-verbose/out+ >t1234-verbose/out && + check_sub_test_lib_test t1234-verbose <<-\EOF + > expecting success of 1234.1 'passing test': true + > ok 1 - passing test + > Z + > expecting success of 1234.2 'test with output': echo foo + > foo + > ok 2 - test with output + > Z + > expecting success of 1234.3 'failing test': false + > not ok 3 - failing test + > # false + > Z + > # failed 1 among 3 test(s) + > 1..3 + EOF + +ok 12 - test --verbose + +expecting success of 0000.13 'test --verbose-only': + run_sub_test_lib_test_err \ + t2345-verbose-only-2 "test verbose-only=2" \ + --verbose-only=2 <<-\EOF && + test_expect_success "passing test" true + test_expect_success "test with output" "echo foo" + test_expect_success "failing test" false + test_done + EOF + check_sub_test_lib_test t2345-verbose-only-2 <<-\EOF + > ok 1 - passing test + > Z + > expecting success of 2345.2 'test with output': echo foo + > foo + > ok 2 - test with output + > Z + > not ok 3 - failing test + > # false + > # failed 1 among 3 test(s) + > 1..3 + EOF + +ok 13 - test --verbose-only + +expecting success of 0000.14 'GIT_SKIP_TESTS': + ( + GIT_SKIP_TESTS='git.2' && export GIT_SKIP_TESTS && + run_sub_test_lib_test git-skip-tests-basic 'GIT_SKIP_TESTS' <<-\EOF && + for i in 1 2 3 + do + test_expect_success "passing test #$i" 'true' + done + test_done + EOF + check_sub_test_lib_test git-skip-tests-basic <<-\EOF + > ok 1 - passing test #1 + > ok 2 # skip passing test #2 (GIT_SKIP_TESTS) + > ok 3 - passing test #3 + > # passed all 3 test(s) + > 1..3 + EOF + ) + +ok 14 - GIT_SKIP_TESTS + +expecting success of 0000.15 'GIT_SKIP_TESTS several tests': + ( + GIT_SKIP_TESTS='git.2 git.5' && export GIT_SKIP_TESTS && + run_sub_test_lib_test git-skip-tests-several 'GIT_SKIP_TESTS several tests' <<-\EOF && + for i in 1 2 3 4 5 6 + do + test_expect_success "passing test #$i" 'true' + done + test_done + EOF + check_sub_test_lib_test git-skip-tests-several <<-\EOF + > ok 1 - passing test #1 + > ok 2 # skip passing test #2 (GIT_SKIP_TESTS) + > ok 3 - passing test #3 + > ok 4 - passing test #4 + > ok 5 # skip passing test #5 (GIT_SKIP_TESTS) + > ok 6 - passing test #6 + > # passed all 6 test(s) + > 1..6 + EOF + ) + +ok 15 - GIT_SKIP_TESTS several tests + +expecting success of 0000.16 'GIT_SKIP_TESTS sh pattern': + ( + GIT_SKIP_TESTS='git.[2-5]' && export GIT_SKIP_TESTS && + run_sub_test_lib_test git-skip-tests-sh-pattern 'GIT_SKIP_TESTS sh pattern' <<-\EOF && + for i in 1 2 3 4 5 6 + do + test_expect_success "passing test #$i" 'true' + done + test_done + EOF + check_sub_test_lib_test git-skip-tests-sh-pattern <<-\EOF + > ok 1 - passing test #1 + > ok 2 # skip passing test #2 (GIT_SKIP_TESTS) + > ok 3 # skip passing test #3 (GIT_SKIP_TESTS) + > ok 4 # skip passing test #4 (GIT_SKIP_TESTS) + > ok 5 # skip passing test #5 (GIT_SKIP_TESTS) + > ok 6 - passing test #6 + > # passed all 6 test(s) + > 1..6 + EOF + ) + +ok 16 - GIT_SKIP_TESTS sh pattern + +expecting success of 0000.17 'GIT_SKIP_TESTS entire suite': + ( + GIT_SKIP_TESTS='git' && export GIT_SKIP_TESTS && + run_sub_test_lib_test git-skip-tests-entire-suite 'GIT_SKIP_TESTS entire suite' <<-\EOF && + for i in 1 2 3 + do + test_expect_success "passing test #$i" 'true' + done + test_done + EOF + check_sub_test_lib_test git-skip-tests-entire-suite <<-\EOF + > 1..0 # SKIP skip all tests in git + EOF + ) + +ok 17 - GIT_SKIP_TESTS entire suite + +expecting success of 0000.18 'GIT_SKIP_TESTS does not skip unmatched suite': + ( + GIT_SKIP_TESTS='notgit' && export GIT_SKIP_TESTS && + run_sub_test_lib_test git-skip-tests-unmatched-suite 'GIT_SKIP_TESTS does not skip unmatched suite' <<-\EOF && + for i in 1 2 3 + do + test_expect_success "passing test #$i" 'true' + done + test_done + EOF + check_sub_test_lib_test git-skip-tests-unmatched-suite <<-\EOF + > ok 1 - passing test #1 + > ok 2 - passing test #2 + > ok 3 - passing test #3 + > # passed all 3 test(s) + > 1..3 + EOF + ) + +ok 18 - GIT_SKIP_TESTS does not skip unmatched suite + +expecting success of 0000.19 '--run basic': + run_sub_test_lib_test run-basic '--run basic' --run='1,3,5' <<-\EOF && + for i in 1 2 3 4 5 6 + do + test_expect_success "passing test #$i" 'true' + done + test_done + EOF + check_sub_test_lib_test run-basic <<-\EOF + > ok 1 - passing test #1 + > ok 2 # skip passing test #2 (--run) + > ok 3 - passing test #3 + > ok 4 # skip passing test #4 (--run) + > ok 5 - passing test #5 + > ok 6 # skip passing test #6 (--run) + > # passed all 6 test(s) + > 1..6 + EOF + +ok 19 - --run basic + +expecting success of 0000.20 '--run with a range': + run_sub_test_lib_test run-range '--run with a range' --run='1-3' <<-\EOF && + for i in 1 2 3 4 5 6 + do + test_expect_success "passing test #$i" 'true' + done + test_done + EOF + check_sub_test_lib_test run-range <<-\EOF + > ok 1 - passing test #1 + > ok 2 - passing test #2 + > ok 3 - passing test #3 + > ok 4 # skip passing test #4 (--run) + > ok 5 # skip passing test #5 (--run) + > ok 6 # skip passing test #6 (--run) + > # passed all 6 test(s) + > 1..6 + EOF + +ok 20 - --run with a range + +expecting success of 0000.21 '--run with two ranges': + run_sub_test_lib_test run-two-ranges '--run with two ranges' --run='1-2,5-6' <<-\EOF && + for i in 1 2 3 4 5 6 + do + test_expect_success "passing test #$i" 'true' + done + test_done + EOF + check_sub_test_lib_test run-two-ranges <<-\EOF + > ok 1 - passing test #1 + > ok 2 - passing test #2 + > ok 3 # skip passing test #3 (--run) + > ok 4 # skip passing test #4 (--run) + > ok 5 - passing test #5 + > ok 6 - passing test #6 + > # passed all 6 test(s) + > 1..6 + EOF + +ok 21 - --run with two ranges + +expecting success of 0000.22 '--run with a left open range': + run_sub_test_lib_test run-left-open-range '--run with a left open range' --run='-3' <<-\EOF && + for i in 1 2 3 4 5 6 + do + test_expect_success "passing test #$i" 'true' + done + test_done + EOF + check_sub_test_lib_test run-left-open-range <<-\EOF + > ok 1 - passing test #1 + > ok 2 - passing test #2 + > ok 3 - passing test #3 + > ok 4 # skip passing test #4 (--run) + > ok 5 # skip passing test #5 (--run) + > ok 6 # skip passing test #6 (--run) + > # passed all 6 test(s) + > 1..6 + EOF + +ok 22 - --run with a left open range + +expecting success of 0000.23 '--run with a right open range': + run_sub_test_lib_test run-right-open-range '--run with a right open range' --run='4-' <<-\EOF && + for i in 1 2 3 4 5 6 + do + test_expect_success "passing test #$i" 'true' + done + test_done + EOF + check_sub_test_lib_test run-right-open-range <<-\EOF + > ok 1 # skip passing test #1 (--run) + > ok 2 # skip passing test #2 (--run) + > ok 3 # skip passing test #3 (--run) + > ok 4 - passing test #4 + > ok 5 - passing test #5 + > ok 6 - passing test #6 + > # passed all 6 test(s) + > 1..6 + EOF + +ok 23 - --run with a right open range + +expecting success of 0000.24 '--run with basic negation': + run_sub_test_lib_test run-basic-neg '--run with basic negation' --run='!3' <<-\EOF && + for i in 1 2 3 4 5 6 + do + test_expect_success "passing test #$i" 'true' + done + test_done + EOF + check_sub_test_lib_test run-basic-neg <<-\EOF + > ok 1 - passing test #1 + > ok 2 - passing test #2 + > ok 3 # skip passing test #3 (--run) + > ok 4 - passing test #4 + > ok 5 - passing test #5 + > ok 6 - passing test #6 + > # passed all 6 test(s) + > 1..6 + EOF + +ok 24 - --run with basic negation + +expecting success of 0000.25 '--run with two negations': + run_sub_test_lib_test run-two-neg '--run with two negations' --run='!3,!6' <<-\EOF && + for i in 1 2 3 4 5 6 + do + test_expect_success "passing test #$i" 'true' + done + test_done + EOF + check_sub_test_lib_test run-two-neg <<-\EOF + > ok 1 - passing test #1 + > ok 2 - passing test #2 + > ok 3 # skip passing test #3 (--run) + > ok 4 - passing test #4 + > ok 5 - passing test #5 + > ok 6 # skip passing test #6 (--run) + > # passed all 6 test(s) + > 1..6 + EOF + +ok 25 - --run with two negations + +expecting success of 0000.26 '--run a range and negation': + run_sub_test_lib_test run-range-and-neg '--run a range and negation' --run='-4,!2' <<-\EOF && + for i in 1 2 3 4 5 6 + do + test_expect_success "passing test #$i" 'true' + done + test_done + EOF + check_sub_test_lib_test run-range-and-neg <<-\EOF + > ok 1 - passing test #1 + > ok 2 # skip passing test #2 (--run) + > ok 3 - passing test #3 + > ok 4 - passing test #4 + > ok 5 # skip passing test #5 (--run) + > ok 6 # skip passing test #6 (--run) + > # passed all 6 test(s) + > 1..6 + EOF + +ok 26 - --run a range and negation + +expecting success of 0000.27 '--run range negation': + run_sub_test_lib_test run-range-neg '--run range negation' --run='!1-3' <<-\EOF && + for i in 1 2 3 4 5 6 + do + test_expect_success "passing test #$i" 'true' + done + test_done + EOF + check_sub_test_lib_test run-range-neg <<-\EOF + > ok 1 # skip passing test #1 (--run) + > ok 2 # skip passing test #2 (--run) + > ok 3 # skip passing test #3 (--run) + > ok 4 - passing test #4 + > ok 5 - passing test #5 + > ok 6 - passing test #6 + > # passed all 6 test(s) + > 1..6 + EOF + +ok 27 - --run range negation + +expecting success of 0000.28 '--run include, exclude and include': + run_sub_test_lib_test run-inc-neg-inc '--run include, exclude and include' --run='1-5,!1-3,2' <<-\EOF && + for i in 1 2 3 4 5 6 + do + test_expect_success "passing test #$i" 'true' + done + test_done + EOF + check_sub_test_lib_test run-inc-neg-inc <<-\EOF + > ok 1 # skip passing test #1 (--run) + > ok 2 - passing test #2 + > ok 3 # skip passing test #3 (--run) + > ok 4 - passing test #4 + > ok 5 - passing test #5 + > ok 6 # skip passing test #6 (--run) + > # passed all 6 test(s) + > 1..6 + EOF + +ok 28 - --run include, exclude and include + +expecting success of 0000.29 '--run include, exclude and include, comma separated': + run_sub_test_lib_test run-inc-neg-inc-comma '--run include, exclude and include, comma separated' --run=1-5,\!1-3,2 <<-\EOF && + for i in 1 2 3 4 5 6 + do + test_expect_success "passing test #$i" 'true' + done + test_done + EOF + check_sub_test_lib_test run-inc-neg-inc-comma <<-\EOF + > ok 1 # skip passing test #1 (--run) + > ok 2 - passing test #2 + > ok 3 # skip passing test #3 (--run) + > ok 4 - passing test #4 + > ok 5 - passing test #5 + > ok 6 # skip passing test #6 (--run) + > # passed all 6 test(s) + > 1..6 + EOF + +ok 29 - --run include, exclude and include, comma separated + +expecting success of 0000.30 '--run exclude and include': + run_sub_test_lib_test run-neg-inc '--run exclude and include' --run='!3-,5' <<-\EOF && + for i in 1 2 3 4 5 6 + do + test_expect_success "passing test #$i" 'true' + done + test_done + EOF + check_sub_test_lib_test run-neg-inc <<-\EOF + > ok 1 - passing test #1 + > ok 2 - passing test #2 + > ok 3 # skip passing test #3 (--run) + > ok 4 # skip passing test #4 (--run) + > ok 5 - passing test #5 + > ok 6 # skip passing test #6 (--run) + > # passed all 6 test(s) + > 1..6 + EOF + +ok 30 - --run exclude and include + +expecting success of 0000.31 '--run empty selectors': + run_sub_test_lib_test run-empty-sel '--run empty selectors' --run='1,,3,,,5' <<-\EOF && + for i in 1 2 3 4 5 6 + do + test_expect_success "passing test #$i" 'true' + done + test_done + EOF + check_sub_test_lib_test run-empty-sel <<-\EOF + > ok 1 - passing test #1 + > ok 2 # skip passing test #2 (--run) + > ok 3 - passing test #3 + > ok 4 # skip passing test #4 (--run) + > ok 5 - passing test #5 + > ok 6 # skip passing test #6 (--run) + > # passed all 6 test(s) + > 1..6 + EOF + +ok 31 - --run empty selectors + +expecting success of 0000.32 '--run substring selector': + run_sub_test_lib_test run-substring-selector '--run empty selectors' --run='relevant' <<-\EOF && + test_expect_success "relevant test" 'true' + for i in 1 2 3 4 5 6 + do + test_expect_success "other test #$i" 'true' + done + test_done + EOF + check_sub_test_lib_test run-substring-selector <<-\EOF + > ok 1 - relevant test + > ok 2 # skip other test #1 (--run) + > ok 3 # skip other test #2 (--run) + > ok 4 # skip other test #3 (--run) + > ok 5 # skip other test #4 (--run) + > ok 6 # skip other test #5 (--run) + > ok 7 # skip other test #6 (--run) + > # passed all 7 test(s) + > 1..7 + EOF + +ok 32 - --run substring selector + +expecting success of 0000.33 '--run keyword selection': + run_sub_test_lib_test_err run-inv-range-start '--run invalid range start' --run='a-5' <<-\EOF && + test_expect_success "passing test #1" 'true' + test_done + EOF + check_sub_test_lib_test_err run-inv-range-start <<-\EOF_OUT 3<<-\EOF_ERR + > FATAL: Unexpected exit with code 1 + EOF_OUT + > error: --run: invalid non-numeric in range start: 'a-5' + EOF_ERR + +ok 33 - --run keyword selection + +expecting success of 0000.34 '--run invalid range end': + run_sub_test_lib_test_err run-inv-range-end '--run invalid range end' --run='1-z' <<-\EOF && + test_expect_success "passing test #1" 'true' + test_done + EOF + check_sub_test_lib_test_err run-inv-range-end <<-\EOF_OUT 3<<-\EOF_ERR + > FATAL: Unexpected exit with code 1 + EOF_OUT + > error: --run: invalid non-numeric in range end: '1-z' + EOF_ERR + +ok 34 - --run invalid range end + +expecting success of 0000.35 'test runs if prerequisite is satisfied': + test_have_prereq HAVEIT && + haveit=yes + +ok 35 - test runs if prerequisite is satisfied + +ok 36 # skip unmet prerequisite causes test to be skipped (missing DONTHAVEIT) + +expecting success of 0000.37 'test runs if prerequisites are satisfied': + test_have_prereq HAVEIT && + test_have_prereq HAVETHIS && + haveit=yes + +ok 37 - test runs if prerequisites are satisfied + +ok 38 # skip unmet prerequisites causes test to be skipped (missing DONTHAVEIT of HAVEIT,DONTHAVEIT) + +ok 39 # skip unmet prerequisites causes test to be skipped (missing DONTHAVEIT of DONTHAVEIT,HAVEIT) + +checking prerequisite: LAZY_TRUE + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-LAZY_TRUE" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-LAZY_TRUE" &&true +) +prerequisite LAZY_TRUE ok +expecting success of 0000.40 'test runs if lazy prereq is satisfied': + havetrue=yes + +ok 40 - test runs if lazy prereq is satisfied + +ok 41 # skip missing lazy prereqs skip tests (missing !LAZY_TRUE) + +checking prerequisite: LAZY_FALSE + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-LAZY_FALSE" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-LAZY_FALSE" &&false +) +prerequisite LAZY_FALSE not satisfied +expecting success of 0000.42 'negative lazy prereqs checked': + nothavefalse=yes + +ok 42 - negative lazy prereqs checked + +ok 43 # skip missing negative lazy prereqs will skip (missing LAZY_FALSE) + +expecting success of 0000.44 'tests clean up after themselves': + test_when_finished clean=yes + +ok 44 - tests clean up after themselves + +checking prerequisite: NESTED_PREREQ + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-NESTED_PREREQ" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-NESTED_PREREQ" && + >outer && + test_have_prereq NESTED_INNER && + echo "can create new file in cwd" >file && + test -f outer && + test ! -f inner + +) +checking prerequisite: NESTED_INNER + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-NESTED_INNER" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-NESTED_INNER" && + >inner && + rm -f outer + +) +prerequisite NESTED_INNER ok +prerequisite NESTED_PREREQ ok +expecting success of 0000.45 'evaluating nested lazy prereqs dont interfere with each other': + nestedworks=yes + +ok 45 - evaluating nested lazy prereqs dont interfere with each other + +expecting success of 0000.46 'lazy prereqs do not turn off tracing': + run_sub_test_lib_test lazy-prereq-and-tracing 'lazy prereqs and -x' -v -x <<-\EOF && + test_lazy_prereq LAZY true + + test_expect_success lazy 'test_have_prereq LAZY && echo trace' + + test_done + EOF + + grep 'echo trace' lazy-prereq-and-tracing/err + +++ echo trace +ok 46 - lazy prereqs do not turn off tracing + +expecting success of 0000.47 'tests clean up even on failures': + run_sub_test_lib_test_err failing-cleanup 'Failing tests with cleanup commands' <<-\EOF && + test_expect_success 'tests clean up even after a failure' ' + touch clean-after-failure && + test_when_finished rm clean-after-failure && + (exit 1) + ' + test_expect_success 'failure to clean up causes the test to fail' ' + test_when_finished "(exit 2)" + ' + test_done + EOF + check_sub_test_lib_test failing-cleanup <<-\EOF + > not ok 1 - tests clean up even after a failure + > # Z + > # touch clean-after-failure && + > # test_when_finished rm clean-after-failure && + > # (exit 1) + > # Z + > not ok 2 - failure to clean up causes the test to fail + > # Z + > # test_when_finished "(exit 2)" + > # Z + > # failed 2 among 2 test(s) + > 1..2 + EOF + +ok 47 - tests clean up even on failures + +expecting success of 0000.48 'test_atexit is run': + run_sub_test_lib_test_err atexit-cleanup 'Run atexit commands' -i <<-\EOF && + test_expect_success 'tests clean up even after a failure' ' + > ../../clean-atexit && + test_atexit rm ../../clean-atexit && + > ../../also-clean-atexit && + test_atexit rm ../../also-clean-atexit && + > ../../dont-clean-atexit && + (exit 1) + ' + test_done + EOF + test_path_is_file dont-clean-atexit && + test_path_is_missing clean-atexit && + test_path_is_missing also-clean-atexit + +ok 48 - test_atexit is run + +expecting success of 0000.49 'test_oid provides sane info by default': + test_oid zero >actual && + grep "^00*\$" actual && + rawsz="$(test_oid rawsz)" && + hexsz="$(test_oid hexsz)" && + test "$hexsz" -eq $(wc -c actual && + grep "^00*\$" actual && + rawsz="$(test_oid rawsz)" && + hexsz="$(test_oid hexsz)" && + test $(wc -c actual && + grep "^00*\$" actual && + rawsz="$(test_oid rawsz)" && + hexsz="$(test_oid hexsz)" && + test $(wc -c err && + grep "error: test_bool_env requires bool values" err && + + envvar=true && + ! ( test_bool_env envvar invalid ) 7>err && + grep "error: test_bool_env requires bool values" err + ) + +fatal: bad numeric config value 'invalid' for 'envvar': invalid unit +error: test_bool_env requires bool values both for $envvar and for the default fallback +error: option `--default' expects a boolean value with `--type=bool`, not `invalid` +usage: git env--helper --type=[bool|ulong] + + --type value is given this type + --default default for git_env_*(...) to fall back on + --exit-code be quiet only use git_env_*() value as exit code + +error: test_bool_env requires bool values both for $envvar and for the default fallback +ok 53 - test_bool_env + +expecting success of 0000.54 'git update-index without --add should fail adding': + test_must_fail git update-index should-be-empty + +error: should-be-empty: cannot add to the index - missing --add option? +fatal: Unable to process path should-be-empty +ok 54 - git update-index without --add should fail adding + +expecting success of 0000.55 'git update-index with --add should succeed': + git update-index --add should-be-empty + +ok 55 - git update-index with --add should succeed + +expecting success of 0000.56 'writing tree out with git write-tree': + tree=$(git write-tree) + +ok 56 - writing tree out with git write-tree + +expecting success of 0000.57 'validate object ID of a known tree': + test "$tree" = "$(test_oid simpletree)" + +ok 57 - validate object ID of a known tree + +expecting success of 0000.58 'git update-index without --remove should fail removing': + rm -f should-be-empty full-of-directories && + test_must_fail git update-index should-be-empty + +error: should-be-empty: does not exist and --remove not passed +fatal: Unable to process path should-be-empty +ok 58 - git update-index without --remove should fail removing + +expecting success of 0000.59 'git update-index with --remove should be able to remove': + git update-index --remove should-be-empty + +ok 59 - git update-index with --remove should be able to remove + +expecting success of 0000.60 'git write-tree should be able to write an empty tree': + tree=$(git write-tree) + +ok 60 - git write-tree should be able to write an empty tree + +expecting success of 0000.61 'validate object ID of a known tree': + test "$tree" = $EMPTY_TREE + +ok 61 - validate object ID of a known tree + +expecting success of 0000.62 'adding various types of objects with git update-index --add': + mkdir path2 path3 path3/subp3 && + paths="path0 path2/file2 path3/file3 path3/subp3/file3" && + ( + for p in $paths + do + echo "hello $p" >$p || exit 1 + test_ln_s_add "hello $p" ${p}sym || exit 1 + done + ) && + find path* ! -type d -print | xargs git update-index --add + +checking prerequisite: SYMLINKS + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && + # test whether the filesystem supports symbolic links + ln -s x y && test -h y + +) +prerequisite SYMLINKS ok +ok 62 - adding various types of objects with git update-index --add + +expecting success of 0000.63 'showing stage with git ls-files --stage': + git ls-files --stage >current + +ok 63 - showing stage with git ls-files --stage + +expecting success of 0000.64 'validate git ls-files output for a known tree': + cat >expected <<-EOF && + 100644 $(test_oid path0f) 0 path0 + 120000 $(test_oid path0s) 0 path0sym + 100644 $(test_oid path2f) 0 path2/file2 + 120000 $(test_oid path2s) 0 path2/file2sym + 100644 $(test_oid path3f) 0 path3/file3 + 120000 $(test_oid path3s) 0 path3/file3sym + 100644 $(test_oid subp3f) 0 path3/subp3/file3 + 120000 $(test_oid subp3s) 0 path3/subp3/file3sym + EOF + test_cmp expected current + +ok 64 - validate git ls-files output for a known tree + +expecting success of 0000.65 'writing tree out with git write-tree': + tree=$(git write-tree) + +ok 65 - writing tree out with git write-tree + +expecting success of 0000.66 'validate object ID for a known tree': + test "$tree" = "$(test_oid root)" + +ok 66 - validate object ID for a known tree + +expecting success of 0000.67 'showing tree with git ls-tree': + git ls-tree $tree >current + +ok 67 - showing tree with git ls-tree + +expecting success of 0000.68 'git ls-tree output for a known tree': + cat >expected <<-EOF && + 100644 blob $(test_oid path0f) path0 + 120000 blob $(test_oid path0s) path0sym + 040000 tree $(test_oid path2d) path2 + 040000 tree $(test_oid path3d) path3 + EOF + test_cmp expected current + +ok 68 - git ls-tree output for a known tree + +expecting success of 0000.69 'showing tree with git ls-tree -r': + git ls-tree -r $tree >current + +ok 69 - showing tree with git ls-tree -r + +expecting success of 0000.70 'git ls-tree -r output for a known tree': + cat >expected <<-EOF && + 100644 blob $(test_oid path0f) path0 + 120000 blob $(test_oid path0s) path0sym + 100644 blob $(test_oid path2f) path2/file2 + 120000 blob $(test_oid path2s) path2/file2sym + 100644 blob $(test_oid path3f) path3/file3 + 120000 blob $(test_oid path3s) path3/file3sym + 100644 blob $(test_oid subp3f) path3/subp3/file3 + 120000 blob $(test_oid subp3s) path3/subp3/file3sym + EOF + test_cmp expected current + +ok 70 - git ls-tree -r output for a known tree + +expecting success of 0000.71 'showing tree with git ls-tree -r -t': + git ls-tree -r -t $tree >current + +ok 71 - showing tree with git ls-tree -r -t + +expecting success of 0000.72 'git ls-tree -r output for a known tree': + cat >expected <<-EOF && + 100644 blob $(test_oid path0f) path0 + 120000 blob $(test_oid path0s) path0sym + 040000 tree $(test_oid path2d) path2 + 100644 blob $(test_oid path2f) path2/file2 + 120000 blob $(test_oid path2s) path2/file2sym + 040000 tree $(test_oid path3d) path3 + 100644 blob $(test_oid path3f) path3/file3 + 120000 blob $(test_oid path3s) path3/file3sym + 040000 tree $(test_oid subp3d) path3/subp3 + 100644 blob $(test_oid subp3f) path3/subp3/file3 + 120000 blob $(test_oid subp3s) path3/subp3/file3sym + EOF + test_cmp expected current + +ok 72 - git ls-tree -r output for a known tree + +expecting success of 0000.73 'writing partial tree out with git write-tree --prefix': + ptree=$(git write-tree --prefix=path3) + +ok 73 - writing partial tree out with git write-tree --prefix + +expecting success of 0000.74 'validate object ID for a known tree': + test "$ptree" = $(test_oid path3d) + +ok 74 - validate object ID for a known tree + +expecting success of 0000.75 'writing partial tree out with git write-tree --prefix': + ptree=$(git write-tree --prefix=path3/subp3) + +ok 75 - writing partial tree out with git write-tree --prefix + +expecting success of 0000.76 'validate object ID for a known tree': + test "$ptree" = $(test_oid subp3d) + +ok 76 - validate object ID for a known tree + +expecting success of 0000.77 'put invalid objects into the index': + rm -f .git/index && + suffix=$(echo $ZERO_OID | sed -e "s/^.//") && + cat >badobjects <<-EOF && + 100644 blob $(test_oid 001) dir/file1 + 100644 blob $(test_oid 002) dir/file2 + 100644 blob $(test_oid 003) dir/file3 + 100644 blob $(test_oid 004) dir/file4 + 100644 blob $(test_oid 005) dir/file5 + EOF + git update-index --index-info expected <current && + test_cmp expected current + +ok 81 - validate git diff-files output for a know cache/work tree state + +expecting success of 0000.82 'git update-index --refresh should succeed': + git update-index --refresh + +ok 82 - git update-index --refresh should succeed + +expecting success of 0000.83 'no diff after checkout and git update-index --refresh': + git diff-files >current && + cmp -s current /dev/null + +ok 83 - no diff after checkout and git update-index --refresh + +expecting success of 0000.84 'git commit-tree records the correct tree in a commit': + commit0=$(echo NO | git commit-tree $P) && + tree=$(git show --pretty=raw $commit0 | + sed -n -e "s/^tree //p" -e "/^author /q") && + test "z$tree" = "z$P" + +ok 84 - git commit-tree records the correct tree in a commit + +expecting success of 0000.85 'git commit-tree records the correct parent in a commit': + commit1=$(echo NO | git commit-tree $P -p $commit0) && + parent=$(git show --pretty=raw $commit1 | + sed -n -e "s/^parent //p" -e "/^author /q") && + test "z$commit0" = "z$parent" + +ok 85 - git commit-tree records the correct parent in a commit + +expecting success of 0000.86 'git commit-tree omits duplicated parent in a commit': + commit2=$(echo NO | git commit-tree $P -p $commit0 -p $commit0) && + parent=$(git show --pretty=raw $commit2 | + sed -n -e "s/^parent //p" -e "/^author /q" | + sort -u) && + test "z$commit0" = "z$parent" && + numparent=$(git show --pretty=raw $commit2 | + sed -n -e "s/^parent //p" -e "/^author /q" | + wc -l) && + test $numparent = 1 + +error: duplicate parent d664f4b2f72710b8e019acf96c4773c8ac3993b8 ignored +ok 86 - git commit-tree omits duplicated parent in a commit + +expecting success of 0000.87 'update-index D/F conflict': + mv path0 tmp && + mv path2 path0 && + mv tmp path2 && + git update-index --add --replace path2 path0/file2 && + numpath0=$(git ls-files path0 | wc -l) && + test $numpath0 = 1 + +ok 87 - update-index D/F conflict + +expecting success of 0000.88 'very long name in the index handled sanely': + + a=a && # 1 + a=$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a && # 16 + a=$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a && # 256 + a=$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a && # 4096 + a=${a}q && + + >path4 && + git update-index --add path4 && + ( + git ls-files -s path4 | + sed -e "s/ .*/ /" | + tr -d "\012" && + echo "$a" + ) | git update-index --index-info && + len=$(git ls-files "a*" | wc -c) && + test $len = 4098 + +ok 88 - very long name in the index handled sanely + +expecting success of 0000.89 'test_must_fail on a failing git command': + test_must_fail git notacommand + +git: 'notacommand' is not a git command. See 'git --help'. +ok 89 - test_must_fail on a failing git command + +expecting success of 0000.90 'test_must_fail on a failing git command with env': + test_must_fail env var1=a var2=b git notacommand + +git: 'notacommand' is not a git command. See 'git --help'. +ok 90 - test_must_fail on a failing git command with env + +expecting success of 0000.91 'test_must_fail rejects a non-git command': + ! test_must_fail grep ^$ notafile 2>err && + grep -F "test_must_fail: only 'git' is allowed" err + +test_must_fail: only 'git' is allowed: grep ^$ notafile +ok 91 - test_must_fail rejects a non-git command + +expecting success of 0000.92 'test_must_fail rejects a non-git command with env': + ! test_must_fail env var1=a var2=b grep ^$ notafile 2>err && + grep -F "test_must_fail: only 'git' is allowed" err + +test_must_fail: only 'git' is allowed: env var1=a var2=b grep ^$ notafile +ok 92 - test_must_fail rejects a non-git command with env + +# passed all 92 test(s) +1..92 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t0028-working-tree-encoding.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0028-working-tree-encoding/.git/ +expecting success of 0028.1 'setup test files': + git config core.eol lf && + + text="hallo there!\ncan you read me?" && + echo "*.utf16 text working-tree-encoding=utf-16" >.gitattributes && + echo "*.utf16lebom text working-tree-encoding=UTF-16LE-BOM" >>.gitattributes && + printf "$text" >test.utf8.raw && + printf "$text" | write_utf16 >test.utf16.raw && + printf "$text" | write_utf32 >test.utf32.raw && + printf "\377\376" >test.utf16lebom.raw && + printf "$text" | iconv -f UTF-8 -t UTF-16LE >>test.utf16lebom.raw && + + # Line ending tests + printf "one\ntwo\nthree\n" >lf.utf8.raw && + printf "one\r\ntwo\r\nthree\r\n" >crlf.utf8.raw && + + # BOM tests + printf "\0a\0b\0c" >nobom.utf16be.raw && + printf "a\0b\0c\0" >nobom.utf16le.raw && + printf "\376\377\0a\0b\0c" >bebom.utf16be.raw && + printf "\377\376a\0b\0c\0" >lebom.utf16le.raw && + printf "\0\0\0a\0\0\0b\0\0\0c" >nobom.utf32be.raw && + printf "a\0\0\0b\0\0\0c\0\0\0" >nobom.utf32le.raw && + printf "\0\0\376\377\0\0\0a\0\0\0b\0\0\0c" >bebom.utf32be.raw && + printf "\377\376\0\0a\0\0\0b\0\0\0c\0\0\0" >lebom.utf32le.raw && + + # Add only UTF-16 file, we will add the UTF-32 file later + cp test.utf16.raw test.utf16 && + cp test.utf32.raw test.utf32 && + cp test.utf16lebom.raw test.utf16lebom && + git add .gitattributes test.utf16 test.utf16lebom && + git commit -m initial + +checking prerequisite: NO_UTF16_BOM + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-NO_UTF16_BOM" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-NO_UTF16_BOM" && + test $(printf abc | iconv -f UTF-8 -t UTF-16 | wc -c) = 6 + +) +prerequisite NO_UTF16_BOM not satisfied +checking prerequisite: NO_UTF32_BOM + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-NO_UTF32_BOM" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-NO_UTF32_BOM" && + test $(printf abc | iconv -f UTF-8 -t UTF-32 | wc -c) = 12 + +) +prerequisite NO_UTF32_BOM not satisfied +source (test.utf16, considered utf-16): +|  0: ff   |  1: fe   |  2: 68 h |  3: 0   |  4: 61 a |  5: 0   |  6: 6c l |  7: 0   +|  8: 6c l |  9: 0   | 10: 6f o | 11: 0   | 12: 20   | 13: 0   | 14: 74 t | 15: 0   +| 16: 68 h | 17: 0   | 18: 65 e | 19: 0   | 20: 72 r | 21: 0   | 22: 65 e | 23: 0   +| 24: 21 ! | 25: 0   | 26: a   | 27: 0   | 28: 63 c | 29: 0   | 30: 61 a | 31: 0   +| 32: 6e n | 33: 0   | 34: 20   | 35: 0   | 36: 79 y | 37: 0   | 38: 6f o | 39: 0   +| 40: 75 u | 41: 0   | 42: 20   | 43: 0   | 44: 72 r | 45: 0   | 46: 65 e | 47: 0   +| 48: 61 a | 49: 0   | 50: 64 d | 51: 0   | 52: 20   | 53: 0   | 54: 6d m | 55: 0   +| 56: 65 e | 57: 0   | 58: 3f ? | 59: 0   + +destination (test.utf16, considered UTF-8): +|  0: 68 h |  1: 61 a |  2: 6c l |  3: 6c l |  4: 6f o |  5: 20   |  6: 74 t |  7: 68 h +|  8: 65 e |  9: 72 r | 10: 65 e | 11: 21 ! | 12: a   | 13: 63 c | 14: 61 a | 15: 6e n +| 16: 20   | 17: 79 y | 18: 6f o | 19: 75 u | 20: 20   | 21: 72 r | 22: 65 e | 23: 61 a +| 24: 64 d | 25: 20   | 26: 6d m | 27: 65 e | 28: 3f ? + +source (test.utf16lebom, considered UTF-16LE-BOM): +|  0: ff   |  1: fe   |  2: 68 h |  3: 0   |  4: 61 a |  5: 0   |  6: 6c l |  7: 0   +|  8: 6c l |  9: 0   | 10: 6f o | 11: 0   | 12: 20   | 13: 0   | 14: 74 t | 15: 0   +| 16: 68 h | 17: 0   | 18: 65 e | 19: 0   | 20: 72 r | 21: 0   | 22: 65 e | 23: 0   +| 24: 21 ! | 25: 0   | 26: a   | 27: 0   | 28: 63 c | 29: 0   | 30: 61 a | 31: 0   +| 32: 6e n | 33: 0   | 34: 20   | 35: 0   | 36: 79 y | 37: 0   | 38: 6f o | 39: 0   +| 40: 75 u | 41: 0   | 42: 20   | 43: 0   | 44: 72 r | 45: 0   | 46: 65 e | 47: 0   +| 48: 61 a | 49: 0   | 50: 64 d | 51: 0   | 52: 20   | 53: 0   | 54: 6d m | 55: 0   +| 56: 65 e | 57: 0   | 58: 3f ? | 59: 0   + +destination (test.utf16lebom, considered UTF-8): +|  0: 68 h |  1: 61 a |  2: 6c l |  3: 6c l |  4: 6f o |  5: 20   |  6: 74 t |  7: 68 h +|  8: 65 e |  9: 72 r | 10: 65 e | 11: 21 ! | 12: a   | 13: 63 c | 14: 61 a | 15: 6e n +| 16: 20   | 17: 79 y | 18: 6f o | 19: 75 u | 20: 20   | 21: 72 r | 22: 65 e | 23: 61 a +| 24: 64 d | 25: 20   | 26: 6d m | 27: 65 e | 28: 3f ? + +source (test.utf16, considered utf-16): +|  0: ff   |  1: fe   |  2: 68 h |  3: 0   |  4: 61 a |  5: 0   |  6: 6c l |  7: 0   +|  8: 6c l |  9: 0   | 10: 6f o | 11: 0   | 12: 20   | 13: 0   | 14: 74 t | 15: 0   +| 16: 68 h | 17: 0   | 18: 65 e | 19: 0   | 20: 72 r | 21: 0   | 22: 65 e | 23: 0   +| 24: 21 ! | 25: 0   | 26: a   | 27: 0   | 28: 63 c | 29: 0   | 30: 61 a | 31: 0   +| 32: 6e n | 33: 0   | 34: 20   | 35: 0   | 36: 79 y | 37: 0   | 38: 6f o | 39: 0   +| 40: 75 u | 41: 0   | 42: 20   | 43: 0   | 44: 72 r | 45: 0   | 46: 65 e | 47: 0   +| 48: 61 a | 49: 0   | 50: 64 d | 51: 0   | 52: 20   | 53: 0   | 54: 6d m | 55: 0   +| 56: 65 e | 57: 0   | 58: 3f ? | 59: 0   + +destination (test.utf16, considered UTF-8): +|  0: 68 h |  1: 61 a |  2: 6c l |  3: 6c l |  4: 6f o |  5: 20   |  6: 74 t |  7: 68 h +|  8: 65 e |  9: 72 r | 10: 65 e | 11: 21 ! | 12: a   | 13: 63 c | 14: 61 a | 15: 6e n +| 16: 20   | 17: 79 y | 18: 6f o | 19: 75 u | 20: 20   | 21: 72 r | 22: 65 e | 23: 61 a +| 24: 64 d | 25: 20   | 26: 6d m | 27: 65 e | 28: 3f ? + +source (test.utf16lebom, considered UTF-16LE-BOM): +|  0: ff   |  1: fe   |  2: 68 h |  3: 0   |  4: 61 a |  5: 0   |  6: 6c l |  7: 0   +|  8: 6c l |  9: 0   | 10: 6f o | 11: 0   | 12: 20   | 13: 0   | 14: 74 t | 15: 0   +| 16: 68 h | 17: 0   | 18: 65 e | 19: 0   | 20: 72 r | 21: 0   | 22: 65 e | 23: 0   +| 24: 21 ! | 25: 0   | 26: a   | 27: 0   | 28: 63 c | 29: 0   | 30: 61 a | 31: 0   +| 32: 6e n | 33: 0   | 34: 20   | 35: 0   | 36: 79 y | 37: 0   | 38: 6f o | 39: 0   +| 40: 75 u | 41: 0   | 42: 20   | 43: 0   | 44: 72 r | 45: 0   | 46: 65 e | 47: 0   +| 48: 61 a | 49: 0   | 50: 64 d | 51: 0   | 52: 20   | 53: 0   | 54: 6d m | 55: 0   +| 56: 65 e | 57: 0   | 58: 3f ? | 59: 0   + +destination (test.utf16lebom, considered UTF-8): +|  0: 68 h |  1: 61 a |  2: 6c l |  3: 6c l |  4: 6f o |  5: 20   |  6: 74 t |  7: 68 h +|  8: 65 e |  9: 72 r | 10: 65 e | 11: 21 ! | 12: a   | 13: 63 c | 14: 61 a | 15: 6e n +| 16: 20   | 17: 79 y | 18: 6f o | 19: 75 u | 20: 20   | 21: 72 r | 22: 65 e | 23: 61 a +| 24: 64 d | 25: 20   | 26: 6d m | 27: 65 e | 28: 3f ? + +[master (root-commit) dfb2bb8] initial + Author: A U Thor + 3 files changed, 6 insertions(+) + create mode 100644 .gitattributes + create mode 100644 test.utf16 + create mode 100644 test.utf16lebom +ok 1 - setup test files + +expecting success of 0028.2 'ensure UTF-8 is stored in Git': + test_when_finished "rm -f test.utf16.git" && + + git cat-file -p :test.utf16 >test.utf16.git && + test_cmp_bin test.utf8.raw test.utf16.git + +ok 2 - ensure UTF-8 is stored in Git + +expecting success of 0028.3 're-encode to UTF-16 on checkout': + test_when_finished "rm -f test.utf16.raw" && + + rm test.utf16 && + git checkout test.utf16 && + test_cmp_bin test.utf16.raw test.utf16 + +Updated 1 path from the index +source (test.utf16lebom, considered UTF-16LE-BOM): +|  0: ff   |  1: fe   |  2: 68 h |  3: 0   |  4: 61 a |  5: 0   |  6: 6c l |  7: 0   +|  8: 6c l |  9: 0   | 10: 6f o | 11: 0   | 12: 20   | 13: 0   | 14: 74 t | 15: 0   +| 16: 68 h | 17: 0   | 18: 65 e | 19: 0   | 20: 72 r | 21: 0   | 22: 65 e | 23: 0   +| 24: 21 ! | 25: 0   | 26: a   | 27: 0   | 28: 63 c | 29: 0   | 30: 61 a | 31: 0   +| 32: 6e n | 33: 0   | 34: 20   | 35: 0   | 36: 79 y | 37: 0   | 38: 6f o | 39: 0   +| 40: 75 u | 41: 0   | 42: 20   | 43: 0   | 44: 72 r | 45: 0   | 46: 65 e | 47: 0   +| 48: 61 a | 49: 0   | 50: 64 d | 51: 0   | 52: 20   | 53: 0   | 54: 6d m | 55: 0   +| 56: 65 e | 57: 0   | 58: 3f ? | 59: 0   + +destination (test.utf16lebom, considered UTF-8): +|  0: 68 h |  1: 61 a |  2: 6c l |  3: 6c l |  4: 6f o |  5: 20   |  6: 74 t |  7: 68 h +|  8: 65 e |  9: 72 r | 10: 65 e | 11: 21 ! | 12: a   | 13: 63 c | 14: 61 a | 15: 6e n +| 16: 20   | 17: 79 y | 18: 6f o | 19: 75 u | 20: 20   | 21: 72 r | 22: 65 e | 23: 61 a +| 24: 64 d | 25: 20   | 26: 6d m | 27: 65 e | 28: 3f ? + +ok 3 - re-encode to UTF-16 on checkout + +expecting success of 0028.4 're-encode to UTF-16-LE-BOM on checkout': + rm test.utf16lebom && + git checkout test.utf16lebom && + test_cmp_bin test.utf16lebom.raw test.utf16lebom + +Updated 1 path from the index +source (test.utf16, considered utf-16): +|  0: ff   |  1: fe   |  2: 68 h |  3: 0   |  4: 61 a |  5: 0   |  6: 6c l |  7: 0   +|  8: 6c l |  9: 0   | 10: 6f o | 11: 0   | 12: 20   | 13: 0   | 14: 74 t | 15: 0   +| 16: 68 h | 17: 0   | 18: 65 e | 19: 0   | 20: 72 r | 21: 0   | 22: 65 e | 23: 0   +| 24: 21 ! | 25: 0   | 26: a   | 27: 0   | 28: 63 c | 29: 0   | 30: 61 a | 31: 0   +| 32: 6e n | 33: 0   | 34: 20   | 35: 0   | 36: 79 y | 37: 0   | 38: 6f o | 39: 0   +| 40: 75 u | 41: 0   | 42: 20   | 43: 0   | 44: 72 r | 45: 0   | 46: 65 e | 47: 0   +| 48: 61 a | 49: 0   | 50: 64 d | 51: 0   | 52: 20   | 53: 0   | 54: 6d m | 55: 0   +| 56: 65 e | 57: 0   | 58: 3f ? | 59: 0   + +destination (test.utf16, considered UTF-8): +|  0: 68 h |  1: 61 a |  2: 6c l |  3: 6c l |  4: 6f o |  5: 20   |  6: 74 t |  7: 68 h +|  8: 65 e |  9: 72 r | 10: 65 e | 11: 21 ! | 12: a   | 13: 63 c | 14: 61 a | 15: 6e n +| 16: 20   | 17: 79 y | 18: 6f o | 19: 75 u | 20: 20   | 21: 72 r | 22: 65 e | 23: 61 a +| 24: 64 d | 25: 20   | 26: 6d m | 27: 65 e | 28: 3f ? + +ok 4 - re-encode to UTF-16-LE-BOM on checkout + +expecting success of 0028.5 'check $GIT_DIR/info/attributes support': + test_when_finished "rm -f test.utf32.git" && + test_when_finished "git reset --hard HEAD" && + + echo "*.utf32 text working-tree-encoding=utf-32" >.git/info/attributes && + git add test.utf32 && + + git cat-file -p :test.utf32 >test.utf32.git && + test_cmp_bin test.utf8.raw test.utf32.git + +source (test.utf32, considered utf-32): +|  0: ff   |  1: fe   |  2: 0   |  3: 0   |  4: 68 h |  5: 0   |  6: 0   |  7: 0   +|  8: 61 a |  9: 0   | 10: 0   | 11: 0   | 12: 6c l | 13: 0   | 14: 0   | 15: 0   +| 16: 6c l | 17: 0   | 18: 0   | 19: 0   | 20: 6f o | 21: 0   | 22: 0   | 23: 0   +| 24: 20   | 25: 0   | 26: 0   | 27: 0   | 28: 74 t | 29: 0   | 30: 0   | 31: 0   +| 32: 68 h | 33: 0   | 34: 0   | 35: 0   | 36: 65 e | 37: 0   | 38: 0   | 39: 0   +| 40: 72 r | 41: 0   | 42: 0   | 43: 0   | 44: 65 e | 45: 0   | 46: 0   | 47: 0   +| 48: 21 ! | 49: 0   | 50: 0   | 51: 0   | 52: a   | 53: 0   | 54: 0   | 55: 0   +| 56: 63 c | 57: 0   | 58: 0   | 59: 0   | 60: 61 a | 61: 0   | 62: 0   | 63: 0   +| 64: 6e n | 65: 0   | 66: 0   | 67: 0   | 68: 20   | 69: 0   | 70: 0   | 71: 0   +| 72: 79 y | 73: 0   | 74: 0   | 75: 0   | 76: 6f o | 77: 0   | 78: 0   | 79: 0   +| 80: 75 u | 81: 0   | 82: 0   | 83: 0   | 84: 20   | 85: 0   | 86: 0   | 87: 0   +| 88: 72 r | 89: 0   | 90: 0   | 91: 0   | 92: 65 e | 93: 0   | 94: 0   | 95: 0   +| 96: 61 a | 97: 0   | 98: 0   | 99: 0   | 100: 64 d | 101: 0   | 102: 0   | 103: 0   +| 104: 20   | 105: 0   | 106: 0   | 107: 0   | 108: 6d m | 109: 0   | 110: 0   | 111: 0   +| 112: 65 e | 113: 0   | 114: 0   | 115: 0   | 116: 3f ? | 117: 0   | 118: 0   | 119: 0   + +destination (test.utf32, considered UTF-8): +|  0: 68 h |  1: 61 a |  2: 6c l |  3: 6c l |  4: 6f o |  5: 20   |  6: 74 t |  7: 68 h +|  8: 65 e |  9: 72 r | 10: 65 e | 11: 21 ! | 12: a   | 13: 63 c | 14: 61 a | 15: 6e n +| 16: 20   | 17: 79 y | 18: 6f o | 19: 75 u | 20: 20   | 21: 72 r | 22: 65 e | 23: 61 a +| 24: 64 d | 25: 20   | 26: 6d m | 27: 65 e | 28: 3f ? + +source (test.utf16, considered utf-16): +|  0: ff   |  1: fe   |  2: 68 h |  3: 0   |  4: 61 a |  5: 0   |  6: 6c l |  7: 0   +|  8: 6c l |  9: 0   | 10: 6f o | 11: 0   | 12: 20   | 13: 0   | 14: 74 t | 15: 0   +| 16: 68 h | 17: 0   | 18: 65 e | 19: 0   | 20: 72 r | 21: 0   | 22: 65 e | 23: 0   +| 24: 21 ! | 25: 0   | 26: a   | 27: 0   | 28: 63 c | 29: 0   | 30: 61 a | 31: 0   +| 32: 6e n | 33: 0   | 34: 20   | 35: 0   | 36: 79 y | 37: 0   | 38: 6f o | 39: 0   +| 40: 75 u | 41: 0   | 42: 20   | 43: 0   | 44: 72 r | 45: 0   | 46: 65 e | 47: 0   +| 48: 61 a | 49: 0   | 50: 64 d | 51: 0   | 52: 20   | 53: 0   | 54: 6d m | 55: 0   +| 56: 65 e | 57: 0   | 58: 3f ? | 59: 0   + +destination (test.utf16, considered UTF-8): +|  0: 68 h |  1: 61 a |  2: 6c l |  3: 6c l |  4: 6f o |  5: 20   |  6: 74 t |  7: 68 h +|  8: 65 e |  9: 72 r | 10: 65 e | 11: 21 ! | 12: a   | 13: 63 c | 14: 61 a | 15: 6e n +| 16: 20   | 17: 79 y | 18: 6f o | 19: 75 u | 20: 20   | 21: 72 r | 22: 65 e | 23: 61 a +| 24: 64 d | 25: 20   | 26: 6d m | 27: 65 e | 28: 3f ? + +source (test.utf16lebom, considered UTF-16LE-BOM): +|  0: ff   |  1: fe   |  2: 68 h |  3: 0   |  4: 61 a |  5: 0   |  6: 6c l |  7: 0   +|  8: 6c l |  9: 0   | 10: 6f o | 11: 0   | 12: 20   | 13: 0   | 14: 74 t | 15: 0   +| 16: 68 h | 17: 0   | 18: 65 e | 19: 0   | 20: 72 r | 21: 0   | 22: 65 e | 23: 0   +| 24: 21 ! | 25: 0   | 26: a   | 27: 0   | 28: 63 c | 29: 0   | 30: 61 a | 31: 0   +| 32: 6e n | 33: 0   | 34: 20   | 35: 0   | 36: 79 y | 37: 0   | 38: 6f o | 39: 0   +| 40: 75 u | 41: 0   | 42: 20   | 43: 0   | 44: 72 r | 45: 0   | 46: 65 e | 47: 0   +| 48: 61 a | 49: 0   | 50: 64 d | 51: 0   | 52: 20   | 53: 0   | 54: 6d m | 55: 0   +| 56: 65 e | 57: 0   | 58: 3f ? | 59: 0   + +destination (test.utf16lebom, considered UTF-8): +|  0: 68 h |  1: 61 a |  2: 6c l |  3: 6c l |  4: 6f o |  5: 20   |  6: 74 t |  7: 68 h +|  8: 65 e |  9: 72 r | 10: 65 e | 11: 21 ! | 12: a   | 13: 63 c | 14: 61 a | 15: 6e n +| 16: 20   | 17: 79 y | 18: 6f o | 19: 75 u | 20: 20   | 21: 72 r | 22: 65 e | 23: 61 a +| 24: 64 d | 25: 20   | 26: 6d m | 27: 65 e | 28: 3f ? + +source (test.utf16, considered utf-16): +|  0: ff   |  1: fe   |  2: 68 h |  3: 0   |  4: 61 a |  5: 0   |  6: 6c l |  7: 0   +|  8: 6c l |  9: 0   | 10: 6f o | 11: 0   | 12: 20   | 13: 0   | 14: 74 t | 15: 0   +| 16: 68 h | 17: 0   | 18: 65 e | 19: 0   | 20: 72 r | 21: 0   | 22: 65 e | 23: 0   +| 24: 21 ! | 25: 0   | 26: a   | 27: 0   | 28: 63 c | 29: 0   | 30: 61 a | 31: 0   +| 32: 6e n | 33: 0   | 34: 20   | 35: 0   | 36: 79 y | 37: 0   | 38: 6f o | 39: 0   +| 40: 75 u | 41: 0   | 42: 20   | 43: 0   | 44: 72 r | 45: 0   | 46: 65 e | 47: 0   +| 48: 61 a | 49: 0   | 50: 64 d | 51: 0   | 52: 20   | 53: 0   | 54: 6d m | 55: 0   +| 56: 65 e | 57: 0   | 58: 3f ? | 59: 0   + +destination (test.utf16, considered UTF-8): +|  0: 68 h |  1: 61 a |  2: 6c l |  3: 6c l |  4: 6f o |  5: 20   |  6: 74 t |  7: 68 h +|  8: 65 e |  9: 72 r | 10: 65 e | 11: 21 ! | 12: a   | 13: 63 c | 14: 61 a | 15: 6e n +| 16: 20   | 17: 79 y | 18: 6f o | 19: 75 u | 20: 20   | 21: 72 r | 22: 65 e | 23: 61 a +| 24: 64 d | 25: 20   | 26: 6d m | 27: 65 e | 28: 3f ? + +source (test.utf16lebom, considered UTF-16LE-BOM): +|  0: ff   |  1: fe   |  2: 68 h |  3: 0   |  4: 61 a |  5: 0   |  6: 6c l |  7: 0   +|  8: 6c l |  9: 0   | 10: 6f o | 11: 0   | 12: 20   | 13: 0   | 14: 74 t | 15: 0   +| 16: 68 h | 17: 0   | 18: 65 e | 19: 0   | 20: 72 r | 21: 0   | 22: 65 e | 23: 0   +| 24: 21 ! | 25: 0   | 26: a   | 27: 0   | 28: 63 c | 29: 0   | 30: 61 a | 31: 0   +| 32: 6e n | 33: 0   | 34: 20   | 35: 0   | 36: 79 y | 37: 0   | 38: 6f o | 39: 0   +| 40: 75 u | 41: 0   | 42: 20   | 43: 0   | 44: 72 r | 45: 0   | 46: 65 e | 47: 0   +| 48: 61 a | 49: 0   | 50: 64 d | 51: 0   | 52: 20   | 53: 0   | 54: 6d m | 55: 0   +| 56: 65 e | 57: 0   | 58: 3f ? | 59: 0   + +destination (test.utf16lebom, considered UTF-8): +|  0: 68 h |  1: 61 a |  2: 6c l |  3: 6c l |  4: 6f o |  5: 20   |  6: 74 t |  7: 68 h +|  8: 65 e |  9: 72 r | 10: 65 e | 11: 21 ! | 12: a   | 13: 63 c | 14: 61 a | 15: 6e n +| 16: 20   | 17: 79 y | 18: 6f o | 19: 75 u | 20: 20   | 21: 72 r | 22: 65 e | 23: 61 a +| 24: 64 d | 25: 20   | 26: 6d m | 27: 65 e | 28: 3f ? + +source (test.utf16, considered utf-16): +|  0: ff   |  1: fe   |  2: 68 h |  3: 0   |  4: 61 a |  5: 0   |  6: 6c l |  7: 0   +|  8: 6c l |  9: 0   | 10: 6f o | 11: 0   | 12: 20   | 13: 0   | 14: 74 t | 15: 0   +| 16: 68 h | 17: 0   | 18: 65 e | 19: 0   | 20: 72 r | 21: 0   | 22: 65 e | 23: 0   +| 24: 21 ! | 25: 0   | 26: a   | 27: 0   | 28: 63 c | 29: 0   | 30: 61 a | 31: 0   +| 32: 6e n | 33: 0   | 34: 20   | 35: 0   | 36: 79 y | 37: 0   | 38: 6f o | 39: 0   +| 40: 75 u | 41: 0   | 42: 20   | 43: 0   | 44: 72 r | 45: 0   | 46: 65 e | 47: 0   +| 48: 61 a | 49: 0   | 50: 64 d | 51: 0   | 52: 20   | 53: 0   | 54: 6d m | 55: 0   +| 56: 65 e | 57: 0   | 58: 3f ? | 59: 0   + +destination (test.utf16, considered UTF-8): +|  0: 68 h |  1: 61 a |  2: 6c l |  3: 6c l |  4: 6f o |  5: 20   |  6: 74 t |  7: 68 h +|  8: 65 e |  9: 72 r | 10: 65 e | 11: 21 ! | 12: a   | 13: 63 c | 14: 61 a | 15: 6e n +| 16: 20   | 17: 79 y | 18: 6f o | 19: 75 u | 20: 20   | 21: 72 r | 22: 65 e | 23: 61 a +| 24: 64 d | 25: 20   | 26: 6d m | 27: 65 e | 28: 3f ? + +source (test.utf16lebom, considered UTF-16LE-BOM): +|  0: ff   |  1: fe   |  2: 68 h |  3: 0   |  4: 61 a |  5: 0   |  6: 6c l |  7: 0   +|  8: 6c l |  9: 0   | 10: 6f o | 11: 0   | 12: 20   | 13: 0   | 14: 74 t | 15: 0   +| 16: 68 h | 17: 0   | 18: 65 e | 19: 0   | 20: 72 r | 21: 0   | 22: 65 e | 23: 0   +| 24: 21 ! | 25: 0   | 26: a   | 27: 0   | 28: 63 c | 29: 0   | 30: 61 a | 31: 0   +| 32: 6e n | 33: 0   | 34: 20   | 35: 0   | 36: 79 y | 37: 0   | 38: 6f o | 39: 0   +| 40: 75 u | 41: 0   | 42: 20   | 43: 0   | 44: 72 r | 45: 0   | 46: 65 e | 47: 0   +| 48: 61 a | 49: 0   | 50: 64 d | 51: 0   | 52: 20   | 53: 0   | 54: 6d m | 55: 0   +| 56: 65 e | 57: 0   | 58: 3f ? | 59: 0   + +destination (test.utf16lebom, considered UTF-8): +|  0: 68 h |  1: 61 a |  2: 6c l |  3: 6c l |  4: 6f o |  5: 20   |  6: 74 t |  7: 68 h +|  8: 65 e |  9: 72 r | 10: 65 e | 11: 21 ! | 12: a   | 13: 63 c | 14: 61 a | 15: 6e n +| 16: 20   | 17: 79 y | 18: 6f o | 19: 75 u | 20: 20   | 21: 72 r | 22: 65 e | 23: 61 a +| 24: 64 d | 25: 20   | 26: 6d m | 27: 65 e | 28: 3f ? + +HEAD is now at dfb2bb8 initial +ok 5 - check $GIT_DIR/info/attributes support + +expecting success of 0028.6 'check prohibited UTF-16 BOM': + test_when_finished "git reset --hard HEAD" && + + echo "*.utf${i}be text working-tree-encoding=utf-${i}be" >>.gitattributes && + echo "*.utf${i}le text working-tree-encoding=utf-${i}LE" >>.gitattributes && + + # Here we add a UTF-16 (resp. UTF-32) files with BOM (big/little-endian) + # but we tell Git to treat it as UTF-16BE/UTF-16LE (resp. UTF-32). + # In these cases the BOM is prohibited. + cp bebom.utf${i}be.raw bebom.utf${i}be && + test_must_fail git add bebom.utf${i}be 2>err.out && + test_i18ngrep "fatal: BOM is prohibited .* utf-${i}be" err.out && + test_i18ngrep "use UTF-${i} as working-tree-encoding" err.out && + + cp lebom.utf${i}le.raw lebom.utf${i}be && + test_must_fail git add lebom.utf${i}be 2>err.out && + test_i18ngrep "fatal: BOM is prohibited .* utf-${i}be" err.out && + test_i18ngrep "use UTF-${i} as working-tree-encoding" err.out && + + cp bebom.utf${i}be.raw bebom.utf${i}le && + test_must_fail git add bebom.utf${i}le 2>err.out && + test_i18ngrep "fatal: BOM is prohibited .* utf-${i}LE" err.out && + test_i18ngrep "use UTF-${i} as working-tree-encoding" err.out && + + cp lebom.utf${i}le.raw lebom.utf${i}le && + test_must_fail git add lebom.utf${i}le 2>err.out && + test_i18ngrep "fatal: BOM is prohibited .* utf-${i}LE" err.out && + test_i18ngrep "use UTF-${i} as working-tree-encoding" err.out + +checking prerequisite: C_LOCALE_OUTPUT + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false + +) +prerequisite C_LOCALE_OUTPUT ok +fatal: BOM is prohibited in 'bebom.utf16be' if encoded as utf-16be +hint: The file 'bebom.utf16be' contains a byte order mark (BOM). Please use UTF-16 as working-tree-encoding. +fatal: BOM is prohibited in 'lebom.utf16be' if encoded as utf-16be +hint: The file 'lebom.utf16be' contains a byte order mark (BOM). Please use UTF-16 as working-tree-encoding. +fatal: BOM is prohibited in 'bebom.utf16le' if encoded as utf-16LE +hint: The file 'bebom.utf16le' contains a byte order mark (BOM). Please use UTF-16 as working-tree-encoding. +fatal: BOM is prohibited in 'lebom.utf16le' if encoded as utf-16LE +hint: The file 'lebom.utf16le' contains a byte order mark (BOM). Please use UTF-16 as working-tree-encoding. +HEAD is now at dfb2bb8 initial +ok 6 - check prohibited UTF-16 BOM + +expecting success of 0028.7 'check required UTF-16 BOM': + test_when_finished "git reset --hard HEAD" && + + echo "*.utf${i} text working-tree-encoding=utf-${i}" >>.gitattributes && + + cp nobom.utf${i}be.raw nobom.utf${i} && + test_must_fail git add nobom.utf${i} 2>err.out && + test_i18ngrep "fatal: BOM is required .* utf-${i}" err.out && + test_i18ngrep "use UTF-${i}BE or UTF-${i}LE" err.out && + + cp nobom.utf${i}le.raw nobom.utf${i} && + test_must_fail git add nobom.utf${i} 2>err.out && + test_i18ngrep "fatal: BOM is required .* utf-${i}" err.out && + test_i18ngrep "use UTF-${i}BE or UTF-${i}LE" err.out + +fatal: BOM is required in 'nobom.utf16' if encoded as utf-16 +hint: The file 'nobom.utf16' is missing a byte order mark (BOM). Please use UTF-16BE or UTF-16LE (depending on the byte order) as working-tree-encoding. +fatal: BOM is required in 'nobom.utf16' if encoded as utf-16 +hint: The file 'nobom.utf16' is missing a byte order mark (BOM). Please use UTF-16BE or UTF-16LE (depending on the byte order) as working-tree-encoding. +HEAD is now at dfb2bb8 initial +ok 7 - check required UTF-16 BOM + +expecting success of 0028.8 'eol conversion for UTF-16 encoded files on checkout': + test_when_finished "rm -f crlf.utf${i}.raw lf.utf${i}.raw" && + test_when_finished "git reset --hard HEAD^" && + + cat lf.utf8.raw | write_utf${i} >lf.utf${i}.raw && + cat crlf.utf8.raw | write_utf${i} >crlf.utf${i}.raw && + cp crlf.utf${i}.raw eol.utf${i} && + + cat >expectIndexLF <<-EOF && + i/lf w/-text attr/text eol.utf${i} + EOF + + git add eol.utf${i} && + git commit -m eol && + + # UTF-${i} with CRLF (Windows line endings) + rm eol.utf${i} && + git -c core.eol=crlf checkout eol.utf${i} && + test_cmp_bin crlf.utf${i}.raw eol.utf${i} && + + # Although the file has CRLF in the working tree, + # ensure LF in the index + git ls-files --eol eol.utf${i} >actual && + test_cmp expectIndexLF actual && + + # UTF-${i} with LF (Unix line endings) + rm eol.utf${i} && + git -c core.eol=lf checkout eol.utf${i} && + test_cmp_bin lf.utf${i}.raw eol.utf${i} && + + # The file LF in the working tree, ensure LF in the index + git ls-files --eol eol.utf${i} >actual && + test_cmp expectIndexLF actual + +checking prerequisite: NO_UTF16_BOM + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-NO_UTF16_BOM" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-NO_UTF16_BOM" && + test $(printf abc | iconv -f UTF-8 -t UTF-16 | wc -c) = 6 + +) +prerequisite NO_UTF16_BOM not satisfied +checking prerequisite: NO_UTF16_BOM + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-NO_UTF16_BOM" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-NO_UTF16_BOM" && + test $(printf abc | iconv -f UTF-8 -t UTF-16 | wc -c) = 6 + +) +prerequisite NO_UTF16_BOM not satisfied +source (eol.utf16, considered utf-16): +|  0: ff   |  1: fe   |  2: 6f o |  3: 0   |  4: 6e n |  5: 0   |  6: 65 e |  7: 0   +|  8: d   |  9: 0   | 10: a   | 11: 0   | 12: 74 t | 13: 0   | 14: 77 w | 15: 0   +| 16: 6f o | 17: 0   | 18: d   | 19: 0   | 20: a   | 21: 0   | 22: 74 t | 23: 0   +| 24: 68 h | 25: 0   | 26: 72 r | 27: 0   | 28: 65 e | 29: 0   | 30: 65 e | 31: 0   +| 32: d   | 33: 0   | 34: a   | 35: 0   + +destination (eol.utf16, considered UTF-8): +|  0: 6f o |  1: 6e n |  2: 65 e |  3: d   |  4: a   |  5: 74 t |  6: 77 w |  7: 6f o +|  8: d   |  9: a   | 10: 74 t | 11: 68 h | 12: 72 r | 13: 65 e | 14: 65 e | 15: d   +| 16: a   + +warning: CRLF will be replaced by LF in eol.utf16. +The file will have its original line endings in your working directory +source (eol.utf16, considered utf-16): +|  0: ff   |  1: fe   |  2: 6f o |  3: 0   |  4: 6e n |  5: 0   |  6: 65 e |  7: 0   +|  8: d   |  9: 0   | 10: a   | 11: 0   | 12: 74 t | 13: 0   | 14: 77 w | 15: 0   +| 16: 6f o | 17: 0   | 18: d   | 19: 0   | 20: a   | 21: 0   | 22: 74 t | 23: 0   +| 24: 68 h | 25: 0   | 26: 72 r | 27: 0   | 28: 65 e | 29: 0   | 30: 65 e | 31: 0   +| 32: d   | 33: 0   | 34: a   | 35: 0   + +destination (eol.utf16, considered UTF-8): +|  0: 6f o |  1: 6e n |  2: 65 e |  3: d   |  4: a   |  5: 74 t |  6: 77 w |  7: 6f o +|  8: d   |  9: a   | 10: 74 t | 11: 68 h | 12: 72 r | 13: 65 e | 14: 65 e | 15: d   +| 16: a   + +[master 85a4f33] eol + Author: A U Thor + 1 file changed, 3 insertions(+) + create mode 100644 eol.utf16 +Updated 1 path from the index +Updated 1 path from the index +HEAD is now at dfb2bb8 initial +ok 8 - eol conversion for UTF-16 encoded files on checkout + +expecting success of 0028.9 'check prohibited UTF-32 BOM': + test_when_finished "git reset --hard HEAD" && + + echo "*.utf${i}be text working-tree-encoding=utf-${i}be" >>.gitattributes && + echo "*.utf${i}le text working-tree-encoding=utf-${i}LE" >>.gitattributes && + + # Here we add a UTF-16 (resp. UTF-32) files with BOM (big/little-endian) + # but we tell Git to treat it as UTF-16BE/UTF-16LE (resp. UTF-32). + # In these cases the BOM is prohibited. + cp bebom.utf${i}be.raw bebom.utf${i}be && + test_must_fail git add bebom.utf${i}be 2>err.out && + test_i18ngrep "fatal: BOM is prohibited .* utf-${i}be" err.out && + test_i18ngrep "use UTF-${i} as working-tree-encoding" err.out && + + cp lebom.utf${i}le.raw lebom.utf${i}be && + test_must_fail git add lebom.utf${i}be 2>err.out && + test_i18ngrep "fatal: BOM is prohibited .* utf-${i}be" err.out && + test_i18ngrep "use UTF-${i} as working-tree-encoding" err.out && + + cp bebom.utf${i}be.raw bebom.utf${i}le && + test_must_fail git add bebom.utf${i}le 2>err.out && + test_i18ngrep "fatal: BOM is prohibited .* utf-${i}LE" err.out && + test_i18ngrep "use UTF-${i} as working-tree-encoding" err.out && + + cp lebom.utf${i}le.raw lebom.utf${i}le && + test_must_fail git add lebom.utf${i}le 2>err.out && + test_i18ngrep "fatal: BOM is prohibited .* utf-${i}LE" err.out && + test_i18ngrep "use UTF-${i} as working-tree-encoding" err.out + +fatal: BOM is prohibited in 'bebom.utf32be' if encoded as utf-32be +hint: The file 'bebom.utf32be' contains a byte order mark (BOM). Please use UTF-32 as working-tree-encoding. +fatal: BOM is prohibited in 'lebom.utf32be' if encoded as utf-32be +hint: The file 'lebom.utf32be' contains a byte order mark (BOM). Please use UTF-32 as working-tree-encoding. +fatal: BOM is prohibited in 'bebom.utf32le' if encoded as utf-32LE +hint: The file 'bebom.utf32le' contains a byte order mark (BOM). Please use UTF-32 as working-tree-encoding. +fatal: BOM is prohibited in 'lebom.utf32le' if encoded as utf-32LE +hint: The file 'lebom.utf32le' contains a byte order mark (BOM). Please use UTF-32 as working-tree-encoding. +HEAD is now at dfb2bb8 initial +ok 9 - check prohibited UTF-32 BOM + +expecting success of 0028.10 'check required UTF-32 BOM': + test_when_finished "git reset --hard HEAD" && + + echo "*.utf${i} text working-tree-encoding=utf-${i}" >>.gitattributes && + + cp nobom.utf${i}be.raw nobom.utf${i} && + test_must_fail git add nobom.utf${i} 2>err.out && + test_i18ngrep "fatal: BOM is required .* utf-${i}" err.out && + test_i18ngrep "use UTF-${i}BE or UTF-${i}LE" err.out && + + cp nobom.utf${i}le.raw nobom.utf${i} && + test_must_fail git add nobom.utf${i} 2>err.out && + test_i18ngrep "fatal: BOM is required .* utf-${i}" err.out && + test_i18ngrep "use UTF-${i}BE or UTF-${i}LE" err.out + +fatal: BOM is required in 'nobom.utf32' if encoded as utf-32 +hint: The file 'nobom.utf32' is missing a byte order mark (BOM). Please use UTF-32BE or UTF-32LE (depending on the byte order) as working-tree-encoding. +fatal: BOM is required in 'nobom.utf32' if encoded as utf-32 +hint: The file 'nobom.utf32' is missing a byte order mark (BOM). Please use UTF-32BE or UTF-32LE (depending on the byte order) as working-tree-encoding. +HEAD is now at dfb2bb8 initial +ok 10 - check required UTF-32 BOM + +expecting success of 0028.11 'eol conversion for UTF-32 encoded files on checkout': + test_when_finished "rm -f crlf.utf${i}.raw lf.utf${i}.raw" && + test_when_finished "git reset --hard HEAD^" && + + cat lf.utf8.raw | write_utf${i} >lf.utf${i}.raw && + cat crlf.utf8.raw | write_utf${i} >crlf.utf${i}.raw && + cp crlf.utf${i}.raw eol.utf${i} && + + cat >expectIndexLF <<-EOF && + i/lf w/-text attr/text eol.utf${i} + EOF + + git add eol.utf${i} && + git commit -m eol && + + # UTF-${i} with CRLF (Windows line endings) + rm eol.utf${i} && + git -c core.eol=crlf checkout eol.utf${i} && + test_cmp_bin crlf.utf${i}.raw eol.utf${i} && + + # Although the file has CRLF in the working tree, + # ensure LF in the index + git ls-files --eol eol.utf${i} >actual && + test_cmp expectIndexLF actual && + + # UTF-${i} with LF (Unix line endings) + rm eol.utf${i} && + git -c core.eol=lf checkout eol.utf${i} && + test_cmp_bin lf.utf${i}.raw eol.utf${i} && + + # The file LF in the working tree, ensure LF in the index + git ls-files --eol eol.utf${i} >actual && + test_cmp expectIndexLF actual + +checking prerequisite: NO_UTF32_BOM + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-NO_UTF32_BOM" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-NO_UTF32_BOM" && + test $(printf abc | iconv -f UTF-8 -t UTF-32 | wc -c) = 12 + +) +prerequisite NO_UTF32_BOM not satisfied +checking prerequisite: NO_UTF32_BOM + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-NO_UTF32_BOM" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-NO_UTF32_BOM" && + test $(printf abc | iconv -f UTF-8 -t UTF-32 | wc -c) = 12 + +) +prerequisite NO_UTF32_BOM not satisfied +source (eol.utf32, considered utf-32): +|  0: ff   |  1: fe   |  2: 0   |  3: 0   |  4: 6f o |  5: 0   |  6: 0   |  7: 0   +|  8: 6e n |  9: 0   | 10: 0   | 11: 0   | 12: 65 e | 13: 0   | 14: 0   | 15: 0   +| 16: d   | 17: 0   | 18: 0   | 19: 0   | 20: a   | 21: 0   | 22: 0   | 23: 0   +| 24: 74 t | 25: 0   | 26: 0   | 27: 0   | 28: 77 w | 29: 0   | 30: 0   | 31: 0   +| 32: 6f o | 33: 0   | 34: 0   | 35: 0   | 36: d   | 37: 0   | 38: 0   | 39: 0   +| 40: a   | 41: 0   | 42: 0   | 43: 0   | 44: 74 t | 45: 0   | 46: 0   | 47: 0   +| 48: 68 h | 49: 0   | 50: 0   | 51: 0   | 52: 72 r | 53: 0   | 54: 0   | 55: 0   +| 56: 65 e | 57: 0   | 58: 0   | 59: 0   | 60: 65 e | 61: 0   | 62: 0   | 63: 0   +| 64: d   | 65: 0   | 66: 0   | 67: 0   | 68: a   | 69: 0   | 70: 0   | 71: 0   + +destination (eol.utf32, considered UTF-8): +|  0: 6f o |  1: 6e n |  2: 65 e |  3: d   |  4: a   |  5: 74 t |  6: 77 w |  7: 6f o +|  8: d   |  9: a   | 10: 74 t | 11: 68 h | 12: 72 r | 13: 65 e | 14: 65 e | 15: d   +| 16: a   + +warning: CRLF will be replaced by LF in eol.utf32. +The file will have its original line endings in your working directory +source (eol.utf32, considered utf-32): +|  0: ff   |  1: fe   |  2: 0   |  3: 0   |  4: 6f o |  5: 0   |  6: 0   |  7: 0   +|  8: 6e n |  9: 0   | 10: 0   | 11: 0   | 12: 65 e | 13: 0   | 14: 0   | 15: 0   +| 16: d   | 17: 0   | 18: 0   | 19: 0   | 20: a   | 21: 0   | 22: 0   | 23: 0   +| 24: 74 t | 25: 0   | 26: 0   | 27: 0   | 28: 77 w | 29: 0   | 30: 0   | 31: 0   +| 32: 6f o | 33: 0   | 34: 0   | 35: 0   | 36: d   | 37: 0   | 38: 0   | 39: 0   +| 40: a   | 41: 0   | 42: 0   | 43: 0   | 44: 74 t | 45: 0   | 46: 0   | 47: 0   +| 48: 68 h | 49: 0   | 50: 0   | 51: 0   | 52: 72 r | 53: 0   | 54: 0   | 55: 0   +| 56: 65 e | 57: 0   | 58: 0   | 59: 0   | 60: 65 e | 61: 0   | 62: 0   | 63: 0   +| 64: d   | 65: 0   | 66: 0   | 67: 0   | 68: a   | 69: 0   | 70: 0   | 71: 0   + +destination (eol.utf32, considered UTF-8): +|  0: 6f o |  1: 6e n |  2: 65 e |  3: d   |  4: a   |  5: 74 t |  6: 77 w |  7: 6f o +|  8: d   |  9: a   | 10: 74 t | 11: 68 h | 12: 72 r | 13: 65 e | 14: 65 e | 15: d   +| 16: a   + +[master 674dc3f] eol + Author: A U Thor + 1 file changed, 3 insertions(+) + create mode 100644 eol.utf32 +Updated 1 path from the index +Updated 1 path from the index +HEAD is now at dfb2bb8 initial +ok 11 - eol conversion for UTF-32 encoded files on checkout + +expecting success of 0028.12 'check unsupported encodings': + test_when_finished "git reset --hard HEAD" && + + echo "*.set text working-tree-encoding" >.gitattributes && + printf "set" >t.set && + test_must_fail git add t.set 2>err.out && + test_i18ngrep "true/false are no valid working-tree-encodings" err.out && + + echo "*.unset text -working-tree-encoding" >.gitattributes && + printf "unset" >t.unset && + git add t.unset && + + echo "*.empty text working-tree-encoding=" >.gitattributes && + printf "empty" >t.empty && + git add t.empty && + + echo "*.garbage text working-tree-encoding=garbage" >.gitattributes && + printf "garbage" >t.garbage && + test_must_fail git add t.garbage 2>err.out && + test_i18ngrep "failed to encode" err.out + +fatal: true/false are no valid working-tree-encodings +fatal: failed to encode 't.garbage' from garbage to UTF-8 +HEAD is now at dfb2bb8 initial +ok 12 - check unsupported encodings + +expecting success of 0028.13 'error if encoding round trip is not the same during refresh': + BEFORE_STATE=$(git rev-parse HEAD) && + test_when_finished "git reset --hard $BEFORE_STATE" && + + # Add and commit a UTF-16 file but skip the "working-tree-encoding" + # filter. Consequently, the in-repo representation is UTF-16 and not + # UTF-8. This simulates a Git version that has no working tree encoding + # support. + echo "*.utf16le text working-tree-encoding=utf-16le" >.gitattributes && + echo "hallo" >nonsense.utf16le && + TEST_HASH=$(git hash-object --no-filters -w nonsense.utf16le) && + git update-index --add --cacheinfo 100644 $TEST_HASH nonsense.utf16le && + COMMIT=$(git commit-tree -p $(git rev-parse HEAD) -m "plain commit" $(git write-tree)) && + git update-ref refs/heads/master $COMMIT && + + test_must_fail git checkout HEAD^ 2>err.out && + test_i18ngrep "error: .* overwritten by checkout:" err.out + +error: Your local changes to the following files would be overwritten by checkout: +HEAD is now at dfb2bb8 initial +ok 13 - error if encoding round trip is not the same during refresh + +expecting success of 0028.14 'error if encoding garbage is already in Git': + BEFORE_STATE=$(git rev-parse HEAD) && + test_when_finished "git reset --hard $BEFORE_STATE" && + + # Skip the UTF-16 filter for the added file + # This simulates a Git version that has no checkoutEncoding support + cp nobom.utf16be.raw nonsense.utf16 && + TEST_HASH=$(git hash-object --no-filters -w nonsense.utf16) && + git update-index --add --cacheinfo 100644 $TEST_HASH nonsense.utf16 && + COMMIT=$(git commit-tree -p $(git rev-parse HEAD) -m "plain commit" $(git write-tree)) && + git update-ref refs/heads/master $COMMIT && + + git diff 2>err.out && + test_i18ngrep "error: BOM is required" err.out + +error: BOM is required in 'nonsense.utf16' if encoded as utf-16 +error: BOM is required in 'nonsense.utf16' if encoded as utf-16 +HEAD is now at dfb2bb8 initial +ok 14 - error if encoding garbage is already in Git + +checking prerequisite: ICONV_SHIFT_JIS + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-ICONV_SHIFT_JIS" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-ICONV_SHIFT_JIS" && + iconv -f UTF-8 -t SHIFT-JIS roundtrip.shift && + printf "$text" | write_utf16 >roundtrip.utf16 && + echo "*.shift text working-tree-encoding=SHIFT-JIS" >>.gitattributes && + + # SHIFT-JIS encoded files are round-trip checked by default... + GIT_TRACE=1 git add .gitattributes roundtrip.shift 2>&1 | + grep "Checking roundtrip encoding for SHIFT-JIS" && + git reset && + + # ... unless we overwrite the Git config! + ! GIT_TRACE=1 git -c core.checkRoundtripEncoding=garbage \ + add .gitattributes roundtrip.shift 2>&1 | + grep "Checking roundtrip encoding for SHIFT-JIS" && + git reset && + + # UTF-16 encoded files should not be round-trip checked by default... + ! GIT_TRACE=1 git add roundtrip.utf16 2>&1 | + grep "Checking roundtrip encoding for UTF-16" && + git reset && + + # ... unless we tell Git to check it! + GIT_TRACE=1 git -c core.checkRoundtripEncoding="UTF-16, UTF-32" \ + add roundtrip.utf16 2>&1 | + grep "Checking roundtrip encoding for utf-16" && + git reset && + + # ... unless we tell Git to check it! + # (here we also check that the casing of the encoding is irrelevant) + GIT_TRACE=1 git -c core.checkRoundtripEncoding="UTF-32, utf-16" \ + add roundtrip.utf16 2>&1 | + grep "Checking roundtrip encoding for utf-16" && + git reset + +checking prerequisite: NO_UTF16_BOM + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-NO_UTF16_BOM" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-NO_UTF16_BOM" && + test $(printf abc | iconv -f UTF-8 -t UTF-16 | wc -c) = 6 + +) +prerequisite NO_UTF16_BOM not satisfied +Checking roundtrip encoding for SHIFT-JIS... +Unstaged changes after reset: +M .gitattributes +Unstaged changes after reset: +M .gitattributes +Unstaged changes after reset: +M .gitattributes +Checking roundtrip encoding for utf-16... +Unstaged changes after reset: +M .gitattributes +Checking roundtrip encoding for utf-16... +Unstaged changes after reset: +M .gitattributes +HEAD is now at dfb2bb8 initial +ok 15 - check roundtrip encoding + +expecting success of 0028.16 'Commit UTF-8, checkout UTF-8': + test_when_finished "git checkout HEAD -- .gitattributes" && + + test_ext="commit_utf8_checkout_$encoding" && + test_file="test.$test_ext" && + + # Commit as UTF-8 + echo "*.$test_ext text working-tree-encoding=UTF-8" >.gitattributes && + printf "$orig_string" >$test_file && + git add $test_file && + git commit -m "Test data" && + + # Checkout in tested encoding + rm $test_file && + echo "*.$test_ext text working-tree-encoding=$encoding" >.gitattributes && + git checkout HEAD -- $test_file && + + # Test + printf $expect_bytes >$test_file.raw && + test_cmp_bin $test_file.raw $test_file + +[master 7887505] Test data + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 test.commit_utf8_checkout_UTF-8 +ok 16 - Commit UTF-8, checkout UTF-8 + +expecting success of 0028.17 'Commit UTF-8, checkout UTF-16LE': + test_when_finished "git checkout HEAD -- .gitattributes" && + + test_ext="commit_utf8_checkout_$encoding" && + test_file="test.$test_ext" && + + # Commit as UTF-8 + echo "*.$test_ext text working-tree-encoding=UTF-8" >.gitattributes && + printf "$orig_string" >$test_file && + git add $test_file && + git commit -m "Test data" && + + # Checkout in tested encoding + rm $test_file && + echo "*.$test_ext text working-tree-encoding=$encoding" >.gitattributes && + git checkout HEAD -- $test_file && + + # Test + printf $expect_bytes >$test_file.raw && + test_cmp_bin $test_file.raw $test_file + +[master dd0bb11] Test data + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 test.commit_utf8_checkout_UTF-16LE +ok 17 - Commit UTF-8, checkout UTF-16LE + +expecting success of 0028.18 'Commit UTF-8, checkout UTF-16BE': + test_when_finished "git checkout HEAD -- .gitattributes" && + + test_ext="commit_utf8_checkout_$encoding" && + test_file="test.$test_ext" && + + # Commit as UTF-8 + echo "*.$test_ext text working-tree-encoding=UTF-8" >.gitattributes && + printf "$orig_string" >$test_file && + git add $test_file && + git commit -m "Test data" && + + # Checkout in tested encoding + rm $test_file && + echo "*.$test_ext text working-tree-encoding=$encoding" >.gitattributes && + git checkout HEAD -- $test_file && + + # Test + printf $expect_bytes >$test_file.raw && + test_cmp_bin $test_file.raw $test_file + +[master ccf08f2] Test data + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 test.commit_utf8_checkout_UTF-16BE +ok 18 - Commit UTF-8, checkout UTF-16BE + +expecting success of 0028.19 'Commit UTF-8, checkout UTF-16LE-BOM': + test_when_finished "git checkout HEAD -- .gitattributes" && + + test_ext="commit_utf8_checkout_$encoding" && + test_file="test.$test_ext" && + + # Commit as UTF-8 + echo "*.$test_ext text working-tree-encoding=UTF-8" >.gitattributes && + printf "$orig_string" >$test_file && + git add $test_file && + git commit -m "Test data" && + + # Checkout in tested encoding + rm $test_file && + echo "*.$test_ext text working-tree-encoding=$encoding" >.gitattributes && + git checkout HEAD -- $test_file && + + # Test + printf $expect_bytes >$test_file.raw && + test_cmp_bin $test_file.raw $test_file + +[master bb82fa0] Test data + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 test.commit_utf8_checkout_UTF-16LE-BOM +ok 19 - Commit UTF-8, checkout UTF-16LE-BOM + +expecting success of 0028.20 'Commit UTF-8, checkout UTF-16BE-BOM': + test_when_finished "git checkout HEAD -- .gitattributes" && + + test_ext="commit_utf8_checkout_$encoding" && + test_file="test.$test_ext" && + + # Commit as UTF-8 + echo "*.$test_ext text working-tree-encoding=UTF-8" >.gitattributes && + printf "$orig_string" >$test_file && + git add $test_file && + git commit -m "Test data" && + + # Checkout in tested encoding + rm $test_file && + echo "*.$test_ext text working-tree-encoding=$encoding" >.gitattributes && + git checkout HEAD -- $test_file && + + # Test + printf $expect_bytes >$test_file.raw && + test_cmp_bin $test_file.raw $test_file + +[master 434b0e2] Test data + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 test.commit_utf8_checkout_UTF-16BE-BOM +ok 20 - Commit UTF-8, checkout UTF-16BE-BOM + +expecting success of 0028.21 'Commit UTF-8, checkout UTF-32LE': + test_when_finished "git checkout HEAD -- .gitattributes" && + + test_ext="commit_utf8_checkout_$encoding" && + test_file="test.$test_ext" && + + # Commit as UTF-8 + echo "*.$test_ext text working-tree-encoding=UTF-8" >.gitattributes && + printf "$orig_string" >$test_file && + git add $test_file && + git commit -m "Test data" && + + # Checkout in tested encoding + rm $test_file && + echo "*.$test_ext text working-tree-encoding=$encoding" >.gitattributes && + git checkout HEAD -- $test_file && + + # Test + printf $expect_bytes >$test_file.raw && + test_cmp_bin $test_file.raw $test_file + +[master 4ebb4c9] Test data + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 test.commit_utf8_checkout_UTF-32LE +ok 21 - Commit UTF-8, checkout UTF-32LE + +expecting success of 0028.22 'Commit UTF-8, checkout UTF-32BE': + test_when_finished "git checkout HEAD -- .gitattributes" && + + test_ext="commit_utf8_checkout_$encoding" && + test_file="test.$test_ext" && + + # Commit as UTF-8 + echo "*.$test_ext text working-tree-encoding=UTF-8" >.gitattributes && + printf "$orig_string" >$test_file && + git add $test_file && + git commit -m "Test data" && + + # Checkout in tested encoding + rm $test_file && + echo "*.$test_ext text working-tree-encoding=$encoding" >.gitattributes && + git checkout HEAD -- $test_file && + + # Test + printf $expect_bytes >$test_file.raw && + test_cmp_bin $test_file.raw $test_file + +[master bfde51e] Test data + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 test.commit_utf8_checkout_UTF-32BE +ok 22 - Commit UTF-8, checkout UTF-32BE + +# passed all 22 test(s) +1..22 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t0029-core-unsetenvvars.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0029-core-unsetenvvars/.git/ +1..0 # SKIP skipping Windows-specific tests +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t0008-ignores.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0008-ignores/.git/ +expecting success of 0008.1 'setup': + init_vars && + mkdir -p a/b/ignored-dir a/submodule b && + if test_have_prereq SYMLINKS + then + ln -s b a/symlink + fi && + ( + cd a/submodule && + git init && + echo a >a && + git add a && + git commit -m"commit in submodule" + ) && + git add a/submodule && + cat <<-\EOF >.gitignore && + one + ignored-* + top-level-dir/ + EOF + for dir in . a + do + : >$dir/not-ignored && + : >$dir/ignored-and-untracked && + : >$dir/ignored-but-in-index + done && + git add -f ignored-but-in-index a/ignored-but-in-index && + cat <<-\EOF >a/.gitignore && + two* + *three + EOF + cat <<-\EOF >a/b/.gitignore && + four + five + # this comment should affect the line numbers + six + ignored-dir/ + # and so should this blank line: + + !on* + !two + EOF + echo "seven" >a/b/ignored-dir/.gitignore && + test -n "$HOME" && + cat <<-\EOF >"$global_excludes" && + globalone + !globaltwo + globalthree + EOF + cat <<-\EOF >>.git/info/exclude + per-repo + EOF + +checking prerequisite: SYMLINKS + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && + # test whether the filesystem supports symbolic links + ln -s x y && test -h y + +) +prerequisite SYMLINKS ok +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0008-ignores/a/submodule/.git/ +[master (root-commit) d93acdf] commit in submodule + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 a +warning: adding embedded git repository: a/submodule +hint: You've added another git repository inside your current repository. +hint: Clones of the outer repository will not contain the contents of hint: the embedded repository and will not know how to obtain it. hint: If you meant to add a submodule, use: hint: @@ -15939,2680 +17736,737 @@ 1..389 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t0022-crlf-rename.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0022-crlf-rename/.git/ -expecting success of 0022.1 'setup': +*** t0033-safe-directory.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0033-safe-directory/.git/ +expecting success of 0033.1 'safe.directory is not set': + expect_rejected_dir - cat "$TEST_DIRECTORY"/t0022-crlf-rename.sh >sample && - git add sample && +fatal: detected dubious ownership in repository at '/build/git-2.30.2/t/trash directory.t0033-safe-directory' + git config --global --add safe.directory '/build/git-2.30.2/t/trash directory.t0033-safe-directory' +ok 1 - safe.directory is not set - test_tick && - git commit -m Initial && +expecting success of 0033.2 'safe.directory does not match': + git config --global safe.directory bogus && + expect_rejected_dir - append_cr <"$TEST_DIRECTORY"/t0022-crlf-rename.sh >elpmas && - git add elpmas && - rm -f sample && +fatal: detected dubious ownership in repository at '/build/git-2.30.2/t/trash directory.t0033-safe-directory' + git config --global --add safe.directory '/build/git-2.30.2/t/trash directory.t0033-safe-directory' +ok 2 - safe.directory does not match - test_tick && - git commit -a -m Second +expecting success of 0033.3 'path exist as different key': + git config --global foo.bar "$(pwd)" && + expect_rejected_dir +fatal: detected dubious ownership in repository at '/build/git-2.30.2/t/trash directory.t0033-safe-directory' + git config --global --add safe.directory '/build/git-2.30.2/t/trash directory.t0033-safe-directory' +ok 3 - path exist as different key -[master (root-commit) 6ee20c2] Initial - Author: A U Thor - 1 file changed, 33 insertions(+) - create mode 100644 sample -[master d248b45] Second - Author: A U Thor - 1 file changed, 33 insertions(+), 33 deletions(-) - rename sample => elpmas (94%) -ok 1 - setup +expecting success of 0033.4 'safe.directory matches': + git config --global --add safe.directory "$(pwd)" && + git status -expecting success of 0022.2 'diff -M': +On branch master - git diff-tree -M -r --name-status HEAD^ HEAD | - sed -e "s/R[0-9]*/RNUM/" >actual && - echo "RNUM sample elpmas" >expect && - test_cmp expect actual +No commits yet +Untracked files: + (use "git add ..." to include in what will be committed) + .gitconfig + err -ok 2 - diff -M +nothing added to commit but untracked files present (use "git add" to track) +ok 4 - safe.directory matches -# passed all 2 test(s) -1..2 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t0020-crlf.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0020-crlf/.git/ -expecting success of 0020.1 'setup': +expecting success of 0033.5 'safe.directory matches, but is reset': + git config --global --add safe.directory "" && + expect_rejected_dir - git config core.autocrlf false && +fatal: detected dubious ownership in repository at '/build/git-2.30.2/t/trash directory.t0033-safe-directory' + git config --global --add safe.directory '/build/git-2.30.2/t/trash directory.t0033-safe-directory' +ok 5 - safe.directory matches, but is reset - for w in Hello world how are you; do echo $w; done >one && - mkdir dir && - for w in I am very very fine thank you; do echo $w; done >dir/two && - for w in Oh here is NULQin text here; do echo $w; done | q_to_nul >three && - git add . && +expecting success of 0033.6 'safe.directory=*': + git config --global --add safe.directory "*" && + git status - git commit -m initial && +On branch master - one=$(git rev-parse HEAD:one) && - dir=$(git rev-parse HEAD:dir) && - two=$(git rev-parse HEAD:dir/two) && - three=$(git rev-parse HEAD:three) && +No commits yet - for w in Some extra lines here; do echo $w; done >>one && - git diff >patch.file && - patched=$(git hash-object --stdin ..." to include in what will be committed) + .gitconfig + err -[master (root-commit) 69d7d88] initial - Author: A U Thor - 3 files changed, 12 insertions(+) - create mode 100644 dir/two - create mode 100644 one - create mode 100644 three -ok 1 - setup +nothing added to commit but untracked files present (use "git add" to track) +ok 6 - safe.directory=* -expecting success of 0020.2 'safecrlf: autocrlf=input, all CRLF': +expecting success of 0033.7 'safe.directory=*, but is reset': + git config --global --add safe.directory "" && + expect_rejected_dir - git config core.autocrlf input && - git config core.safecrlf true && +fatal: detected dubious ownership in repository at '/build/git-2.30.2/t/trash directory.t0033-safe-directory' + git config --global --add safe.directory '/build/git-2.30.2/t/trash directory.t0033-safe-directory' +ok 7 - safe.directory=*, but is reset - for w in I am all CRLF; do echo $w; done | append_cr >allcrlf && - test_must_fail git add allcrlf +# passed all 7 test(s) +1..7 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t0034-root-safe-directory.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0034-root-safe-directory/.git/ +1..0 # SKIP You must set env var GIT_TEST_ALLOW_SUDO=YES in order to run this test +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t0030-stripspace.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0030-stripspace/.git/ +expecting success of 0030.1 'long lines without spaces should be unchanged': + echo "$ttt" >expect && + git stripspace actual && + test_cmp expect actual && -fatal: CRLF would be replaced by LF in allcrlf -ok 2 - safecrlf: autocrlf=input, all CRLF + echo "$ttt$ttt" >expect && + git stripspace actual && + test_cmp expect actual && -expecting success of 0020.3 'safecrlf: autocrlf=input, mixed LF/CRLF': + echo "$ttt$ttt$ttt" >expect && + git stripspace actual && + test_cmp expect actual && - git config core.autocrlf input && - git config core.safecrlf true && + echo "$ttt$ttt$ttt$ttt" >expect && + git stripspace actual && + test_cmp expect actual - for w in Oh here is CRLFQ in text; do echo $w; done | q_to_cr >mixed && - test_must_fail git add mixed +ok 1 - long lines without spaces should be unchanged -fatal: CRLF would be replaced by LF in mixed -ok 3 - safecrlf: autocrlf=input, mixed LF/CRLF +expecting success of 0030.2 'lines with spaces at the beginning should be unchanged': + echo "$sss$ttt" >expect && + git stripspace actual && + test_cmp expect actual && -expecting success of 0020.4 'safecrlf: autocrlf=true, all LF': + echo "$sss$sss$ttt" >expect && + git stripspace actual && + test_cmp expect actual && - git config core.autocrlf true && - git config core.safecrlf true && + echo "$sss$sss$sss$ttt" >expect && + git stripspace actual && + test_cmp expect actual - for w in I am all LF; do echo $w; done >alllf && - test_must_fail git add alllf +ok 2 - lines with spaces at the beginning should be unchanged -fatal: LF would be replaced by CRLF in alllf -ok 4 - safecrlf: autocrlf=true, all LF +expecting success of 0030.3 'lines with intermediate spaces should be unchanged': + echo "$ttt$sss$ttt" >expect && + git stripspace actual && + test_cmp expect actual && -expecting success of 0020.5 'safecrlf: autocrlf=true mixed LF/CRLF': + echo "$ttt$sss$sss$ttt" >expect && + git stripspace actual && + test_cmp expect actual - git config core.autocrlf true && - git config core.safecrlf true && +ok 3 - lines with intermediate spaces should be unchanged - for w in Oh here is CRLFQ in text; do echo $w; done | q_to_cr >mixed && - test_must_fail git add mixed +expecting success of 0030.4 'consecutive blank lines should be unified': + printf "$ttt\n\n$ttt\n" > expect && + printf "$ttt\n\n\n\n\n$ttt\n" | git stripspace >actual && + test_cmp expect actual && -fatal: LF would be replaced by CRLF in mixed -ok 5 - safecrlf: autocrlf=true mixed LF/CRLF + printf "$ttt$ttt\n\n$ttt\n" > expect && + printf "$ttt$ttt\n\n\n\n\n$ttt\n" | git stripspace >actual && + test_cmp expect actual && -expecting success of 0020.6 'safecrlf: print warning only once': + printf "$ttt$ttt$ttt\n\n$ttt\n" > expect && + printf "$ttt$ttt$ttt\n\n\n\n\n$ttt\n" | git stripspace >actual && + test_cmp expect actual && - git config core.autocrlf input && - git config core.safecrlf warn && + printf "$ttt\n\n$ttt\n" > expect && + printf "$ttt\n\n\n\n\n$ttt\n" | git stripspace >actual && + test_cmp expect actual && - for w in I am all LF; do echo $w; done >doublewarn && - git add doublewarn && - git commit -m "nowarn" && - for w in Oh here is CRLFQ in text; do echo $w; done | q_to_cr >doublewarn && - git add doublewarn 2>err && - if test_have_prereq C_LOCALE_OUTPUT - then - test $(grep "CRLF will be replaced by LF" err | wc -l) = 1 - fi + printf "$ttt\n\n$ttt$ttt\n" > expect && + printf "$ttt\n\n\n\n\n$ttt$ttt\n" | git stripspace >actual && + test_cmp expect actual && -[master 4d5dbcd] nowarn - Author: A U Thor - 1 file changed, 4 insertions(+) - create mode 100644 doublewarn -checking prerequisite: C_LOCALE_OUTPUT + printf "$ttt\n\n$ttt$ttt$ttt\n" > expect && + printf "$ttt\n\n\n\n\n$ttt$ttt$ttt\n" | git stripspace >actual && + test_cmp expect actual && -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false + printf "$ttt\n\n$ttt\n" > expect && + printf "$ttt\n\t\n \n\n \t\t\n$ttt\n" | git stripspace >actual && + test_cmp expect actual && -) -prerequisite C_LOCALE_OUTPUT ok -ok 6 - safecrlf: print warning only once + printf "$ttt$ttt\n\n$ttt\n" > expect && + printf "$ttt$ttt\n\t\n \n\n \t\t\n$ttt\n" | git stripspace >actual && + test_cmp expect actual && -expecting success of 0020.7 'safecrlf: git diff demotes safecrlf=true to warn': - git config core.autocrlf input && - git config core.safecrlf true && - git diff HEAD + printf "$ttt$ttt$ttt\n\n$ttt\n" > expect && + printf "$ttt$ttt$ttt\n\t\n \n\n \t\t\n$ttt\n" | git stripspace >actual && + test_cmp expect actual && -diff --git a/doublewarn b/doublewarn -index 03ba6c2..1ed2a2c 100644 ---- a/doublewarn -+++ b/doublewarn -@@ -1,4 +1,6 @@ --I --am --all --LF -+Oh -+here -+is -+CRLF -+in -+text -ok 7 - safecrlf: git diff demotes safecrlf=true to warn + printf "$ttt\n\n$ttt\n" > expect && + printf "$ttt\n\t\n \n\n \t\t\n$ttt\n" | git stripspace >actual && + test_cmp expect actual && -expecting success of 0020.8 'safecrlf: no warning with safecrlf=false': - git config core.autocrlf input && - git config core.safecrlf false && + printf "$ttt\n\n$ttt$ttt\n" > expect && + printf "$ttt\n\t\n \n\n \t\t\n$ttt$ttt\n" | git stripspace >actual && + test_cmp expect actual && - for w in I am all CRLF; do echo $w; done | append_cr >allcrlf && - git add allcrlf 2>err && - test_must_be_empty err + printf "$ttt\n\n$ttt$ttt$ttt\n" > expect && + printf "$ttt\n\t\n \n\n \t\t\n$ttt$ttt$ttt\n" | git stripspace >actual && + test_cmp expect actual -ok 8 - safecrlf: no warning with safecrlf=false +ok 4 - consecutive blank lines should be unified -expecting success of 0020.9 'switch off autocrlf, safecrlf, reset HEAD': - git config core.autocrlf false && - git config core.safecrlf false && - git reset --hard HEAD^ +expecting success of 0030.5 'only consecutive blank lines should be completely removed': -HEAD is now at 69d7d88 initial -ok 9 - switch off autocrlf, safecrlf, reset HEAD + printf "\n" | git stripspace >actual && + test_must_be_empty actual && -expecting success of 0020.10 'update with autocrlf=input': + printf "\n\n\n" | git stripspace >actual && + test_must_be_empty actual && - rm -f tmp one dir/two three && - git read-tree --reset -u HEAD && - git config core.autocrlf input && - munge_cr append one && - munge_cr append dir/two && - git update-index -- one dir/two && - differs=$(git diff-index --cached HEAD) && - verbose test -z "$differs" + printf "$sss\n$sss\n$sss\n" | git stripspace >actual && + test_must_be_empty actual && + printf "$sss$sss\n$sss\n\n" | git stripspace >actual && + test_must_be_empty actual && -ok 10 - update with autocrlf=input + printf "\n$sss\n$sss$sss\n" | git stripspace >actual && + test_must_be_empty actual && -expecting success of 0020.11 'update with autocrlf=true': + printf "$sss$sss$sss$sss\n\n\n" | git stripspace >actual && + test_must_be_empty actual && - rm -f tmp one dir/two three && - git read-tree --reset -u HEAD && - git config core.autocrlf true && - munge_cr append one && - munge_cr append dir/two && - git update-index -- one dir/two && - differs=$(git diff-index --cached HEAD) && - verbose test -z "$differs" + printf "\n$sss$sss$sss$sss\n\n" | git stripspace >actual && + test_must_be_empty actual && + printf "\n\n$sss$sss$sss$sss\n" | git stripspace >actual && + test_must_be_empty actual -ok 11 - update with autocrlf=true +ok 5 - only consecutive blank lines should be completely removed -expecting success of 0020.12 'checkout with autocrlf=true': +expecting success of 0030.6 'consecutive blank lines at the beginning should be removed': + printf "$ttt\n" > expect && + printf "\n$ttt\n" | git stripspace >actual && + test_cmp expect actual && - rm -f tmp one dir/two three && - git config core.autocrlf true && - git read-tree --reset -u HEAD && - munge_cr remove one && - munge_cr remove dir/two && - git update-index -- one dir/two && - test "$one" = $(git hash-object --stdin expect && + printf "\n\n\n$ttt\n" | git stripspace >actual && + test_cmp expect actual && -ok 12 - checkout with autocrlf=true + printf "$ttt$ttt\n" > expect && + printf "\n\n\n$ttt$ttt\n" | git stripspace >actual && + test_cmp expect actual && -expecting success of 0020.13 'checkout with autocrlf=input': + printf "$ttt$ttt$ttt\n" > expect && + printf "\n\n\n$ttt$ttt$ttt\n" | git stripspace >actual && + test_cmp expect actual && - rm -f tmp one dir/two three && - git config core.autocrlf input && - git read-tree --reset -u HEAD && - ! has_cr one && - ! has_cr dir/two && - git update-index -- one dir/two && - test "$one" = $(git hash-object --stdin expect && + printf "\n\n\n$ttt$ttt$ttt$ttt\n" | git stripspace >actual && + test_cmp expect actual && -ok 13 - checkout with autocrlf=input + printf "$ttt\n" > expect && -expecting success of 0020.14 'apply patch (autocrlf=input)': + printf "$sss\n$sss\n$sss\n$ttt\n" | git stripspace >actual && + test_cmp expect actual && - rm -f tmp one dir/two three && - git config core.autocrlf input && - git read-tree --reset -u HEAD && + printf "\n$sss\n$sss$sss\n$ttt\n" | git stripspace >actual && + test_cmp expect actual && - git apply patch.file && - verbose test "$patched" = "$(git hash-object --stdin actual && + test_cmp expect actual && -ok 14 - apply patch (autocrlf=input) + printf "$sss$sss$sss\n\n\n$ttt\n" | git stripspace >actual && + test_cmp expect actual && -expecting success of 0020.15 'apply patch --cached (autocrlf=input)': + printf "\n$sss$sss$sss\n\n$ttt\n" | git stripspace >actual && + test_cmp expect actual && - rm -f tmp one dir/two three && - git config core.autocrlf input && - git read-tree --reset -u HEAD && + printf "\n\n$sss$sss$sss\n$ttt\n" | git stripspace >actual && + test_cmp expect actual - git apply --cached patch.file && - verbose test "$patched" = $(git rev-parse :one) +ok 6 - consecutive blank lines at the beginning should be removed -ok 15 - apply patch --cached (autocrlf=input) +expecting success of 0030.7 'consecutive blank lines at the end should be removed': + printf "$ttt\n" > expect && + printf "$ttt\n\n" | git stripspace >actual && + test_cmp expect actual && -expecting success of 0020.16 'apply patch --index (autocrlf=input)': + printf "$ttt\n" > expect && + printf "$ttt\n\n\n\n" | git stripspace >actual && + test_cmp expect actual && - rm -f tmp one dir/two three && - git config core.autocrlf input && - git read-tree --reset -u HEAD && + printf "$ttt$ttt\n" > expect && + printf "$ttt$ttt\n\n\n\n" | git stripspace >actual && + test_cmp expect actual && - git apply --index patch.file && - verbose test "$patched" = $(git rev-parse :one) && - verbose test "$patched" = $(git hash-object --stdin expect && + printf "$ttt$ttt$ttt\n\n\n\n" | git stripspace >actual && + test_cmp expect actual && -ok 16 - apply patch --index (autocrlf=input) + printf "$ttt$ttt$ttt$ttt\n" > expect && + printf "$ttt$ttt$ttt$ttt\n\n\n\n" | git stripspace >actual && + test_cmp expect actual && -expecting success of 0020.17 'apply patch (autocrlf=true)': + printf "$ttt\n" > expect && - rm -f tmp one dir/two three && - git config core.autocrlf true && - git read-tree --reset -u HEAD && + printf "$ttt\n$sss\n$sss\n$sss\n" | git stripspace >actual && + test_cmp expect actual && - git apply patch.file && - verbose test "$patched" = "$(remove_cr actual && + test_cmp expect actual && -ok 17 - apply patch (autocrlf=true) + printf "$ttt\n$sss$sss\n$sss\n\n" | git stripspace >actual && + test_cmp expect actual && -expecting success of 0020.18 'apply patch --cached (autocrlf=true)': + printf "$ttt\n$sss$sss$sss\n\n\n" | git stripspace >actual && + test_cmp expect actual && - rm -f tmp one dir/two three && - git config core.autocrlf true && - git read-tree --reset -u HEAD && + printf "$ttt\n\n$sss$sss$sss\n\n" | git stripspace >actual && + test_cmp expect actual && - git apply --cached patch.file && - verbose test "$patched" = $(git rev-parse :one) + printf "$ttt\n\n\n$sss$sss$sss\n" | git stripspace >actual && + test_cmp expect actual -ok 18 - apply patch --cached (autocrlf=true) +ok 7 - consecutive blank lines at the end should be removed -expecting success of 0020.19 'apply patch --index (autocrlf=true)': +expecting success of 0030.8 'text without newline at end should end with newline': + test $(printf "$ttt" | git stripspace | wc -l) -gt 0 && + test $(printf "$ttt$ttt" | git stripspace | wc -l) -gt 0 && + test $(printf "$ttt$ttt$ttt" | git stripspace | wc -l) -gt 0 && + test $(printf "$ttt$ttt$ttt$ttt" | git stripspace | wc -l) -gt 0 - rm -f tmp one dir/two three && - git config core.autocrlf true && - git read-tree --reset -u HEAD && +ok 8 - text without newline at end should end with newline - git apply --index patch.file && - verbose test "$patched" = $(git rev-parse :one) && - verbose test "$patched" = "$(remove_cr /dev/null) && + ! (printf "$ttt$ttt$sss" | git stripspace | grep " " >/dev/null) && + ! (printf "$ttt$ttt$ttt$sss" | git stripspace | grep " " >/dev/null) && + ! (printf "$ttt$sss$sss" | git stripspace | grep " " >/dev/null) && + ! (printf "$ttt$ttt$sss$sss" | git stripspace | grep " " >/dev/null) && + ! (printf "$ttt$sss$sss$sss" | git stripspace | grep " " >/dev/null) - rm -f tmp one dir/two three && - echo "two -crlf" >.gitattributes && - git config core.autocrlf true && - git read-tree --reset -u HEAD && +ok 10 - text plus spaces without newline at end should not show spaces - ! has_cr dir/two && - verbose has_cr one && - ! has_cr three +expecting success of 0030.11 'text plus spaces without newline should show the correct lines': + printf "$ttt\n" >expect && + printf "$ttt$sss" | git stripspace >actual && + test_cmp expect actual && -ok 20 - .gitattributes says two is binary + printf "$ttt\n" >expect && + printf "$ttt$sss$sss" | git stripspace >actual && + test_cmp expect actual && -expecting success of 0020.21 '.gitattributes says two is input': + printf "$ttt\n" >expect && + printf "$ttt$sss$sss$sss" | git stripspace >actual && + test_cmp expect actual && - rm -f tmp one dir/two three && - echo "two crlf=input" >.gitattributes && - git read-tree --reset -u HEAD && + printf "$ttt$ttt\n" >expect && + printf "$ttt$ttt$sss" | git stripspace >actual && + test_cmp expect actual && - ! has_cr dir/two + printf "$ttt$ttt\n" >expect && + printf "$ttt$ttt$sss$sss" | git stripspace >actual && + test_cmp expect actual && -ok 21 - .gitattributes says two is input + printf "$ttt$ttt$ttt\n" >expect && + printf "$ttt$ttt$ttt$sss" | git stripspace >actual && + test_cmp expect actual -expecting success of 0020.22 '.gitattributes says two and three are text': +ok 11 - text plus spaces without newline should show the correct lines - rm -f tmp one dir/two three && - echo "t* crlf" >.gitattributes && - git read-tree --reset -u HEAD && +expecting success of 0030.12 'text plus spaces at end should not show spaces': + ! (echo "$ttt$sss" | git stripspace | grep " " >/dev/null) && + ! (echo "$ttt$ttt$sss" | git stripspace | grep " " >/dev/null) && + ! (echo "$ttt$ttt$ttt$sss" | git stripspace | grep " " >/dev/null) && + ! (echo "$ttt$sss$sss" | git stripspace | grep " " >/dev/null) && + ! (echo "$ttt$ttt$sss$sss" | git stripspace | grep " " >/dev/null) && + ! (echo "$ttt$sss$sss$sss" | git stripspace | grep " " >/dev/null) - verbose has_cr dir/two && - verbose has_cr three +ok 12 - text plus spaces at end should not show spaces -ok 22 - .gitattributes says two and three are text +expecting success of 0030.13 'text plus spaces at end should be cleaned and newline must remain': + echo "$ttt" >expect && + echo "$ttt$sss" | git stripspace >actual && + test_cmp expect actual && -expecting success of 0020.23 'in-tree .gitattributes (1)': + echo "$ttt" >expect && + echo "$ttt$sss$sss" | git stripspace >actual && + test_cmp expect actual && - echo "one -crlf" >>.gitattributes && - git add .gitattributes && - git commit -m "Add .gitattributes" && + echo "$ttt" >expect && + echo "$ttt$sss$sss$sss" | git stripspace >actual && + test_cmp expect actual && - rm -rf tmp one dir .gitattributes patch.file three && - git read-tree --reset -u HEAD && + echo "$ttt$ttt" >expect && + echo "$ttt$ttt$sss" | git stripspace >actual && + test_cmp expect actual && - ! has_cr one && - verbose has_cr three + echo "$ttt$ttt" >expect && + echo "$ttt$ttt$sss$sss" | git stripspace >actual && + test_cmp expect actual && -[master 31eb750] Add .gitattributes - Author: A U Thor - 1 file changed, 2 insertions(+) - create mode 100644 .gitattributes -ok 23 - in-tree .gitattributes (1) + echo "$ttt$ttt$ttt" >expect && + echo "$ttt$ttt$ttt$sss" | git stripspace >actual && + test_cmp expect actual -expecting success of 0020.24 'in-tree .gitattributes (2)': +ok 13 - text plus spaces at end should be cleaned and newline must remain - rm -rf tmp one dir .gitattributes patch.file three && - git read-tree --reset HEAD && - git checkout-index -f -q -u -a && +expecting success of 0030.14 'spaces with newline at end should be replaced with empty string': + echo | git stripspace >actual && + test_must_be_empty actual && - ! has_cr one && - verbose has_cr three + echo "$sss" | git stripspace >actual && + test_must_be_empty actual && -ok 24 - in-tree .gitattributes (2) + echo "$sss$sss" | git stripspace >actual && + test_must_be_empty actual && -expecting success of 0020.25 'in-tree .gitattributes (3)': + echo "$sss$sss$sss" | git stripspace >actual && + test_must_be_empty actual && - rm -rf tmp one dir .gitattributes patch.file three && - git read-tree --reset HEAD && - git checkout-index -u .gitattributes && - git checkout-index -u one dir/two three && + echo "$sss$sss$sss$sss" | git stripspace >actual && + test_must_be_empty actual - ! has_cr one && - verbose has_cr three +ok 14 - spaces with newline at end should be replaced with empty string -ok 25 - in-tree .gitattributes (3) +expecting success of 0030.15 'spaces without newline at end should not show spaces': + ! (printf "" | git stripspace | grep " " >/dev/null) && + ! (printf "$sss" | git stripspace | grep " " >/dev/null) && + ! (printf "$sss$sss" | git stripspace | grep " " >/dev/null) && + ! (printf "$sss$sss$sss" | git stripspace | grep " " >/dev/null) && + ! (printf "$sss$sss$sss$sss" | git stripspace | grep " " >/dev/null) -expecting success of 0020.26 'in-tree .gitattributes (4)': +ok 15 - spaces without newline at end should not show spaces - rm -rf tmp one dir .gitattributes patch.file three && - git read-tree --reset HEAD && - git checkout-index -u one dir/two three && - git checkout-index -u .gitattributes && +expecting success of 0030.16 'spaces without newline at end should be replaced with empty string': + printf "" | git stripspace >actual && + test_must_be_empty actual && - ! has_cr one && - verbose has_cr three + printf "$sss$sss" | git stripspace >actual && + test_must_be_empty actual && -ok 26 - in-tree .gitattributes (4) + printf "$sss$sss$sss" | git stripspace >actual && + test_must_be_empty actual && -expecting success of 0020.27 'checkout with existing .gitattributes': + printf "$sss$sss$sss$sss" | git stripspace >actual && + test_must_be_empty actual - git config core.autocrlf true && - git config --unset core.safecrlf && - echo ".file2 -crlfQ" | q_to_cr >> .gitattributes && - git add .gitattributes && - git commit -m initial && - echo ".file -crlfQ" | q_to_cr >> .gitattributes && - echo "contents" > .file && - git add .gitattributes .file && - git commit -m second && +ok 16 - spaces without newline at end should be replaced with empty string - git checkout master~1 && - git checkout master && - test "$(git diff-files --raw)" = "" +expecting success of 0030.17 'consecutive text lines should be unchanged': + printf "$ttt$ttt\n$ttt\n" >expect && + printf "$ttt$ttt\n$ttt\n" | git stripspace >actual && + test_cmp expect actual && + printf "$ttt\n$ttt$ttt\n$ttt\n" >expect && + printf "$ttt\n$ttt$ttt\n$ttt\n" | git stripspace >actual && + test_cmp expect actual && -[master 6d0586a] initial - Author: A U Thor - 1 file changed, 1 insertion(+) -[master f2c783e] second - Author: A U Thor - 2 files changed, 2 insertions(+) - create mode 100644 .file -Note: switching to 'master~1'. + printf "$ttt\n$ttt\n$ttt\n$ttt$ttt\n" >expect && + printf "$ttt\n$ttt\n$ttt\n$ttt$ttt\n" | git stripspace >actual && + test_cmp expect actual && -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. + printf "$ttt\n$ttt\n\n$ttt$ttt\n$ttt\n" >expect && + printf "$ttt\n$ttt\n\n$ttt$ttt\n$ttt\n" | git stripspace >actual && + test_cmp expect actual && -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: + printf "$ttt$ttt\n\n$ttt\n$ttt$ttt\n" >expect && + printf "$ttt$ttt\n\n$ttt\n$ttt$ttt\n" | git stripspace >actual && + test_cmp expect actual && - git switch -c + printf "$ttt\n$ttt$ttt\n\n$ttt\n" >expect && + printf "$ttt\n$ttt$ttt\n\n$ttt\n" | git stripspace >actual && + test_cmp expect actual -Or undo this operation with: +ok 17 - consecutive text lines should be unchanged - git switch - +expecting success of 0030.18 'strip comments, too': + test ! -z "$(echo "# comment" | git stripspace)" && + test -z "$(echo "# comment" | git stripspace -s)" -Turn off this advice by setting config variable advice.detachedHead to false +ok 18 - strip comments, too -HEAD is now at 6d0586a initial -Previous HEAD position was 6d0586a initial -Switched to branch 'master' -ok 27 - checkout with existing .gitattributes +expecting success of 0030.19 'strip comments with changed comment char': + test ! -z "$(echo "; comment" | git -c core.commentchar=";" stripspace)" && + test -z "$(echo "; comment" | git -c core.commentchar=";" stripspace -s)" -expecting success of 0020.28 'checkout when deleting .gitattributes': +ok 19 - strip comments with changed comment char - git rm .gitattributes && - echo "contentsQ" | q_to_cr > .file2 && - git add .file2 && - git commit -m third && +expecting success of 0030.20 '-c with single line': + printf "# foo\n" >expect && + printf "foo" | git stripspace -c >actual && + test_cmp expect actual - git checkout master~1 && - git checkout master && - has_cr .file2 +ok 20 - -c with single line +expecting success of 0030.21 '-c with single line followed by empty line': + printf "# foo\n#\n" >expect && + printf "foo\n\n" | git stripspace -c >actual && + test_cmp expect actual -rm '.gitattributes' -[master edaea69] third - Author: A U Thor - 2 files changed, 1 insertion(+), 4 deletions(-) - create mode 100644 .file2 - delete mode 100644 .gitattributes -Note: switching to 'master~1'. +ok 21 - -c with single line followed by empty line -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. +expecting success of 0030.22 '-c with newline only': + printf "#\n" >expect && + printf "\n" | git stripspace -c >actual && + test_cmp expect actual -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: +ok 22 - -c with newline only - git switch -c +expecting success of 0030.23 '--comment-lines with single line': + printf "# foo\n" >expect && + printf "foo" | git stripspace -c >actual && + test_cmp expect actual -Or undo this operation with: +ok 23 - --comment-lines with single line - git switch - +expecting success of 0030.24 '-c with changed comment char': + printf "; foo\n" >expect && + printf "foo" | git -c core.commentchar=";" stripspace -c >actual && + test_cmp expect actual -Turn off this advice by setting config variable advice.detachedHead to false +ok 24 - -c with changed comment char -HEAD is now at f2c783e second -M three -Previous HEAD position was f2c783e second -Switched to branch 'master' -ok 28 - checkout when deleting .gitattributes +expecting success of 0030.25 '-c with comment char defined in .git/config': + test_config core.commentchar = && + printf "= foo\n" >expect && + rm -fr sub && + mkdir sub && + printf "foo" | git -C sub stripspace -c >actual && + test_cmp expect actual -expecting success of 0020.29 'invalid .gitattributes (must not crash)': +ok 25 - -c with comment char defined in .git/config - echo "three +crlf" >>.gitattributes && - git diff +expecting success of 0030.26 '-c outside git repository': + printf "# foo\n" >expect && + printf "foo" | nongit git stripspace -c >actual && + test_cmp expect actual +ok 26 - -c outside git repository -+crlf is not a valid attribute name: .gitattributes:1 -+crlf is not a valid attribute name: .gitattributes:1 -diff --git a/three b/three -index 98efc5e..c5c386a 100644 -Binary files a/three and b/three differ -ok 29 - invalid .gitattributes (must not crash) +expecting success of 0030.27 'avoid SP-HT sequence in commented line': + printf "#\tone\n#\n# two\n" >expect && + printf "\tone\n\ntwo\n" | git stripspace -c >actual && + test_cmp expect actual -expecting success of 0020.30 'setting up for new autocrlf tests': - git config core.autocrlf false && - git config core.safecrlf false && - rm -rf .????* * && - for w in I am all LF; do echo $w; done >alllf && - for w in Oh here is CRLFQ in text; do echo $w; done | q_to_cr >mixed && - for w in I am all CRLF; do echo $w; done | append_cr >allcrlf && - git add -A . && - git commit -m "alllf, allcrlf and mixed only" && - git tag -a -m "message" autocrlf-checkpoint +ok 27 - avoid SP-HT sequence in commented line -[master 021c55b] alllf, allcrlf and mixed only - Author: A U Thor - 7 files changed, 8 insertions(+), 14 deletions(-) - delete mode 100644 .file - delete mode 100644 .file2 - create mode 100644 allcrlf - create mode 100644 alllf - delete mode 100644 dir/two - rename three => mixed (57%) - delete mode 100644 one -ok 30 - setting up for new autocrlf tests +# passed all 27 test(s) +1..27 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t0021-conversion.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0021-conversion/.git/ +expecting success of 0021.1 'setup': + git config filter.rot13.smudge ./rot13.sh && + git config filter.rot13.clean ./rot13.sh && -expecting success of 0020.31 'report no change after setting autocrlf': - git config core.autocrlf true && - touch * && - git diff --exit-code + { + echo "*.t filter=rot13" + echo "*.i ident" + } >.gitattributes && -ok 31 - report no change after setting autocrlf + { + echo a b c d e f g h i j k l m + echo n o p q r s t u v w x y z + echo '$Id$' + } >test && + cat test >test.t && + cat test >test.o && + cat test >test.i && + git add test test.t test.i && + rm -f test test.t test.i && + git checkout -- test test.t test.i && -expecting success of 0020.32 'files are clean after checkout': - rm * && - git checkout -f && - git diff --exit-code + echo "content-test2" >test2.o && + echo "content-test3 - filename with special characters" >"test3 'sq',\$x=.o" -ok 32 - files are clean after checkout +ok 1 - setup -expecting success of 0020.33 'LF only file gets CRLF with autocrlf': - test "$(cr_to_Q_no_NL < alllf)" = "IQamQallQLFQ" +expecting success of 0021.2 'check': -ok 33 - LF only file gets CRLF with autocrlf + test_cmp test.o test && + test_cmp test.o test.t && -expecting success of 0020.34 'Mixed file is still mixed with autocrlf': - test "$(cr_to_Q_no_NL < mixed)" = "OhhereisCRLFQintext" + # ident should be stripped in the repository + git diff --raw --exit-code :test :test.i && + id=$(git rev-parse --verify :test) && + embedded=$(sed -ne "$script" test.i) && + test "z$id" = "z$embedded" && -ok 34 - Mixed file is still mixed with autocrlf + git cat-file blob :test.t >test.r && -expecting success of 0020.35 'CRLF only file has CRLF with autocrlf': - test "$(cr_to_Q_no_NL < allcrlf)" = "IQamQallQCRLFQ" + ./rot13.sh test.t && + test_cmp test.r test.t -ok 35 - CRLF only file has CRLF with autocrlf +ok 2 - check -expecting success of 0020.36 'New CRLF file gets LF in repo': - tr -d "\015" < alllf | append_cr > alllf2 && - git add alllf2 && - git commit -m "alllf2 added" && - git config core.autocrlf false && - rm * && - git checkout -f && - test_cmp alllf alllf2 +expecting success of 0021.3 'expanded_in_repo': + { + echo "File with expanded keywords" + echo "\$Id\$" + echo "\$Id:\$" + echo "\$Id: 0000000000000000000000000000000000000000 \$" + echo "\$Id: NoSpaceAtEnd\$" + echo "\$Id:NoSpaceAtFront \$" + echo "\$Id:NoSpaceAtEitherEnd\$" + echo "\$Id: NoTerminatingSymbol" + echo "\$Id: Foreign Commit With Spaces \$" + } >expanded-keywords.0 && -[master 6ebdedc] alllf2 added - Author: A U Thor - 1 file changed, 4 insertions(+) - create mode 100644 alllf2 -ok 36 - New CRLF file gets LF in repo + { + cat expanded-keywords.0 && + printf "\$Id: NoTerminatingSymbolAtEOF" + } >expanded-keywords && + cat expanded-keywords >expanded-keywords-crlf && + git add expanded-keywords expanded-keywords-crlf && + git commit -m "File with keywords expanded" && + id=$(git rev-parse --verify :expanded-keywords) && -# passed all 36 test(s) -1..36 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t0023-crlf-am.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0023-crlf-am/.git/ -expecting success of 0023.1 'setup': + { + echo "File with expanded keywords" + echo "\$Id: $id \$" + echo "\$Id: $id \$" + echo "\$Id: $id \$" + echo "\$Id: $id \$" + echo "\$Id: $id \$" + echo "\$Id: $id \$" + echo "\$Id: NoTerminatingSymbol" + echo "\$Id: Foreign Commit With Spaces \$" + } >expected-output.0 && + { + cat expected-output.0 && + printf "\$Id: NoTerminatingSymbolAtEOF" + } >expected-output && + { + append_cr expected-output-crlf && + { + echo "expanded-keywords ident" + echo "expanded-keywords-crlf ident text eol=crlf" + } >>.gitattributes && - git config core.autocrlf true && - echo foo >bar && - git add bar && - test_tick && - git commit -m initial + rm -f expanded-keywords expanded-keywords-crlf && + git checkout -- expanded-keywords && + test_cmp expected-output expanded-keywords && -warning: LF will be replaced by CRLF in bar. -The file will have its original line endings in your working directory -[master (root-commit) 1adb513] initial + git checkout -- expanded-keywords-crlf && + test_cmp expected-output-crlf expanded-keywords-crlf + +[master (root-commit) bf31399] File with keywords expanded Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 bar -ok 1 - setup + 5 files changed, 29 insertions(+) + create mode 100644 expanded-keywords + create mode 100644 expanded-keywords-crlf + create mode 100644 test + create mode 100644 test.i + create mode 100644 test.t +ok 3 - expanded_in_repo -expecting success of 0023.2 'am': +expecting success of 0021.4 'filter shell-escaped filenames': + cat >argc.sh <<-EOF && + #!$SHELL_PATH + cat >/dev/null + echo argc: \$# "\$@" + EOF + normal=name-no-magic && + special="name with 'sq' and \$x" && + echo some test text >"$normal" && + echo some test text >"$special" && + git add "$normal" "$special" && + git commit -q -m "add files" && + echo "name* filter=argc" >.gitattributes && - git am -3 expect && + test_cmp expect "$normal" && + echo "argc: 1 $special" >expect && + test_cmp expect "$special" && -Applying: test1 -ok 2 - am + # do the same thing, but with more args in the filter expression + test_config filter.argc.smudge "sh ./argc.sh %f --my-extra-arg" && + rm "$normal" "$special" && + git checkout -- "$normal" "$special" && -# passed all 2 test(s) -1..2 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t0024-crlf-archive.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0024-crlf-archive/.git/ -expecting success of 0024.1 'setup': + # make sure argc.sh counted the right number of args + echo "argc: 2 $normal --my-extra-arg" >expect && + test_cmp expect "$normal" && + echo "argc: 2 $special --my-extra-arg" >expect && + test_cmp expect "$special" && + : - git config core.autocrlf true && +ok 4 - filter shell-escaped filenames - printf "CRLF line ending\r\nAnd another\r\n" > sample && - git add sample && +expecting success of 0021.5 'required filter should filter data': + test_config filter.required.smudge ./rot13.sh && + test_config filter.required.clean ./rot13.sh && + test_config filter.required.required true && - test_tick && - git commit -m Initial + echo "*.r filter=required" >.gitattributes && + cat test.o >test.r && + git add test.r && -[master (root-commit) 4f7f1aa] Initial - Author: A U Thor - 1 file changed, 2 insertions(+) - create mode 100644 sample -ok 1 - setup + rm -f test.r && + git checkout -- test.r && + test_cmp test.o test.r && -expecting success of 0024.2 'tar archive': + ./rot13.sh expected && + git cat-file blob :test.r >actual && + test_cmp expected actual - git archive --format=tar HEAD | - ( mkdir untarred && cd untarred && "$TAR" -xf - ) && +ok 5 - required filter should filter data - test_cmp sample untarred/sample +expecting success of 0021.6 'required filter smudge failure': + test_config filter.failsmudge.smudge false && + test_config filter.failsmudge.clean cat && + test_config filter.failsmudge.required true && + echo "*.fs filter=failsmudge" >.gitattributes && -ok 2 - tar archive + echo test >test.fs && + git add test.fs && + rm -f test.fs && + test_must_fail git checkout -- test.fs -checking prerequisite: UNZIP +error: external filter 'false' failed 1 +error: external filter 'false' failed +fatal: test.fs: smudge filter failsmudge failed +ok 6 - required filter smudge failure -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-UNZIP" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-UNZIP" && - "$GIT_UNZIP" -v - test $? -ne 127 +expecting success of 0021.7 'required filter clean failure': + test_config filter.failclean.smudge cat && + test_config filter.failclean.clean false && + test_config filter.failclean.required true && -) -UnZip 6.00 of 20 April 2009, by Debian. Original by Info-ZIP. + echo "*.fc filter=failclean" >.gitattributes && -Latest sources and executables are at ftp://ftp.info-zip.org/pub/infozip/ ; -see ftp://ftp.info-zip.org/pub/infozip/UnZip.html for other sites. + echo test >test.fc && + test_must_fail git add test.fc -Compiled with gcc 10.2.1 20210110 for Unix (Linux ELF). - -UnZip special compilation options: - ACORN_FTYPE_NFS - COPYRIGHT_CLEAN (PKZIP 0.9x unreducing method not supported) - SET_DIR_ATTRIB - SYMLINKS (symbolic links supported, if RTL and file system permit) - TIMESTAMP - UNIXBACKUP - USE_EF_UT_TIME - USE_UNSHRINK (PKZIP/Zip 1.x unshrinking method supported) - USE_DEFLATE64 (PKZIP 4.x Deflate64(tm) supported) - UNICODE_SUPPORT [wide-chars, char coding: other] (handle UTF-8 paths) - LARGE_FILE_SUPPORT (large files over 2 GiB supported) - ZIP64_SUPPORT (archives using Zip64 for large files supported) - USE_BZIP2 (PKZIP 4.6+, using bzip2 lib version 1.0.8, 13-Jul-2019) - VMS_TEXT_CONV - WILD_STOP_AT_DIR - [decryption, version 2.11 of 05 Jan 2007] - -UnZip and ZipInfo environment options: - UNZIP: [none] - UNZIPOPT: [none] - ZIPINFO: [none] - ZIPINFOOPT: [none] -prerequisite UNZIP ok -expecting success of 0024.3 'zip archive': - - git archive --format=zip HEAD >test.zip && - - ( mkdir unzipped && cd unzipped && "$GIT_UNZIP" ../test.zip ) && - - test_cmp sample unzipped/sample - - -Archive: ../test.zip -4f7f1aaec1ee996d8f5e13c2cfbd43a378578e1f - extracting: sample -ok 3 - zip archive - -# passed all 3 test(s) -1..3 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t0025-crlf-renormalize.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0025-crlf-renormalize/.git/ -expecting success of 0025.1 'setup': - git config core.autocrlf false && - printf "LINEONE\nLINETWO\nLINETHREE\n" >LF.txt && - printf "LINEONE\r\nLINETWO\r\nLINETHREE\r\n" >CRLF.txt && - printf "LINEONE\r\nLINETWO\nLINETHREE\n" >CRLF_mix_LF.txt && - git add . && - git commit -m initial - -[master (root-commit) 98c48e8] initial - Author: A U Thor - 3 files changed, 9 insertions(+) - create mode 100644 CRLF.txt - create mode 100644 CRLF_mix_LF.txt - create mode 100644 LF.txt -ok 1 - setup - -expecting success of 0025.2 'renormalize CRLF in repo': - echo "*.txt text=auto" >.gitattributes && - git add --renormalize "*.txt" && - cat >expect <<-\EOF && - i/lf w/crlf attr/text=auto CRLF.txt - i/lf w/lf attr/text=auto LF.txt - i/lf w/mixed attr/text=auto CRLF_mix_LF.txt - EOF - git ls-files --eol | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 2 - renormalize CRLF in repo - -expecting success of 0025.3 'ignore-errors not mistaken for renormalize': - git reset --hard && - echo "*.txt text=auto" >.gitattributes && - git ls-files --eol >expect && - git add --ignore-errors "*.txt" && - git ls-files --eol >actual && - test_cmp expect actual - -HEAD is now at 98c48e8 initial -ok 3 - ignore-errors not mistaken for renormalize - -# passed all 3 test(s) -1..3 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t0026-eol-config.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0026-eol-config/.git/ -expecting success of 0026.1 'setup': - - git config core.autocrlf false && - - echo "one text" > .gitattributes && - - for w in Hello world how are you; do echo $w; done >one && - for w in I am very very fine thank you; do echo $w; done >two && - git add . && - - git commit -m initial && - - one=$(git rev-parse HEAD:one) && - two=$(git rev-parse HEAD:two) && - - echo happy. - -[master (root-commit) f7a09ee] initial - Author: A U Thor - 3 files changed, 13 insertions(+) - create mode 100644 .gitattributes - create mode 100644 one - create mode 100644 two -happy. -ok 1 - setup - -expecting success of 0026.2 'eol=lf puts LFs in normalized file': - - rm -f .gitattributes tmp one two && - git config core.eol lf && - git read-tree --reset -u HEAD && - - ! has_cr one && - ! has_cr two && - onediff=$(git diff one) && - twodiff=$(git diff two) && - test -z "$onediff" && test -z "$twodiff" - -ok 2 - eol=lf puts LFs in normalized file - -expecting success of 0026.3 'eol=crlf puts CRLFs in normalized file': - - rm -f .gitattributes tmp one two && - git config core.eol crlf && - git read-tree --reset -u HEAD && - - has_cr one && - ! has_cr two && - onediff=$(git diff one) && - twodiff=$(git diff two) && - test -z "$onediff" && test -z "$twodiff" - -ok 3 - eol=crlf puts CRLFs in normalized file - -expecting success of 0026.4 'autocrlf=true overrides eol=lf': - - rm -f .gitattributes tmp one two && - git config core.eol lf && - git config core.autocrlf true && - git read-tree --reset -u HEAD && - - has_cr one && - has_cr two && - onediff=$(git diff one) && - twodiff=$(git diff two) && - test -z "$onediff" && test -z "$twodiff" - -ok 4 - autocrlf=true overrides eol=lf - -expecting success of 0026.5 'autocrlf=true overrides unset eol': - - rm -f .gitattributes tmp one two && - git config --unset-all core.eol && - git config core.autocrlf true && - git read-tree --reset -u HEAD && - - has_cr one && - has_cr two && - onediff=$(git diff one) && - twodiff=$(git diff two) && - test -z "$onediff" && test -z "$twodiff" - -ok 5 - autocrlf=true overrides unset eol - -ok 6 # skip eol native is crlf (missing NATIVE_CRLF) - -# passed all 6 test(s) -1..6 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t0028-working-tree-encoding.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0028-working-tree-encoding/.git/ -expecting success of 0028.1 'setup test files': - git config core.eol lf && - - text="hallo there!\ncan you read me?" && - echo "*.utf16 text working-tree-encoding=utf-16" >.gitattributes && - echo "*.utf16lebom text working-tree-encoding=UTF-16LE-BOM" >>.gitattributes && - printf "$text" >test.utf8.raw && - printf "$text" | write_utf16 >test.utf16.raw && - printf "$text" | write_utf32 >test.utf32.raw && - printf "\377\376" >test.utf16lebom.raw && - printf "$text" | iconv -f UTF-8 -t UTF-16LE >>test.utf16lebom.raw && - - # Line ending tests - printf "one\ntwo\nthree\n" >lf.utf8.raw && - printf "one\r\ntwo\r\nthree\r\n" >crlf.utf8.raw && - - # BOM tests - printf "\0a\0b\0c" >nobom.utf16be.raw && - printf "a\0b\0c\0" >nobom.utf16le.raw && - printf "\376\377\0a\0b\0c" >bebom.utf16be.raw && - printf "\377\376a\0b\0c\0" >lebom.utf16le.raw && - printf "\0\0\0a\0\0\0b\0\0\0c" >nobom.utf32be.raw && - printf "a\0\0\0b\0\0\0c\0\0\0" >nobom.utf32le.raw && - printf "\0\0\376\377\0\0\0a\0\0\0b\0\0\0c" >bebom.utf32be.raw && - printf "\377\376\0\0a\0\0\0b\0\0\0c\0\0\0" >lebom.utf32le.raw && - - # Add only UTF-16 file, we will add the UTF-32 file later - cp test.utf16.raw test.utf16 && - cp test.utf32.raw test.utf32 && - cp test.utf16lebom.raw test.utf16lebom && - git add .gitattributes test.utf16 test.utf16lebom && - git commit -m initial - -checking prerequisite: NO_UTF16_BOM - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-NO_UTF16_BOM" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-NO_UTF16_BOM" && - test $(printf abc | iconv -f UTF-8 -t UTF-16 | wc -c) = 6 - -) -prerequisite NO_UTF16_BOM not satisfied -checking prerequisite: NO_UTF32_BOM - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-NO_UTF32_BOM" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-NO_UTF32_BOM" && - test $(printf abc | iconv -f UTF-8 -t UTF-32 | wc -c) = 12 - -) -prerequisite NO_UTF32_BOM not satisfied -source (test.utf16, considered utf-16): -|  0: ff   |  1: fe   |  2: 68 h |  3: 0   |  4: 61 a |  5: 0   |  6: 6c l |  7: 0   -|  8: 6c l |  9: 0   | 10: 6f o | 11: 0   | 12: 20   | 13: 0   | 14: 74 t | 15: 0   -| 16: 68 h | 17: 0   | 18: 65 e | 19: 0   | 20: 72 r | 21: 0   | 22: 65 e | 23: 0   -| 24: 21 ! | 25: 0   | 26: a   | 27: 0   | 28: 63 c | 29: 0   | 30: 61 a | 31: 0   -| 32: 6e n | 33: 0   | 34: 20   | 35: 0   | 36: 79 y | 37: 0   | 38: 6f o | 39: 0   -| 40: 75 u | 41: 0   | 42: 20   | 43: 0   | 44: 72 r | 45: 0   | 46: 65 e | 47: 0   -| 48: 61 a | 49: 0   | 50: 64 d | 51: 0   | 52: 20   | 53: 0   | 54: 6d m | 55: 0   -| 56: 65 e | 57: 0   | 58: 3f ? | 59: 0   - -destination (test.utf16, considered UTF-8): -|  0: 68 h |  1: 61 a |  2: 6c l |  3: 6c l |  4: 6f o |  5: 20   |  6: 74 t |  7: 68 h -|  8: 65 e |  9: 72 r | 10: 65 e | 11: 21 ! | 12: a   | 13: 63 c | 14: 61 a | 15: 6e n -| 16: 20   | 17: 79 y | 18: 6f o | 19: 75 u | 20: 20   | 21: 72 r | 22: 65 e | 23: 61 a -| 24: 64 d | 25: 20   | 26: 6d m | 27: 65 e | 28: 3f ? - -source (test.utf16lebom, considered UTF-16LE-BOM): -|  0: ff   |  1: fe   |  2: 68 h |  3: 0   |  4: 61 a |  5: 0   |  6: 6c l |  7: 0   -|  8: 6c l |  9: 0   | 10: 6f o | 11: 0   | 12: 20   | 13: 0   | 14: 74 t | 15: 0   -| 16: 68 h | 17: 0   | 18: 65 e | 19: 0   | 20: 72 r | 21: 0   | 22: 65 e | 23: 0   -| 24: 21 ! | 25: 0   | 26: a   | 27: 0   | 28: 63 c | 29: 0   | 30: 61 a | 31: 0   -| 32: 6e n | 33: 0   | 34: 20   | 35: 0   | 36: 79 y | 37: 0   | 38: 6f o | 39: 0   -| 40: 75 u | 41: 0   | 42: 20   | 43: 0   | 44: 72 r | 45: 0   | 46: 65 e | 47: 0   -| 48: 61 a | 49: 0   | 50: 64 d | 51: 0   | 52: 20   | 53: 0   | 54: 6d m | 55: 0   -| 56: 65 e | 57: 0   | 58: 3f ? | 59: 0   - -destination (test.utf16lebom, considered UTF-8): -|  0: 68 h |  1: 61 a |  2: 6c l |  3: 6c l |  4: 6f o |  5: 20   |  6: 74 t |  7: 68 h -|  8: 65 e |  9: 72 r | 10: 65 e | 11: 21 ! | 12: a   | 13: 63 c | 14: 61 a | 15: 6e n -| 16: 20   | 17: 79 y | 18: 6f o | 19: 75 u | 20: 20   | 21: 72 r | 22: 65 e | 23: 61 a -| 24: 64 d | 25: 20   | 26: 6d m | 27: 65 e | 28: 3f ? - -source (test.utf16lebom, considered UTF-16LE-BOM): -|  0: ff   |  1: fe   |  2: 68 h |  3: 0   |  4: 61 a |  5: 0   |  6: 6c l |  7: 0   -|  8: 6c l |  9: 0   | 10: 6f o | 11: 0   | 12: 20   | 13: 0   | 14: 74 t | 15: 0   -| 16: 68 h | 17: 0   | 18: 65 e | 19: 0   | 20: 72 r | 21: 0   | 22: 65 e | 23: 0   -| 24: 21 ! | 25: 0   | 26: a   | 27: 0   | 28: 63 c | 29: 0   | 30: 61 a | 31: 0   -| 32: 6e n | 33: 0   | 34: 20   | 35: 0   | 36: 79 y | 37: 0   | 38: 6f o | 39: 0   -| 40: 75 u | 41: 0   | 42: 20   | 43: 0   | 44: 72 r | 45: 0   | 46: 65 e | 47: 0   -| 48: 61 a | 49: 0   | 50: 64 d | 51: 0   | 52: 20   | 53: 0   | 54: 6d m | 55: 0   -| 56: 65 e | 57: 0   | 58: 3f ? | 59: 0   - -destination (test.utf16lebom, considered UTF-8): -|  0: 68 h |  1: 61 a |  2: 6c l |  3: 6c l |  4: 6f o |  5: 20   |  6: 74 t |  7: 68 h -|  8: 65 e |  9: 72 r | 10: 65 e | 11: 21 ! | 12: a   | 13: 63 c | 14: 61 a | 15: 6e n -| 16: 20   | 17: 79 y | 18: 6f o | 19: 75 u | 20: 20   | 21: 72 r | 22: 65 e | 23: 61 a -| 24: 64 d | 25: 20   | 26: 6d m | 27: 65 e | 28: 3f ? - -[master (root-commit) dfb2bb8] initial - Author: A U Thor - 3 files changed, 6 insertions(+) - create mode 100644 .gitattributes - create mode 100644 test.utf16 - create mode 100644 test.utf16lebom -ok 1 - setup test files - -expecting success of 0028.2 'ensure UTF-8 is stored in Git': - test_when_finished "rm -f test.utf16.git" && - - git cat-file -p :test.utf16 >test.utf16.git && - test_cmp_bin test.utf8.raw test.utf16.git - -ok 2 - ensure UTF-8 is stored in Git - -expecting success of 0028.3 're-encode to UTF-16 on checkout': - test_when_finished "rm -f test.utf16.raw" && - - rm test.utf16 && - git checkout test.utf16 && - test_cmp_bin test.utf16.raw test.utf16 - -Updated 1 path from the index -source (test.utf16lebom, considered UTF-16LE-BOM): -|  0: ff   |  1: fe   |  2: 68 h |  3: 0   |  4: 61 a |  5: 0   |  6: 6c l |  7: 0   -|  8: 6c l |  9: 0   | 10: 6f o | 11: 0   | 12: 20   | 13: 0   | 14: 74 t | 15: 0   -| 16: 68 h | 17: 0   | 18: 65 e | 19: 0   | 20: 72 r | 21: 0   | 22: 65 e | 23: 0   -| 24: 21 ! | 25: 0   | 26: a   | 27: 0   | 28: 63 c | 29: 0   | 30: 61 a | 31: 0   -| 32: 6e n | 33: 0   | 34: 20   | 35: 0   | 36: 79 y | 37: 0   | 38: 6f o | 39: 0   -| 40: 75 u | 41: 0   | 42: 20   | 43: 0   | 44: 72 r | 45: 0   | 46: 65 e | 47: 0   -| 48: 61 a | 49: 0   | 50: 64 d | 51: 0   | 52: 20   | 53: 0   | 54: 6d m | 55: 0   -| 56: 65 e | 57: 0   | 58: 3f ? | 59: 0   - -destination (test.utf16lebom, considered UTF-8): -|  0: 68 h |  1: 61 a |  2: 6c l |  3: 6c l |  4: 6f o |  5: 20   |  6: 74 t |  7: 68 h -|  8: 65 e |  9: 72 r | 10: 65 e | 11: 21 ! | 12: a   | 13: 63 c | 14: 61 a | 15: 6e n -| 16: 20   | 17: 79 y | 18: 6f o | 19: 75 u | 20: 20   | 21: 72 r | 22: 65 e | 23: 61 a -| 24: 64 d | 25: 20   | 26: 6d m | 27: 65 e | 28: 3f ? - -ok 3 - re-encode to UTF-16 on checkout - -expecting success of 0028.4 're-encode to UTF-16-LE-BOM on checkout': - rm test.utf16lebom && - git checkout test.utf16lebom && - test_cmp_bin test.utf16lebom.raw test.utf16lebom - -Updated 1 path from the index -source (test.utf16, considered utf-16): -|  0: ff   |  1: fe   |  2: 68 h |  3: 0   |  4: 61 a |  5: 0   |  6: 6c l |  7: 0   -|  8: 6c l |  9: 0   | 10: 6f o | 11: 0   | 12: 20   | 13: 0   | 14: 74 t | 15: 0   -| 16: 68 h | 17: 0   | 18: 65 e | 19: 0   | 20: 72 r | 21: 0   | 22: 65 e | 23: 0   -| 24: 21 ! | 25: 0   | 26: a   | 27: 0   | 28: 63 c | 29: 0   | 30: 61 a | 31: 0   -| 32: 6e n | 33: 0   | 34: 20   | 35: 0   | 36: 79 y | 37: 0   | 38: 6f o | 39: 0   -| 40: 75 u | 41: 0   | 42: 20   | 43: 0   | 44: 72 r | 45: 0   | 46: 65 e | 47: 0   -| 48: 61 a | 49: 0   | 50: 64 d | 51: 0   | 52: 20   | 53: 0   | 54: 6d m | 55: 0   -| 56: 65 e | 57: 0   | 58: 3f ? | 59: 0   - -destination (test.utf16, considered UTF-8): -|  0: 68 h |  1: 61 a |  2: 6c l |  3: 6c l |  4: 6f o |  5: 20   |  6: 74 t |  7: 68 h -|  8: 65 e |  9: 72 r | 10: 65 e | 11: 21 ! | 12: a   | 13: 63 c | 14: 61 a | 15: 6e n -| 16: 20   | 17: 79 y | 18: 6f o | 19: 75 u | 20: 20   | 21: 72 r | 22: 65 e | 23: 61 a -| 24: 64 d | 25: 20   | 26: 6d m | 27: 65 e | 28: 3f ? - -ok 4 - re-encode to UTF-16-LE-BOM on checkout - -expecting success of 0028.5 'check $GIT_DIR/info/attributes support': - test_when_finished "rm -f test.utf32.git" && - test_when_finished "git reset --hard HEAD" && - - echo "*.utf32 text working-tree-encoding=utf-32" >.git/info/attributes && - git add test.utf32 && - - git cat-file -p :test.utf32 >test.utf32.git && - test_cmp_bin test.utf8.raw test.utf32.git - -source (test.utf32, considered utf-32): -|  0: ff   |  1: fe   |  2: 0   |  3: 0   |  4: 68 h |  5: 0   |  6: 0   |  7: 0   -|  8: 61 a |  9: 0   | 10: 0   | 11: 0   | 12: 6c l | 13: 0   | 14: 0   | 15: 0   -| 16: 6c l | 17: 0   | 18: 0   | 19: 0   | 20: 6f o | 21: 0   | 22: 0   | 23: 0   -| 24: 20   | 25: 0   | 26: 0   | 27: 0   | 28: 74 t | 29: 0   | 30: 0   | 31: 0   -| 32: 68 h | 33: 0   | 34: 0   | 35: 0   | 36: 65 e | 37: 0   | 38: 0   | 39: 0   -| 40: 72 r | 41: 0   | 42: 0   | 43: 0   | 44: 65 e | 45: 0   | 46: 0   | 47: 0   -| 48: 21 ! | 49: 0   | 50: 0   | 51: 0   | 52: a   | 53: 0   | 54: 0   | 55: 0   -| 56: 63 c | 57: 0   | 58: 0   | 59: 0   | 60: 61 a | 61: 0   | 62: 0   | 63: 0   -| 64: 6e n | 65: 0   | 66: 0   | 67: 0   | 68: 20   | 69: 0   | 70: 0   | 71: 0   -| 72: 79 y | 73: 0   | 74: 0   | 75: 0   | 76: 6f o | 77: 0   | 78: 0   | 79: 0   -| 80: 75 u | 81: 0   | 82: 0   | 83: 0   | 84: 20   | 85: 0   | 86: 0   | 87: 0   -| 88: 72 r | 89: 0   | 90: 0   | 91: 0   | 92: 65 e | 93: 0   | 94: 0   | 95: 0   -| 96: 61 a | 97: 0   | 98: 0   | 99: 0   | 100: 64 d | 101: 0   | 102: 0   | 103: 0   -| 104: 20   | 105: 0   | 106: 0   | 107: 0   | 108: 6d m | 109: 0   | 110: 0   | 111: 0   -| 112: 65 e | 113: 0   | 114: 0   | 115: 0   | 116: 3f ? | 117: 0   | 118: 0   | 119: 0   - -destination (test.utf32, considered UTF-8): -|  0: 68 h |  1: 61 a |  2: 6c l |  3: 6c l |  4: 6f o |  5: 20   |  6: 74 t |  7: 68 h -|  8: 65 e |  9: 72 r | 10: 65 e | 11: 21 ! | 12: a   | 13: 63 c | 14: 61 a | 15: 6e n -| 16: 20   | 17: 79 y | 18: 6f o | 19: 75 u | 20: 20   | 21: 72 r | 22: 65 e | 23: 61 a -| 24: 64 d | 25: 20   | 26: 6d m | 27: 65 e | 28: 3f ? - -source (test.utf16, considered utf-16): -|  0: ff   |  1: fe   |  2: 68 h |  3: 0   |  4: 61 a |  5: 0   |  6: 6c l |  7: 0   -|  8: 6c l |  9: 0   | 10: 6f o | 11: 0   | 12: 20   | 13: 0   | 14: 74 t | 15: 0   -| 16: 68 h | 17: 0   | 18: 65 e | 19: 0   | 20: 72 r | 21: 0   | 22: 65 e | 23: 0   -| 24: 21 ! | 25: 0   | 26: a   | 27: 0   | 28: 63 c | 29: 0   | 30: 61 a | 31: 0   -| 32: 6e n | 33: 0   | 34: 20   | 35: 0   | 36: 79 y | 37: 0   | 38: 6f o | 39: 0   -| 40: 75 u | 41: 0   | 42: 20   | 43: 0   | 44: 72 r | 45: 0   | 46: 65 e | 47: 0   -| 48: 61 a | 49: 0   | 50: 64 d | 51: 0   | 52: 20   | 53: 0   | 54: 6d m | 55: 0   -| 56: 65 e | 57: 0   | 58: 3f ? | 59: 0   - -destination (test.utf16, considered UTF-8): -|  0: 68 h |  1: 61 a |  2: 6c l |  3: 6c l |  4: 6f o |  5: 20   |  6: 74 t |  7: 68 h -|  8: 65 e |  9: 72 r | 10: 65 e | 11: 21 ! | 12: a   | 13: 63 c | 14: 61 a | 15: 6e n -| 16: 20   | 17: 79 y | 18: 6f o | 19: 75 u | 20: 20   | 21: 72 r | 22: 65 e | 23: 61 a -| 24: 64 d | 25: 20   | 26: 6d m | 27: 65 e | 28: 3f ? - -source (test.utf16lebom, considered UTF-16LE-BOM): -|  0: ff   |  1: fe   |  2: 68 h |  3: 0   |  4: 61 a |  5: 0   |  6: 6c l |  7: 0   -|  8: 6c l |  9: 0   | 10: 6f o | 11: 0   | 12: 20   | 13: 0   | 14: 74 t | 15: 0   -| 16: 68 h | 17: 0   | 18: 65 e | 19: 0   | 20: 72 r | 21: 0   | 22: 65 e | 23: 0   -| 24: 21 ! | 25: 0   | 26: a   | 27: 0   | 28: 63 c | 29: 0   | 30: 61 a | 31: 0   -| 32: 6e n | 33: 0   | 34: 20   | 35: 0   | 36: 79 y | 37: 0   | 38: 6f o | 39: 0   -| 40: 75 u | 41: 0   | 42: 20   | 43: 0   | 44: 72 r | 45: 0   | 46: 65 e | 47: 0   -| 48: 61 a | 49: 0   | 50: 64 d | 51: 0   | 52: 20   | 53: 0   | 54: 6d m | 55: 0   -| 56: 65 e | 57: 0   | 58: 3f ? | 59: 0   - -destination (test.utf16lebom, considered UTF-8): -|  0: 68 h |  1: 61 a |  2: 6c l |  3: 6c l |  4: 6f o |  5: 20   |  6: 74 t |  7: 68 h -|  8: 65 e |  9: 72 r | 10: 65 e | 11: 21 ! | 12: a   | 13: 63 c | 14: 61 a | 15: 6e n -| 16: 20   | 17: 79 y | 18: 6f o | 19: 75 u | 20: 20   | 21: 72 r | 22: 65 e | 23: 61 a -| 24: 64 d | 25: 20   | 26: 6d m | 27: 65 e | 28: 3f ? - -source (test.utf16, considered utf-16): -|  0: ff   |  1: fe   |  2: 68 h |  3: 0   |  4: 61 a |  5: 0   |  6: 6c l |  7: 0   -|  8: 6c l |  9: 0   | 10: 6f o | 11: 0   | 12: 20   | 13: 0   | 14: 74 t | 15: 0   -| 16: 68 h | 17: 0   | 18: 65 e | 19: 0   | 20: 72 r | 21: 0   | 22: 65 e | 23: 0   -| 24: 21 ! | 25: 0   | 26: a   | 27: 0   | 28: 63 c | 29: 0   | 30: 61 a | 31: 0   -| 32: 6e n | 33: 0   | 34: 20   | 35: 0   | 36: 79 y | 37: 0   | 38: 6f o | 39: 0   -| 40: 75 u | 41: 0   | 42: 20   | 43: 0   | 44: 72 r | 45: 0   | 46: 65 e | 47: 0   -| 48: 61 a | 49: 0   | 50: 64 d | 51: 0   | 52: 20   | 53: 0   | 54: 6d m | 55: 0   -| 56: 65 e | 57: 0   | 58: 3f ? | 59: 0   - -destination (test.utf16, considered UTF-8): -|  0: 68 h |  1: 61 a |  2: 6c l |  3: 6c l |  4: 6f o |  5: 20   |  6: 74 t |  7: 68 h -|  8: 65 e |  9: 72 r | 10: 65 e | 11: 21 ! | 12: a   | 13: 63 c | 14: 61 a | 15: 6e n -| 16: 20   | 17: 79 y | 18: 6f o | 19: 75 u | 20: 20   | 21: 72 r | 22: 65 e | 23: 61 a -| 24: 64 d | 25: 20   | 26: 6d m | 27: 65 e | 28: 3f ? - -source (test.utf16lebom, considered UTF-16LE-BOM): -|  0: ff   |  1: fe   |  2: 68 h |  3: 0   |  4: 61 a |  5: 0   |  6: 6c l |  7: 0   -|  8: 6c l |  9: 0   | 10: 6f o | 11: 0   | 12: 20   | 13: 0   | 14: 74 t | 15: 0   -| 16: 68 h | 17: 0   | 18: 65 e | 19: 0   | 20: 72 r | 21: 0   | 22: 65 e | 23: 0   -| 24: 21 ! | 25: 0   | 26: a   | 27: 0   | 28: 63 c | 29: 0   | 30: 61 a | 31: 0   -| 32: 6e n | 33: 0   | 34: 20   | 35: 0   | 36: 79 y | 37: 0   | 38: 6f o | 39: 0   -| 40: 75 u | 41: 0   | 42: 20   | 43: 0   | 44: 72 r | 45: 0   | 46: 65 e | 47: 0   -| 48: 61 a | 49: 0   | 50: 64 d | 51: 0   | 52: 20   | 53: 0   | 54: 6d m | 55: 0   -| 56: 65 e | 57: 0   | 58: 3f ? | 59: 0   - -destination (test.utf16lebom, considered UTF-8): -|  0: 68 h |  1: 61 a |  2: 6c l |  3: 6c l |  4: 6f o |  5: 20   |  6: 74 t |  7: 68 h -|  8: 65 e |  9: 72 r | 10: 65 e | 11: 21 ! | 12: a   | 13: 63 c | 14: 61 a | 15: 6e n -| 16: 20   | 17: 79 y | 18: 6f o | 19: 75 u | 20: 20   | 21: 72 r | 22: 65 e | 23: 61 a -| 24: 64 d | 25: 20   | 26: 6d m | 27: 65 e | 28: 3f ? - -source (test.utf16, considered utf-16): -|  0: ff   |  1: fe   |  2: 68 h |  3: 0   |  4: 61 a |  5: 0   |  6: 6c l |  7: 0   -|  8: 6c l |  9: 0   | 10: 6f o | 11: 0   | 12: 20   | 13: 0   | 14: 74 t | 15: 0   -| 16: 68 h | 17: 0   | 18: 65 e | 19: 0   | 20: 72 r | 21: 0   | 22: 65 e | 23: 0   -| 24: 21 ! | 25: 0   | 26: a   | 27: 0   | 28: 63 c | 29: 0   | 30: 61 a | 31: 0   -| 32: 6e n | 33: 0   | 34: 20   | 35: 0   | 36: 79 y | 37: 0   | 38: 6f o | 39: 0   -| 40: 75 u | 41: 0   | 42: 20   | 43: 0   | 44: 72 r | 45: 0   | 46: 65 e | 47: 0   -| 48: 61 a | 49: 0   | 50: 64 d | 51: 0   | 52: 20   | 53: 0   | 54: 6d m | 55: 0   -| 56: 65 e | 57: 0   | 58: 3f ? | 59: 0   - -destination (test.utf16, considered UTF-8): -|  0: 68 h |  1: 61 a |  2: 6c l |  3: 6c l |  4: 6f o |  5: 20   |  6: 74 t |  7: 68 h -|  8: 65 e |  9: 72 r | 10: 65 e | 11: 21 ! | 12: a   | 13: 63 c | 14: 61 a | 15: 6e n -| 16: 20   | 17: 79 y | 18: 6f o | 19: 75 u | 20: 20   | 21: 72 r | 22: 65 e | 23: 61 a -| 24: 64 d | 25: 20   | 26: 6d m | 27: 65 e | 28: 3f ? - -source (test.utf16lebom, considered UTF-16LE-BOM): -|  0: ff   |  1: fe   |  2: 68 h |  3: 0   |  4: 61 a |  5: 0   |  6: 6c l |  7: 0   -|  8: 6c l |  9: 0   | 10: 6f o | 11: 0   | 12: 20   | 13: 0   | 14: 74 t | 15: 0   -| 16: 68 h | 17: 0   | 18: 65 e | 19: 0   | 20: 72 r | 21: 0   | 22: 65 e | 23: 0   -| 24: 21 ! | 25: 0   | 26: a   | 27: 0   | 28: 63 c | 29: 0   | 30: 61 a | 31: 0   -| 32: 6e n | 33: 0   | 34: 20   | 35: 0   | 36: 79 y | 37: 0   | 38: 6f o | 39: 0   -| 40: 75 u | 41: 0   | 42: 20   | 43: 0   | 44: 72 r | 45: 0   | 46: 65 e | 47: 0   -| 48: 61 a | 49: 0   | 50: 64 d | 51: 0   | 52: 20   | 53: 0   | 54: 6d m | 55: 0   -| 56: 65 e | 57: 0   | 58: 3f ? | 59: 0   - -destination (test.utf16lebom, considered UTF-8): -|  0: 68 h |  1: 61 a |  2: 6c l |  3: 6c l |  4: 6f o |  5: 20   |  6: 74 t |  7: 68 h -|  8: 65 e |  9: 72 r | 10: 65 e | 11: 21 ! | 12: a   | 13: 63 c | 14: 61 a | 15: 6e n -| 16: 20   | 17: 79 y | 18: 6f o | 19: 75 u | 20: 20   | 21: 72 r | 22: 65 e | 23: 61 a -| 24: 64 d | 25: 20   | 26: 6d m | 27: 65 e | 28: 3f ? - -HEAD is now at dfb2bb8 initial -ok 5 - check $GIT_DIR/info/attributes support - -expecting success of 0028.6 'check prohibited UTF-16 BOM': - test_when_finished "git reset --hard HEAD" && - - echo "*.utf${i}be text working-tree-encoding=utf-${i}be" >>.gitattributes && - echo "*.utf${i}le text working-tree-encoding=utf-${i}LE" >>.gitattributes && - - # Here we add a UTF-16 (resp. UTF-32) files with BOM (big/little-endian) - # but we tell Git to treat it as UTF-16BE/UTF-16LE (resp. UTF-32). - # In these cases the BOM is prohibited. - cp bebom.utf${i}be.raw bebom.utf${i}be && - test_must_fail git add bebom.utf${i}be 2>err.out && - test_i18ngrep "fatal: BOM is prohibited .* utf-${i}be" err.out && - test_i18ngrep "use UTF-${i} as working-tree-encoding" err.out && - - cp lebom.utf${i}le.raw lebom.utf${i}be && - test_must_fail git add lebom.utf${i}be 2>err.out && - test_i18ngrep "fatal: BOM is prohibited .* utf-${i}be" err.out && - test_i18ngrep "use UTF-${i} as working-tree-encoding" err.out && - - cp bebom.utf${i}be.raw bebom.utf${i}le && - test_must_fail git add bebom.utf${i}le 2>err.out && - test_i18ngrep "fatal: BOM is prohibited .* utf-${i}LE" err.out && - test_i18ngrep "use UTF-${i} as working-tree-encoding" err.out && - - cp lebom.utf${i}le.raw lebom.utf${i}le && - test_must_fail git add lebom.utf${i}le 2>err.out && - test_i18ngrep "fatal: BOM is prohibited .* utf-${i}LE" err.out && - test_i18ngrep "use UTF-${i} as working-tree-encoding" err.out - -checking prerequisite: C_LOCALE_OUTPUT - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false - -) -prerequisite C_LOCALE_OUTPUT ok -fatal: BOM is prohibited in 'bebom.utf16be' if encoded as utf-16be -hint: The file 'bebom.utf16be' contains a byte order mark (BOM). Please use UTF-16 as working-tree-encoding. -fatal: BOM is prohibited in 'lebom.utf16be' if encoded as utf-16be -hint: The file 'lebom.utf16be' contains a byte order mark (BOM). Please use UTF-16 as working-tree-encoding. -fatal: BOM is prohibited in 'bebom.utf16le' if encoded as utf-16LE -hint: The file 'bebom.utf16le' contains a byte order mark (BOM). Please use UTF-16 as working-tree-encoding. -fatal: BOM is prohibited in 'lebom.utf16le' if encoded as utf-16LE -hint: The file 'lebom.utf16le' contains a byte order mark (BOM). Please use UTF-16 as working-tree-encoding. -source (test.utf16, considered utf-16): -|  0: ff   |  1: fe   |  2: 68 h |  3: 0   |  4: 61 a |  5: 0   |  6: 6c l |  7: 0   -|  8: 6c l |  9: 0   | 10: 6f o | 11: 0   | 12: 20   | 13: 0   | 14: 74 t | 15: 0   -| 16: 68 h | 17: 0   | 18: 65 e | 19: 0   | 20: 72 r | 21: 0   | 22: 65 e | 23: 0   -| 24: 21 ! | 25: 0   | 26: a   | 27: 0   | 28: 63 c | 29: 0   | 30: 61 a | 31: 0   -| 32: 6e n | 33: 0   | 34: 20   | 35: 0   | 36: 79 y | 37: 0   | 38: 6f o | 39: 0   -| 40: 75 u | 41: 0   | 42: 20   | 43: 0   | 44: 72 r | 45: 0   | 46: 65 e | 47: 0   -| 48: 61 a | 49: 0   | 50: 64 d | 51: 0   | 52: 20   | 53: 0   | 54: 6d m | 55: 0   -| 56: 65 e | 57: 0   | 58: 3f ? | 59: 0   - -destination (test.utf16, considered UTF-8): -|  0: 68 h |  1: 61 a |  2: 6c l |  3: 6c l |  4: 6f o |  5: 20   |  6: 74 t |  7: 68 h -|  8: 65 e |  9: 72 r | 10: 65 e | 11: 21 ! | 12: a   | 13: 63 c | 14: 61 a | 15: 6e n -| 16: 20   | 17: 79 y | 18: 6f o | 19: 75 u | 20: 20   | 21: 72 r | 22: 65 e | 23: 61 a -| 24: 64 d | 25: 20   | 26: 6d m | 27: 65 e | 28: 3f ? - -source (test.utf16lebom, considered UTF-16LE-BOM): -|  0: ff   |  1: fe   |  2: 68 h |  3: 0   |  4: 61 a |  5: 0   |  6: 6c l |  7: 0   -|  8: 6c l |  9: 0   | 10: 6f o | 11: 0   | 12: 20   | 13: 0   | 14: 74 t | 15: 0   -| 16: 68 h | 17: 0   | 18: 65 e | 19: 0   | 20: 72 r | 21: 0   | 22: 65 e | 23: 0   -| 24: 21 ! | 25: 0   | 26: a   | 27: 0   | 28: 63 c | 29: 0   | 30: 61 a | 31: 0   -| 32: 6e n | 33: 0   | 34: 20   | 35: 0   | 36: 79 y | 37: 0   | 38: 6f o | 39: 0   -| 40: 75 u | 41: 0   | 42: 20   | 43: 0   | 44: 72 r | 45: 0   | 46: 65 e | 47: 0   -| 48: 61 a | 49: 0   | 50: 64 d | 51: 0   | 52: 20   | 53: 0   | 54: 6d m | 55: 0   -| 56: 65 e | 57: 0   | 58: 3f ? | 59: 0   - -destination (test.utf16lebom, considered UTF-8): -|  0: 68 h |  1: 61 a |  2: 6c l |  3: 6c l |  4: 6f o |  5: 20   |  6: 74 t |  7: 68 h -|  8: 65 e |  9: 72 r | 10: 65 e | 11: 21 ! | 12: a   | 13: 63 c | 14: 61 a | 15: 6e n -| 16: 20   | 17: 79 y | 18: 6f o | 19: 75 u | 20: 20   | 21: 72 r | 22: 65 e | 23: 61 a -| 24: 64 d | 25: 20   | 26: 6d m | 27: 65 e | 28: 3f ? - -source (test.utf16, considered utf-16): -|  0: ff   |  1: fe   |  2: 68 h |  3: 0   |  4: 61 a |  5: 0   |  6: 6c l |  7: 0   -|  8: 6c l |  9: 0   | 10: 6f o | 11: 0   | 12: 20   | 13: 0   | 14: 74 t | 15: 0   -| 16: 68 h | 17: 0   | 18: 65 e | 19: 0   | 20: 72 r | 21: 0   | 22: 65 e | 23: 0   -| 24: 21 ! | 25: 0   | 26: a   | 27: 0   | 28: 63 c | 29: 0   | 30: 61 a | 31: 0   -| 32: 6e n | 33: 0   | 34: 20   | 35: 0   | 36: 79 y | 37: 0   | 38: 6f o | 39: 0   -| 40: 75 u | 41: 0   | 42: 20   | 43: 0   | 44: 72 r | 45: 0   | 46: 65 e | 47: 0   -| 48: 61 a | 49: 0   | 50: 64 d | 51: 0   | 52: 20   | 53: 0   | 54: 6d m | 55: 0   -| 56: 65 e | 57: 0   | 58: 3f ? | 59: 0   - -destination (test.utf16, considered UTF-8): -|  0: 68 h |  1: 61 a |  2: 6c l |  3: 6c l |  4: 6f o |  5: 20   |  6: 74 t |  7: 68 h -|  8: 65 e |  9: 72 r | 10: 65 e | 11: 21 ! | 12: a   | 13: 63 c | 14: 61 a | 15: 6e n -| 16: 20   | 17: 79 y | 18: 6f o | 19: 75 u | 20: 20   | 21: 72 r | 22: 65 e | 23: 61 a -| 24: 64 d | 25: 20   | 26: 6d m | 27: 65 e | 28: 3f ? - -source (test.utf16lebom, considered UTF-16LE-BOM): -|  0: ff   |  1: fe   |  2: 68 h |  3: 0   |  4: 61 a |  5: 0   |  6: 6c l |  7: 0   -|  8: 6c l |  9: 0   | 10: 6f o | 11: 0   | 12: 20   | 13: 0   | 14: 74 t | 15: 0   -| 16: 68 h | 17: 0   | 18: 65 e | 19: 0   | 20: 72 r | 21: 0   | 22: 65 e | 23: 0   -| 24: 21 ! | 25: 0   | 26: a   | 27: 0   | 28: 63 c | 29: 0   | 30: 61 a | 31: 0   -| 32: 6e n | 33: 0   | 34: 20   | 35: 0   | 36: 79 y | 37: 0   | 38: 6f o | 39: 0   -| 40: 75 u | 41: 0   | 42: 20   | 43: 0   | 44: 72 r | 45: 0   | 46: 65 e | 47: 0   -| 48: 61 a | 49: 0   | 50: 64 d | 51: 0   | 52: 20   | 53: 0   | 54: 6d m | 55: 0   -| 56: 65 e | 57: 0   | 58: 3f ? | 59: 0   - -destination (test.utf16lebom, considered UTF-8): -|  0: 68 h |  1: 61 a |  2: 6c l |  3: 6c l |  4: 6f o |  5: 20   |  6: 74 t |  7: 68 h -|  8: 65 e |  9: 72 r | 10: 65 e | 11: 21 ! | 12: a   | 13: 63 c | 14: 61 a | 15: 6e n -| 16: 20   | 17: 79 y | 18: 6f o | 19: 75 u | 20: 20   | 21: 72 r | 22: 65 e | 23: 61 a -| 24: 64 d | 25: 20   | 26: 6d m | 27: 65 e | 28: 3f ? - -HEAD is now at dfb2bb8 initial -ok 6 - check prohibited UTF-16 BOM - -expecting success of 0028.7 'check required UTF-16 BOM': - test_when_finished "git reset --hard HEAD" && - - echo "*.utf${i} text working-tree-encoding=utf-${i}" >>.gitattributes && - - cp nobom.utf${i}be.raw nobom.utf${i} && - test_must_fail git add nobom.utf${i} 2>err.out && - test_i18ngrep "fatal: BOM is required .* utf-${i}" err.out && - test_i18ngrep "use UTF-${i}BE or UTF-${i}LE" err.out && - - cp nobom.utf${i}le.raw nobom.utf${i} && - test_must_fail git add nobom.utf${i} 2>err.out && - test_i18ngrep "fatal: BOM is required .* utf-${i}" err.out && - test_i18ngrep "use UTF-${i}BE or UTF-${i}LE" err.out - -fatal: BOM is required in 'nobom.utf16' if encoded as utf-16 -hint: The file 'nobom.utf16' is missing a byte order mark (BOM). Please use UTF-16BE or UTF-16LE (depending on the byte order) as working-tree-encoding. -fatal: BOM is required in 'nobom.utf16' if encoded as utf-16 -hint: The file 'nobom.utf16' is missing a byte order mark (BOM). Please use UTF-16BE or UTF-16LE (depending on the byte order) as working-tree-encoding. -source (test.utf16, considered utf-16): -|  0: ff   |  1: fe   |  2: 68 h |  3: 0   |  4: 61 a |  5: 0   |  6: 6c l |  7: 0   -|  8: 6c l |  9: 0   | 10: 6f o | 11: 0   | 12: 20   | 13: 0   | 14: 74 t | 15: 0   -| 16: 68 h | 17: 0   | 18: 65 e | 19: 0   | 20: 72 r | 21: 0   | 22: 65 e | 23: 0   -| 24: 21 ! | 25: 0   | 26: a   | 27: 0   | 28: 63 c | 29: 0   | 30: 61 a | 31: 0   -| 32: 6e n | 33: 0   | 34: 20   | 35: 0   | 36: 79 y | 37: 0   | 38: 6f o | 39: 0   -| 40: 75 u | 41: 0   | 42: 20   | 43: 0   | 44: 72 r | 45: 0   | 46: 65 e | 47: 0   -| 48: 61 a | 49: 0   | 50: 64 d | 51: 0   | 52: 20   | 53: 0   | 54: 6d m | 55: 0   -| 56: 65 e | 57: 0   | 58: 3f ? | 59: 0   - -destination (test.utf16, considered UTF-8): -|  0: 68 h |  1: 61 a |  2: 6c l |  3: 6c l |  4: 6f o |  5: 20   |  6: 74 t |  7: 68 h -|  8: 65 e |  9: 72 r | 10: 65 e | 11: 21 ! | 12: a   | 13: 63 c | 14: 61 a | 15: 6e n -| 16: 20   | 17: 79 y | 18: 6f o | 19: 75 u | 20: 20   | 21: 72 r | 22: 65 e | 23: 61 a -| 24: 64 d | 25: 20   | 26: 6d m | 27: 65 e | 28: 3f ? - -source (test.utf16lebom, considered UTF-16LE-BOM): -|  0: ff   |  1: fe   |  2: 68 h |  3: 0   |  4: 61 a |  5: 0   |  6: 6c l |  7: 0   -|  8: 6c l |  9: 0   | 10: 6f o | 11: 0   | 12: 20   | 13: 0   | 14: 74 t | 15: 0   -| 16: 68 h | 17: 0   | 18: 65 e | 19: 0   | 20: 72 r | 21: 0   | 22: 65 e | 23: 0   -| 24: 21 ! | 25: 0   | 26: a   | 27: 0   | 28: 63 c | 29: 0   | 30: 61 a | 31: 0   -| 32: 6e n | 33: 0   | 34: 20   | 35: 0   | 36: 79 y | 37: 0   | 38: 6f o | 39: 0   -| 40: 75 u | 41: 0   | 42: 20   | 43: 0   | 44: 72 r | 45: 0   | 46: 65 e | 47: 0   -| 48: 61 a | 49: 0   | 50: 64 d | 51: 0   | 52: 20   | 53: 0   | 54: 6d m | 55: 0   -| 56: 65 e | 57: 0   | 58: 3f ? | 59: 0   - -destination (test.utf16lebom, considered UTF-8): -|  0: 68 h |  1: 61 a |  2: 6c l |  3: 6c l |  4: 6f o |  5: 20   |  6: 74 t |  7: 68 h -|  8: 65 e |  9: 72 r | 10: 65 e | 11: 21 ! | 12: a   | 13: 63 c | 14: 61 a | 15: 6e n -| 16: 20   | 17: 79 y | 18: 6f o | 19: 75 u | 20: 20   | 21: 72 r | 22: 65 e | 23: 61 a -| 24: 64 d | 25: 20   | 26: 6d m | 27: 65 e | 28: 3f ? - -source (test.utf16, considered utf-16): -|  0: ff   |  1: fe   |  2: 68 h |  3: 0   |  4: 61 a |  5: 0   |  6: 6c l |  7: 0   -|  8: 6c l |  9: 0   | 10: 6f o | 11: 0   | 12: 20   | 13: 0   | 14: 74 t | 15: 0   -| 16: 68 h | 17: 0   | 18: 65 e | 19: 0   | 20: 72 r | 21: 0   | 22: 65 e | 23: 0   -| 24: 21 ! | 25: 0   | 26: a   | 27: 0   | 28: 63 c | 29: 0   | 30: 61 a | 31: 0   -| 32: 6e n | 33: 0   | 34: 20   | 35: 0   | 36: 79 y | 37: 0   | 38: 6f o | 39: 0   -| 40: 75 u | 41: 0   | 42: 20   | 43: 0   | 44: 72 r | 45: 0   | 46: 65 e | 47: 0   -| 48: 61 a | 49: 0   | 50: 64 d | 51: 0   | 52: 20   | 53: 0   | 54: 6d m | 55: 0   -| 56: 65 e | 57: 0   | 58: 3f ? | 59: 0   - -destination (test.utf16, considered UTF-8): -|  0: 68 h |  1: 61 a |  2: 6c l |  3: 6c l |  4: 6f o |  5: 20   |  6: 74 t |  7: 68 h -|  8: 65 e |  9: 72 r | 10: 65 e | 11: 21 ! | 12: a   | 13: 63 c | 14: 61 a | 15: 6e n -| 16: 20   | 17: 79 y | 18: 6f o | 19: 75 u | 20: 20   | 21: 72 r | 22: 65 e | 23: 61 a -| 24: 64 d | 25: 20   | 26: 6d m | 27: 65 e | 28: 3f ? - -source (test.utf16lebom, considered UTF-16LE-BOM): -|  0: ff   |  1: fe   |  2: 68 h |  3: 0   |  4: 61 a |  5: 0   |  6: 6c l |  7: 0   -|  8: 6c l |  9: 0   | 10: 6f o | 11: 0   | 12: 20   | 13: 0   | 14: 74 t | 15: 0   -| 16: 68 h | 17: 0   | 18: 65 e | 19: 0   | 20: 72 r | 21: 0   | 22: 65 e | 23: 0   -| 24: 21 ! | 25: 0   | 26: a   | 27: 0   | 28: 63 c | 29: 0   | 30: 61 a | 31: 0   -| 32: 6e n | 33: 0   | 34: 20   | 35: 0   | 36: 79 y | 37: 0   | 38: 6f o | 39: 0   -| 40: 75 u | 41: 0   | 42: 20   | 43: 0   | 44: 72 r | 45: 0   | 46: 65 e | 47: 0   -| 48: 61 a | 49: 0   | 50: 64 d | 51: 0   | 52: 20   | 53: 0   | 54: 6d m | 55: 0   -| 56: 65 e | 57: 0   | 58: 3f ? | 59: 0   - -destination (test.utf16lebom, considered UTF-8): -|  0: 68 h |  1: 61 a |  2: 6c l |  3: 6c l |  4: 6f o |  5: 20   |  6: 74 t |  7: 68 h -|  8: 65 e |  9: 72 r | 10: 65 e | 11: 21 ! | 12: a   | 13: 63 c | 14: 61 a | 15: 6e n -| 16: 20   | 17: 79 y | 18: 6f o | 19: 75 u | 20: 20   | 21: 72 r | 22: 65 e | 23: 61 a -| 24: 64 d | 25: 20   | 26: 6d m | 27: 65 e | 28: 3f ? - -HEAD is now at dfb2bb8 initial -ok 7 - check required UTF-16 BOM - -expecting success of 0028.8 'eol conversion for UTF-16 encoded files on checkout': - test_when_finished "rm -f crlf.utf${i}.raw lf.utf${i}.raw" && - test_when_finished "git reset --hard HEAD^" && - - cat lf.utf8.raw | write_utf${i} >lf.utf${i}.raw && - cat crlf.utf8.raw | write_utf${i} >crlf.utf${i}.raw && - cp crlf.utf${i}.raw eol.utf${i} && - - cat >expectIndexLF <<-EOF && - i/lf w/-text attr/text eol.utf${i} - EOF - - git add eol.utf${i} && - git commit -m eol && - - # UTF-${i} with CRLF (Windows line endings) - rm eol.utf${i} && - git -c core.eol=crlf checkout eol.utf${i} && - test_cmp_bin crlf.utf${i}.raw eol.utf${i} && - - # Although the file has CRLF in the working tree, - # ensure LF in the index - git ls-files --eol eol.utf${i} >actual && - test_cmp expectIndexLF actual && - - # UTF-${i} with LF (Unix line endings) - rm eol.utf${i} && - git -c core.eol=lf checkout eol.utf${i} && - test_cmp_bin lf.utf${i}.raw eol.utf${i} && - - # The file LF in the working tree, ensure LF in the index - git ls-files --eol eol.utf${i} >actual && - test_cmp expectIndexLF actual - -checking prerequisite: NO_UTF16_BOM - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-NO_UTF16_BOM" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-NO_UTF16_BOM" && - test $(printf abc | iconv -f UTF-8 -t UTF-16 | wc -c) = 6 - -) -prerequisite NO_UTF16_BOM not satisfied -checking prerequisite: NO_UTF16_BOM - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-NO_UTF16_BOM" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-NO_UTF16_BOM" && - test $(printf abc | iconv -f UTF-8 -t UTF-16 | wc -c) = 6 - -) -prerequisite NO_UTF16_BOM not satisfied -source (eol.utf16, considered utf-16): -|  0: ff   |  1: fe   |  2: 6f o |  3: 0   |  4: 6e n |  5: 0   |  6: 65 e |  7: 0   -|  8: d   |  9: 0   | 10: a   | 11: 0   | 12: 74 t | 13: 0   | 14: 77 w | 15: 0   -| 16: 6f o | 17: 0   | 18: d   | 19: 0   | 20: a   | 21: 0   | 22: 74 t | 23: 0   -| 24: 68 h | 25: 0   | 26: 72 r | 27: 0   | 28: 65 e | 29: 0   | 30: 65 e | 31: 0   -| 32: d   | 33: 0   | 34: a   | 35: 0   - -destination (eol.utf16, considered UTF-8): -|  0: 6f o |  1: 6e n |  2: 65 e |  3: d   |  4: a   |  5: 74 t |  6: 77 w |  7: 6f o -|  8: d   |  9: a   | 10: 74 t | 11: 68 h | 12: 72 r | 13: 65 e | 14: 65 e | 15: d   -| 16: a   - -warning: CRLF will be replaced by LF in eol.utf16. -The file will have its original line endings in your working directory -source (test.utf16, considered utf-16): -|  0: ff   |  1: fe   |  2: 68 h |  3: 0   |  4: 61 a |  5: 0   |  6: 6c l |  7: 0   -|  8: 6c l |  9: 0   | 10: 6f o | 11: 0   | 12: 20   | 13: 0   | 14: 74 t | 15: 0   -| 16: 68 h | 17: 0   | 18: 65 e | 19: 0   | 20: 72 r | 21: 0   | 22: 65 e | 23: 0   -| 24: 21 ! | 25: 0   | 26: a   | 27: 0   | 28: 63 c | 29: 0   | 30: 61 a | 31: 0   -| 32: 6e n | 33: 0   | 34: 20   | 35: 0   | 36: 79 y | 37: 0   | 38: 6f o | 39: 0   -| 40: 75 u | 41: 0   | 42: 20   | 43: 0   | 44: 72 r | 45: 0   | 46: 65 e | 47: 0   -| 48: 61 a | 49: 0   | 50: 64 d | 51: 0   | 52: 20   | 53: 0   | 54: 6d m | 55: 0   -| 56: 65 e | 57: 0   | 58: 3f ? | 59: 0   - -destination (test.utf16, considered UTF-8): -|  0: 68 h |  1: 61 a |  2: 6c l |  3: 6c l |  4: 6f o |  5: 20   |  6: 74 t |  7: 68 h -|  8: 65 e |  9: 72 r | 10: 65 e | 11: 21 ! | 12: a   | 13: 63 c | 14: 61 a | 15: 6e n -| 16: 20   | 17: 79 y | 18: 6f o | 19: 75 u | 20: 20   | 21: 72 r | 22: 65 e | 23: 61 a -| 24: 64 d | 25: 20   | 26: 6d m | 27: 65 e | 28: 3f ? - -source (test.utf16lebom, considered UTF-16LE-BOM): -|  0: ff   |  1: fe   |  2: 68 h |  3: 0   |  4: 61 a |  5: 0   |  6: 6c l |  7: 0   -|  8: 6c l |  9: 0   | 10: 6f o | 11: 0   | 12: 20   | 13: 0   | 14: 74 t | 15: 0   -| 16: 68 h | 17: 0   | 18: 65 e | 19: 0   | 20: 72 r | 21: 0   | 22: 65 e | 23: 0   -| 24: 21 ! | 25: 0   | 26: a   | 27: 0   | 28: 63 c | 29: 0   | 30: 61 a | 31: 0   -| 32: 6e n | 33: 0   | 34: 20   | 35: 0   | 36: 79 y | 37: 0   | 38: 6f o | 39: 0   -| 40: 75 u | 41: 0   | 42: 20   | 43: 0   | 44: 72 r | 45: 0   | 46: 65 e | 47: 0   -| 48: 61 a | 49: 0   | 50: 64 d | 51: 0   | 52: 20   | 53: 0   | 54: 6d m | 55: 0   -| 56: 65 e | 57: 0   | 58: 3f ? | 59: 0   - -destination (test.utf16lebom, considered UTF-8): -|  0: 68 h |  1: 61 a |  2: 6c l |  3: 6c l |  4: 6f o |  5: 20   |  6: 74 t |  7: 68 h -|  8: 65 e |  9: 72 r | 10: 65 e | 11: 21 ! | 12: a   | 13: 63 c | 14: 61 a | 15: 6e n -| 16: 20   | 17: 79 y | 18: 6f o | 19: 75 u | 20: 20   | 21: 72 r | 22: 65 e | 23: 61 a -| 24: 64 d | 25: 20   | 26: 6d m | 27: 65 e | 28: 3f ? - -source (eol.utf16, considered utf-16): -|  0: ff   |  1: fe   |  2: 6f o |  3: 0   |  4: 6e n |  5: 0   |  6: 65 e |  7: 0   -|  8: d   |  9: 0   | 10: a   | 11: 0   | 12: 74 t | 13: 0   | 14: 77 w | 15: 0   -| 16: 6f o | 17: 0   | 18: d   | 19: 0   | 20: a   | 21: 0   | 22: 74 t | 23: 0   -| 24: 68 h | 25: 0   | 26: 72 r | 27: 0   | 28: 65 e | 29: 0   | 30: 65 e | 31: 0   -| 32: d   | 33: 0   | 34: a   | 35: 0   - -destination (eol.utf16, considered UTF-8): -|  0: 6f o |  1: 6e n |  2: 65 e |  3: d   |  4: a   |  5: 74 t |  6: 77 w |  7: 6f o -|  8: d   |  9: a   | 10: 74 t | 11: 68 h | 12: 72 r | 13: 65 e | 14: 65 e | 15: d   -| 16: a   - -[master 85a4f33] eol - Author: A U Thor - 1 file changed, 3 insertions(+) - create mode 100644 eol.utf16 -Updated 1 path from the index -Updated 1 path from the index -HEAD is now at dfb2bb8 initial -ok 8 - eol conversion for UTF-16 encoded files on checkout - -expecting success of 0028.9 'check prohibited UTF-32 BOM': - test_when_finished "git reset --hard HEAD" && - - echo "*.utf${i}be text working-tree-encoding=utf-${i}be" >>.gitattributes && - echo "*.utf${i}le text working-tree-encoding=utf-${i}LE" >>.gitattributes && - - # Here we add a UTF-16 (resp. UTF-32) files with BOM (big/little-endian) - # but we tell Git to treat it as UTF-16BE/UTF-16LE (resp. UTF-32). - # In these cases the BOM is prohibited. - cp bebom.utf${i}be.raw bebom.utf${i}be && - test_must_fail git add bebom.utf${i}be 2>err.out && - test_i18ngrep "fatal: BOM is prohibited .* utf-${i}be" err.out && - test_i18ngrep "use UTF-${i} as working-tree-encoding" err.out && - - cp lebom.utf${i}le.raw lebom.utf${i}be && - test_must_fail git add lebom.utf${i}be 2>err.out && - test_i18ngrep "fatal: BOM is prohibited .* utf-${i}be" err.out && - test_i18ngrep "use UTF-${i} as working-tree-encoding" err.out && - - cp bebom.utf${i}be.raw bebom.utf${i}le && - test_must_fail git add bebom.utf${i}le 2>err.out && - test_i18ngrep "fatal: BOM is prohibited .* utf-${i}LE" err.out && - test_i18ngrep "use UTF-${i} as working-tree-encoding" err.out && - - cp lebom.utf${i}le.raw lebom.utf${i}le && - test_must_fail git add lebom.utf${i}le 2>err.out && - test_i18ngrep "fatal: BOM is prohibited .* utf-${i}LE" err.out && - test_i18ngrep "use UTF-${i} as working-tree-encoding" err.out - -fatal: BOM is prohibited in 'bebom.utf32be' if encoded as utf-32be -hint: The file 'bebom.utf32be' contains a byte order mark (BOM). Please use UTF-32 as working-tree-encoding. -fatal: BOM is prohibited in 'lebom.utf32be' if encoded as utf-32be -hint: The file 'lebom.utf32be' contains a byte order mark (BOM). Please use UTF-32 as working-tree-encoding. -fatal: BOM is prohibited in 'bebom.utf32le' if encoded as utf-32LE -hint: The file 'bebom.utf32le' contains a byte order mark (BOM). Please use UTF-32 as working-tree-encoding. -fatal: BOM is prohibited in 'lebom.utf32le' if encoded as utf-32LE -hint: The file 'lebom.utf32le' contains a byte order mark (BOM). Please use UTF-32 as working-tree-encoding. -HEAD is now at dfb2bb8 initial -ok 9 - check prohibited UTF-32 BOM - -expecting success of 0028.10 'check required UTF-32 BOM': - test_when_finished "git reset --hard HEAD" && - - echo "*.utf${i} text working-tree-encoding=utf-${i}" >>.gitattributes && - - cp nobom.utf${i}be.raw nobom.utf${i} && - test_must_fail git add nobom.utf${i} 2>err.out && - test_i18ngrep "fatal: BOM is required .* utf-${i}" err.out && - test_i18ngrep "use UTF-${i}BE or UTF-${i}LE" err.out && - - cp nobom.utf${i}le.raw nobom.utf${i} && - test_must_fail git add nobom.utf${i} 2>err.out && - test_i18ngrep "fatal: BOM is required .* utf-${i}" err.out && - test_i18ngrep "use UTF-${i}BE or UTF-${i}LE" err.out - -fatal: BOM is required in 'nobom.utf32' if encoded as utf-32 -hint: The file 'nobom.utf32' is missing a byte order mark (BOM). Please use UTF-32BE or UTF-32LE (depending on the byte order) as working-tree-encoding. -fatal: BOM is required in 'nobom.utf32' if encoded as utf-32 -hint: The file 'nobom.utf32' is missing a byte order mark (BOM). Please use UTF-32BE or UTF-32LE (depending on the byte order) as working-tree-encoding. -HEAD is now at dfb2bb8 initial -ok 10 - check required UTF-32 BOM - -expecting success of 0028.11 'eol conversion for UTF-32 encoded files on checkout': - test_when_finished "rm -f crlf.utf${i}.raw lf.utf${i}.raw" && - test_when_finished "git reset --hard HEAD^" && - - cat lf.utf8.raw | write_utf${i} >lf.utf${i}.raw && - cat crlf.utf8.raw | write_utf${i} >crlf.utf${i}.raw && - cp crlf.utf${i}.raw eol.utf${i} && - - cat >expectIndexLF <<-EOF && - i/lf w/-text attr/text eol.utf${i} - EOF - - git add eol.utf${i} && - git commit -m eol && - - # UTF-${i} with CRLF (Windows line endings) - rm eol.utf${i} && - git -c core.eol=crlf checkout eol.utf${i} && - test_cmp_bin crlf.utf${i}.raw eol.utf${i} && - - # Although the file has CRLF in the working tree, - # ensure LF in the index - git ls-files --eol eol.utf${i} >actual && - test_cmp expectIndexLF actual && - - # UTF-${i} with LF (Unix line endings) - rm eol.utf${i} && - git -c core.eol=lf checkout eol.utf${i} && - test_cmp_bin lf.utf${i}.raw eol.utf${i} && - - # The file LF in the working tree, ensure LF in the index - git ls-files --eol eol.utf${i} >actual && - test_cmp expectIndexLF actual - -checking prerequisite: NO_UTF32_BOM - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-NO_UTF32_BOM" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-NO_UTF32_BOM" && - test $(printf abc | iconv -f UTF-8 -t UTF-32 | wc -c) = 12 - -) -prerequisite NO_UTF32_BOM not satisfied -checking prerequisite: NO_UTF32_BOM - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-NO_UTF32_BOM" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-NO_UTF32_BOM" && - test $(printf abc | iconv -f UTF-8 -t UTF-32 | wc -c) = 12 - -) -prerequisite NO_UTF32_BOM not satisfied -source (eol.utf32, considered utf-32): -|  0: ff   |  1: fe   |  2: 0   |  3: 0   |  4: 6f o |  5: 0   |  6: 0   |  7: 0   -|  8: 6e n |  9: 0   | 10: 0   | 11: 0   | 12: 65 e | 13: 0   | 14: 0   | 15: 0   -| 16: d   | 17: 0   | 18: 0   | 19: 0   | 20: a   | 21: 0   | 22: 0   | 23: 0   -| 24: 74 t | 25: 0   | 26: 0   | 27: 0   | 28: 77 w | 29: 0   | 30: 0   | 31: 0   -| 32: 6f o | 33: 0   | 34: 0   | 35: 0   | 36: d   | 37: 0   | 38: 0   | 39: 0   -| 40: a   | 41: 0   | 42: 0   | 43: 0   | 44: 74 t | 45: 0   | 46: 0   | 47: 0   -| 48: 68 h | 49: 0   | 50: 0   | 51: 0   | 52: 72 r | 53: 0   | 54: 0   | 55: 0   -| 56: 65 e | 57: 0   | 58: 0   | 59: 0   | 60: 65 e | 61: 0   | 62: 0   | 63: 0   -| 64: d   | 65: 0   | 66: 0   | 67: 0   | 68: a   | 69: 0   | 70: 0   | 71: 0   - -destination (eol.utf32, considered UTF-8): -|  0: 6f o |  1: 6e n |  2: 65 e |  3: d   |  4: a   |  5: 74 t |  6: 77 w |  7: 6f o -|  8: d   |  9: a   | 10: 74 t | 11: 68 h | 12: 72 r | 13: 65 e | 14: 65 e | 15: d   -| 16: a   - -warning: CRLF will be replaced by LF in eol.utf32. -The file will have its original line endings in your working directory -source (eol.utf32, considered utf-32): -|  0: ff   |  1: fe   |  2: 0   |  3: 0   |  4: 6f o |  5: 0   |  6: 0   |  7: 0   -|  8: 6e n |  9: 0   | 10: 0   | 11: 0   | 12: 65 e | 13: 0   | 14: 0   | 15: 0   -| 16: d   | 17: 0   | 18: 0   | 19: 0   | 20: a   | 21: 0   | 22: 0   | 23: 0   -| 24: 74 t | 25: 0   | 26: 0   | 27: 0   | 28: 77 w | 29: 0   | 30: 0   | 31: 0   -| 32: 6f o | 33: 0   | 34: 0   | 35: 0   | 36: d   | 37: 0   | 38: 0   | 39: 0   -| 40: a   | 41: 0   | 42: 0   | 43: 0   | 44: 74 t | 45: 0   | 46: 0   | 47: 0   -| 48: 68 h | 49: 0   | 50: 0   | 51: 0   | 52: 72 r | 53: 0   | 54: 0   | 55: 0   -| 56: 65 e | 57: 0   | 58: 0   | 59: 0   | 60: 65 e | 61: 0   | 62: 0   | 63: 0   -| 64: d   | 65: 0   | 66: 0   | 67: 0   | 68: a   | 69: 0   | 70: 0   | 71: 0   - -destination (eol.utf32, considered UTF-8): -|  0: 6f o |  1: 6e n |  2: 65 e |  3: d   |  4: a   |  5: 74 t |  6: 77 w |  7: 6f o -|  8: d   |  9: a   | 10: 74 t | 11: 68 h | 12: 72 r | 13: 65 e | 14: 65 e | 15: d   -| 16: a   - -[master 674dc3f] eol - Author: A U Thor - 1 file changed, 3 insertions(+) - create mode 100644 eol.utf32 -Updated 1 path from the index -Updated 1 path from the index -HEAD is now at dfb2bb8 initial -ok 11 - eol conversion for UTF-32 encoded files on checkout - -expecting success of 0028.12 'check unsupported encodings': - test_when_finished "git reset --hard HEAD" && - - echo "*.set text working-tree-encoding" >.gitattributes && - printf "set" >t.set && - test_must_fail git add t.set 2>err.out && - test_i18ngrep "true/false are no valid working-tree-encodings" err.out && - - echo "*.unset text -working-tree-encoding" >.gitattributes && - printf "unset" >t.unset && - git add t.unset && - - echo "*.empty text working-tree-encoding=" >.gitattributes && - printf "empty" >t.empty && - git add t.empty && - - echo "*.garbage text working-tree-encoding=garbage" >.gitattributes && - printf "garbage" >t.garbage && - test_must_fail git add t.garbage 2>err.out && - test_i18ngrep "failed to encode" err.out - -fatal: true/false are no valid working-tree-encodings -fatal: failed to encode 't.garbage' from garbage to UTF-8 -HEAD is now at dfb2bb8 initial -ok 12 - check unsupported encodings - -expecting success of 0028.13 'error if encoding round trip is not the same during refresh': - BEFORE_STATE=$(git rev-parse HEAD) && - test_when_finished "git reset --hard $BEFORE_STATE" && - - # Add and commit a UTF-16 file but skip the "working-tree-encoding" - # filter. Consequently, the in-repo representation is UTF-16 and not - # UTF-8. This simulates a Git version that has no working tree encoding - # support. - echo "*.utf16le text working-tree-encoding=utf-16le" >.gitattributes && - echo "hallo" >nonsense.utf16le && - TEST_HASH=$(git hash-object --no-filters -w nonsense.utf16le) && - git update-index --add --cacheinfo 100644 $TEST_HASH nonsense.utf16le && - COMMIT=$(git commit-tree -p $(git rev-parse HEAD) -m "plain commit" $(git write-tree)) && - git update-ref refs/heads/master $COMMIT && - - test_must_fail git checkout HEAD^ 2>err.out && - test_i18ngrep "error: .* overwritten by checkout:" err.out - -error: Your local changes to the following files would be overwritten by checkout: -HEAD is now at dfb2bb8 initial -ok 13 - error if encoding round trip is not the same during refresh - -expecting success of 0028.14 'error if encoding garbage is already in Git': - BEFORE_STATE=$(git rev-parse HEAD) && - test_when_finished "git reset --hard $BEFORE_STATE" && - - # Skip the UTF-16 filter for the added file - # This simulates a Git version that has no checkoutEncoding support - cp nobom.utf16be.raw nonsense.utf16 && - TEST_HASH=$(git hash-object --no-filters -w nonsense.utf16) && - git update-index --add --cacheinfo 100644 $TEST_HASH nonsense.utf16 && - COMMIT=$(git commit-tree -p $(git rev-parse HEAD) -m "plain commit" $(git write-tree)) && - git update-ref refs/heads/master $COMMIT && - - git diff 2>err.out && - test_i18ngrep "error: BOM is required" err.out - -error: BOM is required in 'nonsense.utf16' if encoded as utf-16 -error: BOM is required in 'nonsense.utf16' if encoded as utf-16 -HEAD is now at dfb2bb8 initial -ok 14 - error if encoding garbage is already in Git - -checking prerequisite: ICONV_SHIFT_JIS - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-ICONV_SHIFT_JIS" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-ICONV_SHIFT_JIS" && - iconv -f UTF-8 -t SHIFT-JIS roundtrip.shift && - printf "$text" | write_utf16 >roundtrip.utf16 && - echo "*.shift text working-tree-encoding=SHIFT-JIS" >>.gitattributes && - - # SHIFT-JIS encoded files are round-trip checked by default... - GIT_TRACE=1 git add .gitattributes roundtrip.shift 2>&1 | - grep "Checking roundtrip encoding for SHIFT-JIS" && - git reset && - - # ... unless we overwrite the Git config! - ! GIT_TRACE=1 git -c core.checkRoundtripEncoding=garbage \ - add .gitattributes roundtrip.shift 2>&1 | - grep "Checking roundtrip encoding for SHIFT-JIS" && - git reset && - - # UTF-16 encoded files should not be round-trip checked by default... - ! GIT_TRACE=1 git add roundtrip.utf16 2>&1 | - grep "Checking roundtrip encoding for UTF-16" && - git reset && - - # ... unless we tell Git to check it! - GIT_TRACE=1 git -c core.checkRoundtripEncoding="UTF-16, UTF-32" \ - add roundtrip.utf16 2>&1 | - grep "Checking roundtrip encoding for utf-16" && - git reset && - - # ... unless we tell Git to check it! - # (here we also check that the casing of the encoding is irrelevant) - GIT_TRACE=1 git -c core.checkRoundtripEncoding="UTF-32, utf-16" \ - add roundtrip.utf16 2>&1 | - grep "Checking roundtrip encoding for utf-16" && - git reset - -checking prerequisite: NO_UTF16_BOM - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-NO_UTF16_BOM" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-NO_UTF16_BOM" && - test $(printf abc | iconv -f UTF-8 -t UTF-16 | wc -c) = 6 - -) -prerequisite NO_UTF16_BOM not satisfied -Checking roundtrip encoding for SHIFT-JIS... -Unstaged changes after reset: -M .gitattributes -Unstaged changes after reset: -M .gitattributes -Unstaged changes after reset: -M .gitattributes -Checking roundtrip encoding for utf-16... -Unstaged changes after reset: -M .gitattributes -Checking roundtrip encoding for utf-16... -Unstaged changes after reset: -M .gitattributes -HEAD is now at dfb2bb8 initial -ok 15 - check roundtrip encoding - -expecting success of 0028.16 'Commit UTF-8, checkout UTF-8': - test_when_finished "git checkout HEAD -- .gitattributes" && - - test_ext="commit_utf8_checkout_$encoding" && - test_file="test.$test_ext" && - - # Commit as UTF-8 - echo "*.$test_ext text working-tree-encoding=UTF-8" >.gitattributes && - printf "$orig_string" >$test_file && - git add $test_file && - git commit -m "Test data" && - - # Checkout in tested encoding - rm $test_file && - echo "*.$test_ext text working-tree-encoding=$encoding" >.gitattributes && - git checkout HEAD -- $test_file && - - # Test - printf $expect_bytes >$test_file.raw && - test_cmp_bin $test_file.raw $test_file - -[master 7887505] Test data - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 test.commit_utf8_checkout_UTF-8 -ok 16 - Commit UTF-8, checkout UTF-8 - -expecting success of 0028.17 'Commit UTF-8, checkout UTF-16LE': - test_when_finished "git checkout HEAD -- .gitattributes" && - - test_ext="commit_utf8_checkout_$encoding" && - test_file="test.$test_ext" && - - # Commit as UTF-8 - echo "*.$test_ext text working-tree-encoding=UTF-8" >.gitattributes && - printf "$orig_string" >$test_file && - git add $test_file && - git commit -m "Test data" && - - # Checkout in tested encoding - rm $test_file && - echo "*.$test_ext text working-tree-encoding=$encoding" >.gitattributes && - git checkout HEAD -- $test_file && - - # Test - printf $expect_bytes >$test_file.raw && - test_cmp_bin $test_file.raw $test_file - -[master dd0bb11] Test data - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 test.commit_utf8_checkout_UTF-16LE -ok 17 - Commit UTF-8, checkout UTF-16LE - -expecting success of 0028.18 'Commit UTF-8, checkout UTF-16BE': - test_when_finished "git checkout HEAD -- .gitattributes" && - - test_ext="commit_utf8_checkout_$encoding" && - test_file="test.$test_ext" && - - # Commit as UTF-8 - echo "*.$test_ext text working-tree-encoding=UTF-8" >.gitattributes && - printf "$orig_string" >$test_file && - git add $test_file && - git commit -m "Test data" && - - # Checkout in tested encoding - rm $test_file && - echo "*.$test_ext text working-tree-encoding=$encoding" >.gitattributes && - git checkout HEAD -- $test_file && - - # Test - printf $expect_bytes >$test_file.raw && - test_cmp_bin $test_file.raw $test_file - -[master ccf08f2] Test data - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 test.commit_utf8_checkout_UTF-16BE -ok 18 - Commit UTF-8, checkout UTF-16BE - -expecting success of 0028.19 'Commit UTF-8, checkout UTF-16LE-BOM': - test_when_finished "git checkout HEAD -- .gitattributes" && - - test_ext="commit_utf8_checkout_$encoding" && - test_file="test.$test_ext" && - - # Commit as UTF-8 - echo "*.$test_ext text working-tree-encoding=UTF-8" >.gitattributes && - printf "$orig_string" >$test_file && - git add $test_file && - git commit -m "Test data" && - - # Checkout in tested encoding - rm $test_file && - echo "*.$test_ext text working-tree-encoding=$encoding" >.gitattributes && - git checkout HEAD -- $test_file && - - # Test - printf $expect_bytes >$test_file.raw && - test_cmp_bin $test_file.raw $test_file - -[master bb82fa0] Test data - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 test.commit_utf8_checkout_UTF-16LE-BOM -ok 19 - Commit UTF-8, checkout UTF-16LE-BOM - -expecting success of 0028.20 'Commit UTF-8, checkout UTF-16BE-BOM': - test_when_finished "git checkout HEAD -- .gitattributes" && - - test_ext="commit_utf8_checkout_$encoding" && - test_file="test.$test_ext" && - - # Commit as UTF-8 - echo "*.$test_ext text working-tree-encoding=UTF-8" >.gitattributes && - printf "$orig_string" >$test_file && - git add $test_file && - git commit -m "Test data" && - - # Checkout in tested encoding - rm $test_file && - echo "*.$test_ext text working-tree-encoding=$encoding" >.gitattributes && - git checkout HEAD -- $test_file && - - # Test - printf $expect_bytes >$test_file.raw && - test_cmp_bin $test_file.raw $test_file - -[master 434b0e2] Test data - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 test.commit_utf8_checkout_UTF-16BE-BOM -ok 20 - Commit UTF-8, checkout UTF-16BE-BOM - -expecting success of 0028.21 'Commit UTF-8, checkout UTF-32LE': - test_when_finished "git checkout HEAD -- .gitattributes" && - - test_ext="commit_utf8_checkout_$encoding" && - test_file="test.$test_ext" && - - # Commit as UTF-8 - echo "*.$test_ext text working-tree-encoding=UTF-8" >.gitattributes && - printf "$orig_string" >$test_file && - git add $test_file && - git commit -m "Test data" && - - # Checkout in tested encoding - rm $test_file && - echo "*.$test_ext text working-tree-encoding=$encoding" >.gitattributes && - git checkout HEAD -- $test_file && - - # Test - printf $expect_bytes >$test_file.raw && - test_cmp_bin $test_file.raw $test_file - -[master 4ebb4c9] Test data - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 test.commit_utf8_checkout_UTF-32LE -ok 21 - Commit UTF-8, checkout UTF-32LE - -expecting success of 0028.22 'Commit UTF-8, checkout UTF-32BE': - test_when_finished "git checkout HEAD -- .gitattributes" && - - test_ext="commit_utf8_checkout_$encoding" && - test_file="test.$test_ext" && - - # Commit as UTF-8 - echo "*.$test_ext text working-tree-encoding=UTF-8" >.gitattributes && - printf "$orig_string" >$test_file && - git add $test_file && - git commit -m "Test data" && - - # Checkout in tested encoding - rm $test_file && - echo "*.$test_ext text working-tree-encoding=$encoding" >.gitattributes && - git checkout HEAD -- $test_file && - - # Test - printf $expect_bytes >$test_file.raw && - test_cmp_bin $test_file.raw $test_file - -[master bfde51e] Test data - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 test.commit_utf8_checkout_UTF-32BE -ok 22 - Commit UTF-8, checkout UTF-32BE - -# passed all 22 test(s) -1..22 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t0029-core-unsetenvvars.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0029-core-unsetenvvars/.git/ -1..0 # SKIP skipping Windows-specific tests -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t0030-stripspace.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0030-stripspace/.git/ -expecting success of 0030.1 'long lines without spaces should be unchanged': - echo "$ttt" >expect && - git stripspace actual && - test_cmp expect actual && - - echo "$ttt$ttt" >expect && - git stripspace actual && - test_cmp expect actual && - - echo "$ttt$ttt$ttt" >expect && - git stripspace actual && - test_cmp expect actual && - - echo "$ttt$ttt$ttt$ttt" >expect && - git stripspace actual && - test_cmp expect actual - -ok 1 - long lines without spaces should be unchanged - -expecting success of 0030.2 'lines with spaces at the beginning should be unchanged': - echo "$sss$ttt" >expect && - git stripspace actual && - test_cmp expect actual && - - echo "$sss$sss$ttt" >expect && - git stripspace actual && - test_cmp expect actual && - - echo "$sss$sss$sss$ttt" >expect && - git stripspace actual && - test_cmp expect actual - -ok 2 - lines with spaces at the beginning should be unchanged - -expecting success of 0030.3 'lines with intermediate spaces should be unchanged': - echo "$ttt$sss$ttt" >expect && - git stripspace actual && - test_cmp expect actual && - - echo "$ttt$sss$sss$ttt" >expect && - git stripspace actual && - test_cmp expect actual - -ok 3 - lines with intermediate spaces should be unchanged - -expecting success of 0030.4 'consecutive blank lines should be unified': - printf "$ttt\n\n$ttt\n" > expect && - printf "$ttt\n\n\n\n\n$ttt\n" | git stripspace >actual && - test_cmp expect actual && - - printf "$ttt$ttt\n\n$ttt\n" > expect && - printf "$ttt$ttt\n\n\n\n\n$ttt\n" | git stripspace >actual && - test_cmp expect actual && - - printf "$ttt$ttt$ttt\n\n$ttt\n" > expect && - printf "$ttt$ttt$ttt\n\n\n\n\n$ttt\n" | git stripspace >actual && - test_cmp expect actual && - - printf "$ttt\n\n$ttt\n" > expect && - printf "$ttt\n\n\n\n\n$ttt\n" | git stripspace >actual && - test_cmp expect actual && - - printf "$ttt\n\n$ttt$ttt\n" > expect && - printf "$ttt\n\n\n\n\n$ttt$ttt\n" | git stripspace >actual && - test_cmp expect actual && - - printf "$ttt\n\n$ttt$ttt$ttt\n" > expect && - printf "$ttt\n\n\n\n\n$ttt$ttt$ttt\n" | git stripspace >actual && - test_cmp expect actual && - - printf "$ttt\n\n$ttt\n" > expect && - printf "$ttt\n\t\n \n\n \t\t\n$ttt\n" | git stripspace >actual && - test_cmp expect actual && - - printf "$ttt$ttt\n\n$ttt\n" > expect && - printf "$ttt$ttt\n\t\n \n\n \t\t\n$ttt\n" | git stripspace >actual && - test_cmp expect actual && - - printf "$ttt$ttt$ttt\n\n$ttt\n" > expect && - printf "$ttt$ttt$ttt\n\t\n \n\n \t\t\n$ttt\n" | git stripspace >actual && - test_cmp expect actual && - - printf "$ttt\n\n$ttt\n" > expect && - printf "$ttt\n\t\n \n\n \t\t\n$ttt\n" | git stripspace >actual && - test_cmp expect actual && - - printf "$ttt\n\n$ttt$ttt\n" > expect && - printf "$ttt\n\t\n \n\n \t\t\n$ttt$ttt\n" | git stripspace >actual && - test_cmp expect actual && - - printf "$ttt\n\n$ttt$ttt$ttt\n" > expect && - printf "$ttt\n\t\n \n\n \t\t\n$ttt$ttt$ttt\n" | git stripspace >actual && - test_cmp expect actual - -ok 4 - consecutive blank lines should be unified - -expecting success of 0030.5 'only consecutive blank lines should be completely removed': - - printf "\n" | git stripspace >actual && - test_must_be_empty actual && - - printf "\n\n\n" | git stripspace >actual && - test_must_be_empty actual && - - printf "$sss\n$sss\n$sss\n" | git stripspace >actual && - test_must_be_empty actual && - - printf "$sss$sss\n$sss\n\n" | git stripspace >actual && - test_must_be_empty actual && - - printf "\n$sss\n$sss$sss\n" | git stripspace >actual && - test_must_be_empty actual && - - printf "$sss$sss$sss$sss\n\n\n" | git stripspace >actual && - test_must_be_empty actual && - - printf "\n$sss$sss$sss$sss\n\n" | git stripspace >actual && - test_must_be_empty actual && - - printf "\n\n$sss$sss$sss$sss\n" | git stripspace >actual && - test_must_be_empty actual - -ok 5 - only consecutive blank lines should be completely removed - -expecting success of 0030.6 'consecutive blank lines at the beginning should be removed': - printf "$ttt\n" > expect && - printf "\n$ttt\n" | git stripspace >actual && - test_cmp expect actual && - - printf "$ttt\n" > expect && - printf "\n\n\n$ttt\n" | git stripspace >actual && - test_cmp expect actual && - - printf "$ttt$ttt\n" > expect && - printf "\n\n\n$ttt$ttt\n" | git stripspace >actual && - test_cmp expect actual && - - printf "$ttt$ttt$ttt\n" > expect && - printf "\n\n\n$ttt$ttt$ttt\n" | git stripspace >actual && - test_cmp expect actual && - - printf "$ttt$ttt$ttt$ttt\n" > expect && - printf "\n\n\n$ttt$ttt$ttt$ttt\n" | git stripspace >actual && - test_cmp expect actual && - - printf "$ttt\n" > expect && - - printf "$sss\n$sss\n$sss\n$ttt\n" | git stripspace >actual && - test_cmp expect actual && - - printf "\n$sss\n$sss$sss\n$ttt\n" | git stripspace >actual && - test_cmp expect actual && - - printf "$sss$sss\n$sss\n\n$ttt\n" | git stripspace >actual && - test_cmp expect actual && - - printf "$sss$sss$sss\n\n\n$ttt\n" | git stripspace >actual && - test_cmp expect actual && - - printf "\n$sss$sss$sss\n\n$ttt\n" | git stripspace >actual && - test_cmp expect actual && - - printf "\n\n$sss$sss$sss\n$ttt\n" | git stripspace >actual && - test_cmp expect actual - -ok 6 - consecutive blank lines at the beginning should be removed - -expecting success of 0030.7 'consecutive blank lines at the end should be removed': - printf "$ttt\n" > expect && - printf "$ttt\n\n" | git stripspace >actual && - test_cmp expect actual && - - printf "$ttt\n" > expect && - printf "$ttt\n\n\n\n" | git stripspace >actual && - test_cmp expect actual && - - printf "$ttt$ttt\n" > expect && - printf "$ttt$ttt\n\n\n\n" | git stripspace >actual && - test_cmp expect actual && - - printf "$ttt$ttt$ttt\n" > expect && - printf "$ttt$ttt$ttt\n\n\n\n" | git stripspace >actual && - test_cmp expect actual && - - printf "$ttt$ttt$ttt$ttt\n" > expect && - printf "$ttt$ttt$ttt$ttt\n\n\n\n" | git stripspace >actual && - test_cmp expect actual && - - printf "$ttt\n" > expect && - - printf "$ttt\n$sss\n$sss\n$sss\n" | git stripspace >actual && - test_cmp expect actual && - - printf "$ttt\n\n$sss\n$sss$sss\n" | git stripspace >actual && - test_cmp expect actual && - - printf "$ttt\n$sss$sss\n$sss\n\n" | git stripspace >actual && - test_cmp expect actual && - - printf "$ttt\n$sss$sss$sss\n\n\n" | git stripspace >actual && - test_cmp expect actual && - - printf "$ttt\n\n$sss$sss$sss\n\n" | git stripspace >actual && - test_cmp expect actual && - - printf "$ttt\n\n\n$sss$sss$sss\n" | git stripspace >actual && - test_cmp expect actual - -ok 7 - consecutive blank lines at the end should be removed - -expecting success of 0030.8 'text without newline at end should end with newline': - test $(printf "$ttt" | git stripspace | wc -l) -gt 0 && - test $(printf "$ttt$ttt" | git stripspace | wc -l) -gt 0 && - test $(printf "$ttt$ttt$ttt" | git stripspace | wc -l) -gt 0 && - test $(printf "$ttt$ttt$ttt$ttt" | git stripspace | wc -l) -gt 0 - -ok 8 - text without newline at end should end with newline - -expecting success of 0030.9 'text plus spaces without newline at end should end with newline': - test $(printf "$ttt$sss" | git stripspace | wc -l) -gt 0 && - test $(printf "$ttt$ttt$sss" | git stripspace | wc -l) -gt 0 && - test $(printf "$ttt$ttt$ttt$sss" | git stripspace | wc -l) -gt 0 && - test $(printf "$ttt$sss$sss" | git stripspace | wc -l) -gt 0 && - test $(printf "$ttt$ttt$sss$sss" | git stripspace | wc -l) -gt 0 && - test $(printf "$ttt$sss$sss$sss" | git stripspace | wc -l) -gt 0 - -ok 9 - text plus spaces without newline at end should end with newline - -expecting success of 0030.10 'text plus spaces without newline at end should not show spaces': - ! (printf "$ttt$sss" | git stripspace | grep " " >/dev/null) && - ! (printf "$ttt$ttt$sss" | git stripspace | grep " " >/dev/null) && - ! (printf "$ttt$ttt$ttt$sss" | git stripspace | grep " " >/dev/null) && - ! (printf "$ttt$sss$sss" | git stripspace | grep " " >/dev/null) && - ! (printf "$ttt$ttt$sss$sss" | git stripspace | grep " " >/dev/null) && - ! (printf "$ttt$sss$sss$sss" | git stripspace | grep " " >/dev/null) - -ok 10 - text plus spaces without newline at end should not show spaces - -expecting success of 0030.11 'text plus spaces without newline should show the correct lines': - printf "$ttt\n" >expect && - printf "$ttt$sss" | git stripspace >actual && - test_cmp expect actual && - - printf "$ttt\n" >expect && - printf "$ttt$sss$sss" | git stripspace >actual && - test_cmp expect actual && - - printf "$ttt\n" >expect && - printf "$ttt$sss$sss$sss" | git stripspace >actual && - test_cmp expect actual && - - printf "$ttt$ttt\n" >expect && - printf "$ttt$ttt$sss" | git stripspace >actual && - test_cmp expect actual && - - printf "$ttt$ttt\n" >expect && - printf "$ttt$ttt$sss$sss" | git stripspace >actual && - test_cmp expect actual && - - printf "$ttt$ttt$ttt\n" >expect && - printf "$ttt$ttt$ttt$sss" | git stripspace >actual && - test_cmp expect actual - -ok 11 - text plus spaces without newline should show the correct lines - -expecting success of 0030.12 'text plus spaces at end should not show spaces': - ! (echo "$ttt$sss" | git stripspace | grep " " >/dev/null) && - ! (echo "$ttt$ttt$sss" | git stripspace | grep " " >/dev/null) && - ! (echo "$ttt$ttt$ttt$sss" | git stripspace | grep " " >/dev/null) && - ! (echo "$ttt$sss$sss" | git stripspace | grep " " >/dev/null) && - ! (echo "$ttt$ttt$sss$sss" | git stripspace | grep " " >/dev/null) && - ! (echo "$ttt$sss$sss$sss" | git stripspace | grep " " >/dev/null) - -ok 12 - text plus spaces at end should not show spaces - -expecting success of 0030.13 'text plus spaces at end should be cleaned and newline must remain': - echo "$ttt" >expect && - echo "$ttt$sss" | git stripspace >actual && - test_cmp expect actual && - - echo "$ttt" >expect && - echo "$ttt$sss$sss" | git stripspace >actual && - test_cmp expect actual && - - echo "$ttt" >expect && - echo "$ttt$sss$sss$sss" | git stripspace >actual && - test_cmp expect actual && - - echo "$ttt$ttt" >expect && - echo "$ttt$ttt$sss" | git stripspace >actual && - test_cmp expect actual && - - echo "$ttt$ttt" >expect && - echo "$ttt$ttt$sss$sss" | git stripspace >actual && - test_cmp expect actual && - - echo "$ttt$ttt$ttt" >expect && - echo "$ttt$ttt$ttt$sss" | git stripspace >actual && - test_cmp expect actual - -ok 13 - text plus spaces at end should be cleaned and newline must remain - -expecting success of 0030.14 'spaces with newline at end should be replaced with empty string': - echo | git stripspace >actual && - test_must_be_empty actual && - - echo "$sss" | git stripspace >actual && - test_must_be_empty actual && - - echo "$sss$sss" | git stripspace >actual && - test_must_be_empty actual && - - echo "$sss$sss$sss" | git stripspace >actual && - test_must_be_empty actual && - - echo "$sss$sss$sss$sss" | git stripspace >actual && - test_must_be_empty actual - -ok 14 - spaces with newline at end should be replaced with empty string - -expecting success of 0030.15 'spaces without newline at end should not show spaces': - ! (printf "" | git stripspace | grep " " >/dev/null) && - ! (printf "$sss" | git stripspace | grep " " >/dev/null) && - ! (printf "$sss$sss" | git stripspace | grep " " >/dev/null) && - ! (printf "$sss$sss$sss" | git stripspace | grep " " >/dev/null) && - ! (printf "$sss$sss$sss$sss" | git stripspace | grep " " >/dev/null) - -ok 15 - spaces without newline at end should not show spaces - -expecting success of 0030.16 'spaces without newline at end should be replaced with empty string': - printf "" | git stripspace >actual && - test_must_be_empty actual && - - printf "$sss$sss" | git stripspace >actual && - test_must_be_empty actual && - - printf "$sss$sss$sss" | git stripspace >actual && - test_must_be_empty actual && - - printf "$sss$sss$sss$sss" | git stripspace >actual && - test_must_be_empty actual - -ok 16 - spaces without newline at end should be replaced with empty string - -expecting success of 0030.17 'consecutive text lines should be unchanged': - printf "$ttt$ttt\n$ttt\n" >expect && - printf "$ttt$ttt\n$ttt\n" | git stripspace >actual && - test_cmp expect actual && - - printf "$ttt\n$ttt$ttt\n$ttt\n" >expect && - printf "$ttt\n$ttt$ttt\n$ttt\n" | git stripspace >actual && - test_cmp expect actual && - - printf "$ttt\n$ttt\n$ttt\n$ttt$ttt\n" >expect && - printf "$ttt\n$ttt\n$ttt\n$ttt$ttt\n" | git stripspace >actual && - test_cmp expect actual && - - printf "$ttt\n$ttt\n\n$ttt$ttt\n$ttt\n" >expect && - printf "$ttt\n$ttt\n\n$ttt$ttt\n$ttt\n" | git stripspace >actual && - test_cmp expect actual && - - printf "$ttt$ttt\n\n$ttt\n$ttt$ttt\n" >expect && - printf "$ttt$ttt\n\n$ttt\n$ttt$ttt\n" | git stripspace >actual && - test_cmp expect actual && - - printf "$ttt\n$ttt$ttt\n\n$ttt\n" >expect && - printf "$ttt\n$ttt$ttt\n\n$ttt\n" | git stripspace >actual && - test_cmp expect actual - -ok 17 - consecutive text lines should be unchanged - -expecting success of 0030.18 'strip comments, too': - test ! -z "$(echo "# comment" | git stripspace)" && - test -z "$(echo "# comment" | git stripspace -s)" - -ok 18 - strip comments, too - -expecting success of 0030.19 'strip comments with changed comment char': - test ! -z "$(echo "; comment" | git -c core.commentchar=";" stripspace)" && - test -z "$(echo "; comment" | git -c core.commentchar=";" stripspace -s)" - -ok 19 - strip comments with changed comment char - -expecting success of 0030.20 '-c with single line': - printf "# foo\n" >expect && - printf "foo" | git stripspace -c >actual && - test_cmp expect actual - -ok 20 - -c with single line - -expecting success of 0030.21 '-c with single line followed by empty line': - printf "# foo\n#\n" >expect && - printf "foo\n\n" | git stripspace -c >actual && - test_cmp expect actual - -ok 21 - -c with single line followed by empty line - -expecting success of 0030.22 '-c with newline only': - printf "#\n" >expect && - printf "\n" | git stripspace -c >actual && - test_cmp expect actual - -ok 22 - -c with newline only - -expecting success of 0030.23 '--comment-lines with single line': - printf "# foo\n" >expect && - printf "foo" | git stripspace -c >actual && - test_cmp expect actual - -ok 23 - --comment-lines with single line - -expecting success of 0030.24 '-c with changed comment char': - printf "; foo\n" >expect && - printf "foo" | git -c core.commentchar=";" stripspace -c >actual && - test_cmp expect actual - -ok 24 - -c with changed comment char - -expecting success of 0030.25 '-c with comment char defined in .git/config': - test_config core.commentchar = && - printf "= foo\n" >expect && - rm -fr sub && - mkdir sub && - printf "foo" | git -C sub stripspace -c >actual && - test_cmp expect actual - -ok 25 - -c with comment char defined in .git/config - -expecting success of 0030.26 '-c outside git repository': - printf "# foo\n" >expect && - printf "foo" | nongit git stripspace -c >actual && - test_cmp expect actual - -ok 26 - -c outside git repository - -expecting success of 0030.27 'avoid SP-HT sequence in commented line': - printf "#\tone\n#\n# two\n" >expect && - printf "\tone\n\ntwo\n" | git stripspace -c >actual && - test_cmp expect actual - -ok 27 - avoid SP-HT sequence in commented line - -# passed all 27 test(s) -1..27 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t0033-safe-directory.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0033-safe-directory/.git/ -expecting success of 0033.1 'safe.directory is not set': - expect_rejected_dir - -fatal: detected dubious ownership in repository at '/build/git-2.30.2/t/trash directory.t0033-safe-directory' - git config --global --add safe.directory '/build/git-2.30.2/t/trash directory.t0033-safe-directory' -ok 1 - safe.directory is not set - -expecting success of 0033.2 'safe.directory does not match': - git config --global safe.directory bogus && - expect_rejected_dir - -fatal: detected dubious ownership in repository at '/build/git-2.30.2/t/trash directory.t0033-safe-directory' - git config --global --add safe.directory '/build/git-2.30.2/t/trash directory.t0033-safe-directory' -ok 2 - safe.directory does not match - -expecting success of 0033.3 'path exist as different key': - git config --global foo.bar "$(pwd)" && - expect_rejected_dir - -fatal: detected dubious ownership in repository at '/build/git-2.30.2/t/trash directory.t0033-safe-directory' - git config --global --add safe.directory '/build/git-2.30.2/t/trash directory.t0033-safe-directory' -ok 3 - path exist as different key - -expecting success of 0033.4 'safe.directory matches': - git config --global --add safe.directory "$(pwd)" && - git status - -On branch master - -No commits yet - -Untracked files: - (use "git add ..." to include in what will be committed) - .gitconfig - err - -nothing added to commit but untracked files present (use "git add" to track) -ok 4 - safe.directory matches - -expecting success of 0033.5 'safe.directory matches, but is reset': - git config --global --add safe.directory "" && - expect_rejected_dir - -fatal: detected dubious ownership in repository at '/build/git-2.30.2/t/trash directory.t0033-safe-directory' - git config --global --add safe.directory '/build/git-2.30.2/t/trash directory.t0033-safe-directory' -ok 5 - safe.directory matches, but is reset - -expecting success of 0033.6 'safe.directory=*': - git config --global --add safe.directory "*" && - git status - -On branch master - -No commits yet - -Untracked files: - (use "git add ..." to include in what will be committed) - .gitconfig - err - -nothing added to commit but untracked files present (use "git add" to track) -ok 6 - safe.directory=* - -expecting success of 0033.7 'safe.directory=*, but is reset': - git config --global --add safe.directory "" && - expect_rejected_dir - -fatal: detected dubious ownership in repository at '/build/git-2.30.2/t/trash directory.t0033-safe-directory' - git config --global --add safe.directory '/build/git-2.30.2/t/trash directory.t0033-safe-directory' -ok 7 - safe.directory=*, but is reset - -# passed all 7 test(s) -1..7 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t0034-root-safe-directory.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0034-root-safe-directory/.git/ -1..0 # SKIP You must set env var GIT_TEST_ALLOW_SUDO=YES in order to run this test -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t0021-conversion.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0021-conversion/.git/ -expecting success of 0021.1 'setup': - git config filter.rot13.smudge ./rot13.sh && - git config filter.rot13.clean ./rot13.sh && - - { - echo "*.t filter=rot13" - echo "*.i ident" - } >.gitattributes && - - { - echo a b c d e f g h i j k l m - echo n o p q r s t u v w x y z - echo '$Id$' - } >test && - cat test >test.t && - cat test >test.o && - cat test >test.i && - git add test test.t test.i && - rm -f test test.t test.i && - git checkout -- test test.t test.i && - - echo "content-test2" >test2.o && - echo "content-test3 - filename with special characters" >"test3 'sq',\$x=.o" - -ok 1 - setup - -expecting success of 0021.2 'check': - - test_cmp test.o test && - test_cmp test.o test.t && - - # ident should be stripped in the repository - git diff --raw --exit-code :test :test.i && - id=$(git rev-parse --verify :test) && - embedded=$(sed -ne "$script" test.i) && - test "z$id" = "z$embedded" && - - git cat-file blob :test.t >test.r && - - ./rot13.sh test.t && - test_cmp test.r test.t - -ok 2 - check - -expecting success of 0021.3 'expanded_in_repo': - { - echo "File with expanded keywords" - echo "\$Id\$" - echo "\$Id:\$" - echo "\$Id: 0000000000000000000000000000000000000000 \$" - echo "\$Id: NoSpaceAtEnd\$" - echo "\$Id:NoSpaceAtFront \$" - echo "\$Id:NoSpaceAtEitherEnd\$" - echo "\$Id: NoTerminatingSymbol" - echo "\$Id: Foreign Commit With Spaces \$" - } >expanded-keywords.0 && - - { - cat expanded-keywords.0 && - printf "\$Id: NoTerminatingSymbolAtEOF" - } >expanded-keywords && - cat expanded-keywords >expanded-keywords-crlf && - git add expanded-keywords expanded-keywords-crlf && - git commit -m "File with keywords expanded" && - id=$(git rev-parse --verify :expanded-keywords) && - - { - echo "File with expanded keywords" - echo "\$Id: $id \$" - echo "\$Id: $id \$" - echo "\$Id: $id \$" - echo "\$Id: $id \$" - echo "\$Id: $id \$" - echo "\$Id: $id \$" - echo "\$Id: NoTerminatingSymbol" - echo "\$Id: Foreign Commit With Spaces \$" - } >expected-output.0 && - { - cat expected-output.0 && - printf "\$Id: NoTerminatingSymbolAtEOF" - } >expected-output && - { - append_cr expected-output-crlf && - { - echo "expanded-keywords ident" - echo "expanded-keywords-crlf ident text eol=crlf" - } >>.gitattributes && - - rm -f expanded-keywords expanded-keywords-crlf && - - git checkout -- expanded-keywords && - test_cmp expected-output expanded-keywords && - - git checkout -- expanded-keywords-crlf && - test_cmp expected-output-crlf expanded-keywords-crlf - -[master (root-commit) bf31399] File with keywords expanded - Author: A U Thor - 5 files changed, 29 insertions(+) - create mode 100644 expanded-keywords - create mode 100644 expanded-keywords-crlf - create mode 100644 test - create mode 100644 test.i - create mode 100644 test.t -ok 3 - expanded_in_repo - -expecting success of 0021.4 'filter shell-escaped filenames': - cat >argc.sh <<-EOF && - #!$SHELL_PATH - cat >/dev/null - echo argc: \$# "\$@" - EOF - normal=name-no-magic && - special="name with 'sq' and \$x" && - echo some test text >"$normal" && - echo some test text >"$special" && - git add "$normal" "$special" && - git commit -q -m "add files" && - echo "name* filter=argc" >.gitattributes && - - # delete the files and check them out again, using a smudge filter - # that will count the args and echo the command-line back to us - test_config filter.argc.smudge "sh ./argc.sh %f" && - rm "$normal" "$special" && - git checkout -- "$normal" "$special" && - - # make sure argc.sh counted the right number of args - echo "argc: 1 $normal" >expect && - test_cmp expect "$normal" && - echo "argc: 1 $special" >expect && - test_cmp expect "$special" && - - # do the same thing, but with more args in the filter expression - test_config filter.argc.smudge "sh ./argc.sh %f --my-extra-arg" && - rm "$normal" "$special" && - git checkout -- "$normal" "$special" && - - # make sure argc.sh counted the right number of args - echo "argc: 2 $normal --my-extra-arg" >expect && - test_cmp expect "$normal" && - echo "argc: 2 $special --my-extra-arg" >expect && - test_cmp expect "$special" && - : - -ok 4 - filter shell-escaped filenames - -expecting success of 0021.5 'required filter should filter data': - test_config filter.required.smudge ./rot13.sh && - test_config filter.required.clean ./rot13.sh && - test_config filter.required.required true && - - echo "*.r filter=required" >.gitattributes && - - cat test.o >test.r && - git add test.r && - - rm -f test.r && - git checkout -- test.r && - test_cmp test.o test.r && - - ./rot13.sh expected && - git cat-file blob :test.r >actual && - test_cmp expected actual - -ok 5 - required filter should filter data - -expecting success of 0021.6 'required filter smudge failure': - test_config filter.failsmudge.smudge false && - test_config filter.failsmudge.clean cat && - test_config filter.failsmudge.required true && - - echo "*.fs filter=failsmudge" >.gitattributes && - - echo test >test.fs && - git add test.fs && - rm -f test.fs && - test_must_fail git checkout -- test.fs - -error: external filter 'false' failed 1 -error: external filter 'false' failed -fatal: test.fs: smudge filter failsmudge failed -ok 6 - required filter smudge failure - -expecting success of 0021.7 'required filter clean failure': - test_config filter.failclean.smudge cat && - test_config filter.failclean.clean false && - test_config filter.failclean.required true && - - echo "*.fc filter=failclean" >.gitattributes && - - echo test >test.fc && - test_must_fail git add test.fc - -error: external filter 'false' failed 1 -error: external filter 'false' failed -fatal: test.fc: clean filter 'failclean' failed -ok 7 - required filter clean failure +error: external filter 'false' failed 1 +error: external filter 'false' failed +fatal: test.fc: clean filter 'failclean' failed +ok 7 - required filter clean failure expecting success of 0021.8 'filtering large input to small output should use little memory': test_config filter.devnull.clean "cat >/dev/null" && @@ -18702,7 +18556,7 @@ [master 77379c5] one Author: A U Thor - 8 files changed, 8 insertions(+) + 8 files changed, 9 insertions(+) create mode 100644 30MB create mode 100644 big create mode 100644 empty-in-repo @@ -19240,8 +19094,8 @@ ) prerequisite C_LOCALE_OUTPUT ok error: external filter 'rot13-filter.pl debug.log clean smudge' failed ---- smudge-write-fail.o 2023-04-29 16:14:46.289416749 +0000 -+++ smudge-write-fail.r 2023-04-29 16:14:46.993346475 +0000 +--- smudge-write-fail.o 2023-04-29 17:42:52.854034270 +0000 ++++ smudge-write-fail.r 2023-04-29 17:42:54.605867899 +0000 @@ -1 +1 @@ -this is going to fail +guvf vf tbvat gb snvy @@ -19609,6 +19463,359 @@ 1..30 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t0041-usage.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0041-usage/.git/ +expecting success of 0041.1 'setup ': + test_commit "v1.0" + +[master (root-commit) 843b676] v1.0 + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 v1.0.t +ok 1 - setup + +expecting success of 0041.2 'tag --contains ': + git tag --contains "v1.0" >actual 2>actual.err && + grep "v1.0" actual && + test_line_count = 0 actual.err + +v1.0 +ok 2 - tag --contains + +expecting success of 0041.3 'tag --contains ': + test_must_fail git tag --contains "notag" >actual 2>actual.err && + test_line_count = 0 actual && + test_i18ngrep "error" actual.err && + test_i18ngrep ! "usage" actual.err + +checking prerequisite: C_LOCALE_OUTPUT + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false + +) +prerequisite C_LOCALE_OUTPUT ok +error: malformed object name notag +ok 3 - tag --contains + +expecting success of 0041.4 'tag --no-contains ': + git tag --no-contains "v1.0" >actual 2>actual.err && + test_line_count = 0 actual && + test_line_count = 0 actual.err + +ok 4 - tag --no-contains + +expecting success of 0041.5 'tag --no-contains ': + test_must_fail git tag --no-contains "notag" >actual 2>actual.err && + test_line_count = 0 actual && + test_i18ngrep "error" actual.err && + test_i18ngrep ! "usage" actual.err + +error: malformed object name notag +ok 5 - tag --no-contains + +expecting success of 0041.6 'tag usage error': + test_must_fail git tag --noopt >actual 2>actual.err && + test_line_count = 0 actual && + test_i18ngrep "usage" actual.err + +usage: git tag [-a | -s | -u ] [-f] [-m | -F ] +ok 6 - tag usage error + +expecting success of 0041.7 'branch --contains ': + git branch --contains "master" >actual 2>actual.err && + test_i18ngrep "master" actual && + test_line_count = 0 actual.err + +* master +ok 7 - branch --contains + +expecting success of 0041.8 'branch --contains ': + test_must_fail git branch --no-contains "nocommit" >actual 2>actual.err && + test_line_count = 0 actual && + test_i18ngrep "error" actual.err && + test_i18ngrep ! "usage" actual.err + +error: malformed object name nocommit +ok 8 - branch --contains + +expecting success of 0041.9 'branch --no-contains ': + git branch --no-contains "master" >actual 2>actual.err && + test_line_count = 0 actual && + test_line_count = 0 actual.err + +ok 9 - branch --no-contains + +expecting success of 0041.10 'branch --no-contains ': + test_must_fail git branch --no-contains "nocommit" >actual 2>actual.err && + test_line_count = 0 actual && + test_i18ngrep "error" actual.err && + test_i18ngrep ! "usage" actual.err + +error: malformed object name nocommit +ok 10 - branch --no-contains + +expecting success of 0041.11 'branch usage error': + test_must_fail git branch --noopt >actual 2>actual.err && + test_line_count = 0 actual && + test_i18ngrep "usage" actual.err + +usage: git branch [] [-r | -a] [--merged] [--no-merged] +ok 11 - branch usage error + +expecting success of 0041.12 'for-each-ref --contains ': + git for-each-ref --contains "master" >actual 2>actual.err && + test_line_count = 2 actual && + test_line_count = 0 actual.err + +ok 12 - for-each-ref --contains + +expecting success of 0041.13 'for-each-ref --contains ': + test_must_fail git for-each-ref --no-contains "noobject" >actual 2>actual.err && + test_line_count = 0 actual && + test_i18ngrep "error" actual.err && + test_i18ngrep ! "usage" actual.err + +error: malformed object name noobject +ok 13 - for-each-ref --contains + +expecting success of 0041.14 'for-each-ref --no-contains ': + git for-each-ref --no-contains "master" >actual 2>actual.err && + test_line_count = 0 actual && + test_line_count = 0 actual.err + +ok 14 - for-each-ref --no-contains + +expecting success of 0041.15 'for-each-ref --no-contains ': + test_must_fail git for-each-ref --no-contains "noobject" >actual 2>actual.err && + test_line_count = 0 actual && + test_i18ngrep "error" actual.err && + test_i18ngrep ! "usage" actual.err + +error: malformed object name noobject +ok 15 - for-each-ref --no-contains + +expecting success of 0041.16 'for-each-ref usage error': + test_must_fail git for-each-ref --noopt >actual 2>actual.err && + test_line_count = 0 actual && + test_i18ngrep "usage" actual.err + +usage: git for-each-ref [] [] +ok 16 - for-each-ref usage error + +# passed all 16 test(s) +1..16 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t0050-filesystem.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0050-filesystem/.git/ +checking prerequisite: CASE_INSENSITIVE_FS + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-CASE_INSENSITIVE_FS" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-CASE_INSENSITIVE_FS" && + echo good >CamelCase && + echo bad >camelcase && + test "$(cat CamelCase)" != good + +) +prerequisite CASE_INSENSITIVE_FS not satisfied +checking prerequisite: UTF8_NFD_TO_NFC + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-UTF8_NFD_TO_NFC" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-UTF8_NFD_TO_NFC" && + # check whether FS converts nfd unicode to nfc + auml=$(printf "\303\244") + aumlcdiar=$(printf "\141\314\210") + >"$auml" && + test -f "$aumlcdiar" + +) +prerequisite UTF8_NFD_TO_NFC not satisfied +checking prerequisite: SYMLINKS + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && + # test whether the filesystem supports symbolic links + ln -s x y && test -h y + +) +prerequisite SYMLINKS ok +expecting success of 0050.1 'detection of case insensitive filesystem during repo init': + { + test_must_fail git config --bool core.ignorecase >/dev/null || + test $(git config --bool core.ignorecase) = false + } + +ok 1 - detection of case insensitive filesystem during repo init + +expecting success of 0050.2 'detection of filesystem w/o symlink support during repo init': + { + test_must_fail git config --bool core.symlinks || + test "$(git config --bool core.symlinks)" = true + } + +ok 2 - detection of filesystem w/o symlink support during repo init + +expecting success of 0050.3 'setup case tests': + git config core.ignorecase true && + touch camelcase && + git add camelcase && + git commit -m "initial" && + git tag initial && + git checkout -b topic && + git mv camelcase tmp && + git mv tmp CamelCase && + git commit -m "rename" && + git checkout -f master + +[master (root-commit) 4f2cf87] initial + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 camelcase +Switched to a new branch 'topic' +[topic 0a6fec9] rename + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + rename camelcase => CamelCase (100%) +Switched to branch 'master' +ok 3 - setup case tests + +expecting success of 0050.4 'rename (case change)': + git mv camelcase CamelCase && + git commit -m "rename" + +[master 0a6fec9] rename + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + rename camelcase => CamelCase (100%) +ok 4 - rename (case change) + +expecting success of 0050.5 'merge (case change)': + rm -f CamelCase && + rm -f camelcase && + git reset --hard initial && + git merge topic + +HEAD is now at 4f2cf87 initial +Updating 4f2cf87..0a6fec9 +Fast-forward + camelcase => CamelCase | 0 + 1 file changed, 0 insertions(+), 0 deletions(-) + rename camelcase => CamelCase (100%) +ok 5 - merge (case change) + +ok 6 # skip add directory (with different case) (missing CASE_INSENSITIVE_FS) + +ok 7 # skip add (with different case) (missing CASE_INSENSITIVE_FS) + +expecting success of 0050.8 'setup unicode normalization tests': + test_create_repo unicode && + cd unicode && + git config core.precomposeunicode false && + touch "$aumlcdiar" && + git add "$aumlcdiar" && + git commit -m initial && + git tag initial && + git checkout -b topic && + git mv $aumlcdiar tmp && + git mv tmp "$auml" && + git commit -m rename && + git checkout -f master + +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0050-filesystem/unicode/.git/ +[master (root-commit) 34f0acb] initial + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 "a\314\210" +Switched to a new branch 'topic' +[topic 591d19c] rename + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + rename "a\314\210" => "\303\244" (100%) +Switched to branch 'master' +ok 8 - setup unicode normalization tests + +expecting success of 0050.9 'rename (silent unicode normalization)': + git mv "$aumlcdiar" "$auml" && + git commit -m rename + +[master 591d19c] rename + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + rename "a\314\210" => "\303\244" (100%) +ok 9 - rename (silent unicode normalization) + +expecting success of 0050.10 'merge (silent unicode normalization)': + git reset --hard initial && + git merge topic + +HEAD is now at 34f0acb initial +Updating 34f0acb..591d19c +Fast-forward + "a\314\210" => "\303\244" | 0 + 1 file changed, 0 insertions(+), 0 deletions(-) + rename "a\314\210" => "\303\244" (100%) +ok 10 - merge (silent unicode normalization) + +ok 11 # skip checkout with no pathspec and a case insensitive fs (missing CASE_INSENSITIVE_FS) + +# passed all 11 test(s) +1..11 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t0051-windows-named-pipe.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0051-windows-named-pipe/.git/ +ok 1 # skip o_append write to named pipe (missing MINGW) + +# passed all 1 test(s) +1..1 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t0055-beyond-symlinks.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0055-beyond-symlinks/.git/ +checking prerequisite: SYMLINKS + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && + # test whether the filesystem supports symbolic links + ln -s x y && test -h y + +) +prerequisite SYMLINKS ok +expecting success of 0055.1 'setup': + >a && + mkdir b && + ln -s b c && + >c/d && + git update-index --add a b/d + +ok 1 - setup + +expecting success of 0055.2 'update-index --add beyond symlinks': + test_must_fail git update-index --add c/d && + ! ( git ls-files | grep c/d ) + +error: 'c/d' is beyond a symbolic link +fatal: Unable to process path c/d +ok 2 - update-index --add beyond symlinks + +expecting success of 0055.3 'add beyond symlinks': + test_must_fail git add c/d && + ! ( git ls-files | grep c/d ) + +fatal: pathspec 'c/d' is beyond a symbolic link +ok 3 - add beyond symlinks + +# passed all 3 test(s) +1..3 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t0040-parse-options.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0040-parse-options/.git/ expecting success of 0040.1 'test help': @@ -19988,359 +20195,6 @@ 1..53 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t0041-usage.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0041-usage/.git/ -expecting success of 0041.1 'setup ': - test_commit "v1.0" - -[master (root-commit) 843b676] v1.0 - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 v1.0.t -ok 1 - setup - -expecting success of 0041.2 'tag --contains ': - git tag --contains "v1.0" >actual 2>actual.err && - grep "v1.0" actual && - test_line_count = 0 actual.err - -v1.0 -ok 2 - tag --contains - -expecting success of 0041.3 'tag --contains ': - test_must_fail git tag --contains "notag" >actual 2>actual.err && - test_line_count = 0 actual && - test_i18ngrep "error" actual.err && - test_i18ngrep ! "usage" actual.err - -checking prerequisite: C_LOCALE_OUTPUT - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false - -) -prerequisite C_LOCALE_OUTPUT ok -error: malformed object name notag -ok 3 - tag --contains - -expecting success of 0041.4 'tag --no-contains ': - git tag --no-contains "v1.0" >actual 2>actual.err && - test_line_count = 0 actual && - test_line_count = 0 actual.err - -ok 4 - tag --no-contains - -expecting success of 0041.5 'tag --no-contains ': - test_must_fail git tag --no-contains "notag" >actual 2>actual.err && - test_line_count = 0 actual && - test_i18ngrep "error" actual.err && - test_i18ngrep ! "usage" actual.err - -error: malformed object name notag -ok 5 - tag --no-contains - -expecting success of 0041.6 'tag usage error': - test_must_fail git tag --noopt >actual 2>actual.err && - test_line_count = 0 actual && - test_i18ngrep "usage" actual.err - -usage: git tag [-a | -s | -u ] [-f] [-m | -F ] -ok 6 - tag usage error - -expecting success of 0041.7 'branch --contains ': - git branch --contains "master" >actual 2>actual.err && - test_i18ngrep "master" actual && - test_line_count = 0 actual.err - -* master -ok 7 - branch --contains - -expecting success of 0041.8 'branch --contains ': - test_must_fail git branch --no-contains "nocommit" >actual 2>actual.err && - test_line_count = 0 actual && - test_i18ngrep "error" actual.err && - test_i18ngrep ! "usage" actual.err - -error: malformed object name nocommit -ok 8 - branch --contains - -expecting success of 0041.9 'branch --no-contains ': - git branch --no-contains "master" >actual 2>actual.err && - test_line_count = 0 actual && - test_line_count = 0 actual.err - -ok 9 - branch --no-contains - -expecting success of 0041.10 'branch --no-contains ': - test_must_fail git branch --no-contains "nocommit" >actual 2>actual.err && - test_line_count = 0 actual && - test_i18ngrep "error" actual.err && - test_i18ngrep ! "usage" actual.err - -error: malformed object name nocommit -ok 10 - branch --no-contains - -expecting success of 0041.11 'branch usage error': - test_must_fail git branch --noopt >actual 2>actual.err && - test_line_count = 0 actual && - test_i18ngrep "usage" actual.err - -usage: git branch [] [-r | -a] [--merged] [--no-merged] -ok 11 - branch usage error - -expecting success of 0041.12 'for-each-ref --contains ': - git for-each-ref --contains "master" >actual 2>actual.err && - test_line_count = 2 actual && - test_line_count = 0 actual.err - -ok 12 - for-each-ref --contains - -expecting success of 0041.13 'for-each-ref --contains ': - test_must_fail git for-each-ref --no-contains "noobject" >actual 2>actual.err && - test_line_count = 0 actual && - test_i18ngrep "error" actual.err && - test_i18ngrep ! "usage" actual.err - -error: malformed object name noobject -ok 13 - for-each-ref --contains - -expecting success of 0041.14 'for-each-ref --no-contains ': - git for-each-ref --no-contains "master" >actual 2>actual.err && - test_line_count = 0 actual && - test_line_count = 0 actual.err - -ok 14 - for-each-ref --no-contains - -expecting success of 0041.15 'for-each-ref --no-contains ': - test_must_fail git for-each-ref --no-contains "noobject" >actual 2>actual.err && - test_line_count = 0 actual && - test_i18ngrep "error" actual.err && - test_i18ngrep ! "usage" actual.err - -error: malformed object name noobject -ok 15 - for-each-ref --no-contains - -expecting success of 0041.16 'for-each-ref usage error': - test_must_fail git for-each-ref --noopt >actual 2>actual.err && - test_line_count = 0 actual && - test_i18ngrep "usage" actual.err - -usage: git for-each-ref [] [] -ok 16 - for-each-ref usage error - -# passed all 16 test(s) -1..16 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t0051-windows-named-pipe.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0051-windows-named-pipe/.git/ -ok 1 # skip o_append write to named pipe (missing MINGW) - -# passed all 1 test(s) -1..1 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t0050-filesystem.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0050-filesystem/.git/ -checking prerequisite: CASE_INSENSITIVE_FS - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-CASE_INSENSITIVE_FS" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-CASE_INSENSITIVE_FS" && - echo good >CamelCase && - echo bad >camelcase && - test "$(cat CamelCase)" != good - -) -prerequisite CASE_INSENSITIVE_FS not satisfied -checking prerequisite: UTF8_NFD_TO_NFC - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-UTF8_NFD_TO_NFC" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-UTF8_NFD_TO_NFC" && - # check whether FS converts nfd unicode to nfc - auml=$(printf "\303\244") - aumlcdiar=$(printf "\141\314\210") - >"$auml" && - test -f "$aumlcdiar" - -) -prerequisite UTF8_NFD_TO_NFC not satisfied -checking prerequisite: SYMLINKS - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && - # test whether the filesystem supports symbolic links - ln -s x y && test -h y - -) -prerequisite SYMLINKS ok -expecting success of 0050.1 'detection of case insensitive filesystem during repo init': - { - test_must_fail git config --bool core.ignorecase >/dev/null || - test $(git config --bool core.ignorecase) = false - } - -ok 1 - detection of case insensitive filesystem during repo init - -expecting success of 0050.2 'detection of filesystem w/o symlink support during repo init': - { - test_must_fail git config --bool core.symlinks || - test "$(git config --bool core.symlinks)" = true - } - -ok 2 - detection of filesystem w/o symlink support during repo init - -expecting success of 0050.3 'setup case tests': - git config core.ignorecase true && - touch camelcase && - git add camelcase && - git commit -m "initial" && - git tag initial && - git checkout -b topic && - git mv camelcase tmp && - git mv tmp CamelCase && - git commit -m "rename" && - git checkout -f master - -[master (root-commit) 4f2cf87] initial - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - create mode 100644 camelcase -Switched to a new branch 'topic' -[topic 0a6fec9] rename - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - rename camelcase => CamelCase (100%) -Switched to branch 'master' -ok 3 - setup case tests - -expecting success of 0050.4 'rename (case change)': - git mv camelcase CamelCase && - git commit -m "rename" - -[master 0a6fec9] rename - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - rename camelcase => CamelCase (100%) -ok 4 - rename (case change) - -expecting success of 0050.5 'merge (case change)': - rm -f CamelCase && - rm -f camelcase && - git reset --hard initial && - git merge topic - -HEAD is now at 4f2cf87 initial -Updating 4f2cf87..0a6fec9 -Fast-forward - camelcase => CamelCase | 0 - 1 file changed, 0 insertions(+), 0 deletions(-) - rename camelcase => CamelCase (100%) -ok 5 - merge (case change) - -ok 6 # skip add directory (with different case) (missing CASE_INSENSITIVE_FS) - -ok 7 # skip add (with different case) (missing CASE_INSENSITIVE_FS) - -expecting success of 0050.8 'setup unicode normalization tests': - test_create_repo unicode && - cd unicode && - git config core.precomposeunicode false && - touch "$aumlcdiar" && - git add "$aumlcdiar" && - git commit -m initial && - git tag initial && - git checkout -b topic && - git mv $aumlcdiar tmp && - git mv tmp "$auml" && - git commit -m rename && - git checkout -f master - -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0050-filesystem/unicode/.git/ -[master (root-commit) 34f0acb] initial - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - create mode 100644 "a\314\210" -Switched to a new branch 'topic' -[topic 591d19c] rename - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - rename "a\314\210" => "\303\244" (100%) -Switched to branch 'master' -ok 8 - setup unicode normalization tests - -expecting success of 0050.9 'rename (silent unicode normalization)': - git mv "$aumlcdiar" "$auml" && - git commit -m rename - -[master 591d19c] rename - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - rename "a\314\210" => "\303\244" (100%) -ok 9 - rename (silent unicode normalization) - -expecting success of 0050.10 'merge (silent unicode normalization)': - git reset --hard initial && - git merge topic - -HEAD is now at 34f0acb initial -Updating 34f0acb..591d19c -Fast-forward - "a\314\210" => "\303\244" | 0 - 1 file changed, 0 insertions(+), 0 deletions(-) - rename "a\314\210" => "\303\244" (100%) -ok 10 - merge (silent unicode normalization) - -ok 11 # skip checkout with no pathspec and a case insensitive fs (missing CASE_INSENSITIVE_FS) - -# passed all 11 test(s) -1..11 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t0055-beyond-symlinks.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0055-beyond-symlinks/.git/ -checking prerequisite: SYMLINKS - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && - # test whether the filesystem supports symbolic links - ln -s x y && test -h y - -) -prerequisite SYMLINKS ok -expecting success of 0055.1 'setup': - >a && - mkdir b && - ln -s b c && - >c/d && - git update-index --add a b/d - -ok 1 - setup - -expecting success of 0055.2 'update-index --add beyond symlinks': - test_must_fail git update-index --add c/d && - ! ( git ls-files | grep c/d ) - -error: 'c/d' is beyond a symbolic link -fatal: Unable to process path c/d -ok 2 - update-index --add beyond symlinks - -expecting success of 0055.3 'add beyond symlinks': - test_must_fail git add c/d && - ! ( git ls-files | grep c/d ) - -fatal: pathspec 'c/d' is beyond a symbolic link -ok 3 - add beyond symlinks - -# passed all 3 test(s) -1..3 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' *** t0056-git-C.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0056-git-C/.git/ expecting success of 0056.1 '"git -C " runs git from the directory ': @@ -20470,6 +20324,36 @@ 1..11 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t0062-revision-walking.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0062-revision-walking/.git/ +expecting success of 0062.1 'setup': + echo a > a && + git add a && + git commit -m "add a" && + echo b > b && + git add b && + git commit -m "add b" + +[master (root-commit) 925677c] add a + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 a +[master 4505e02] add b + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 b +ok 1 - setup + +expecting success of 0062.2 'revision walking can be done twice': + test-tool revision-walking run-twice >run_twice_actual && + test_cmp run_twice_expected run_twice_actual + +ok 2 - revision walking can be done twice + +# passed all 2 test(s) +1..2 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t0061-run-command.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0061-run-command/.git/ ok 1 # skip subprocess inherits only std handles (missing MINGW) @@ -20690,36 +20574,6 @@ 1..18 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t0062-revision-walking.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0062-revision-walking/.git/ -expecting success of 0062.1 'setup': - echo a > a && - git add a && - git commit -m "add a" && - echo b > b && - git add b && - git commit -m "add b" - -[master (root-commit) 925677c] add a - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 a -[master 4505e02] add b - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 b -ok 1 - setup - -expecting success of 0062.2 'revision walking can be done twice': - test-tool revision-walking run-twice >run_twice_actual && - test_cmp run_twice_expected run_twice_actual - -ok 2 - revision walking can be done twice - -# passed all 2 test(s) -1..2 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' *** t0063-string-list.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0063-string-list/.git/ expecting success of 0063.1 'split foo:bar:baz at :, max -1': @@ -20812,6 +20666,40 @@ 1..9 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t0065-strcmp-offset.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0065-strcmp-offset/.git/ +expecting success of 0065.1 'strcmp_offset(abc, abc)': + echo "$expect" >expect && + test-tool strcmp-offset "$s1" "$s2" >actual && + test_cmp expect actual + +ok 1 - strcmp_offset(abc, abc) + +expecting success of 0065.2 'strcmp_offset(abc, def)': + echo "$expect" >expect && + test-tool strcmp-offset "$s1" "$s2" >actual && + test_cmp expect actual + +ok 2 - strcmp_offset(abc, def) + +expecting success of 0065.3 'strcmp_offset(abc, abz)': + echo "$expect" >expect && + test-tool strcmp-offset "$s1" "$s2" >actual && + test_cmp expect actual + +ok 3 - strcmp_offset(abc, abz) + +expecting success of 0065.4 'strcmp_offset(abc, abcdef)': + echo "$expect" >expect && + test-tool strcmp-offset "$s1" "$s2" >actual && + test_cmp expect actual + +ok 4 - strcmp_offset(abc, abcdef) + +# passed all 4 test(s) +1..4 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t0064-oid-array.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0064-oid-array/.git/ expecting success of 0064.1 'ordered enumeration': @@ -20912,38 +20800,119 @@ 1..8 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t0065-strcmp-offset.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0065-strcmp-offset/.git/ -expecting success of 0065.1 'strcmp_offset(abc, abc)': - echo "$expect" >expect && - test-tool strcmp-offset "$s1" "$s2" >actual && - test_cmp expect actual - -ok 1 - strcmp_offset(abc, abc) +*** t0067-parse_pathspec_file.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0067-parse_pathspec_file/.git/ +expecting success of 0067.1 'one item from stdin': + cat >expect <<-\EOF && + fileA.t + EOF -expecting success of 0065.2 'strcmp_offset(abc, def)': - echo "$expect" >expect && - test-tool strcmp-offset "$s1" "$s2" >actual && - test_cmp expect actual - -ok 2 - strcmp_offset(abc, def) + echo fileA.t | + test-tool parse-pathspec-file --pathspec-from-file=- >actual && -expecting success of 0065.3 'strcmp_offset(abc, abz)': - echo "$expect" >expect && - test-tool strcmp-offset "$s1" "$s2" >actual && - test_cmp expect actual - -ok 3 - strcmp_offset(abc, abz) + test_cmp expect actual -expecting success of 0065.4 'strcmp_offset(abc, abcdef)': - echo "$expect" >expect && - test-tool strcmp-offset "$s1" "$s2" >actual && - test_cmp expect actual - -ok 4 - strcmp_offset(abc, abcdef) +ok 1 - one item from stdin -# passed all 4 test(s) -1..4 +expecting success of 0067.2 'one item from file': + cat >expect <<-\EOF && + fileA.t + EOF + + echo fileA.t >list && + test-tool parse-pathspec-file --pathspec-from-file=list >actual && + + test_cmp expect actual + +ok 2 - one item from file + +expecting success of 0067.3 'NUL delimiters': + cat >expect <<-\EOF && + fileA.t + fileB.t + EOF + + printf "fileA.t\0fileB.t\0" | + test-tool parse-pathspec-file --pathspec-from-file=- --pathspec-file-nul >actual && + + test_cmp expect actual + +ok 3 - NUL delimiters + +expecting success of 0067.4 'LF delimiters': + cat >expect <<-\EOF && + fileA.t + fileB.t + EOF + + printf "fileA.t\nfileB.t\n" | + test-tool parse-pathspec-file --pathspec-from-file=- >actual && + + test_cmp expect actual + +ok 4 - LF delimiters + +expecting success of 0067.5 'no trailing delimiter': + cat >expect <<-\EOF && + fileA.t + fileB.t + EOF + + printf "fileA.t\nfileB.t" | + test-tool parse-pathspec-file --pathspec-from-file=- >actual && + + test_cmp expect actual + +ok 5 - no trailing delimiter + +expecting success of 0067.6 'CRLF delimiters': + cat >expect <<-\EOF && + fileA.t + fileB.t + EOF + + printf "fileA.t\r\nfileB.t\r\n" | + test-tool parse-pathspec-file --pathspec-from-file=- >actual && + + test_cmp expect actual + +ok 6 - CRLF delimiters + +expecting success of 0067.7 'quotes': + cat >expect <<-\EOF && + fileA.t + EOF + + cat >list <<-\EOF && + "file\101.t" + EOF + + test-tool parse-pathspec-file --pathspec-from-file=list >actual && + + test_cmp expect actual + +ok 7 - quotes + +expecting success of 0067.8 '--pathspec-file-nul takes quotes literally': + # Note: there is an extra newline because --pathspec-file-nul takes + # input \n literally, too + cat >expect <<-\EOF && + "file\101.t" + + EOF + + cat >list <<-\EOF && + "file\101.t" + EOF + + test-tool parse-pathspec-file --pathspec-from-file=list --pathspec-file-nul >actual && + + test_cmp expect actual + +ok 8 - --pathspec-file-nul takes quotes literally + +# passed all 8 test(s) +1..8 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' *** t0066-dir-iterator.sh *** @@ -21169,503 +21138,1647 @@ 1..12 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t0060-path-utils.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0060-path-utils/.git/ -expecting success of 0060.1 'basename': test-tool path-utils basename -ok 1 - basename +*** t0068-for-each-repo.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0068-for-each-repo/.git/ +expecting success of 0068.1 'run based on configured value': + git init one && + git init two && + git init three && + git -C two commit --allow-empty -m "DID NOT RUN" && + git config run.key "$TRASH_DIRECTORY/one" && + git config --add run.key "$TRASH_DIRECTORY/three" && + git for-each-repo --config=run.key commit --allow-empty -m "ran" && + git -C one log -1 --pretty=format:%s >message && + grep ran message && + git -C two log -1 --pretty=format:%s >message && + ! grep ran message && + git -C three log -1 --pretty=format:%s >message && + grep ran message && + git for-each-repo --config=run.key -- commit --allow-empty -m "ran again" && + git -C one log -1 --pretty=format:%s >message && + grep again message && + git -C two log -1 --pretty=format:%s >message && + ! grep again message && + git -C three log -1 --pretty=format:%s >message && + grep again message -expecting success of 0060.2 'dirname': test-tool path-utils dirname -ok 2 - dirname +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0068-for-each-repo/one/.git/ +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0068-for-each-repo/two/.git/ +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0068-for-each-repo/three/.git/ +[master (root-commit) 20fd2df] DID NOT RUN + Author: A U Thor +[master (root-commit) 3c2529d] ran + Author: A U Thor +[master (root-commit) 3c2529d] ran + Author: A U Thor +ran +ran +[master 3fc5dd1] ran again + Author: A U Thor +[master 3fc5dd1] ran again + Author: A U Thor +ran again +ran again +ok 1 - run based on configured value -expecting success of 0060.3 'normalize path: => ': test "$(test-tool path-utils normalize_path_copy '')" = '' -ok 3 - normalize path: => +expecting success of 0068.2 'do nothing on empty config': + # the whole thing would fail if for-each-ref iterated even + # once, because "git help --no-such-option" would fail + git for-each-repo --config=bogus.config -- help --no-such-option -expecting success of 0060.4 'normalize path: . => ': test "$(test-tool path-utils normalize_path_copy '.')" = '' -ok 4 - normalize path: . => +ok 2 - do nothing on empty config -expecting success of 0060.5 'normalize path: ./ => ': test "$(test-tool path-utils normalize_path_copy './')" = '' -ok 5 - normalize path: ./ => +# passed all 2 test(s) +1..2 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t0070-fundamental.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0070-fundamental/.git/ +expecting success of 0070.1 'character classes (isspace, isalpha etc.)': + test-tool ctype -expecting success of 0060.6 'normalize path: ./. => ': test "$(test-tool path-utils normalize_path_copy './.')" = '' -ok 6 - normalize path: ./. => +ok 1 - character classes (isspace, isalpha etc.) -expecting success of 0060.7 'normalize path: ./.. => ++failed++': test "$(test-tool path-utils normalize_path_copy './..')" = '++failed++' -ok 7 - normalize path: ./.. => ++failed++ +expecting success of 0070.2 'mktemp to nonexistent directory prints filename': + test_must_fail test-tool mktemp doesnotexist/testXXXXXX 2>err && + grep "doesnotexist/test" err -expecting success of 0060.8 'normalize path: ../. => ++failed++': test "$(test-tool path-utils normalize_path_copy '../.')" = '++failed++' -ok 8 - normalize path: ../. => ++failed++ +fatal: Unable to create temporary file '/build/git-2.30.2/t/trash directory.t0070-fundamental/doesnotexist/testodDNaB': No such file or directory +ok 2 - mktemp to nonexistent directory prints filename -expecting success of 0060.9 'normalize path: ./../.// => ++failed++': test "$(test-tool path-utils normalize_path_copy './.././/')" = '++failed++' -ok 9 - normalize path: ./../.// => ++failed++ +checking prerequisite: SANITY -expecting success of 0060.10 'normalize path: dir/.. => ': test "$(test-tool path-utils normalize_path_copy 'dir/..')" = '' -ok 10 - normalize path: dir/.. => +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SANITY" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-SANITY" && + mkdir SANETESTD.1 SANETESTD.2 && -expecting success of 0060.11 'normalize path: dir/sub/../.. => ': test "$(test-tool path-utils normalize_path_copy 'dir/sub/../..')" = '' -ok 11 - normalize path: dir/sub/../.. => + chmod +w SANETESTD.1 SANETESTD.2 && + >SANETESTD.1/x 2>SANETESTD.2/x && + chmod -w SANETESTD.1 && + chmod -r SANETESTD.1/x && + chmod -rx SANETESTD.2 || + BUG "cannot prepare SANETESTD" -expecting success of 0060.12 'normalize path: dir/sub/../../.. => ++failed++': test "$(test-tool path-utils normalize_path_copy 'dir/sub/../../..')" = '++failed++' -ok 12 - normalize path: dir/sub/../../.. => ++failed++ + ! test -r SANETESTD.1/x && + ! rm SANETESTD.1/x && ! test -f SANETESTD.2/x + status=$? -expecting success of 0060.13 'normalize path: dir => dir': test "$(test-tool path-utils normalize_path_copy 'dir')" = 'dir' -ok 13 - normalize path: dir => dir + chmod +rwx SANETESTD.1 SANETESTD.2 && + rm -rf SANETESTD.1 SANETESTD.2 || + BUG "cannot clean SANETESTD" + return $status -expecting success of 0060.14 'normalize path: dir// => dir/': test "$(test-tool path-utils normalize_path_copy 'dir//')" = 'dir/' -ok 14 - normalize path: dir// => dir/ +) +rm: cannot remove 'SANETESTD.1/x': Permission denied +prerequisite SANITY ok +expecting success of 0070.3 'mktemp to unwritable directory prints filename': + mkdir cannotwrite && + test_when_finished "chmod +w cannotwrite" && + chmod -w cannotwrite && + test_must_fail test-tool mktemp cannotwrite/testXXXXXX 2>err && + grep "cannotwrite/test" err -expecting success of 0060.15 'normalize path: ./dir => dir': test "$(test-tool path-utils normalize_path_copy './dir')" = 'dir' -ok 15 - normalize path: ./dir => dir +fatal: Unable to create temporary file '/build/git-2.30.2/t/trash directory.t0070-fundamental/cannotwrite/testC2AEax': Permission denied +ok 3 - mktemp to unwritable directory prints filename -expecting success of 0060.16 'normalize path: dir/. => dir/': test "$(test-tool path-utils normalize_path_copy 'dir/.')" = 'dir/' -ok 16 - normalize path: dir/. => dir/ +expecting success of 0070.4 'git_mkstemps_mode does not fail if fd 0 is not open': + git commit --allow-empty -m message <&- -expecting success of 0060.17 'normalize path: dir///./ => dir/': test "$(test-tool path-utils normalize_path_copy 'dir///./')" = 'dir/' -ok 17 - normalize path: dir///./ => dir/ +[master (root-commit) b293b08] message + Author: A U Thor +ok 4 - git_mkstemps_mode does not fail if fd 0 is not open -expecting success of 0060.18 'normalize path: dir//sub/.. => dir/': test "$(test-tool path-utils normalize_path_copy 'dir//sub/..')" = 'dir/' -ok 18 - normalize path: dir//sub/.. => dir/ +expecting success of 0070.5 'check for a bug in the regex routines': + # if this test fails, re-build git with NO_REGEX=1 + test-tool regex --bug -expecting success of 0060.19 'normalize path: dir/sub/../ => dir/': test "$(test-tool path-utils normalize_path_copy 'dir/sub/../')" = 'dir/' -ok 19 - normalize path: dir/sub/../ => dir/ +ok 5 - check for a bug in the regex routines -expecting success of 0060.20 'normalize path: dir/sub/../. => dir/': test "$(test-tool path-utils normalize_path_copy 'dir/sub/../.')" = 'dir/' -ok 20 - normalize path: dir/sub/../. => dir/ +expecting success of 0070.6 'incomplete sideband messages are reassembled': + test-tool pkt-line send-split-sideband >split-sideband && + test-tool pkt-line receive-sideband err && + grep "Hello, world" err -expecting success of 0060.21 'normalize path: dir/s1/../s2/ => dir/s2/': test "$(test-tool path-utils normalize_path_copy 'dir/s1/../s2/')" = 'dir/s2/' -ok 21 - normalize path: dir/s1/../s2/ => dir/s2/ +primary: regular output +remote: Hello, world! +ok 6 - incomplete sideband messages are reassembled -expecting success of 0060.22 'normalize path: d1/s1///s2/..//../s3/ => d1/s3/': test "$(test-tool path-utils normalize_path_copy 'd1/s1///s2/..//../s3/')" = 'd1/s3/' -ok 22 - normalize path: d1/s1///s2/..//../s3/ => d1/s3/ +expecting success of 0070.7 'eof on sideband message is reported': + printf 1234 >input && + test-tool pkt-line receive-sideband err && + test_i18ngrep "unexpected disconnect" err -expecting success of 0060.23 'normalize path: d1/s1//../s2/../../d2 => d2': test "$(test-tool path-utils normalize_path_copy 'd1/s1//../s2/../../d2')" = 'd2' -ok 23 - normalize path: d1/s1//../s2/../../d2 => d2 +checking prerequisite: C_LOCALE_OUTPUT -expecting success of 0060.24 'normalize path: d1/.../d2 => d1/.../d2': test "$(test-tool path-utils normalize_path_copy 'd1/.../d2')" = 'd1/.../d2' -ok 24 - normalize path: d1/.../d2 => d1/.../d2 +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false -expecting success of 0060.25 'normalize path: d1/..././../d2 => d1/d2': test "$(test-tool path-utils normalize_path_copy 'd1/..././../d2')" = 'd1/d2' -ok 25 - normalize path: d1/..././../d2 => d1/d2 +) +prerequisite C_LOCALE_OUTPUT ok +sideband: unexpected disconnect while reading sideband packet +ok 7 - eof on sideband message is reported -expecting success of 0060.26 'normalize path: / => /': test "$(test-tool path-utils normalize_path_copy '/')" = '/' -ok 26 - normalize path: / => / +expecting success of 0070.8 'missing sideband designator is reported': + printf 0004 >input && + test-tool pkt-line receive-sideband err && + test_i18ngrep "missing sideband" err -expecting success of 0060.27 'normalize path: // => /': test "$(test-tool path-utils normalize_path_copy '//')" = '/' -ok 27 - normalize path: // => / +sideband: protocol error: missing sideband designator +ok 8 - missing sideband designator is reported -expecting success of 0060.28 'normalize path: /// => /': test "$(test-tool path-utils normalize_path_copy '///')" = '/' -ok 28 - normalize path: /// => / +# passed all 8 test(s) +1..8 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t0091-bugreport.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0091-bugreport/.git/ +expecting success of 0091.1 'creates a report with content in the right places': + test_when_finished rm git-bugreport-check-headers.txt && + git bugreport -s check-headers && + check_all_headers_populated /': test "$(test-tool path-utils normalize_path_copy '/.')" = '/' -ok 29 - normalize path: /. => / +Created new report at 'git-bugreport-check-headers.txt'. +grep: Thank you for filling out a Git bug report!: No such file or directory +grep: Please answer the following questions to help us understand your issue.: No such file or directory +grep: : No such file or directory +grep: What did you do before the bug happened? (Steps to reproduce your issue): No such file or directory +grep: : No such file or directory +grep: What did you expect to happen? (Expected behavior): No such file or directory +grep: : No such file or directory +grep: What happened instead? (Actual behavior): No such file or directory +grep: : No such file or directory +grep: What's different between what you expected and what actually happened?: No such file or directory +grep: : No such file or directory +grep: Anything else you want to add:: No such file or directory +grep: : No such file or directory +grep: Please review the rest of the bug report below.: No such file or directory +grep: You can delete any lines you don't wish to share.: No such file or directory +grep: : No such file or directory +grep: : No such file or directory +grep: [System Info]: No such file or directory +grep: git version:: No such file or directory +grep: git version 2.30.2: No such file or directory +grep: cpu: arm: No such file or directory +grep: no commit associated with this build: No such file or directory +grep: sizeof-long: 4: No such file or directory +grep: sizeof-size_t: 4: No such file or directory +grep: shell-path: /bin/sh: No such file or directory +grep: uname: Linux 5.10.0-21-armmp-lpae #1 SMP Debian 5.10.162-1 (2023-01-21) armv7l: No such file or directory +grep: compiler info: gnuc: 10.2: No such file or directory +grep: libc info: glibc: 2.31: No such file or directory +grep: $SHELL (typically, interactive shell): /bin/bash: No such file or directory +grep: : No such file or directory +grep: : No such file or directory +grep: [Enabled Hooks]: No such file or directory +ok 1 - creates a report with content in the right places -expecting success of 0060.30 'normalize path: /./ => /': test "$(test-tool path-utils normalize_path_copy '/./')" = '/' -ok 30 - normalize path: /./ => / +expecting success of 0091.2 'dies if file with same name as report already exists': + test_when_finished rm git-bugreport-duplicate.txt && + >>git-bugreport-duplicate.txt && + test_must_fail git bugreport --suffix duplicate -expecting success of 0060.31 'normalize path: /./.. => ++failed++': test "$(test-tool path-utils normalize_path_copy '/./..')" = '++failed++' -ok 31 - normalize path: /./.. => ++failed++ +fatal: couldn't create a new file at 'git-bugreport-duplicate.txt' +ok 2 - dies if file with same name as report already exists -expecting success of 0060.32 'normalize path: /../. => ++failed++': test "$(test-tool path-utils normalize_path_copy '/../.')" = '++failed++' -ok 32 - normalize path: /../. => ++failed++ +expecting success of 0091.3 '--output-directory puts the report in the provided dir': + test_when_finished rm -fr foo/ && + git bugreport -o foo/ && + test_path_is_file foo/git-bugreport-* -expecting success of 0060.33 'normalize path: /./../.// => ++failed++': test "$(test-tool path-utils normalize_path_copy '/./.././/')" = '++failed++' -ok 33 - normalize path: /./../.// => ++failed++ +Created new report at 'foo/git-bugreport-2023-04-29-1743.txt'. +ok 3 - --output-directory puts the report in the provided dir -expecting success of 0060.34 'normalize path: /dir/.. => /': test "$(test-tool path-utils normalize_path_copy '/dir/..')" = '/' -ok 34 - normalize path: /dir/.. => / +expecting success of 0091.4 'incorrect arguments abort with usage': + test_must_fail git bugreport --false 2>output && + test_i18ngrep usage output && + test_path_is_missing git-bugreport-* -expecting success of 0060.35 'normalize path: /dir/sub/../.. => /': test "$(test-tool path-utils normalize_path_copy '/dir/sub/../..')" = '/' -ok 35 - normalize path: /dir/sub/../.. => / +checking prerequisite: C_LOCALE_OUTPUT -expecting success of 0060.36 'normalize path: /dir/sub/../../.. => ++failed++': test "$(test-tool path-utils normalize_path_copy '/dir/sub/../../..')" = '++failed++' -ok 36 - normalize path: /dir/sub/../../.. => ++failed++ +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false -expecting success of 0060.37 'normalize path: /dir => /dir': test "$(test-tool path-utils normalize_path_copy '/dir')" = '/dir' -ok 37 - normalize path: /dir => /dir +) +prerequisite C_LOCALE_OUTPUT ok +usage: git bugreport [-o|--output-directory ] [-s|--suffix ] +ok 4 - incorrect arguments abort with usage -expecting success of 0060.38 'normalize path: /dir// => /dir/': test "$(test-tool path-utils normalize_path_copy '/dir//')" = '/dir/' -ok 38 - normalize path: /dir// => /dir/ +expecting success of 0091.5 'runs outside of a git dir': + test_when_finished rm non-repo/git-bugreport-* && + nongit git bugreport -expecting success of 0060.39 'normalize path: /./dir => /dir': test "$(test-tool path-utils normalize_path_copy '/./dir')" = '/dir' -ok 39 - normalize path: /./dir => /dir +Created new report at 'git-bugreport-2023-04-29-1743.txt'. +ok 5 - runs outside of a git dir -expecting success of 0060.40 'normalize path: /dir/. => /dir/': test "$(test-tool path-utils normalize_path_copy '/dir/.')" = '/dir/' -ok 40 - normalize path: /dir/. => /dir/ +expecting success of 0091.6 'can create leading directories outside of a git dir': + test_when_finished rm -fr foo/bar/baz && + nongit git bugreport -o foo/bar/baz -expecting success of 0060.41 'normalize path: /dir///./ => /dir/': test "$(test-tool path-utils normalize_path_copy '/dir///./')" = '/dir/' -ok 41 - normalize path: /dir///./ => /dir/ +Created new report at 'foo/bar/baz/git-bugreport-2023-04-29-1743.txt'. +ok 6 - can create leading directories outside of a git dir -expecting success of 0060.42 'normalize path: /dir//sub/.. => /dir/': test "$(test-tool path-utils normalize_path_copy '/dir//sub/..')" = '/dir/' -ok 42 - normalize path: /dir//sub/.. => /dir/ +expecting success of 0091.7 'indicates populated hooks': + test_when_finished rm git-bugreport-hooks.txt && + test_when_finished rm -fr .git/hooks && + rm -fr .git/hooks && + mkdir .git/hooks && + for hook in applypatch-msg prepare-commit-msg.sample + do + write_script ".git/hooks/$hook" <<-EOF || return 1 + echo "hook $hook exists" + EOF + done && + git bugreport -s hooks && + grep applypatch-msg git-bugreport-hooks.txt && + ! grep prepare-commit-msg git-bugreport-hooks.txt -expecting success of 0060.43 'normalize path: /dir/sub/../ => /dir/': test "$(test-tool path-utils normalize_path_copy '/dir/sub/../')" = '/dir/' -ok 43 - normalize path: /dir/sub/../ => /dir/ +Created new report at 'git-bugreport-hooks.txt'. +applypatch-msg +ok 7 - indicates populated hooks -expecting success of 0060.44 'normalize path: //dir/sub/../. => /dir/': test "$(test-tool path-utils normalize_path_copy '//dir/sub/../.')" = '/dir/' -ok 44 - normalize path: //dir/sub/../. => /dir/ +# passed all 7 test(s) +1..7 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t0095-bloom.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0095-bloom/.git/ +expecting success of 0095.1 'compute unseeded murmur3 hash for empty string': + cat >expect <<-\EOF && + Murmur3 Hash with seed=0:0x00000000 + EOF + test-tool bloom get_murmur3 "" >actual && + test_cmp expect actual -expecting success of 0060.45 'normalize path: /dir/s1/../s2/ => /dir/s2/': test "$(test-tool path-utils normalize_path_copy '/dir/s1/../s2/')" = '/dir/s2/' -ok 45 - normalize path: /dir/s1/../s2/ => /dir/s2/ +ok 1 - compute unseeded murmur3 hash for empty string -expecting success of 0060.46 'normalize path: /d1/s1///s2/..//../s3/ => /d1/s3/': test "$(test-tool path-utils normalize_path_copy '/d1/s1///s2/..//../s3/')" = '/d1/s3/' -ok 46 - normalize path: /d1/s1///s2/..//../s3/ => /d1/s3/ +expecting success of 0095.2 'compute unseeded murmur3 hash for test string 1': + cat >expect <<-\EOF && + Murmur3 Hash with seed=0:0x627b0c2c + EOF + test-tool bloom get_murmur3 "Hello world!" >actual && + test_cmp expect actual -expecting success of 0060.47 'normalize path: /d1/s1//../s2/../../d2 => /d2': test "$(test-tool path-utils normalize_path_copy '/d1/s1//../s2/../../d2')" = '/d2' -ok 47 - normalize path: /d1/s1//../s2/../../d2 => /d2 +ok 2 - compute unseeded murmur3 hash for test string 1 -expecting success of 0060.48 'normalize path: /d1/.../d2 => /d1/.../d2': test "$(test-tool path-utils normalize_path_copy '/d1/.../d2')" = '/d1/.../d2' -ok 48 - normalize path: /d1/.../d2 => /d1/.../d2 +expecting success of 0095.3 'compute unseeded murmur3 hash for test string 2': + cat >expect <<-\EOF && + Murmur3 Hash with seed=0:0x2e4ff723 + EOF + test-tool bloom get_murmur3 "The quick brown fox jumps over the lazy dog" >actual && + test_cmp expect actual -expecting success of 0060.49 'normalize path: /d1/..././../d2 => /d1/d2': test "$(test-tool path-utils normalize_path_copy '/d1/..././../d2')" = '/d1/d2' -ok 49 - normalize path: /d1/..././../d2 => /d1/d2 +ok 3 - compute unseeded murmur3 hash for test string 2 -expecting success of 0060.50 'longest ancestor: / / => -1': actual=$(test-tool path-utils longest_ancestor_length '/' '/') && - test "$actual" = '-1' -ok 50 - longest ancestor: / / => -1 +expecting success of 0095.4 'compute bloom key for empty string': + cat >expect <<-\EOF && + Hashes:0x5615800c|0x5b966560|0x61174ab4|0x66983008|0x6c19155c|0x7199fab0|0x771ae004| + Filter_Length:2 + Filter_Data:11|11| + EOF + test-tool bloom generate_filter "" >actual && + test_cmp expect actual -expecting success of 0060.51 'longest ancestor: /foo / => 0': actual=$(test-tool path-utils longest_ancestor_length '/foo' '/') && - test "$actual" = '0' -ok 51 - longest ancestor: /foo / => 0 +ok 4 - compute bloom key for empty string -expecting success of 0060.52 'longest ancestor: /foo /fo => -1': actual=$(test-tool path-utils longest_ancestor_length '/foo' '/fo') && - test "$actual" = '-1' -ok 52 - longest ancestor: /foo /fo => -1 +expecting success of 0095.5 'compute bloom key for whitespace': + cat >expect <<-\EOF && + Hashes:0xf178874c|0x5f3d6eb6|0xcd025620|0x3ac73d8a|0xa88c24f4|0x16510c5e|0x8415f3c8| + Filter_Length:2 + Filter_Data:51|55| + EOF + test-tool bloom generate_filter " " >actual && + test_cmp expect actual -expecting success of 0060.53 'longest ancestor: /foo /foo => -1': actual=$(test-tool path-utils longest_ancestor_length '/foo' '/foo') && - test "$actual" = '-1' -ok 53 - longest ancestor: /foo /foo => -1 +ok 5 - compute bloom key for whitespace -expecting success of 0060.54 'longest ancestor: /foo /bar => -1': actual=$(test-tool path-utils longest_ancestor_length '/foo' '/bar') && - test "$actual" = '-1' -ok 54 - longest ancestor: /foo /bar => -1 +expecting success of 0095.6 'compute bloom key for test string 1': + cat >expect <<-\EOF && + Hashes:0xb270de9b|0x1bb6f26e|0x84fd0641|0xee431a14|0x57892de7|0xc0cf41ba|0x2a15558d| + Filter_Length:2 + Filter_Data:92|6c| + EOF + test-tool bloom generate_filter "Hello world!" >actual && + test_cmp expect actual -expecting success of 0060.55 'longest ancestor: /foo /foo/bar => -1': actual=$(test-tool path-utils longest_ancestor_length '/foo' '/foo/bar') && - test "$actual" = '-1' -ok 55 - longest ancestor: /foo /foo/bar => -1 +ok 6 - compute bloom key for test string 1 -expecting success of 0060.56 'longest ancestor: /foo /foo:/bar => -1': actual=$(test-tool path-utils longest_ancestor_length '/foo' '/foo:/bar') && - test "$actual" = '-1' -ok 56 - longest ancestor: /foo /foo:/bar => -1 +expecting success of 0095.7 'compute bloom key for test string 2': + cat >expect <<-\EOF && + Hashes:0x20ab385b|0xf5237fe2|0xc99bc769|0x9e140ef0|0x728c5677|0x47049dfe|0x1b7ce585| + Filter_Length:2 + Filter_Data:a5|4a| + EOF + test-tool bloom generate_filter "file.txt" >actual && + test_cmp expect actual -expecting success of 0060.57 'longest ancestor: /foo /:/foo:/bar => 0': actual=$(test-tool path-utils longest_ancestor_length '/foo' '/:/foo:/bar') && - test "$actual" = '0' -ok 57 - longest ancestor: /foo /:/foo:/bar => 0 +ok 7 - compute bloom key for test string 2 -expecting success of 0060.58 'longest ancestor: /foo /foo:/:/bar => 0': actual=$(test-tool path-utils longest_ancestor_length '/foo' '/foo:/:/bar') && - test "$actual" = '0' -ok 58 - longest ancestor: /foo /foo:/:/bar => 0 +expecting success of 0095.8 'get bloom filters for commit with no changes': + git init && + git commit --allow-empty -m "c0" && + cat >expect <<-\EOF && + Filter_Length:1 + Filter_Data:00| + EOF + test-tool bloom get_filter_for_commit "$(git rev-parse HEAD)" >actual && + test_cmp expect actual -expecting success of 0060.59 'longest ancestor: /foo /:/bar:/foo => 0': actual=$(test-tool path-utils longest_ancestor_length '/foo' '/:/bar:/foo') && - test "$actual" = '0' -ok 59 - longest ancestor: /foo /:/bar:/foo => 0 +Reinitialized existing Git repository in /build/git-2.30.2/t/trash directory.t0095-bloom/.git/ +[master (root-commit) c7bd1a3] c0 + Author: A U Thor +ok 8 - get bloom filters for commit with no changes -expecting success of 0060.60 'longest ancestor: /foo/bar / => 0': actual=$(test-tool path-utils longest_ancestor_length '/foo/bar' '/') && - test "$actual" = '0' -ok 60 - longest ancestor: /foo/bar / => 0 +expecting success of 0095.9 'get bloom filter for commit with 10 changes': + rm actual && + rm expect && + mkdir smallDir && + for i in $(test_seq 0 9) + do + echo $i >smallDir/$i + done && + git add smallDir && + git commit -m "commit with 10 changes" && + cat >expect <<-\EOF && + Filter_Length:14 + Filter_Data:02|b3|c4|a0|34|e7|fe|eb|cb|47|fe|a0|e8|72| + EOF + test-tool bloom get_filter_for_commit "$(git rev-parse HEAD)" >actual && + test_cmp expect actual -expecting success of 0060.61 'longest ancestor: /foo/bar /fo => -1': actual=$(test-tool path-utils longest_ancestor_length '/foo/bar' '/fo') && - test "$actual" = '-1' -ok 61 - longest ancestor: /foo/bar /fo => -1 +[master 2444bb6] commit with 10 changes + Author: A U Thor + 10 files changed, 10 insertions(+) + create mode 100644 smallDir/0 + create mode 100644 smallDir/1 + create mode 100644 smallDir/2 + create mode 100644 smallDir/3 + create mode 100644 smallDir/4 + create mode 100644 smallDir/5 + create mode 100644 smallDir/6 + create mode 100644 smallDir/7 + create mode 100644 smallDir/8 + create mode 100644 smallDir/9 +ok 9 - get bloom filter for commit with 10 changes -expecting success of 0060.62 'longest ancestor: /foo/bar /foo => 4': actual=$(test-tool path-utils longest_ancestor_length '/foo/bar' '/foo') && - test "$actual" = '4' -ok 62 - longest ancestor: /foo/bar /foo => 4 +checking prerequisite: EXPENSIVE -expecting success of 0060.63 'longest ancestor: /foo/bar /foo/ba => -1': actual=$(test-tool path-utils longest_ancestor_length '/foo/bar' '/foo/ba') && - test "$actual" = '-1' -ok 63 - longest ancestor: /foo/bar /foo/ba => -1 +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-EXPENSIVE" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-EXPENSIVE" && + test -n "$GIT_TEST_LONG" -expecting success of 0060.64 'longest ancestor: /foo/bar /:/fo => 0': actual=$(test-tool path-utils longest_ancestor_length '/foo/bar' '/:/fo') && - test "$actual" = '0' -ok 64 - longest ancestor: /foo/bar /:/fo => 0 +) +prerequisite EXPENSIVE not satisfied +ok 10 # skip get bloom filter for commit with 513 changes (missing EXPENSIVE) -expecting success of 0060.65 'longest ancestor: /foo/bar /foo:/foo/ba => 4': actual=$(test-tool path-utils longest_ancestor_length '/foo/bar' '/foo:/foo/ba') && - test "$actual" = '4' -ok 65 - longest ancestor: /foo/bar /foo:/foo/ba => 4 +# passed all 10 test(s) +1..10 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t0100-previous.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0100-previous/.git/ +expecting success of 0100.1 'branch -d @{-1}': + test_commit A && + git checkout -b junk && + git checkout - && + test "$(git symbolic-ref HEAD)" = refs/heads/master && + git branch -d @{-1} && + test_must_fail git rev-parse --verify refs/heads/junk -expecting success of 0060.66 'longest ancestor: /foo/bar /bar => -1': actual=$(test-tool path-utils longest_ancestor_length '/foo/bar' '/bar') && - test "$actual" = '-1' -ok 66 - longest ancestor: /foo/bar /bar => -1 +[master (root-commit) 0ddfaf1] A + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 A.t +Switched to a new branch 'junk' +Switched to branch 'master' +Deleted branch junk (was 0ddfaf1). +fatal: Needed a single revision +ok 1 - branch -d @{-1} -expecting success of 0060.67 'longest ancestor: /foo/bar /fo => -1': actual=$(test-tool path-utils longest_ancestor_length '/foo/bar' '/fo') && - test "$actual" = '-1' -ok 67 - longest ancestor: /foo/bar /fo => -1 +expecting success of 0100.2 'branch -d @{-12} when there is not enough switches yet': + git reflog expire --expire=now && + git checkout -b junk2 && + git checkout - && + test "$(git symbolic-ref HEAD)" = refs/heads/master && + test_must_fail git branch -d @{-12} && + git rev-parse --verify refs/heads/master -expecting success of 0060.68 'longest ancestor: /foo/bar /foo:/bar => 4': actual=$(test-tool path-utils longest_ancestor_length '/foo/bar' '/foo:/bar') && - test "$actual" = '4' -ok 68 - longest ancestor: /foo/bar /foo:/bar => 4 +Switched to a new branch 'junk2' +Switched to branch 'master' +error: branch '@{-12}' not found. +0ddfaf193ff13d6ab39b7cbd9eed645e3ee2f050 +ok 2 - branch -d @{-12} when there is not enough switches yet -expecting success of 0060.69 'longest ancestor: /foo/bar /:/foo:/bar => 4': actual=$(test-tool path-utils longest_ancestor_length '/foo/bar' '/:/foo:/bar') && - test "$actual" = '4' -ok 69 - longest ancestor: /foo/bar /:/foo:/bar => 4 +expecting success of 0100.3 'merge @{-1}': + git checkout A && + test_commit B && + git checkout A && + test_commit C && + test_commit D && + git branch -f master B && + git branch -f other && + git checkout other && + git checkout master && + git merge @{-1} && + git cat-file commit HEAD | grep "Merge branch 'other'" -expecting success of 0060.70 'longest ancestor: /foo/bar /foo:/:/bar => 4': actual=$(test-tool path-utils longest_ancestor_length '/foo/bar' '/foo:/:/bar') && - test "$actual" = '4' -ok 70 - longest ancestor: /foo/bar /foo:/:/bar => 4 +Note: switching to 'A'. -expecting success of 0060.71 'longest ancestor: /foo/bar /:/bar:/fo => 0': actual=$(test-tool path-utils longest_ancestor_length '/foo/bar' '/:/bar:/fo') && - test "$actual" = '0' -ok 71 - longest ancestor: /foo/bar /:/bar:/fo => 0 +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. -expecting success of 0060.72 'longest ancestor: /foo/bar /:/bar => 0': actual=$(test-tool path-utils longest_ancestor_length '/foo/bar' '/:/bar') && - test "$actual" = '0' -ok 72 - longest ancestor: /foo/bar /:/bar => 0 +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: -expecting success of 0060.73 'longest ancestor: /foo/bar /foo => 4': actual=$(test-tool path-utils longest_ancestor_length '/foo/bar' '/foo') && - test "$actual" = '4' -ok 73 - longest ancestor: /foo/bar /foo => 4 + git switch -c -expecting success of 0060.74 'longest ancestor: /foo/bar /foo:/bar => 4': actual=$(test-tool path-utils longest_ancestor_length '/foo/bar' '/foo:/bar') && - test "$actual" = '4' -ok 74 - longest ancestor: /foo/bar /foo:/bar => 4 +Or undo this operation with: -expecting success of 0060.75 'longest ancestor: /foo/bar /bar => -1': actual=$(test-tool path-utils longest_ancestor_length '/foo/bar' '/bar') && - test "$actual" = '-1' -ok 75 - longest ancestor: /foo/bar /bar => -1 + git switch - -ok 76 # skip longest ancestor: C:/Users/me C:/ => 2 (missing MINGW) +Turn off this advice by setting config variable advice.detachedHead to false -ok 77 # skip longest ancestor: D:/Users/me C:/ => -1 (missing MINGW) +HEAD is now at 0ddfaf1 A +[detached HEAD d9df450] B + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 B.t +Previous HEAD position was d9df450 B +HEAD is now at 0ddfaf1 A +[detached HEAD 5dee784] C + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 C.t +[detached HEAD 12bd07b] D + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 D.t +Switched to branch 'other' +Switched to branch 'master' +Merging: +d9df450 B +virtual @{-1} +found 1 common ancestor: +0ddfaf1 A +Merge made by the 'recursive' strategy. + C.t | 1 + + D.t | 1 + + 2 files changed, 2 insertions(+) + create mode 100644 C.t + create mode 100644 D.t +Merge branch 'other' +ok 3 - merge @{-1} -ok 78 # skip longest ancestor: //server/share/my-directory //server/share/ => 14 (missing MINGW) +expecting success of 0100.4 'merge @{-1}~1': + git checkout master && + git reset --hard B && + git checkout other && + git checkout master && + git merge @{-1}~1 && + git cat-file commit HEAD >actual && + grep "Merge branch 'other'" actual -expecting success of 0060.79 'strip_path_suffix': - test c:/msysgit = $(test-tool path-utils strip_path_suffix \ - c:/msysgit/libexec//git-core libexec/git-core) +Already on 'master' +HEAD is now at d9df450 B +Switched to branch 'other' +Switched to branch 'master' +Merging: +d9df450 B +virtual @{-1}~1 +found 1 common ancestor: +0ddfaf1 A +Merge made by the 'recursive' strategy. + C.t | 1 + + 1 file changed, 1 insertion(+) + create mode 100644 C.t +Merge branch 'other' (early part) +ok 4 - merge @{-1}~1 -ok 79 - strip_path_suffix +expecting success of 0100.5 'merge @{-100} before checking out that many branches yet': + git reflog expire --expire=now && + git checkout -f master && + git reset --hard B && + git branch -f other C && + git checkout other && + git checkout master && + test_must_fail git merge @{-100} -expecting success of 0060.80 'absolute path rejects the empty string': - test_must_fail test-tool path-utils absolute_path "" +Already on 'master' +HEAD is now at d9df450 B +Switched to branch 'other' +Switched to branch 'master' +merge: @{-100} - not something we can merge +ok 5 - merge @{-100} before checking out that many branches yet -fatal: The empty string is not a valid path -ok 80 - absolute path rejects the empty string +expecting success of 0100.6 'log -g @{-1}': + git checkout -b last_branch && + git checkout -b new_branch && + echo "last_branch@{0}" >expect && + git log -g --format=%gd @{-1} >actual && + test_cmp expect actual -ok 81 # skip :\\abc is an absolute path (missing MINGW) +Switched to a new branch 'last_branch' +Switched to a new branch 'new_branch' +ok 6 - log -g @{-1} -expecting success of 0060.82 'real path rejects the empty string': - test_must_fail test-tool path-utils real_path "" +# passed all 6 test(s) +1..6 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t0101-at-syntax.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0101-at-syntax/.git/ +expecting success of 0101.1 'setup': + test_commit one && + test_commit two -fatal: The empty string is not a valid path -ok 82 - real path rejects the empty string +[master (root-commit) d79ce16] one + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 one.t +[master 139b20d] two + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 two.t +ok 1 - setup -expecting success of 0060.83 'real path works on absolute paths 1': - nopath="hopefully-absent-path" && - test "/" = "$(test-tool path-utils real_path "/")" && - test "/$nopath" = "$(test-tool path-utils real_path "/$nopath")" +expecting success of 0101.2 '@{0} shows current': + check_at @{0} two -ok 83 - real path works on absolute paths 1 +ok 2 - @{0} shows current -expecting success of 0060.84 'real path works on absolute paths 2': - nopath="hopefully-absent-path" && - # Find an existing top-level directory for the remaining tests: - d=$(pwd -P | sed -e "s|^\([^/]*/[^/]*\)/.*|\1|") && - test "$d" = "$(test-tool path-utils real_path "$d")" && - test "$d/$nopath" = "$(test-tool path-utils real_path "$d/$nopath")" +expecting success of 0101.3 '@{1} shows old': + check_at @{1} one -ok 84 - real path works on absolute paths 2 +ok 3 - @{1} shows old -expecting success of 0060.85 'real path removes extra leading slashes': - nopath="hopefully-absent-path" && - test "/" = "$(test-tool path-utils real_path "///")" && - test "/$nopath" = "$(test-tool path-utils real_path "///$nopath")" && - # Find an existing top-level directory for the remaining tests: - d=$(pwd -P | sed -e "s|^\([^/]*/[^/]*\)/.*|\1|") && - test "$d" = "$(test-tool path-utils real_path "//$d")" && - test "$d/$nopath" = "$(test-tool path-utils real_path "//$d/$nopath")" +expecting success of 0101.4 '@{now} shows current': + check_at @{now} two -ok 85 - real path removes extra leading slashes +ok 4 - @{now} shows current -expecting success of 0060.86 'real path removes other extra slashes': - nopath="hopefully-absent-path" && - # Find an existing top-level directory for the remaining tests: - d=$(pwd -P | sed -e "s|^\([^/]*/[^/]*\)/.*|\1|") && - test "$d" = "$(test-tool path-utils real_path "$d///")" && - test "$d/$nopath" = "$(test-tool path-utils real_path "$d///$nopath")" +expecting success of 0101.5 '@{2001-09-17} (before the first commit) shows old': + check_at @{2001-09-17} one -ok 86 - real path removes other extra slashes +warning: log for 'master' only goes back to Thu, 7 Apr 2005 15:13:13 -0700 +ok 5 - @{2001-09-17} (before the first commit) shows old -checking prerequisite: SYMLINKS +expecting success of 0101.6 'silly approxidates work': + check_at @{3.hot.dogs.on.2001-09-17} one -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && - # test whether the filesystem supports symbolic links - ln -s x y && test -h y +warning: log for 'master' only goes back to Thu, 7 Apr 2005 15:13:13 -0700 +ok 6 - silly approxidates work -) -prerequisite SYMLINKS ok -expecting success of 0060.87 'real path works on symlinks': - mkdir first && - ln -s ../.git first/.git && - mkdir second && - ln -s ../first second/other && - mkdir third && - dir="$(cd .git; pwd -P)" && - dir2=third/../second/other/.git && - test "$dir" = "$(test-tool path-utils real_path $dir2)" && - file="$dir"/index && - test "$file" = "$(test-tool path-utils real_path $dir2/index)" && - basename=blub && - test "$dir/$basename" = "$(cd .git && test-tool path-utils real_path "$basename")" && - ln -s ../first/file .git/syml && - sym="$(cd first; pwd -P)"/file && - test "$sym" = "$(test-tool path-utils real_path "$dir2/syml")" +expecting success of 0101.7 'notice misspelled upstream': + test_must_fail git log -1 --format=%s @{usptream} -ok 87 - real path works on symlinks +fatal: ambiguous argument '@{usptream}': unknown revision or path not in the working tree. +Use '--' to separate paths from revisions, like this: +'git [...] -- [...]' +ok 7 - notice misspelled upstream -expecting success of 0060.88 'prefix_path works with absolute paths to work tree symlinks': - ln -s target symlink && - test "$(test-tool path-utils prefix_path prefix "$(pwd)/symlink")" = "symlink" +expecting success of 0101.8 'complain about total nonsense': + test_must_fail git log -1 --format=%s @{utter.bogosity} -ok 88 - prefix_path works with absolute paths to work tree symlinks +fatal: ambiguous argument '@{utter.bogosity}': unknown revision or path not in the working tree. +Use '--' to separate paths from revisions, like this: +'git [...] -- [...]' +ok 8 - complain about total nonsense -expecting success of 0060.89 'prefix_path works with only absolute path to work tree': - echo "" >expected && - test-tool path-utils prefix_path prefix "$(pwd)" >actual && - test_cmp expected actual +# passed all 8 test(s) +1..8 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t0090-cache-tree.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0090-cache-tree/.git/ +expecting success of 0090.1 'initial commit has cache-tree': + test_commit foo && + test_cache_tree -ok 89 - prefix_path works with only absolute path to work tree +[master (root-commit) ddd63c9] foo + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 foo.t +ok 1 - initial commit has cache-tree -expecting success of 0060.90 'prefix_path rejects absolute path to dir with same beginning as work tree': - test_must_fail test-tool path-utils prefix_path prefix "$(pwd)a" +expecting success of 0090.2 'read-tree HEAD establishes cache-tree': + git read-tree HEAD && + test_cache_tree -fatal: '/build/git-2.30.2/t/trash directory.t0060-path-utilsa' is outside repository at '/build/git-2.30.2/t/trash directory.t0060-path-utils' -ok 90 - prefix_path rejects absolute path to dir with same beginning as work tree +ok 2 - read-tree HEAD establishes cache-tree -expecting success of 0060.91 'prefix_path works with absolute path to a symlink to work tree having same beginning as work tree': - git init repo && - ln -s repo repolink && - test "a" = "$(cd repo && test-tool path-utils prefix_path prefix "$(pwd)/../repolink/a")" +expecting success of 0090.3 'git-add invalidates cache-tree': + test_when_finished "git reset --hard; git read-tree HEAD" && + echo "I changed this file" >foo && + git add foo && + test_invalid_cache_tree -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0060-path-utils/repo/.git/ -ok 91 - prefix_path works with absolute path to a symlink to work tree having same beginning as work tree +HEAD is now at ddd63c9 foo +ok 3 - git-add invalidates cache-tree -expecting success of 0060.92 'relative path: /foo/a/b/c/ /foo/a/b/ => c/': test "$(test-tool path-utils relative_path '/foo/a/b/c/' '/foo/a/b/')" = 'c/' -ok 92 - relative path: /foo/a/b/c/ /foo/a/b/ => c/ +expecting success of 0090.4 'git-add in subdir invalidates cache-tree': + test_when_finished "git reset --hard; git read-tree HEAD" && + mkdir dirx && + echo "I changed this file" >dirx/foo && + git add dirx/foo && + test_invalid_cache_tree -expecting success of 0060.93 'relative path: /foo/a/b/c/ /foo/a/b => c/': test "$(test-tool path-utils relative_path '/foo/a/b/c/' '/foo/a/b')" = 'c/' -ok 93 - relative path: /foo/a/b/c/ /foo/a/b => c/ +error: invalid object 040000 59d259507ddf2acc00997a8b70c61d7bdc240440 for 'dirx' +HEAD is now at ddd63c9 foo +ok 4 - git-add in subdir invalidates cache-tree -expecting success of 0060.94 'relative path: /foo/a//b//c/ ///foo/a/b// => c/': test "$(test-tool path-utils relative_path '/foo/a//b//c/' '///foo/a/b//')" = 'c/' -ok 94 - relative path: /foo/a//b//c/ ///foo/a/b// => c/ +expecting success of 0090.5 'git-add in subdir does not invalidate sibling cache-tree': + git tag no-children && + test_when_finished "git reset --hard no-children; git read-tree HEAD" && + mkdir dir1 dir2 && + test_commit dir1/a && + test_commit dir2/b && + echo "I changed this file" >dir1/a && + cmp_cache_tree before && + echo "I changed this file" >dir1/a && + git add dir1/a && + cmp_cache_tree expect -expecting success of 0060.95 'relative path: /foo/a/b /foo/a/b => ./': test "$(test-tool path-utils relative_path '/foo/a/b' '/foo/a/b')" = './' -ok 95 - relative path: /foo/a/b /foo/a/b => ./ +[master 365c8fc] dir1/a + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 dir1/a.t +[master 8be4607] dir2/b + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 dir2/b.t +error: invalid object 040000 3b5b859722b671676295bf3795f34b8c6f2393f5 for 'dir1' +HEAD is now at ddd63c9 foo +ok 5 - git-add in subdir does not invalidate sibling cache-tree -expecting success of 0060.96 'relative path: /foo/a/b/ /foo/a/b => ./': test "$(test-tool path-utils relative_path '/foo/a/b/' '/foo/a/b')" = './' -ok 96 - relative path: /foo/a/b/ /foo/a/b => ./ +expecting success of 0090.6 'update-index invalidates cache-tree': + test_when_finished "git reset --hard; git read-tree HEAD" && + echo "I changed this file" >foo && + git update-index --add foo && + test_invalid_cache_tree -expecting success of 0060.97 'relative path: /foo/a /foo/a/b => ../': test "$(test-tool path-utils relative_path '/foo/a' '/foo/a/b')" = '../' -ok 97 - relative path: /foo/a /foo/a/b => ../ +HEAD is now at ddd63c9 foo +ok 6 - update-index invalidates cache-tree -expecting success of 0060.98 'relative path: / /foo/a/b/ => ../../../': test "$(test-tool path-utils relative_path '/' '/foo/a/b/')" = '../../../' -ok 98 - relative path: / /foo/a/b/ => ../../../ +expecting success of 0090.7 'write-tree establishes cache-tree': + test-tool scrap-cache-tree && + git write-tree && + test_cache_tree -expecting success of 0060.99 'relative path: /foo/a/c /foo/a/b/ => ../c': test "$(test-tool path-utils relative_path '/foo/a/c' '/foo/a/b/')" = '../c' -ok 99 - relative path: /foo/a/c /foo/a/b/ => ../c +64fd3796c57084e7b8cbae358ce37970b8e954f6 +ok 7 - write-tree establishes cache-tree -expecting success of 0060.100 'relative path: /foo/a/c /foo/a/b => ../c': test "$(test-tool path-utils relative_path '/foo/a/c' '/foo/a/b')" = '../c' -ok 100 - relative path: /foo/a/c /foo/a/b => ../c +expecting success of 0090.8 'test-tool scrap-cache-tree works': + git read-tree HEAD && + test-tool scrap-cache-tree && + test_no_cache_tree -expecting success of 0060.101 'relative path: /foo/x/y /foo/a/b/ => ../../x/y': test "$(test-tool path-utils relative_path '/foo/x/y' '/foo/a/b/')" = '../../x/y' -ok 101 - relative path: /foo/x/y /foo/a/b/ => ../../x/y +ok 8 - test-tool scrap-cache-tree works -expecting success of 0060.102 'relative path: /foo/a/b => /foo/a/b': test "$(test-tool path-utils relative_path '/foo/a/b' '')" = '/foo/a/b' -ok 102 - relative path: /foo/a/b => /foo/a/b +expecting success of 0090.9 'second commit has cache-tree': + test_commit bar && + test_cache_tree -expecting success of 0060.103 'relative path: /foo/a/b => /foo/a/b': test "$(test-tool path-utils relative_path '/foo/a/b' '')" = '/foo/a/b' -ok 103 - relative path: /foo/a/b => /foo/a/b +[master eeeeed8] bar + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 bar.t +ok 9 - second commit has cache-tree -expecting success of 0060.104 'relative path: foo/a/b/c/ foo/a/b/ => c/': test "$(test-tool path-utils relative_path 'foo/a/b/c/' 'foo/a/b/')" = 'c/' -ok 104 - relative path: foo/a/b/c/ foo/a/b/ => c/ +expecting success of 0090.10 'commit --interactive gives cache-tree on partial commit': + cat <<-\EOT >foo.c && + int foo() + { + return 42; + } + int bar() + { + return 42; + } + EOT + git add foo.c && + test_invalid_cache_tree && + git commit -m "add a file" && + test_cache_tree && + cat <<-\EOT >foo.c && + int foo() + { + return 43; + } + int bar() + { + return 44; + } + EOT + test_write_lines p 1 "" s n y q | + git commit --interactive -m foo && + test_cache_tree -expecting success of 0060.105 'relative path: foo/a/b/c/ foo/a/b => c/': test "$(test-tool path-utils relative_path 'foo/a/b/c/' 'foo/a/b')" = 'c/' -ok 105 - relative path: foo/a/b/c/ foo/a/b => c/ +[master d1075a6] add a file + Author: A U Thor + 1 file changed, 8 insertions(+) + create mode 100644 foo.c + staged unstaged path + 1: unchanged +2/-2 foo.c -expecting success of 0060.106 'relative path: foo/a/b//c foo/a//b => c': test "$(test-tool path-utils relative_path 'foo/a/b//c' 'foo/a//b')" = 'c' -ok 106 - relative path: foo/a/b//c foo/a//b => c +*** Commands *** + 1: [s]tatus 2: [u]pdate 3: [r]evert 4: [a]dd untracked + 5: [p]atch 6: [d]iff 7: [q]uit 8: [h]elp +What now> staged unstaged path + 1: unchanged +2/-2 [f]oo.c +Patch update>> staged unstaged path +* 1: unchanged +2/-2 [f]oo.c +Patch update>> diff --git a/foo.c b/foo.c +index 75522e2..3f7f049 100644 +--- a/foo.c ++++ b/foo.c +@@ -1,8 +1,8 @@ + int foo() + { +-return 42; ++return 43; + } + int bar() + { +-return 42; ++return 44; + } +(1/1) Stage this hunk [y,n,q,a,d,s,e,?]? Split into 2 hunks. +@@ -1,6 +1,6 @@ + int foo() + { +-return 42; ++return 43; + } + int bar() + { +(1/2) Stage this hunk [y,n,q,a,d,j,J,g,/,e,?]? @@ -4,5 +4,5 @@ + } + int bar() + { +-return 42; ++return 44; + } +(2/2) Stage this hunk [y,n,q,a,d,K,g,/,e,?]? +*** Commands *** + 1: [s]tatus 2: [u]pdate 3: [r]evert 4: [a]dd untracked + 5: [p]atch 6: [d]iff 7: [q]uit 8: [h]elp +What now> Bye. +[master 65d7dde] foo + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +ok 10 - commit --interactive gives cache-tree on partial commit -expecting success of 0060.107 'relative path: foo/a/b/ foo/a/b/ => ./': test "$(test-tool path-utils relative_path 'foo/a/b/' 'foo/a/b/')" = './' -ok 107 - relative path: foo/a/b/ foo/a/b/ => ./ +expecting success of 0090.11 'commit -p with shrinking cache-tree': + mkdir -p deep/very-long-subdir && + echo content >deep/very-long-subdir/file && + git add deep && + git commit -m add && + git rm -r deep && -expecting success of 0060.108 'relative path: foo/a/b/ foo/a/b => ./': test "$(test-tool path-utils relative_path 'foo/a/b/' 'foo/a/b')" = './' -ok 108 - relative path: foo/a/b/ foo/a/b => ./ + before=$(wc -c <.git/index) && + git commit -m delete -p && + after=$(wc -c <.git/index) && -expecting success of 0060.109 'relative path: foo/a foo/a/b => ../': test "$(test-tool path-utils relative_path 'foo/a' 'foo/a/b')" = '../' -ok 109 - relative path: foo/a foo/a/b => ../ + # double check that the index shrank + test $before -gt $after && -expecting success of 0060.110 'relative path: foo/x/y foo/a/b => ../../x/y': test "$(test-tool path-utils relative_path 'foo/x/y' 'foo/a/b')" = '../../x/y' -ok 110 - relative path: foo/x/y foo/a/b => ../../x/y + # and that our index was not corrupted + git fsck -expecting success of 0060.111 'relative path: foo/a/c foo/a/b => ../c': test "$(test-tool path-utils relative_path 'foo/a/c' 'foo/a/b')" = '../c' -ok 111 - relative path: foo/a/c foo/a/b => ../c +[master 10c383a] add + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 deep/very-long-subdir/file +rm 'deep/very-long-subdir/file' +diff --git a/foo.c b/foo.c +index f0f3133..3f7f049 100644 +--- a/foo.c ++++ b/foo.c +@@ -1,6 +1,6 @@ + int foo() + { +-return 42; ++return 43; + } + int bar() + { +(1/1) Stage this hunk [y,n,q,a,d,e,?]? +[master 73c66c3] delete + Author: A U Thor + 1 file changed, 1 deletion(-) + delete mode 100644 deep/very-long-subdir/file +dangling blob d238b40d1657b1cc3ebd9a3c55ef04f303c694ae +ok 11 - commit -p with shrinking cache-tree -expecting success of 0060.112 'relative path: foo/a/b /foo/x/y => foo/a/b': test "$(test-tool path-utils relative_path 'foo/a/b' '/foo/x/y')" = 'foo/a/b' -ok 112 - relative path: foo/a/b /foo/x/y => foo/a/b +expecting success of 0090.12 'commit in child dir has cache-tree': + mkdir dir && + >dir/child.t && + git add dir/child.t && + git commit -m dir/child.t && + test_cache_tree -expecting success of 0060.113 'relative path: /foo/a/b foo/x/y => /foo/a/b': test "$(test-tool path-utils relative_path '/foo/a/b' 'foo/x/y')" = '/foo/a/b' -ok 113 - relative path: /foo/a/b foo/x/y => /foo/a/b +[master d3413ee] dir/child.t + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 dir/child.t +ok 12 - commit in child dir has cache-tree -ok 114 # skip relative path: d:/a/b D:/a/c => ../b (missing MINGW) +expecting success of 0090.13 'reset --hard gives cache-tree': + test-tool scrap-cache-tree && + git reset --hard && + test_cache_tree -ok 115 # skip relative path: C:/a/b D:/a/c => C:/a/b (missing MINGW) +HEAD is now at d3413ee dir/child.t +ok 13 - reset --hard gives cache-tree -expecting success of 0060.116 'relative path: foo/a/b => foo/a/b': test "$(test-tool path-utils relative_path 'foo/a/b' '')" = 'foo/a/b' -ok 116 - relative path: foo/a/b => foo/a/b +expecting success of 0090.14 'reset --hard without index gives cache-tree': + rm -f .git/index && + git reset --hard && + test_cache_tree -expecting success of 0060.117 'relative path: foo/a/b => foo/a/b': test "$(test-tool path-utils relative_path 'foo/a/b' '')" = 'foo/a/b' -ok 117 - relative path: foo/a/b => foo/a/b +HEAD is now at d3413ee dir/child.t +ok 14 - reset --hard without index gives cache-tree -expecting success of 0060.118 'relative path: /foo/a/b => ./': test "$(test-tool path-utils relative_path '' '/foo/a/b')" = './' -ok 118 - relative path: /foo/a/b => ./ +expecting success of 0090.15 'checkout gives cache-tree': + git tag current && + git checkout HEAD^ && + test_cache_tree -expecting success of 0060.119 'relative path: => ./': test "$(test-tool path-utils relative_path '' '')" = './' -ok 119 - relative path: => ./ +Note: switching to 'HEAD^'. -expecting success of 0060.120 'relative path: => ./': test "$(test-tool path-utils relative_path '' '')" = './' -ok 120 - relative path: => ./ +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. -expecting success of 0060.121 'relative path: => ./': test "$(test-tool path-utils relative_path '' '')" = './' -ok 121 - relative path: => ./ +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: -expecting success of 0060.122 'relative path: => ./': test "$(test-tool path-utils relative_path '' '')" = './' -ok 122 - relative path: => ./ + git switch -c -expecting success of 0060.123 'relative path: /foo/a/b => ./': test "$(test-tool path-utils relative_path '' '/foo/a/b')" = './' -ok 123 - relative path: /foo/a/b => ./ +Or undo this operation with: -expecting success of 0060.124 'git-path A=B info/grafts => .git/info/grafts': - A=B git rev-parse --git-path info/grafts >actual && - echo .git/info/grafts >expect && - test_cmp expect actual - -ok 124 - git-path A=B info/grafts => .git/info/grafts + git switch - -expecting success of 0060.125 'git-path GIT_GRAFT_FILE=foo info/grafts => foo': - GIT_GRAFT_FILE=foo git rev-parse --git-path info/grafts >actual && - echo foo >expect && - test_cmp expect actual - -ok 125 - git-path GIT_GRAFT_FILE=foo info/grafts => foo +Turn off this advice by setting config variable advice.detachedHead to false -expecting success of 0060.126 'git-path GIT_GRAFT_FILE=foo info/////grafts => foo': - GIT_GRAFT_FILE=foo git rev-parse --git-path info/////grafts >actual && - echo foo >expect && - test_cmp expect actual - -ok 126 - git-path GIT_GRAFT_FILE=foo info/////grafts => foo +HEAD is now at 73c66c3 delete +ok 15 - checkout gives cache-tree -expecting success of 0060.127 'git-path GIT_INDEX_FILE=foo index => foo': +expecting success of 0090.16 'checkout -b gives cache-tree': + git checkout current && + git checkout -b prev HEAD^ && + test_cache_tree + +Previous HEAD position was 73c66c3 delete +HEAD is now at d3413ee dir/child.t +Previous HEAD position was d3413ee dir/child.t +Switched to a new branch 'prev' +ok 16 - checkout -b gives cache-tree + +expecting success of 0090.17 'checkout -B gives cache-tree': + git checkout current && + git checkout -B prev HEAD^ && + test_cache_tree + +Note: switching to 'current'. + +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. + +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: + + git switch -c + +Or undo this operation with: + + git switch - + +Turn off this advice by setting config variable advice.detachedHead to false + +HEAD is now at d3413ee dir/child.t +Previous HEAD position was d3413ee dir/child.t +Switched to and reset branch 'prev' +ok 17 - checkout -B gives cache-tree + +expecting success of 0090.18 'merge --ff-only maintains cache-tree': + git checkout current && + git checkout -b changes && + test_commit llamas && + test_commit pachyderm && + test_cache_tree && + git checkout current && + test_cache_tree && + git merge --ff-only changes && + test_cache_tree + +Note: switching to 'current'. + +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. + +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: + + git switch -c + +Or undo this operation with: + + git switch - + +Turn off this advice by setting config variable advice.detachedHead to false + +HEAD is now at d3413ee dir/child.t +Switched to a new branch 'changes' +[changes 229c856] llamas + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 llamas.t +[changes f10d9f3] pachyderm + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 pachyderm.t +Note: switching to 'current'. + +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. + +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: + + git switch -c + +Or undo this operation with: + + git switch - + +Turn off this advice by setting config variable advice.detachedHead to false + +HEAD is now at d3413ee dir/child.t +Updating d3413ee..f10d9f3 +Fast-forward + llamas.t | 1 + + pachyderm.t | 1 + + 2 files changed, 2 insertions(+) + create mode 100644 llamas.t + create mode 100644 pachyderm.t +ok 18 - merge --ff-only maintains cache-tree + +expecting success of 0090.19 'merge maintains cache-tree': + git checkout current && + git checkout -b changes2 && + test_commit alpacas && + test_cache_tree && + git checkout current && + test_commit struthio && + test_cache_tree && + git merge changes2 && + test_cache_tree + +Previous HEAD position was f10d9f3 pachyderm +HEAD is now at d3413ee dir/child.t +Switched to a new branch 'changes2' +[changes2 4b1575a] alpacas + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 alpacas.t +Note: switching to 'current'. + +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. + +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: + + git switch -c + +Or undo this operation with: + + git switch - + +Turn off this advice by setting config variable advice.detachedHead to false + +HEAD is now at d3413ee dir/child.t +[detached HEAD 5a63c6d] struthio + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 struthio.t +Merging: +5a63c6d struthio +virtual changes2 +found 1 common ancestor: +d3413ee dir/child.t +Merge made by the 'recursive' strategy. + alpacas.t | 1 + + 1 file changed, 1 insertion(+) + create mode 100644 alpacas.t +ok 19 - merge maintains cache-tree + +expecting success of 0090.20 'partial commit gives cache-tree': + git checkout -b partial no-children && + test_commit one && + test_commit two && + echo "some change" >one.t && + git add one.t && + echo "some other change" >two.t && + git commit two.t -m partial && + test_cache_tree + +Warning: you are leaving 1 commit behind, not connected to +any of your branches: + + e104fa1 Merge branch 'changes2' into HEAD + +If you want to keep it by creating a new branch, this may be a good time +to do so with: + + git branch e104fa1 + +Switched to a new branch 'partial' +[partial 6771940] one + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 one.t +[partial cd7fad9] two + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 two.t +[partial f24c7c2] partial + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +ok 20 - partial commit gives cache-tree + +expecting success of 0090.21 'no phantom error when switching trees': + mkdir newdir && + >newdir/one && + git add newdir/one && + git checkout 2>errors && + test_must_be_empty errors + +A newdir/one +M one.t +ok 21 - no phantom error when switching trees + +expecting success of 0090.22 'switching trees does not invalidate shared index': + ( + sane_unset GIT_TEST_SPLIT_INDEX && + git update-index --split-index && + >split && + git add split && + test-tool dump-split-index .git/index | grep -v ^own >before && + git commit -m "as-is" && + test-tool dump-split-index .git/index | grep -v ^own >after && + test_cmp before after + ) + +[partial dc7a831] as-is + Author: A U Thor + 3 files changed, 1 insertion(+), 1 deletion(-) + create mode 100644 newdir/one + create mode 100644 split +ok 22 - switching trees does not invalidate shared index + +# passed all 22 test(s) +1..22 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t0060-path-utils.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0060-path-utils/.git/ +expecting success of 0060.1 'basename': test-tool path-utils basename +ok 1 - basename + +expecting success of 0060.2 'dirname': test-tool path-utils dirname +ok 2 - dirname + +expecting success of 0060.3 'normalize path: => ': test "$(test-tool path-utils normalize_path_copy '')" = '' +ok 3 - normalize path: => + +expecting success of 0060.4 'normalize path: . => ': test "$(test-tool path-utils normalize_path_copy '.')" = '' +ok 4 - normalize path: . => + +expecting success of 0060.5 'normalize path: ./ => ': test "$(test-tool path-utils normalize_path_copy './')" = '' +ok 5 - normalize path: ./ => + +expecting success of 0060.6 'normalize path: ./. => ': test "$(test-tool path-utils normalize_path_copy './.')" = '' +ok 6 - normalize path: ./. => + +expecting success of 0060.7 'normalize path: ./.. => ++failed++': test "$(test-tool path-utils normalize_path_copy './..')" = '++failed++' +ok 7 - normalize path: ./.. => ++failed++ + +expecting success of 0060.8 'normalize path: ../. => ++failed++': test "$(test-tool path-utils normalize_path_copy '../.')" = '++failed++' +ok 8 - normalize path: ../. => ++failed++ + +expecting success of 0060.9 'normalize path: ./../.// => ++failed++': test "$(test-tool path-utils normalize_path_copy './.././/')" = '++failed++' +ok 9 - normalize path: ./../.// => ++failed++ + +expecting success of 0060.10 'normalize path: dir/.. => ': test "$(test-tool path-utils normalize_path_copy 'dir/..')" = '' +ok 10 - normalize path: dir/.. => + +expecting success of 0060.11 'normalize path: dir/sub/../.. => ': test "$(test-tool path-utils normalize_path_copy 'dir/sub/../..')" = '' +ok 11 - normalize path: dir/sub/../.. => + +expecting success of 0060.12 'normalize path: dir/sub/../../.. => ++failed++': test "$(test-tool path-utils normalize_path_copy 'dir/sub/../../..')" = '++failed++' +ok 12 - normalize path: dir/sub/../../.. => ++failed++ + +expecting success of 0060.13 'normalize path: dir => dir': test "$(test-tool path-utils normalize_path_copy 'dir')" = 'dir' +ok 13 - normalize path: dir => dir + +expecting success of 0060.14 'normalize path: dir// => dir/': test "$(test-tool path-utils normalize_path_copy 'dir//')" = 'dir/' +ok 14 - normalize path: dir// => dir/ + +expecting success of 0060.15 'normalize path: ./dir => dir': test "$(test-tool path-utils normalize_path_copy './dir')" = 'dir' +ok 15 - normalize path: ./dir => dir + +expecting success of 0060.16 'normalize path: dir/. => dir/': test "$(test-tool path-utils normalize_path_copy 'dir/.')" = 'dir/' +ok 16 - normalize path: dir/. => dir/ + +expecting success of 0060.17 'normalize path: dir///./ => dir/': test "$(test-tool path-utils normalize_path_copy 'dir///./')" = 'dir/' +ok 17 - normalize path: dir///./ => dir/ + +expecting success of 0060.18 'normalize path: dir//sub/.. => dir/': test "$(test-tool path-utils normalize_path_copy 'dir//sub/..')" = 'dir/' +ok 18 - normalize path: dir//sub/.. => dir/ + +expecting success of 0060.19 'normalize path: dir/sub/../ => dir/': test "$(test-tool path-utils normalize_path_copy 'dir/sub/../')" = 'dir/' +ok 19 - normalize path: dir/sub/../ => dir/ + +expecting success of 0060.20 'normalize path: dir/sub/../. => dir/': test "$(test-tool path-utils normalize_path_copy 'dir/sub/../.')" = 'dir/' +ok 20 - normalize path: dir/sub/../. => dir/ + +expecting success of 0060.21 'normalize path: dir/s1/../s2/ => dir/s2/': test "$(test-tool path-utils normalize_path_copy 'dir/s1/../s2/')" = 'dir/s2/' +ok 21 - normalize path: dir/s1/../s2/ => dir/s2/ + +expecting success of 0060.22 'normalize path: d1/s1///s2/..//../s3/ => d1/s3/': test "$(test-tool path-utils normalize_path_copy 'd1/s1///s2/..//../s3/')" = 'd1/s3/' +ok 22 - normalize path: d1/s1///s2/..//../s3/ => d1/s3/ + +expecting success of 0060.23 'normalize path: d1/s1//../s2/../../d2 => d2': test "$(test-tool path-utils normalize_path_copy 'd1/s1//../s2/../../d2')" = 'd2' +ok 23 - normalize path: d1/s1//../s2/../../d2 => d2 + +expecting success of 0060.24 'normalize path: d1/.../d2 => d1/.../d2': test "$(test-tool path-utils normalize_path_copy 'd1/.../d2')" = 'd1/.../d2' +ok 24 - normalize path: d1/.../d2 => d1/.../d2 + +expecting success of 0060.25 'normalize path: d1/..././../d2 => d1/d2': test "$(test-tool path-utils normalize_path_copy 'd1/..././../d2')" = 'd1/d2' +ok 25 - normalize path: d1/..././../d2 => d1/d2 + +expecting success of 0060.26 'normalize path: / => /': test "$(test-tool path-utils normalize_path_copy '/')" = '/' +ok 26 - normalize path: / => / + +expecting success of 0060.27 'normalize path: // => /': test "$(test-tool path-utils normalize_path_copy '//')" = '/' +ok 27 - normalize path: // => / + +expecting success of 0060.28 'normalize path: /// => /': test "$(test-tool path-utils normalize_path_copy '///')" = '/' +ok 28 - normalize path: /// => / + +expecting success of 0060.29 'normalize path: /. => /': test "$(test-tool path-utils normalize_path_copy '/.')" = '/' +ok 29 - normalize path: /. => / + +expecting success of 0060.30 'normalize path: /./ => /': test "$(test-tool path-utils normalize_path_copy '/./')" = '/' +ok 30 - normalize path: /./ => / + +expecting success of 0060.31 'normalize path: /./.. => ++failed++': test "$(test-tool path-utils normalize_path_copy '/./..')" = '++failed++' +ok 31 - normalize path: /./.. => ++failed++ + +expecting success of 0060.32 'normalize path: /../. => ++failed++': test "$(test-tool path-utils normalize_path_copy '/../.')" = '++failed++' +ok 32 - normalize path: /../. => ++failed++ + +expecting success of 0060.33 'normalize path: /./../.// => ++failed++': test "$(test-tool path-utils normalize_path_copy '/./.././/')" = '++failed++' +ok 33 - normalize path: /./../.// => ++failed++ + +expecting success of 0060.34 'normalize path: /dir/.. => /': test "$(test-tool path-utils normalize_path_copy '/dir/..')" = '/' +ok 34 - normalize path: /dir/.. => / + +expecting success of 0060.35 'normalize path: /dir/sub/../.. => /': test "$(test-tool path-utils normalize_path_copy '/dir/sub/../..')" = '/' +ok 35 - normalize path: /dir/sub/../.. => / + +expecting success of 0060.36 'normalize path: /dir/sub/../../.. => ++failed++': test "$(test-tool path-utils normalize_path_copy '/dir/sub/../../..')" = '++failed++' +ok 36 - normalize path: /dir/sub/../../.. => ++failed++ + +expecting success of 0060.37 'normalize path: /dir => /dir': test "$(test-tool path-utils normalize_path_copy '/dir')" = '/dir' +ok 37 - normalize path: /dir => /dir + +expecting success of 0060.38 'normalize path: /dir// => /dir/': test "$(test-tool path-utils normalize_path_copy '/dir//')" = '/dir/' +ok 38 - normalize path: /dir// => /dir/ + +expecting success of 0060.39 'normalize path: /./dir => /dir': test "$(test-tool path-utils normalize_path_copy '/./dir')" = '/dir' +ok 39 - normalize path: /./dir => /dir + +expecting success of 0060.40 'normalize path: /dir/. => /dir/': test "$(test-tool path-utils normalize_path_copy '/dir/.')" = '/dir/' +ok 40 - normalize path: /dir/. => /dir/ + +expecting success of 0060.41 'normalize path: /dir///./ => /dir/': test "$(test-tool path-utils normalize_path_copy '/dir///./')" = '/dir/' +ok 41 - normalize path: /dir///./ => /dir/ + +expecting success of 0060.42 'normalize path: /dir//sub/.. => /dir/': test "$(test-tool path-utils normalize_path_copy '/dir//sub/..')" = '/dir/' +ok 42 - normalize path: /dir//sub/.. => /dir/ + +expecting success of 0060.43 'normalize path: /dir/sub/../ => /dir/': test "$(test-tool path-utils normalize_path_copy '/dir/sub/../')" = '/dir/' +ok 43 - normalize path: /dir/sub/../ => /dir/ + +expecting success of 0060.44 'normalize path: //dir/sub/../. => /dir/': test "$(test-tool path-utils normalize_path_copy '//dir/sub/../.')" = '/dir/' +ok 44 - normalize path: //dir/sub/../. => /dir/ + +expecting success of 0060.45 'normalize path: /dir/s1/../s2/ => /dir/s2/': test "$(test-tool path-utils normalize_path_copy '/dir/s1/../s2/')" = '/dir/s2/' +ok 45 - normalize path: /dir/s1/../s2/ => /dir/s2/ + +expecting success of 0060.46 'normalize path: /d1/s1///s2/..//../s3/ => /d1/s3/': test "$(test-tool path-utils normalize_path_copy '/d1/s1///s2/..//../s3/')" = '/d1/s3/' +ok 46 - normalize path: /d1/s1///s2/..//../s3/ => /d1/s3/ + +expecting success of 0060.47 'normalize path: /d1/s1//../s2/../../d2 => /d2': test "$(test-tool path-utils normalize_path_copy '/d1/s1//../s2/../../d2')" = '/d2' +ok 47 - normalize path: /d1/s1//../s2/../../d2 => /d2 + +expecting success of 0060.48 'normalize path: /d1/.../d2 => /d1/.../d2': test "$(test-tool path-utils normalize_path_copy '/d1/.../d2')" = '/d1/.../d2' +ok 48 - normalize path: /d1/.../d2 => /d1/.../d2 + +expecting success of 0060.49 'normalize path: /d1/..././../d2 => /d1/d2': test "$(test-tool path-utils normalize_path_copy '/d1/..././../d2')" = '/d1/d2' +ok 49 - normalize path: /d1/..././../d2 => /d1/d2 + +expecting success of 0060.50 'longest ancestor: / / => -1': actual=$(test-tool path-utils longest_ancestor_length '/' '/') && + test "$actual" = '-1' +ok 50 - longest ancestor: / / => -1 + +expecting success of 0060.51 'longest ancestor: /foo / => 0': actual=$(test-tool path-utils longest_ancestor_length '/foo' '/') && + test "$actual" = '0' +ok 51 - longest ancestor: /foo / => 0 + +expecting success of 0060.52 'longest ancestor: /foo /fo => -1': actual=$(test-tool path-utils longest_ancestor_length '/foo' '/fo') && + test "$actual" = '-1' +ok 52 - longest ancestor: /foo /fo => -1 + +expecting success of 0060.53 'longest ancestor: /foo /foo => -1': actual=$(test-tool path-utils longest_ancestor_length '/foo' '/foo') && + test "$actual" = '-1' +ok 53 - longest ancestor: /foo /foo => -1 + +expecting success of 0060.54 'longest ancestor: /foo /bar => -1': actual=$(test-tool path-utils longest_ancestor_length '/foo' '/bar') && + test "$actual" = '-1' +ok 54 - longest ancestor: /foo /bar => -1 + +expecting success of 0060.55 'longest ancestor: /foo /foo/bar => -1': actual=$(test-tool path-utils longest_ancestor_length '/foo' '/foo/bar') && + test "$actual" = '-1' +ok 55 - longest ancestor: /foo /foo/bar => -1 + +expecting success of 0060.56 'longest ancestor: /foo /foo:/bar => -1': actual=$(test-tool path-utils longest_ancestor_length '/foo' '/foo:/bar') && + test "$actual" = '-1' +ok 56 - longest ancestor: /foo /foo:/bar => -1 + +expecting success of 0060.57 'longest ancestor: /foo /:/foo:/bar => 0': actual=$(test-tool path-utils longest_ancestor_length '/foo' '/:/foo:/bar') && + test "$actual" = '0' +ok 57 - longest ancestor: /foo /:/foo:/bar => 0 + +expecting success of 0060.58 'longest ancestor: /foo /foo:/:/bar => 0': actual=$(test-tool path-utils longest_ancestor_length '/foo' '/foo:/:/bar') && + test "$actual" = '0' +ok 58 - longest ancestor: /foo /foo:/:/bar => 0 + +expecting success of 0060.59 'longest ancestor: /foo /:/bar:/foo => 0': actual=$(test-tool path-utils longest_ancestor_length '/foo' '/:/bar:/foo') && + test "$actual" = '0' +ok 59 - longest ancestor: /foo /:/bar:/foo => 0 + +expecting success of 0060.60 'longest ancestor: /foo/bar / => 0': actual=$(test-tool path-utils longest_ancestor_length '/foo/bar' '/') && + test "$actual" = '0' +ok 60 - longest ancestor: /foo/bar / => 0 + +expecting success of 0060.61 'longest ancestor: /foo/bar /fo => -1': actual=$(test-tool path-utils longest_ancestor_length '/foo/bar' '/fo') && + test "$actual" = '-1' +ok 61 - longest ancestor: /foo/bar /fo => -1 + +expecting success of 0060.62 'longest ancestor: /foo/bar /foo => 4': actual=$(test-tool path-utils longest_ancestor_length '/foo/bar' '/foo') && + test "$actual" = '4' +ok 62 - longest ancestor: /foo/bar /foo => 4 + +expecting success of 0060.63 'longest ancestor: /foo/bar /foo/ba => -1': actual=$(test-tool path-utils longest_ancestor_length '/foo/bar' '/foo/ba') && + test "$actual" = '-1' +ok 63 - longest ancestor: /foo/bar /foo/ba => -1 + +expecting success of 0060.64 'longest ancestor: /foo/bar /:/fo => 0': actual=$(test-tool path-utils longest_ancestor_length '/foo/bar' '/:/fo') && + test "$actual" = '0' +ok 64 - longest ancestor: /foo/bar /:/fo => 0 + +expecting success of 0060.65 'longest ancestor: /foo/bar /foo:/foo/ba => 4': actual=$(test-tool path-utils longest_ancestor_length '/foo/bar' '/foo:/foo/ba') && + test "$actual" = '4' +ok 65 - longest ancestor: /foo/bar /foo:/foo/ba => 4 + +expecting success of 0060.66 'longest ancestor: /foo/bar /bar => -1': actual=$(test-tool path-utils longest_ancestor_length '/foo/bar' '/bar') && + test "$actual" = '-1' +ok 66 - longest ancestor: /foo/bar /bar => -1 + +expecting success of 0060.67 'longest ancestor: /foo/bar /fo => -1': actual=$(test-tool path-utils longest_ancestor_length '/foo/bar' '/fo') && + test "$actual" = '-1' +ok 67 - longest ancestor: /foo/bar /fo => -1 + +expecting success of 0060.68 'longest ancestor: /foo/bar /foo:/bar => 4': actual=$(test-tool path-utils longest_ancestor_length '/foo/bar' '/foo:/bar') && + test "$actual" = '4' +ok 68 - longest ancestor: /foo/bar /foo:/bar => 4 + +expecting success of 0060.69 'longest ancestor: /foo/bar /:/foo:/bar => 4': actual=$(test-tool path-utils longest_ancestor_length '/foo/bar' '/:/foo:/bar') && + test "$actual" = '4' +ok 69 - longest ancestor: /foo/bar /:/foo:/bar => 4 + +expecting success of 0060.70 'longest ancestor: /foo/bar /foo:/:/bar => 4': actual=$(test-tool path-utils longest_ancestor_length '/foo/bar' '/foo:/:/bar') && + test "$actual" = '4' +ok 70 - longest ancestor: /foo/bar /foo:/:/bar => 4 + +expecting success of 0060.71 'longest ancestor: /foo/bar /:/bar:/fo => 0': actual=$(test-tool path-utils longest_ancestor_length '/foo/bar' '/:/bar:/fo') && + test "$actual" = '0' +ok 71 - longest ancestor: /foo/bar /:/bar:/fo => 0 + +expecting success of 0060.72 'longest ancestor: /foo/bar /:/bar => 0': actual=$(test-tool path-utils longest_ancestor_length '/foo/bar' '/:/bar') && + test "$actual" = '0' +ok 72 - longest ancestor: /foo/bar /:/bar => 0 + +expecting success of 0060.73 'longest ancestor: /foo/bar /foo => 4': actual=$(test-tool path-utils longest_ancestor_length '/foo/bar' '/foo') && + test "$actual" = '4' +ok 73 - longest ancestor: /foo/bar /foo => 4 + +expecting success of 0060.74 'longest ancestor: /foo/bar /foo:/bar => 4': actual=$(test-tool path-utils longest_ancestor_length '/foo/bar' '/foo:/bar') && + test "$actual" = '4' +ok 74 - longest ancestor: /foo/bar /foo:/bar => 4 + +expecting success of 0060.75 'longest ancestor: /foo/bar /bar => -1': actual=$(test-tool path-utils longest_ancestor_length '/foo/bar' '/bar') && + test "$actual" = '-1' +ok 75 - longest ancestor: /foo/bar /bar => -1 + +ok 76 # skip longest ancestor: C:/Users/me C:/ => 2 (missing MINGW) + +ok 77 # skip longest ancestor: D:/Users/me C:/ => -1 (missing MINGW) + +ok 78 # skip longest ancestor: //server/share/my-directory //server/share/ => 14 (missing MINGW) + +expecting success of 0060.79 'strip_path_suffix': + test c:/msysgit = $(test-tool path-utils strip_path_suffix \ + c:/msysgit/libexec//git-core libexec/git-core) + +ok 79 - strip_path_suffix + +expecting success of 0060.80 'absolute path rejects the empty string': + test_must_fail test-tool path-utils absolute_path "" + +fatal: The empty string is not a valid path +ok 80 - absolute path rejects the empty string + +ok 81 # skip :\\abc is an absolute path (missing MINGW) + +expecting success of 0060.82 'real path rejects the empty string': + test_must_fail test-tool path-utils real_path "" + +fatal: The empty string is not a valid path +ok 82 - real path rejects the empty string + +expecting success of 0060.83 'real path works on absolute paths 1': + nopath="hopefully-absent-path" && + test "/" = "$(test-tool path-utils real_path "/")" && + test "/$nopath" = "$(test-tool path-utils real_path "/$nopath")" + +ok 83 - real path works on absolute paths 1 + +expecting success of 0060.84 'real path works on absolute paths 2': + nopath="hopefully-absent-path" && + # Find an existing top-level directory for the remaining tests: + d=$(pwd -P | sed -e "s|^\([^/]*/[^/]*\)/.*|\1|") && + test "$d" = "$(test-tool path-utils real_path "$d")" && + test "$d/$nopath" = "$(test-tool path-utils real_path "$d/$nopath")" + +ok 84 - real path works on absolute paths 2 + +expecting success of 0060.85 'real path removes extra leading slashes': + nopath="hopefully-absent-path" && + test "/" = "$(test-tool path-utils real_path "///")" && + test "/$nopath" = "$(test-tool path-utils real_path "///$nopath")" && + # Find an existing top-level directory for the remaining tests: + d=$(pwd -P | sed -e "s|^\([^/]*/[^/]*\)/.*|\1|") && + test "$d" = "$(test-tool path-utils real_path "//$d")" && + test "$d/$nopath" = "$(test-tool path-utils real_path "//$d/$nopath")" + +ok 85 - real path removes extra leading slashes + +expecting success of 0060.86 'real path removes other extra slashes': + nopath="hopefully-absent-path" && + # Find an existing top-level directory for the remaining tests: + d=$(pwd -P | sed -e "s|^\([^/]*/[^/]*\)/.*|\1|") && + test "$d" = "$(test-tool path-utils real_path "$d///")" && + test "$d/$nopath" = "$(test-tool path-utils real_path "$d///$nopath")" + +ok 86 - real path removes other extra slashes + +checking prerequisite: SYMLINKS + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && + # test whether the filesystem supports symbolic links + ln -s x y && test -h y + +) +prerequisite SYMLINKS ok +expecting success of 0060.87 'real path works on symlinks': + mkdir first && + ln -s ../.git first/.git && + mkdir second && + ln -s ../first second/other && + mkdir third && + dir="$(cd .git; pwd -P)" && + dir2=third/../second/other/.git && + test "$dir" = "$(test-tool path-utils real_path $dir2)" && + file="$dir"/index && + test "$file" = "$(test-tool path-utils real_path $dir2/index)" && + basename=blub && + test "$dir/$basename" = "$(cd .git && test-tool path-utils real_path "$basename")" && + ln -s ../first/file .git/syml && + sym="$(cd first; pwd -P)"/file && + test "$sym" = "$(test-tool path-utils real_path "$dir2/syml")" + +ok 87 - real path works on symlinks + +expecting success of 0060.88 'prefix_path works with absolute paths to work tree symlinks': + ln -s target symlink && + test "$(test-tool path-utils prefix_path prefix "$(pwd)/symlink")" = "symlink" + +ok 88 - prefix_path works with absolute paths to work tree symlinks + +expecting success of 0060.89 'prefix_path works with only absolute path to work tree': + echo "" >expected && + test-tool path-utils prefix_path prefix "$(pwd)" >actual && + test_cmp expected actual + +ok 89 - prefix_path works with only absolute path to work tree + +expecting success of 0060.90 'prefix_path rejects absolute path to dir with same beginning as work tree': + test_must_fail test-tool path-utils prefix_path prefix "$(pwd)a" + +fatal: '/build/git-2.30.2/t/trash directory.t0060-path-utilsa' is outside repository at '/build/git-2.30.2/t/trash directory.t0060-path-utils' +ok 90 - prefix_path rejects absolute path to dir with same beginning as work tree + +expecting success of 0060.91 'prefix_path works with absolute path to a symlink to work tree having same beginning as work tree': + git init repo && + ln -s repo repolink && + test "a" = "$(cd repo && test-tool path-utils prefix_path prefix "$(pwd)/../repolink/a")" + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0060-path-utils/repo/.git/ +ok 91 - prefix_path works with absolute path to a symlink to work tree having same beginning as work tree + +expecting success of 0060.92 'relative path: /foo/a/b/c/ /foo/a/b/ => c/': test "$(test-tool path-utils relative_path '/foo/a/b/c/' '/foo/a/b/')" = 'c/' +ok 92 - relative path: /foo/a/b/c/ /foo/a/b/ => c/ + +expecting success of 0060.93 'relative path: /foo/a/b/c/ /foo/a/b => c/': test "$(test-tool path-utils relative_path '/foo/a/b/c/' '/foo/a/b')" = 'c/' +ok 93 - relative path: /foo/a/b/c/ /foo/a/b => c/ + +expecting success of 0060.94 'relative path: /foo/a//b//c/ ///foo/a/b// => c/': test "$(test-tool path-utils relative_path '/foo/a//b//c/' '///foo/a/b//')" = 'c/' +ok 94 - relative path: /foo/a//b//c/ ///foo/a/b// => c/ + +expecting success of 0060.95 'relative path: /foo/a/b /foo/a/b => ./': test "$(test-tool path-utils relative_path '/foo/a/b' '/foo/a/b')" = './' +ok 95 - relative path: /foo/a/b /foo/a/b => ./ + +expecting success of 0060.96 'relative path: /foo/a/b/ /foo/a/b => ./': test "$(test-tool path-utils relative_path '/foo/a/b/' '/foo/a/b')" = './' +ok 96 - relative path: /foo/a/b/ /foo/a/b => ./ + +expecting success of 0060.97 'relative path: /foo/a /foo/a/b => ../': test "$(test-tool path-utils relative_path '/foo/a' '/foo/a/b')" = '../' +ok 97 - relative path: /foo/a /foo/a/b => ../ + +expecting success of 0060.98 'relative path: / /foo/a/b/ => ../../../': test "$(test-tool path-utils relative_path '/' '/foo/a/b/')" = '../../../' +ok 98 - relative path: / /foo/a/b/ => ../../../ + +expecting success of 0060.99 'relative path: /foo/a/c /foo/a/b/ => ../c': test "$(test-tool path-utils relative_path '/foo/a/c' '/foo/a/b/')" = '../c' +ok 99 - relative path: /foo/a/c /foo/a/b/ => ../c + +expecting success of 0060.100 'relative path: /foo/a/c /foo/a/b => ../c': test "$(test-tool path-utils relative_path '/foo/a/c' '/foo/a/b')" = '../c' +ok 100 - relative path: /foo/a/c /foo/a/b => ../c + +expecting success of 0060.101 'relative path: /foo/x/y /foo/a/b/ => ../../x/y': test "$(test-tool path-utils relative_path '/foo/x/y' '/foo/a/b/')" = '../../x/y' +ok 101 - relative path: /foo/x/y /foo/a/b/ => ../../x/y + +expecting success of 0060.102 'relative path: /foo/a/b => /foo/a/b': test "$(test-tool path-utils relative_path '/foo/a/b' '')" = '/foo/a/b' +ok 102 - relative path: /foo/a/b => /foo/a/b + +expecting success of 0060.103 'relative path: /foo/a/b => /foo/a/b': test "$(test-tool path-utils relative_path '/foo/a/b' '')" = '/foo/a/b' +ok 103 - relative path: /foo/a/b => /foo/a/b + +expecting success of 0060.104 'relative path: foo/a/b/c/ foo/a/b/ => c/': test "$(test-tool path-utils relative_path 'foo/a/b/c/' 'foo/a/b/')" = 'c/' +ok 104 - relative path: foo/a/b/c/ foo/a/b/ => c/ + +expecting success of 0060.105 'relative path: foo/a/b/c/ foo/a/b => c/': test "$(test-tool path-utils relative_path 'foo/a/b/c/' 'foo/a/b')" = 'c/' +ok 105 - relative path: foo/a/b/c/ foo/a/b => c/ + +expecting success of 0060.106 'relative path: foo/a/b//c foo/a//b => c': test "$(test-tool path-utils relative_path 'foo/a/b//c' 'foo/a//b')" = 'c' +ok 106 - relative path: foo/a/b//c foo/a//b => c + +expecting success of 0060.107 'relative path: foo/a/b/ foo/a/b/ => ./': test "$(test-tool path-utils relative_path 'foo/a/b/' 'foo/a/b/')" = './' +ok 107 - relative path: foo/a/b/ foo/a/b/ => ./ + +expecting success of 0060.108 'relative path: foo/a/b/ foo/a/b => ./': test "$(test-tool path-utils relative_path 'foo/a/b/' 'foo/a/b')" = './' +ok 108 - relative path: foo/a/b/ foo/a/b => ./ + +expecting success of 0060.109 'relative path: foo/a foo/a/b => ../': test "$(test-tool path-utils relative_path 'foo/a' 'foo/a/b')" = '../' +ok 109 - relative path: foo/a foo/a/b => ../ + +expecting success of 0060.110 'relative path: foo/x/y foo/a/b => ../../x/y': test "$(test-tool path-utils relative_path 'foo/x/y' 'foo/a/b')" = '../../x/y' +ok 110 - relative path: foo/x/y foo/a/b => ../../x/y + +expecting success of 0060.111 'relative path: foo/a/c foo/a/b => ../c': test "$(test-tool path-utils relative_path 'foo/a/c' 'foo/a/b')" = '../c' +ok 111 - relative path: foo/a/c foo/a/b => ../c + +expecting success of 0060.112 'relative path: foo/a/b /foo/x/y => foo/a/b': test "$(test-tool path-utils relative_path 'foo/a/b' '/foo/x/y')" = 'foo/a/b' +ok 112 - relative path: foo/a/b /foo/x/y => foo/a/b + +expecting success of 0060.113 'relative path: /foo/a/b foo/x/y => /foo/a/b': test "$(test-tool path-utils relative_path '/foo/a/b' 'foo/x/y')" = '/foo/a/b' +ok 113 - relative path: /foo/a/b foo/x/y => /foo/a/b + +ok 114 # skip relative path: d:/a/b D:/a/c => ../b (missing MINGW) + +ok 115 # skip relative path: C:/a/b D:/a/c => C:/a/b (missing MINGW) + +expecting success of 0060.116 'relative path: foo/a/b => foo/a/b': test "$(test-tool path-utils relative_path 'foo/a/b' '')" = 'foo/a/b' +ok 116 - relative path: foo/a/b => foo/a/b + +expecting success of 0060.117 'relative path: foo/a/b => foo/a/b': test "$(test-tool path-utils relative_path 'foo/a/b' '')" = 'foo/a/b' +ok 117 - relative path: foo/a/b => foo/a/b + +expecting success of 0060.118 'relative path: /foo/a/b => ./': test "$(test-tool path-utils relative_path '' '/foo/a/b')" = './' +ok 118 - relative path: /foo/a/b => ./ + +expecting success of 0060.119 'relative path: => ./': test "$(test-tool path-utils relative_path '' '')" = './' +ok 119 - relative path: => ./ + +expecting success of 0060.120 'relative path: => ./': test "$(test-tool path-utils relative_path '' '')" = './' +ok 120 - relative path: => ./ + +expecting success of 0060.121 'relative path: => ./': test "$(test-tool path-utils relative_path '' '')" = './' +ok 121 - relative path: => ./ + +expecting success of 0060.122 'relative path: => ./': test "$(test-tool path-utils relative_path '' '')" = './' +ok 122 - relative path: => ./ + +expecting success of 0060.123 'relative path: /foo/a/b => ./': test "$(test-tool path-utils relative_path '' '/foo/a/b')" = './' +ok 123 - relative path: /foo/a/b => ./ + +expecting success of 0060.124 'git-path A=B info/grafts => .git/info/grafts': + A=B git rev-parse --git-path info/grafts >actual && + echo .git/info/grafts >expect && + test_cmp expect actual + +ok 124 - git-path A=B info/grafts => .git/info/grafts + +expecting success of 0060.125 'git-path GIT_GRAFT_FILE=foo info/grafts => foo': + GIT_GRAFT_FILE=foo git rev-parse --git-path info/grafts >actual && + echo foo >expect && + test_cmp expect actual + +ok 125 - git-path GIT_GRAFT_FILE=foo info/grafts => foo + +expecting success of 0060.126 'git-path GIT_GRAFT_FILE=foo info/////grafts => foo': + GIT_GRAFT_FILE=foo git rev-parse --git-path info/////grafts >actual && + echo foo >expect && + test_cmp expect actual + +ok 126 - git-path GIT_GRAFT_FILE=foo info/////grafts => foo + +expecting success of 0060.127 'git-path GIT_INDEX_FILE=foo index => foo': GIT_INDEX_FILE=foo git rev-parse --git-path index >actual && echo foo >expect && test_cmp expect actual @@ -22380,198 +23493,8 @@ 1..213 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t0067-parse_pathspec_file.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0067-parse_pathspec_file/.git/ -expecting success of 0067.1 'one item from stdin': - cat >expect <<-\EOF && - fileA.t - EOF - - echo fileA.t | - test-tool parse-pathspec-file --pathspec-from-file=- >actual && - - test_cmp expect actual - -ok 1 - one item from stdin - -expecting success of 0067.2 'one item from file': - cat >expect <<-\EOF && - fileA.t - EOF - - echo fileA.t >list && - test-tool parse-pathspec-file --pathspec-from-file=list >actual && - - test_cmp expect actual - -ok 2 - one item from file - -expecting success of 0067.3 'NUL delimiters': - cat >expect <<-\EOF && - fileA.t - fileB.t - EOF - - printf "fileA.t\0fileB.t\0" | - test-tool parse-pathspec-file --pathspec-from-file=- --pathspec-file-nul >actual && - - test_cmp expect actual - -ok 3 - NUL delimiters - -expecting success of 0067.4 'LF delimiters': - cat >expect <<-\EOF && - fileA.t - fileB.t - EOF - - printf "fileA.t\nfileB.t\n" | - test-tool parse-pathspec-file --pathspec-from-file=- >actual && - - test_cmp expect actual - -ok 4 - LF delimiters - -expecting success of 0067.5 'no trailing delimiter': - cat >expect <<-\EOF && - fileA.t - fileB.t - EOF - - printf "fileA.t\nfileB.t" | - test-tool parse-pathspec-file --pathspec-from-file=- >actual && - - test_cmp expect actual - -ok 5 - no trailing delimiter - -expecting success of 0067.6 'CRLF delimiters': - cat >expect <<-\EOF && - fileA.t - fileB.t - EOF - - printf "fileA.t\r\nfileB.t\r\n" | - test-tool parse-pathspec-file --pathspec-from-file=- >actual && - - test_cmp expect actual - -ok 6 - CRLF delimiters - -expecting success of 0067.7 'quotes': - cat >expect <<-\EOF && - fileA.t - EOF - - cat >list <<-\EOF && - "file\101.t" - EOF - - test-tool parse-pathspec-file --pathspec-from-file=list >actual && - - test_cmp expect actual - -ok 7 - quotes - -expecting success of 0067.8 '--pathspec-file-nul takes quotes literally': - # Note: there is an extra newline because --pathspec-file-nul takes - # input \n literally, too - cat >expect <<-\EOF && - "file\101.t" - - EOF - - cat >list <<-\EOF && - "file\101.t" - EOF - - test-tool parse-pathspec-file --pathspec-from-file=list --pathspec-file-nul >actual && - - test_cmp expect actual - -ok 8 - --pathspec-file-nul takes quotes literally - -# passed all 8 test(s) -1..8 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t0070-fundamental.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0070-fundamental/.git/ -expecting success of 0070.1 'character classes (isspace, isalpha etc.)': - test-tool ctype - -ok 1 - character classes (isspace, isalpha etc.) - -expecting success of 0070.2 'mktemp to nonexistent directory prints filename': - test_must_fail test-tool mktemp doesnotexist/testXXXXXX 2>err && - grep "doesnotexist/test" err - -fatal: Unable to create temporary file '/build/git-2.30.2/t/trash directory.t0070-fundamental/doesnotexist/testqbqu2a': No such file or directory -ok 2 - mktemp to nonexistent directory prints filename - -checking prerequisite: SANITY - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SANITY" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-SANITY" && - mkdir SANETESTD.1 SANETESTD.2 && - - chmod +w SANETESTD.1 SANETESTD.2 && - >SANETESTD.1/x 2>SANETESTD.2/x && - chmod -w SANETESTD.1 && - chmod -r SANETESTD.1/x && - chmod -rx SANETESTD.2 || - BUG "cannot prepare SANETESTD" - - ! test -r SANETESTD.1/x && - ! rm SANETESTD.1/x && ! test -f SANETESTD.2/x - status=$? - - chmod +rwx SANETESTD.1 SANETESTD.2 && - rm -rf SANETESTD.1 SANETESTD.2 || - BUG "cannot clean SANETESTD" - return $status - -) -rm: cannot remove 'SANETESTD.1/x': Permission denied -prerequisite SANITY ok -expecting success of 0070.3 'mktemp to unwritable directory prints filename': - mkdir cannotwrite && - test_when_finished "chmod +w cannotwrite" && - chmod -w cannotwrite && - test_must_fail test-tool mktemp cannotwrite/testXXXXXX 2>err && - grep "cannotwrite/test" err - -fatal: Unable to create temporary file '/build/git-2.30.2/t/trash directory.t0070-fundamental/cannotwrite/testArtvfN': Permission denied -ok 3 - mktemp to unwritable directory prints filename - -expecting success of 0070.4 'git_mkstemps_mode does not fail if fd 0 is not open': - git commit --allow-empty -m message <&- - -[master (root-commit) b293b08] message - Author: A U Thor -ok 4 - git_mkstemps_mode does not fail if fd 0 is not open - -expecting success of 0070.5 'check for a bug in the regex routines': - # if this test fails, re-build git with NO_REGEX=1 - test-tool regex --bug - -ok 5 - check for a bug in the regex routines - -expecting success of 0070.6 'incomplete sideband messages are reassembled': - test-tool pkt-line send-split-sideband >split-sideband && - test-tool pkt-line receive-sideband err && - grep "Hello, world" err - -primary: regular output -remote: Hello, world! -ok 6 - incomplete sideband messages are reassembled - -expecting success of 0070.7 'eof on sideband message is reported': - printf 1234 >input && - test-tool pkt-line receive-sideband err && - test_i18ngrep "unexpected disconnect" err - +*** t0201-gettext-fallbacks.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0201-gettext-fallbacks/.git/ checking prerequisite: C_LOCALE_OUTPUT mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && @@ -22581,168 +23504,76 @@ ) prerequisite C_LOCALE_OUTPUT ok -sideband: unexpected disconnect while reading sideband packet -ok 7 - eof on sideband message is reported +# lib-gettext: No is_IS UTF-8 locale available +# lib-gettext: No is_IS ISO-8859-1 locale available +expecting success of 0201.1 'sanity: $GIT_INTERNAL_GETTEXT_SH_SCHEME is set (to fallthrough)': + test -n "$GIT_INTERNAL_GETTEXT_SH_SCHEME" -expecting success of 0070.8 'missing sideband designator is reported': - printf 0004 >input && - test-tool pkt-line receive-sideband err && - test_i18ngrep "missing sideband" err +ok 1 - sanity: $GIT_INTERNAL_GETTEXT_SH_SCHEME is set (to fallthrough) -sideband: protocol error: missing sideband designator -ok 8 - missing sideband designator is reported +expecting success of 0201.2 'sanity: $GIT_INTERNAL_GETTEXT_TEST_FALLBACKS is set': + test -n "$GIT_INTERNAL_GETTEXT_TEST_FALLBACKS" -# passed all 8 test(s) -1..8 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t0068-for-each-repo.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0068-for-each-repo/.git/ -expecting success of 0068.1 'run based on configured value': - git init one && - git init two && - git init three && - git -C two commit --allow-empty -m "DID NOT RUN" && - git config run.key "$TRASH_DIRECTORY/one" && - git config --add run.key "$TRASH_DIRECTORY/three" && - git for-each-repo --config=run.key commit --allow-empty -m "ran" && - git -C one log -1 --pretty=format:%s >message && - grep ran message && - git -C two log -1 --pretty=format:%s >message && - ! grep ran message && - git -C three log -1 --pretty=format:%s >message && - grep ran message && - git for-each-repo --config=run.key -- commit --allow-empty -m "ran again" && - git -C one log -1 --pretty=format:%s >message && - grep again message && - git -C two log -1 --pretty=format:%s >message && - ! grep again message && - git -C three log -1 --pretty=format:%s >message && - grep again message +ok 2 - sanity: $GIT_INTERNAL_GETTEXT_TEST_FALLBACKS is set -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0068-for-each-repo/one/.git/ -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0068-for-each-repo/two/.git/ -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0068-for-each-repo/three/.git/ -[master (root-commit) 20fd2df] DID NOT RUN - Author: A U Thor -[master (root-commit) 3c2529d] ran - Author: A U Thor -[master (root-commit) 3c2529d] ran - Author: A U Thor -ran -ran -[master 3fc5dd1] ran again - Author: A U Thor -[master 3fc5dd1] ran again - Author: A U Thor -ran again -ran again -ok 1 - run based on configured value +expecting success of 0201.3 'sanity: $GIT_INTERNAL_GETTEXT_SH_SCHEME" is fallthrough': + echo fallthrough >expect && + echo $GIT_INTERNAL_GETTEXT_SH_SCHEME >actual && + test_cmp expect actual -expecting success of 0068.2 'do nothing on empty config': - # the whole thing would fail if for-each-ref iterated even - # once, because "git help --no-such-option" would fail - git for-each-repo --config=bogus.config -- help --no-such-option +ok 3 - sanity: $GIT_INTERNAL_GETTEXT_SH_SCHEME" is fallthrough -ok 2 - do nothing on empty config +expecting success of 0201.4 'gettext: our gettext() fallback has pass-through semantics': + printf "test" >expect && + gettext "test" >actual && + test_i18ncmp expect actual && + printf "test more words" >expect && + gettext "test more words" >actual && + test_i18ncmp expect actual -# passed all 2 test(s) -1..2 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t0091-bugreport.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0091-bugreport/.git/ -expecting success of 0091.1 'creates a report with content in the right places': - test_when_finished rm git-bugreport-check-headers.txt && - git bugreport -s check-headers && - check_all_headers_populated expect && + eval_gettext "test" >actual && + test_i18ncmp expect actual && + printf "test more words" >expect && + eval_gettext "test more words" >actual && + test_i18ncmp expect actual -expecting success of 0091.2 'dies if file with same name as report already exists': - test_when_finished rm git-bugreport-duplicate.txt && - >>git-bugreport-duplicate.txt && - test_must_fail git bugreport --suffix duplicate +ok 5 - eval_gettext: our eval_gettext() fallback has pass-through semantics -fatal: couldn't create a new file at 'git-bugreport-duplicate.txt' -ok 2 - dies if file with same name as report already exists +expecting success of 0201.6 'eval_gettext: our eval_gettext() fallback can interpolate variables': + printf "test YesPlease" >expect && + GIT_INTERNAL_GETTEXT_TEST_FALLBACKS=YesPlease eval_gettext "test \$GIT_INTERNAL_GETTEXT_TEST_FALLBACKS" >actual && + test_i18ncmp expect actual -expecting success of 0091.3 '--output-directory puts the report in the provided dir': - test_when_finished rm -fr foo/ && - git bugreport -o foo/ && - test_path_is_file foo/git-bugreport-* +ok 6 - eval_gettext: our eval_gettext() fallback can interpolate variables -Created new report at 'foo/git-bugreport-2023-04-29-1615.txt'. -ok 3 - --output-directory puts the report in the provided dir +expecting success of 0201.7 'eval_gettext: our eval_gettext() fallback can interpolate variables with spaces': + cmdline="git am" && + export cmdline && + printf "When you have resolved this problem, run git am --resolved." >expect && + eval_gettext "When you have resolved this problem, run \$cmdline --resolved." >actual && + test_i18ncmp expect actual -expecting success of 0091.4 'incorrect arguments abort with usage': - test_must_fail git bugreport --false 2>output && - test_i18ngrep usage output && - test_path_is_missing git-bugreport-* +ok 7 - eval_gettext: our eval_gettext() fallback can interpolate variables with spaces + +expecting success of 0201.8 'eval_gettext: our eval_gettext() fallback can interpolate variables with spaces and quotes': + cmdline="git am" && + export cmdline && + printf "When you have resolved this problem, run \"git am --resolved\"." >expect && + eval_gettext "When you have resolved this problem, run \"\$cmdline --resolved\"." >actual && + test_i18ncmp expect actual + +ok 8 - eval_gettext: our eval_gettext() fallback can interpolate variables with spaces and quotes +# passed all 8 test(s) +1..8 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t0200-gettext-basic.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0200-gettext-basic/.git/ checking prerequisite: C_LOCALE_OUTPUT mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && @@ -22752,393 +23583,124 @@ ) prerequisite C_LOCALE_OUTPUT ok -usage: git bugreport [-o|--output-directory ] [-s|--suffix ] -ok 4 - incorrect arguments abort with usage - -expecting success of 0091.5 'runs outside of a git dir': - test_when_finished rm non-repo/git-bugreport-* && - nongit git bugreport - -Created new report at 'git-bugreport-2023-04-29-1615.txt'. -ok 5 - runs outside of a git dir - -expecting success of 0091.6 'can create leading directories outside of a git dir': - test_when_finished rm -fr foo/bar/baz && - nongit git bugreport -o foo/bar/baz - -Created new report at 'foo/bar/baz/git-bugreport-2023-04-29-1615.txt'. -ok 6 - can create leading directories outside of a git dir - -expecting success of 0091.7 'indicates populated hooks': - test_when_finished rm git-bugreport-hooks.txt && - test_when_finished rm -fr .git/hooks && - rm -fr .git/hooks && - mkdir .git/hooks && - for hook in applypatch-msg prepare-commit-msg.sample - do - write_script ".git/hooks/$hook" <<-EOF || return 1 - echo "hook $hook exists" - EOF - done && - git bugreport -s hooks && - grep applypatch-msg git-bugreport-hooks.txt && - ! grep prepare-commit-msg git-bugreport-hooks.txt - -Created new report at 'git-bugreport-hooks.txt'. -applypatch-msg -ok 7 - indicates populated hooks - -# passed all 7 test(s) -1..7 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t0095-bloom.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0095-bloom/.git/ -expecting success of 0095.1 'compute unseeded murmur3 hash for empty string': - cat >expect <<-\EOF && - Murmur3 Hash with seed=0:0x00000000 - EOF - test-tool bloom get_murmur3 "" >actual && - test_cmp expect actual - -ok 1 - compute unseeded murmur3 hash for empty string - -expecting success of 0095.2 'compute unseeded murmur3 hash for test string 1': - cat >expect <<-\EOF && - Murmur3 Hash with seed=0:0x627b0c2c - EOF - test-tool bloom get_murmur3 "Hello world!" >actual && - test_cmp expect actual - -ok 2 - compute unseeded murmur3 hash for test string 1 - -expecting success of 0095.3 'compute unseeded murmur3 hash for test string 2': - cat >expect <<-\EOF && - Murmur3 Hash with seed=0:0x2e4ff723 - EOF - test-tool bloom get_murmur3 "The quick brown fox jumps over the lazy dog" >actual && - test_cmp expect actual - -ok 3 - compute unseeded murmur3 hash for test string 2 - -expecting success of 0095.4 'compute bloom key for empty string': - cat >expect <<-\EOF && - Hashes:0x5615800c|0x5b966560|0x61174ab4|0x66983008|0x6c19155c|0x7199fab0|0x771ae004| - Filter_Length:2 - Filter_Data:11|11| - EOF - test-tool bloom generate_filter "" >actual && - test_cmp expect actual - -ok 4 - compute bloom key for empty string - -expecting success of 0095.5 'compute bloom key for whitespace': - cat >expect <<-\EOF && - Hashes:0xf178874c|0x5f3d6eb6|0xcd025620|0x3ac73d8a|0xa88c24f4|0x16510c5e|0x8415f3c8| - Filter_Length:2 - Filter_Data:51|55| - EOF - test-tool bloom generate_filter " " >actual && - test_cmp expect actual - -ok 5 - compute bloom key for whitespace - -expecting success of 0095.6 'compute bloom key for test string 1': - cat >expect <<-\EOF && - Hashes:0xb270de9b|0x1bb6f26e|0x84fd0641|0xee431a14|0x57892de7|0xc0cf41ba|0x2a15558d| - Filter_Length:2 - Filter_Data:92|6c| - EOF - test-tool bloom generate_filter "Hello world!" >actual && - test_cmp expect actual - -ok 6 - compute bloom key for test string 1 - -expecting success of 0095.7 'compute bloom key for test string 2': - cat >expect <<-\EOF && - Hashes:0x20ab385b|0xf5237fe2|0xc99bc769|0x9e140ef0|0x728c5677|0x47049dfe|0x1b7ce585| - Filter_Length:2 - Filter_Data:a5|4a| - EOF - test-tool bloom generate_filter "file.txt" >actual && - test_cmp expect actual - -ok 7 - compute bloom key for test string 2 - -expecting success of 0095.8 'get bloom filters for commit with no changes': - git init && - git commit --allow-empty -m "c0" && - cat >expect <<-\EOF && - Filter_Length:1 - Filter_Data:00| - EOF - test-tool bloom get_filter_for_commit "$(git rev-parse HEAD)" >actual && - test_cmp expect actual - -Reinitialized existing Git repository in /build/git-2.30.2/t/trash directory.t0095-bloom/.git/ -[master (root-commit) c7bd1a3] c0 - Author: A U Thor -ok 8 - get bloom filters for commit with no changes - -expecting success of 0095.9 'get bloom filter for commit with 10 changes': - rm actual && - rm expect && - mkdir smallDir && - for i in $(test_seq 0 9) - do - echo $i >smallDir/$i - done && - git add smallDir && - git commit -m "commit with 10 changes" && - cat >expect <<-\EOF && - Filter_Length:14 - Filter_Data:02|b3|c4|a0|34|e7|fe|eb|cb|47|fe|a0|e8|72| - EOF - test-tool bloom get_filter_for_commit "$(git rev-parse HEAD)" >actual && - test_cmp expect actual - -[master 2444bb6] commit with 10 changes - Author: A U Thor - 10 files changed, 10 insertions(+) - create mode 100644 smallDir/0 - create mode 100644 smallDir/1 - create mode 100644 smallDir/2 - create mode 100644 smallDir/3 - create mode 100644 smallDir/4 - create mode 100644 smallDir/5 - create mode 100644 smallDir/6 - create mode 100644 smallDir/7 - create mode 100644 smallDir/8 - create mode 100644 smallDir/9 -ok 9 - get bloom filter for commit with 10 changes - -checking prerequisite: EXPENSIVE - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-EXPENSIVE" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-EXPENSIVE" && - test -n "$GIT_TEST_LONG" - -) -prerequisite EXPENSIVE not satisfied -ok 10 # skip get bloom filter for commit with 513 changes (missing EXPENSIVE) - -# passed all 10 test(s) -1..10 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t0100-previous.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0100-previous/.git/ -expecting success of 0100.1 'branch -d @{-1}': - test_commit A && - git checkout -b junk && - git checkout - && - test "$(git symbolic-ref HEAD)" = refs/heads/master && - git branch -d @{-1} && - test_must_fail git rev-parse --verify refs/heads/junk - -[master (root-commit) 0ddfaf1] A - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 A.t -Switched to a new branch 'junk' -Switched to branch 'master' -Deleted branch junk (was 0ddfaf1). -fatal: Needed a single revision -ok 1 - branch -d @{-1} - -expecting success of 0100.2 'branch -d @{-12} when there is not enough switches yet': - git reflog expire --expire=now && - git checkout -b junk2 && - git checkout - && - test "$(git symbolic-ref HEAD)" = refs/heads/master && - test_must_fail git branch -d @{-12} && - git rev-parse --verify refs/heads/master - -Switched to a new branch 'junk2' -Switched to branch 'master' -error: branch '@{-12}' not found. -0ddfaf193ff13d6ab39b7cbd9eed645e3ee2f050 -ok 2 - branch -d @{-12} when there is not enough switches yet +# lib-gettext: Found 'is_IS.utf8' as an is_IS UTF-8 locale +# lib-gettext: No is_IS ISO-8859-1 locale available +expecting success of 0200.1 'sanity: $GIT_INTERNAL_GETTEXT_SH_SCHEME is set (to gnu)': + test -n "$GIT_INTERNAL_GETTEXT_SH_SCHEME" -expecting success of 0100.3 'merge @{-1}': - git checkout A && - test_commit B && - git checkout A && - test_commit C && - test_commit D && - git branch -f master B && - git branch -f other && - git checkout other && - git checkout master && - git merge @{-1} && - git cat-file commit HEAD | grep "Merge branch 'other'" +ok 1 - sanity: $GIT_INTERNAL_GETTEXT_SH_SCHEME is set (to gnu) -Note: switching to 'A'. +expecting success of 0200.2 'sanity: $TEXTDOMAIN is git': + test $TEXTDOMAIN = "git" -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. +ok 2 - sanity: $TEXTDOMAIN is git -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: +expecting success of 0200.3 'xgettext sanity: Perl _() strings are not extracted': + ! grep "A Perl string xgettext will not get" "$GIT_PO_PATH"/is.po - git switch -c +ok 3 - xgettext sanity: Perl _() strings are not extracted -Or undo this operation with: +expecting success of 0200.4 'xgettext sanity: Comment extraction with --add-comments': + grep "TRANSLATORS: This is a test" "$TEST_DIRECTORY"/t0200/* | wc -l >expect && + grep "TRANSLATORS: This is a test" "$GIT_PO_PATH"/is.po | wc -l >actual && + test_cmp expect actual - git switch - +ok 4 - xgettext sanity: Comment extraction with --add-comments -Turn off this advice by setting config variable advice.detachedHead to false +expecting success of 0200.5 'xgettext sanity: Comment extraction with --add-comments stops at statements': + ! grep "This is a phony" "$GIT_PO_PATH"/is.po && + ! grep "the above comment" "$GIT_PO_PATH"/is.po -HEAD is now at 0ddfaf1 A -[detached HEAD d9df450] B - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 B.t -Previous HEAD position was d9df450 B -HEAD is now at 0ddfaf1 A -[detached HEAD 5dee784] C - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 C.t -[detached HEAD 12bd07b] D - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 D.t -Switched to branch 'other' -Switched to branch 'master' -Merging: -d9df450 B -virtual @{-1} -found 1 common ancestor: -0ddfaf1 A -Merge made by the 'recursive' strategy. - C.t | 1 + - D.t | 1 + - 2 files changed, 2 insertions(+) - create mode 100644 C.t - create mode 100644 D.t -Merge branch 'other' -ok 3 - merge @{-1} +ok 5 - xgettext sanity: Comment extraction with --add-comments stops at statements -expecting success of 0100.4 'merge @{-1}~1': - git checkout master && - git reset --hard B && - git checkout other && - git checkout master && - git merge @{-1}~1 && - git cat-file commit HEAD >actual && - grep "Merge branch 'other'" actual +expecting success of 0200.6 'sanity: $TEXTDOMAINDIR exists without NO_GETTEXT=YesPlease': + test -d "$TEXTDOMAINDIR" && + test "$TEXTDOMAINDIR" = "$GIT_TEXTDOMAINDIR" -Already on 'master' -HEAD is now at d9df450 B -Switched to branch 'other' -Switched to branch 'master' -Merging: -d9df450 B -virtual @{-1}~1 -found 1 common ancestor: -0ddfaf1 A -Merge made by the 'recursive' strategy. - C.t | 1 + - 1 file changed, 1 insertion(+) - create mode 100644 C.t -Merge branch 'other' (early part) -ok 4 - merge @{-1}~1 +ok 6 - sanity: $TEXTDOMAINDIR exists without NO_GETTEXT=YesPlease -expecting success of 0100.5 'merge @{-100} before checking out that many branches yet': - git reflog expire --expire=now && - git checkout -f master && - git reset --hard B && - git branch -f other C && - git checkout other && - git checkout master && - test_must_fail git merge @{-100} +expecting success of 0200.7 'sanity: Icelandic locale was compiled': + test -f "$TEXTDOMAINDIR/is/LC_MESSAGES/git.mo" -Already on 'master' -HEAD is now at d9df450 B -Switched to branch 'other' -Switched to branch 'master' -merge: @{-100} - not something we can merge -ok 5 - merge @{-100} before checking out that many branches yet +ok 7 - sanity: Icelandic locale was compiled -expecting success of 0100.6 'log -g @{-1}': - git checkout -b last_branch && - git checkout -b new_branch && - echo "last_branch@{0}" >expect && - git log -g --format=%gd @{-1} >actual && - test_cmp expect actual +expecting success of 0200.8 'sanity: gettext("") metadata is OK': + # Return value may be non-zero + LANGUAGE=is LC_ALL="$is_IS_locale" gettext "" >zero-expect && + grep "Project-Id-Version: Git" zero-expect && + grep "Git Mailing List " zero-expect && + grep "Content-Type: text/plain; charset=UTF-8" zero-expect && + grep "Content-Transfer-Encoding: 8bit" zero-expect -Switched to a new branch 'last_branch' -Switched to a new branch 'new_branch' -ok 6 - log -g @{-1} +Project-Id-Version: Git +Report-Msgid-Bugs-To: Git Mailing List +Language-Team: Git Mailing List +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +ok 8 - sanity: gettext("") metadata is OK -# passed all 6 test(s) -1..6 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t0101-at-syntax.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0101-at-syntax/.git/ -expecting success of 0101.1 'setup': - test_commit one && - test_commit two +expecting success of 0200.9 'sanity: gettext(unknown) is passed through': + printf "This is not a translation string" >expect && + gettext "This is not a translation string" >actual && + eval_gettext "This is not a translation string" >actual && + test_cmp expect actual -[master (root-commit) d79ce16] one - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 one.t -[master 139b20d] two - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 two.t -ok 1 - setup +ok 9 - sanity: gettext(unknown) is passed through -expecting success of 0101.2 '@{0} shows current': - check_at @{0} two +expecting success of 0200.10 'xgettext: C extraction of _() and N_() strings': + printf "TILRAUN: C tilraunastrengur" >expect && + printf "\n" >>expect && + printf "Sjá 'git help SKIPUN' til að sjá hjálp fyrir tiltekna skipun." >>expect && + LANGUAGE=is LC_ALL="$is_IS_locale" gettext "TEST: A C test string" >actual && + printf "\n" >>actual && + LANGUAGE=is LC_ALL="$is_IS_locale" gettext "See 'git help COMMAND' for more information on a specific command." >>actual && + test_cmp expect actual -ok 2 - @{0} shows current +ok 10 - xgettext: C extraction of _() and N_() strings -expecting success of 0101.3 '@{1} shows old': - check_at @{1} one +expecting success of 0200.11 'xgettext: C extraction with %s': + printf "TILRAUN: C tilraunastrengur %%s" >expect && + LANGUAGE=is LC_ALL="$is_IS_locale" gettext "TEST: A C test string %s" >actual && + test_cmp expect actual -ok 3 - @{1} shows old +ok 11 - xgettext: C extraction with %s -expecting success of 0101.4 '@{now} shows current': - check_at @{now} two +expecting success of 0200.12 'xgettext: Shell extraction': + printf "TILRAUN: Skeljartilraunastrengur" >expect && + LANGUAGE=is LC_ALL="$is_IS_locale" gettext "TEST: A Shell test string" >actual && + test_cmp expect actual -ok 4 - @{now} shows current +ok 12 - xgettext: Shell extraction -expecting success of 0101.5 '@{2001-09-17} (before the first commit) shows old': - check_at @{2001-09-17} one +expecting success of 0200.13 'xgettext: Shell extraction with $variable': + printf "TILRAUN: Skeljartilraunastrengur með breytunni a var i able" >x-expect && + LANGUAGE=is LC_ALL="$is_IS_locale" variable="a var i able" eval_gettext "TEST: A Shell test \$variable" >x-actual && + test_cmp x-expect x-actual -warning: log for 'master' only goes back to Thu, 7 Apr 2005 15:13:13 -0700 -ok 5 - @{2001-09-17} (before the first commit) shows old +ok 13 - xgettext: Shell extraction with $variable -expecting success of 0101.6 'silly approxidates work': - check_at @{3.hot.dogs.on.2001-09-17} one +expecting success of 0200.14 'xgettext: Perl extraction': + printf "TILRAUN: Perl tilraunastrengur" >expect && + LANGUAGE=is LC_ALL="$is_IS_locale" gettext "TEST: A Perl test string" >actual && + test_cmp expect actual -warning: log for 'master' only goes back to Thu, 7 Apr 2005 15:13:13 -0700 -ok 6 - silly approxidates work +ok 14 - xgettext: Perl extraction -expecting success of 0101.7 'notice misspelled upstream': - test_must_fail git log -1 --format=%s @{usptream} +expecting success of 0200.15 'xgettext: Perl extraction with %s': + printf "TILRAUN: Perl tilraunastrengur með breytunni %%s" >expect && + LANGUAGE=is LC_ALL="$is_IS_locale" gettext "TEST: A Perl test variable %s" >actual && + test_cmp expect actual -fatal: ambiguous argument '@{usptream}': unknown revision or path not in the working tree. -Use '--' to separate paths from revisions, like this: -'git [...] -- [...]' -ok 7 - notice misspelled upstream +ok 15 - xgettext: Perl extraction with %s -expecting success of 0101.8 'complain about total nonsense': - test_must_fail git log -1 --format=%s @{utter.bogosity} +expecting success of 0200.16 'sanity: Some gettext("") data for real locale': + LANGUAGE=is LC_ALL="$is_IS_locale" gettext "" >real-locale && + test -s real-locale -fatal: ambiguous argument '@{utter.bogosity}': unknown revision or path not in the working tree. -Use '--' to separate paths from revisions, like this: -'git [...] -- [...]' -ok 8 - complain about total nonsense +ok 16 - sanity: Some gettext("") data for real locale -# passed all 8 test(s) -1..8 +# passed all 16 test(s) +1..16 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' *** t0110-urlmatch-normalization.sh *** @@ -23324,249 +23886,6 @@ 1..11 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t0200-gettext-basic.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0200-gettext-basic/.git/ -checking prerequisite: C_LOCALE_OUTPUT - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false - -) -prerequisite C_LOCALE_OUTPUT ok -# lib-gettext: Found 'is_IS.utf8' as an is_IS UTF-8 locale -# lib-gettext: No is_IS ISO-8859-1 locale available -expecting success of 0200.1 'sanity: $GIT_INTERNAL_GETTEXT_SH_SCHEME is set (to gnu)': - test -n "$GIT_INTERNAL_GETTEXT_SH_SCHEME" - -ok 1 - sanity: $GIT_INTERNAL_GETTEXT_SH_SCHEME is set (to gnu) - -expecting success of 0200.2 'sanity: $TEXTDOMAIN is git': - test $TEXTDOMAIN = "git" - -ok 2 - sanity: $TEXTDOMAIN is git - -expecting success of 0200.3 'xgettext sanity: Perl _() strings are not extracted': - ! grep "A Perl string xgettext will not get" "$GIT_PO_PATH"/is.po - -ok 3 - xgettext sanity: Perl _() strings are not extracted - -expecting success of 0200.4 'xgettext sanity: Comment extraction with --add-comments': - grep "TRANSLATORS: This is a test" "$TEST_DIRECTORY"/t0200/* | wc -l >expect && - grep "TRANSLATORS: This is a test" "$GIT_PO_PATH"/is.po | wc -l >actual && - test_cmp expect actual - -ok 4 - xgettext sanity: Comment extraction with --add-comments - -expecting success of 0200.5 'xgettext sanity: Comment extraction with --add-comments stops at statements': - ! grep "This is a phony" "$GIT_PO_PATH"/is.po && - ! grep "the above comment" "$GIT_PO_PATH"/is.po - -ok 5 - xgettext sanity: Comment extraction with --add-comments stops at statements - -expecting success of 0200.6 'sanity: $TEXTDOMAINDIR exists without NO_GETTEXT=YesPlease': - test -d "$TEXTDOMAINDIR" && - test "$TEXTDOMAINDIR" = "$GIT_TEXTDOMAINDIR" - -ok 6 - sanity: $TEXTDOMAINDIR exists without NO_GETTEXT=YesPlease - -expecting success of 0200.7 'sanity: Icelandic locale was compiled': - test -f "$TEXTDOMAINDIR/is/LC_MESSAGES/git.mo" - -ok 7 - sanity: Icelandic locale was compiled - -expecting success of 0200.8 'sanity: gettext("") metadata is OK': - # Return value may be non-zero - LANGUAGE=is LC_ALL="$is_IS_locale" gettext "" >zero-expect && - grep "Project-Id-Version: Git" zero-expect && - grep "Git Mailing List " zero-expect && - grep "Content-Type: text/plain; charset=UTF-8" zero-expect && - grep "Content-Transfer-Encoding: 8bit" zero-expect - -Project-Id-Version: Git -Report-Msgid-Bugs-To: Git Mailing List -Language-Team: Git Mailing List -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit -ok 8 - sanity: gettext("") metadata is OK - -expecting success of 0200.9 'sanity: gettext(unknown) is passed through': - printf "This is not a translation string" >expect && - gettext "This is not a translation string" >actual && - eval_gettext "This is not a translation string" >actual && - test_cmp expect actual - -ok 9 - sanity: gettext(unknown) is passed through - -expecting success of 0200.10 'xgettext: C extraction of _() and N_() strings': - printf "TILRAUN: C tilraunastrengur" >expect && - printf "\n" >>expect && - printf "Sjá 'git help SKIPUN' til að sjá hjálp fyrir tiltekna skipun." >>expect && - LANGUAGE=is LC_ALL="$is_IS_locale" gettext "TEST: A C test string" >actual && - printf "\n" >>actual && - LANGUAGE=is LC_ALL="$is_IS_locale" gettext "See 'git help COMMAND' for more information on a specific command." >>actual && - test_cmp expect actual - -ok 10 - xgettext: C extraction of _() and N_() strings - -expecting success of 0200.11 'xgettext: C extraction with %s': - printf "TILRAUN: C tilraunastrengur %%s" >expect && - LANGUAGE=is LC_ALL="$is_IS_locale" gettext "TEST: A C test string %s" >actual && - test_cmp expect actual - -ok 11 - xgettext: C extraction with %s - -expecting success of 0200.12 'xgettext: Shell extraction': - printf "TILRAUN: Skeljartilraunastrengur" >expect && - LANGUAGE=is LC_ALL="$is_IS_locale" gettext "TEST: A Shell test string" >actual && - test_cmp expect actual - -ok 12 - xgettext: Shell extraction - -expecting success of 0200.13 'xgettext: Shell extraction with $variable': - printf "TILRAUN: Skeljartilraunastrengur með breytunni a var i able" >x-expect && - LANGUAGE=is LC_ALL="$is_IS_locale" variable="a var i able" eval_gettext "TEST: A Shell test \$variable" >x-actual && - test_cmp x-expect x-actual - -ok 13 - xgettext: Shell extraction with $variable - -expecting success of 0200.14 'xgettext: Perl extraction': - printf "TILRAUN: Perl tilraunastrengur" >expect && - LANGUAGE=is LC_ALL="$is_IS_locale" gettext "TEST: A Perl test string" >actual && - test_cmp expect actual - -ok 14 - xgettext: Perl extraction - -expecting success of 0200.15 'xgettext: Perl extraction with %s': - printf "TILRAUN: Perl tilraunastrengur með breytunni %%s" >expect && - LANGUAGE=is LC_ALL="$is_IS_locale" gettext "TEST: A Perl test variable %s" >actual && - test_cmp expect actual - -ok 15 - xgettext: Perl extraction with %s - -expecting success of 0200.16 'sanity: Some gettext("") data for real locale': - LANGUAGE=is LC_ALL="$is_IS_locale" gettext "" >real-locale && - test -s real-locale - -ok 16 - sanity: Some gettext("") data for real locale - -# passed all 16 test(s) -1..16 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t0201-gettext-fallbacks.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0201-gettext-fallbacks/.git/ -checking prerequisite: C_LOCALE_OUTPUT - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false - -) -prerequisite C_LOCALE_OUTPUT ok -# lib-gettext: No is_IS UTF-8 locale available -# lib-gettext: No is_IS ISO-8859-1 locale available -expecting success of 0201.1 'sanity: $GIT_INTERNAL_GETTEXT_SH_SCHEME is set (to fallthrough)': - test -n "$GIT_INTERNAL_GETTEXT_SH_SCHEME" - -ok 1 - sanity: $GIT_INTERNAL_GETTEXT_SH_SCHEME is set (to fallthrough) - -expecting success of 0201.2 'sanity: $GIT_INTERNAL_GETTEXT_TEST_FALLBACKS is set': - test -n "$GIT_INTERNAL_GETTEXT_TEST_FALLBACKS" - -ok 2 - sanity: $GIT_INTERNAL_GETTEXT_TEST_FALLBACKS is set - -expecting success of 0201.3 'sanity: $GIT_INTERNAL_GETTEXT_SH_SCHEME" is fallthrough': - echo fallthrough >expect && - echo $GIT_INTERNAL_GETTEXT_SH_SCHEME >actual && - test_cmp expect actual - -ok 3 - sanity: $GIT_INTERNAL_GETTEXT_SH_SCHEME" is fallthrough - -expecting success of 0201.4 'gettext: our gettext() fallback has pass-through semantics': - printf "test" >expect && - gettext "test" >actual && - test_i18ncmp expect actual && - printf "test more words" >expect && - gettext "test more words" >actual && - test_i18ncmp expect actual - -ok 4 - gettext: our gettext() fallback has pass-through semantics - -expecting success of 0201.5 'eval_gettext: our eval_gettext() fallback has pass-through semantics': - printf "test" >expect && - eval_gettext "test" >actual && - test_i18ncmp expect actual && - printf "test more words" >expect && - eval_gettext "test more words" >actual && - test_i18ncmp expect actual - -ok 5 - eval_gettext: our eval_gettext() fallback has pass-through semantics - -expecting success of 0201.6 'eval_gettext: our eval_gettext() fallback can interpolate variables': - printf "test YesPlease" >expect && - GIT_INTERNAL_GETTEXT_TEST_FALLBACKS=YesPlease eval_gettext "test \$GIT_INTERNAL_GETTEXT_TEST_FALLBACKS" >actual && - test_i18ncmp expect actual - -ok 6 - eval_gettext: our eval_gettext() fallback can interpolate variables - -expecting success of 0201.7 'eval_gettext: our eval_gettext() fallback can interpolate variables with spaces': - cmdline="git am" && - export cmdline && - printf "When you have resolved this problem, run git am --resolved." >expect && - eval_gettext "When you have resolved this problem, run \$cmdline --resolved." >actual && - test_i18ncmp expect actual - -ok 7 - eval_gettext: our eval_gettext() fallback can interpolate variables with spaces - -expecting success of 0201.8 'eval_gettext: our eval_gettext() fallback can interpolate variables with spaces and quotes': - cmdline="git am" && - export cmdline && - printf "When you have resolved this problem, run \"git am --resolved\"." >expect && - eval_gettext "When you have resolved this problem, run \"\$cmdline --resolved\"." >actual && - test_i18ncmp expect actual - -ok 8 - eval_gettext: our eval_gettext() fallback can interpolate variables with spaces and quotes - -# passed all 8 test(s) -1..8 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t0202-gettext-perl.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0202-gettext-perl/.git/ -checking prerequisite: C_LOCALE_OUTPUT - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false - -) -prerequisite C_LOCALE_OUTPUT ok -# lib-gettext: Found 'is_IS.utf8' as an is_IS UTF-8 locale -# lib-gettext: No is_IS ISO-8859-1 locale available -# run 0: Perl Git::I18N API (perl /build/git-2.30.2/t/t0202/test.pl) -1..13 -ok 1 - Testing Git::I18N with NO Perl gettext library -ok 2 - Git::I18N is located at /build/git-2.30.2/t/../perl/build/lib/Git/I18N.pm -ok 3 - sanity: Git::I18N has 3 export(s) -ok 4 - sanity: Git::I18N exports everything by default -ok 5 - sanity: N__ has a $ prototype -ok 6 - sanity: __n has a $$$ prototype -ok 7 - sanity: __ has a $ prototype -ok 8 - Passing a string through __() in the C locale works -ok 9 - Get singular string through __n() in C locale -ok 10 - Get plural string through __n() in C locale -ok 11 - Passing a string through N__() in the C locale works -ok 12 - Without a gettext library + locale turns into -ok 13 - Without a gettext library + locale turns into -# test_external test Perl Git::I18N API was ok -# expecting no stderr from previous command -# test_external_without_stderr test no stderr: Perl Git::I18N API was ok -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' *** t0203-gettext-setlocale-sanity.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0203-gettext-setlocale-sanity/.git/ checking prerequisite: C_LOCALE_OUTPUT @@ -23616,506 +23935,8 @@ 1..2 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t0090-cache-tree.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0090-cache-tree/.git/ -expecting success of 0090.1 'initial commit has cache-tree': - test_commit foo && - test_cache_tree - -[master (root-commit) ddd63c9] foo - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 foo.t -ok 1 - initial commit has cache-tree - -expecting success of 0090.2 'read-tree HEAD establishes cache-tree': - git read-tree HEAD && - test_cache_tree - -ok 2 - read-tree HEAD establishes cache-tree - -expecting success of 0090.3 'git-add invalidates cache-tree': - test_when_finished "git reset --hard; git read-tree HEAD" && - echo "I changed this file" >foo && - git add foo && - test_invalid_cache_tree - -HEAD is now at ddd63c9 foo -ok 3 - git-add invalidates cache-tree - -expecting success of 0090.4 'git-add in subdir invalidates cache-tree': - test_when_finished "git reset --hard; git read-tree HEAD" && - mkdir dirx && - echo "I changed this file" >dirx/foo && - git add dirx/foo && - test_invalid_cache_tree - -error: invalid object 040000 59d259507ddf2acc00997a8b70c61d7bdc240440 for 'dirx' -HEAD is now at ddd63c9 foo -ok 4 - git-add in subdir invalidates cache-tree - -expecting success of 0090.5 'git-add in subdir does not invalidate sibling cache-tree': - git tag no-children && - test_when_finished "git reset --hard no-children; git read-tree HEAD" && - mkdir dir1 dir2 && - test_commit dir1/a && - test_commit dir2/b && - echo "I changed this file" >dir1/a && - cmp_cache_tree before && - echo "I changed this file" >dir1/a && - git add dir1/a && - cmp_cache_tree expect - -[master 365c8fc] dir1/a - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 dir1/a.t -[master 8be4607] dir2/b - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 dir2/b.t -error: invalid object 040000 3b5b859722b671676295bf3795f34b8c6f2393f5 for 'dir1' -HEAD is now at ddd63c9 foo -ok 5 - git-add in subdir does not invalidate sibling cache-tree - -expecting success of 0090.6 'update-index invalidates cache-tree': - test_when_finished "git reset --hard; git read-tree HEAD" && - echo "I changed this file" >foo && - git update-index --add foo && - test_invalid_cache_tree - -HEAD is now at ddd63c9 foo -ok 6 - update-index invalidates cache-tree - -expecting success of 0090.7 'write-tree establishes cache-tree': - test-tool scrap-cache-tree && - git write-tree && - test_cache_tree - -64fd3796c57084e7b8cbae358ce37970b8e954f6 -ok 7 - write-tree establishes cache-tree - -expecting success of 0090.8 'test-tool scrap-cache-tree works': - git read-tree HEAD && - test-tool scrap-cache-tree && - test_no_cache_tree - -ok 8 - test-tool scrap-cache-tree works - -expecting success of 0090.9 'second commit has cache-tree': - test_commit bar && - test_cache_tree - -[master eeeeed8] bar - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 bar.t -ok 9 - second commit has cache-tree - -expecting success of 0090.10 'commit --interactive gives cache-tree on partial commit': - cat <<-\EOT >foo.c && - int foo() - { - return 42; - } - int bar() - { - return 42; - } - EOT - git add foo.c && - test_invalid_cache_tree && - git commit -m "add a file" && - test_cache_tree && - cat <<-\EOT >foo.c && - int foo() - { - return 43; - } - int bar() - { - return 44; - } - EOT - test_write_lines p 1 "" s n y q | - git commit --interactive -m foo && - test_cache_tree - -[master d1075a6] add a file - Author: A U Thor - 1 file changed, 8 insertions(+) - create mode 100644 foo.c - staged unstaged path - 1: unchanged +2/-2 foo.c - -*** Commands *** - 1: [s]tatus 2: [u]pdate 3: [r]evert 4: [a]dd untracked - 5: [p]atch 6: [d]iff 7: [q]uit 8: [h]elp -What now> staged unstaged path - 1: unchanged +2/-2 [f]oo.c -Patch update>> staged unstaged path -* 1: unchanged +2/-2 [f]oo.c -Patch update>> diff --git a/foo.c b/foo.c -index 75522e2..3f7f049 100644 ---- a/foo.c -+++ b/foo.c -@@ -1,8 +1,8 @@ - int foo() - { --return 42; -+return 43; - } - int bar() - { --return 42; -+return 44; - } -(1/1) Stage this hunk [y,n,q,a,d,s,e,?]? Split into 2 hunks. -@@ -1,6 +1,6 @@ - int foo() - { --return 42; -+return 43; - } - int bar() - { -(1/2) Stage this hunk [y,n,q,a,d,j,J,g,/,e,?]? @@ -4,5 +4,5 @@ - } - int bar() - { --return 42; -+return 44; - } -(2/2) Stage this hunk [y,n,q,a,d,K,g,/,e,?]? -*** Commands *** - 1: [s]tatus 2: [u]pdate 3: [r]evert 4: [a]dd untracked - 5: [p]atch 6: [d]iff 7: [q]uit 8: [h]elp -What now> Bye. -[master 65d7dde] foo - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -ok 10 - commit --interactive gives cache-tree on partial commit - -expecting success of 0090.11 'commit -p with shrinking cache-tree': - mkdir -p deep/very-long-subdir && - echo content >deep/very-long-subdir/file && - git add deep && - git commit -m add && - git rm -r deep && - - before=$(wc -c <.git/index) && - git commit -m delete -p && - after=$(wc -c <.git/index) && - - # double check that the index shrank - test $before -gt $after && - - # and that our index was not corrupted - git fsck - -[master 10c383a] add - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 deep/very-long-subdir/file -rm 'deep/very-long-subdir/file' -diff --git a/foo.c b/foo.c -index f0f3133..3f7f049 100644 ---- a/foo.c -+++ b/foo.c -@@ -1,6 +1,6 @@ - int foo() - { --return 42; -+return 43; - } - int bar() - { -(1/1) Stage this hunk [y,n,q,a,d,e,?]? -[master 73c66c3] delete - Author: A U Thor - 1 file changed, 1 deletion(-) - delete mode 100644 deep/very-long-subdir/file -dangling blob d238b40d1657b1cc3ebd9a3c55ef04f303c694ae -ok 11 - commit -p with shrinking cache-tree - -expecting success of 0090.12 'commit in child dir has cache-tree': - mkdir dir && - >dir/child.t && - git add dir/child.t && - git commit -m dir/child.t && - test_cache_tree - -[master d3413ee] dir/child.t - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - create mode 100644 dir/child.t -ok 12 - commit in child dir has cache-tree - -expecting success of 0090.13 'reset --hard gives cache-tree': - test-tool scrap-cache-tree && - git reset --hard && - test_cache_tree - -HEAD is now at d3413ee dir/child.t -ok 13 - reset --hard gives cache-tree - -expecting success of 0090.14 'reset --hard without index gives cache-tree': - rm -f .git/index && - git reset --hard && - test_cache_tree - -HEAD is now at d3413ee dir/child.t -ok 14 - reset --hard without index gives cache-tree - -expecting success of 0090.15 'checkout gives cache-tree': - git tag current && - git checkout HEAD^ && - test_cache_tree - -Note: switching to 'HEAD^'. - -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. - -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: - - git switch -c - -Or undo this operation with: - - git switch - - -Turn off this advice by setting config variable advice.detachedHead to false - -HEAD is now at 73c66c3 delete -ok 15 - checkout gives cache-tree - -expecting success of 0090.16 'checkout -b gives cache-tree': - git checkout current && - git checkout -b prev HEAD^ && - test_cache_tree - -Previous HEAD position was 73c66c3 delete -HEAD is now at d3413ee dir/child.t -Previous HEAD position was d3413ee dir/child.t -Switched to a new branch 'prev' -ok 16 - checkout -b gives cache-tree - -expecting success of 0090.17 'checkout -B gives cache-tree': - git checkout current && - git checkout -B prev HEAD^ && - test_cache_tree - -Note: switching to 'current'. - -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. - -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: - - git switch -c - -Or undo this operation with: - - git switch - - -Turn off this advice by setting config variable advice.detachedHead to false - -HEAD is now at d3413ee dir/child.t -Previous HEAD position was d3413ee dir/child.t -Switched to and reset branch 'prev' -ok 17 - checkout -B gives cache-tree - -expecting success of 0090.18 'merge --ff-only maintains cache-tree': - git checkout current && - git checkout -b changes && - test_commit llamas && - test_commit pachyderm && - test_cache_tree && - git checkout current && - test_cache_tree && - git merge --ff-only changes && - test_cache_tree - -Note: switching to 'current'. - -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. - -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: - - git switch -c - -Or undo this operation with: - - git switch - - -Turn off this advice by setting config variable advice.detachedHead to false - -HEAD is now at d3413ee dir/child.t -Switched to a new branch 'changes' -[changes 229c856] llamas - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 llamas.t -[changes f10d9f3] pachyderm - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 pachyderm.t -Note: switching to 'current'. - -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. - -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: - - git switch -c - -Or undo this operation with: - - git switch - - -Turn off this advice by setting config variable advice.detachedHead to false - -HEAD is now at d3413ee dir/child.t -Updating d3413ee..f10d9f3 -Fast-forward - llamas.t | 1 + - pachyderm.t | 1 + - 2 files changed, 2 insertions(+) - create mode 100644 llamas.t - create mode 100644 pachyderm.t -ok 18 - merge --ff-only maintains cache-tree - -expecting success of 0090.19 'merge maintains cache-tree': - git checkout current && - git checkout -b changes2 && - test_commit alpacas && - test_cache_tree && - git checkout current && - test_commit struthio && - test_cache_tree && - git merge changes2 && - test_cache_tree - -Previous HEAD position was f10d9f3 pachyderm -HEAD is now at d3413ee dir/child.t -Switched to a new branch 'changes2' -[changes2 4b1575a] alpacas - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 alpacas.t -Note: switching to 'current'. - -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. - -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: - - git switch -c - -Or undo this operation with: - - git switch - - -Turn off this advice by setting config variable advice.detachedHead to false - -HEAD is now at d3413ee dir/child.t -[detached HEAD 5a63c6d] struthio - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 struthio.t -Merging: -5a63c6d struthio -virtual changes2 -found 1 common ancestor: -d3413ee dir/child.t -Merge made by the 'recursive' strategy. - alpacas.t | 1 + - 1 file changed, 1 insertion(+) - create mode 100644 alpacas.t -ok 19 - merge maintains cache-tree - -expecting success of 0090.20 'partial commit gives cache-tree': - git checkout -b partial no-children && - test_commit one && - test_commit two && - echo "some change" >one.t && - git add one.t && - echo "some other change" >two.t && - git commit two.t -m partial && - test_cache_tree - -Warning: you are leaving 1 commit behind, not connected to -any of your branches: - - e104fa1 Merge branch 'changes2' into HEAD - -If you want to keep it by creating a new branch, this may be a good time -to do so with: - - git branch e104fa1 - -Switched to a new branch 'partial' -[partial 6771940] one - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 one.t -[partial cd7fad9] two - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 two.t -[partial f24c7c2] partial - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -ok 20 - partial commit gives cache-tree - -expecting success of 0090.21 'no phantom error when switching trees': - mkdir newdir && - >newdir/one && - git add newdir/one && - git checkout 2>errors && - test_must_be_empty errors - -A newdir/one -M one.t -ok 21 - no phantom error when switching trees - -expecting success of 0090.22 'switching trees does not invalidate shared index': - ( - sane_unset GIT_TEST_SPLIT_INDEX && - git update-index --split-index && - >split && - git add split && - test-tool dump-split-index .git/index | grep -v ^own >before && - git commit -m "as-is" && - test-tool dump-split-index .git/index | grep -v ^own >after && - test_cmp before after - ) - -[partial dc7a831] as-is - Author: A U Thor - 3 files changed, 1 insertion(+), 1 deletion(-) - create mode 100644 newdir/one - create mode 100644 split -ok 22 - switching trees does not invalidate shared index - -# passed all 22 test(s) -1..22 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t0205-gettext-poison.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0205-gettext-poison/.git/ +*** t0202-gettext-perl.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0202-gettext-perl/.git/ checking prerequisite: C_LOCALE_OUTPUT mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && @@ -24124,41 +23945,27 @@ ! test_bool_env GIT_TEST_GETTEXT_POISON false ) -prerequisite C_LOCALE_OUTPUT not satisfied -expecting success of 0205.1 'sanity: $GIT_INTERNAL_GETTEXT_SH_SCHEME" is poison': - test "$GIT_INTERNAL_GETTEXT_SH_SCHEME" = "poison" - -ok 1 - sanity: $GIT_INTERNAL_GETTEXT_SH_SCHEME" is poison - -expecting success of 0205.2 'gettext: our gettext() fallback has poison semantics': - printf "# GETTEXT POISON #" >expect && - gettext "test" >actual && - test_cmp expect actual && - printf "# GETTEXT POISON #" >expect && - gettext "test more words" >actual && - test_cmp expect actual - -ok 2 - gettext: our gettext() fallback has poison semantics - -expecting success of 0205.3 'eval_gettext: our eval_gettext() fallback has poison semantics': - printf "# GETTEXT POISON #" >expect && - eval_gettext "test" >actual && - test_cmp expect actual && - printf "# GETTEXT POISON #" >expect && - eval_gettext "test more words" >actual && - test_cmp expect actual - -ok 3 - eval_gettext: our eval_gettext() fallback has poison semantics - -expecting success of 0205.4 'gettext: invalid GIT_TEST_GETTEXT_POISON value doesn't infinitely loop': - test_must_fail env GIT_TEST_GETTEXT_POISON=xyz git version 2>error && - grep "fatal: bad numeric config value 'xyz' for 'GIT_TEST_GETTEXT_POISON': invalid unit" error - -fatal: bad numeric config value 'xyz' for 'GIT_TEST_GETTEXT_POISON': invalid unit -ok 4 - gettext: invalid GIT_TEST_GETTEXT_POISON value doesn't infinitely loop - -# passed all 4 test(s) -1..4 +prerequisite C_LOCALE_OUTPUT ok +# lib-gettext: Found 'is_IS.utf8' as an is_IS UTF-8 locale +# lib-gettext: No is_IS ISO-8859-1 locale available +# run 0: Perl Git::I18N API (perl /build/git-2.30.2/t/t0202/test.pl) +1..13 +ok 1 - Testing Git::I18N with NO Perl gettext library +ok 2 - Git::I18N is located at /build/git-2.30.2/t/../perl/build/lib/Git/I18N.pm +ok 3 - sanity: Git::I18N has 3 export(s) +ok 4 - sanity: Git::I18N exports everything by default +ok 5 - sanity: __ has a $ prototype +ok 6 - sanity: __n has a $$$ prototype +ok 7 - sanity: N__ has a $ prototype +ok 8 - Passing a string through __() in the C locale works +ok 9 - Get singular string through __n() in C locale +ok 10 - Get plural string through __n() in C locale +ok 11 - Passing a string through N__() in the C locale works +ok 12 - Without a gettext library + locale turns into +ok 13 - Without a gettext library + locale turns into +# test_external test Perl Git::I18N API was ok +# expecting no stderr from previous command +# test_external_without_stderr test no stderr: Perl Git::I18N API was ok make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' *** t0204-gettext-reencode-sanity.sh *** @@ -24226,6 +24033,53 @@ 1..8 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t0205-gettext-poison.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0205-gettext-poison/.git/ +checking prerequisite: C_LOCALE_OUTPUT + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false + +) +prerequisite C_LOCALE_OUTPUT not satisfied +expecting success of 0205.1 'sanity: $GIT_INTERNAL_GETTEXT_SH_SCHEME" is poison': + test "$GIT_INTERNAL_GETTEXT_SH_SCHEME" = "poison" + +ok 1 - sanity: $GIT_INTERNAL_GETTEXT_SH_SCHEME" is poison + +expecting success of 0205.2 'gettext: our gettext() fallback has poison semantics': + printf "# GETTEXT POISON #" >expect && + gettext "test" >actual && + test_cmp expect actual && + printf "# GETTEXT POISON #" >expect && + gettext "test more words" >actual && + test_cmp expect actual + +ok 2 - gettext: our gettext() fallback has poison semantics + +expecting success of 0205.3 'eval_gettext: our eval_gettext() fallback has poison semantics': + printf "# GETTEXT POISON #" >expect && + eval_gettext "test" >actual && + test_cmp expect actual && + printf "# GETTEXT POISON #" >expect && + eval_gettext "test more words" >actual && + test_cmp expect actual + +ok 3 - eval_gettext: our eval_gettext() fallback has poison semantics + +expecting success of 0205.4 'gettext: invalid GIT_TEST_GETTEXT_POISON value doesn't infinitely loop': + test_must_fail env GIT_TEST_GETTEXT_POISON=xyz git version 2>error && + grep "fatal: bad numeric config value 'xyz' for 'GIT_TEST_GETTEXT_POISON': invalid unit" error + +fatal: bad numeric config value 'xyz' for 'GIT_TEST_GETTEXT_POISON': invalid unit +ok 4 - gettext: invalid GIT_TEST_GETTEXT_POISON value doesn't infinitely loop + +# passed all 4 test(s) +1..4 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t0211-trace2-perf.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0211-trace2-perf/.git/ expecting success of 0211.1 'perf stream, return code 0': @@ -24740,8 +24594,8 @@ head -n1 trace_target_dir/git-trace2-discard | grep \"event\":\"version\" && head -n2 trace_target_dir/git-trace2-discard | tail -n1 | grep \"event\":\"too_many_files\" -{"event":"version","sid":"20230429T161614.808694Z-H5162f302-P000016de","thread":"main","time":"2023-04-29T16:16:14.808979Z","file":"common-main.c","line":48,"evt":"2","exe":"2.30.2"} -{"event":"too_many_files","sid":"20230429T161614.808694Z-H5162f302-P000016de","thread":"main","time":"2023-04-29T16:16:14.809049Z","file":"common-main.c","line":48} +{"event":"version","sid":"20230429T174353.638770Z-H5c947e1c-P000052ae","thread":"main","time":"2023-04-29T17:43:53.639140Z","file":"common-main.c","line":48,"evt":"2","exe":"2.30.2"} +{"event":"too_many_files","sid":"20230429T174353.638770Z-H5c947e1c-P000052ae","thread":"main","time":"2023-04-29T17:43:53.639246Z","file":"common-main.c","line":48} ok 7 - discard traces when there are too many files # passed all 7 test(s) @@ -26093,6 +25947,343 @@ 1..0 # SKIP used to test external credential helpers make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t0500-progress-display.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0500-progress-display/.git/ +expecting success of 0500.1 'simple progress display': + cat >expect <<-\EOF && + Working hard: 1 + Working hard: 2 + Working hard: 5 + Working hard: 5, done. + EOF + + cat >in <<-\EOF && + update + progress 1 + update + progress 2 + progress 3 + progress 4 + update + progress 5 + EOF + test-tool progress "Working hard" stderr && + + show_cr out && + test_i18ncmp expect out + +checking prerequisite: C_LOCALE_OUTPUT + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false + +) +prerequisite C_LOCALE_OUTPUT ok +ok 1 - simple progress display + +expecting success of 0500.2 'progress display with total': + cat >expect <<-\EOF && + Working hard: 33% (1/3) + Working hard: 66% (2/3) + Working hard: 100% (3/3) + Working hard: 100% (3/3), done. + EOF + + cat >in <<-\EOF && + progress 1 + progress 2 + progress 3 + EOF + test-tool progress --total=3 "Working hard" stderr && + + show_cr out && + test_i18ncmp expect out + +ok 2 - progress display with total + +expecting success of 0500.3 'progress display breaks long lines #1': + sed -e "s/Z$//" >expect <<\EOF && +Working hard.......2.........3.........4.........5.........6: 0% (100/100000) +Working hard.......2.........3.........4.........5.........6: 1% (1000/100000) +Working hard.......2.........3.........4.........5.........6: Z + 10% (10000/100000) + 100% (100000/100000) + 100% (100000/100000), done. +EOF + + cat >in <<-\EOF && + progress 100 + progress 1000 + progress 10000 + progress 100000 + EOF + test-tool progress --total=100000 \ + "Working hard.......2.........3.........4.........5.........6" \ + stderr && + + show_cr out && + test_i18ncmp expect out + +ok 3 - progress display breaks long lines #1 + +expecting success of 0500.4 'progress display breaks long lines #2': + # Note: we do not need that many spaces after the title to cover up + # the last line before breaking the progress line. + sed -e "s/Z$//" >expect <<\EOF && +Working hard.......2.........3.........4.........5.........6: 0% (1/100000) +Working hard.......2.........3.........4.........5.........6: 0% (2/100000) +Working hard.......2.........3.........4.........5.........6: Z + 10% (10000/100000) + 100% (100000/100000) + 100% (100000/100000), done. +EOF + + cat >in <<-\EOF && + update + progress 1 + update + progress 2 + progress 10000 + progress 100000 + EOF + test-tool progress --total=100000 \ + "Working hard.......2.........3.........4.........5.........6" \ + stderr && + + show_cr out && + test_i18ncmp expect out + +ok 4 - progress display breaks long lines #2 + +expecting success of 0500.5 'progress display breaks long lines #3 - even the first is too long': + # Note: we do not actually need any spaces at the end of the title + # line, because there is no previous progress line to cover up. + sed -e "s/Z$//" >expect <<\EOF && +Working hard.......2.........3.........4.........5.........6: Z + 25% (25000/100000) + 50% (50000/100000) + 75% (75000/100000) + 100% (100000/100000) + 100% (100000/100000), done. +EOF + + cat >in <<-\EOF && + progress 25000 + progress 50000 + progress 75000 + progress 100000 + EOF + test-tool progress --total=100000 \ + "Working hard.......2.........3.........4.........5.........6" \ + stderr && + + show_cr out && + test_i18ncmp expect out + +ok 5 - progress display breaks long lines #3 - even the first is too long + +expecting success of 0500.6 'progress display breaks long lines #4 - title line matches terminal width': + cat >expect <<\EOF && +Working hard.......2.........3.........4.........5.........6.........7.........: + 25% (25000/100000) + 50% (50000/100000) + 75% (75000/100000) + 100% (100000/100000) + 100% (100000/100000), done. +EOF + + cat >in <<-\EOF && + progress 25000 + progress 50000 + progress 75000 + progress 100000 + EOF + test-tool progress --total=100000 \ + "Working hard.......2.........3.........4.........5.........6.........7........." \ + stderr && + + show_cr out && + test_i18ncmp expect out + +ok 6 - progress display breaks long lines #4 - title line matches terminal width + +expecting success of 0500.7 'progress shortens - crazy caller': + cat >expect <<-\EOF && + Working hard: 10% (100/1000) + Working hard: 20% (200/1000) + Working hard: 0% (1/1000) + Working hard: 100% (1000/1000) + Working hard: 100% (1000/1000), done. + EOF + + cat >in <<-\EOF && + progress 100 + progress 200 + progress 1 + progress 1000 + EOF + test-tool progress --total=1000 "Working hard" stderr && + + show_cr out && + test_i18ncmp expect out + +ok 7 - progress shortens - crazy caller + +expecting success of 0500.8 'progress display with throughput': + cat >expect <<-\EOF && + Working hard: 10 + Working hard: 20, 200.00 KiB | 100.00 KiB/s + Working hard: 30, 300.00 KiB | 100.00 KiB/s + Working hard: 40, 400.00 KiB | 100.00 KiB/s + Working hard: 40, 400.00 KiB | 100.00 KiB/s, done. + EOF + + cat >in <<-\EOF && + throughput 102400 1000 + update + progress 10 + throughput 204800 2000 + update + progress 20 + throughput 307200 3000 + update + progress 30 + throughput 409600 4000 + update + progress 40 + EOF + test-tool progress "Working hard" stderr && + + show_cr out && + test_i18ncmp expect out + +ok 8 - progress display with throughput + +expecting success of 0500.9 'progress display with throughput and total': + cat >expect <<-\EOF && + Working hard: 25% (10/40) + Working hard: 50% (20/40), 200.00 KiB | 100.00 KiB/s + Working hard: 75% (30/40), 300.00 KiB | 100.00 KiB/s + Working hard: 100% (40/40), 400.00 KiB | 100.00 KiB/s + Working hard: 100% (40/40), 400.00 KiB | 100.00 KiB/s, done. + EOF + + cat >in <<-\EOF && + throughput 102400 1000 + progress 10 + throughput 204800 2000 + progress 20 + throughput 307200 3000 + progress 30 + throughput 409600 4000 + progress 40 + EOF + test-tool progress --total=40 "Working hard" stderr && + + show_cr out && + test_i18ncmp expect out + +ok 9 - progress display with throughput and total + +expecting success of 0500.10 'cover up after throughput shortens': + cat >expect <<-\EOF && + Working hard: 1 + Working hard: 2, 800.00 KiB | 400.00 KiB/s + Working hard: 3, 1.17 MiB | 400.00 KiB/s + Working hard: 4, 1.56 MiB | 400.00 KiB/s + Working hard: 4, 1.56 MiB | 400.00 KiB/s, done. + EOF + + cat >in <<-\EOF && + throughput 409600 1000 + update + progress 1 + throughput 819200 2000 + update + progress 2 + throughput 1228800 3000 + update + progress 3 + throughput 1638400 4000 + update + progress 4 + EOF + test-tool progress "Working hard" stderr && + + show_cr out && + test_i18ncmp expect out + +ok 10 - cover up after throughput shortens + +expecting success of 0500.11 'cover up after throughput shortens a lot': + cat >expect <<-\EOF && + Working hard: 1 + Working hard: 2, 1000.00 KiB | 1000.00 KiB/s + Working hard: 3, 3.00 MiB | 1.50 MiB/s + Working hard: 3, 3.00 MiB | 1024.00 KiB/s, done. + EOF + + cat >in <<-\EOF && + throughput 1 1000 + update + progress 1 + throughput 1024000 2000 + update + progress 2 + throughput 3145728 3000 + update + progress 3 + EOF + test-tool progress "Working hard" stderr && + + show_cr out && + test_i18ncmp expect out + +ok 11 - cover up after throughput shortens a lot + +expecting success of 0500.12 'progress generates traces': + cat >in <<-\EOF && + throughput 102400 1000 + update + progress 10 + throughput 204800 2000 + update + progress 20 + throughput 307200 3000 + update + progress 30 + throughput 409600 4000 + update + progress 40 + EOF + + GIT_TRACE2_EVENT="$(pwd)/trace.event" test-tool progress --total=40 \ + "Working hard" stderr && + + # t0212/parse_events.perl intentionally omits regions and data. + grep -e "region_enter" -e "\"category\":\"progress\"" trace.event && + grep -e "region_leave" -e "\"category\":\"progress\"" trace.event && + grep "\"key\":\"total_objects\",\"value\":\"40\"" trace.event && + grep "\"key\":\"total_bytes\",\"value\":\"409600\"" trace.event + +{"event":"region_enter","sid":"20230429T174408.603048Z-H5c947e1c-P000060a6","thread":"main","time":"2023-04-29T17:44:08.603393Z","file":"progress.c","line":268,"repo":0,"nesting":1,"category":"progress","label":"Working hard"} +{"event":"data","sid":"20230429T174408.603048Z-H5c947e1c-P000060a6","thread":"main","time":"2023-04-29T17:44:08.603574Z","file":"progress.c","line":328,"repo":0,"t_abs":0.001086,"t_rel":0.000181,"nesting":2,"category":"progress","key":"total_objects","value":"40"} +{"event":"data","sid":"20230429T174408.603048Z-H5c947e1c-P000060a6","thread":"main","time":"2023-04-29T17:44:08.603613Z","file":"progress.c","line":332,"repo":0,"t_abs":0.001125,"t_rel":0.000220,"nesting":2,"category":"progress","key":"total_bytes","value":"409600"} +{"event":"region_leave","sid":"20230429T174408.603048Z-H5c947e1c-P000060a6","thread":"main","time":"2023-04-29T17:44:08.603640Z","file":"progress.c","line":336,"repo":0,"t_rel":0.000247,"nesting":1,"category":"progress","label":"Working hard"} +{"event":"region_enter","sid":"20230429T174408.603048Z-H5c947e1c-P000060a6","thread":"main","time":"2023-04-29T17:44:08.603393Z","file":"progress.c","line":268,"repo":0,"nesting":1,"category":"progress","label":"Working hard"} +{"event":"data","sid":"20230429T174408.603048Z-H5c947e1c-P000060a6","thread":"main","time":"2023-04-29T17:44:08.603574Z","file":"progress.c","line":328,"repo":0,"t_abs":0.001086,"t_rel":0.000181,"nesting":2,"category":"progress","key":"total_objects","value":"40"} +{"event":"data","sid":"20230429T174408.603048Z-H5c947e1c-P000060a6","thread":"main","time":"2023-04-29T17:44:08.603613Z","file":"progress.c","line":332,"repo":0,"t_abs":0.001125,"t_rel":0.000220,"nesting":2,"category":"progress","key":"total_bytes","value":"409600"} +{"event":"region_leave","sid":"20230429T174408.603048Z-H5c947e1c-P000060a6","thread":"main","time":"2023-04-29T17:44:08.603640Z","file":"progress.c","line":336,"repo":0,"t_rel":0.000247,"nesting":1,"category":"progress","label":"Working hard"} +{"event":"data","sid":"20230429T174408.603048Z-H5c947e1c-P000060a6","thread":"main","time":"2023-04-29T17:44:08.603574Z","file":"progress.c","line":328,"repo":0,"t_abs":0.001086,"t_rel":0.000181,"nesting":2,"category":"progress","key":"total_objects","value":"40"} +{"event":"data","sid":"20230429T174408.603048Z-H5c947e1c-P000060a6","thread":"main","time":"2023-04-29T17:44:08.603613Z","file":"progress.c","line":332,"repo":0,"t_abs":0.001125,"t_rel":0.000220,"nesting":2,"category":"progress","key":"total_bytes","value":"409600"} +ok 12 - progress generates traces + +# passed all 12 test(s) +1..12 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t0302-credential-store.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0302-credential-store/.git/ expecting success of 0302.1 'helper (store) has no existing data': @@ -27047,341 +27238,479 @@ 1..53 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t0500-progress-display.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0500-progress-display/.git/ -expecting success of 0500.1 'simple progress display': - cat >expect <<-\EOF && - Working hard: 1 - Working hard: 2 - Working hard: 5 - Working hard: 5, done. - EOF +*** t1001-read-tree-m-2way.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1001-read-tree-m-2way/.git/ +expecting success of 1001.1 'setup': + echo frotz >frotz && + echo nitfol >nitfol && + cat bozbar-old >bozbar && + echo rezrov >rezrov && + echo yomin >yomin && + git update-index --add nitfol bozbar rezrov && + treeH=$(git write-tree) && + echo treeH $treeH && + git ls-tree $treeH && - cat >in <<-\EOF && - update - progress 1 - update - progress 2 - progress 3 - progress 4 - update - progress 5 - EOF - test-tool progress "Working hard" stderr && + cat bozbar-new >bozbar && + git update-index --add frotz bozbar --force-remove rezrov && + git ls-files --stage >M.out && + treeM=$(git write-tree) && + echo treeM $treeM && + git ls-tree $treeM && + git diff-tree $treeH $treeM - show_cr out && - test_i18ncmp expect out +treeH ca3aa9e6ee09349df7db6f0de15016afcdf5d9e4 +100644 blob 3e8d9abb979a4fbdc93309f457a5496bc41ba6ab bozbar +100644 blob dca6b92303befc93086aa025d90a5facd7eb2812 nitfol +100644 blob 766498d93a4b06057a8e49d23f4068f1170ff38f rezrov +treeM d2c045ead2ecb56f2632385a395918bf21816c12 +100644 blob 346d4e61f111336a1443ef6b2e834aa5b1a7f91a bozbar +100644 blob 8e4020bb5a8d8c873b25de15933e75cc0fc275df frotz +100644 blob dca6b92303befc93086aa025d90a5facd7eb2812 nitfol +:100644 100644 3e8d9abb979a4fbdc93309f457a5496bc41ba6ab 346d4e61f111336a1443ef6b2e834aa5b1a7f91a M bozbar +:000000 100644 0000000000000000000000000000000000000000 8e4020bb5a8d8c873b25de15933e75cc0fc275df A frotz +:100644 000000 766498d93a4b06057a8e49d23f4068f1170ff38f 0000000000000000000000000000000000000000 D rezrov +ok 1 - setup -checking prerequisite: C_LOCALE_OUTPUT +expecting success of 1001.2 '1, 2, 3 - no carry forward': + rm -f .git/index && + read_tree_twoway $treeH $treeM && + git ls-files --stage >1-3.out && + test_cmp M.out 1-3.out && + check_cache_at bozbar dirty && + check_cache_at frotz dirty && + check_cache_at nitfol dirty -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false +100644 346d4e61f111336a1443ef6b2e834aa5b1a7f91a 0 bozbar +100644 8e4020bb5a8d8c873b25de15933e75cc0fc275df 0 frotz +100644 dca6b92303befc93086aa025d90a5facd7eb2812 0 nitfol +bozbar: dirty +frotz: dirty +nitfol: dirty +ok 2 - 1, 2, 3 - no carry forward -) -prerequisite C_LOCALE_OUTPUT ok -ok 1 - simple progress display +expecting success of 1001.3 '4 - carry forward local addition.': + rm -f .git/index && + read_tree_must_succeed $treeH && + git checkout-index -u -f -q -a && + git update-index --add yomin && + read_tree_twoway $treeH $treeM && + git ls-files --stage >4.out && + test_must_fail git diff --no-index M.out 4.out >4diff.out && + compare_change 4diff.out expected && + check_cache_at yomin clean -expecting success of 0500.2 'progress display with total': - cat >expect <<-\EOF && - Working hard: 33% (1/3) - Working hard: 66% (2/3) - Working hard: 100% (3/3) - Working hard: 100% (3/3), done. - EOF +100644 346d4e61f111336a1443ef6b2e834aa5b1a7f91a 0 bozbar +100644 8e4020bb5a8d8c873b25de15933e75cc0fc275df 0 frotz +100644 dca6b92303befc93086aa025d90a5facd7eb2812 0 nitfol +100644 0a41e115ab61be0328a19b29f18cdcb49338d516 0 yomin +yomin: clean +ok 3 - 4 - carry forward local addition. - cat >in <<-\EOF && - progress 1 - progress 2 - progress 3 - EOF - test-tool progress --total=3 "Working hard" stderr && +expecting success of 1001.4 '5 - carry forward local addition.': + rm -f .git/index && + read_tree_must_succeed $treeH && + git checkout-index -u -f -q -a && + echo yomin >yomin && + git update-index --add yomin && + echo yomin yomin >yomin && + read_tree_twoway $treeH $treeM && + git ls-files --stage >5.out && + test_must_fail git diff --no-index M.out 5.out >5diff.out && + compare_change 5diff.out expected && + check_cache_at yomin dirty - show_cr out && - test_i18ncmp expect out +100644 346d4e61f111336a1443ef6b2e834aa5b1a7f91a 0 bozbar +100644 8e4020bb5a8d8c873b25de15933e75cc0fc275df 0 frotz +100644 dca6b92303befc93086aa025d90a5facd7eb2812 0 nitfol +100644 0a41e115ab61be0328a19b29f18cdcb49338d516 0 yomin +yomin: dirty +ok 4 - 5 - carry forward local addition. -ok 2 - progress display with total +expecting success of 1001.5 '6 - local addition already has the same.': + rm -f .git/index && + read_tree_must_succeed $treeH && + git checkout-index -u -f -q -a && + git update-index --add frotz && + read_tree_twoway $treeH $treeM && + git ls-files --stage >6.out && + test_cmp M.out 6.out && + check_cache_at frotz clean -expecting success of 0500.3 'progress display breaks long lines #1': - sed -e "s/Z$//" >expect <<\EOF && -Working hard.......2.........3.........4.........5.........6: 0% (100/100000) -Working hard.......2.........3.........4.........5.........6: 1% (1000/100000) -Working hard.......2.........3.........4.........5.........6: Z - 10% (10000/100000) - 100% (100000/100000) - 100% (100000/100000), done. -EOF +100644 346d4e61f111336a1443ef6b2e834aa5b1a7f91a 0 bozbar +100644 8e4020bb5a8d8c873b25de15933e75cc0fc275df 0 frotz +100644 dca6b92303befc93086aa025d90a5facd7eb2812 0 nitfol +frotz: clean +ok 5 - 6 - local addition already has the same. - cat >in <<-\EOF && - progress 100 - progress 1000 - progress 10000 - progress 100000 - EOF - test-tool progress --total=100000 \ - "Working hard.......2.........3.........4.........5.........6" \ - stderr && +expecting success of 1001.6 '7 - local addition already has the same.': + rm -f .git/index && + read_tree_must_succeed $treeH && + git checkout-index -u -f -q -a && + echo frotz >frotz && + git update-index --add frotz && + echo frotz frotz >frotz && + read_tree_twoway $treeH $treeM && + git ls-files --stage >7.out && + test_cmp M.out 7.out && + check_cache_at frotz dirty - show_cr out && - test_i18ncmp expect out +100644 346d4e61f111336a1443ef6b2e834aa5b1a7f91a 0 bozbar +100644 8e4020bb5a8d8c873b25de15933e75cc0fc275df 0 frotz +100644 dca6b92303befc93086aa025d90a5facd7eb2812 0 nitfol +frotz: dirty +ok 6 - 7 - local addition already has the same. -ok 3 - progress display breaks long lines #1 +expecting success of 1001.7 '8 - conflicting addition.': + rm -f .git/index && + read_tree_must_succeed $treeH && + git checkout-index -u -f -q -a && + echo frotz frotz >frotz && + git update-index --add frotz && + if read_tree_twoway $treeH $treeM; then false; else :; fi -expecting success of 0500.4 'progress display breaks long lines #2': - # Note: we do not need that many spaces after the title to cover up - # the last line before breaking the progress line. - sed -e "s/Z$//" >expect <<\EOF && -Working hard.......2.........3.........4.........5.........6: 0% (1/100000) -Working hard.......2.........3.........4.........5.........6: 0% (2/100000) -Working hard.......2.........3.........4.........5.........6: Z - 10% (10000/100000) - 100% (100000/100000) - 100% (100000/100000), done. -EOF +error: Entry 'frotz' would be overwritten by merge. Cannot merge. +ok 7 - 8 - conflicting addition. - cat >in <<-\EOF && - update - progress 1 - update - progress 2 - progress 10000 - progress 100000 - EOF - test-tool progress --total=100000 \ - "Working hard.......2.........3.........4.........5.........6" \ - stderr && +expecting success of 1001.8 '9 - conflicting addition.': + rm -f .git/index && + read_tree_must_succeed $treeH && + git checkout-index -u -f -q -a && + echo frotz frotz >frotz && + git update-index --add frotz && + echo frotz >frotz && + if read_tree_twoway $treeH $treeM; then false; else :; fi - show_cr out && - test_i18ncmp expect out +error: Entry 'frotz' would be overwritten by merge. Cannot merge. +ok 8 - 9 - conflicting addition. -ok 4 - progress display breaks long lines #2 +expecting success of 1001.9 '10 - path removed.': + rm -f .git/index && + read_tree_must_succeed $treeH && + git checkout-index -u -f -q -a && + echo rezrov >rezrov && + git update-index --add rezrov && + read_tree_twoway $treeH $treeM && + git ls-files --stage >10.out && + test_cmp M.out 10.out -expecting success of 0500.5 'progress display breaks long lines #3 - even the first is too long': - # Note: we do not actually need any spaces at the end of the title - # line, because there is no previous progress line to cover up. - sed -e "s/Z$//" >expect <<\EOF && -Working hard.......2.........3.........4.........5.........6: Z - 25% (25000/100000) - 50% (50000/100000) - 75% (75000/100000) - 100% (100000/100000) - 100% (100000/100000), done. -EOF +100644 346d4e61f111336a1443ef6b2e834aa5b1a7f91a 0 bozbar +100644 8e4020bb5a8d8c873b25de15933e75cc0fc275df 0 frotz +100644 dca6b92303befc93086aa025d90a5facd7eb2812 0 nitfol +ok 9 - 10 - path removed. - cat >in <<-\EOF && - progress 25000 - progress 50000 - progress 75000 - progress 100000 - EOF - test-tool progress --total=100000 \ - "Working hard.......2.........3.........4.........5.........6" \ - stderr && +expecting success of 1001.10 '11 - dirty path removed.': + rm -f .git/index && + read_tree_must_succeed $treeH && + git checkout-index -u -f -q -a && + echo rezrov >rezrov && + git update-index --add rezrov && + echo rezrov rezrov >rezrov && + if read_tree_twoway $treeH $treeM; then false; else :; fi - show_cr out && - test_i18ncmp expect out +error: Entry 'rezrov' not uptodate. Cannot merge. +ok 10 - 11 - dirty path removed. -ok 5 - progress display breaks long lines #3 - even the first is too long +expecting success of 1001.11 '12 - unmatching local changes being removed.': + rm -f .git/index && + read_tree_must_succeed $treeH && + git checkout-index -u -f -q -a && + echo rezrov rezrov >rezrov && + git update-index --add rezrov && + if read_tree_twoway $treeH $treeM; then false; else :; fi -expecting success of 0500.6 'progress display breaks long lines #4 - title line matches terminal width': - cat >expect <<\EOF && -Working hard.......2.........3.........4.........5.........6.........7.........: - 25% (25000/100000) - 50% (50000/100000) - 75% (75000/100000) - 100% (100000/100000) - 100% (100000/100000), done. -EOF +error: Entry 'rezrov' would be overwritten by merge. Cannot merge. +ok 11 - 12 - unmatching local changes being removed. - cat >in <<-\EOF && - progress 25000 - progress 50000 - progress 75000 - progress 100000 - EOF - test-tool progress --total=100000 \ - "Working hard.......2.........3.........4.........5.........6.........7........." \ - stderr && +expecting success of 1001.12 '13 - unmatching local changes being removed.': + rm -f .git/index && + read_tree_must_succeed $treeH && + git checkout-index -u -f -q -a && + echo rezrov rezrov >rezrov && + git update-index --add rezrov && + echo rezrov >rezrov && + if read_tree_twoway $treeH $treeM; then false; else :; fi - show_cr out && - test_i18ncmp expect out +error: Entry 'rezrov' would be overwritten by merge. Cannot merge. +ok 12 - 13 - unmatching local changes being removed. -ok 6 - progress display breaks long lines #4 - title line matches terminal width +expecting success of 1001.13 '14 - unchanged in two heads.': + rm -f .git/index && + read_tree_must_succeed $treeH && + git checkout-index -u -f -q -a && + echo nitfol nitfol >nitfol && + git update-index --add nitfol && + read_tree_twoway $treeH $treeM && + git ls-files --stage >14.out && + test_must_fail git diff --no-index M.out 14.out >14diff.out && + compare_change 14diff.out expected && + check_cache_at nitfol clean -expecting success of 0500.7 'progress shortens - crazy caller': - cat >expect <<-\EOF && - Working hard: 10% (100/1000) - Working hard: 20% (200/1000) - Working hard: 0% (1/1000) - Working hard: 100% (1000/1000) - Working hard: 100% (1000/1000), done. - EOF +100644 346d4e61f111336a1443ef6b2e834aa5b1a7f91a 0 bozbar +100644 8e4020bb5a8d8c873b25de15933e75cc0fc275df 0 frotz +100644 7e1bf714fb103c778a21dd67411666901222425a 0 nitfol +nitfol: clean +ok 13 - 14 - unchanged in two heads. - cat >in <<-\EOF && - progress 100 - progress 200 - progress 1 - progress 1000 - EOF - test-tool progress --total=1000 "Working hard" stderr && +expecting success of 1001.14 '15 - unchanged in two heads.': + rm -f .git/index && + read_tree_must_succeed $treeH && + git checkout-index -u -f -q -a && + echo nitfol nitfol >nitfol && + git update-index --add nitfol && + echo nitfol nitfol nitfol >nitfol && + read_tree_twoway $treeH $treeM && + git ls-files --stage >15.out && + test_must_fail git diff --no-index M.out 15.out >15diff.out && + compare_change 15diff.out expected && + check_cache_at nitfol dirty - show_cr out && - test_i18ncmp expect out +100644 346d4e61f111336a1443ef6b2e834aa5b1a7f91a 0 bozbar +100644 8e4020bb5a8d8c873b25de15933e75cc0fc275df 0 frotz +100644 7e1bf714fb103c778a21dd67411666901222425a 0 nitfol +nitfol: dirty +ok 14 - 15 - unchanged in two heads. -ok 7 - progress shortens - crazy caller +expecting success of 1001.15 '16 - conflicting local change.': + rm -f .git/index && + read_tree_must_succeed $treeH && + git checkout-index -u -f -q -a && + echo bozbar bozbar >bozbar && + git update-index --add bozbar && + if read_tree_twoway $treeH $treeM; then false; else :; fi -expecting success of 0500.8 'progress display with throughput': - cat >expect <<-\EOF && - Working hard: 10 - Working hard: 20, 200.00 KiB | 100.00 KiB/s - Working hard: 30, 300.00 KiB | 100.00 KiB/s - Working hard: 40, 400.00 KiB | 100.00 KiB/s - Working hard: 40, 400.00 KiB | 100.00 KiB/s, done. - EOF +error: Entry 'bozbar' would be overwritten by merge. Cannot merge. +ok 15 - 16 - conflicting local change. - cat >in <<-\EOF && - throughput 102400 1000 - update - progress 10 - throughput 204800 2000 - update - progress 20 - throughput 307200 3000 - update - progress 30 - throughput 409600 4000 - update - progress 40 - EOF - test-tool progress "Working hard" stderr && +expecting success of 1001.16 '17 - conflicting local change.': + rm -f .git/index && + read_tree_must_succeed $treeH && + git checkout-index -u -f -q -a && + echo bozbar bozbar >bozbar && + git update-index --add bozbar && + echo bozbar bozbar bozbar >bozbar && + if read_tree_twoway $treeH $treeM; then false; else :; fi - show_cr out && - test_i18ncmp expect out +error: Entry 'bozbar' would be overwritten by merge. Cannot merge. +ok 16 - 17 - conflicting local change. -ok 8 - progress display with throughput +expecting success of 1001.17 '18 - local change already having a good result.': + rm -f .git/index && + read_tree_must_succeed $treeH && + git checkout-index -u -f -q -a && + cat bozbar-new >bozbar && + git update-index --add bozbar && + read_tree_twoway $treeH $treeM && + git ls-files --stage >18.out && + test_cmp M.out 18.out && + check_cache_at bozbar clean -expecting success of 0500.9 'progress display with throughput and total': - cat >expect <<-\EOF && - Working hard: 25% (10/40) - Working hard: 50% (20/40), 200.00 KiB | 100.00 KiB/s - Working hard: 75% (30/40), 300.00 KiB | 100.00 KiB/s - Working hard: 100% (40/40), 400.00 KiB | 100.00 KiB/s - Working hard: 100% (40/40), 400.00 KiB | 100.00 KiB/s, done. - EOF +100644 346d4e61f111336a1443ef6b2e834aa5b1a7f91a 0 bozbar +100644 8e4020bb5a8d8c873b25de15933e75cc0fc275df 0 frotz +100644 dca6b92303befc93086aa025d90a5facd7eb2812 0 nitfol +bozbar: clean +ok 17 - 18 - local change already having a good result. - cat >in <<-\EOF && - throughput 102400 1000 - progress 10 - throughput 204800 2000 - progress 20 - throughput 307200 3000 - progress 30 - throughput 409600 4000 - progress 40 - EOF - test-tool progress --total=40 "Working hard" stderr && +expecting success of 1001.18 '19 - local change already having a good result, further modified.': + rm -f .git/index && + read_tree_must_succeed $treeH && + git checkout-index -u -f -q -a && + cat bozbar-new >bozbar && + git update-index --add bozbar && + echo gnusto gnusto >bozbar && + read_tree_twoway $treeH $treeM && + git ls-files --stage >19.out && + test_cmp M.out 19.out && + check_cache_at bozbar dirty - show_cr out && - test_i18ncmp expect out +100644 346d4e61f111336a1443ef6b2e834aa5b1a7f91a 0 bozbar +100644 8e4020bb5a8d8c873b25de15933e75cc0fc275df 0 frotz +100644 dca6b92303befc93086aa025d90a5facd7eb2812 0 nitfol +bozbar: dirty +ok 18 - 19 - local change already having a good result, further modified. -ok 9 - progress display with throughput and total +expecting success of 1001.19 '20 - no local change, use new tree.': + rm -f .git/index && + read_tree_must_succeed $treeH && + git checkout-index -u -f -q -a && + cat bozbar-old >bozbar && + git update-index --add bozbar && + read_tree_twoway $treeH $treeM && + git ls-files --stage >20.out && + test_cmp M.out 20.out && + check_cache_at bozbar dirty -expecting success of 0500.10 'cover up after throughput shortens': - cat >expect <<-\EOF && - Working hard: 1 - Working hard: 2, 800.00 KiB | 400.00 KiB/s - Working hard: 3, 1.17 MiB | 400.00 KiB/s - Working hard: 4, 1.56 MiB | 400.00 KiB/s - Working hard: 4, 1.56 MiB | 400.00 KiB/s, done. - EOF +100644 346d4e61f111336a1443ef6b2e834aa5b1a7f91a 0 bozbar +100644 8e4020bb5a8d8c873b25de15933e75cc0fc275df 0 frotz +100644 dca6b92303befc93086aa025d90a5facd7eb2812 0 nitfol +bozbar: dirty +ok 19 - 20 - no local change, use new tree. - cat >in <<-\EOF && - throughput 409600 1000 - update - progress 1 - throughput 819200 2000 - update - progress 2 - throughput 1228800 3000 - update - progress 3 - throughput 1638400 4000 - update - progress 4 - EOF - test-tool progress "Working hard" stderr && +expecting success of 1001.20 '21 - no local change, dirty cache.': + rm -f .git/index && + read_tree_must_succeed $treeH && + git checkout-index -u -f -q -a && + cat bozbar-old >bozbar && + git update-index --add bozbar && + echo gnusto gnusto >bozbar && + if read_tree_twoway $treeH $treeM; then false; else :; fi - show_cr out && - test_i18ncmp expect out +error: Entry 'bozbar' not uptodate. Cannot merge. +ok 20 - 21 - no local change, dirty cache. -ok 10 - cover up after throughput shortens +expecting success of 1001.21 '22 - local change cache updated.': + rm -f .git/index && + read_tree_must_succeed $treeH && + git checkout-index -u -f -q -a && + sed -e "s/such as/SUCH AS/" bozbar-old >bozbar && + git update-index --add bozbar && + if read_tree_twoway $treeH $treeM; then false; else :; fi -expecting success of 0500.11 'cover up after throughput shortens a lot': - cat >expect <<-\EOF && - Working hard: 1 - Working hard: 2, 1000.00 KiB | 1000.00 KiB/s - Working hard: 3, 3.00 MiB | 1.50 MiB/s - Working hard: 3, 3.00 MiB | 1024.00 KiB/s, done. - EOF +error: Entry 'bozbar' would be overwritten by merge. Cannot merge. +ok 21 - 22 - local change cache updated. - cat >in <<-\EOF && - throughput 1 1000 - update - progress 1 - throughput 1024000 2000 - update - progress 2 - throughput 3145728 3000 - update - progress 3 - EOF - test-tool progress "Working hard" stderr && +expecting success of 1001.22 'DF vs DF/DF case setup.': + rm -f .git/index && + echo DF >DF && + git update-index --add DF && + treeDF=$(git write-tree) && + echo treeDF $treeDF && + git ls-tree $treeDF && - show_cr out && - test_i18ncmp expect out + rm -f DF && + mkdir DF && + echo DF/DF >DF/DF && + git update-index --add --remove DF DF/DF && + treeDFDF=$(git write-tree) && + echo treeDFDF $treeDFDF && + git ls-tree $treeDFDF && + git ls-files --stage >DFDF.out -ok 11 - cover up after throughput shortens a lot +treeDF 6bf22db9043f2b5821c019d0ce0f2605421affcb +100644 blob 052efc3abbc31348f7abd34535b1953d38273257 DF +treeDFDF c38e296263d024b0f48c4a728d293232ac6c5443 +040000 tree 90bbead36f4d6a7c325fd450e6cfbcc7479d421a DF +ok 22 - DF vs DF/DF case setup. -expecting success of 0500.12 'progress generates traces': - cat >in <<-\EOF && - throughput 102400 1000 - update - progress 10 - throughput 204800 2000 - update - progress 20 - throughput 307200 3000 - update - progress 30 - throughput 409600 4000 - update - progress 40 +expecting success of 1001.23 'DF vs DF/DF case test.': + rm -f .git/index && + rm -fr DF && + echo DF >DF && + git update-index --add DF && + read_tree_twoway $treeDF $treeDFDF && + git ls-files --stage >DFDFcheck.out && + test_cmp DFDF.out DFDFcheck.out && + check_cache_at DF/DF dirty && + : + +100644 b90ea14b2dd74b6f377c10870b3757344bbe077c 0 DF/DF +DF/DF: dirty +ok 23 - DF vs DF/DF case test. + +expecting success of 1001.24 'a/b (untracked) vs a case setup.': + rm -f .git/index && + : >a && + git update-index --add a && + treeM=$(git write-tree) && + echo treeM $treeM && + git ls-tree $treeM && + git ls-files --stage >treeM.out && + + rm -f a && + git update-index --remove a && + mkdir a && + : >a/b && + treeH=$(git write-tree) && + echo treeH $treeH && + git ls-tree $treeH + +treeM 496d6428b9cf92981dc9495211e6e1120fb6f2ba +100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 a +treeH 4b825dc642cb6eb9a060e54bf8d69288fbee4904 +ok 24 - a/b (untracked) vs a case setup. + +expecting success of 1001.25 'a/b (untracked) vs a, plus c/d case test.': + read_tree_u_must_fail -u -m "$treeH" "$treeM" && + git ls-files --stage && + test -f a/b + +error: Updating 'a' would lose untracked files in it +error: Updating 'a' would lose untracked files in it +ok 25 - a/b (untracked) vs a, plus c/d case test. + +expecting success of 1001.26 'read-tree supports the super-prefix': + cat <<-EOF >expect && + error: Updating 'fictional/a' would lose untracked files in it EOF + test_must_fail git --super-prefix fictional/ read-tree -u -m "$treeH" "$treeM" 2>actual && + test_cmp expect actual - GIT_TRACE2_EVENT="$(pwd)/trace.event" test-tool progress --total=40 \ - "Working hard" stderr && +ok 26 - read-tree supports the super-prefix - # t0212/parse_events.perl intentionally omits regions and data. - grep -e "region_enter" -e "\"category\":\"progress\"" trace.event && - grep -e "region_leave" -e "\"category\":\"progress\"" trace.event && - grep "\"key\":\"total_objects\",\"value\":\"40\"" trace.event && - grep "\"key\":\"total_bytes\",\"value\":\"409600\"" trace.event +expecting success of 1001.27 'a/b vs a, plus c/d case setup.': + rm -f .git/index && + rm -fr a && + : >a && + mkdir c && + : >c/d && + git update-index --add a c/d && + treeM=$(git write-tree) && + echo treeM $treeM && + git ls-tree $treeM && + git ls-files --stage >treeM.out && -{"event":"region_enter","sid":"20230429T161638.481853Z-H5162f302-P00004444","thread":"main","time":"2023-04-29T16:16:38.482204Z","file":"progress.c","line":268,"repo":0,"nesting":1,"category":"progress","label":"Working hard"} -{"event":"data","sid":"20230429T161638.481853Z-H5162f302-P00004444","thread":"main","time":"2023-04-29T16:16:38.482413Z","file":"progress.c","line":328,"repo":0,"t_abs":0.001030,"t_rel":0.000208,"nesting":2,"category":"progress","key":"total_objects","value":"40"} -{"event":"data","sid":"20230429T161638.481853Z-H5162f302-P00004444","thread":"main","time":"2023-04-29T16:16:38.482454Z","file":"progress.c","line":332,"repo":0,"t_abs":0.001073,"t_rel":0.000251,"nesting":2,"category":"progress","key":"total_bytes","value":"409600"} -{"event":"region_leave","sid":"20230429T161638.481853Z-H5162f302-P00004444","thread":"main","time":"2023-04-29T16:16:38.482485Z","file":"progress.c","line":336,"repo":0,"t_rel":0.000281,"nesting":1,"category":"progress","label":"Working hard"} -{"event":"region_enter","sid":"20230429T161638.481853Z-H5162f302-P00004444","thread":"main","time":"2023-04-29T16:16:38.482204Z","file":"progress.c","line":268,"repo":0,"nesting":1,"category":"progress","label":"Working hard"} -{"event":"data","sid":"20230429T161638.481853Z-H5162f302-P00004444","thread":"main","time":"2023-04-29T16:16:38.482413Z","file":"progress.c","line":328,"repo":0,"t_abs":0.001030,"t_rel":0.000208,"nesting":2,"category":"progress","key":"total_objects","value":"40"} -{"event":"data","sid":"20230429T161638.481853Z-H5162f302-P00004444","thread":"main","time":"2023-04-29T16:16:38.482454Z","file":"progress.c","line":332,"repo":0,"t_abs":0.001073,"t_rel":0.000251,"nesting":2,"category":"progress","key":"total_bytes","value":"409600"} -{"event":"region_leave","sid":"20230429T161638.481853Z-H5162f302-P00004444","thread":"main","time":"2023-04-29T16:16:38.482485Z","file":"progress.c","line":336,"repo":0,"t_rel":0.000281,"nesting":1,"category":"progress","label":"Working hard"} -{"event":"data","sid":"20230429T161638.481853Z-H5162f302-P00004444","thread":"main","time":"2023-04-29T16:16:38.482413Z","file":"progress.c","line":328,"repo":0,"t_abs":0.001030,"t_rel":0.000208,"nesting":2,"category":"progress","key":"total_objects","value":"40"} -{"event":"data","sid":"20230429T161638.481853Z-H5162f302-P00004444","thread":"main","time":"2023-04-29T16:16:38.482454Z","file":"progress.c","line":332,"repo":0,"t_abs":0.001073,"t_rel":0.000251,"nesting":2,"category":"progress","key":"total_bytes","value":"409600"} -ok 12 - progress generates traces + rm -f a && + mkdir a && + : >a/b && + git update-index --add --remove a a/b && + treeH=$(git write-tree) && + echo treeH $treeH && + git ls-tree $treeH -# passed all 12 test(s) -1..12 +treeM 3e82e8b9894d6c7982dcd25a6dad66400d52735f +100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 a +040000 tree 2a26db49a6962700da5bd4084ae0e5a22d6583ee c +treeH 02c6f058fb950781e5b773c21e4c237db1ff4d5a +040000 tree 4277b6e69d25e5efa77c455340557b384a4c018a a +040000 tree 2a26db49a6962700da5bd4084ae0e5a22d6583ee c +ok 27 - a/b vs a, plus c/d case setup. + +expecting success of 1001.28 'a/b vs a, plus c/d case test.': + read_tree_u_must_succeed -u -m "$treeH" "$treeM" && + git ls-files --stage | tee >treeMcheck.out && + test_cmp treeM.out treeMcheck.out + +ok 28 - a/b vs a, plus c/d case test. + +expecting success of 1001.29 '-m references the correct modified tree': + echo >file-a && + echo >file-b && + git add file-a file-b && + git commit -a -m "test for correct modified tree" && + git branch initial-mod && + echo b >file-b && + git commit -a -m "B" && + echo a >file-a && + git add file-a && + git ls-tree $(git write-tree) file-a >expect && + read_tree_must_succeed -m HEAD initial-mod && + git ls-tree $(git write-tree) file-a >actual && + test_cmp expect actual + +[master (root-commit) 0d16b8a] test for correct modified tree + Author: A U Thor + 4 files changed, 2 insertions(+) + create mode 100644 a + create mode 100644 c/d + create mode 100644 file-a + create mode 100644 file-b +[master 9f64e7b] B + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +ok 29 - -m references the correct modified tree + +# passed all 29 test(s) +1..29 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' *** t1000-read-tree-m-3way.sh *** @@ -27938,6 +28267,28 @@ 1..83 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t1003-read-tree-prefix.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1003-read-tree-prefix/.git/ +expecting success of 1003.1 'setup': + echo hello >one && + git update-index --add one && + tree=$(git write-tree) && + echo tree is $tree + +tree is 700196ec4e5b1c75e9f5481e5b545d78533ff917 +ok 1 - setup + +expecting success of 1003.2 'read-tree --prefix': + git read-tree --prefix=two/ $tree && + git ls-files >actual && + cmp expect actual + +ok 2 - read-tree --prefix + +# passed all 2 test(s) +1..2 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t0410-partial-clone.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0410-partial-clone/.git/ expecting success of 0410.1 'extensions.partialclone without filter': @@ -28827,12 +29178,12 @@ Author: A U Thor 65865e3fad8bccd08b2c629f3f58c6294bdf6c4a a75f34deda336372829f18b2b99616163b28120b -warning: reflog of 'HEAD' references pruned commits warning: reflog of 'refs/heads/master' references pruned commits warning: reflog of 'HEAD' references pruned commits warning: reflog of 'refs/heads/master' references pruned commits warning: reflog of 'HEAD' references pruned commits warning: reflog of 'refs/heads/master' references pruned commits +warning: reflog of 'HEAD' references pruned commits ok 27 - repack -d does not irreversibly delete promisor objects expecting success of 0410.28 'gc stops traversal when a missing but promised object is reached': @@ -28932,503 +29283,6 @@ 1..29 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t1001-read-tree-m-2way.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1001-read-tree-m-2way/.git/ -expecting success of 1001.1 'setup': - echo frotz >frotz && - echo nitfol >nitfol && - cat bozbar-old >bozbar && - echo rezrov >rezrov && - echo yomin >yomin && - git update-index --add nitfol bozbar rezrov && - treeH=$(git write-tree) && - echo treeH $treeH && - git ls-tree $treeH && - - cat bozbar-new >bozbar && - git update-index --add frotz bozbar --force-remove rezrov && - git ls-files --stage >M.out && - treeM=$(git write-tree) && - echo treeM $treeM && - git ls-tree $treeM && - git diff-tree $treeH $treeM - -treeH ca3aa9e6ee09349df7db6f0de15016afcdf5d9e4 -100644 blob 3e8d9abb979a4fbdc93309f457a5496bc41ba6ab bozbar -100644 blob dca6b92303befc93086aa025d90a5facd7eb2812 nitfol -100644 blob 766498d93a4b06057a8e49d23f4068f1170ff38f rezrov -treeM d2c045ead2ecb56f2632385a395918bf21816c12 -100644 blob 346d4e61f111336a1443ef6b2e834aa5b1a7f91a bozbar -100644 blob 8e4020bb5a8d8c873b25de15933e75cc0fc275df frotz -100644 blob dca6b92303befc93086aa025d90a5facd7eb2812 nitfol -:100644 100644 3e8d9abb979a4fbdc93309f457a5496bc41ba6ab 346d4e61f111336a1443ef6b2e834aa5b1a7f91a M bozbar -:000000 100644 0000000000000000000000000000000000000000 8e4020bb5a8d8c873b25de15933e75cc0fc275df A frotz -:100644 000000 766498d93a4b06057a8e49d23f4068f1170ff38f 0000000000000000000000000000000000000000 D rezrov -ok 1 - setup - -expecting success of 1001.2 '1, 2, 3 - no carry forward': - rm -f .git/index && - read_tree_twoway $treeH $treeM && - git ls-files --stage >1-3.out && - test_cmp M.out 1-3.out && - check_cache_at bozbar dirty && - check_cache_at frotz dirty && - check_cache_at nitfol dirty - -100644 346d4e61f111336a1443ef6b2e834aa5b1a7f91a 0 bozbar -100644 8e4020bb5a8d8c873b25de15933e75cc0fc275df 0 frotz -100644 dca6b92303befc93086aa025d90a5facd7eb2812 0 nitfol -bozbar: dirty -frotz: dirty -nitfol: dirty -ok 2 - 1, 2, 3 - no carry forward - -expecting success of 1001.3 '4 - carry forward local addition.': - rm -f .git/index && - read_tree_must_succeed $treeH && - git checkout-index -u -f -q -a && - git update-index --add yomin && - read_tree_twoway $treeH $treeM && - git ls-files --stage >4.out && - test_must_fail git diff --no-index M.out 4.out >4diff.out && - compare_change 4diff.out expected && - check_cache_at yomin clean - -100644 346d4e61f111336a1443ef6b2e834aa5b1a7f91a 0 bozbar -100644 8e4020bb5a8d8c873b25de15933e75cc0fc275df 0 frotz -100644 dca6b92303befc93086aa025d90a5facd7eb2812 0 nitfol -100644 0a41e115ab61be0328a19b29f18cdcb49338d516 0 yomin -yomin: clean -ok 3 - 4 - carry forward local addition. - -expecting success of 1001.4 '5 - carry forward local addition.': - rm -f .git/index && - read_tree_must_succeed $treeH && - git checkout-index -u -f -q -a && - echo yomin >yomin && - git update-index --add yomin && - echo yomin yomin >yomin && - read_tree_twoway $treeH $treeM && - git ls-files --stage >5.out && - test_must_fail git diff --no-index M.out 5.out >5diff.out && - compare_change 5diff.out expected && - check_cache_at yomin dirty - -100644 346d4e61f111336a1443ef6b2e834aa5b1a7f91a 0 bozbar -100644 8e4020bb5a8d8c873b25de15933e75cc0fc275df 0 frotz -100644 dca6b92303befc93086aa025d90a5facd7eb2812 0 nitfol -100644 0a41e115ab61be0328a19b29f18cdcb49338d516 0 yomin -yomin: dirty -ok 4 - 5 - carry forward local addition. - -expecting success of 1001.5 '6 - local addition already has the same.': - rm -f .git/index && - read_tree_must_succeed $treeH && - git checkout-index -u -f -q -a && - git update-index --add frotz && - read_tree_twoway $treeH $treeM && - git ls-files --stage >6.out && - test_cmp M.out 6.out && - check_cache_at frotz clean - -100644 346d4e61f111336a1443ef6b2e834aa5b1a7f91a 0 bozbar -100644 8e4020bb5a8d8c873b25de15933e75cc0fc275df 0 frotz -100644 dca6b92303befc93086aa025d90a5facd7eb2812 0 nitfol -frotz: clean -ok 5 - 6 - local addition already has the same. - -expecting success of 1001.6 '7 - local addition already has the same.': - rm -f .git/index && - read_tree_must_succeed $treeH && - git checkout-index -u -f -q -a && - echo frotz >frotz && - git update-index --add frotz && - echo frotz frotz >frotz && - read_tree_twoway $treeH $treeM && - git ls-files --stage >7.out && - test_cmp M.out 7.out && - check_cache_at frotz dirty - -100644 346d4e61f111336a1443ef6b2e834aa5b1a7f91a 0 bozbar -100644 8e4020bb5a8d8c873b25de15933e75cc0fc275df 0 frotz -100644 dca6b92303befc93086aa025d90a5facd7eb2812 0 nitfol -frotz: dirty -ok 6 - 7 - local addition already has the same. - -expecting success of 1001.7 '8 - conflicting addition.': - rm -f .git/index && - read_tree_must_succeed $treeH && - git checkout-index -u -f -q -a && - echo frotz frotz >frotz && - git update-index --add frotz && - if read_tree_twoway $treeH $treeM; then false; else :; fi - -error: Entry 'frotz' would be overwritten by merge. Cannot merge. -ok 7 - 8 - conflicting addition. - -expecting success of 1001.8 '9 - conflicting addition.': - rm -f .git/index && - read_tree_must_succeed $treeH && - git checkout-index -u -f -q -a && - echo frotz frotz >frotz && - git update-index --add frotz && - echo frotz >frotz && - if read_tree_twoway $treeH $treeM; then false; else :; fi - -error: Entry 'frotz' would be overwritten by merge. Cannot merge. -ok 8 - 9 - conflicting addition. - -expecting success of 1001.9 '10 - path removed.': - rm -f .git/index && - read_tree_must_succeed $treeH && - git checkout-index -u -f -q -a && - echo rezrov >rezrov && - git update-index --add rezrov && - read_tree_twoway $treeH $treeM && - git ls-files --stage >10.out && - test_cmp M.out 10.out - -100644 346d4e61f111336a1443ef6b2e834aa5b1a7f91a 0 bozbar -100644 8e4020bb5a8d8c873b25de15933e75cc0fc275df 0 frotz -100644 dca6b92303befc93086aa025d90a5facd7eb2812 0 nitfol -ok 9 - 10 - path removed. - -expecting success of 1001.10 '11 - dirty path removed.': - rm -f .git/index && - read_tree_must_succeed $treeH && - git checkout-index -u -f -q -a && - echo rezrov >rezrov && - git update-index --add rezrov && - echo rezrov rezrov >rezrov && - if read_tree_twoway $treeH $treeM; then false; else :; fi - -error: Entry 'rezrov' not uptodate. Cannot merge. -ok 10 - 11 - dirty path removed. - -expecting success of 1001.11 '12 - unmatching local changes being removed.': - rm -f .git/index && - read_tree_must_succeed $treeH && - git checkout-index -u -f -q -a && - echo rezrov rezrov >rezrov && - git update-index --add rezrov && - if read_tree_twoway $treeH $treeM; then false; else :; fi - -error: Entry 'rezrov' would be overwritten by merge. Cannot merge. -ok 11 - 12 - unmatching local changes being removed. - -expecting success of 1001.12 '13 - unmatching local changes being removed.': - rm -f .git/index && - read_tree_must_succeed $treeH && - git checkout-index -u -f -q -a && - echo rezrov rezrov >rezrov && - git update-index --add rezrov && - echo rezrov >rezrov && - if read_tree_twoway $treeH $treeM; then false; else :; fi - -error: Entry 'rezrov' would be overwritten by merge. Cannot merge. -ok 12 - 13 - unmatching local changes being removed. - -expecting success of 1001.13 '14 - unchanged in two heads.': - rm -f .git/index && - read_tree_must_succeed $treeH && - git checkout-index -u -f -q -a && - echo nitfol nitfol >nitfol && - git update-index --add nitfol && - read_tree_twoway $treeH $treeM && - git ls-files --stage >14.out && - test_must_fail git diff --no-index M.out 14.out >14diff.out && - compare_change 14diff.out expected && - check_cache_at nitfol clean - -100644 346d4e61f111336a1443ef6b2e834aa5b1a7f91a 0 bozbar -100644 8e4020bb5a8d8c873b25de15933e75cc0fc275df 0 frotz -100644 7e1bf714fb103c778a21dd67411666901222425a 0 nitfol -nitfol: clean -ok 13 - 14 - unchanged in two heads. - -expecting success of 1001.14 '15 - unchanged in two heads.': - rm -f .git/index && - read_tree_must_succeed $treeH && - git checkout-index -u -f -q -a && - echo nitfol nitfol >nitfol && - git update-index --add nitfol && - echo nitfol nitfol nitfol >nitfol && - read_tree_twoway $treeH $treeM && - git ls-files --stage >15.out && - test_must_fail git diff --no-index M.out 15.out >15diff.out && - compare_change 15diff.out expected && - check_cache_at nitfol dirty - -100644 346d4e61f111336a1443ef6b2e834aa5b1a7f91a 0 bozbar -100644 8e4020bb5a8d8c873b25de15933e75cc0fc275df 0 frotz -100644 7e1bf714fb103c778a21dd67411666901222425a 0 nitfol -nitfol: dirty -ok 14 - 15 - unchanged in two heads. - -expecting success of 1001.15 '16 - conflicting local change.': - rm -f .git/index && - read_tree_must_succeed $treeH && - git checkout-index -u -f -q -a && - echo bozbar bozbar >bozbar && - git update-index --add bozbar && - if read_tree_twoway $treeH $treeM; then false; else :; fi - -error: Entry 'bozbar' would be overwritten by merge. Cannot merge. -ok 15 - 16 - conflicting local change. - -expecting success of 1001.16 '17 - conflicting local change.': - rm -f .git/index && - read_tree_must_succeed $treeH && - git checkout-index -u -f -q -a && - echo bozbar bozbar >bozbar && - git update-index --add bozbar && - echo bozbar bozbar bozbar >bozbar && - if read_tree_twoway $treeH $treeM; then false; else :; fi - -error: Entry 'bozbar' would be overwritten by merge. Cannot merge. -ok 16 - 17 - conflicting local change. - -expecting success of 1001.17 '18 - local change already having a good result.': - rm -f .git/index && - read_tree_must_succeed $treeH && - git checkout-index -u -f -q -a && - cat bozbar-new >bozbar && - git update-index --add bozbar && - read_tree_twoway $treeH $treeM && - git ls-files --stage >18.out && - test_cmp M.out 18.out && - check_cache_at bozbar clean - -100644 346d4e61f111336a1443ef6b2e834aa5b1a7f91a 0 bozbar -100644 8e4020bb5a8d8c873b25de15933e75cc0fc275df 0 frotz -100644 dca6b92303befc93086aa025d90a5facd7eb2812 0 nitfol -bozbar: clean -ok 17 - 18 - local change already having a good result. - -expecting success of 1001.18 '19 - local change already having a good result, further modified.': - rm -f .git/index && - read_tree_must_succeed $treeH && - git checkout-index -u -f -q -a && - cat bozbar-new >bozbar && - git update-index --add bozbar && - echo gnusto gnusto >bozbar && - read_tree_twoway $treeH $treeM && - git ls-files --stage >19.out && - test_cmp M.out 19.out && - check_cache_at bozbar dirty - -100644 346d4e61f111336a1443ef6b2e834aa5b1a7f91a 0 bozbar -100644 8e4020bb5a8d8c873b25de15933e75cc0fc275df 0 frotz -100644 dca6b92303befc93086aa025d90a5facd7eb2812 0 nitfol -bozbar: dirty -ok 18 - 19 - local change already having a good result, further modified. - -expecting success of 1001.19 '20 - no local change, use new tree.': - rm -f .git/index && - read_tree_must_succeed $treeH && - git checkout-index -u -f -q -a && - cat bozbar-old >bozbar && - git update-index --add bozbar && - read_tree_twoway $treeH $treeM && - git ls-files --stage >20.out && - test_cmp M.out 20.out && - check_cache_at bozbar dirty - -100644 346d4e61f111336a1443ef6b2e834aa5b1a7f91a 0 bozbar -100644 8e4020bb5a8d8c873b25de15933e75cc0fc275df 0 frotz -100644 dca6b92303befc93086aa025d90a5facd7eb2812 0 nitfol -bozbar: dirty -ok 19 - 20 - no local change, use new tree. - -expecting success of 1001.20 '21 - no local change, dirty cache.': - rm -f .git/index && - read_tree_must_succeed $treeH && - git checkout-index -u -f -q -a && - cat bozbar-old >bozbar && - git update-index --add bozbar && - echo gnusto gnusto >bozbar && - if read_tree_twoway $treeH $treeM; then false; else :; fi - -error: Entry 'bozbar' not uptodate. Cannot merge. -ok 20 - 21 - no local change, dirty cache. - -expecting success of 1001.21 '22 - local change cache updated.': - rm -f .git/index && - read_tree_must_succeed $treeH && - git checkout-index -u -f -q -a && - sed -e "s/such as/SUCH AS/" bozbar-old >bozbar && - git update-index --add bozbar && - if read_tree_twoway $treeH $treeM; then false; else :; fi - -error: Entry 'bozbar' would be overwritten by merge. Cannot merge. -ok 21 - 22 - local change cache updated. - -expecting success of 1001.22 'DF vs DF/DF case setup.': - rm -f .git/index && - echo DF >DF && - git update-index --add DF && - treeDF=$(git write-tree) && - echo treeDF $treeDF && - git ls-tree $treeDF && - - rm -f DF && - mkdir DF && - echo DF/DF >DF/DF && - git update-index --add --remove DF DF/DF && - treeDFDF=$(git write-tree) && - echo treeDFDF $treeDFDF && - git ls-tree $treeDFDF && - git ls-files --stage >DFDF.out - -treeDF 6bf22db9043f2b5821c019d0ce0f2605421affcb -100644 blob 052efc3abbc31348f7abd34535b1953d38273257 DF -treeDFDF c38e296263d024b0f48c4a728d293232ac6c5443 -040000 tree 90bbead36f4d6a7c325fd450e6cfbcc7479d421a DF -ok 22 - DF vs DF/DF case setup. - -expecting success of 1001.23 'DF vs DF/DF case test.': - rm -f .git/index && - rm -fr DF && - echo DF >DF && - git update-index --add DF && - read_tree_twoway $treeDF $treeDFDF && - git ls-files --stage >DFDFcheck.out && - test_cmp DFDF.out DFDFcheck.out && - check_cache_at DF/DF dirty && - : - -100644 b90ea14b2dd74b6f377c10870b3757344bbe077c 0 DF/DF -DF/DF: dirty -ok 23 - DF vs DF/DF case test. - -expecting success of 1001.24 'a/b (untracked) vs a case setup.': - rm -f .git/index && - : >a && - git update-index --add a && - treeM=$(git write-tree) && - echo treeM $treeM && - git ls-tree $treeM && - git ls-files --stage >treeM.out && - - rm -f a && - git update-index --remove a && - mkdir a && - : >a/b && - treeH=$(git write-tree) && - echo treeH $treeH && - git ls-tree $treeH - -treeM 496d6428b9cf92981dc9495211e6e1120fb6f2ba -100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 a -treeH 4b825dc642cb6eb9a060e54bf8d69288fbee4904 -ok 24 - a/b (untracked) vs a case setup. - -expecting success of 1001.25 'a/b (untracked) vs a, plus c/d case test.': - read_tree_u_must_fail -u -m "$treeH" "$treeM" && - git ls-files --stage && - test -f a/b - -error: Updating 'a' would lose untracked files in it -error: Updating 'a' would lose untracked files in it -ok 25 - a/b (untracked) vs a, plus c/d case test. - -expecting success of 1001.26 'read-tree supports the super-prefix': - cat <<-EOF >expect && - error: Updating 'fictional/a' would lose untracked files in it - EOF - test_must_fail git --super-prefix fictional/ read-tree -u -m "$treeH" "$treeM" 2>actual && - test_cmp expect actual - -ok 26 - read-tree supports the super-prefix - -expecting success of 1001.27 'a/b vs a, plus c/d case setup.': - rm -f .git/index && - rm -fr a && - : >a && - mkdir c && - : >c/d && - git update-index --add a c/d && - treeM=$(git write-tree) && - echo treeM $treeM && - git ls-tree $treeM && - git ls-files --stage >treeM.out && - - rm -f a && - mkdir a && - : >a/b && - git update-index --add --remove a a/b && - treeH=$(git write-tree) && - echo treeH $treeH && - git ls-tree $treeH - -treeM 3e82e8b9894d6c7982dcd25a6dad66400d52735f -100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 a -040000 tree 2a26db49a6962700da5bd4084ae0e5a22d6583ee c -treeH 02c6f058fb950781e5b773c21e4c237db1ff4d5a -040000 tree 4277b6e69d25e5efa77c455340557b384a4c018a a -040000 tree 2a26db49a6962700da5bd4084ae0e5a22d6583ee c -ok 27 - a/b vs a, plus c/d case setup. - -expecting success of 1001.28 'a/b vs a, plus c/d case test.': - read_tree_u_must_succeed -u -m "$treeH" "$treeM" && - git ls-files --stage | tee >treeMcheck.out && - test_cmp treeM.out treeMcheck.out - -ok 28 - a/b vs a, plus c/d case test. - -expecting success of 1001.29 '-m references the correct modified tree': - echo >file-a && - echo >file-b && - git add file-a file-b && - git commit -a -m "test for correct modified tree" && - git branch initial-mod && - echo b >file-b && - git commit -a -m "B" && - echo a >file-a && - git add file-a && - git ls-tree $(git write-tree) file-a >expect && - read_tree_must_succeed -m HEAD initial-mod && - git ls-tree $(git write-tree) file-a >actual && - test_cmp expect actual - -[master (root-commit) 0d16b8a] test for correct modified tree - Author: A U Thor - 4 files changed, 2 insertions(+) - create mode 100644 a - create mode 100644 c/d - create mode 100644 file-a - create mode 100644 file-b -[master 9f64e7b] B - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -ok 29 - -m references the correct modified tree - -# passed all 29 test(s) -1..29 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1003-read-tree-prefix.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1003-read-tree-prefix/.git/ -expecting success of 1003.1 'setup': - echo hello >one && - git update-index --add one && - tree=$(git write-tree) && - echo tree is $tree - -tree is 700196ec4e5b1c75e9f5481e5b545d78533ff917 -ok 1 - setup - -expecting success of 1003.2 'read-tree --prefix': - git read-tree --prefix=two/ $tree && - git ls-files >actual && - cmp expect actual - -ok 2 - read-tree --prefix - -# passed all 2 test(s) -1..2 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' *** t1002-read-tree-m-u-2way.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1002-read-tree-m-u-2way/.git/ expecting success of 1002.1 'setup': echo frotz >frotz && @@ -30263,6 +30117,80 @@ 1..7 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t1008-read-tree-overlay.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1008-read-tree-overlay/.git/ +expecting success of 1008.1 'setup': + echo one >a && + git add a && + git commit -m initial && + git tag initial && + echo two >b && + git add b && + git commit -m second && + git checkout -b side initial && + echo three >a && + mkdir b && + echo four >b/c && + git add b/c && + git commit -m third + +[master (root-commit) 4d54ff5] initial + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 a +[master a9fb064] second + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 b +Switched to a new branch 'side' +[side 2be041c] third + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 b/c +ok 1 - setup + +expecting success of 1008.2 'multi-read': + read_tree_must_succeed initial master side && + test_write_lines a b/c >expect && + git ls-files >actual && + test_cmp expect actual + +ok 2 - multi-read + +# passed all 2 test(s) +1..2 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t1009-read-tree-new-index.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1009-read-tree-new-index/.git/ +expecting success of 1009.1 'setup': + echo one >a && + git add a && + git commit -m initial + +[master (root-commit) 4d54ff5] initial + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 a +ok 1 - setup + +expecting success of 1009.2 'non-existent index file': + rm -f new-index && + GIT_INDEX_FILE=new-index git read-tree master + +ok 2 - non-existent index file + +expecting success of 1009.3 'empty index file': + rm -f new-index && + > new-index && + GIT_INDEX_FILE=new-index git read-tree master + +ok 3 - empty index file + +# passed all 3 test(s) +1..3 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t1007-hash-object.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1007-hash-object/.git/ expecting success of 1007.1 'setup': @@ -30620,80 +30548,6 @@ 1..39 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t1008-read-tree-overlay.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1008-read-tree-overlay/.git/ -expecting success of 1008.1 'setup': - echo one >a && - git add a && - git commit -m initial && - git tag initial && - echo two >b && - git add b && - git commit -m second && - git checkout -b side initial && - echo three >a && - mkdir b && - echo four >b/c && - git add b/c && - git commit -m third - -[master (root-commit) 4d54ff5] initial - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 a -[master a9fb064] second - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 b -Switched to a new branch 'side' -[side 2be041c] third - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 b/c -ok 1 - setup - -expecting success of 1008.2 'multi-read': - read_tree_must_succeed initial master side && - test_write_lines a b/c >expect && - git ls-files >actual && - test_cmp expect actual - -ok 2 - multi-read - -# passed all 2 test(s) -1..2 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1009-read-tree-new-index.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1009-read-tree-new-index/.git/ -expecting success of 1009.1 'setup': - echo one >a && - git add a && - git commit -m initial - -[master (root-commit) 4d54ff5] initial - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 a -ok 1 - setup - -expecting success of 1009.2 'non-existent index file': - rm -f new-index && - GIT_INDEX_FILE=new-index git read-tree master - -ok 2 - non-existent index file - -expecting success of 1009.3 'empty index file': - rm -f new-index && - > new-index && - GIT_INDEX_FILE=new-index git read-tree master - -ok 3 - empty index file - -# passed all 3 test(s) -1..3 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' *** t1010-mktree.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1010-mktree/.git/ expecting success of 1010.1 'setup': @@ -30772,14 +30626,442 @@ 1..8 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t1006-cat-file.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1006-cat-file/.git/ -expecting success of 1006.1 'setup': - echo_without_newline "$hello_content" > hello && - git update-index --add hello - -ok 1 - setup - +*** t1011-read-tree-sparse-checkout.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1011-read-tree-sparse-checkout/.git/ +expecting success of 1011.1 'setup': + test_commit init && + echo modified >>init.t && + + cat >expected <<-EOF && + 100644 $(git hash-object init.t) 0 init.t + 100644 $EMPTY_BLOB 0 sub/added + 100644 $EMPTY_BLOB 0 sub/addedtoo + 100644 $EMPTY_BLOB 0 subsub/added + EOF + cat >expected.swt <<-\EOF && + H init.t + H sub/added + H sub/addedtoo + H subsub/added + EOF + + mkdir sub subsub && + touch sub/added sub/addedtoo subsub/added && + git add init.t sub/added sub/addedtoo subsub/added && + git commit -m "modified and added" && + git tag top && + git rm sub/added && + git commit -m removed && + git tag removed && + git checkout top && + git ls-files --stage >result && + test_cmp expected result + +[master (root-commit) 2519212] init + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 init.t +[master 9598e22] modified and added + Author: A U Thor + 4 files changed, 1 insertion(+) + create mode 100644 sub/added + create mode 100644 sub/addedtoo + create mode 100644 subsub/added +rm 'sub/added' +[master de70956] removed + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + delete mode 100644 sub/added +Note: switching to 'top'. + +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. + +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: + + git switch -c + +Or undo this operation with: + + git switch - + +Turn off this advice by setting config variable advice.detachedHead to false + +HEAD is now at 9598e22 modified and added +ok 1 - setup + +expecting success of 1011.2 'read-tree without .git/info/sparse-checkout': + read_tree_u_must_succeed -m -u HEAD && + git ls-files --stage >result && + test_cmp expected result && + git ls-files -t >result && + test_cmp expected.swt result + +ok 2 - read-tree without .git/info/sparse-checkout + +expecting success of 1011.3 'read-tree with .git/info/sparse-checkout but disabled': + echo >.git/info/sparse-checkout && + read_tree_u_must_succeed -m -u HEAD && + git ls-files -t >result && + test_cmp expected.swt result && + test -f init.t && + test -f sub/added + +ok 3 - read-tree with .git/info/sparse-checkout but disabled + +expecting success of 1011.4 'read-tree --no-sparse-checkout with empty .git/info/sparse-checkout and enabled': + git config core.sparsecheckout true && + echo >.git/info/sparse-checkout && + read_tree_u_must_succeed --no-sparse-checkout -m -u HEAD && + git ls-files -t >result && + test_cmp expected.swt result && + test -f init.t && + test -f sub/added + +ok 4 - read-tree --no-sparse-checkout with empty .git/info/sparse-checkout and enabled + +expecting success of 1011.5 'read-tree with empty .git/info/sparse-checkout': + git config core.sparsecheckout true && + echo >.git/info/sparse-checkout && + read_tree_u_must_succeed -m -u HEAD && + git ls-files --stage >result && + test_cmp expected result && + git ls-files -t >result && + cat >expected.swt <<-\EOF && + S init.t + S sub/added + S sub/addedtoo + S subsub/added + EOF + test_cmp expected.swt result && + ! test -f init.t && + ! test -f sub/added + +ok 5 - read-tree with empty .git/info/sparse-checkout + +expecting success of 1011.6 'match directories with trailing slash': + cat >expected.swt-noinit <<-\EOF && + S init.t + H sub/added + H sub/addedtoo + S subsub/added + EOF + + echo sub/ > .git/info/sparse-checkout && + read_tree_u_must_succeed -m -u HEAD && + git ls-files -t > result && + test_cmp expected.swt-noinit result && + test ! -f init.t && + test -f sub/added + +ok 6 - match directories with trailing slash + +expecting success of 1011.7 'match directories without trailing slash': + echo sub >.git/info/sparse-checkout && + read_tree_u_must_succeed -m -u HEAD && + git ls-files -t >result && + test_cmp expected.swt-noinit result && + test ! -f init.t && + test -f sub/added + +ok 7 - match directories without trailing slash + +expecting success of 1011.8 'match directories with negated patterns': + cat >expected.swt-negation <<\EOF && +S init.t +S sub/added +H sub/addedtoo +S subsub/added +EOF + + cat >.git/info/sparse-checkout <<\EOF && +sub +!sub/added +EOF + git read-tree -m -u HEAD && + git ls-files -t >result && + test_cmp expected.swt-negation result && + test ! -f init.t && + test ! -f sub/added && + test -f sub/addedtoo + +ok 8 - match directories with negated patterns + +expecting success of 1011.9 'match directories with negated patterns (2)': + cat >expected.swt-negation2 <<\EOF && +H init.t +H sub/added +S sub/addedtoo +H subsub/added +EOF + + cat >.git/info/sparse-checkout <<\EOF && +/* +!sub +sub/added +EOF + git read-tree -m -u HEAD && + git ls-files -t >result && + test_cmp expected.swt-negation2 result && + test -f init.t && + test -f sub/added && + test ! -f sub/addedtoo + +ok 9 - match directories with negated patterns (2) + +expecting success of 1011.10 'match directory pattern': + echo "s?b" >.git/info/sparse-checkout && + read_tree_u_must_succeed -m -u HEAD && + git ls-files -t >result && + test_cmp expected.swt-noinit result && + test ! -f init.t && + test -f sub/added + +ok 10 - match directory pattern + +expecting success of 1011.11 'checkout area changes': + cat >expected.swt-nosub <<-\EOF && + H init.t + S sub/added + S sub/addedtoo + S subsub/added + EOF + + echo init.t >.git/info/sparse-checkout && + read_tree_u_must_succeed -m -u HEAD && + git ls-files -t >result && + test_cmp expected.swt-nosub result && + test -f init.t && + test ! -f sub/added + +ok 11 - checkout area changes + +expecting success of 1011.12 'read-tree updates worktree, absent case': + echo sub/added >.git/info/sparse-checkout && + git checkout -f top && + read_tree_u_must_succeed -m -u HEAD^ && + test ! -f init.t + +HEAD is now at 9598e22 modified and added +ok 12 - read-tree updates worktree, absent case + +expecting success of 1011.13 'read-tree updates worktree, dirty case': + echo sub/added >.git/info/sparse-checkout && + git checkout -f top && + echo dirty >init.t && + read_tree_u_must_succeed -m -u HEAD^ && + grep -q dirty init.t && + rm init.t + +HEAD is now at 9598e22 modified and added +ok 13 - read-tree updates worktree, dirty case + +expecting success of 1011.14 'read-tree removes worktree, dirty case': + echo init.t >.git/info/sparse-checkout && + git checkout -f top && + echo dirty >added && + read_tree_u_must_succeed -m -u HEAD^ && + grep -q dirty added + +HEAD is now at 9598e22 modified and added +ok 14 - read-tree removes worktree, dirty case + +expecting success of 1011.15 'read-tree adds to worktree, absent case': + echo init.t >.git/info/sparse-checkout && + git checkout -f removed && + read_tree_u_must_succeed -u -m HEAD^ && + test ! -f sub/added + +Previous HEAD position was 9598e22 modified and added +HEAD is now at de70956 removed +ok 15 - read-tree adds to worktree, absent case + +expecting success of 1011.16 'read-tree adds to worktree, dirty case': + echo init.t >.git/info/sparse-checkout && + git checkout -f removed && + mkdir sub && + echo dirty >sub/added && + read_tree_u_must_succeed -u -m HEAD^ && + grep -q dirty sub/added + +HEAD is now at de70956 removed +ok 16 - read-tree adds to worktree, dirty case + +expecting success of 1011.17 'index removal and worktree narrowing at the same time': + echo init.t >.git/info/sparse-checkout && + echo sub/added >>.git/info/sparse-checkout && + git checkout -f top && + echo init.t >.git/info/sparse-checkout && + git checkout removed && + git ls-files sub/added >result && + test ! -f sub/added && + test_must_be_empty result + +Previous HEAD position was de70956 removed +HEAD is now at 9598e22 modified and added +Previous HEAD position was 9598e22 modified and added +HEAD is now at de70956 removed +ok 17 - index removal and worktree narrowing at the same time + +expecting success of 1011.18 'read-tree --reset removes outside worktree': + echo init.t >.git/info/sparse-checkout && + git checkout -f top && + git reset --hard removed && + git ls-files sub/added >result && + test_must_be_empty result + +Previous HEAD position was de70956 removed +HEAD is now at 9598e22 modified and added +HEAD is now at de70956 removed +ok 18 - read-tree --reset removes outside worktree + +expecting success of 1011.19 'print warnings when some worktree updates disabled': + echo sub >.git/info/sparse-checkout && + git checkout -f init && + mkdir sub && + touch sub/added sub/addedtoo && + # Use -q to suppress "Previous HEAD position" and "Head is now at" msgs + git checkout -q top 2>actual && + cat >expected <<\EOF && +warning: The following paths were already present and thus not updated despite sparse patterns: + sub/added + sub/addedtoo + +After fixing the above paths, you may want to run `git sparse-checkout reapply`. +EOF + test_i18ncmp expected actual + +Previous HEAD position was de70956 removed +HEAD is now at 2519212 init +checking prerequisite: C_LOCALE_OUTPUT + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false + +) +prerequisite C_LOCALE_OUTPUT ok +ok 19 - print warnings when some worktree updates disabled + +expecting success of 1011.20 'checkout without --ignore-skip-worktree-bits': + echo "*" >.git/info/sparse-checkout && + git checkout -f top && + test_path_is_file init.t && + echo sub >.git/info/sparse-checkout && + git checkout && + echo modified >> sub/added && + git checkout . && + test_path_is_missing init.t && + git diff --exit-code HEAD + +HEAD is now at 9598e22 modified and added +Updated 1 path from the index +ok 20 - checkout without --ignore-skip-worktree-bits + +expecting success of 1011.21 'checkout with --ignore-skip-worktree-bits': + echo "*" >.git/info/sparse-checkout && + git checkout -f top && + test_path_is_file init.t && + echo sub >.git/info/sparse-checkout && + git checkout && + echo modified >> sub/added && + git checkout --ignore-skip-worktree-bits . && + test_path_is_file init.t && + git diff --exit-code HEAD + +HEAD is now at 9598e22 modified and added +Updated 3 paths from the index +ok 21 - checkout with --ignore-skip-worktree-bits + +# passed all 21 test(s) +1..21 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t1012-read-tree-df.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1012-read-tree-df/.git/ +expecting success of 1012.1 'setup': + maketree O-000 a/b-2/c/d a/b/c/d a/x && + maketree A-000 a/b-2/c/d a/b/c/d a/x && + maketree A-001 a/b-2/c/d a/b/c/d a/b/c/e a/x && + maketree B-000 a/b-2/c/d a/b a/x && + + maketree O-010 t-0 t/1 t/2 t=3 && + maketree A-010 t-0 t t=3 && + maketree B-010 t/1: t=3: && + + maketree O-020 ds/dma/ioat.c ds/dma/ioat_dca.c && + maketree A-020 ds/dma/ioat/Makefile ds/dma/ioat/registers.h && + : + +ok 1 - setup + +expecting success of 1012.2 '3-way (1)': + settree A-000 && + read_tree_u_must_succeed -m -u O-000 A-000 B-000 && + checkindex <<-EOF + 3 a/b + 0 a/b-2/c/d + 1 a/b/c/d + 2 a/b/c/d + 0 a/x + EOF + +ok 2 - 3-way (1) + +expecting success of 1012.3 '3-way (2)': + settree A-001 && + read_tree_u_must_succeed -m -u O-000 A-001 B-000 && + checkindex <<-EOF + 3 a/b + 0 a/b-2/c/d + 1 a/b/c/d + 2 a/b/c/d + 2 a/b/c/e + 0 a/x + EOF + +ok 3 - 3-way (2) + +expecting success of 1012.4 '3-way (3)': + settree A-010 && + read_tree_u_must_succeed -m -u O-010 A-010 B-010 && + checkindex <<-EOF + 2 t + 1 t-0 + 2 t-0 + 1 t/1 + 3 t/1 + 1 t/2 + 0 t=3 + EOF + +ok 4 - 3-way (3) + +expecting success of 1012.5 '2-way (1)': + settree O-020 && + read_tree_u_must_succeed -m -u O-020 A-020 && + checkindex <<-EOF + 0 ds/dma/ioat/Makefile + 0 ds/dma/ioat/registers.h + EOF + +ok 5 - 2-way (1) + +# passed all 5 test(s) +1..5 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t1006-cat-file.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1006-cat-file/.git/ +expecting success of 1006.1 'setup': + echo_without_newline "$hello_content" > hello && + git update-index --add hello + +ok 1 - setup + expecting success of 1006.2 'blob exists': git cat-file -e $sha1 @@ -32227,434 +32509,6 @@ 1..111 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t1011-read-tree-sparse-checkout.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1011-read-tree-sparse-checkout/.git/ -expecting success of 1011.1 'setup': - test_commit init && - echo modified >>init.t && - - cat >expected <<-EOF && - 100644 $(git hash-object init.t) 0 init.t - 100644 $EMPTY_BLOB 0 sub/added - 100644 $EMPTY_BLOB 0 sub/addedtoo - 100644 $EMPTY_BLOB 0 subsub/added - EOF - cat >expected.swt <<-\EOF && - H init.t - H sub/added - H sub/addedtoo - H subsub/added - EOF - - mkdir sub subsub && - touch sub/added sub/addedtoo subsub/added && - git add init.t sub/added sub/addedtoo subsub/added && - git commit -m "modified and added" && - git tag top && - git rm sub/added && - git commit -m removed && - git tag removed && - git checkout top && - git ls-files --stage >result && - test_cmp expected result - -[master (root-commit) 2519212] init - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 init.t -[master 9598e22] modified and added - Author: A U Thor - 4 files changed, 1 insertion(+) - create mode 100644 sub/added - create mode 100644 sub/addedtoo - create mode 100644 subsub/added -rm 'sub/added' -[master de70956] removed - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - delete mode 100644 sub/added -Note: switching to 'top'. - -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. - -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: - - git switch -c - -Or undo this operation with: - - git switch - - -Turn off this advice by setting config variable advice.detachedHead to false - -HEAD is now at 9598e22 modified and added -ok 1 - setup - -expecting success of 1011.2 'read-tree without .git/info/sparse-checkout': - read_tree_u_must_succeed -m -u HEAD && - git ls-files --stage >result && - test_cmp expected result && - git ls-files -t >result && - test_cmp expected.swt result - -ok 2 - read-tree without .git/info/sparse-checkout - -expecting success of 1011.3 'read-tree with .git/info/sparse-checkout but disabled': - echo >.git/info/sparse-checkout && - read_tree_u_must_succeed -m -u HEAD && - git ls-files -t >result && - test_cmp expected.swt result && - test -f init.t && - test -f sub/added - -ok 3 - read-tree with .git/info/sparse-checkout but disabled - -expecting success of 1011.4 'read-tree --no-sparse-checkout with empty .git/info/sparse-checkout and enabled': - git config core.sparsecheckout true && - echo >.git/info/sparse-checkout && - read_tree_u_must_succeed --no-sparse-checkout -m -u HEAD && - git ls-files -t >result && - test_cmp expected.swt result && - test -f init.t && - test -f sub/added - -ok 4 - read-tree --no-sparse-checkout with empty .git/info/sparse-checkout and enabled - -expecting success of 1011.5 'read-tree with empty .git/info/sparse-checkout': - git config core.sparsecheckout true && - echo >.git/info/sparse-checkout && - read_tree_u_must_succeed -m -u HEAD && - git ls-files --stage >result && - test_cmp expected result && - git ls-files -t >result && - cat >expected.swt <<-\EOF && - S init.t - S sub/added - S sub/addedtoo - S subsub/added - EOF - test_cmp expected.swt result && - ! test -f init.t && - ! test -f sub/added - -ok 5 - read-tree with empty .git/info/sparse-checkout - -expecting success of 1011.6 'match directories with trailing slash': - cat >expected.swt-noinit <<-\EOF && - S init.t - H sub/added - H sub/addedtoo - S subsub/added - EOF - - echo sub/ > .git/info/sparse-checkout && - read_tree_u_must_succeed -m -u HEAD && - git ls-files -t > result && - test_cmp expected.swt-noinit result && - test ! -f init.t && - test -f sub/added - -ok 6 - match directories with trailing slash - -expecting success of 1011.7 'match directories without trailing slash': - echo sub >.git/info/sparse-checkout && - read_tree_u_must_succeed -m -u HEAD && - git ls-files -t >result && - test_cmp expected.swt-noinit result && - test ! -f init.t && - test -f sub/added - -ok 7 - match directories without trailing slash - -expecting success of 1011.8 'match directories with negated patterns': - cat >expected.swt-negation <<\EOF && -S init.t -S sub/added -H sub/addedtoo -S subsub/added -EOF - - cat >.git/info/sparse-checkout <<\EOF && -sub -!sub/added -EOF - git read-tree -m -u HEAD && - git ls-files -t >result && - test_cmp expected.swt-negation result && - test ! -f init.t && - test ! -f sub/added && - test -f sub/addedtoo - -ok 8 - match directories with negated patterns - -expecting success of 1011.9 'match directories with negated patterns (2)': - cat >expected.swt-negation2 <<\EOF && -H init.t -H sub/added -S sub/addedtoo -H subsub/added -EOF - - cat >.git/info/sparse-checkout <<\EOF && -/* -!sub -sub/added -EOF - git read-tree -m -u HEAD && - git ls-files -t >result && - test_cmp expected.swt-negation2 result && - test -f init.t && - test -f sub/added && - test ! -f sub/addedtoo - -ok 9 - match directories with negated patterns (2) - -expecting success of 1011.10 'match directory pattern': - echo "s?b" >.git/info/sparse-checkout && - read_tree_u_must_succeed -m -u HEAD && - git ls-files -t >result && - test_cmp expected.swt-noinit result && - test ! -f init.t && - test -f sub/added - -ok 10 - match directory pattern - -expecting success of 1011.11 'checkout area changes': - cat >expected.swt-nosub <<-\EOF && - H init.t - S sub/added - S sub/addedtoo - S subsub/added - EOF - - echo init.t >.git/info/sparse-checkout && - read_tree_u_must_succeed -m -u HEAD && - git ls-files -t >result && - test_cmp expected.swt-nosub result && - test -f init.t && - test ! -f sub/added - -ok 11 - checkout area changes - -expecting success of 1011.12 'read-tree updates worktree, absent case': - echo sub/added >.git/info/sparse-checkout && - git checkout -f top && - read_tree_u_must_succeed -m -u HEAD^ && - test ! -f init.t - -HEAD is now at 9598e22 modified and added -ok 12 - read-tree updates worktree, absent case - -expecting success of 1011.13 'read-tree updates worktree, dirty case': - echo sub/added >.git/info/sparse-checkout && - git checkout -f top && - echo dirty >init.t && - read_tree_u_must_succeed -m -u HEAD^ && - grep -q dirty init.t && - rm init.t - -HEAD is now at 9598e22 modified and added -ok 13 - read-tree updates worktree, dirty case - -expecting success of 1011.14 'read-tree removes worktree, dirty case': - echo init.t >.git/info/sparse-checkout && - git checkout -f top && - echo dirty >added && - read_tree_u_must_succeed -m -u HEAD^ && - grep -q dirty added - -HEAD is now at 9598e22 modified and added -ok 14 - read-tree removes worktree, dirty case - -expecting success of 1011.15 'read-tree adds to worktree, absent case': - echo init.t >.git/info/sparse-checkout && - git checkout -f removed && - read_tree_u_must_succeed -u -m HEAD^ && - test ! -f sub/added - -Previous HEAD position was 9598e22 modified and added -HEAD is now at de70956 removed -ok 15 - read-tree adds to worktree, absent case - -expecting success of 1011.16 'read-tree adds to worktree, dirty case': - echo init.t >.git/info/sparse-checkout && - git checkout -f removed && - mkdir sub && - echo dirty >sub/added && - read_tree_u_must_succeed -u -m HEAD^ && - grep -q dirty sub/added - -HEAD is now at de70956 removed -ok 16 - read-tree adds to worktree, dirty case - -expecting success of 1011.17 'index removal and worktree narrowing at the same time': - echo init.t >.git/info/sparse-checkout && - echo sub/added >>.git/info/sparse-checkout && - git checkout -f top && - echo init.t >.git/info/sparse-checkout && - git checkout removed && - git ls-files sub/added >result && - test ! -f sub/added && - test_must_be_empty result - -Previous HEAD position was de70956 removed -HEAD is now at 9598e22 modified and added -Previous HEAD position was 9598e22 modified and added -HEAD is now at de70956 removed -ok 17 - index removal and worktree narrowing at the same time - -expecting success of 1011.18 'read-tree --reset removes outside worktree': - echo init.t >.git/info/sparse-checkout && - git checkout -f top && - git reset --hard removed && - git ls-files sub/added >result && - test_must_be_empty result - -Previous HEAD position was de70956 removed -HEAD is now at 9598e22 modified and added -HEAD is now at de70956 removed -ok 18 - read-tree --reset removes outside worktree - -expecting success of 1011.19 'print warnings when some worktree updates disabled': - echo sub >.git/info/sparse-checkout && - git checkout -f init && - mkdir sub && - touch sub/added sub/addedtoo && - # Use -q to suppress "Previous HEAD position" and "Head is now at" msgs - git checkout -q top 2>actual && - cat >expected <<\EOF && -warning: The following paths were already present and thus not updated despite sparse patterns: - sub/added - sub/addedtoo - -After fixing the above paths, you may want to run `git sparse-checkout reapply`. -EOF - test_i18ncmp expected actual - -Previous HEAD position was de70956 removed -HEAD is now at 2519212 init -checking prerequisite: C_LOCALE_OUTPUT - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false - -) -prerequisite C_LOCALE_OUTPUT ok -ok 19 - print warnings when some worktree updates disabled - -expecting success of 1011.20 'checkout without --ignore-skip-worktree-bits': - echo "*" >.git/info/sparse-checkout && - git checkout -f top && - test_path_is_file init.t && - echo sub >.git/info/sparse-checkout && - git checkout && - echo modified >> sub/added && - git checkout . && - test_path_is_missing init.t && - git diff --exit-code HEAD - -HEAD is now at 9598e22 modified and added -Updated 1 path from the index -ok 20 - checkout without --ignore-skip-worktree-bits - -expecting success of 1011.21 'checkout with --ignore-skip-worktree-bits': - echo "*" >.git/info/sparse-checkout && - git checkout -f top && - test_path_is_file init.t && - echo sub >.git/info/sparse-checkout && - git checkout && - echo modified >> sub/added && - git checkout --ignore-skip-worktree-bits . && - test_path_is_file init.t && - git diff --exit-code HEAD - -HEAD is now at 9598e22 modified and added -Updated 3 paths from the index -ok 21 - checkout with --ignore-skip-worktree-bits - -# passed all 21 test(s) -1..21 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1012-read-tree-df.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1012-read-tree-df/.git/ -expecting success of 1012.1 'setup': - maketree O-000 a/b-2/c/d a/b/c/d a/x && - maketree A-000 a/b-2/c/d a/b/c/d a/x && - maketree A-001 a/b-2/c/d a/b/c/d a/b/c/e a/x && - maketree B-000 a/b-2/c/d a/b a/x && - - maketree O-010 t-0 t/1 t/2 t=3 && - maketree A-010 t-0 t t=3 && - maketree B-010 t/1: t=3: && - - maketree O-020 ds/dma/ioat.c ds/dma/ioat_dca.c && - maketree A-020 ds/dma/ioat/Makefile ds/dma/ioat/registers.h && - : - -ok 1 - setup - -expecting success of 1012.2 '3-way (1)': - settree A-000 && - read_tree_u_must_succeed -m -u O-000 A-000 B-000 && - checkindex <<-EOF - 3 a/b - 0 a/b-2/c/d - 1 a/b/c/d - 2 a/b/c/d - 0 a/x - EOF - -ok 2 - 3-way (1) - -expecting success of 1012.3 '3-way (2)': - settree A-001 && - read_tree_u_must_succeed -m -u O-000 A-001 B-000 && - checkindex <<-EOF - 3 a/b - 0 a/b-2/c/d - 1 a/b/c/d - 2 a/b/c/d - 2 a/b/c/e - 0 a/x - EOF - -ok 3 - 3-way (2) - -expecting success of 1012.4 '3-way (3)': - settree A-010 && - read_tree_u_must_succeed -m -u O-010 A-010 B-010 && - checkindex <<-EOF - 2 t - 1 t-0 - 2 t-0 - 1 t/1 - 3 t/1 - 1 t/2 - 0 t=3 - EOF - -ok 4 - 3-way (3) - -expecting success of 1012.5 '2-way (1)': - settree O-020 && - read_tree_u_must_succeed -m -u O-020 A-020 && - checkindex <<-EOF - 0 ds/dma/ioat/Makefile - 0 ds/dma/ioat/registers.h - EOF - -ok 5 - 2-way (1) - -# passed all 5 test(s) -1..5 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' *** t1014-read-tree-confusing.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1014-read-tree-confusing/.git/ expecting success of 1014.1 'create base tree': @@ -33154,6 +33008,101 @@ 1..6 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t1021-rerere-in-workdir.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1021-rerere-in-workdir/.git/ +checking prerequisite: SYMLINKS + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && + # test whether the filesystem supports symbolic links + ln -s x y && test -h y + +) +prerequisite SYMLINKS ok +expecting success of 1021.1 'setup': + git config rerere.enabled true && + >world && + git add world && + test_tick && + git commit -m initial && + + echo hello >world && + test_tick && + git commit -a -m hello && + + git checkout -b side HEAD^ && + echo goodbye >world && + test_tick && + git commit -a -m goodbye && + + git checkout master + +[master (root-commit) 21975ff] initial + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 world +[master 02943d2] hello + Author: A U Thor + 1 file changed, 1 insertion(+) +Switched to a new branch 'side' +[side 5611ff9] goodbye + Author: A U Thor + 1 file changed, 1 insertion(+) +Switched to branch 'master' +ok 1 - setup + +expecting success of 1021.2 'rerere in workdir': + rm -rf .git/rr-cache && + "$SHELL_PATH" "$TEST_DIRECTORY/../contrib/workdir/git-new-workdir" . work && + ( + cd work && + test_must_fail git merge side && + git rerere status >actual && + echo world >expect && + test_cmp expect actual + ) + +Merging: +02943d2 hello +virtual side +found 1 common ancestor: +21975ff initial +Auto-merging world +CONFLICT (content): Merge conflict in world +Recorded preimage for 'world' +Automatic merge failed; fix conflicts and then commit the result. +ok 2 - rerere in workdir + +checking known breakage of 1021.3 'rerere in workdir (relative)': + rm -rf .git/rr-cache && + "$SHELL_PATH" "$TEST_DIRECTORY/../contrib/workdir/git-new-workdir" . krow && + ( + cd krow && + rm -f .git/rr-cache && + ln -s ../.git/rr-cache .git/rr-cache && + test_must_fail git merge side && + git rerere status >actual && + echo world >expect && + test_cmp expect actual + ) + +Merging: +02943d2 hello +virtual side +found 1 common ancestor: +21975ff initial +Auto-merging world +CONFLICT (content): Merge conflict in world +fatal: could not create directory '.git/rr-cache' +fatal: could not create directory '.git/rr-cache' +not ok 3 - rerere in workdir (relative) # TODO known breakage + +# still have 1 known breakage(s) +# passed all remaining 2 test(s) +1..3 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t1020-subdirectory.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1020-subdirectory/.git/ expecting success of 1020.1 'setup': @@ -33451,407 +33400,6 @@ 1..15 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t1021-rerere-in-workdir.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1021-rerere-in-workdir/.git/ -checking prerequisite: SYMLINKS - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && - # test whether the filesystem supports symbolic links - ln -s x y && test -h y - -) -prerequisite SYMLINKS ok -expecting success of 1021.1 'setup': - git config rerere.enabled true && - >world && - git add world && - test_tick && - git commit -m initial && - - echo hello >world && - test_tick && - git commit -a -m hello && - - git checkout -b side HEAD^ && - echo goodbye >world && - test_tick && - git commit -a -m goodbye && - - git checkout master - -[master (root-commit) 21975ff] initial - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - create mode 100644 world -[master 02943d2] hello - Author: A U Thor - 1 file changed, 1 insertion(+) -Switched to a new branch 'side' -[side 5611ff9] goodbye - Author: A U Thor - 1 file changed, 1 insertion(+) -Switched to branch 'master' -ok 1 - setup - -expecting success of 1021.2 'rerere in workdir': - rm -rf .git/rr-cache && - "$SHELL_PATH" "$TEST_DIRECTORY/../contrib/workdir/git-new-workdir" . work && - ( - cd work && - test_must_fail git merge side && - git rerere status >actual && - echo world >expect && - test_cmp expect actual - ) - -Merging: -02943d2 hello -virtual side -found 1 common ancestor: -21975ff initial -Auto-merging world -CONFLICT (content): Merge conflict in world -Recorded preimage for 'world' -Automatic merge failed; fix conflicts and then commit the result. -ok 2 - rerere in workdir - -checking known breakage of 1021.3 'rerere in workdir (relative)': - rm -rf .git/rr-cache && - "$SHELL_PATH" "$TEST_DIRECTORY/../contrib/workdir/git-new-workdir" . krow && - ( - cd krow && - rm -f .git/rr-cache && - ln -s ../.git/rr-cache .git/rr-cache && - test_must_fail git merge side && - git rerere status >actual && - echo world >expect && - test_cmp expect actual - ) - -Merging: -02943d2 hello -virtual side -found 1 common ancestor: -21975ff initial -Auto-merging world -CONFLICT (content): Merge conflict in world -fatal: could not create directory '.git/rr-cache' -fatal: could not create directory '.git/rr-cache' -not ok 3 - rerere in workdir (relative) # TODO known breakage - -# still have 1 known breakage(s) -# passed all remaining 2 test(s) -1..3 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1050-large.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1050-large/.git/ -expecting success of 1050.1 'setup': - # clone does not allow us to pass core.bigfilethreshold to - # new repos, so set core.bigfilethreshold globally - git config --global core.bigfilethreshold 200k && - printf "%2000000s" X >large1 && - cp large1 large2 && - cp large1 large3 && - printf "%2500000s" Y >huge && - GIT_ALLOC_LIMIT=1500k && - export GIT_ALLOC_LIMIT - -ok 1 - setup - -expecting success of 1050.2 'add with -c core.compression=0': - test_when_finished "rm -f .git/objects/pack/pack-*.* .git/index" && - git $config add large1 && - sz=$(test_file_size .git/objects/pack/pack-*.pack) && - case "$expect" in - small) test "$sz" -le 100000 ;; - large) test "$sz" -ge 100000 ;; - esac - -ok 2 - add with -c core.compression=0 - -expecting success of 1050.3 'add with -c core.compression=9': - test_when_finished "rm -f .git/objects/pack/pack-*.* .git/index" && - git $config add large1 && - sz=$(test_file_size .git/objects/pack/pack-*.pack) && - case "$expect" in - small) test "$sz" -le 100000 ;; - large) test "$sz" -ge 100000 ;; - esac - -ok 3 - add with -c core.compression=9 - -expecting success of 1050.4 'add with -c core.compression=0 -c pack.compression=0': - test_when_finished "rm -f .git/objects/pack/pack-*.* .git/index" && - git $config add large1 && - sz=$(test_file_size .git/objects/pack/pack-*.pack) && - case "$expect" in - small) test "$sz" -le 100000 ;; - large) test "$sz" -ge 100000 ;; - esac - -ok 4 - add with -c core.compression=0 -c pack.compression=0 - -expecting success of 1050.5 'add with -c core.compression=9 -c pack.compression=0': - test_when_finished "rm -f .git/objects/pack/pack-*.* .git/index" && - git $config add large1 && - sz=$(test_file_size .git/objects/pack/pack-*.pack) && - case "$expect" in - small) test "$sz" -le 100000 ;; - large) test "$sz" -ge 100000 ;; - esac - -ok 5 - add with -c core.compression=9 -c pack.compression=0 - -expecting success of 1050.6 'add with -c core.compression=0 -c pack.compression=9': - test_when_finished "rm -f .git/objects/pack/pack-*.* .git/index" && - git $config add large1 && - sz=$(test_file_size .git/objects/pack/pack-*.pack) && - case "$expect" in - small) test "$sz" -le 100000 ;; - large) test "$sz" -ge 100000 ;; - esac - -ok 6 - add with -c core.compression=0 -c pack.compression=9 - -expecting success of 1050.7 'add with -c core.compression=9 -c pack.compression=9': - test_when_finished "rm -f .git/objects/pack/pack-*.* .git/index" && - git $config add large1 && - sz=$(test_file_size .git/objects/pack/pack-*.pack) && - case "$expect" in - small) test "$sz" -le 100000 ;; - large) test "$sz" -ge 100000 ;; - esac - -ok 7 - add with -c core.compression=9 -c pack.compression=9 - -expecting success of 1050.8 'add with -c pack.compression=0': - test_when_finished "rm -f .git/objects/pack/pack-*.* .git/index" && - git $config add large1 && - sz=$(test_file_size .git/objects/pack/pack-*.pack) && - case "$expect" in - small) test "$sz" -le 100000 ;; - large) test "$sz" -ge 100000 ;; - esac - -ok 8 - add with -c pack.compression=0 - -expecting success of 1050.9 'add with -c pack.compression=9': - test_when_finished "rm -f .git/objects/pack/pack-*.* .git/index" && - git $config add large1 && - sz=$(test_file_size .git/objects/pack/pack-*.pack) && - case "$expect" in - small) test "$sz" -le 100000 ;; - large) test "$sz" -ge 100000 ;; - esac - -ok 9 - add with -c pack.compression=9 - -expecting success of 1050.10 'add a large file or two': - git add large1 huge large2 && - # make sure we got a single packfile and no loose objects - bad= count=0 idx= && - for p in .git/objects/pack/pack-*.pack - do - count=$(( $count + 1 )) - if test_path_is_file "$p" && - idx=${p%.pack}.idx && test_path_is_file "$idx" - then - continue - fi - bad=t - done && - test -z "$bad" && - test $count = 1 && - cnt=$(git show-index <"$idx" | wc -l) && - test $cnt = 2 && - for l in .git/objects/$OIDPATH_REGEX - do - test_path_is_file "$l" || continue - bad=t - done && - test -z "$bad" && - - # attempt to add another copy of the same - git add large3 && - bad= count=0 && - for p in .git/objects/pack/pack-*.pack - do - count=$(( $count + 1 )) - if test_path_is_file "$p" && - idx=${p%.pack}.idx && test_path_is_file "$idx" - then - continue - fi - bad=t - done && - test -z "$bad" && - test $count = 1 - -File .git/objects/[0-9a-f][0-9a-f]/[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f] doesn't exist. -ok 10 - add a large file or two - -expecting success of 1050.11 'checkout a large file': - large1=$(git rev-parse :large1) && - git update-index --add --cacheinfo 100644 $large1 another && - git checkout another && - test_cmp large1 another - -Updated 1 path from the index -ok 11 - checkout a large file - -expecting success of 1050.12 'packsize limit': - test_create_repo mid && - ( - cd mid && - git config core.bigfilethreshold 64k && - git config pack.packsizelimit 256k && - - # mid1 and mid2 will fit within 256k limit but - # appending mid3 will bust the limit and will - # result in a separate packfile. - test-tool genrandom "a" $(( 66 * 1024 )) >mid1 && - test-tool genrandom "b" $(( 80 * 1024 )) >mid2 && - test-tool genrandom "c" $(( 128 * 1024 )) >mid3 && - git add mid1 mid2 mid3 && - - count=0 && - for pi in .git/objects/pack/pack-*.idx - do - test_path_is_file "$pi" && count=$(( $count + 1 )) - done && - test $count = 2 && - - ( - git hash-object --stdin expect && - - for pi in .git/objects/pack/pack-*.idx - do - git show-index <"$pi" - done | - sed -e "s/^[0-9]* \([0-9a-f]*\) .*/\1/" | - sort >actual && - - test_cmp expect actual - ) - -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1050-large/mid/.git/ -ok 12 - packsize limit - -expecting success of 1050.13 'diff --raw': - git commit -q -m initial && - echo modified >>large1 && - git add large1 && - git commit -q -m modified && - git diff --raw HEAD^ - -:100644 100644 6cef6d8 171a2cf M large1 -ok 13 - diff --raw - -expecting success of 1050.14 'diff --stat': - git diff --stat HEAD^ HEAD - - large1 | Bin 2000000 -> 2000009 bytes - 1 file changed, 0 insertions(+), 0 deletions(-) -ok 14 - diff --stat - -expecting success of 1050.15 'diff': - git diff HEAD^ HEAD >actual && - grep "Binary files.*differ" actual - -Binary files a/large1 and b/large1 differ -ok 15 - diff - -expecting success of 1050.16 'diff --cached': - git diff --cached HEAD^ >actual && - grep "Binary files.*differ" actual - -Binary files a/large1 and b/large1 differ -ok 16 - diff --cached - -expecting success of 1050.17 'hash-object': - git hash-object large1 - -171a2cf5cd75bd8d405266c986591716925e9712 -ok 17 - hash-object - -expecting success of 1050.18 'cat-file a large file': - git cat-file blob :large1 >/dev/null - -ok 18 - cat-file a large file - -expecting success of 1050.19 'cat-file a large file from a tag': - git tag -m largefile largefiletag :large1 && - git cat-file blob largefiletag >/dev/null - -ok 19 - cat-file a large file from a tag - -expecting success of 1050.20 'git-show a large file': - git show :large1 >/dev/null - - -ok 20 - git-show a large file - -expecting success of 1050.21 'index-pack': - git clone file://"$(pwd)"/.git foo && - GIT_DIR=non-existent git index-pack --object-format=$(test_oid algo) \ - --strict --verify foo/.git/objects/pack/*.pack - -Cloning into 'foo'... -ok 21 - index-pack - -expecting success of 1050.22 'repack': - git repack -ad - -ok 22 - repack - -expecting success of 1050.23 'pack-objects with large loose object': - SHA1=$(git hash-object huge) && - test_create_repo loose && - echo $SHA1 | git pack-objects --stdout | - GIT_ALLOC_LIMIT=0 GIT_DIR=loose/.git git unpack-objects && - echo $SHA1 | GIT_DIR=loose/.git git pack-objects pack && - test_create_repo packed && - mv pack-* packed/.git/objects/pack && - GIT_DIR=packed/.git git cat-file blob $SHA1 >actual && - test_cmp huge actual - -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1050-large/loose/.git/ -dc5b4c5413c9a2a6ca4f121474e1c9c8ea086153 -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1050-large/packed/.git/ -ok 23 - pack-objects with large loose object - -expecting success of 1050.24 'tar archiving': - git archive --format=tar HEAD >/dev/null - -ok 24 - tar archiving - -expecting success of 1050.25 'zip archiving, store only': - git archive --format=zip -0 HEAD >/dev/null - -ok 25 - zip archiving, store only - -expecting success of 1050.26 'zip archiving, deflate': - git archive --format=zip HEAD >/dev/null - -ok 26 - zip archiving, deflate - -expecting success of 1050.27 'fsck large blobs': - git fsck 2>err && - test_must_be_empty err - -ok 27 - fsck large blobs - -# passed all 27 test(s) -1..27 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' *** t1051-large-conversion.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1051-large-conversion/.git/ expecting success of 1051.1 'setup input tests': @@ -33967,7 +33515,7 @@ create mode 100644 content.t 1+0 records in 1+0 records out -1 byte copied, 0.000178762 s, 5.6 kB/s +1 byte copied, 0.000143747 s, 7.0 kB/s hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all hint: of your new repositories, which will suppress this warning, call: @@ -34093,13 +33641,13 @@ test_must_fail git clone --no-local --bare bit-error corrupt-transport Cloning into bare repository 'corrupt-transport'... -error: git upload-pack: git-pack-objects died with error. -fatal: git upload-pack: aborting due to possible repository corruption on the remote side. remote: error: inflate: data stream error (invalid distance too far back) remote: error: unable to unpack d95f3ad14dee633a758d2e331151e950dd13e4ed header remote: error: inflate: data stream error (invalid distance too far back) remote: error: unable to unpack d95f3ad14dee633a758d2e331151e950dd13e4ed header remote: fatal: loose object d95f3ad14dee633a758d2e331151e950dd13e4ed (stored in ./objects/d9/5f3ad14dee633a758d2e331151e950dd13e4ed) is corrupt +error: git upload-pack: git-pack-objects died with error. +fatal: git upload-pack: aborting due to possible repository corruption on the remote side. remote: aborting due to possible repository corruption on the remote side. fatal: early EOF fatal: index-pack failed @@ -34217,6 +33765,312 @@ 1..16 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t1050-large.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1050-large/.git/ +expecting success of 1050.1 'setup': + # clone does not allow us to pass core.bigfilethreshold to + # new repos, so set core.bigfilethreshold globally + git config --global core.bigfilethreshold 200k && + printf "%2000000s" X >large1 && + cp large1 large2 && + cp large1 large3 && + printf "%2500000s" Y >huge && + GIT_ALLOC_LIMIT=1500k && + export GIT_ALLOC_LIMIT + +ok 1 - setup + +expecting success of 1050.2 'add with -c core.compression=0': + test_when_finished "rm -f .git/objects/pack/pack-*.* .git/index" && + git $config add large1 && + sz=$(test_file_size .git/objects/pack/pack-*.pack) && + case "$expect" in + small) test "$sz" -le 100000 ;; + large) test "$sz" -ge 100000 ;; + esac + +ok 2 - add with -c core.compression=0 + +expecting success of 1050.3 'add with -c core.compression=9': + test_when_finished "rm -f .git/objects/pack/pack-*.* .git/index" && + git $config add large1 && + sz=$(test_file_size .git/objects/pack/pack-*.pack) && + case "$expect" in + small) test "$sz" -le 100000 ;; + large) test "$sz" -ge 100000 ;; + esac + +ok 3 - add with -c core.compression=9 + +expecting success of 1050.4 'add with -c core.compression=0 -c pack.compression=0': + test_when_finished "rm -f .git/objects/pack/pack-*.* .git/index" && + git $config add large1 && + sz=$(test_file_size .git/objects/pack/pack-*.pack) && + case "$expect" in + small) test "$sz" -le 100000 ;; + large) test "$sz" -ge 100000 ;; + esac + +ok 4 - add with -c core.compression=0 -c pack.compression=0 + +expecting success of 1050.5 'add with -c core.compression=9 -c pack.compression=0': + test_when_finished "rm -f .git/objects/pack/pack-*.* .git/index" && + git $config add large1 && + sz=$(test_file_size .git/objects/pack/pack-*.pack) && + case "$expect" in + small) test "$sz" -le 100000 ;; + large) test "$sz" -ge 100000 ;; + esac + +ok 5 - add with -c core.compression=9 -c pack.compression=0 + +expecting success of 1050.6 'add with -c core.compression=0 -c pack.compression=9': + test_when_finished "rm -f .git/objects/pack/pack-*.* .git/index" && + git $config add large1 && + sz=$(test_file_size .git/objects/pack/pack-*.pack) && + case "$expect" in + small) test "$sz" -le 100000 ;; + large) test "$sz" -ge 100000 ;; + esac + +ok 6 - add with -c core.compression=0 -c pack.compression=9 + +expecting success of 1050.7 'add with -c core.compression=9 -c pack.compression=9': + test_when_finished "rm -f .git/objects/pack/pack-*.* .git/index" && + git $config add large1 && + sz=$(test_file_size .git/objects/pack/pack-*.pack) && + case "$expect" in + small) test "$sz" -le 100000 ;; + large) test "$sz" -ge 100000 ;; + esac + +ok 7 - add with -c core.compression=9 -c pack.compression=9 + +expecting success of 1050.8 'add with -c pack.compression=0': + test_when_finished "rm -f .git/objects/pack/pack-*.* .git/index" && + git $config add large1 && + sz=$(test_file_size .git/objects/pack/pack-*.pack) && + case "$expect" in + small) test "$sz" -le 100000 ;; + large) test "$sz" -ge 100000 ;; + esac + +ok 8 - add with -c pack.compression=0 + +expecting success of 1050.9 'add with -c pack.compression=9': + test_when_finished "rm -f .git/objects/pack/pack-*.* .git/index" && + git $config add large1 && + sz=$(test_file_size .git/objects/pack/pack-*.pack) && + case "$expect" in + small) test "$sz" -le 100000 ;; + large) test "$sz" -ge 100000 ;; + esac + +ok 9 - add with -c pack.compression=9 + +expecting success of 1050.10 'add a large file or two': + git add large1 huge large2 && + # make sure we got a single packfile and no loose objects + bad= count=0 idx= && + for p in .git/objects/pack/pack-*.pack + do + count=$(( $count + 1 )) + if test_path_is_file "$p" && + idx=${p%.pack}.idx && test_path_is_file "$idx" + then + continue + fi + bad=t + done && + test -z "$bad" && + test $count = 1 && + cnt=$(git show-index <"$idx" | wc -l) && + test $cnt = 2 && + for l in .git/objects/$OIDPATH_REGEX + do + test_path_is_file "$l" || continue + bad=t + done && + test -z "$bad" && + + # attempt to add another copy of the same + git add large3 && + bad= count=0 && + for p in .git/objects/pack/pack-*.pack + do + count=$(( $count + 1 )) + if test_path_is_file "$p" && + idx=${p%.pack}.idx && test_path_is_file "$idx" + then + continue + fi + bad=t + done && + test -z "$bad" && + test $count = 1 + +File .git/objects/[0-9a-f][0-9a-f]/[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f] doesn't exist. +ok 10 - add a large file or two + +expecting success of 1050.11 'checkout a large file': + large1=$(git rev-parse :large1) && + git update-index --add --cacheinfo 100644 $large1 another && + git checkout another && + test_cmp large1 another + +Updated 1 path from the index +ok 11 - checkout a large file + +expecting success of 1050.12 'packsize limit': + test_create_repo mid && + ( + cd mid && + git config core.bigfilethreshold 64k && + git config pack.packsizelimit 256k && + + # mid1 and mid2 will fit within 256k limit but + # appending mid3 will bust the limit and will + # result in a separate packfile. + test-tool genrandom "a" $(( 66 * 1024 )) >mid1 && + test-tool genrandom "b" $(( 80 * 1024 )) >mid2 && + test-tool genrandom "c" $(( 128 * 1024 )) >mid3 && + git add mid1 mid2 mid3 && + + count=0 && + for pi in .git/objects/pack/pack-*.idx + do + test_path_is_file "$pi" && count=$(( $count + 1 )) + done && + test $count = 2 && + + ( + git hash-object --stdin expect && + + for pi in .git/objects/pack/pack-*.idx + do + git show-index <"$pi" + done | + sed -e "s/^[0-9]* \([0-9a-f]*\) .*/\1/" | + sort >actual && + + test_cmp expect actual + ) + +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1050-large/mid/.git/ +ok 12 - packsize limit + +expecting success of 1050.13 'diff --raw': + git commit -q -m initial && + echo modified >>large1 && + git add large1 && + git commit -q -m modified && + git diff --raw HEAD^ + +:100644 100644 6cef6d8 171a2cf M large1 +ok 13 - diff --raw + +expecting success of 1050.14 'diff --stat': + git diff --stat HEAD^ HEAD + + large1 | Bin 2000000 -> 2000009 bytes + 1 file changed, 0 insertions(+), 0 deletions(-) +ok 14 - diff --stat + +expecting success of 1050.15 'diff': + git diff HEAD^ HEAD >actual && + grep "Binary files.*differ" actual + +Binary files a/large1 and b/large1 differ +ok 15 - diff + +expecting success of 1050.16 'diff --cached': + git diff --cached HEAD^ >actual && + grep "Binary files.*differ" actual + +Binary files a/large1 and b/large1 differ +ok 16 - diff --cached + +expecting success of 1050.17 'hash-object': + git hash-object large1 + +171a2cf5cd75bd8d405266c986591716925e9712 +ok 17 - hash-object + +expecting success of 1050.18 'cat-file a large file': + git cat-file blob :large1 >/dev/null + +ok 18 - cat-file a large file + +expecting success of 1050.19 'cat-file a large file from a tag': + git tag -m largefile largefiletag :large1 && + git cat-file blob largefiletag >/dev/null + +ok 19 - cat-file a large file from a tag + +expecting success of 1050.20 'git-show a large file': + git show :large1 >/dev/null + + +ok 20 - git-show a large file + +expecting success of 1050.21 'index-pack': + git clone file://"$(pwd)"/.git foo && + GIT_DIR=non-existent git index-pack --object-format=$(test_oid algo) \ + --strict --verify foo/.git/objects/pack/*.pack + +Cloning into 'foo'... +ok 21 - index-pack + +expecting success of 1050.22 'repack': + git repack -ad + +ok 22 - repack + +expecting success of 1050.23 'pack-objects with large loose object': + SHA1=$(git hash-object huge) && + test_create_repo loose && + echo $SHA1 | git pack-objects --stdout | + GIT_ALLOC_LIMIT=0 GIT_DIR=loose/.git git unpack-objects && + echo $SHA1 | GIT_DIR=loose/.git git pack-objects pack && + test_create_repo packed && + mv pack-* packed/.git/objects/pack && + GIT_DIR=packed/.git git cat-file blob $SHA1 >actual && + test_cmp huge actual + +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1050-large/loose/.git/ +dc5b4c5413c9a2a6ca4f121474e1c9c8ea086153 +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1050-large/packed/.git/ +ok 23 - pack-objects with large loose object + +expecting success of 1050.24 'tar archiving': + git archive --format=tar HEAD >/dev/null + +ok 24 - tar archiving + +expecting success of 1050.25 'zip archiving, store only': + git archive --format=zip -0 HEAD >/dev/null + +ok 25 - zip archiving, store only + +expecting success of 1050.26 'zip archiving, deflate': + git archive --format=zip HEAD >/dev/null + +ok 26 - zip archiving, deflate + +expecting success of 1050.27 'fsck large blobs': + git fsck 2>err && + test_must_be_empty err + +ok 27 - fsck large blobs + +# passed all 27 test(s) +1..27 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t1090-sparse-checkout-scope.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1090-sparse-checkout-scope/.git/ expecting success of 1090.1 'setup': @@ -34353,6 +34207,46 @@ 1..6 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t1100-commit-tree-options.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1100-commit-tree-options/.git/ +expecting success of 1100.1 'test preparation: write empty tree': git write-tree >treeid +ok 1 - test preparation: write empty tree + +expecting success of 1100.2 'construct commit': echo comment text | + GIT_AUTHOR_NAME="Author Name" \ + GIT_AUTHOR_EMAIL="author@email" \ + GIT_AUTHOR_DATE="2005-05-26 23:00" \ + GIT_COMMITTER_NAME="Committer Name" \ + GIT_COMMITTER_EMAIL="committer@email" \ + GIT_COMMITTER_DATE="2005-05-26 23:30" \ + TZ=GMT git commit-tree $(cat treeid) >commitid 2>/dev/null +ok 2 - construct commit + +expecting success of 1100.3 'read commit': git cat-file commit $(cat commitid) >commit +ok 3 - read commit + +expecting success of 1100.4 'compare commit': test_cmp expected commit +ok 4 - compare commit + +expecting success of 1100.5 'flags and then non flags': + test_tick && + echo comment text | + git commit-tree $(cat treeid) >commitid && + echo comment text | + git commit-tree $(cat treeid) -p $(cat commitid) >childid-1 && + echo comment text | + git commit-tree -p $(cat commitid) $(cat treeid) >childid-2 && + test_cmp childid-1 childid-2 && + git commit-tree $(cat treeid) -m foo >childid-3 && + git commit-tree -m foo $(cat treeid) >childid-4 && + test_cmp childid-3 childid-4 + +ok 5 - flags and then non flags + +# passed all 5 test(s) +1..5 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t1091-sparse-checkout-builtin.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1091-sparse-checkout-builtin/.git/ expecting success of 1091.1 'setup': @@ -35097,44 +34991,670 @@ 1..41 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t1100-commit-tree-options.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1100-commit-tree-options/.git/ -expecting success of 1100.1 'test preparation: write empty tree': git write-tree >treeid -ok 1 - test preparation: write empty tree +*** t1301-shared-repo.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1301-shared-repo/.git/ +expecting success of 1301.1 'shared = 0400 (faulty permission u-w)': + test_when_finished "rm -rf sub" && + mkdir sub && ( + cd sub && + test_must_fail git init --shared=0400 + ) -expecting success of 1100.2 'construct commit': echo comment text | - GIT_AUTHOR_NAME="Author Name" \ - GIT_AUTHOR_EMAIL="author@email" \ - GIT_AUTHOR_DATE="2005-05-26 23:00" \ - GIT_COMMITTER_NAME="Committer Name" \ - GIT_COMMITTER_EMAIL="committer@email" \ - GIT_COMMITTER_DATE="2005-05-26 23:30" \ - TZ=GMT git commit-tree $(cat treeid) >commitid 2>/dev/null -ok 2 - construct commit +fatal: problem with core.sharedRepository filemode value (0400). +The owner of files must always have read and write permissions. +ok 1 - shared = 0400 (faulty permission u-w) -expecting success of 1100.3 'read commit': git cat-file commit $(cat commitid) >commit -ok 3 - read commit +expecting success of 1301.2 'shared=1 does not clear bits preset by umask 002': + mkdir sub && ( + cd sub && + umask $u && + git init --shared=1 && + test 1 = "$(git config core.sharedrepository)" + ) && + actual=$(ls -l sub/.git/HEAD) && + case "$actual" in + -rw-rw-r--*) + : happy + ;; + *) + echo Oops, .git/HEAD is not 0664 but $actual + false + ;; + esac + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty shared Git repository in /build/git-2.30.2/t/trash directory.t1301-shared-repo/sub/.git/ +ok 2 - shared=1 does not clear bits preset by umask 002 -expecting success of 1100.4 'compare commit': test_cmp expected commit -ok 4 - compare commit +expecting success of 1301.3 'shared=1 does not clear bits preset by umask 022': + mkdir sub && ( + cd sub && + umask $u && + git init --shared=1 && + test 1 = "$(git config core.sharedrepository)" + ) && + actual=$(ls -l sub/.git/HEAD) && + case "$actual" in + -rw-rw-r--*) + : happy + ;; + *) + echo Oops, .git/HEAD is not 0664 but $actual + false + ;; + esac + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty shared Git repository in /build/git-2.30.2/t/trash directory.t1301-shared-repo/sub/.git/ +ok 3 - shared=1 does not clear bits preset by umask 022 -expecting success of 1100.5 'flags and then non flags': +expecting success of 1301.4 'shared=all': + mkdir sub && + cd sub && + git init --shared=all && + test 2 = $(git config core.sharedrepository) + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty shared Git repository in /build/git-2.30.2/t/trash directory.t1301-shared-repo/sub/.git/ +ok 4 - shared=all + +expecting success of 1301.5 'update-server-info honors core.sharedRepository': + : > a1 && + git add a1 && test_tick && - echo comment text | - git commit-tree $(cat treeid) >commitid && - echo comment text | - git commit-tree $(cat treeid) -p $(cat commitid) >childid-1 && - echo comment text | - git commit-tree -p $(cat commitid) $(cat treeid) >childid-2 && - test_cmp childid-1 childid-2 && - git commit-tree $(cat treeid) -m foo >childid-3 && - git commit-tree -m foo $(cat treeid) >childid-4 && - test_cmp childid-3 childid-4 + git commit -m a1 && + umask 0277 && + git update-server-info && + actual="$(ls -l .git/info/refs)" && + case "$actual" in + -r--r--r--*) + : happy + ;; + *) + echo Oops, .git/info/refs is not 0444 + false + ;; + esac -ok 5 - flags and then non flags +[master (root-commit) a2bd363] a1 + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 a1 +ok 5 - update-server-info honors core.sharedRepository -# passed all 5 test(s) -1..5 +expecting success of 1301.6 'shared = 0660 (r--r-----) ro': + + rm -f .git/info/refs && + git update-server-info && + actual="$(test_modebits .git/info/refs)" && + verbose test "x$actual" = "x-$y" + + +ok 6 - shared = 0660 (r--r-----) ro + +expecting success of 1301.7 'shared = 0660 (rw-rw----) rw': + + rm -f .git/info/refs && + git update-server-info && + actual="$(test_modebits .git/info/refs)" && + verbose test "x$actual" = "x-$x" + + +ok 7 - shared = 0660 (rw-rw----) rw + +expecting success of 1301.8 'shared = 0640 (r--r-----) ro': + + rm -f .git/info/refs && + git update-server-info && + actual="$(test_modebits .git/info/refs)" && + verbose test "x$actual" = "x-$y" + + +ok 8 - shared = 0640 (r--r-----) ro + +expecting success of 1301.9 'shared = 0640 (rw-r-----) rw': + + rm -f .git/info/refs && + git update-server-info && + actual="$(test_modebits .git/info/refs)" && + verbose test "x$actual" = "x-$x" + + +ok 9 - shared = 0640 (rw-r-----) rw + +expecting success of 1301.10 'shared = 0600 (r--------) ro': + + rm -f .git/info/refs && + git update-server-info && + actual="$(test_modebits .git/info/refs)" && + verbose test "x$actual" = "x-$y" + + +ok 10 - shared = 0600 (r--------) ro + +expecting success of 1301.11 'shared = 0600 (rw-------) rw': + + rm -f .git/info/refs && + git update-server-info && + actual="$(test_modebits .git/info/refs)" && + verbose test "x$actual" = "x-$x" + + +ok 11 - shared = 0600 (rw-------) rw + +expecting success of 1301.12 'shared = 0666 (r--r--r--) ro': + + rm -f .git/info/refs && + git update-server-info && + actual="$(test_modebits .git/info/refs)" && + verbose test "x$actual" = "x-$y" + + +ok 12 - shared = 0666 (r--r--r--) ro + +expecting success of 1301.13 'shared = 0666 (rw-rw-rw-) rw': + + rm -f .git/info/refs && + git update-server-info && + actual="$(test_modebits .git/info/refs)" && + verbose test "x$actual" = "x-$x" + + +ok 13 - shared = 0666 (rw-rw-rw-) rw + +expecting success of 1301.14 'shared = 0664 (r--r--r--) ro': + + rm -f .git/info/refs && + git update-server-info && + actual="$(test_modebits .git/info/refs)" && + verbose test "x$actual" = "x-$y" + + +ok 14 - shared = 0664 (r--r--r--) ro + +expecting success of 1301.15 'shared = 0664 (rw-rw-r--) rw': + + rm -f .git/info/refs && + git update-server-info && + actual="$(test_modebits .git/info/refs)" && + verbose test "x$actual" = "x-$x" + + +ok 15 - shared = 0664 (rw-rw-r--) rw + +expecting success of 1301.16 'info/refs respects umask in unshared repo': + rm -f .git/info/refs && + test_unconfig core.sharedrepository && + umask 002 && + git update-server-info && + echo "-rw-rw-r--" >expect && + test_modebits .git/info/refs >actual && + test_cmp expect actual + +ok 16 - info/refs respects umask in unshared repo + +expecting success of 1301.17 'git reflog expire honors core.sharedRepository': + umask 077 && + git config core.sharedRepository group && + git reflog expire --all && + actual="$(ls -l .git/logs/refs/heads/master)" && + case "$actual" in + -rw-rw-*) + : happy + ;; + *) + echo Ooops, .git/logs/refs/heads/master is not 0662 [$actual] + false + ;; + esac + +ok 17 - git reflog expire honors core.sharedRepository + +expecting success of 1301.18 'forced modes': + mkdir -p templates/hooks && + echo update-server-info >templates/hooks/post-update && + chmod +x templates/hooks/post-update && + echo : >random-file && + mkdir new && + ( + cd new && + umask 002 && + git init --shared=0660 --template=templates && + >frotz && + git add frotz && + git commit -a -m initial && + git repack + ) && + # List repository files meant to be protected; note that + # COMMIT_EDITMSG does not matter---0mode is not about a + # repository with a work tree. + find new/.git -type f -name COMMIT_EDITMSG -prune -o -print | + xargs ls -ld >actual && + + # Everything must be unaccessible to others + test -z "$(sed -e "/^.......---/d" actual)" && + + # All directories must have either 2770 or 770 + test -z "$(sed -n -e "/^drwxrw[sx]---/d" -e "/^d/p" actual)" && + + # post-update hook must be 0770 + test -z "$(sed -n -e "/post-update/{ + /^-rwxrwx---/d + p + }" actual)" && + + # All files inside objects must be accessible by us + test -z "$(sed -n -e "/objects\//{ + /^d/d + /^-r.-r.----/d + p + }" actual)" + +warning: templates not found in /build/git-2.30.2/t/trash directory.t1301-shared-repo/sub/new/templates +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty shared Git repository in /build/git-2.30.2/t/trash directory.t1301-shared-repo/sub/new/.git/ +[master (root-commit) e4c5dc6] initial + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 frotz +ok 18 - forced modes + +expecting success of 1301.19 'remote init does not use config from cwd': + git config core.sharedrepository 0666 && + umask 0022 && + git init --bare child.git && + echo "-rw-r--r--" >expect && + test_modebits child.git/config >actual && + test_cmp expect actual + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1301-shared-repo/sub/child.git/ +ok 19 - remote init does not use config from cwd + +expecting success of 1301.20 're-init respects core.sharedrepository (local)': + git config core.sharedrepository 0666 && + umask 0022 && + echo whatever >templates/foo && + git init --template=templates && + echo "-rw-rw-rw-" >expect && + test_modebits .git/foo >actual && + test_cmp expect actual + +Reinitialized existing shared Git repository in /build/git-2.30.2/t/trash directory.t1301-shared-repo/sub/.git/ +ok 20 - re-init respects core.sharedrepository (local) + +expecting success of 1301.21 're-init respects core.sharedrepository (remote)': + rm -rf child.git && + umask 0022 && + git init --bare --shared=0666 child.git && + test_path_is_missing child.git/foo && + git init --bare --template=templates child.git && + echo "-rw-rw-rw-" >expect && + test_modebits child.git/foo >actual && + test_cmp expect actual + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty shared Git repository in /build/git-2.30.2/t/trash directory.t1301-shared-repo/sub/child.git/ +Reinitialized existing shared Git repository in /build/git-2.30.2/t/trash directory.t1301-shared-repo/sub/child.git/ +ok 21 - re-init respects core.sharedrepository (remote) + +expecting success of 1301.22 'template can set core.sharedrepository': + rm -rf child.git && + umask 0022 && + git config core.sharedrepository 0666 && + cp .git/config templates/config && + git init --bare --template=templates child.git && + echo "-rw-rw-rw-" >expect && + test_modebits child.git/HEAD >actual && + test_cmp expect actual + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty shared Git repository in /build/git-2.30.2/t/trash directory.t1301-shared-repo/sub/child.git/ +ok 22 - template can set core.sharedrepository + +# passed all 22 test(s) +1..22 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t1302-repo-version.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1302-repo-version/.git/ +expecting success of 1302.1 'setup': + test_oid_cache <<-\EOF && + version sha1:0 + version sha256:1 + EOF + cat >test.patch <<-\EOF && + diff --git a/test.txt b/test.txt + new file mode 100644 + --- /dev/null + +++ b/test.txt + @@ -0,0 +1 @@ + +123 + EOF + + test_create_repo "test" && + test_create_repo "test2" && + git config --file=test2/.git/config core.repositoryformatversion 99 + +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1302-repo-version/test/.git/ +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1302-repo-version/test2/.git/ +ok 1 - setup + +expecting success of 1302.2 'gitdir selection on normal repos': + echo $(test_oid version) >expect && + git config core.repositoryformatversion >actual && + git -C test config core.repositoryformatversion >actual2 && + test_cmp expect actual && + test_cmp expect actual2 + +ok 2 - gitdir selection on normal repos + +expecting success of 1302.3 'gitdir selection on unsupported repo': + # Make sure it would stop at test2, not trash + test_expect_code 1 git -C test2 config core.repositoryformatversion >actual + +warning: Expected git repo version <= 1, found 99 +ok 3 - gitdir selection on unsupported repo + +expecting success of 1302.4 'gitdir not required mode': + git apply --stat test.patch && + git -C test apply --stat ../test.patch && + git -C test2 apply --stat ../test.patch + + test.txt | 1 + + 1 file changed, 1 insertion(+) + test.txt | 1 + + 1 file changed, 1 insertion(+) +warning: Expected git repo version <= 1, found 99 +warning: ignoring git dir '.git': Expected git repo version <= 1, found 99 + test.txt | 1 + + 1 file changed, 1 insertion(+) +ok 4 - gitdir not required mode + +expecting success of 1302.5 'gitdir required mode': + git apply --check --index test.patch && + git -C test apply --check --index ../test.patch && + test_must_fail git -C test2 apply --check --index ../test.patch + +warning: Expected git repo version <= 1, found 99 +warning: ignoring git dir '.git': Expected git repo version <= 1, found 99 +error: --index outside a repository +ok 5 - gitdir required mode + +expecting success of 1302.6 'allow version=0 ': + mkconfig 0 >.git/config && + check_allow + +ok 6 - allow version=0 + +expecting success of 1302.7 'allow version=1 ': + mkconfig 1 >.git/config && + check_allow + +ok 7 - allow version=1 + +expecting success of 1302.8 'allow version=1 noop': + mkconfig 1 noop >.git/config && + check_allow + +ok 8 - allow version=1 noop + +expecting success of 1302.9 'abort version=1 no-such-extension': + mkconfig 1 no-such-extension >.git/config && + check_abort + +fatal: unknown repository extensions found: + no-such-extension +ok 9 - abort version=1 no-such-extension + +expecting success of 1302.10 'allow version=0 no-such-extension': + mkconfig 0 no-such-extension >.git/config && + check_allow + +ok 10 - allow version=0 no-such-extension + +expecting success of 1302.11 'allow version=0 noop': + mkconfig 0 noop >.git/config && + check_allow + +ok 11 - allow version=0 noop + +expecting success of 1302.12 'abort version=0 noop-v1': + mkconfig 0 noop-v1 >.git/config && + check_abort + +fatal: repo version is 0, but v1-only extensions found: + noop-v1 +ok 12 - abort version=0 noop-v1 + +expecting success of 1302.13 'allow version=1 noop-v1': + mkconfig 1 noop-v1 >.git/config && + check_allow + +ok 13 - allow version=1 noop-v1 + +expecting success of 1302.14 'precious-objects allowed': + mkconfig 1 preciousObjects >.git/config && + check_allow + +ok 14 - precious-objects allowed + +expecting success of 1302.15 'precious-objects blocks destructive repack': + test_must_fail git repack -ad + +fatal: cannot delete packs in a precious-objects repo +ok 15 - precious-objects blocks destructive repack + +expecting success of 1302.16 'other repacks are OK': + test_commit foo && + git repack + +[master (root-commit) ddd63c9] foo + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 foo.t +ok 16 - other repacks are OK + +expecting success of 1302.17 'precious-objects blocks prune': + test_must_fail git prune + +fatal: cannot prune in a precious-objects repo +ok 17 - precious-objects blocks prune + +expecting success of 1302.18 'gc runs without complaint': + git gc + +ok 18 - gc runs without complaint + +# passed all 18 test(s) +1..18 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t1303-wacky-config.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1303-wacky-config/.git/ +expecting success of 1303.1 'modify same key': + setup && + git config section.key bar && + check section.key bar + +ok 1 - modify same key + +expecting success of 1303.2 'add key in same section': + setup && + git config section.other bar && + check section.key foo && + check section.other bar + +ok 2 - add key in same section + +expecting success of 1303.3 'add key in different section': + setup && + git config section2.key bar && + check section.key foo && + check section2.key bar + +ok 3 - add key in different section + +expecting success of 1303.4 'make sure git config escapes section names properly': + git config "$SECTION" bar && + check "$SECTION" bar + +ok 4 - make sure git config escapes section names properly + +expecting success of 1303.5 'do not crash on special long config line': + setup && + git config section.key "$LONG_VALUE" && + check section.key "$LONG_VALUE" + +ok 5 - do not crash on special long config line + +expecting success of 1303.6 'get many entries': + setup_many && + git config --get-all section.key >actual && + test_line_count = 3126 actual + +ok 6 - get many entries + +expecting success of 1303.7 'get many entries by regex': + setup_many && + git config --get-regexp "sec.*ke." >actual && + test_line_count = 3126 actual + +ok 7 - get many entries by regex + +expecting success of 1303.8 'add and replace one of many entries': + setup_many && + git config --add section.key bar && + check_regex section.key "b.*r" bar && + git config section.key beer "b.*r" && + check_regex section.key "b.*r" beer + +ok 8 - add and replace one of many entries + +expecting success of 1303.9 'replace many entries': + setup_many && + git config --replace-all section.key bar && + check section.key bar + +ok 9 - replace many entries + +expecting success of 1303.10 'unset many entries': + setup_many && + git config --unset-all section.key && + test_must_fail git config section.key + +ok 10 - unset many entries + +expecting success of 1303.11 '--add appends new value after existing empty value': + cat >expect <<-\EOF && + + + fool + roll + EOF + cp .git/config .git/config.old && + test_when_finished "mv .git/config.old .git/config" && + cat >.git/config <<-\EOF && + [foo] + baz + baz = + baz = fool + EOF + git config --add foo.baz roll && + git config --get-all foo.baz >output && + test_cmp expect output + +ok 11 - --add appends new value after existing empty value + +# passed all 11 test(s) +1..11 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t1304-default-acl.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1304-default-acl/.git/ +expecting success of 1304.1 'checking for a working acl setup': + if setfacl -m d:m:rwx -m u:root:rwx . && + getfacl . | grep user:root:rwx && + touch should-have-readable-acl && + getfacl should-have-readable-acl | egrep "mask::?rw-" + then + test_set_prereq SETFACL + fi + +./test-lib.sh: line 937: setfacl: command not found +ok 1 - checking for a working acl setup + +ok 2 # skip Setup test repo (missing SETFACL) + +ok 3 # skip Objects creation does not break ACLs with restrictive umask (missing SETFACL) + +ok 4 # skip git gc does not break ACLs with restrictive umask (missing SETFACL) + +# passed all 4 test(s) +1..4 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' *** t1300-config.sh *** @@ -37793,37 +38313,276 @@ 1..175 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t1301-shared-repo.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1301-shared-repo/.git/ -expecting success of 1301.1 'shared = 0400 (faulty permission u-w)': - test_when_finished "rm -rf sub" && - mkdir sub && ( - cd sub && - test_must_fail git init --shared=0400 +*** t1305-config-include.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1305-config-include/.git/ +expecting success of 1305.1 'include file by absolute path': + echo "[test]one = 1" >one && + echo "[include]path = \"$(pwd)/one\"" >.gitconfig && + echo 1 >expect && + git config test.one >actual && + test_cmp expect actual + +ok 1 - include file by absolute path + +expecting success of 1305.2 'include file by relative path': + echo "[test]one = 1" >one && + echo "[include]path = one" >.gitconfig && + echo 1 >expect && + git config test.one >actual && + test_cmp expect actual + +ok 2 - include file by relative path + +expecting success of 1305.3 'chained relative paths': + mkdir subdir && + echo "[test]three = 3" >subdir/three && + echo "[include]path = three" >subdir/two && + echo "[include]path = subdir/two" >.gitconfig && + echo 3 >expect && + git config test.three >actual && + test_cmp expect actual + +ok 3 - chained relative paths + +expecting success of 1305.4 'include paths get tilde-expansion': + echo "[test]one = 1" >one && + echo "[include]path = ~/one" >.gitconfig && + echo 1 >expect && + git config test.one >actual && + test_cmp expect actual + +ok 4 - include paths get tilde-expansion + +expecting success of 1305.5 'include options can still be examined': + echo "[test]one = 1" >one && + echo "[include]path = one" >.gitconfig && + echo one >expect && + git config include.path >actual && + test_cmp expect actual + +ok 5 - include options can still be examined + +expecting success of 1305.6 'listing includes option and expansion': + echo "[test]one = 1" >one && + echo "[include]path = one" >.gitconfig && + cat >expect <<-\EOF && + include.path=one + test.one=1 + EOF + git config --list >actual.full && + grep -v -e ^core -e ^extensions actual.full >actual && + test_cmp expect actual + +ok 6 - listing includes option and expansion + +expecting success of 1305.7 'single file lookup does not expand includes by default': + echo "[test]one = 1" >one && + echo "[include]path = one" >.gitconfig && + test_must_fail git config -f .gitconfig test.one && + test_must_fail git config --global test.one && + echo 1 >expect && + git config --includes -f .gitconfig test.one >actual && + test_cmp expect actual + +ok 7 - single file lookup does not expand includes by default + +expecting success of 1305.8 'single file list does not expand includes by default': + echo "[test]one = 1" >one && + echo "[include]path = one" >.gitconfig && + echo "include.path=one" >expect && + git config -f .gitconfig --list >actual && + test_cmp expect actual + +ok 8 - single file list does not expand includes by default + +expecting success of 1305.9 'writing config file does not expand includes': + echo "[test]one = 1" >one && + echo "[include]path = one" >.gitconfig && + git config test.two 2 && + echo 2 >expect && + git config --no-includes test.two >actual && + test_cmp expect actual && + test_must_fail git config --no-includes test.one + +ok 9 - writing config file does not expand includes + +expecting success of 1305.10 'config modification does not affect includes': + echo "[test]one = 1" >one && + echo "[include]path = one" >.gitconfig && + git config test.one 2 && + echo 1 >expect && + git config -f one test.one >actual && + test_cmp expect actual && + cat >expect <<-\EOF && + 1 + 2 + EOF + git config --get-all test.one >actual && + test_cmp expect actual + +ok 10 - config modification does not affect includes + +expecting success of 1305.11 'missing include files are ignored': + cat >.gitconfig <<-\EOF && + [include]path = non-existent + [test]value = yes + EOF + echo yes >expect && + git config test.value >actual && + test_cmp expect actual + +ok 11 - missing include files are ignored + +expecting success of 1305.12 'absolute includes from command line work': + echo "[test]one = 1" >one && + echo 1 >expect && + git -c include.path="$(pwd)/one" config test.one >actual && + test_cmp expect actual + +ok 12 - absolute includes from command line work + +expecting success of 1305.13 'relative includes from command line fail': + echo "[test]one = 1" >one && + test_must_fail git -c include.path=one config test.one + +error: relative config includes must come from files +fatal: unable to parse command-line config +ok 13 - relative includes from command line fail + +expecting success of 1305.14 'absolute includes from blobs work': + echo "[test]one = 1" >one && + echo "[include]path=$(pwd)/one" >blob && + blob=$(git hash-object -w blob) && + echo 1 >expect && + git config --blob=$blob test.one >actual && + test_cmp expect actual + +ok 14 - absolute includes from blobs work + +expecting success of 1305.15 'relative includes from blobs fail': + echo "[test]one = 1" >one && + echo "[include]path=one" >blob && + blob=$(git hash-object -w blob) && + test_must_fail git config --blob=$blob test.one + +error: relative config includes must come from files +error: bad config line 1 in blob d085876092eb24c144128bcd5db5d26e665f4f8a +ok 15 - relative includes from blobs fail + +expecting success of 1305.16 'absolute includes from stdin work': + echo "[test]one = 1" >one && + echo 1 >expect && + echo "[include]path=\"$(pwd)/one\"" | + git config --file - test.one >actual && + test_cmp expect actual + +ok 16 - absolute includes from stdin work + +expecting success of 1305.17 'relative includes from stdin line fail': + echo "[test]one = 1" >one && + echo "[include]path=one" | + test_must_fail git config --file - test.one + +error: relative config includes must come from files +fatal: bad config line 1 in standard input +ok 17 - relative includes from stdin line fail + +expecting success of 1305.18 'conditional include, both unanchored': + git init foo && + ( + cd foo && + echo "[includeIf \"gitdir:foo/\"]path=bar" >>.git/config && + echo "[test]one=1" >.git/bar && + echo 1 >expect && + git config test.one >actual && + test_cmp expect actual ) -fatal: problem with core.sharedRepository filemode value (0400). -The owner of files must always have read and write permissions. -ok 1 - shared = 0400 (faulty permission u-w) +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1305-config-include/foo/.git/ +ok 18 - conditional include, both unanchored + +expecting success of 1305.19 'conditional include, $HOME expansion': + ( + cd foo && + echo "[includeIf \"gitdir:~/foo/\"]path=bar2" >>.git/config && + echo "[test]two=2" >.git/bar2 && + echo 2 >expect && + git config test.two >actual && + test_cmp expect actual + ) + +ok 19 - conditional include, $HOME expansion + +expecting success of 1305.20 'conditional include, full pattern': + ( + cd foo && + echo "[includeIf \"gitdir:**/foo/**\"]path=bar3" >>.git/config && + echo "[test]three=3" >.git/bar3 && + echo 3 >expect && + git config test.three >actual && + test_cmp expect actual + ) + +ok 20 - conditional include, full pattern + +expecting success of 1305.21 'conditional include, relative path': + echo "[includeIf \"gitdir:./foo/.git\"]path=bar4" >>.gitconfig && + echo "[test]four=4" >bar4 && + ( + cd foo && + echo 4 >expect && + git config test.four >actual && + test_cmp expect actual + ) + +ok 21 - conditional include, relative path + +expecting success of 1305.22 'conditional include, both unanchored, icase': + ( + cd foo && + echo "[includeIf \"gitdir/i:FOO/\"]path=bar5" >>.git/config && + echo "[test]five=5" >.git/bar5 && + echo 5 >expect && + git config test.five >actual && + test_cmp expect actual + ) + +ok 22 - conditional include, both unanchored, icase + +expecting success of 1305.23 'conditional include, early config reading': + ( + cd foo && + echo "[includeIf \"gitdir:foo/\"]path=bar6" >>.git/config && + echo "[test]six=6" >.git/bar6 && + echo 6 >expect && + test-tool config read_early_config test.six >actual && + test_cmp expect actual + ) + +ok 23 - conditional include, early config reading + +expecting success of 1305.24 'conditional include with /**/': + REPO=foo/bar/repo && + git init $REPO && + cat >>$REPO/.git/config <<-\EOF && + [includeIf "gitdir:**/foo/**/bar/**"] + path=bar7 + EOF + echo "[test]seven=7" >$REPO/.git/bar7 && + echo 7 >expect && + git -C $REPO config test.seven >actual && + test_cmp expect actual -expecting success of 1301.2 'shared=1 does not clear bits preset by umask 002': - mkdir sub && ( - cd sub && - umask $u && - git init --shared=1 && - test 1 = "$(git config core.sharedrepository)" - ) && - actual=$(ls -l sub/.git/HEAD) && - case "$actual" in - -rw-rw-r--*) - : happy - ;; - *) - echo Oops, .git/HEAD is not 0664 but $actual - false - ;; - esac - hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all hint: of your new repositories, which will suppress this warning, call: @@ -37834,27 +38593,32 @@ hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m -Initialized empty shared Git repository in /build/git-2.30.2/t/trash directory.t1301-shared-repo/sub/.git/ -ok 2 - shared=1 does not clear bits preset by umask 002 +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1305-config-include/foo/bar/repo/.git/ +ok 24 - conditional include with /**/ + +checking prerequisite: SYMLINKS + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && + # test whether the filesystem supports symbolic links + ln -s x y && test -h y + +) +prerequisite SYMLINKS ok +expecting success of 1305.25 'conditional include, set up symlinked $HOME': + mkdir real-home && + ln -s real-home home && + ( + HOME="$TRASH_DIRECTORY/home" && + export HOME && + cd "$HOME" && + + git init foo && + cd foo && + mkdir sub + ) -expecting success of 1301.3 'shared=1 does not clear bits preset by umask 022': - mkdir sub && ( - cd sub && - umask $u && - git init --shared=1 && - test 1 = "$(git config core.sharedrepository)" - ) && - actual=$(ls -l sub/.git/HEAD) && - case "$actual" in - -rw-rw-r--*) - : happy - ;; - *) - echo Oops, .git/HEAD is not 0664 but $actual - false - ;; - esac - hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all hint: of your new repositories, which will suppress this warning, call: @@ -37865,14 +38629,123 @@ hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m -Initialized empty shared Git repository in /build/git-2.30.2/t/trash directory.t1301-shared-repo/sub/.git/ -ok 3 - shared=1 does not clear bits preset by umask 022 +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1305-config-include/real-home/foo/.git/ +ok 25 - conditional include, set up symlinked $HOME -expecting success of 1301.4 'shared=all': - mkdir sub && - cd sub && - git init --shared=all && - test 2 = $(git config core.sharedrepository) +expecting success of 1305.26 'conditional include, $HOME expansion with symlinks': + ( + HOME="$TRASH_DIRECTORY/home" && + export HOME && + cd "$HOME"/foo && + + echo "[includeIf \"gitdir:~/foo/\"]path=bar2" >>.git/config && + echo "[test]two=2" >.git/bar2 && + echo 2 >expect && + force_setup_explicit_git_dir && + git -C sub config test.two >actual && + test_cmp expect actual + ) + +ok 26 - conditional include, $HOME expansion with symlinks + +expecting success of 1305.27 'conditional include, relative path with symlinks': + echo "[includeIf \"gitdir:./foo/.git\"]path=bar4" >home/.gitconfig && + echo "[test]four=4" >home/bar4 && + ( + HOME="$TRASH_DIRECTORY/home" && + export HOME && + cd "$HOME"/foo && + + echo 4 >expect && + force_setup_explicit_git_dir && + git -C sub config test.four >actual && + test_cmp expect actual + ) + +ok 27 - conditional include, relative path with symlinks + +expecting success of 1305.28 'conditional include, gitdir matching symlink': + ln -s foo bar && + ( + cd bar && + echo "[includeIf \"gitdir:bar/\"]path=bar7" >>.git/config && + echo "[test]seven=7" >.git/bar7 && + echo 7 >expect && + git config test.seven >actual && + test_cmp expect actual + ) + +ok 28 - conditional include, gitdir matching symlink + +expecting success of 1305.29 'conditional include, gitdir matching symlink, icase': + ( + cd bar && + echo "[includeIf \"gitdir/i:BAR/\"]path=bar8" >>.git/config && + echo "[test]eight=8" >.git/bar8 && + echo 8 >expect && + git config test.eight >actual && + test_cmp expect actual + ) + +ok 29 - conditional include, gitdir matching symlink, icase + +expecting success of 1305.30 'conditional include, onbranch': + echo "[includeIf \"onbranch:foo-branch\"]path=bar9" >>.git/config && + echo "[test]nine=9" >.git/bar9 && + git checkout -b master && + test_must_fail git config test.nine && + git checkout -b foo-branch && + echo 9 >expect && + git config test.nine >actual && + test_cmp expect actual + +Switched to a new branch 'master' +Switched to a new branch 'foo-branch' +ok 30 - conditional include, onbranch + +expecting success of 1305.31 'conditional include, onbranch, wildcard': + echo "[includeIf \"onbranch:?oo-*/**\"]path=bar10" >>.git/config && + echo "[test]ten=10" >.git/bar10 && + git checkout -b not-foo-branch/a && + test_must_fail git config test.ten && + + echo 10 >expect && + git checkout -b foo-branch/a/b/c && + git config test.ten >actual && + test_cmp expect actual && + + git checkout -b moo-bar/a && + git config test.ten >actual && + test_cmp expect actual + +Switched to a new branch 'not-foo-branch/a' +Switched to a new branch 'foo-branch/a/b/c' +Switched to a new branch 'moo-bar/a' +ok 31 - conditional include, onbranch, wildcard + +expecting success of 1305.32 'conditional include, onbranch, implicit /** for /': + echo "[includeIf \"onbranch:foo-dir/\"]path=bar11" >>.git/config && + echo "[test]eleven=11" >.git/bar11 && + git checkout -b not-foo-dir/a && + test_must_fail git config test.eleven && + + echo 11 >expect && + git checkout -b foo-dir/a/b/c && + git config test.eleven >actual && + test_cmp expect actual + +Switched to a new branch 'not-foo-dir/a' +Switched to a new branch 'foo-dir/a/b/c' +ok 32 - conditional include, onbranch, implicit /** for / + +expecting success of 1305.33 'include cycles are detected': + git init --bare cycle && + git -C cycle config include.path cycle && + git config -f cycle/cycle include.path config && + test_must_fail \ + env GIT_TEST_GETTEXT_POISON=false \ + git -C cycle config --get-all test.value 2>stderr && + grep "exceeded maximum include depth" stderr hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all @@ -37884,202 +38757,474 @@ hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m -Initialized empty shared Git repository in /build/git-2.30.2/t/trash directory.t1301-shared-repo/sub/.git/ -ok 4 - shared=all +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1305-config-include/cycle/ +fatal: exceeded maximum include depth (10) while including +ok 33 - include cycles are detected -expecting success of 1301.5 'update-server-info honors core.sharedRepository': - : > a1 && - git add a1 && - test_tick && - git commit -m a1 && - umask 0277 && - git update-server-info && - actual="$(ls -l .git/info/refs)" && - case "$actual" in - -r--r--r--*) - : happy - ;; - *) - echo Oops, .git/info/refs is not 0444 - false - ;; - esac +# passed all 33 test(s) +1..33 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t1306-xdg-files.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1306-xdg-files/.git/ +expecting success of 1306.1 'read config: xdg file exists and ~/.gitconfig doesn't': + mkdir -p .config/git && + echo "[alias]" >.config/git/config && + echo " myalias = !echo in_config" >>.config/git/config && + echo in_config >expected && + git myalias >actual && + test_cmp expected actual -[master (root-commit) a2bd363] a1 - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - create mode 100644 a1 -ok 5 - update-server-info honors core.sharedRepository +ok 1 - read config: xdg file exists and ~/.gitconfig doesn't -expecting success of 1301.6 'shared = 0660 (r--r-----) ro': +expecting success of 1306.2 'read config: xdg file exists and ~/.gitconfig exists': + >.gitconfig && + echo "[alias]" >.gitconfig && + echo " myalias = !echo in_gitconfig" >>.gitconfig && + echo in_gitconfig >expected && + git myalias >actual && + test_cmp expected actual - rm -f .git/info/refs && - git update-server-info && - actual="$(test_modebits .git/info/refs)" && - verbose test "x$actual" = "x-$y" +ok 2 - read config: xdg file exists and ~/.gitconfig exists - -ok 6 - shared = 0660 (r--r-----) ro +expecting success of 1306.3 'read with --get: xdg file exists and ~/.gitconfig doesn't': + rm .gitconfig && + echo "[user]" >.config/git/config && + echo " name = read_config" >>.config/git/config && + echo read_config >expected && + git config --get user.name >actual && + test_cmp expected actual -expecting success of 1301.7 'shared = 0660 (rw-rw----) rw': +ok 3 - read with --get: xdg file exists and ~/.gitconfig doesn't - rm -f .git/info/refs && - git update-server-info && - actual="$(test_modebits .git/info/refs)" && - verbose test "x$actual" = "x-$x" +expecting success of 1306.4 '"$XDG_CONFIG_HOME overrides $HOME/.config/git': + mkdir -p "$HOME"/xdg/git && + echo "[user]name = in_xdg" >"$HOME"/xdg/git/config && + echo in_xdg >expected && + XDG_CONFIG_HOME="$HOME"/xdg git config --get-all user.name >actual && + test_cmp expected actual - -ok 7 - shared = 0660 (rw-rw----) rw +ok 4 - "$XDG_CONFIG_HOME overrides $HOME/.config/git -expecting success of 1301.8 'shared = 0640 (r--r-----) ro': +expecting success of 1306.5 'read with --get: xdg file exists and ~/.gitconfig exists': + >.gitconfig && + echo "[user]" >.gitconfig && + echo " name = read_gitconfig" >>.gitconfig && + echo read_gitconfig >expected && + git config --get user.name >actual && + test_cmp expected actual - rm -f .git/info/refs && - git update-server-info && - actual="$(test_modebits .git/info/refs)" && - verbose test "x$actual" = "x-$y" +ok 5 - read with --get: xdg file exists and ~/.gitconfig exists - -ok 8 - shared = 0640 (r--r-----) ro +expecting success of 1306.6 'read with --list: xdg file exists and ~/.gitconfig doesn't': + rm .gitconfig && + echo user.name=read_config >expected && + git config --global --list >actual && + test_cmp expected actual -expecting success of 1301.9 'shared = 0640 (rw-r-----) rw': +ok 6 - read with --list: xdg file exists and ~/.gitconfig doesn't - rm -f .git/info/refs && - git update-server-info && - actual="$(test_modebits .git/info/refs)" && - verbose test "x$actual" = "x-$x" +expecting success of 1306.7 'read with --list: xdg file exists and ~/.gitconfig exists': + >.gitconfig && + echo "[user]" >.gitconfig && + echo " name = read_gitconfig" >>.gitconfig && + echo user.name=read_gitconfig >expected && + git config --global --list >actual && + test_cmp expected actual - -ok 9 - shared = 0640 (rw-r-----) rw +ok 7 - read with --list: xdg file exists and ~/.gitconfig exists -expecting success of 1301.10 'shared = 0600 (r--------) ro': +expecting success of 1306.8 'Setup': + git init git && + cd git && + echo foo >to_be_excluded - rm -f .git/info/refs && - git update-server-info && - actual="$(test_modebits .git/info/refs)" && - verbose test "x$actual" = "x-$y" +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1306-xdg-files/git/.git/ +ok 8 - Setup - -ok 10 - shared = 0600 (r--------) ro +expecting success of 1306.9 'Exclusion of a file in the XDG ignore file': + mkdir -p "$HOME"/.config/git/ && + echo to_be_excluded >"$HOME"/.config/git/ignore && + test_must_fail git add to_be_excluded -expecting success of 1301.11 'shared = 0600 (rw-------) rw': +The following paths are ignored by one of your .gitignore files: +to_be_excluded +hint: Use -f if you really want to add them. +hint: Turn this message off by running +hint: "git config advice.addIgnoredFile false" +ok 9 - Exclusion of a file in the XDG ignore file - rm -f .git/info/refs && - git update-server-info && - actual="$(test_modebits .git/info/refs)" && - verbose test "x$actual" = "x-$x" +expecting success of 1306.10 '$XDG_CONFIG_HOME overrides $HOME/.config/git/ignore': + mkdir -p "$HOME"/xdg/git && + echo content >excluded_by_xdg_only && + echo excluded_by_xdg_only >"$HOME"/xdg/git/ignore && + test_when_finished "git read-tree --empty" && + (XDG_CONFIG_HOME="$HOME/xdg" && + export XDG_CONFIG_HOME && + git add to_be_excluded && + test_must_fail git add excluded_by_xdg_only + ) - -ok 11 - shared = 0600 (rw-------) rw +The following paths are ignored by one of your .gitignore files: +excluded_by_xdg_only +hint: Use -f if you really want to add them. +hint: Turn this message off by running +hint: "git config advice.addIgnoredFile false" +ok 10 - $XDG_CONFIG_HOME overrides $HOME/.config/git/ignore -expecting success of 1301.12 'shared = 0666 (r--r--r--) ro': +expecting success of 1306.11 'Exclusion in both XDG and local ignore files': + echo to_be_excluded >.gitignore && + test_must_fail git add to_be_excluded - rm -f .git/info/refs && - git update-server-info && - actual="$(test_modebits .git/info/refs)" && - verbose test "x$actual" = "x-$y" +The following paths are ignored by one of your .gitignore files: +to_be_excluded +hint: Use -f if you really want to add them. +hint: Turn this message off by running +hint: "git config advice.addIgnoredFile false" +ok 11 - Exclusion in both XDG and local ignore files - -ok 12 - shared = 0666 (r--r--r--) ro +expecting success of 1306.12 'Exclusion in a non-XDG global ignore file': + rm .gitignore && + echo >"$HOME"/.config/git/ignore && + echo to_be_excluded >"$HOME"/my_gitignore && + git config core.excludesfile "$HOME"/my_gitignore && + test_must_fail git add to_be_excluded -expecting success of 1301.13 'shared = 0666 (rw-rw-rw-) rw': +The following paths are ignored by one of your .gitignore files: +to_be_excluded +hint: Use -f if you really want to add them. +hint: Turn this message off by running +hint: "git config advice.addIgnoredFile false" +ok 12 - Exclusion in a non-XDG global ignore file - rm -f .git/info/refs && - git update-server-info && - actual="$(test_modebits .git/info/refs)" && - verbose test "x$actual" = "x-$x" +expecting success of 1306.13 'Checking XDG ignore file when HOME is unset': + (sane_unset HOME && + git config --unset core.excludesfile && + git ls-files --exclude-standard --ignored >actual) && + test_must_be_empty actual - -ok 13 - shared = 0666 (rw-rw-rw-) rw +ok 13 - Checking XDG ignore file when HOME is unset -expecting success of 1301.14 'shared = 0664 (r--r--r--) ro': +expecting success of 1306.14 'Checking attributes in the XDG attributes file': + echo foo >f && + git check-attr -a f >actual && + test_line_count -eq 0 actual && + echo "f attr_f" >"$HOME"/.config/git/attributes && + echo "f: attr_f: set" >expected && + git check-attr -a f >actual && + test_cmp expected actual - rm -f .git/info/refs && - git update-server-info && - actual="$(test_modebits .git/info/refs)" && - verbose test "x$actual" = "x-$y" +ok 14 - Checking attributes in the XDG attributes file - -ok 14 - shared = 0664 (r--r--r--) ro +expecting success of 1306.15 'Checking XDG attributes when HOME is unset': + (sane_unset HOME && + git check-attr -a f >actual) && + test_must_be_empty actual -expecting success of 1301.15 'shared = 0664 (rw-rw-r--) rw': +ok 15 - Checking XDG attributes when HOME is unset - rm -f .git/info/refs && - git update-server-info && - actual="$(test_modebits .git/info/refs)" && - verbose test "x$actual" = "x-$x" +expecting success of 1306.16 '$XDG_CONFIG_HOME overrides $HOME/.config/git/attributes': + mkdir -p "$HOME"/xdg/git && + echo "f attr_f=xdg" >"$HOME"/xdg/git/attributes && + echo "f: attr_f: xdg" >expected && + XDG_CONFIG_HOME="$HOME/xdg" git check-attr -a f >actual && + test_cmp expected actual - -ok 15 - shared = 0664 (rw-rw-r--) rw +ok 16 - $XDG_CONFIG_HOME overrides $HOME/.config/git/attributes -expecting success of 1301.16 'info/refs respects umask in unshared repo': - rm -f .git/info/refs && - test_unconfig core.sharedrepository && - umask 002 && - git update-server-info && - echo "-rw-rw-r--" >expect && - test_modebits .git/info/refs >actual && +expecting success of 1306.17 'Checking attributes in both XDG and local attributes files': + echo "f -attr_f" >.gitattributes && + echo "f: attr_f: unset" >expected && + git check-attr -a f >actual && + test_cmp expected actual + +ok 17 - Checking attributes in both XDG and local attributes files + +expecting success of 1306.18 'Checking attributes in a non-XDG global attributes file': + rm -f .gitattributes && + echo "f attr_f=test" >"$HOME"/my_gitattributes && + git config core.attributesfile "$HOME"/my_gitattributes && + echo "f: attr_f: test" >expected && + git check-attr -a f >actual && + test_cmp expected actual + +ok 18 - Checking attributes in a non-XDG global attributes file + +expecting success of 1306.19 'write: xdg file exists and ~/.gitconfig doesn't': + mkdir -p "$HOME"/.config/git && + >"$HOME"/.config/git/config && + rm -f "$HOME"/.gitconfig && + git config --global user.name "write_config" && + echo "[user]" >expected && + echo " name = write_config" >>expected && + test_cmp expected "$HOME"/.config/git/config + +ok 19 - write: xdg file exists and ~/.gitconfig doesn't + +expecting success of 1306.20 'write: xdg file exists and ~/.gitconfig exists': + >"$HOME"/.gitconfig && + git config --global user.name "write_gitconfig" && + echo "[user]" >expected && + echo " name = write_gitconfig" >>expected && + test_cmp expected "$HOME"/.gitconfig + +ok 20 - write: xdg file exists and ~/.gitconfig exists + +expecting success of 1306.21 'write: ~/.config/git/ exists and config file doesn't': + rm -f "$HOME"/.gitconfig && + rm -f "$HOME"/.config/git/config && + git config --global user.name "write_gitconfig" && + echo "[user]" >expected && + echo " name = write_gitconfig" >>expected && + test_cmp expected "$HOME"/.gitconfig + +ok 21 - write: ~/.config/git/ exists and config file doesn't + +# passed all 21 test(s) +1..21 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t1307-config-blob.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1307-config-blob/.git/ +expecting success of 1307.1 'create config blob': + cat >config <<-\EOF && + [some] + value = 1 + EOF + git add config && + git commit -m foo + +[master (root-commit) 5571afa] foo + Author: A U Thor + 1 file changed, 2 insertions(+) + create mode 100644 config +ok 1 - create config blob + +expecting success of 1307.2 'list config blob contents': + echo some.value=1 >expect && + git config --blob=HEAD:config --list >actual && test_cmp expect actual -ok 16 - info/refs respects umask in unshared repo +ok 2 - list config blob contents -expecting success of 1301.17 'git reflog expire honors core.sharedRepository': - umask 077 && - git config core.sharedRepository group && - git reflog expire --all && - actual="$(ls -l .git/logs/refs/heads/master)" && - case "$actual" in - -rw-rw-*) - : happy - ;; - *) - echo Ooops, .git/logs/refs/heads/master is not 0662 [$actual] - false - ;; - esac +expecting success of 1307.3 'fetch value from blob': + echo true >expect && + git config --blob=HEAD:config --bool some.value >actual && + test_cmp expect actual -ok 17 - git reflog expire honors core.sharedRepository +ok 3 - fetch value from blob -expecting success of 1301.18 'forced modes': - mkdir -p templates/hooks && - echo update-server-info >templates/hooks/post-update && - chmod +x templates/hooks/post-update && - echo : >random-file && - mkdir new && +expecting success of 1307.4 'reading non-existing value from blob is an error': + test_must_fail git config --blob=HEAD:config non.existing + +ok 4 - reading non-existing value from blob is an error + +expecting success of 1307.5 'reading from blob and file is an error': + test_must_fail git config --blob=HEAD:config --system --list + +error: only one config file at a time +usage: git config [] + +Config file location + --global use global config file + --system use system config file + --local use repository config file + --worktree use per-worktree config file + -f, --file use given config file + --blob read config from given blob object + +Action + --get get value: name [value-pattern] + --get-all get all values: key [value-pattern] + --get-regexp get values for regexp: name-regex [value-pattern] + --get-urlmatch get value specific for the URL: section[.var] URL + --replace-all replace all matching variables: name value [value-pattern] + --add add a new variable: name value + --unset remove a variable: name [value-pattern] + --unset-all remove all matches: name [value-pattern] + --rename-section rename section: old-name new-name + --remove-section remove a section: name + -l, --list list all + --fixed-value use string equality when comparing values to 'value-pattern' + -e, --edit open an editor + --get-color find the color configured: slot [default] + --get-colorbool find the color setting: slot [stdout-is-tty] + +Type + -t, --type <> value is given this type + --bool value is "true" or "false" + --int value is decimal number + --bool-or-int value is --bool or --int + --bool-or-str value is --bool or string + --path value is a path (file or directory name) + --expiry-date value is an expiry date + +Other + -z, --null terminate values with NUL byte + --name-only show variable names only + --includes respect include directives on lookup + --show-origin show origin of config (file, standard input, blob, command line) + --show-scope show scope of config (worktree, local, global, system, command) + --default with --get, use default value when missing entry + +ok 5 - reading from blob and file is an error + +expecting success of 1307.6 'reading from missing ref is an error': + test_must_fail git config --blob=HEAD:doesnotexist --list + +error: unable to resolve config blob 'HEAD:doesnotexist' +fatal: error processing config file(s) +ok 6 - reading from missing ref is an error + +expecting success of 1307.7 'reading from non-blob is an error': + test_must_fail git config --blob=HEAD --list + +error: reference 'HEAD' does not point to a blob +fatal: error processing config file(s) +ok 7 - reading from non-blob is an error + +expecting success of 1307.8 'setting a value in a blob is an error': + test_must_fail git config --blob=HEAD:config some.value foo + +fatal: writing config blobs is not supported +ok 8 - setting a value in a blob is an error + +expecting success of 1307.9 'deleting a value in a blob is an error': + test_must_fail git config --blob=HEAD:config --unset some.value + +fatal: writing config blobs is not supported +ok 9 - deleting a value in a blob is an error + +expecting success of 1307.10 'editing a blob is an error': + test_must_fail git config --blob=HEAD:config --edit + +fatal: editing blobs is not supported +ok 10 - editing a blob is an error + +expecting success of 1307.11 'parse errors in blobs are properly attributed': + cat >config <<-\EOF && + [some] + value = " + EOF + git add config && + git commit -m broken && + + test_must_fail git config --blob=HEAD:config some.value 2>err && + test_i18ngrep "HEAD:config" err + +[master 91b4611] broken + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +checking prerequisite: C_LOCALE_OUTPUT + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false + +) +prerequisite C_LOCALE_OUTPUT ok +error: bad config line 2 in blob HEAD:config +ok 11 - parse errors in blobs are properly attributed + +expecting success of 1307.12 'can parse blob ending with CR': + printf "[some]key = value\\r" >config && + git add config && + git commit -m CR && + echo value >expect && + git config --blob=HEAD:config some.key >actual && + test_cmp expect actual + +[master 2e1cb03] CR + Author: A U Thor + 1 file changed, 1 insertion(+), 2 deletions(-) +ok 12 - can parse blob ending with CR + +expecting success of 1307.13 'config --blob outside of a repository is an error': + nongit test_must_fail git config --blob=foo --list + +fatal: --blob can only be used inside a git repository +ok 13 - config --blob outside of a repository is an error + +# passed all 13 test(s) +1..13 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t1309-early-config.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1309-early-config/.git/ +expecting success of 1309.1 'read early config': + test_config early.config correct && + test-tool config read_early_config early.config >output && + test correct = "$(cat output)" + +ok 1 - read early config + +expecting success of 1309.2 'in a sub-directory': + test_config early.config sub && + mkdir -p sub && ( - cd new && - umask 002 && - git init --shared=0660 --template=templates && - >frotz && - git add frotz && - git commit -a -m initial && - git repack - ) && - # List repository files meant to be protected; note that - # COMMIT_EDITMSG does not matter---0mode is not about a - # repository with a work tree. - find new/.git -type f -name COMMIT_EDITMSG -prune -o -print | - xargs ls -ld >actual && + cd sub && + test-tool config read_early_config early.config + ) >output && + test sub = "$(cat output)" - # Everything must be unaccessible to others - test -z "$(sed -e "/^.......---/d" actual)" && +ok 2 - in a sub-directory - # All directories must have either 2770 or 770 - test -z "$(sed -n -e "/^drwxrw[sx]---/d" -e "/^d/p" actual)" && +expecting success of 1309.3 'ceiling': + test_config early.config ceiling && + mkdir -p sub && + ( + GIT_CEILING_DIRECTORIES="$PWD" && + export GIT_CEILING_DIRECTORIES && + cd sub && + test-tool config read_early_config early.config + ) >output && + test_must_be_empty output - # post-update hook must be 0770 - test -z "$(sed -n -e "/post-update/{ - /^-rwxrwx---/d - p - }" actual)" && +ok 3 - ceiling - # All files inside objects must be accessible by us - test -z "$(sed -n -e "/objects\//{ - /^d/d - /^-r.-r.----/d - p - }" actual)" +expecting success of 1309.4 'ceiling #2': + mkdir -p xdg/git && + git config -f xdg/git/config early.config xdg && + test_config early.config ceiling && + mkdir -p sub && + ( + XDG_CONFIG_HOME="$PWD"/xdg && + GIT_CEILING_DIRECTORIES="$PWD" && + export GIT_CEILING_DIRECTORIES XDG_CONFIG_HOME && + cd sub && + test-tool config read_early_config early.config + ) >output && + test xdg = "$(cat output)" + +ok 4 - ceiling #2 + +expecting success of 1309.5 'read config file in right order': + echo "[test]source = home" >>.gitconfig && + git init foo && + ( + cd foo && + echo "[test]source = repo" >>.git/config && + GIT_CONFIG_PARAMETERS=$cmdline_config test-tool config \ + read_early_config test.source >actual && + cat >expected <<-\EOF && + home + repo + cmdline + EOF + test_cmp expected actual + ) -warning: templates not found in /build/git-2.30.2/t/trash directory.t1301-shared-repo/sub/new/templates hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all hint: of your new repositories, which will suppress this warning, call: @@ -38090,20 +39235,28 @@ hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m -Initialized empty shared Git repository in /build/git-2.30.2/t/trash directory.t1301-shared-repo/sub/new/.git/ -[master (root-commit) e4c5dc6] initial - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - create mode 100644 frotz -ok 18 - forced modes +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1309-early-config/foo/.git/ +ok 5 - read config file in right order -expecting success of 1301.19 'remote init does not use config from cwd': - git config core.sharedrepository 0666 && - umask 0022 && - git init --bare child.git && - echo "-rw-r--r--" >expect && - test_modebits child.git/config >actual && - test_cmp expect actual +expecting success of 1309.6 'ignore .git/ with incompatible repository version': + test_with_config "[core]repositoryformatversion = 999999" 2>err && + test_i18ngrep "warning:.* Expected git repo version <= [1-9]" err + +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1309-early-config/throwaway/.git/ +checking prerequisite: C_LOCALE_OUTPUT + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false + +) +prerequisite C_LOCALE_OUTPUT ok +warning: ignoring git dir '.git': Expected git repo version <= 1, found 999999 +ok 6 - ignore .git/ with incompatible repository version + +checking known breakage of 1309.7 'ignore .git/ with invalid repository version': + test_with_config "[core]repositoryformatversion = invalid" hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all @@ -38115,30 +39268,12 @@ hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1301-shared-repo/sub/child.git/ -ok 19 - remote init does not use config from cwd - -expecting success of 1301.20 're-init respects core.sharedrepository (local)': - git config core.sharedrepository 0666 && - umask 0022 && - echo whatever >templates/foo && - git init --template=templates && - echo "-rw-rw-rw-" >expect && - test_modebits .git/foo >actual && - test_cmp expect actual - -Reinitialized existing shared Git repository in /build/git-2.30.2/t/trash directory.t1301-shared-repo/sub/.git/ -ok 20 - re-init respects core.sharedrepository (local) +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1309-early-config/throwaway/.git/ +fatal: bad numeric config value 'invalid' for 'core.repositoryformatversion' in file .git/config: invalid unit +not ok 7 - ignore .git/ with invalid repository version # TODO known breakage -expecting success of 1301.21 're-init respects core.sharedrepository (remote)': - rm -rf child.git && - umask 0022 && - git init --bare --shared=0666 child.git && - test_path_is_missing child.git/foo && - git init --bare --template=templates child.git && - echo "-rw-rw-rw-" >expect && - test_modebits child.git/foo >actual && - test_cmp expect actual +checking known breakage of 1309.8 'ignore .git/ with invalid config': + test_with_config "[" hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all @@ -38150,19 +39285,13 @@ hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m -Initialized empty shared Git repository in /build/git-2.30.2/t/trash directory.t1301-shared-repo/sub/child.git/ -Reinitialized existing shared Git repository in /build/git-2.30.2/t/trash directory.t1301-shared-repo/sub/child.git/ -ok 21 - re-init respects core.sharedrepository (remote) +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1309-early-config/throwaway/.git/ +fatal: bad config line 1 in file .git/config +not ok 8 - ignore .git/ with invalid config # TODO known breakage -expecting success of 1301.22 'template can set core.sharedrepository': - rm -rf child.git && - umask 0022 && - git config core.sharedrepository 0666 && - cp .git/config templates/config && - git init --bare --template=templates child.git && - echo "-rw-rw-rw-" >expect && - test_modebits child.git/HEAD >actual && - test_cmp expect actual +expecting success of 1309.9 'early config and onbranch': + echo "[broken" >broken && + test_with_config "[includeif \"onbranch:topic\"]path=../broken" hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all @@ -38174,728 +39303,430 @@ hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m -Initialized empty shared Git repository in /build/git-2.30.2/t/trash directory.t1301-shared-repo/sub/child.git/ -ok 22 - template can set core.sharedrepository +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1309-early-config/throwaway/.git/ +ok 9 - early config and onbranch -# passed all 22 test(s) -1..22 +expecting success of 1309.10 'onbranch config outside of git repo': + test_config_global includeIf.onbranch:topic.path non-existent && + nongit git help + +usage: git [--version] [--help] [-C ] [-c =] + [--exec-path[=]] [--html-path] [--man-path] [--info-path] + [-p | --paginate | -P | --no-pager] [--no-replace-objects] [--bare] + [--git-dir=] [--work-tree=] [--namespace=] + [] + +These are common Git commands used in various situations: + +start a working area (see also: git help tutorial) + clone Clone a repository into a new directory + init Create an empty Git repository or reinitialize an existing one + +work on the current change (see also: git help everyday) + add Add file contents to the index + mv Move or rename a file, a directory, or a symlink + restore Restore working tree files + rm Remove files from the working tree and from the index + sparse-checkout Initialize and modify the sparse-checkout + +examine the history and state (see also: git help revisions) + bisect Use binary search to find the commit that introduced a bug + diff Show changes between commits, commit and working tree, etc + grep Print lines matching a pattern + log Show commit logs + show Show various types of objects + status Show the working tree status + +grow, mark and tweak your common history + branch List, create, or delete branches + commit Record changes to the repository + merge Join two or more development histories together + rebase Reapply commits on top of another base tip + reset Reset current HEAD to the specified state + switch Switch branches + tag Create, list, delete or verify a tag object signed with GPG + +collaborate (see also: git help workflows) + fetch Download objects and refs from another repository + pull Fetch from and integrate with another repository or a local branch + push Update remote refs along with associated objects + +'git help -a' and 'git help -g' list available subcommands and some +concept guides. See 'git help ' or 'git help ' +to read about a specific subcommand or concept. +See 'git help git' for an overview of the system. +ok 10 - onbranch config outside of git repo + +# still have 2 known breakage(s) +# passed all remaining 8 test(s) +1..10 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t1302-repo-version.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1302-repo-version/.git/ -expecting success of 1302.1 'setup': - test_oid_cache <<-\EOF && - version sha1:0 - version sha256:1 - EOF - cat >test.patch <<-\EOF && - diff --git a/test.txt b/test.txt - new file mode 100644 - --- /dev/null - +++ b/test.txt - @@ -0,0 +1 @@ - +123 +*** t1308-config-set.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1308-config-set/.git/ +expecting success of 1308.1 'setup default config': + cat >.git/config <<-\EOF + [case] + penguin = very blue + Movie = BadPhysics + UPPERCASE = true + MixedCase = true + my = + foo + baz = sam + [Cores] + WhatEver = Second + baz = bar + [cores] + baz = bat + [CORES] + baz = ball + [my "Foo bAr"] + hi = mixed-case + [my "FOO BAR"] + hi = upper-case + [my "foo bar"] + hi = lower-case + [case] + baz = bat + baz = hask + [lamb] + chop = 65 + head = none + [goat] + legs = 4 + head = true + skin = false + nose = 1 + horns EOF - test_create_repo "test" && - test_create_repo "test2" && - git config --file=test2/.git/config core.repositoryformatversion 99 +ok 1 - setup default config -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1302-repo-version/test/.git/ -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1302-repo-version/test2/.git/ -ok 1 - setup +expecting success of 1308.2 'get value for a simple key': + check_config get_value case.penguin "very blue" -expecting success of 1302.2 'gitdir selection on normal repos': - echo $(test_oid version) >expect && - git config core.repositoryformatversion >actual && - git -C test config core.repositoryformatversion >actual2 && - test_cmp expect actual && - test_cmp expect actual2 +ok 2 - get value for a simple key -ok 2 - gitdir selection on normal repos +expecting success of 1308.3 'get value for a key with value as an empty string': + check_config get_value case.my "" -expecting success of 1302.3 'gitdir selection on unsupported repo': - # Make sure it would stop at test2, not trash - test_expect_code 1 git -C test2 config core.repositoryformatversion >actual +ok 3 - get value for a key with value as an empty string -warning: Expected git repo version <= 1, found 99 -ok 3 - gitdir selection on unsupported repo +expecting success of 1308.4 'get value for a key with value as NULL': + check_config get_value case.foo "(NULL)" -expecting success of 1302.4 'gitdir not required mode': - git apply --stat test.patch && - git -C test apply --stat ../test.patch && - git -C test2 apply --stat ../test.patch +ok 4 - get value for a key with value as NULL - test.txt | 1 + - 1 file changed, 1 insertion(+) - test.txt | 1 + - 1 file changed, 1 insertion(+) -warning: Expected git repo version <= 1, found 99 -warning: ignoring git dir '.git': Expected git repo version <= 1, found 99 - test.txt | 1 + - 1 file changed, 1 insertion(+) -ok 4 - gitdir not required mode +expecting success of 1308.5 'upper case key': + check_config get_value case.UPPERCASE "true" && + check_config get_value case.uppercase "true" -expecting success of 1302.5 'gitdir required mode': - git apply --check --index test.patch && - git -C test apply --check --index ../test.patch && - test_must_fail git -C test2 apply --check --index ../test.patch +ok 5 - upper case key -warning: Expected git repo version <= 1, found 99 -warning: ignoring git dir '.git': Expected git repo version <= 1, found 99 -error: --index outside a repository -ok 5 - gitdir required mode +expecting success of 1308.6 'mixed case key': + check_config get_value case.MixedCase "true" && + check_config get_value case.MIXEDCASE "true" && + check_config get_value case.mixedcase "true" -expecting success of 1302.6 'allow version=0 ': - mkconfig 0 >.git/config && - check_allow - -ok 6 - allow version=0 +ok 6 - mixed case key -expecting success of 1302.7 'allow version=1 ': - mkconfig 1 >.git/config && - check_allow - -ok 7 - allow version=1 +expecting success of 1308.7 'key and value with mixed case': + check_config get_value case.Movie "BadPhysics" -expecting success of 1302.8 'allow version=1 noop': - mkconfig 1 noop >.git/config && - check_allow - -ok 8 - allow version=1 noop +ok 7 - key and value with mixed case -expecting success of 1302.9 'abort version=1 no-such-extension': - mkconfig 1 no-such-extension >.git/config && - check_abort - -fatal: unknown repository extensions found: - no-such-extension -ok 9 - abort version=1 no-such-extension +expecting success of 1308.8 'key with case sensitive subsection': + check_config get_value "my.Foo bAr.hi" "mixed-case" && + check_config get_value "my.FOO BAR.hi" "upper-case" && + check_config get_value "my.foo bar.hi" "lower-case" -expecting success of 1302.10 'allow version=0 no-such-extension': - mkconfig 0 no-such-extension >.git/config && - check_allow - -ok 10 - allow version=0 no-such-extension +ok 8 - key with case sensitive subsection -expecting success of 1302.11 'allow version=0 noop': - mkconfig 0 noop >.git/config && - check_allow - -ok 11 - allow version=0 noop +expecting success of 1308.9 'key with case insensitive section header': + check_config get_value cores.baz "ball" && + check_config get_value Cores.baz "ball" && + check_config get_value CORES.baz "ball" && + check_config get_value coreS.baz "ball" -expecting success of 1302.12 'abort version=0 noop-v1': - mkconfig 0 noop-v1 >.git/config && - check_abort - -fatal: repo version is 0, but v1-only extensions found: - noop-v1 -ok 12 - abort version=0 noop-v1 +ok 9 - key with case insensitive section header -expecting success of 1302.13 'allow version=1 noop-v1': - mkconfig 1 noop-v1 >.git/config && - check_allow - -ok 13 - allow version=1 noop-v1 +expecting success of 1308.10 'key with case insensitive section header & variable': + check_config get_value CORES.BAZ "ball" && + check_config get_value cores.baz "ball" && + check_config get_value cores.BaZ "ball" && + check_config get_value cOreS.bAz "ball" -expecting success of 1302.14 'precious-objects allowed': - mkconfig 1 preciousObjects >.git/config && - check_allow +ok 10 - key with case insensitive section header & variable -ok 14 - precious-objects allowed +expecting success of 1308.11 'find value with misspelled key': + check_config expect_code 1 get_value "my.fOo Bar.hi" "Value not found for \"my.fOo Bar.hi\"" -expecting success of 1302.15 'precious-objects blocks destructive repack': - test_must_fail git repack -ad +ok 11 - find value with misspelled key -fatal: cannot delete packs in a precious-objects repo -ok 15 - precious-objects blocks destructive repack +expecting success of 1308.12 'find value with the highest priority': + check_config get_value case.baz "hask" -expecting success of 1302.16 'other repacks are OK': - test_commit foo && - git repack +ok 12 - find value with the highest priority -[master (root-commit) ddd63c9] foo - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 foo.t -ok 16 - other repacks are OK +expecting success of 1308.13 'find integer value for a key': + check_config get_int lamb.chop 65 -expecting success of 1302.17 'precious-objects blocks prune': - test_must_fail git prune +ok 13 - find integer value for a key -fatal: cannot prune in a precious-objects repo -ok 17 - precious-objects blocks prune +expecting success of 1308.14 'find string value for a key': + check_config get_string case.baz hask && + check_config expect_code 1 get_string case.ba "Value not found for \"case.ba\"" -expecting success of 1302.18 'gc runs without complaint': - git gc +ok 14 - find string value for a key -ok 18 - gc runs without complaint +expecting success of 1308.15 'check line error when NULL string is queried': + test_expect_code 128 test-tool config get_string case.foo 2>result && + test_i18ngrep "fatal: .*case\.foo.*\.git/config.*line 7" result -# passed all 18 test(s) -1..18 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1303-wacky-config.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1303-wacky-config/.git/ -expecting success of 1303.1 'modify same key': - setup && - git config section.key bar && - check section.key bar +checking prerequisite: C_LOCALE_OUTPUT -ok 1 - modify same key +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false -expecting success of 1303.2 'add key in same section': - setup && - git config section.other bar && - check section.key foo && - check section.other bar +) +prerequisite C_LOCALE_OUTPUT ok +fatal: bad config variable 'case.foo' in file '.git/config' at line 7 +ok 15 - check line error when NULL string is queried -ok 2 - add key in same section +expecting success of 1308.16 'find integer if value is non parse-able': + check_config expect_code 128 get_int lamb.head -expecting success of 1303.3 'add key in different section': - setup && - git config section2.key bar && - check section.key foo && - check section2.key bar +fatal: bad numeric config value 'none' for 'lamb.head': invalid unit +ok 16 - find integer if value is non parse-able -ok 3 - add key in different section +expecting success of 1308.17 'find bool value for the entered key': + check_config get_bool goat.head 1 && + check_config get_bool goat.skin 0 && + check_config get_bool goat.nose 1 && + check_config get_bool goat.horns 1 && + check_config get_bool goat.legs 1 -expecting success of 1303.4 'make sure git config escapes section names properly': - git config "$SECTION" bar && - check "$SECTION" bar +ok 17 - find bool value for the entered key -ok 4 - make sure git config escapes section names properly +expecting success of 1308.18 'find multiple values': + check_config get_value_multi case.baz sam bat hask -expecting success of 1303.5 'do not crash on special long config line': - setup && - git config section.key "$LONG_VALUE" && - check section.key "$LONG_VALUE" +ok 18 - find multiple values -ok 5 - do not crash on special long config line +expecting success of 1308.19 'find value from a configset': + cat >config2 <<-\EOF && + [case] + baz = lama + [my] + new = silk + [case] + baz = ball + EOF + echo silk >expect && + test-tool config configset_get_value my.new config2 .git/config >actual && + test_cmp expect actual -expecting success of 1303.6 'get many entries': - setup_many && - git config --get-all section.key >actual && - test_line_count = 3126 actual +ok 19 - find value from a configset -ok 6 - get many entries +expecting success of 1308.20 'find value with highest priority from a configset': + echo hask >expect && + test-tool config configset_get_value case.baz config2 .git/config >actual && + test_cmp expect actual -expecting success of 1303.7 'get many entries by regex': - setup_many && - git config --get-regexp "sec.*ke." >actual && - test_line_count = 3126 actual +ok 20 - find value with highest priority from a configset -ok 7 - get many entries by regex +expecting success of 1308.21 'find value_list for a key from a configset': + cat >expect <<-\EOF && + lama + ball + sam + bat + hask + EOF + test-tool config configset_get_value_multi case.baz config2 .git/config >actual && + test_cmp expect actual -expecting success of 1303.8 'add and replace one of many entries': - setup_many && - git config --add section.key bar && - check_regex section.key "b.*r" bar && - git config section.key beer "b.*r" && - check_regex section.key "b.*r" beer +ok 21 - find value_list for a key from a configset -ok 8 - add and replace one of many entries +expecting success of 1308.22 'proper error on non-existent files': + echo "Error (-1) reading configuration file non-existent-file." >expect && + test_expect_code 2 test-tool config configset_get_value foo.bar non-existent-file 2>actual && + test_cmp expect actual -expecting success of 1303.9 'replace many entries': - setup_many && - git config --replace-all section.key bar && - check section.key bar +ok 22 - proper error on non-existent files -ok 9 - replace many entries +expecting success of 1308.23 'proper error on directory "files"': + echo "Error (-1) reading configuration file a-directory." >expect && + mkdir a-directory && + test_expect_code 2 test-tool config configset_get_value foo.bar a-directory 2>output && + grep "^warning:" output && + grep "^Error" output >actual && + test_cmp expect actual -expecting success of 1303.10 'unset many entries': - setup_many && - git config --unset-all section.key && - test_must_fail git config section.key +warning: unable to access 'a-directory': Is a directory +ok 23 - proper error on directory "files" -ok 10 - unset many entries +checking prerequisite: SANITY -expecting success of 1303.11 '--add appends new value after existing empty value': - cat >expect <<-\EOF && +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SANITY" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-SANITY" && + mkdir SANETESTD.1 SANETESTD.2 && + chmod +w SANETESTD.1 SANETESTD.2 && + >SANETESTD.1/x 2>SANETESTD.2/x && + chmod -w SANETESTD.1 && + chmod -r SANETESTD.1/x && + chmod -rx SANETESTD.2 || + BUG "cannot prepare SANETESTD" - fool - roll - EOF + ! test -r SANETESTD.1/x && + ! rm SANETESTD.1/x && ! test -f SANETESTD.2/x + status=$? + + chmod +rwx SANETESTD.1 SANETESTD.2 && + rm -rf SANETESTD.1 SANETESTD.2 || + BUG "cannot clean SANETESTD" + return $status + +) +rm: cannot remove 'SANETESTD.1/x': Permission denied +prerequisite SANITY ok +expecting success of 1308.24 'proper error on non-accessible files': + chmod -r .git/config && + test_when_finished "chmod +r .git/config" && + echo "Error (-1) reading configuration file .git/config." >expect && + test_expect_code 2 test-tool config configset_get_value foo.bar .git/config 2>output && + grep "^warning:" output && + grep "^Error" output >actual && + test_cmp expect actual + +warning: unable to access '.git/config': Permission denied +warning: unable to access '.git/config': Permission denied +ok 24 - proper error on non-accessible files + +expecting success of 1308.25 'proper error on error in default config files': cp .git/config .git/config.old && test_when_finished "mv .git/config.old .git/config" && + echo "[" >>.git/config && + echo "fatal: bad config line 34 in file .git/config" >expect && + test_expect_code 128 test-tool config get_value foo.bar 2>actual && + test_i18ncmp expect actual + +ok 25 - proper error on error in default config files + +expecting success of 1308.26 'proper error on error in custom config files': + echo "[" >>syntax-error && + echo "fatal: bad config line 1 in file syntax-error" >expect && + test_expect_code 128 test-tool config configset_get_value foo.bar syntax-error 2>actual && + test_i18ncmp expect actual + +ok 26 - proper error on error in custom config files + +expecting success of 1308.27 'check line errors for malformed values': + mv .git/config .git/config.old && + test_when_finished "mv .git/config.old .git/config" && cat >.git/config <<-\EOF && - [foo] - baz - baz = - baz = fool + [alias] + br EOF - git config --add foo.baz roll && - git config --get-all foo.baz >output && - test_cmp expect output + test_expect_code 128 git br 2>result && + test_i18ngrep "missing value for .alias\.br" result && + test_i18ngrep "fatal: .*\.git/config" result && + test_i18ngrep "fatal: .*line 2" result -ok 11 - --add appends new value after existing empty value +error: missing value for 'alias.br' +fatal: bad config line 2 in file .git/config +fatal: bad config line 2 in file .git/config +ok 27 - check line errors for malformed values -# passed all 11 test(s) -1..11 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1304-default-acl.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1304-default-acl/.git/ -expecting success of 1304.1 'checking for a working acl setup': - if setfacl -m d:m:rwx -m u:root:rwx . && - getfacl . | grep user:root:rwx && - touch should-have-readable-acl && - getfacl should-have-readable-acl | egrep "mask::?rw-" +expecting success of 1308.28 'error on modifying repo config without repo': + nongit test_must_fail git config a.b c 2>err && + test_i18ngrep "not in a git directory" err + +fatal: not in a git directory +ok 28 - error on modifying repo config without repo + +expecting success of 1308.29 'iteration shows correct origins': + printf "[ignore]\n\tthis = please\n[foo]bar = from-repo\n" >.git/config && + printf "[foo]\n\tbar = from-home\n" >.gitconfig && + if test_have_prereq MINGW then - test_set_prereq SETFACL - fi + # Use Windows path (i.e. *not* $HOME) + HOME_GITCONFIG=$(pwd)/.gitconfig + else + # Do not get fooled by symbolic links, i.e. $HOME != $(pwd) + HOME_GITCONFIG=$HOME/.gitconfig + fi && + cat >expect <<-EOF && + key=foo.bar + value=from-home + origin=file + name=$HOME_GITCONFIG + lno=2 + scope=global -t1304-default-acl.sh: 4: eval: setfacl: not found -ok 1 - checking for a working acl setup + key=ignore.this + value=please + origin=file + name=.git/config + lno=2 + scope=local -ok 2 # skip Setup test repo (missing SETFACL) + key=foo.bar + value=from-repo + origin=file + name=.git/config + lno=3 + scope=local -ok 3 # skip Objects creation does not break ACLs with restrictive umask (missing SETFACL) + key=foo.bar + value=from-cmdline + origin=command line + name= + lno=-1 + scope=command + EOF + GIT_CONFIG_PARAMETERS=$cmdline_config test-tool config iterate >actual && + test_cmp expect actual -ok 4 # skip git gc does not break ACLs with restrictive umask (missing SETFACL) +ok 29 - iteration shows correct origins -# passed all 4 test(s) -1..4 +# passed all 29 test(s) +1..29 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t0027-auto-crlf.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0027-auto-crlf/.git/ -expecting success of 0027.1 'ls-files --eol -o Text/Binary': - test_when_finished "rm expect actual TeBi_*" && - STRT=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA && - STR=$STRT$STRT$STRT$STRT && - printf "${STR}BBB\001" >TeBi_127_S && - printf "${STR}BBBB\001">TeBi_128_S && - printf "${STR}BBB\032" >TeBi_127_E && - printf "\032${STR}BBB" >TeBi_E_127 && - printf "${STR}BBBB\000">TeBi_128_N && - printf "${STR}BBB\012">TeBi_128_L && - printf "${STR}BBB\015">TeBi_127_C && - printf "${STR}BB\015\012" >TeBi_126_CL && - printf "${STR}BB\015\012\015" >TeBi_126_CLC && - sort <<-\EOF >expect && - i/ w/-text TeBi_127_S - i/ w/none TeBi_128_S - i/ w/none TeBi_127_E - i/ w/-text TeBi_E_127 - i/ w/-text TeBi_128_N - i/ w/lf TeBi_128_L - i/ w/-text TeBi_127_C - i/ w/crlf TeBi_126_CL - i/ w/-text TeBi_126_CLC - EOF - git ls-files --eol -o | - sed -n -e "/TeBi_/{s!attr/[ ]*!!g - s! ! !g - s! *! !g - p - }" | sort >actual && +*** t1310-config-default.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1310-config-default/.git/ +expecting success of 1310.1 'uses --default when entry missing': + echo quux >expect && + git config -f config --default=quux core.foo >actual && test_cmp expect actual -ok 1 - ls-files --eol -o Text/Binary +ok 1 - uses --default when entry missing -expecting success of 0027.2 'setup master': - echo >.gitattributes && - git checkout -b master && - git add .gitattributes && - git commit -m "add .gitattributes" . && - printf "\$Id: 0000000000000000000000000000000000000000 \$\nLINEONE\nLINETWO\nLINETHREE" >LF && - printf "\$Id: 0000000000000000000000000000000000000000 \$\r\nLINEONE\r\nLINETWO\r\nLINETHREE" >CRLF && - printf "\$Id: 0000000000000000000000000000000000000000 \$\nLINEONE\r\nLINETWO\nLINETHREE" >CRLF_mix_LF && - printf "\$Id: 0000000000000000000000000000000000000000 \$\nLINEONE\nLINETWO\rLINETHREE" >LF_mix_CR && - printf "\$Id: 0000000000000000000000000000000000000000 \$\r\nLINEONE\r\nLINETWO\rLINETHREE" >CRLF_mix_CR && - printf "\$Id: 0000000000000000000000000000000000000000 \$\r\nLINEONEQ\r\nLINETWO\r\nLINETHREE" | q_to_nul >CRLF_nul && - printf "\$Id: 0000000000000000000000000000000000000000 \$\nLINEONEQ\nLINETWO\nLINETHREE" | q_to_nul >LF_nul && - create_NNO_MIX_files && - git -c core.autocrlf=false add NNO_*.txt MIX_*.txt && - git commit -m "mixed line endings" && - test_tick +expecting success of 1310.2 'does not use --default when entry present': + echo bar >expect && + git -c core.foo=bar config --default=baz core.foo >actual && + test_cmp expect actual -Switched to a new branch 'master' -[master (root-commit) 92d411f] add .gitattributes - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 .gitattributes -[master 28e6523] mixed line endings - Author: A U Thor - 360 files changed, 1260 insertions(+) - create mode 100644 MIX_attr_-text_aeol__false_CRLF.txt - create mode 100644 MIX_attr_-text_aeol__false_CRLF_mix_LF.txt - create mode 100644 MIX_attr_-text_aeol__false_CRLF_nul.txt - create mode 100644 MIX_attr_-text_aeol__false_LF.txt - create mode 100644 MIX_attr_-text_aeol__false_LF_mix_CR.txt - create mode 100644 MIX_attr_-text_aeol__input_CRLF.txt - create mode 100644 MIX_attr_-text_aeol__input_CRLF_mix_LF.txt - create mode 100644 MIX_attr_-text_aeol__input_CRLF_nul.txt - create mode 100644 MIX_attr_-text_aeol__input_LF.txt - create mode 100644 MIX_attr_-text_aeol__input_LF_mix_CR.txt - create mode 100644 MIX_attr_-text_aeol__true_CRLF.txt - create mode 100644 MIX_attr_-text_aeol__true_CRLF_mix_LF.txt - create mode 100644 MIX_attr_-text_aeol__true_CRLF_nul.txt - create mode 100644 MIX_attr_-text_aeol__true_LF.txt - create mode 100644 MIX_attr_-text_aeol__true_LF_mix_CR.txt - create mode 100644 MIX_attr_-text_aeol_crlf_false_CRLF.txt - create mode 100644 MIX_attr_-text_aeol_crlf_false_CRLF_mix_LF.txt - create mode 100644 MIX_attr_-text_aeol_crlf_false_CRLF_nul.txt - create mode 100644 MIX_attr_-text_aeol_crlf_false_LF.txt - create mode 100644 MIX_attr_-text_aeol_crlf_false_LF_mix_CR.txt - create mode 100644 MIX_attr_-text_aeol_crlf_input_CRLF.txt - create mode 100644 MIX_attr_-text_aeol_crlf_input_CRLF_mix_LF.txt - create mode 100644 MIX_attr_-text_aeol_crlf_input_CRLF_nul.txt - create mode 100644 MIX_attr_-text_aeol_crlf_input_LF.txt - create mode 100644 MIX_attr_-text_aeol_crlf_input_LF_mix_CR.txt - create mode 100644 MIX_attr_-text_aeol_crlf_true_CRLF.txt - create mode 100644 MIX_attr_-text_aeol_crlf_true_CRLF_mix_LF.txt - create mode 100644 MIX_attr_-text_aeol_crlf_true_CRLF_nul.txt - create mode 100644 MIX_attr_-text_aeol_crlf_true_LF.txt - create mode 100644 MIX_attr_-text_aeol_crlf_true_LF_mix_CR.txt - create mode 100644 MIX_attr_-text_aeol_lf_false_CRLF.txt - create mode 100644 MIX_attr_-text_aeol_lf_false_CRLF_mix_LF.txt - create mode 100644 MIX_attr_-text_aeol_lf_false_CRLF_nul.txt - create mode 100644 MIX_attr_-text_aeol_lf_false_LF.txt - create mode 100644 MIX_attr_-text_aeol_lf_false_LF_mix_CR.txt - create mode 100644 MIX_attr_-text_aeol_lf_input_CRLF.txt - create mode 100644 MIX_attr_-text_aeol_lf_input_CRLF_mix_LF.txt - create mode 100644 MIX_attr_-text_aeol_lf_input_CRLF_nul.txt - create mode 100644 MIX_attr_-text_aeol_lf_input_LF.txt - create mode 100644 MIX_attr_-text_aeol_lf_input_LF_mix_CR.txt - create mode 100644 MIX_attr_-text_aeol_lf_true_CRLF.txt - create mode 100644 MIX_attr_-text_aeol_lf_true_CRLF_mix_LF.txt - create mode 100644 MIX_attr_-text_aeol_lf_true_CRLF_nul.txt - create mode 100644 MIX_attr_-text_aeol_lf_true_LF.txt - create mode 100644 MIX_attr_-text_aeol_lf_true_LF_mix_CR.txt - create mode 100644 MIX_attr__aeol__false_CRLF.txt - create mode 100644 MIX_attr__aeol__false_CRLF_mix_LF.txt - create mode 100644 MIX_attr__aeol__false_CRLF_nul.txt - create mode 100644 MIX_attr__aeol__false_LF.txt - create mode 100644 MIX_attr__aeol__false_LF_mix_CR.txt - create mode 100644 MIX_attr__aeol__input_CRLF.txt - create mode 100644 MIX_attr__aeol__input_CRLF_mix_LF.txt - create mode 100644 MIX_attr__aeol__input_CRLF_nul.txt - create mode 100644 MIX_attr__aeol__input_LF.txt - create mode 100644 MIX_attr__aeol__input_LF_mix_CR.txt - create mode 100644 MIX_attr__aeol__true_CRLF.txt - create mode 100644 MIX_attr__aeol__true_CRLF_mix_LF.txt - create mode 100644 MIX_attr__aeol__true_CRLF_nul.txt - create mode 100644 MIX_attr__aeol__true_LF.txt - create mode 100644 MIX_attr__aeol__true_LF_mix_CR.txt - create mode 100644 MIX_attr__aeol_crlf_false_CRLF.txt - create mode 100644 MIX_attr__aeol_crlf_false_CRLF_mix_LF.txt - create mode 100644 MIX_attr__aeol_crlf_false_CRLF_nul.txt - create mode 100644 MIX_attr__aeol_crlf_false_LF.txt - create mode 100644 MIX_attr__aeol_crlf_false_LF_mix_CR.txt - create mode 100644 MIX_attr__aeol_crlf_input_CRLF.txt - create mode 100644 MIX_attr__aeol_crlf_input_CRLF_mix_LF.txt - create mode 100644 MIX_attr__aeol_crlf_input_CRLF_nul.txt - create mode 100644 MIX_attr__aeol_crlf_input_LF.txt - create mode 100644 MIX_attr__aeol_crlf_input_LF_mix_CR.txt - create mode 100644 MIX_attr__aeol_crlf_true_CRLF.txt - create mode 100644 MIX_attr__aeol_crlf_true_CRLF_mix_LF.txt - create mode 100644 MIX_attr__aeol_crlf_true_CRLF_nul.txt - create mode 100644 MIX_attr__aeol_crlf_true_LF.txt - create mode 100644 MIX_attr__aeol_crlf_true_LF_mix_CR.txt - create mode 100644 MIX_attr__aeol_lf_false_CRLF.txt - create mode 100644 MIX_attr__aeol_lf_false_CRLF_mix_LF.txt - create mode 100644 MIX_attr__aeol_lf_false_CRLF_nul.txt - create mode 100644 MIX_attr__aeol_lf_false_LF.txt - create mode 100644 MIX_attr__aeol_lf_false_LF_mix_CR.txt - create mode 100644 MIX_attr__aeol_lf_input_CRLF.txt - create mode 100644 MIX_attr__aeol_lf_input_CRLF_mix_LF.txt - create mode 100644 MIX_attr__aeol_lf_input_CRLF_nul.txt - create mode 100644 MIX_attr__aeol_lf_input_LF.txt - create mode 100644 MIX_attr__aeol_lf_input_LF_mix_CR.txt - create mode 100644 MIX_attr__aeol_lf_true_CRLF.txt - create mode 100644 MIX_attr__aeol_lf_true_CRLF_mix_LF.txt - create mode 100644 MIX_attr__aeol_lf_true_CRLF_nul.txt - create mode 100644 MIX_attr__aeol_lf_true_LF.txt - create mode 100644 MIX_attr__aeol_lf_true_LF_mix_CR.txt - create mode 100644 MIX_attr_auto_aeol__false_CRLF.txt - create mode 100644 MIX_attr_auto_aeol__false_CRLF_mix_LF.txt - create mode 100644 MIX_attr_auto_aeol__false_CRLF_nul.txt - create mode 100644 MIX_attr_auto_aeol__false_LF.txt - create mode 100644 MIX_attr_auto_aeol__false_LF_mix_CR.txt - create mode 100644 MIX_attr_auto_aeol__input_CRLF.txt - create mode 100644 MIX_attr_auto_aeol__input_CRLF_mix_LF.txt - create mode 100644 MIX_attr_auto_aeol__input_CRLF_nul.txt - create mode 100644 MIX_attr_auto_aeol__input_LF.txt - create mode 100644 MIX_attr_auto_aeol__input_LF_mix_CR.txt - create mode 100644 MIX_attr_auto_aeol__true_CRLF.txt - create mode 100644 MIX_attr_auto_aeol__true_CRLF_mix_LF.txt - create mode 100644 MIX_attr_auto_aeol__true_CRLF_nul.txt - create mode 100644 MIX_attr_auto_aeol__true_LF.txt - create mode 100644 MIX_attr_auto_aeol__true_LF_mix_CR.txt - create mode 100644 MIX_attr_auto_aeol_crlf_false_CRLF.txt - create mode 100644 MIX_attr_auto_aeol_crlf_false_CRLF_mix_LF.txt - create mode 100644 MIX_attr_auto_aeol_crlf_false_CRLF_nul.txt - create mode 100644 MIX_attr_auto_aeol_crlf_false_LF.txt - create mode 100644 MIX_attr_auto_aeol_crlf_false_LF_mix_CR.txt - create mode 100644 MIX_attr_auto_aeol_crlf_input_CRLF.txt - create mode 100644 MIX_attr_auto_aeol_crlf_input_CRLF_mix_LF.txt - create mode 100644 MIX_attr_auto_aeol_crlf_input_CRLF_nul.txt - create mode 100644 MIX_attr_auto_aeol_crlf_input_LF.txt - create mode 100644 MIX_attr_auto_aeol_crlf_input_LF_mix_CR.txt - create mode 100644 MIX_attr_auto_aeol_crlf_true_CRLF.txt - create mode 100644 MIX_attr_auto_aeol_crlf_true_CRLF_mix_LF.txt - create mode 100644 MIX_attr_auto_aeol_crlf_true_CRLF_nul.txt - create mode 100644 MIX_attr_auto_aeol_crlf_true_LF.txt - create mode 100644 MIX_attr_auto_aeol_crlf_true_LF_mix_CR.txt - create mode 100644 MIX_attr_auto_aeol_lf_false_CRLF.txt - create mode 100644 MIX_attr_auto_aeol_lf_false_CRLF_mix_LF.txt - create mode 100644 MIX_attr_auto_aeol_lf_false_CRLF_nul.txt - create mode 100644 MIX_attr_auto_aeol_lf_false_LF.txt - create mode 100644 MIX_attr_auto_aeol_lf_false_LF_mix_CR.txt - create mode 100644 MIX_attr_auto_aeol_lf_input_CRLF.txt - create mode 100644 MIX_attr_auto_aeol_lf_input_CRLF_mix_LF.txt - create mode 100644 MIX_attr_auto_aeol_lf_input_CRLF_nul.txt - create mode 100644 MIX_attr_auto_aeol_lf_input_LF.txt - create mode 100644 MIX_attr_auto_aeol_lf_input_LF_mix_CR.txt - create mode 100644 MIX_attr_auto_aeol_lf_true_CRLF.txt - create mode 100644 MIX_attr_auto_aeol_lf_true_CRLF_mix_LF.txt - create mode 100644 MIX_attr_auto_aeol_lf_true_CRLF_nul.txt - create mode 100644 MIX_attr_auto_aeol_lf_true_LF.txt - create mode 100644 MIX_attr_auto_aeol_lf_true_LF_mix_CR.txt - create mode 100644 MIX_attr_text_aeol__false_CRLF.txt - create mode 100644 MIX_attr_text_aeol__false_CRLF_mix_LF.txt - create mode 100644 MIX_attr_text_aeol__false_CRLF_nul.txt - create mode 100644 MIX_attr_text_aeol__false_LF.txt - create mode 100644 MIX_attr_text_aeol__false_LF_mix_CR.txt - create mode 100644 MIX_attr_text_aeol__input_CRLF.txt - create mode 100644 MIX_attr_text_aeol__input_CRLF_mix_LF.txt - create mode 100644 MIX_attr_text_aeol__input_CRLF_nul.txt - create mode 100644 MIX_attr_text_aeol__input_LF.txt - create mode 100644 MIX_attr_text_aeol__input_LF_mix_CR.txt - create mode 100644 MIX_attr_text_aeol__true_CRLF.txt - create mode 100644 MIX_attr_text_aeol__true_CRLF_mix_LF.txt - create mode 100644 MIX_attr_text_aeol__true_CRLF_nul.txt - create mode 100644 MIX_attr_text_aeol__true_LF.txt - create mode 100644 MIX_attr_text_aeol__true_LF_mix_CR.txt - create mode 100644 MIX_attr_text_aeol_crlf_false_CRLF.txt - create mode 100644 MIX_attr_text_aeol_crlf_false_CRLF_mix_LF.txt - create mode 100644 MIX_attr_text_aeol_crlf_false_CRLF_nul.txt - create mode 100644 MIX_attr_text_aeol_crlf_false_LF.txt - create mode 100644 MIX_attr_text_aeol_crlf_false_LF_mix_CR.txt - create mode 100644 MIX_attr_text_aeol_crlf_input_CRLF.txt - create mode 100644 MIX_attr_text_aeol_crlf_input_CRLF_mix_LF.txt - create mode 100644 MIX_attr_text_aeol_crlf_input_CRLF_nul.txt - create mode 100644 MIX_attr_text_aeol_crlf_input_LF.txt - create mode 100644 MIX_attr_text_aeol_crlf_input_LF_mix_CR.txt - create mode 100644 MIX_attr_text_aeol_crlf_true_CRLF.txt - create mode 100644 MIX_attr_text_aeol_crlf_true_CRLF_mix_LF.txt - create mode 100644 MIX_attr_text_aeol_crlf_true_CRLF_nul.txt - create mode 100644 MIX_attr_text_aeol_crlf_true_LF.txt - create mode 100644 MIX_attr_text_aeol_crlf_true_LF_mix_CR.txt - create mode 100644 MIX_attr_text_aeol_lf_false_CRLF.txt - create mode 100644 MIX_attr_text_aeol_lf_false_CRLF_mix_LF.txt - create mode 100644 MIX_attr_text_aeol_lf_false_CRLF_nul.txt - create mode 100644 MIX_attr_text_aeol_lf_false_LF.txt - create mode 100644 MIX_attr_text_aeol_lf_false_LF_mix_CR.txt - create mode 100644 MIX_attr_text_aeol_lf_input_CRLF.txt - create mode 100644 MIX_attr_text_aeol_lf_input_CRLF_mix_LF.txt - create mode 100644 MIX_attr_text_aeol_lf_input_CRLF_nul.txt - create mode 100644 MIX_attr_text_aeol_lf_input_LF.txt - create mode 100644 MIX_attr_text_aeol_lf_input_LF_mix_CR.txt - create mode 100644 MIX_attr_text_aeol_lf_true_CRLF.txt - create mode 100644 MIX_attr_text_aeol_lf_true_CRLF_mix_LF.txt - create mode 100644 MIX_attr_text_aeol_lf_true_CRLF_nul.txt - create mode 100644 MIX_attr_text_aeol_lf_true_LF.txt - create mode 100644 MIX_attr_text_aeol_lf_true_LF_mix_CR.txt - create mode 100644 NNO_attr_-text_aeol__false_CRLF.txt - create mode 100644 NNO_attr_-text_aeol__false_CRLF_mix_LF.txt - create mode 100644 NNO_attr_-text_aeol__false_CRLF_nul.txt - create mode 100644 NNO_attr_-text_aeol__false_LF.txt - create mode 100644 NNO_attr_-text_aeol__false_LF_mix_CR.txt - create mode 100644 NNO_attr_-text_aeol__input_CRLF.txt - create mode 100644 NNO_attr_-text_aeol__input_CRLF_mix_LF.txt - create mode 100644 NNO_attr_-text_aeol__input_CRLF_nul.txt - create mode 100644 NNO_attr_-text_aeol__input_LF.txt - create mode 100644 NNO_attr_-text_aeol__input_LF_mix_CR.txt - create mode 100644 NNO_attr_-text_aeol__true_CRLF.txt - create mode 100644 NNO_attr_-text_aeol__true_CRLF_mix_LF.txt - create mode 100644 NNO_attr_-text_aeol__true_CRLF_nul.txt - create mode 100644 NNO_attr_-text_aeol__true_LF.txt - create mode 100644 NNO_attr_-text_aeol__true_LF_mix_CR.txt - create mode 100644 NNO_attr_-text_aeol_crlf_false_CRLF.txt - create mode 100644 NNO_attr_-text_aeol_crlf_false_CRLF_mix_LF.txt - create mode 100644 NNO_attr_-text_aeol_crlf_false_CRLF_nul.txt - create mode 100644 NNO_attr_-text_aeol_crlf_false_LF.txt - create mode 100644 NNO_attr_-text_aeol_crlf_false_LF_mix_CR.txt - create mode 100644 NNO_attr_-text_aeol_crlf_input_CRLF.txt - create mode 100644 NNO_attr_-text_aeol_crlf_input_CRLF_mix_LF.txt - create mode 100644 NNO_attr_-text_aeol_crlf_input_CRLF_nul.txt - create mode 100644 NNO_attr_-text_aeol_crlf_input_LF.txt - create mode 100644 NNO_attr_-text_aeol_crlf_input_LF_mix_CR.txt - create mode 100644 NNO_attr_-text_aeol_crlf_true_CRLF.txt - create mode 100644 NNO_attr_-text_aeol_crlf_true_CRLF_mix_LF.txt - create mode 100644 NNO_attr_-text_aeol_crlf_true_CRLF_nul.txt - create mode 100644 NNO_attr_-text_aeol_crlf_true_LF.txt - create mode 100644 NNO_attr_-text_aeol_crlf_true_LF_mix_CR.txt - create mode 100644 NNO_attr_-text_aeol_lf_false_CRLF.txt - create mode 100644 NNO_attr_-text_aeol_lf_false_CRLF_mix_LF.txt - create mode 100644 NNO_attr_-text_aeol_lf_false_CRLF_nul.txt - create mode 100644 NNO_attr_-text_aeol_lf_false_LF.txt - create mode 100644 NNO_attr_-text_aeol_lf_false_LF_mix_CR.txt - create mode 100644 NNO_attr_-text_aeol_lf_input_CRLF.txt - create mode 100644 NNO_attr_-text_aeol_lf_input_CRLF_mix_LF.txt - create mode 100644 NNO_attr_-text_aeol_lf_input_CRLF_nul.txt - create mode 100644 NNO_attr_-text_aeol_lf_input_LF.txt - create mode 100644 NNO_attr_-text_aeol_lf_input_LF_mix_CR.txt - create mode 100644 NNO_attr_-text_aeol_lf_true_CRLF.txt - create mode 100644 NNO_attr_-text_aeol_lf_true_CRLF_mix_LF.txt - create mode 100644 NNO_attr_-text_aeol_lf_true_CRLF_nul.txt - create mode 100644 NNO_attr_-text_aeol_lf_true_LF.txt - create mode 100644 NNO_attr_-text_aeol_lf_true_LF_mix_CR.txt - create mode 100644 NNO_attr__aeol__false_CRLF.txt - create mode 100644 NNO_attr__aeol__false_CRLF_mix_LF.txt - create mode 100644 NNO_attr__aeol__false_CRLF_nul.txt - create mode 100644 NNO_attr__aeol__false_LF.txt - create mode 100644 NNO_attr__aeol__false_LF_mix_CR.txt - create mode 100644 NNO_attr__aeol__input_CRLF.txt - create mode 100644 NNO_attr__aeol__input_CRLF_mix_LF.txt - create mode 100644 NNO_attr__aeol__input_CRLF_nul.txt - create mode 100644 NNO_attr__aeol__input_LF.txt - create mode 100644 NNO_attr__aeol__input_LF_mix_CR.txt - create mode 100644 NNO_attr__aeol__true_CRLF.txt - create mode 100644 NNO_attr__aeol__true_CRLF_mix_LF.txt - create mode 100644 NNO_attr__aeol__true_CRLF_nul.txt - create mode 100644 NNO_attr__aeol__true_LF.txt - create mode 100644 NNO_attr__aeol__true_LF_mix_CR.txt - create mode 100644 NNO_attr__aeol_crlf_false_CRLF.txt - create mode 100644 NNO_attr__aeol_crlf_false_CRLF_mix_LF.txt - create mode 100644 NNO_attr__aeol_crlf_false_CRLF_nul.txt - create mode 100644 NNO_attr__aeol_crlf_false_LF.txt - create mode 100644 NNO_attr__aeol_crlf_false_LF_mix_CR.txt - create mode 100644 NNO_attr__aeol_crlf_input_CRLF.txt - create mode 100644 NNO_attr__aeol_crlf_input_CRLF_mix_LF.txt - create mode 100644 NNO_attr__aeol_crlf_input_CRLF_nul.txt - create mode 100644 NNO_attr__aeol_crlf_input_LF.txt - create mode 100644 NNO_attr__aeol_crlf_input_LF_mix_CR.txt - create mode 100644 NNO_attr__aeol_crlf_true_CRLF.txt - create mode 100644 NNO_attr__aeol_crlf_true_CRLF_mix_LF.txt - create mode 100644 NNO_attr__aeol_crlf_true_CRLF_nul.txt - create mode 100644 NNO_attr__aeol_crlf_true_LF.txt - create mode 100644 NNO_attr__aeol_crlf_true_LF_mix_CR.txt - create mode 100644 NNO_attr__aeol_lf_false_CRLF.txt - create mode 100644 NNO_attr__aeol_lf_false_CRLF_mix_LF.txt - create mode 100644 NNO_attr__aeol_lf_false_CRLF_nul.txt - create mode 100644 NNO_attr__aeol_lf_false_LF.txt - create mode 100644 NNO_attr__aeol_lf_false_LF_mix_CR.txt - create mode 100644 NNO_attr__aeol_lf_input_CRLF.txt - create mode 100644 NNO_attr__aeol_lf_input_CRLF_mix_LF.txt - create mode 100644 NNO_attr__aeol_lf_input_CRLF_nul.txt - create mode 100644 NNO_attr__aeol_lf_input_LF.txt - create mode 100644 NNO_attr__aeol_lf_input_LF_mix_CR.txt - create mode 100644 NNO_attr__aeol_lf_true_CRLF.txt - create mode 100644 NNO_attr__aeol_lf_true_CRLF_mix_LF.txt - create mode 100644 NNO_attr__aeol_lf_true_CRLF_nul.txt - create mode 100644 NNO_attr__aeol_lf_true_LF.txt - create mode 100644 NNO_attr__aeol_lf_true_LF_mix_CR.txt - create mode 100644 NNO_attr_auto_aeol__false_CRLF.txt - create mode 100644 NNO_attr_auto_aeol__false_CRLF_mix_LF.txt - create mode 100644 NNO_attr_auto_aeol__false_CRLF_nul.txt - create mode 100644 NNO_attr_auto_aeol__false_LF.txt - create mode 100644 NNO_attr_auto_aeol__false_LF_mix_CR.txt - create mode 100644 NNO_attr_auto_aeol__input_CRLF.txt - create mode 100644 NNO_attr_auto_aeol__input_CRLF_mix_LF.txt - create mode 100644 NNO_attr_auto_aeol__input_CRLF_nul.txt - create mode 100644 NNO_attr_auto_aeol__input_LF.txt - create mode 100644 NNO_attr_auto_aeol__input_LF_mix_CR.txt - create mode 100644 NNO_attr_auto_aeol__true_CRLF.txt - create mode 100644 NNO_attr_auto_aeol__true_CRLF_mix_LF.txt - create mode 100644 NNO_attr_auto_aeol__true_CRLF_nul.txt - create mode 100644 NNO_attr_auto_aeol__true_LF.txt - create mode 100644 NNO_attr_auto_aeol__true_LF_mix_CR.txt - create mode 100644 NNO_attr_auto_aeol_crlf_false_CRLF.txt - create mode 100644 NNO_attr_auto_aeol_crlf_false_CRLF_mix_LF.txt - create mode 100644 NNO_attr_auto_aeol_crlf_false_CRLF_nul.txt - create mode 100644 NNO_attr_auto_aeol_crlf_false_LF.txt - create mode 100644 NNO_attr_auto_aeol_crlf_false_LF_mix_CR.txt - create mode 100644 NNO_attr_auto_aeol_crlf_input_CRLF.txt - create mode 100644 NNO_attr_auto_aeol_crlf_input_CRLF_mix_LF.txt - create mode 100644 NNO_attr_auto_aeol_crlf_input_CRLF_nul.txt - create mode 100644 NNO_attr_auto_aeol_crlf_input_LF.txt - create mode 100644 NNO_attr_auto_aeol_crlf_input_LF_mix_CR.txt - create mode 100644 NNO_attr_auto_aeol_crlf_true_CRLF.txt - create mode 100644 NNO_attr_auto_aeol_crlf_true_CRLF_mix_LF.txt - create mode 100644 NNO_attr_auto_aeol_crlf_true_CRLF_nul.txt - create mode 100644 NNO_attr_auto_aeol_crlf_true_LF.txt - create mode 100644 NNO_attr_auto_aeol_crlf_true_LF_mix_CR.txt - create mode 100644 NNO_attr_auto_aeol_lf_false_CRLF.txt - create mode 100644 NNO_attr_auto_aeol_lf_false_CRLF_mix_LF.txt - create mode 100644 NNO_attr_auto_aeol_lf_false_CRLF_nul.txt - create mode 100644 NNO_attr_auto_aeol_lf_false_LF.txt - create mode 100644 NNO_attr_auto_aeol_lf_false_LF_mix_CR.txt - create mode 100644 NNO_attr_auto_aeol_lf_input_CRLF.txt - create mode 100644 NNO_attr_auto_aeol_lf_input_CRLF_mix_LF.txt - create mode 100644 NNO_attr_auto_aeol_lf_input_CRLF_nul.txt - create mode 100644 NNO_attr_auto_aeol_lf_input_LF.txt - create mode 100644 NNO_attr_auto_aeol_lf_input_LF_mix_CR.txt - create mode 100644 NNO_attr_auto_aeol_lf_true_CRLF.txt - create mode 100644 NNO_attr_auto_aeol_lf_true_CRLF_mix_LF.txt - create mode 100644 NNO_attr_auto_aeol_lf_true_CRLF_nul.txt - create mode 100644 NNO_attr_auto_aeol_lf_true_LF.txt - create mode 100644 NNO_attr_auto_aeol_lf_true_LF_mix_CR.txt - create mode 100644 NNO_attr_text_aeol__false_CRLF.txt - create mode 100644 NNO_attr_text_aeol__false_CRLF_mix_LF.txt - create mode 100644 NNO_attr_text_aeol__false_CRLF_nul.txt - create mode 100644 NNO_attr_text_aeol__false_LF.txt - create mode 100644 NNO_attr_text_aeol__false_LF_mix_CR.txt - create mode 100644 NNO_attr_text_aeol__input_CRLF.txt - create mode 100644 NNO_attr_text_aeol__input_CRLF_mix_LF.txt - create mode 100644 NNO_attr_text_aeol__input_CRLF_nul.txt - create mode 100644 NNO_attr_text_aeol__input_LF.txt - create mode 100644 NNO_attr_text_aeol__input_LF_mix_CR.txt - create mode 100644 NNO_attr_text_aeol__true_CRLF.txt - create mode 100644 NNO_attr_text_aeol__true_CRLF_mix_LF.txt - create mode 100644 NNO_attr_text_aeol__true_CRLF_nul.txt - create mode 100644 NNO_attr_text_aeol__true_LF.txt - create mode 100644 NNO_attr_text_aeol__true_LF_mix_CR.txt - create mode 100644 NNO_attr_text_aeol_crlf_false_CRLF.txt - create mode 100644 NNO_attr_text_aeol_crlf_false_CRLF_mix_LF.txt - create mode 100644 NNO_attr_text_aeol_crlf_false_CRLF_nul.txt - create mode 100644 NNO_attr_text_aeol_crlf_false_LF.txt - create mode 100644 NNO_attr_text_aeol_crlf_false_LF_mix_CR.txt - create mode 100644 NNO_attr_text_aeol_crlf_input_CRLF.txt - create mode 100644 NNO_attr_text_aeol_crlf_input_CRLF_mix_LF.txt - create mode 100644 NNO_attr_text_aeol_crlf_input_CRLF_nul.txt - create mode 100644 NNO_attr_text_aeol_crlf_input_LF.txt - create mode 100644 NNO_attr_text_aeol_crlf_input_LF_mix_CR.txt - create mode 100644 NNO_attr_text_aeol_crlf_true_CRLF.txt - create mode 100644 NNO_attr_text_aeol_crlf_true_CRLF_mix_LF.txt - create mode 100644 NNO_attr_text_aeol_crlf_true_CRLF_nul.txt - create mode 100644 NNO_attr_text_aeol_crlf_true_LF.txt - create mode 100644 NNO_attr_text_aeol_crlf_true_LF_mix_CR.txt - create mode 100644 NNO_attr_text_aeol_lf_false_CRLF.txt - create mode 100644 NNO_attr_text_aeol_lf_false_CRLF_mix_LF.txt - create mode 100644 NNO_attr_text_aeol_lf_false_CRLF_nul.txt - create mode 100644 NNO_attr_text_aeol_lf_false_LF.txt - create mode 100644 NNO_attr_text_aeol_lf_false_LF_mix_CR.txt - create mode 100644 NNO_attr_text_aeol_lf_input_CRLF.txt - create mode 100644 NNO_attr_text_aeol_lf_input_CRLF_mix_LF.txt - create mode 100644 NNO_attr_text_aeol_lf_input_CRLF_nul.txt - create mode 100644 NNO_attr_text_aeol_lf_input_LF.txt - create mode 100644 NNO_attr_text_aeol_lf_input_LF_mix_CR.txt - create mode 100644 NNO_attr_text_aeol_lf_true_CRLF.txt - create mode 100644 NNO_attr_text_aeol_lf_true_CRLF_mix_LF.txt - create mode 100644 NNO_attr_text_aeol_lf_true_CRLF_nul.txt - create mode 100644 NNO_attr_text_aeol_lf_true_LF.txt - create mode 100644 NNO_attr_text_aeol_lf_true_LF_mix_CR.txt -ok 2 - setup master +ok 2 - does not use --default when entry present -expecting success of 0027.3 'commit files empty attr': - commit_check_warn false "" "" "" "" "" "" && - commit_check_warn true "" "LF_CRLF" "" "LF_CRLF" "" "" && - commit_check_warn input "" "" "CRLF_LF" "CRLF_LF" "" "" +expecting success of 1310.3 'canonicalizes --default with appropriate type': + echo true >expect && + git config -f config --default=yes --bool core.foo >actual && + test_cmp expect actual + +ok 3 - canonicalizes --default with appropriate type + +expecting success of 1310.4 'dies when --default cannot be parsed': + test_must_fail git config -f config --type=expiry-date --default=x --get \ + not.a.section 2>error && + test_i18ngrep "failed to format default config value" error -[master c62ad5d] core.autocrlf false - Author: A U Thor - 6 files changed, 15 insertions(+) - create mode 100644 crlf_false_attr__CRLF.txt - create mode 100644 crlf_false_attr__CRLF_mix_LF.txt - create mode 100644 crlf_false_attr__CRLF_nul.txt - create mode 100644 crlf_false_attr__LF.txt - create mode 100644 crlf_false_attr__LF_mix_CR.txt - create mode 100644 crlf_false_attr__LF_nul.txt checking prerequisite: C_LOCALE_OUTPUT mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && @@ -38905,9796 +39736,8140 @@ ) prerequisite C_LOCALE_OUTPUT ok -[master d70a676] core.autocrlf true - Author: A U Thor - 6 files changed, 15 insertions(+) - create mode 100644 crlf_true_attr__CRLF.txt - create mode 100644 crlf_true_attr__CRLF_mix_LF.txt - create mode 100644 crlf_true_attr__CRLF_nul.txt - create mode 100644 crlf_true_attr__LF.txt - create mode 100644 crlf_true_attr__LF_mix_CR.txt - create mode 100644 crlf_true_attr__LF_nul.txt -[master a106c40] core.autocrlf input - Author: A U Thor - 6 files changed, 15 insertions(+) - create mode 100644 crlf_input_attr__CRLF.txt - create mode 100644 crlf_input_attr__CRLF_mix_LF.txt - create mode 100644 crlf_input_attr__CRLF_nul.txt - create mode 100644 crlf_input_attr__LF.txt - create mode 100644 crlf_input_attr__LF_mix_CR.txt - create mode 100644 crlf_input_attr__LF_nul.txt -ok 3 - commit files empty attr - -expecting success of 0027.4 'commit files attr=auto': - commit_check_warn false "auto" "$WILC" "$WICL" "$WAMIX" "" "" && - commit_check_warn true "auto" "LF_CRLF" "" "LF_CRLF" "" "" && - commit_check_warn input "auto" "" "CRLF_LF" "CRLF_LF" "" "" - -[master 68bab31] core.autocrlf false - Author: A U Thor - 6 files changed, 15 insertions(+) - create mode 100644 crlf_false_attr_auto_CRLF.txt - create mode 100644 crlf_false_attr_auto_CRLF_mix_LF.txt - create mode 100644 crlf_false_attr_auto_CRLF_nul.txt - create mode 100644 crlf_false_attr_auto_LF.txt - create mode 100644 crlf_false_attr_auto_LF_mix_CR.txt - create mode 100644 crlf_false_attr_auto_LF_nul.txt -[master efc8d5d] core.autocrlf true - Author: A U Thor - 6 files changed, 15 insertions(+) - create mode 100644 crlf_true_attr_auto_CRLF.txt - create mode 100644 crlf_true_attr_auto_CRLF_mix_LF.txt - create mode 100644 crlf_true_attr_auto_CRLF_nul.txt - create mode 100644 crlf_true_attr_auto_LF.txt - create mode 100644 crlf_true_attr_auto_LF_mix_CR.txt - create mode 100644 crlf_true_attr_auto_LF_nul.txt -[master 21fb1d0] core.autocrlf input - Author: A U Thor - 6 files changed, 15 insertions(+) - create mode 100644 crlf_input_attr_auto_CRLF.txt - create mode 100644 crlf_input_attr_auto_CRLF_mix_LF.txt - create mode 100644 crlf_input_attr_auto_CRLF_nul.txt - create mode 100644 crlf_input_attr_auto_LF.txt - create mode 100644 crlf_input_attr_auto_LF_mix_CR.txt - create mode 100644 crlf_input_attr_auto_LF_nul.txt -ok 4 - commit files attr=auto +fatal: failed to format default config value: x +ok 4 - dies when --default cannot be parsed -expecting success of 0027.5 'commit files attr=text': - commit_check_warn false "text" "$WILC" "$WICL" "$WAMIX" "$WILC" "$WICL" && - commit_check_warn true "text" "LF_CRLF" "" "LF_CRLF" "LF_CRLF" "" && - commit_check_warn input "text" "" "CRLF_LF" "CRLF_LF" "" "CRLF_LF" +expecting success of 1310.5 'does not allow --default without --get': + test_must_fail git config --default=quux --unset a.section >output 2>&1 && + test_i18ngrep "\-\-default is only applicable to" output -[master 16b2963] core.autocrlf false - Author: A U Thor - 6 files changed, 15 insertions(+) - create mode 100644 crlf_false_attr_text_CRLF.txt - create mode 100644 crlf_false_attr_text_CRLF_mix_LF.txt - create mode 100644 crlf_false_attr_text_CRLF_nul.txt - create mode 100644 crlf_false_attr_text_LF.txt - create mode 100644 crlf_false_attr_text_LF_mix_CR.txt - create mode 100644 crlf_false_attr_text_LF_nul.txt -[master 006c230] core.autocrlf true - Author: A U Thor - 6 files changed, 15 insertions(+) - create mode 100644 crlf_true_attr_text_CRLF.txt - create mode 100644 crlf_true_attr_text_CRLF_mix_LF.txt - create mode 100644 crlf_true_attr_text_CRLF_nul.txt - create mode 100644 crlf_true_attr_text_LF.txt - create mode 100644 crlf_true_attr_text_LF_mix_CR.txt - create mode 100644 crlf_true_attr_text_LF_nul.txt -[master 00481a2] core.autocrlf input - Author: A U Thor - 6 files changed, 15 insertions(+) - create mode 100644 crlf_input_attr_text_CRLF.txt - create mode 100644 crlf_input_attr_text_CRLF_mix_LF.txt - create mode 100644 crlf_input_attr_text_CRLF_nul.txt - create mode 100644 crlf_input_attr_text_LF.txt - create mode 100644 crlf_input_attr_text_LF_mix_CR.txt - create mode 100644 crlf_input_attr_text_LF_nul.txt -ok 5 - commit files attr=text +error: --default is only applicable to --get +ok 5 - does not allow --default without --get -expecting success of 0027.6 'commit files attr=-text': - commit_check_warn false "-text" "" "" "" "" "" && - commit_check_warn true "-text" "" "" "" "" "" && - commit_check_warn input "-text" "" "" "" "" "" +# passed all 5 test(s) +1..5 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t1350-config-hooks-path.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1350-config-hooks-path/.git/ +expecting success of 1350.1 'set up a pre-commit hook in core.hooksPath': + mkdir -p .git/custom-hooks .git/hooks && + write_script .git/custom-hooks/pre-commit <<-\EOF && + echo CUSTOM >>actual + EOF + write_script .git/hooks/pre-commit <<-\EOF + echo NORMAL >>actual + EOF -[master 88d9dda] core.autocrlf false - Author: A U Thor - 6 files changed, 15 insertions(+) - create mode 100644 crlf_false_attr_-text_CRLF.txt - create mode 100644 crlf_false_attr_-text_CRLF_mix_LF.txt - create mode 100644 crlf_false_attr_-text_CRLF_nul.txt - create mode 100644 crlf_false_attr_-text_LF.txt - create mode 100644 crlf_false_attr_-text_LF_mix_CR.txt - create mode 100644 crlf_false_attr_-text_LF_nul.txt -[master 1456133] core.autocrlf true - Author: A U Thor - 6 files changed, 15 insertions(+) - create mode 100644 crlf_true_attr_-text_CRLF.txt - create mode 100644 crlf_true_attr_-text_CRLF_mix_LF.txt - create mode 100644 crlf_true_attr_-text_CRLF_nul.txt - create mode 100644 crlf_true_attr_-text_LF.txt - create mode 100644 crlf_true_attr_-text_LF_mix_CR.txt - create mode 100644 crlf_true_attr_-text_LF_nul.txt -[master 08b2ac8] core.autocrlf input - Author: A U Thor - 6 files changed, 15 insertions(+) - create mode 100644 crlf_input_attr_-text_CRLF.txt - create mode 100644 crlf_input_attr_-text_CRLF_mix_LF.txt - create mode 100644 crlf_input_attr_-text_CRLF_nul.txt - create mode 100644 crlf_input_attr_-text_LF.txt - create mode 100644 crlf_input_attr_-text_LF_mix_CR.txt - create mode 100644 crlf_input_attr_-text_LF_nul.txt -ok 6 - commit files attr=-text +ok 1 - set up a pre-commit hook in core.hooksPath -expecting success of 0027.7 'commit files attr=lf': - commit_check_warn false "lf" "" "CRLF_LF" "CRLF_LF" "" "CRLF_LF" && - commit_check_warn true "lf" "" "CRLF_LF" "CRLF_LF" "" "CRLF_LF" && - commit_check_warn input "lf" "" "CRLF_LF" "CRLF_LF" "" "CRLF_LF" +expecting success of 1350.2 'Check that various forms of specifying core.hooksPath work': + test_commit no_custom_hook && + git config core.hooksPath .git/custom-hooks && + test_commit have_custom_hook && + git config core.hooksPath .git/custom-hooks/ && + test_commit have_custom_hook_trailing_slash && + git config core.hooksPath "$PWD/.git/custom-hooks" && + test_commit have_custom_hook_abs_path && + git config core.hooksPath "$PWD/.git/custom-hooks/" && + test_commit have_custom_hook_abs_path_trailing_slash && + cat >expect <<-\EOF && + NORMAL + CUSTOM + CUSTOM + CUSTOM + CUSTOM + EOF + test_cmp expect actual -[master f130974] core.autocrlf false - Author: A U Thor - 6 files changed, 15 insertions(+) - create mode 100644 crlf_false_attr_lf_CRLF.txt - create mode 100644 crlf_false_attr_lf_CRLF_mix_LF.txt - create mode 100644 crlf_false_attr_lf_CRLF_nul.txt - create mode 100644 crlf_false_attr_lf_LF.txt - create mode 100644 crlf_false_attr_lf_LF_mix_CR.txt - create mode 100644 crlf_false_attr_lf_LF_nul.txt -[master 0b69747] core.autocrlf true +[master (root-commit) 51fec20] no_custom_hook Author: A U Thor - 6 files changed, 15 insertions(+) - create mode 100644 crlf_true_attr_lf_CRLF.txt - create mode 100644 crlf_true_attr_lf_CRLF_mix_LF.txt - create mode 100644 crlf_true_attr_lf_CRLF_nul.txt - create mode 100644 crlf_true_attr_lf_LF.txt - create mode 100644 crlf_true_attr_lf_LF_mix_CR.txt - create mode 100644 crlf_true_attr_lf_LF_nul.txt -[master 7d87167] core.autocrlf input + 1 file changed, 1 insertion(+) + create mode 100644 no_custom_hook.t +[master d6f765a] have_custom_hook Author: A U Thor - 6 files changed, 15 insertions(+) - create mode 100644 crlf_input_attr_lf_CRLF.txt - create mode 100644 crlf_input_attr_lf_CRLF_mix_LF.txt - create mode 100644 crlf_input_attr_lf_CRLF_nul.txt - create mode 100644 crlf_input_attr_lf_LF.txt - create mode 100644 crlf_input_attr_lf_LF_mix_CR.txt - create mode 100644 crlf_input_attr_lf_LF_nul.txt -ok 7 - commit files attr=lf - -expecting success of 0027.8 'commit files attr=crlf': - commit_check_warn false "crlf" "LF_CRLF" "" "LF_CRLF" "LF_CRLF" "" && - commit_check_warn true "crlf" "LF_CRLF" "" "LF_CRLF" "LF_CRLF" "" && - commit_check_warn input "crlf" "LF_CRLF" "" "LF_CRLF" "LF_CRLF" "" - -[master 753280e] core.autocrlf false + 1 file changed, 1 insertion(+) + create mode 100644 have_custom_hook.t +[master c8447a6] have_custom_hook_trailing_slash Author: A U Thor - 6 files changed, 15 insertions(+) - create mode 100644 crlf_false_attr_crlf_CRLF.txt - create mode 100644 crlf_false_attr_crlf_CRLF_mix_LF.txt - create mode 100644 crlf_false_attr_crlf_CRLF_nul.txt - create mode 100644 crlf_false_attr_crlf_LF.txt - create mode 100644 crlf_false_attr_crlf_LF_mix_CR.txt - create mode 100644 crlf_false_attr_crlf_LF_nul.txt -[master abec00d] core.autocrlf true + 1 file changed, 1 insertion(+) + create mode 100644 have_custom_hook_trailing_slash.t +[master acc1a92] have_custom_hook_abs_path Author: A U Thor - 6 files changed, 15 insertions(+) - create mode 100644 crlf_true_attr_crlf_CRLF.txt - create mode 100644 crlf_true_attr_crlf_CRLF_mix_LF.txt - create mode 100644 crlf_true_attr_crlf_CRLF_nul.txt - create mode 100644 crlf_true_attr_crlf_LF.txt - create mode 100644 crlf_true_attr_crlf_LF_mix_CR.txt - create mode 100644 crlf_true_attr_crlf_LF_nul.txt -[master 4e045e6] core.autocrlf input + 1 file changed, 1 insertion(+) + create mode 100644 have_custom_hook_abs_path.t +[master 3a47fb1] have_custom_hook_abs_path_trailing_slash Author: A U Thor - 6 files changed, 15 insertions(+) - create mode 100644 crlf_input_attr_crlf_CRLF.txt - create mode 100644 crlf_input_attr_crlf_CRLF_mix_LF.txt - create mode 100644 crlf_input_attr_crlf_CRLF_nul.txt - create mode 100644 crlf_input_attr_crlf_LF.txt - create mode 100644 crlf_input_attr_crlf_LF_mix_CR.txt - create mode 100644 crlf_input_attr_crlf_LF_nul.txt -ok 8 - commit files attr=crlf + 1 file changed, 1 insertion(+) + create mode 100644 have_custom_hook_abs_path_trailing_slash.t +ok 2 - Check that various forms of specifying core.hooksPath work -expecting success of 0027.9 'commit file with mixed EOL onto LF crlf=false attr=': - check_warning "$lfwarn" ${pfx}_LF.err - -ok 9 - commit file with mixed EOL onto LF crlf=false attr= +expecting success of 1350.3 'git rev-parse --git-path hooks': + git config core.hooksPath .git/custom-hooks && + git rev-parse --git-path hooks/abc >actual && + test .git/custom-hooks/abc = "$(cat actual)" -expecting success of 0027.10 'commit file with mixed EOL onto CLRF attr= aeol= crlf=false': - check_warning "$crlfwarn" ${pfx}_CRLF.err - -ok 10 - commit file with mixed EOL onto CLRF attr= aeol= crlf=false +ok 3 - git rev-parse --git-path hooks -expecting success of 0027.11 'commit file with mixed EOL onto CRLF_mix_LF attr= aeol= crlf=false': - check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err - -ok 11 - commit file with mixed EOL onto CRLF_mix_LF attr= aeol= crlf=false +# passed all 3 test(s) +1..3 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t1401-symbolic-ref.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1401-symbolic-ref/.git/ +expecting success of 1401.1 'symbolic-ref writes HEAD': + git symbolic-ref HEAD refs/heads/foo && + echo ref: refs/heads/foo >expect && + test_cmp expect .git/HEAD -expecting success of 0027.12 'commit file with mixed EOL onto LF_mix_cr attr= aeol= crlf=false ': - check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err - -ok 12 - commit file with mixed EOL onto LF_mix_cr attr= aeol= crlf=false +ok 1 - symbolic-ref writes HEAD -expecting success of 0027.13 'commit file with mixed EOL onto CRLF_nul attr= aeol= crlf=false': - check_warning "$crlfnul" ${pfx}_CRLF_nul.err - -ok 13 - commit file with mixed EOL onto CRLF_nul attr= aeol= crlf=false +expecting success of 1401.2 'symbolic-ref reads HEAD': + echo refs/heads/foo >expect && + git symbolic-ref HEAD >actual && + test_cmp expect actual -expecting success of 0027.14 'commit file with mixed EOL onto LF crlf=true attr=': - check_warning "$lfwarn" ${pfx}_LF.err - -ok 14 - commit file with mixed EOL onto LF crlf=true attr= +ok 2 - symbolic-ref reads HEAD -expecting success of 0027.15 'commit file with mixed EOL onto CLRF attr= aeol= crlf=true': - check_warning "$crlfwarn" ${pfx}_CRLF.err - -ok 15 - commit file with mixed EOL onto CLRF attr= aeol= crlf=true +expecting success of 1401.3 'symbolic-ref refuses non-ref for HEAD': + test_must_fail git symbolic-ref HEAD foo -expecting success of 0027.16 'commit file with mixed EOL onto CRLF_mix_LF attr= aeol= crlf=true': - check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err - -ok 16 - commit file with mixed EOL onto CRLF_mix_LF attr= aeol= crlf=true +fatal: Refusing to point HEAD outside of refs/ +ok 3 - symbolic-ref refuses non-ref for HEAD -expecting success of 0027.17 'commit file with mixed EOL onto LF_mix_cr attr= aeol= crlf=true ': - check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err - -ok 17 - commit file with mixed EOL onto LF_mix_cr attr= aeol= crlf=true +expecting success of 1401.4 'symbolic-ref refuses bare sha1': + echo content >file && git add file && git commit -m one && + test_must_fail git symbolic-ref HEAD $(git rev-parse HEAD) -expecting success of 0027.18 'commit file with mixed EOL onto CRLF_nul attr= aeol= crlf=true': - check_warning "$crlfnul" ${pfx}_CRLF_nul.err - -ok 18 - commit file with mixed EOL onto CRLF_nul attr= aeol= crlf=true +[foo (root-commit) f39a923] one + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file +fatal: Refusing to point HEAD outside of refs/ +ok 4 - symbolic-ref refuses bare sha1 -expecting success of 0027.19 'commit file with mixed EOL onto LF crlf=input attr=': - check_warning "$lfwarn" ${pfx}_LF.err - -ok 19 - commit file with mixed EOL onto LF crlf=input attr= +expecting success of 1401.5 'HEAD cannot be removed': + test_must_fail git symbolic-ref -d HEAD -expecting success of 0027.20 'commit file with mixed EOL onto CLRF attr= aeol= crlf=input': - check_warning "$crlfwarn" ${pfx}_CRLF.err - -ok 20 - commit file with mixed EOL onto CLRF attr= aeol= crlf=input +fatal: deleting 'HEAD' is not allowed +ok 5 - HEAD cannot be removed -expecting success of 0027.21 'commit file with mixed EOL onto CRLF_mix_LF attr= aeol= crlf=input': - check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err - -ok 21 - commit file with mixed EOL onto CRLF_mix_LF attr= aeol= crlf=input +expecting success of 1401.6 'symbolic-ref can be deleted': + git symbolic-ref NOTHEAD refs/heads/foo && + git symbolic-ref -d NOTHEAD && + test_path_is_file .git/refs/heads/foo && + test_path_is_missing .git/NOTHEAD -expecting success of 0027.22 'commit file with mixed EOL onto LF_mix_cr attr= aeol= crlf=input ': - check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err - -ok 22 - commit file with mixed EOL onto LF_mix_cr attr= aeol= crlf=input +ok 6 - symbolic-ref can be deleted -expecting success of 0027.23 'commit file with mixed EOL onto CRLF_nul attr= aeol= crlf=input': - check_warning "$crlfnul" ${pfx}_CRLF_nul.err - -ok 23 - commit file with mixed EOL onto CRLF_nul attr= aeol= crlf=input +expecting success of 1401.7 'symbolic-ref can delete dangling symref': + git symbolic-ref NOTHEAD refs/heads/missing && + git symbolic-ref -d NOTHEAD && + test_path_is_missing .git/refs/heads/missing && + test_path_is_missing .git/NOTHEAD -expecting success of 0027.24 'commit file with mixed EOL onto LF crlf=false attr=auto': - check_warning "$lfwarn" ${pfx}_LF.err - -ok 24 - commit file with mixed EOL onto LF crlf=false attr=auto +ok 7 - symbolic-ref can delete dangling symref -expecting success of 0027.25 'commit file with mixed EOL onto CLRF attr=auto aeol= crlf=false': - check_warning "$crlfwarn" ${pfx}_CRLF.err - -ok 25 - commit file with mixed EOL onto CLRF attr=auto aeol= crlf=false +expecting success of 1401.8 'symbolic-ref fails to delete missing FOO': + echo "fatal: Cannot delete FOO, not a symbolic ref" >expect && + test_must_fail git symbolic-ref -d FOO >actual 2>&1 && + test_cmp expect actual -expecting success of 0027.26 'commit file with mixed EOL onto CRLF_mix_LF attr=auto aeol= crlf=false': - check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err - -ok 26 - commit file with mixed EOL onto CRLF_mix_LF attr=auto aeol= crlf=false +ok 8 - symbolic-ref fails to delete missing FOO -expecting success of 0027.27 'commit file with mixed EOL onto LF_mix_cr attr=auto aeol= crlf=false ': - check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err - -ok 27 - commit file with mixed EOL onto LF_mix_cr attr=auto aeol= crlf=false +expecting success of 1401.9 'symbolic-ref fails to delete real ref': + echo "fatal: Cannot delete refs/heads/foo, not a symbolic ref" >expect && + test_must_fail git symbolic-ref -d refs/heads/foo >actual 2>&1 && + git rev-parse --verify refs/heads/foo && + test_cmp expect actual -expecting success of 0027.28 'commit file with mixed EOL onto CRLF_nul attr=auto aeol= crlf=false': - check_warning "$crlfnul" ${pfx}_CRLF_nul.err - -ok 28 - commit file with mixed EOL onto CRLF_nul attr=auto aeol= crlf=false +f39a92305d069e3dcdc4ce95c3001deec3642dc3 +ok 9 - symbolic-ref fails to delete real ref -expecting success of 0027.29 'commit file with mixed EOL onto LF crlf=true attr=auto': - check_warning "$lfwarn" ${pfx}_LF.err - -ok 29 - commit file with mixed EOL onto LF crlf=true attr=auto +expecting success of 1401.10 'create large ref name': + # make 256+ character ref; some systems may not handle that, + # so be gentle + long=0123456789abcdef && + long=$long/$long/$long/$long && + long=$long/$long/$long/$long && + long_ref=refs/heads/$long && + tree=$(git write-tree) && + commit=$(echo foo | git commit-tree $tree) && + if git update-ref $long_ref $commit; then + test_set_prereq LONG_REF + else + echo >&2 "long refs not supported" + fi -expecting success of 0027.30 'commit file with mixed EOL onto CLRF attr=auto aeol= crlf=true': - check_warning "$crlfwarn" ${pfx}_CRLF.err - -ok 30 - commit file with mixed EOL onto CLRF attr=auto aeol= crlf=true +ok 10 - create large ref name -expecting success of 0027.31 'commit file with mixed EOL onto CRLF_mix_LF attr=auto aeol= crlf=true': - check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err - -ok 31 - commit file with mixed EOL onto CRLF_mix_LF attr=auto aeol= crlf=true +expecting success of 1401.11 'symbolic-ref can point to large ref name': + git symbolic-ref HEAD $long_ref && + echo $long_ref >expect && + git symbolic-ref HEAD >actual && + test_cmp expect actual -expecting success of 0027.32 'commit file with mixed EOL onto LF_mix_cr attr=auto aeol= crlf=true ': - check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err - -ok 32 - commit file with mixed EOL onto LF_mix_cr attr=auto aeol= crlf=true +ok 11 - symbolic-ref can point to large ref name -expecting success of 0027.33 'commit file with mixed EOL onto CRLF_nul attr=auto aeol= crlf=true': - check_warning "$crlfnul" ${pfx}_CRLF_nul.err - -ok 33 - commit file with mixed EOL onto CRLF_nul attr=auto aeol= crlf=true +expecting success of 1401.12 'we can parse long symbolic ref': + echo $commit >expect && + git rev-parse --verify HEAD >actual && + test_cmp expect actual -expecting success of 0027.34 'commit file with mixed EOL onto LF crlf=input attr=auto': - check_warning "$lfwarn" ${pfx}_LF.err - -ok 34 - commit file with mixed EOL onto LF crlf=input attr=auto +ok 12 - we can parse long symbolic ref -expecting success of 0027.35 'commit file with mixed EOL onto CLRF attr=auto aeol= crlf=input': - check_warning "$crlfwarn" ${pfx}_CRLF.err - -ok 35 - commit file with mixed EOL onto CLRF attr=auto aeol= crlf=input +expecting success of 1401.13 'symbolic-ref reports failure in exit code': + test_when_finished "rm -f .git/HEAD.lock" && + >.git/HEAD.lock && + test_must_fail git symbolic-ref HEAD refs/heads/whatever -expecting success of 0027.36 'commit file with mixed EOL onto CRLF_mix_LF attr=auto aeol= crlf=input': - check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err - -ok 36 - commit file with mixed EOL onto CRLF_mix_LF attr=auto aeol= crlf=input +error: Unable to create '/build/git-2.30.2/t/trash directory.t1401-symbolic-ref/.git/HEAD.lock': File exists. -expecting success of 0027.37 'commit file with mixed EOL onto LF_mix_cr attr=auto aeol= crlf=input ': - check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err - -ok 37 - commit file with mixed EOL onto LF_mix_cr attr=auto aeol= crlf=input +Another git process seems to be running in this repository, e.g. +an editor opened by 'git commit'. Please make sure all processes +are terminated then try again. If it still fails, a git process +may have crashed in this repository earlier: +remove the file manually to continue. +ok 13 - symbolic-ref reports failure in exit code -expecting success of 0027.38 'commit file with mixed EOL onto CRLF_nul attr=auto aeol= crlf=input': - check_warning "$crlfnul" ${pfx}_CRLF_nul.err - -ok 38 - commit file with mixed EOL onto CRLF_nul attr=auto aeol= crlf=input +expecting success of 1401.14 'symbolic-ref writes reflog entry': + git checkout -b log1 && + test_commit one && + git checkout -b log2 && + test_commit two && + git checkout --orphan orphan && + git symbolic-ref -m create HEAD refs/heads/log1 && + git symbolic-ref -m update HEAD refs/heads/log2 && + cat >expect <<-\EOF && + update + create + EOF + git log --format=%gs -g -2 >actual && + test_cmp expect actual -expecting success of 0027.39 'commit NNO files crlf=false attr= LF': - check_warning "$lfwarn" ${pfx}_LF.err - -ok 39 - commit NNO files crlf=false attr= LF +Switched to a new branch 'log1' +[log1 6782655] one + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 one.t +Switched to a new branch 'log2' +[log2 4d9c76a] two + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 two.t +Switched to a new branch 'orphan' +ok 14 - symbolic-ref writes reflog entry -expecting success of 0027.40 'commit NNO files attr= aeol= crlf=false CRLF': - check_warning "$crlfwarn" ${pfx}_CRLF.err - -ok 40 - commit NNO files attr= aeol= crlf=false CRLF +expecting success of 1401.15 'symbolic-ref does not create ref d/f conflicts': + git checkout -b df && + test_commit df && + test_must_fail git symbolic-ref refs/heads/df/conflict refs/heads/df && + git pack-refs --all --prune && + test_must_fail git symbolic-ref refs/heads/df/conflict refs/heads/df -expecting success of 0027.41 'commit NNO files attr= aeol= crlf=false CRLF_mix_LF': - check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err - -ok 41 - commit NNO files attr= aeol= crlf=false CRLF_mix_LF +Switched to a new branch 'df' +[df 39fb238] df + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 df.t +error: Unable to create '/build/git-2.30.2/t/trash directory.t1401-symbolic-ref/.git/refs/heads/df/conflict.lock': Not a directory +error: 'refs/heads/df' exists; cannot create 'refs/heads/df/conflict' +ok 15 - symbolic-ref does not create ref d/f conflicts -expecting success of 0027.42 'commit NNO files attr= aeol= crlf=false LF_mix_cr': - check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err - -ok 42 - commit NNO files attr= aeol= crlf=false LF_mix_cr +expecting success of 1401.16 'symbolic-ref can overwrite pointer to invalid name': + test_when_finished reset_to_sane && + head=$(git rev-parse HEAD) && + git symbolic-ref HEAD refs/heads/outer && + test_when_finished "git update-ref -d refs/heads/outer/inner" && + git update-ref refs/heads/outer/inner $head && + git symbolic-ref HEAD refs/heads/unrelated -expecting success of 0027.43 'commit NNO files attr= aeol= crlf=false CRLF_nul': - check_warning "$crlfnul" ${pfx}_CRLF_nul.err - -ok 43 - commit NNO files attr= aeol= crlf=false CRLF_nul +ok 16 - symbolic-ref can overwrite pointer to invalid name -expecting success of 0027.44 'commit NNO files crlf=true attr= LF': - check_warning "$lfwarn" ${pfx}_LF.err - -ok 44 - commit NNO files crlf=true attr= LF +expecting success of 1401.17 'symbolic-ref can resolve d/f name (EISDIR)': + test_when_finished reset_to_sane && + head=$(git rev-parse HEAD) && + git symbolic-ref HEAD refs/heads/outer/inner && + test_when_finished "git update-ref -d refs/heads/outer" && + git update-ref refs/heads/outer $head && + echo refs/heads/outer/inner >expect && + git symbolic-ref HEAD >actual && + test_cmp expect actual -expecting success of 0027.45 'commit NNO files attr= aeol= crlf=true CRLF': - check_warning "$crlfwarn" ${pfx}_CRLF.err - -ok 45 - commit NNO files attr= aeol= crlf=true CRLF +ok 17 - symbolic-ref can resolve d/f name (EISDIR) -expecting success of 0027.46 'commit NNO files attr= aeol= crlf=true CRLF_mix_LF': - check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err - -ok 46 - commit NNO files attr= aeol= crlf=true CRLF_mix_LF +expecting success of 1401.18 'symbolic-ref can resolve d/f name (ENOTDIR)': + test_when_finished reset_to_sane && + head=$(git rev-parse HEAD) && + git symbolic-ref HEAD refs/heads/outer && + test_when_finished "git update-ref -d refs/heads/outer/inner" && + git update-ref refs/heads/outer/inner $head && + echo refs/heads/outer >expect && + git symbolic-ref HEAD >actual && + test_cmp expect actual -expecting success of 0027.47 'commit NNO files attr= aeol= crlf=true LF_mix_cr': - check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err - -ok 47 - commit NNO files attr= aeol= crlf=true LF_mix_cr +ok 18 - symbolic-ref can resolve d/f name (ENOTDIR) -expecting success of 0027.48 'commit NNO files attr= aeol= crlf=true CRLF_nul': - check_warning "$crlfnul" ${pfx}_CRLF_nul.err +# passed all 18 test(s) +1..18 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t1402-check-ref-format.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1402-check-ref-format/.git/ +expecting success of 1402.1 'ref name '' is invalid': + test_must_fail git check-ref-format '' -ok 48 - commit NNO files attr= aeol= crlf=true CRLF_nul +ok 1 - ref name '' is invalid -expecting success of 0027.49 'commit NNO files crlf=input attr= LF': - check_warning "$lfwarn" ${pfx}_LF.err +expecting success of 1402.2 'ref name '/' is invalid': + test_must_fail git check-ref-format '/' -ok 49 - commit NNO files crlf=input attr= LF +ok 2 - ref name '/' is invalid -expecting success of 0027.50 'commit NNO files attr= aeol= crlf=input CRLF': - check_warning "$crlfwarn" ${pfx}_CRLF.err +expecting success of 1402.3 'ref name '/' is invalid with options --allow-onelevel': + test_must_fail git check-ref-format --allow-onelevel '/' -ok 50 - commit NNO files attr= aeol= crlf=input CRLF +ok 3 - ref name '/' is invalid with options --allow-onelevel -expecting success of 0027.51 'commit NNO files attr= aeol= crlf=input CRLF_mix_LF': - check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err +expecting success of 1402.4 'ref name '/' is invalid with options --normalize': + test_must_fail git check-ref-format --normalize '/' -ok 51 - commit NNO files attr= aeol= crlf=input CRLF_mix_LF +ok 4 - ref name '/' is invalid with options --normalize -expecting success of 0027.52 'commit NNO files attr= aeol= crlf=input LF_mix_cr': - check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err +expecting success of 1402.5 'ref name '/' is invalid with options --allow-onelevel --normalize': + test_must_fail git check-ref-format --allow-onelevel --normalize '/' -ok 52 - commit NNO files attr= aeol= crlf=input LF_mix_cr +ok 5 - ref name '/' is invalid with options --allow-onelevel --normalize -expecting success of 0027.53 'commit NNO files attr= aeol= crlf=input CRLF_nul': - check_warning "$crlfnul" ${pfx}_CRLF_nul.err +expecting success of 1402.6 'ref name 'foo/bar/baz' is valid': + git check-ref-format 'foo/bar/baz' -ok 53 - commit NNO files attr= aeol= crlf=input CRLF_nul +ok 6 - ref name 'foo/bar/baz' is valid -expecting success of 0027.54 'commit NNO files crlf=false attr=auto LF': - check_warning "$lfwarn" ${pfx}_LF.err +expecting success of 1402.7 'ref name 'foo/bar/baz' is valid with options --normalize': + git check-ref-format --normalize 'foo/bar/baz' -ok 54 - commit NNO files crlf=false attr=auto LF +foo/bar/baz +ok 7 - ref name 'foo/bar/baz' is valid with options --normalize -expecting success of 0027.55 'commit NNO files attr=auto aeol= crlf=false CRLF': - check_warning "$crlfwarn" ${pfx}_CRLF.err +expecting success of 1402.8 'ref name 'refs///heads/foo' is invalid': + test_must_fail git check-ref-format 'refs///heads/foo' -ok 55 - commit NNO files attr=auto aeol= crlf=false CRLF +ok 8 - ref name 'refs///heads/foo' is invalid -expecting success of 0027.56 'commit NNO files attr=auto aeol= crlf=false CRLF_mix_LF': - check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err +expecting success of 1402.9 'ref name 'refs///heads/foo' is valid with options --normalize': + git check-ref-format --normalize 'refs///heads/foo' -ok 56 - commit NNO files attr=auto aeol= crlf=false CRLF_mix_LF +refs/heads/foo +ok 9 - ref name 'refs///heads/foo' is valid with options --normalize -expecting success of 0027.57 'commit NNO files attr=auto aeol= crlf=false LF_mix_cr': - check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err +expecting success of 1402.10 'ref name 'heads/foo/' is invalid': + test_must_fail git check-ref-format 'heads/foo/' -ok 57 - commit NNO files attr=auto aeol= crlf=false LF_mix_cr +ok 10 - ref name 'heads/foo/' is invalid -expecting success of 0027.58 'commit NNO files attr=auto aeol= crlf=false CRLF_nul': - check_warning "$crlfnul" ${pfx}_CRLF_nul.err +expecting success of 1402.11 'ref name '/heads/foo' is invalid': + test_must_fail git check-ref-format '/heads/foo' -ok 58 - commit NNO files attr=auto aeol= crlf=false CRLF_nul +ok 11 - ref name '/heads/foo' is invalid -expecting success of 0027.59 'commit NNO files crlf=true attr=auto LF': - check_warning "$lfwarn" ${pfx}_LF.err +expecting success of 1402.12 'ref name '/heads/foo' is valid with options --normalize': + git check-ref-format --normalize '/heads/foo' -ok 59 - commit NNO files crlf=true attr=auto LF +heads/foo +ok 12 - ref name '/heads/foo' is valid with options --normalize -expecting success of 0027.60 'commit NNO files attr=auto aeol= crlf=true CRLF': - check_warning "$crlfwarn" ${pfx}_CRLF.err +expecting success of 1402.13 'ref name '///heads/foo' is invalid': + test_must_fail git check-ref-format '///heads/foo' -ok 60 - commit NNO files attr=auto aeol= crlf=true CRLF +ok 13 - ref name '///heads/foo' is invalid -expecting success of 0027.61 'commit NNO files attr=auto aeol= crlf=true CRLF_mix_LF': - check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err +expecting success of 1402.14 'ref name '///heads/foo' is valid with options --normalize': + git check-ref-format --normalize '///heads/foo' -ok 61 - commit NNO files attr=auto aeol= crlf=true CRLF_mix_LF +heads/foo +ok 14 - ref name '///heads/foo' is valid with options --normalize -expecting success of 0027.62 'commit NNO files attr=auto aeol= crlf=true LF_mix_cr': - check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err +expecting success of 1402.15 'ref name './foo' is invalid': + test_must_fail git check-ref-format './foo' -ok 62 - commit NNO files attr=auto aeol= crlf=true LF_mix_cr +ok 15 - ref name './foo' is invalid -expecting success of 0027.63 'commit NNO files attr=auto aeol= crlf=true CRLF_nul': - check_warning "$crlfnul" ${pfx}_CRLF_nul.err +expecting success of 1402.16 'ref name './foo/bar' is invalid': + test_must_fail git check-ref-format './foo/bar' -ok 63 - commit NNO files attr=auto aeol= crlf=true CRLF_nul +ok 16 - ref name './foo/bar' is invalid -expecting success of 0027.64 'commit NNO files crlf=input attr=auto LF': - check_warning "$lfwarn" ${pfx}_LF.err +expecting success of 1402.17 'ref name 'foo/./bar' is invalid': + test_must_fail git check-ref-format 'foo/./bar' -ok 64 - commit NNO files crlf=input attr=auto LF +ok 17 - ref name 'foo/./bar' is invalid -expecting success of 0027.65 'commit NNO files attr=auto aeol= crlf=input CRLF': - check_warning "$crlfwarn" ${pfx}_CRLF.err +expecting success of 1402.18 'ref name 'foo/bar/.' is invalid': + test_must_fail git check-ref-format 'foo/bar/.' -ok 65 - commit NNO files attr=auto aeol= crlf=input CRLF +ok 18 - ref name 'foo/bar/.' is invalid -expecting success of 0027.66 'commit NNO files attr=auto aeol= crlf=input CRLF_mix_LF': - check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err +expecting success of 1402.19 'ref name '.refs/foo' is invalid': + test_must_fail git check-ref-format '.refs/foo' -ok 66 - commit NNO files attr=auto aeol= crlf=input CRLF_mix_LF +ok 19 - ref name '.refs/foo' is invalid -expecting success of 0027.67 'commit NNO files attr=auto aeol= crlf=input LF_mix_cr': - check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err +expecting success of 1402.20 'ref name 'refs/heads/foo.' is invalid': + test_must_fail git check-ref-format 'refs/heads/foo.' -ok 67 - commit NNO files attr=auto aeol= crlf=input LF_mix_cr +ok 20 - ref name 'refs/heads/foo.' is invalid -expecting success of 0027.68 'commit NNO files attr=auto aeol= crlf=input CRLF_nul': - check_warning "$crlfnul" ${pfx}_CRLF_nul.err +expecting success of 1402.21 'ref name 'heads/foo..bar' is invalid': + test_must_fail git check-ref-format 'heads/foo..bar' -ok 68 - commit NNO files attr=auto aeol= crlf=input CRLF_nul +ok 21 - ref name 'heads/foo..bar' is invalid -expecting success of 0027.69 'commit NNO files crlf=true attr=-text LF': - check_warning "$lfwarn" ${pfx}_LF.err +expecting success of 1402.22 'ref name 'heads/foo?bar' is invalid': + test_must_fail git check-ref-format 'heads/foo?bar' -ok 69 - commit NNO files crlf=true attr=-text LF +ok 22 - ref name 'heads/foo?bar' is invalid -expecting success of 0027.70 'commit NNO files attr=-text aeol= crlf=true CRLF': - check_warning "$crlfwarn" ${pfx}_CRLF.err +expecting success of 1402.23 'ref name 'foo./bar' is valid': + git check-ref-format 'foo./bar' -ok 70 - commit NNO files attr=-text aeol= crlf=true CRLF +ok 23 - ref name 'foo./bar' is valid -expecting success of 0027.71 'commit NNO files attr=-text aeol= crlf=true CRLF_mix_LF': - check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err +expecting success of 1402.24 'ref name 'heads/foo.lock' is invalid': + test_must_fail git check-ref-format 'heads/foo.lock' -ok 71 - commit NNO files attr=-text aeol= crlf=true CRLF_mix_LF +ok 24 - ref name 'heads/foo.lock' is invalid -expecting success of 0027.72 'commit NNO files attr=-text aeol= crlf=true LF_mix_cr': - check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err +expecting success of 1402.25 'ref name 'heads///foo.lock' is invalid': + test_must_fail git check-ref-format 'heads///foo.lock' -ok 72 - commit NNO files attr=-text aeol= crlf=true LF_mix_cr +ok 25 - ref name 'heads///foo.lock' is invalid -expecting success of 0027.73 'commit NNO files attr=-text aeol= crlf=true CRLF_nul': - check_warning "$crlfnul" ${pfx}_CRLF_nul.err +expecting success of 1402.26 'ref name 'foo.lock/bar' is invalid': + test_must_fail git check-ref-format 'foo.lock/bar' -ok 73 - commit NNO files attr=-text aeol= crlf=true CRLF_nul +ok 26 - ref name 'foo.lock/bar' is invalid -expecting success of 0027.74 'commit NNO files crlf=true attr=-text LF': - check_warning "$lfwarn" ${pfx}_LF.err +expecting success of 1402.27 'ref name 'foo.lock///bar' is invalid': + test_must_fail git check-ref-format 'foo.lock///bar' -ok 74 - commit NNO files crlf=true attr=-text LF +ok 27 - ref name 'foo.lock///bar' is invalid -expecting success of 0027.75 'commit NNO files attr=-text aeol=lf crlf=true CRLF': - check_warning "$crlfwarn" ${pfx}_CRLF.err +expecting success of 1402.28 'ref name 'heads/foo@bar' is valid': + git check-ref-format 'heads/foo@bar' -ok 75 - commit NNO files attr=-text aeol=lf crlf=true CRLF +ok 28 - ref name 'heads/foo@bar' is valid -expecting success of 0027.76 'commit NNO files attr=-text aeol=lf crlf=true CRLF_mix_LF': - check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err +expecting success of 1402.29 'ref name 'heads/v@{ation' is invalid': + test_must_fail git check-ref-format 'heads/v@{ation' -ok 76 - commit NNO files attr=-text aeol=lf crlf=true CRLF_mix_LF +ok 29 - ref name 'heads/v@{ation' is invalid -expecting success of 0027.77 'commit NNO files attr=-text aeol=lf crlf=true LF_mix_cr': - check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err +expecting success of 1402.30 'ref name 'heads/foo\bar' is invalid': + test_must_fail git check-ref-format 'heads/foo\bar' -ok 77 - commit NNO files attr=-text aeol=lf crlf=true LF_mix_cr +ok 30 - ref name 'heads/foo\bar' is invalid -expecting success of 0027.78 'commit NNO files attr=-text aeol=lf crlf=true CRLF_nul': - check_warning "$crlfnul" ${pfx}_CRLF_nul.err +expecting success of 1402.31 'ref name 'heads/foo ' is invalid': + test_must_fail git check-ref-format 'heads/foo ' -ok 78 - commit NNO files attr=-text aeol=lf crlf=true CRLF_nul +ok 31 - ref name 'heads/foo ' is invalid -expecting success of 0027.79 'commit NNO files crlf=true attr=-text LF': - check_warning "$lfwarn" ${pfx}_LF.err +expecting success of 1402.32 'ref name 'heads/foo' is invalid': + test_must_fail git check-ref-format 'heads/foo' -ok 79 - commit NNO files crlf=true attr=-text LF +ok 32 - ref name 'heads/foo' is invalid -expecting success of 0027.80 'commit NNO files attr=-text aeol=crlf crlf=true CRLF': - check_warning "$crlfwarn" ${pfx}_CRLF.err +expecting success of 1402.33 'ref name 'heads/fuß' is valid': + git check-ref-format 'heads/fuß' -ok 80 - commit NNO files attr=-text aeol=crlf crlf=true CRLF +ok 33 - ref name 'heads/fuß' is valid -expecting success of 0027.81 'commit NNO files attr=-text aeol=crlf crlf=true CRLF_mix_LF': - check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err +expecting success of 1402.34 'ref name 'heads/*foo/bar' is valid with options --refspec-pattern': + git check-ref-format --refspec-pattern 'heads/*foo/bar' -ok 81 - commit NNO files attr=-text aeol=crlf crlf=true CRLF_mix_LF +ok 34 - ref name 'heads/*foo/bar' is valid with options --refspec-pattern -expecting success of 0027.82 'commit NNO files attr=-text aeol=crlf crlf=true LF_mix_cr': - check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err +expecting success of 1402.35 'ref name 'heads/foo*/bar' is valid with options --refspec-pattern': + git check-ref-format --refspec-pattern 'heads/foo*/bar' -ok 82 - commit NNO files attr=-text aeol=crlf crlf=true LF_mix_cr +ok 35 - ref name 'heads/foo*/bar' is valid with options --refspec-pattern -expecting success of 0027.83 'commit NNO files attr=-text aeol=crlf crlf=true CRLF_nul': - check_warning "$crlfnul" ${pfx}_CRLF_nul.err +expecting success of 1402.36 'ref name 'heads/f*o/bar' is valid with options --refspec-pattern': + git check-ref-format --refspec-pattern 'heads/f*o/bar' -ok 83 - commit NNO files attr=-text aeol=crlf crlf=true CRLF_nul +ok 36 - ref name 'heads/f*o/bar' is valid with options --refspec-pattern -expecting success of 0027.84 'commit NNO files crlf=true attr= LF': - check_warning "$lfwarn" ${pfx}_LF.err +expecting success of 1402.37 'ref name 'heads/f*o*/bar' is invalid with options --refspec-pattern': + test_must_fail git check-ref-format --refspec-pattern 'heads/f*o*/bar' -ok 84 - commit NNO files crlf=true attr= LF +ok 37 - ref name 'heads/f*o*/bar' is invalid with options --refspec-pattern -expecting success of 0027.85 'commit NNO files attr= aeol=lf crlf=true CRLF': - check_warning "$crlfwarn" ${pfx}_CRLF.err +expecting success of 1402.38 'ref name 'heads/foo*/bar*' is invalid with options --refspec-pattern': + test_must_fail git check-ref-format --refspec-pattern 'heads/foo*/bar*' -ok 85 - commit NNO files attr= aeol=lf crlf=true CRLF +ok 38 - ref name 'heads/foo*/bar*' is invalid with options --refspec-pattern -expecting success of 0027.86 'commit NNO files attr= aeol=lf crlf=true CRLF_mix_LF': - check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err +expecting success of 1402.39 'ref name 'foo' is invalid': + test_must_fail git check-ref-format 'foo' -ok 86 - commit NNO files attr= aeol=lf crlf=true CRLF_mix_LF +ok 39 - ref name 'foo' is invalid -expecting success of 0027.87 'commit NNO files attr= aeol=lf crlf=true LF_mix_cr': - check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err +expecting success of 1402.40 'ref name 'foo' is valid with options --allow-onelevel': + git check-ref-format --allow-onelevel 'foo' -ok 87 - commit NNO files attr= aeol=lf crlf=true LF_mix_cr +ok 40 - ref name 'foo' is valid with options --allow-onelevel -expecting success of 0027.88 'commit NNO files attr= aeol=lf crlf=true CRLF_nul': - check_warning "$crlfnul" ${pfx}_CRLF_nul.err +expecting success of 1402.41 'ref name 'foo' is invalid with options --refspec-pattern': + test_must_fail git check-ref-format --refspec-pattern 'foo' -ok 88 - commit NNO files attr= aeol=lf crlf=true CRLF_nul +ok 41 - ref name 'foo' is invalid with options --refspec-pattern -expecting success of 0027.89 'commit NNO files crlf=true attr= LF': - check_warning "$lfwarn" ${pfx}_LF.err +expecting success of 1402.42 'ref name 'foo' is valid with options --refspec-pattern --allow-onelevel': + git check-ref-format --refspec-pattern --allow-onelevel 'foo' -ok 89 - commit NNO files crlf=true attr= LF +ok 42 - ref name 'foo' is valid with options --refspec-pattern --allow-onelevel -expecting success of 0027.90 'commit NNO files attr= aeol=crlf crlf=true CRLF': - check_warning "$crlfwarn" ${pfx}_CRLF.err +expecting success of 1402.43 'ref name 'foo' is invalid with options --normalize': + test_must_fail git check-ref-format --normalize 'foo' -ok 90 - commit NNO files attr= aeol=crlf crlf=true CRLF +ok 43 - ref name 'foo' is invalid with options --normalize -expecting success of 0027.91 'commit NNO files attr= aeol=crlf crlf=true CRLF_mix_LF': - check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err +expecting success of 1402.44 'ref name 'foo' is valid with options --allow-onelevel --normalize': + git check-ref-format --allow-onelevel --normalize 'foo' -ok 91 - commit NNO files attr= aeol=crlf crlf=true CRLF_mix_LF +foo +ok 44 - ref name 'foo' is valid with options --allow-onelevel --normalize -expecting success of 0027.92 'commit NNO files attr= aeol=crlf crlf=true LF_mix_cr': - check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err +expecting success of 1402.45 'ref name 'foo/bar' is valid': + git check-ref-format 'foo/bar' -ok 92 - commit NNO files attr= aeol=crlf crlf=true LF_mix_cr +ok 45 - ref name 'foo/bar' is valid -expecting success of 0027.93 'commit NNO files attr= aeol=crlf crlf=true CRLF_nul': - check_warning "$crlfnul" ${pfx}_CRLF_nul.err +expecting success of 1402.46 'ref name 'foo/bar' is valid with options --allow-onelevel': + git check-ref-format --allow-onelevel 'foo/bar' -ok 93 - commit NNO files attr= aeol=crlf crlf=true CRLF_nul +ok 46 - ref name 'foo/bar' is valid with options --allow-onelevel -expecting success of 0027.94 'commit NNO files crlf=true attr=auto LF': - check_warning "$lfwarn" ${pfx}_LF.err +expecting success of 1402.47 'ref name 'foo/bar' is valid with options --refspec-pattern': + git check-ref-format --refspec-pattern 'foo/bar' -ok 94 - commit NNO files crlf=true attr=auto LF +ok 47 - ref name 'foo/bar' is valid with options --refspec-pattern -expecting success of 0027.95 'commit NNO files attr=auto aeol=lf crlf=true CRLF': - check_warning "$crlfwarn" ${pfx}_CRLF.err +expecting success of 1402.48 'ref name 'foo/bar' is valid with options --refspec-pattern --allow-onelevel': + git check-ref-format --refspec-pattern --allow-onelevel 'foo/bar' -ok 95 - commit NNO files attr=auto aeol=lf crlf=true CRLF +ok 48 - ref name 'foo/bar' is valid with options --refspec-pattern --allow-onelevel -expecting success of 0027.96 'commit NNO files attr=auto aeol=lf crlf=true CRLF_mix_LF': - check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err +expecting success of 1402.49 'ref name 'foo/bar' is valid with options --normalize': + git check-ref-format --normalize 'foo/bar' -ok 96 - commit NNO files attr=auto aeol=lf crlf=true CRLF_mix_LF +foo/bar +ok 49 - ref name 'foo/bar' is valid with options --normalize -expecting success of 0027.97 'commit NNO files attr=auto aeol=lf crlf=true LF_mix_cr': - check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err +expecting success of 1402.50 'ref name 'foo/*' is invalid': + test_must_fail git check-ref-format 'foo/*' -ok 97 - commit NNO files attr=auto aeol=lf crlf=true LF_mix_cr +ok 50 - ref name 'foo/*' is invalid -expecting success of 0027.98 'commit NNO files attr=auto aeol=lf crlf=true CRLF_nul': - check_warning "$crlfnul" ${pfx}_CRLF_nul.err +expecting success of 1402.51 'ref name 'foo/*' is invalid with options --allow-onelevel': + test_must_fail git check-ref-format --allow-onelevel 'foo/*' -ok 98 - commit NNO files attr=auto aeol=lf crlf=true CRLF_nul +ok 51 - ref name 'foo/*' is invalid with options --allow-onelevel -expecting success of 0027.99 'commit NNO files crlf=true attr=auto LF': - check_warning "$lfwarn" ${pfx}_LF.err +expecting success of 1402.52 'ref name 'foo/*' is valid with options --refspec-pattern': + git check-ref-format --refspec-pattern 'foo/*' -ok 99 - commit NNO files crlf=true attr=auto LF +ok 52 - ref name 'foo/*' is valid with options --refspec-pattern -expecting success of 0027.100 'commit NNO files attr=auto aeol=crlf crlf=true CRLF': - check_warning "$crlfwarn" ${pfx}_CRLF.err +expecting success of 1402.53 'ref name 'foo/*' is valid with options --refspec-pattern --allow-onelevel': + git check-ref-format --refspec-pattern --allow-onelevel 'foo/*' -ok 100 - commit NNO files attr=auto aeol=crlf crlf=true CRLF +ok 53 - ref name 'foo/*' is valid with options --refspec-pattern --allow-onelevel -expecting success of 0027.101 'commit NNO files attr=auto aeol=crlf crlf=true CRLF_mix_LF': - check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err +expecting success of 1402.54 'ref name '*/foo' is invalid': + test_must_fail git check-ref-format '*/foo' -ok 101 - commit NNO files attr=auto aeol=crlf crlf=true CRLF_mix_LF +ok 54 - ref name '*/foo' is invalid -expecting success of 0027.102 'commit NNO files attr=auto aeol=crlf crlf=true LF_mix_cr': - check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err +expecting success of 1402.55 'ref name '*/foo' is invalid with options --allow-onelevel': + test_must_fail git check-ref-format --allow-onelevel '*/foo' -ok 102 - commit NNO files attr=auto aeol=crlf crlf=true LF_mix_cr +ok 55 - ref name '*/foo' is invalid with options --allow-onelevel -expecting success of 0027.103 'commit NNO files attr=auto aeol=crlf crlf=true CRLF_nul': - check_warning "$crlfnul" ${pfx}_CRLF_nul.err +expecting success of 1402.56 'ref name '*/foo' is valid with options --refspec-pattern': + git check-ref-format --refspec-pattern '*/foo' -ok 103 - commit NNO files attr=auto aeol=crlf crlf=true CRLF_nul +ok 56 - ref name '*/foo' is valid with options --refspec-pattern -expecting success of 0027.104 'commit NNO files crlf=true attr=text LF': - check_warning "$lfwarn" ${pfx}_LF.err +expecting success of 1402.57 'ref name '*/foo' is valid with options --refspec-pattern --allow-onelevel': + git check-ref-format --refspec-pattern --allow-onelevel '*/foo' -ok 104 - commit NNO files crlf=true attr=text LF +ok 57 - ref name '*/foo' is valid with options --refspec-pattern --allow-onelevel -expecting success of 0027.105 'commit NNO files attr=text aeol=lf crlf=true CRLF': - check_warning "$crlfwarn" ${pfx}_CRLF.err +expecting success of 1402.58 'ref name '*/foo' is invalid with options --normalize': + test_must_fail git check-ref-format --normalize '*/foo' -ok 105 - commit NNO files attr=text aeol=lf crlf=true CRLF +ok 58 - ref name '*/foo' is invalid with options --normalize -expecting success of 0027.106 'commit NNO files attr=text aeol=lf crlf=true CRLF_mix_LF': - check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err +expecting success of 1402.59 'ref name '*/foo' is valid with options --refspec-pattern --normalize': + git check-ref-format --refspec-pattern --normalize '*/foo' -ok 106 - commit NNO files attr=text aeol=lf crlf=true CRLF_mix_LF +*/foo +ok 59 - ref name '*/foo' is valid with options --refspec-pattern --normalize -expecting success of 0027.107 'commit NNO files attr=text aeol=lf crlf=true LF_mix_cr': - check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err +expecting success of 1402.60 'ref name 'foo/*/bar' is invalid': + test_must_fail git check-ref-format 'foo/*/bar' -ok 107 - commit NNO files attr=text aeol=lf crlf=true LF_mix_cr +ok 60 - ref name 'foo/*/bar' is invalid -expecting success of 0027.108 'commit NNO files attr=text aeol=lf crlf=true CRLF_nul': - check_warning "$crlfnul" ${pfx}_CRLF_nul.err +expecting success of 1402.61 'ref name 'foo/*/bar' is invalid with options --allow-onelevel': + test_must_fail git check-ref-format --allow-onelevel 'foo/*/bar' -ok 108 - commit NNO files attr=text aeol=lf crlf=true CRLF_nul +ok 61 - ref name 'foo/*/bar' is invalid with options --allow-onelevel -expecting success of 0027.109 'commit NNO files crlf=true attr=text LF': - check_warning "$lfwarn" ${pfx}_LF.err +expecting success of 1402.62 'ref name 'foo/*/bar' is valid with options --refspec-pattern': + git check-ref-format --refspec-pattern 'foo/*/bar' -ok 109 - commit NNO files crlf=true attr=text LF +ok 62 - ref name 'foo/*/bar' is valid with options --refspec-pattern -expecting success of 0027.110 'commit NNO files attr=text aeol=crlf crlf=true CRLF': - check_warning "$crlfwarn" ${pfx}_CRLF.err +expecting success of 1402.63 'ref name 'foo/*/bar' is valid with options --refspec-pattern --allow-onelevel': + git check-ref-format --refspec-pattern --allow-onelevel 'foo/*/bar' -ok 110 - commit NNO files attr=text aeol=crlf crlf=true CRLF +ok 63 - ref name 'foo/*/bar' is valid with options --refspec-pattern --allow-onelevel -expecting success of 0027.111 'commit NNO files attr=text aeol=crlf crlf=true CRLF_mix_LF': - check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err +expecting success of 1402.64 'ref name '*' is invalid': + test_must_fail git check-ref-format '*' -ok 111 - commit NNO files attr=text aeol=crlf crlf=true CRLF_mix_LF +ok 64 - ref name '*' is invalid -expecting success of 0027.112 'commit NNO files attr=text aeol=crlf crlf=true LF_mix_cr': - check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err +expecting success of 1402.65 'ref name '*' is invalid with options --allow-onelevel': + test_must_fail git check-ref-format --allow-onelevel '*' -ok 112 - commit NNO files attr=text aeol=crlf crlf=true LF_mix_cr +ok 65 - ref name '*' is invalid with options --allow-onelevel -expecting success of 0027.113 'commit NNO files attr=text aeol=crlf crlf=true CRLF_nul': - check_warning "$crlfnul" ${pfx}_CRLF_nul.err +expecting success of 1402.66 'ref name '*' is invalid with options --refspec-pattern': + test_must_fail git check-ref-format --refspec-pattern '*' -ok 113 - commit NNO files attr=text aeol=crlf crlf=true CRLF_nul +ok 66 - ref name '*' is invalid with options --refspec-pattern -expecting success of 0027.114 'commit NNO files crlf=false attr=-text LF': - check_warning "$lfwarn" ${pfx}_LF.err +expecting success of 1402.67 'ref name '*' is valid with options --refspec-pattern --allow-onelevel': + git check-ref-format --refspec-pattern --allow-onelevel '*' -ok 114 - commit NNO files crlf=false attr=-text LF +ok 67 - ref name '*' is valid with options --refspec-pattern --allow-onelevel -expecting success of 0027.115 'commit NNO files attr=-text aeol= crlf=false CRLF': - check_warning "$crlfwarn" ${pfx}_CRLF.err +expecting success of 1402.68 'ref name 'foo/*/*' is invalid with options --refspec-pattern': + test_must_fail git check-ref-format --refspec-pattern 'foo/*/*' -ok 115 - commit NNO files attr=-text aeol= crlf=false CRLF +ok 68 - ref name 'foo/*/*' is invalid with options --refspec-pattern -expecting success of 0027.116 'commit NNO files attr=-text aeol= crlf=false CRLF_mix_LF': - check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err +expecting success of 1402.69 'ref name 'foo/*/*' is invalid with options --refspec-pattern --allow-onelevel': + test_must_fail git check-ref-format --refspec-pattern --allow-onelevel 'foo/*/*' -ok 116 - commit NNO files attr=-text aeol= crlf=false CRLF_mix_LF +ok 69 - ref name 'foo/*/*' is invalid with options --refspec-pattern --allow-onelevel -expecting success of 0027.117 'commit NNO files attr=-text aeol= crlf=false LF_mix_cr': - check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err +expecting success of 1402.70 'ref name '*/foo/*' is invalid with options --refspec-pattern': + test_must_fail git check-ref-format --refspec-pattern '*/foo/*' -ok 117 - commit NNO files attr=-text aeol= crlf=false LF_mix_cr +ok 70 - ref name '*/foo/*' is invalid with options --refspec-pattern -expecting success of 0027.118 'commit NNO files attr=-text aeol= crlf=false CRLF_nul': - check_warning "$crlfnul" ${pfx}_CRLF_nul.err +expecting success of 1402.71 'ref name '*/foo/*' is invalid with options --refspec-pattern --allow-onelevel': + test_must_fail git check-ref-format --refspec-pattern --allow-onelevel '*/foo/*' -ok 118 - commit NNO files attr=-text aeol= crlf=false CRLF_nul +ok 71 - ref name '*/foo/*' is invalid with options --refspec-pattern --allow-onelevel -expecting success of 0027.119 'commit NNO files crlf=false attr=-text LF': - check_warning "$lfwarn" ${pfx}_LF.err +expecting success of 1402.72 'ref name '*/*/foo' is invalid with options --refspec-pattern': + test_must_fail git check-ref-format --refspec-pattern '*/*/foo' -ok 119 - commit NNO files crlf=false attr=-text LF +ok 72 - ref name '*/*/foo' is invalid with options --refspec-pattern -expecting success of 0027.120 'commit NNO files attr=-text aeol=lf crlf=false CRLF': - check_warning "$crlfwarn" ${pfx}_CRLF.err +expecting success of 1402.73 'ref name '*/*/foo' is invalid with options --refspec-pattern --allow-onelevel': + test_must_fail git check-ref-format --refspec-pattern --allow-onelevel '*/*/foo' -ok 120 - commit NNO files attr=-text aeol=lf crlf=false CRLF +ok 73 - ref name '*/*/foo' is invalid with options --refspec-pattern --allow-onelevel -expecting success of 0027.121 'commit NNO files attr=-text aeol=lf crlf=false CRLF_mix_LF': - check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err +expecting success of 1402.74 'ref name '/foo' is invalid': + test_must_fail git check-ref-format '/foo' -ok 121 - commit NNO files attr=-text aeol=lf crlf=false CRLF_mix_LF +ok 74 - ref name '/foo' is invalid -expecting success of 0027.122 'commit NNO files attr=-text aeol=lf crlf=false LF_mix_cr': - check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err +expecting success of 1402.75 'ref name '/foo' is invalid with options --allow-onelevel': + test_must_fail git check-ref-format --allow-onelevel '/foo' -ok 122 - commit NNO files attr=-text aeol=lf crlf=false LF_mix_cr +ok 75 - ref name '/foo' is invalid with options --allow-onelevel -expecting success of 0027.123 'commit NNO files attr=-text aeol=lf crlf=false CRLF_nul': - check_warning "$crlfnul" ${pfx}_CRLF_nul.err +expecting success of 1402.76 'ref name '/foo' is invalid with options --refspec-pattern': + test_must_fail git check-ref-format --refspec-pattern '/foo' -ok 123 - commit NNO files attr=-text aeol=lf crlf=false CRLF_nul +ok 76 - ref name '/foo' is invalid with options --refspec-pattern -expecting success of 0027.124 'commit NNO files crlf=false attr=-text LF': - check_warning "$lfwarn" ${pfx}_LF.err +expecting success of 1402.77 'ref name '/foo' is invalid with options --refspec-pattern --allow-onelevel': + test_must_fail git check-ref-format --refspec-pattern --allow-onelevel '/foo' -ok 124 - commit NNO files crlf=false attr=-text LF +ok 77 - ref name '/foo' is invalid with options --refspec-pattern --allow-onelevel -expecting success of 0027.125 'commit NNO files attr=-text aeol=crlf crlf=false CRLF': - check_warning "$crlfwarn" ${pfx}_CRLF.err +expecting success of 1402.78 'ref name '/foo' is invalid with options --normalize': + test_must_fail git check-ref-format --normalize '/foo' -ok 125 - commit NNO files attr=-text aeol=crlf crlf=false CRLF +ok 78 - ref name '/foo' is invalid with options --normalize -expecting success of 0027.126 'commit NNO files attr=-text aeol=crlf crlf=false CRLF_mix_LF': - check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err +expecting success of 1402.79 'ref name '/foo' is valid with options --allow-onelevel --normalize': + git check-ref-format --allow-onelevel --normalize '/foo' -ok 126 - commit NNO files attr=-text aeol=crlf crlf=false CRLF_mix_LF +foo +ok 79 - ref name '/foo' is valid with options --allow-onelevel --normalize -expecting success of 0027.127 'commit NNO files attr=-text aeol=crlf crlf=false LF_mix_cr': - check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err +expecting success of 1402.80 'ref name '/foo' is invalid with options --refspec-pattern --normalize': + test_must_fail git check-ref-format --refspec-pattern --normalize '/foo' -ok 127 - commit NNO files attr=-text aeol=crlf crlf=false LF_mix_cr +ok 80 - ref name '/foo' is invalid with options --refspec-pattern --normalize -expecting success of 0027.128 'commit NNO files attr=-text aeol=crlf crlf=false CRLF_nul': - check_warning "$crlfnul" ${pfx}_CRLF_nul.err +expecting success of 1402.81 'ref name '/foo' is valid with options --refspec-pattern --allow-onelevel --normalize': + git check-ref-format --refspec-pattern --allow-onelevel --normalize '/foo' -ok 128 - commit NNO files attr=-text aeol=crlf crlf=false CRLF_nul +foo +ok 81 - ref name '/foo' is valid with options --refspec-pattern --allow-onelevel --normalize -expecting success of 0027.129 'commit NNO files crlf=false attr= LF': - check_warning "$lfwarn" ${pfx}_LF.err - -ok 129 - commit NNO files crlf=false attr= LF +expecting success of 1402.82 'check-ref-format --branch @{-1}': + T=$(git write-tree) && + sha1=$(echo A | git commit-tree $T) && + git update-ref refs/heads/master $sha1 && + git update-ref refs/remotes/origin/master $sha1 && + git checkout master && + git checkout origin/master && + git checkout master && + refname=$(git check-ref-format --branch @{-1}) && + test "$refname" = "$sha1" && + refname2=$(git check-ref-format --branch @{-2}) && + test "$refname2" = master +Already on 'master' +Note: switching to 'origin/master'. -expecting success of 0027.130 'commit NNO files attr= aeol=lf crlf=false CRLF': - check_warning "$crlfwarn" ${pfx}_CRLF.err - -ok 130 - commit NNO files attr= aeol=lf crlf=false CRLF +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. -expecting success of 0027.131 'commit NNO files attr= aeol=lf crlf=false CRLF_mix_LF': - check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err - -ok 131 - commit NNO files attr= aeol=lf crlf=false CRLF_mix_LF +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: -expecting success of 0027.132 'commit NNO files attr= aeol=lf crlf=false LF_mix_cr': - check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err - -ok 132 - commit NNO files attr= aeol=lf crlf=false LF_mix_cr + git switch -c -expecting success of 0027.133 'commit NNO files attr= aeol=lf crlf=false CRLF_nul': - check_warning "$crlfnul" ${pfx}_CRLF_nul.err - -ok 133 - commit NNO files attr= aeol=lf crlf=false CRLF_nul +Or undo this operation with: -expecting success of 0027.134 'commit NNO files crlf=false attr= LF': - check_warning "$lfwarn" ${pfx}_LF.err - -ok 134 - commit NNO files crlf=false attr= LF + git switch - -expecting success of 0027.135 'commit NNO files attr= aeol=crlf crlf=false CRLF': - check_warning "$crlfwarn" ${pfx}_CRLF.err - -ok 135 - commit NNO files attr= aeol=crlf crlf=false CRLF +Turn off this advice by setting config variable advice.detachedHead to false -expecting success of 0027.136 'commit NNO files attr= aeol=crlf crlf=false CRLF_mix_LF': - check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err - -ok 136 - commit NNO files attr= aeol=crlf crlf=false CRLF_mix_LF +HEAD is now at 58052da A +Switched to branch 'master' +ok 82 - check-ref-format --branch @{-1} -expecting success of 0027.137 'commit NNO files attr= aeol=crlf crlf=false LF_mix_cr': - check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err - -ok 137 - commit NNO files attr= aeol=crlf crlf=false LF_mix_cr +expecting success of 1402.83 'check-ref-format --branch -naster': + test_must_fail git check-ref-format --branch -naster >actual && + test_must_be_empty actual -expecting success of 0027.138 'commit NNO files attr= aeol=crlf crlf=false CRLF_nul': - check_warning "$crlfnul" ${pfx}_CRLF_nul.err - -ok 138 - commit NNO files attr= aeol=crlf crlf=false CRLF_nul +fatal: '-naster' is not a valid branch name +ok 83 - check-ref-format --branch -naster -expecting success of 0027.139 'commit NNO files crlf=false attr=auto LF': - check_warning "$lfwarn" ${pfx}_LF.err - -ok 139 - commit NNO files crlf=false attr=auto LF +expecting success of 1402.84 'check-ref-format --branch from subdir': + mkdir subdir && -expecting success of 0027.140 'commit NNO files attr=auto aeol=lf crlf=false CRLF': - check_warning "$crlfwarn" ${pfx}_CRLF.err - -ok 140 - commit NNO files attr=auto aeol=lf crlf=false CRLF + T=$(git write-tree) && + sha1=$(echo A | git commit-tree $T) && + git update-ref refs/heads/master $sha1 && + git update-ref refs/remotes/origin/master $sha1 && + git checkout master && + git checkout origin/master && + git checkout master && + refname=$( + cd subdir && + git check-ref-format --branch @{-1} + ) && + test "$refname" = "$sha1" -expecting success of 0027.141 'commit NNO files attr=auto aeol=lf crlf=false CRLF_mix_LF': - check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err - -ok 141 - commit NNO files attr=auto aeol=lf crlf=false CRLF_mix_LF +Already on 'master' +Note: switching to 'origin/master'. -expecting success of 0027.142 'commit NNO files attr=auto aeol=lf crlf=false LF_mix_cr': - check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err - -ok 142 - commit NNO files attr=auto aeol=lf crlf=false LF_mix_cr +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. -expecting success of 0027.143 'commit NNO files attr=auto aeol=lf crlf=false CRLF_nul': - check_warning "$crlfnul" ${pfx}_CRLF_nul.err - -ok 143 - commit NNO files attr=auto aeol=lf crlf=false CRLF_nul +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: -expecting success of 0027.144 'commit NNO files crlf=false attr=auto LF': - check_warning "$lfwarn" ${pfx}_LF.err - -ok 144 - commit NNO files crlf=false attr=auto LF + git switch -c -expecting success of 0027.145 'commit NNO files attr=auto aeol=crlf crlf=false CRLF': - check_warning "$crlfwarn" ${pfx}_CRLF.err - -ok 145 - commit NNO files attr=auto aeol=crlf crlf=false CRLF +Or undo this operation with: -expecting success of 0027.146 'commit NNO files attr=auto aeol=crlf crlf=false CRLF_mix_LF': - check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err - -ok 146 - commit NNO files attr=auto aeol=crlf crlf=false CRLF_mix_LF + git switch - -expecting success of 0027.147 'commit NNO files attr=auto aeol=crlf crlf=false LF_mix_cr': - check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err - -ok 147 - commit NNO files attr=auto aeol=crlf crlf=false LF_mix_cr +Turn off this advice by setting config variable advice.detachedHead to false -expecting success of 0027.148 'commit NNO files attr=auto aeol=crlf crlf=false CRLF_nul': - check_warning "$crlfnul" ${pfx}_CRLF_nul.err - -ok 148 - commit NNO files attr=auto aeol=crlf crlf=false CRLF_nul +HEAD is now at 58052da A +Switched to branch 'master' +ok 84 - check-ref-format --branch from subdir -expecting success of 0027.149 'commit NNO files crlf=false attr=text LF': - check_warning "$lfwarn" ${pfx}_LF.err - -ok 149 - commit NNO files crlf=false attr=text LF +expecting success of 1402.85 'check-ref-format --branch @{-1} from non-repo': + nongit test_must_fail git check-ref-format --branch @{-1} >actual && + test_must_be_empty actual -expecting success of 0027.150 'commit NNO files attr=text aeol=lf crlf=false CRLF': - check_warning "$crlfwarn" ${pfx}_CRLF.err - -ok 150 - commit NNO files attr=text aeol=lf crlf=false CRLF +fatal: '@{-1}' is not a valid branch name +ok 85 - check-ref-format --branch @{-1} from non-repo -expecting success of 0027.151 'commit NNO files attr=text aeol=lf crlf=false CRLF_mix_LF': - check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err - -ok 151 - commit NNO files attr=text aeol=lf crlf=false CRLF_mix_LF +expecting success of 1402.86 'check-ref-format --branch master from non-repo': + echo master >expect && + nongit git check-ref-format --branch master >actual && + test_cmp expect actual -expecting success of 0027.152 'commit NNO files attr=text aeol=lf crlf=false LF_mix_cr': - check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err - -ok 152 - commit NNO files attr=text aeol=lf crlf=false LF_mix_cr +ok 86 - check-ref-format --branch master from non-repo -expecting success of 0027.153 'commit NNO files attr=text aeol=lf crlf=false CRLF_nul': - check_warning "$crlfnul" ${pfx}_CRLF_nul.err +expecting success of 1402.87 'ref name 'heads/foo' simplifies to 'heads/foo'': + refname=$(git check-ref-format --normalize 'heads/foo') && + test "$refname" = 'heads/foo' -ok 153 - commit NNO files attr=text aeol=lf crlf=false CRLF_nul +ok 87 - ref name 'heads/foo' simplifies to 'heads/foo' -expecting success of 0027.154 'commit NNO files crlf=false attr=text LF': - check_warning "$lfwarn" ${pfx}_LF.err +expecting success of 1402.88 'ref name 'refs///heads/foo' simplifies to 'refs/heads/foo'': + refname=$(git check-ref-format --normalize 'refs///heads/foo') && + test "$refname" = 'refs/heads/foo' -ok 154 - commit NNO files crlf=false attr=text LF +ok 88 - ref name 'refs///heads/foo' simplifies to 'refs/heads/foo' -expecting success of 0027.155 'commit NNO files attr=text aeol=crlf crlf=false CRLF': - check_warning "$crlfwarn" ${pfx}_CRLF.err +expecting success of 1402.89 'ref name '/heads/foo' simplifies to 'heads/foo'': + refname=$(git check-ref-format --normalize '/heads/foo') && + test "$refname" = 'heads/foo' -ok 155 - commit NNO files attr=text aeol=crlf crlf=false CRLF +ok 89 - ref name '/heads/foo' simplifies to 'heads/foo' -expecting success of 0027.156 'commit NNO files attr=text aeol=crlf crlf=false CRLF_mix_LF': - check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err +expecting success of 1402.90 'ref name '///heads/foo' simplifies to 'heads/foo'': + refname=$(git check-ref-format --normalize '///heads/foo') && + test "$refname" = 'heads/foo' -ok 156 - commit NNO files attr=text aeol=crlf crlf=false CRLF_mix_LF +ok 90 - ref name '///heads/foo' simplifies to 'heads/foo' -expecting success of 0027.157 'commit NNO files attr=text aeol=crlf crlf=false LF_mix_cr': - check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err +expecting success of 1402.91 'check-ref-format --normalize rejects 'foo'': + test_must_fail git check-ref-format --normalize 'foo' -ok 157 - commit NNO files attr=text aeol=crlf crlf=false LF_mix_cr +ok 91 - check-ref-format --normalize rejects 'foo' -expecting success of 0027.158 'commit NNO files attr=text aeol=crlf crlf=false CRLF_nul': - check_warning "$crlfnul" ${pfx}_CRLF_nul.err +expecting success of 1402.92 'check-ref-format --normalize rejects '/foo'': + test_must_fail git check-ref-format --normalize '/foo' -ok 158 - commit NNO files attr=text aeol=crlf crlf=false CRLF_nul +ok 92 - check-ref-format --normalize rejects '/foo' -expecting success of 0027.159 'commit NNO files crlf=input attr=-text LF': - check_warning "$lfwarn" ${pfx}_LF.err +expecting success of 1402.93 'check-ref-format --normalize rejects 'heads/foo/../bar'': + test_must_fail git check-ref-format --normalize 'heads/foo/../bar' -ok 159 - commit NNO files crlf=input attr=-text LF +ok 93 - check-ref-format --normalize rejects 'heads/foo/../bar' -expecting success of 0027.160 'commit NNO files attr=-text aeol= crlf=input CRLF': - check_warning "$crlfwarn" ${pfx}_CRLF.err +expecting success of 1402.94 'check-ref-format --normalize rejects 'heads/./foo'': + test_must_fail git check-ref-format --normalize 'heads/./foo' -ok 160 - commit NNO files attr=-text aeol= crlf=input CRLF +ok 94 - check-ref-format --normalize rejects 'heads/./foo' -expecting success of 0027.161 'commit NNO files attr=-text aeol= crlf=input CRLF_mix_LF': - check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err +expecting success of 1402.95 'check-ref-format --normalize rejects 'heads\foo'': + test_must_fail git check-ref-format --normalize 'heads\foo' -ok 161 - commit NNO files attr=-text aeol= crlf=input CRLF_mix_LF +ok 95 - check-ref-format --normalize rejects 'heads\foo' -expecting success of 0027.162 'commit NNO files attr=-text aeol= crlf=input LF_mix_cr': - check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err +expecting success of 1402.96 'check-ref-format --normalize rejects 'heads/foo.lock'': + test_must_fail git check-ref-format --normalize 'heads/foo.lock' -ok 162 - commit NNO files attr=-text aeol= crlf=input LF_mix_cr +ok 96 - check-ref-format --normalize rejects 'heads/foo.lock' -expecting success of 0027.163 'commit NNO files attr=-text aeol= crlf=input CRLF_nul': - check_warning "$crlfnul" ${pfx}_CRLF_nul.err +expecting success of 1402.97 'check-ref-format --normalize rejects 'heads///foo.lock'': + test_must_fail git check-ref-format --normalize 'heads///foo.lock' -ok 163 - commit NNO files attr=-text aeol= crlf=input CRLF_nul +ok 97 - check-ref-format --normalize rejects 'heads///foo.lock' -expecting success of 0027.164 'commit NNO files crlf=input attr=-text LF': - check_warning "$lfwarn" ${pfx}_LF.err +expecting success of 1402.98 'check-ref-format --normalize rejects 'foo.lock/bar'': + test_must_fail git check-ref-format --normalize 'foo.lock/bar' -ok 164 - commit NNO files crlf=input attr=-text LF +ok 98 - check-ref-format --normalize rejects 'foo.lock/bar' -expecting success of 0027.165 'commit NNO files attr=-text aeol=lf crlf=input CRLF': - check_warning "$crlfwarn" ${pfx}_CRLF.err +expecting success of 1402.99 'check-ref-format --normalize rejects 'foo.lock///bar'': + test_must_fail git check-ref-format --normalize 'foo.lock///bar' -ok 165 - commit NNO files attr=-text aeol=lf crlf=input CRLF +ok 99 - check-ref-format --normalize rejects 'foo.lock///bar' -expecting success of 0027.166 'commit NNO files attr=-text aeol=lf crlf=input CRLF_mix_LF': - check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err - -ok 166 - commit NNO files attr=-text aeol=lf crlf=input CRLF_mix_LF +# passed all 99 test(s) +1..99 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t1403-show-ref.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1403-show-ref/.git/ +expecting success of 1403.1 'setup': + test_commit A && + git tag -f -a -m "annotated A" A && + git checkout -b side && + test_commit B && + git tag -f -a -m "annotated B" B && + git checkout master && + test_commit C && + git branch B A^0 -expecting success of 0027.167 'commit NNO files attr=-text aeol=lf crlf=input LF_mix_cr': - check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err - -ok 167 - commit NNO files attr=-text aeol=lf crlf=input LF_mix_cr +[master (root-commit) 0ddfaf1] A + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 A.t +Updated tag 'A' (was 0ddfaf1) +Switched to a new branch 'side' +[side d9df450] B + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 B.t +Updated tag 'B' (was d9df450) +Switched to branch 'master' +[master 5dee784] C + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 C.t +ok 1 - setup -expecting success of 0027.168 'commit NNO files attr=-text aeol=lf crlf=input CRLF_nul': - check_warning "$crlfnul" ${pfx}_CRLF_nul.err - -ok 168 - commit NNO files attr=-text aeol=lf crlf=input CRLF_nul +expecting success of 1403.2 'show-ref': + echo $(git rev-parse refs/tags/A) refs/tags/A >expect && -expecting success of 0027.169 'commit NNO files crlf=input attr=-text LF': - check_warning "$lfwarn" ${pfx}_LF.err - -ok 169 - commit NNO files crlf=input attr=-text LF + git show-ref A >actual && + test_cmp expect actual && -expecting success of 0027.170 'commit NNO files attr=-text aeol=crlf crlf=input CRLF': - check_warning "$crlfwarn" ${pfx}_CRLF.err - -ok 170 - commit NNO files attr=-text aeol=crlf crlf=input CRLF + git show-ref tags/A >actual && + test_cmp expect actual && -expecting success of 0027.171 'commit NNO files attr=-text aeol=crlf crlf=input CRLF_mix_LF': - check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err - -ok 171 - commit NNO files attr=-text aeol=crlf crlf=input CRLF_mix_LF + git show-ref refs/tags/A >actual && + test_cmp expect actual && -expecting success of 0027.172 'commit NNO files attr=-text aeol=crlf crlf=input LF_mix_cr': - check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err - -ok 172 - commit NNO files attr=-text aeol=crlf crlf=input LF_mix_cr + test_must_fail git show-ref D >actual && + test_must_be_empty actual -expecting success of 0027.173 'commit NNO files attr=-text aeol=crlf crlf=input CRLF_nul': - check_warning "$crlfnul" ${pfx}_CRLF_nul.err - -ok 173 - commit NNO files attr=-text aeol=crlf crlf=input CRLF_nul +ok 2 - show-ref -expecting success of 0027.174 'commit NNO files crlf=input attr= LF': - check_warning "$lfwarn" ${pfx}_LF.err - -ok 174 - commit NNO files crlf=input attr= LF +expecting success of 1403.3 'show-ref -q': + git show-ref -q A >actual && + test_must_be_empty actual && -expecting success of 0027.175 'commit NNO files attr= aeol=lf crlf=input CRLF': - check_warning "$crlfwarn" ${pfx}_CRLF.err - -ok 175 - commit NNO files attr= aeol=lf crlf=input CRLF + git show-ref -q tags/A >actual && + test_must_be_empty actual && -expecting success of 0027.176 'commit NNO files attr= aeol=lf crlf=input CRLF_mix_LF': - check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err - -ok 176 - commit NNO files attr= aeol=lf crlf=input CRLF_mix_LF + git show-ref -q refs/tags/A >actual && + test_must_be_empty actual && -expecting success of 0027.177 'commit NNO files attr= aeol=lf crlf=input LF_mix_cr': - check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err - -ok 177 - commit NNO files attr= aeol=lf crlf=input LF_mix_cr + test_must_fail git show-ref -q D >actual && + test_must_be_empty actual -expecting success of 0027.178 'commit NNO files attr= aeol=lf crlf=input CRLF_nul': - check_warning "$crlfnul" ${pfx}_CRLF_nul.err - -ok 178 - commit NNO files attr= aeol=lf crlf=input CRLF_nul +ok 3 - show-ref -q -expecting success of 0027.179 'commit NNO files crlf=input attr= LF': - check_warning "$lfwarn" ${pfx}_LF.err - -ok 179 - commit NNO files crlf=input attr= LF +expecting success of 1403.4 'show-ref --verify': + echo $(git rev-parse refs/tags/A) refs/tags/A >expect && -expecting success of 0027.180 'commit NNO files attr= aeol=crlf crlf=input CRLF': - check_warning "$crlfwarn" ${pfx}_CRLF.err - -ok 180 - commit NNO files attr= aeol=crlf crlf=input CRLF + git show-ref --verify refs/tags/A >actual && + test_cmp expect actual && -expecting success of 0027.181 'commit NNO files attr= aeol=crlf crlf=input CRLF_mix_LF': - check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err - -ok 181 - commit NNO files attr= aeol=crlf crlf=input CRLF_mix_LF + test_must_fail git show-ref --verify A >actual && + test_must_be_empty actual && -expecting success of 0027.182 'commit NNO files attr= aeol=crlf crlf=input LF_mix_cr': - check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err - -ok 182 - commit NNO files attr= aeol=crlf crlf=input LF_mix_cr + test_must_fail git show-ref --verify tags/A >actual && + test_must_be_empty actual && -expecting success of 0027.183 'commit NNO files attr= aeol=crlf crlf=input CRLF_nul': - check_warning "$crlfnul" ${pfx}_CRLF_nul.err - -ok 183 - commit NNO files attr= aeol=crlf crlf=input CRLF_nul + test_must_fail git show-ref --verify D >actual && + test_must_be_empty actual -expecting success of 0027.184 'commit NNO files crlf=input attr=auto LF': - check_warning "$lfwarn" ${pfx}_LF.err - -ok 184 - commit NNO files crlf=input attr=auto LF +fatal: 'A' - not a valid ref +fatal: 'tags/A' - not a valid ref +fatal: 'D' - not a valid ref +ok 4 - show-ref --verify -expecting success of 0027.185 'commit NNO files attr=auto aeol=lf crlf=input CRLF': - check_warning "$crlfwarn" ${pfx}_CRLF.err - -ok 185 - commit NNO files attr=auto aeol=lf crlf=input CRLF +expecting success of 1403.5 'show-ref --verify -q': + git show-ref --verify -q refs/tags/A >actual && + test_must_be_empty actual && -expecting success of 0027.186 'commit NNO files attr=auto aeol=lf crlf=input CRLF_mix_LF': - check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err - -ok 186 - commit NNO files attr=auto aeol=lf crlf=input CRLF_mix_LF + test_must_fail git show-ref --verify -q A >actual && + test_must_be_empty actual && -expecting success of 0027.187 'commit NNO files attr=auto aeol=lf crlf=input LF_mix_cr': - check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err - -ok 187 - commit NNO files attr=auto aeol=lf crlf=input LF_mix_cr + test_must_fail git show-ref --verify -q tags/A >actual && + test_must_be_empty actual && -expecting success of 0027.188 'commit NNO files attr=auto aeol=lf crlf=input CRLF_nul': - check_warning "$crlfnul" ${pfx}_CRLF_nul.err - -ok 188 - commit NNO files attr=auto aeol=lf crlf=input CRLF_nul + test_must_fail git show-ref --verify -q D >actual && + test_must_be_empty actual -expecting success of 0027.189 'commit NNO files crlf=input attr=auto LF': - check_warning "$lfwarn" ${pfx}_LF.err - -ok 189 - commit NNO files crlf=input attr=auto LF +ok 5 - show-ref --verify -q -expecting success of 0027.190 'commit NNO files attr=auto aeol=crlf crlf=input CRLF': - check_warning "$crlfwarn" ${pfx}_CRLF.err - -ok 190 - commit NNO files attr=auto aeol=crlf crlf=input CRLF +expecting success of 1403.6 'show-ref -d': + { + echo $(git rev-parse refs/tags/A) refs/tags/A && + echo $(git rev-parse refs/tags/A^0) "refs/tags/A^{}" + echo $(git rev-parse refs/tags/C) refs/tags/C + } >expect && + git show-ref -d A C >actual && + test_cmp expect actual && -expecting success of 0027.191 'commit NNO files attr=auto aeol=crlf crlf=input CRLF_mix_LF': - check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err - -ok 191 - commit NNO files attr=auto aeol=crlf crlf=input CRLF_mix_LF + git show-ref -d tags/A tags/C >actual && + test_cmp expect actual && -expecting success of 0027.192 'commit NNO files attr=auto aeol=crlf crlf=input LF_mix_cr': - check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err - -ok 192 - commit NNO files attr=auto aeol=crlf crlf=input LF_mix_cr + git show-ref -d refs/tags/A refs/tags/C >actual && + test_cmp expect actual && -expecting success of 0027.193 'commit NNO files attr=auto aeol=crlf crlf=input CRLF_nul': - check_warning "$crlfnul" ${pfx}_CRLF_nul.err - -ok 193 - commit NNO files attr=auto aeol=crlf crlf=input CRLF_nul + git show-ref --verify -d refs/tags/A refs/tags/C >actual && + test_cmp expect actual && -expecting success of 0027.194 'commit NNO files crlf=input attr=text LF': - check_warning "$lfwarn" ${pfx}_LF.err - -ok 194 - commit NNO files crlf=input attr=text LF + echo $(git rev-parse refs/heads/master) refs/heads/master >expect && + git show-ref -d master >actual && + test_cmp expect actual && -expecting success of 0027.195 'commit NNO files attr=text aeol=lf crlf=input CRLF': - check_warning "$crlfwarn" ${pfx}_CRLF.err - -ok 195 - commit NNO files attr=text aeol=lf crlf=input CRLF + git show-ref -d heads/master >actual && + test_cmp expect actual && -expecting success of 0027.196 'commit NNO files attr=text aeol=lf crlf=input CRLF_mix_LF': - check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err - -ok 196 - commit NNO files attr=text aeol=lf crlf=input CRLF_mix_LF + git show-ref -d refs/heads/master >actual && + test_cmp expect actual && -expecting success of 0027.197 'commit NNO files attr=text aeol=lf crlf=input LF_mix_cr': - check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err - -ok 197 - commit NNO files attr=text aeol=lf crlf=input LF_mix_cr + git show-ref -d --verify refs/heads/master >actual && + test_cmp expect actual && -expecting success of 0027.198 'commit NNO files attr=text aeol=lf crlf=input CRLF_nul': - check_warning "$crlfnul" ${pfx}_CRLF_nul.err - -ok 198 - commit NNO files attr=text aeol=lf crlf=input CRLF_nul + test_must_fail git show-ref -d --verify master >actual && + test_must_be_empty actual && -expecting success of 0027.199 'commit NNO files crlf=input attr=text LF': - check_warning "$lfwarn" ${pfx}_LF.err - -ok 199 - commit NNO files crlf=input attr=text LF + test_must_fail git show-ref -d --verify heads/master >actual && + test_must_be_empty actual && -expecting success of 0027.200 'commit NNO files attr=text aeol=crlf crlf=input CRLF': - check_warning "$crlfwarn" ${pfx}_CRLF.err - -ok 200 - commit NNO files attr=text aeol=crlf crlf=input CRLF + test_must_fail git show-ref --verify -d A C >actual && + test_must_be_empty actual && -expecting success of 0027.201 'commit NNO files attr=text aeol=crlf crlf=input CRLF_mix_LF': - check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err - -ok 201 - commit NNO files attr=text aeol=crlf crlf=input CRLF_mix_LF + test_must_fail git show-ref --verify -d tags/A tags/C >actual && + test_must_be_empty actual -expecting success of 0027.202 'commit NNO files attr=text aeol=crlf crlf=input LF_mix_cr': - check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err - -ok 202 - commit NNO files attr=text aeol=crlf crlf=input LF_mix_cr -expecting success of 0027.203 'commit NNO files attr=text aeol=crlf crlf=input CRLF_nul': - check_warning "$crlfnul" ${pfx}_CRLF_nul.err - -ok 203 - commit NNO files attr=text aeol=crlf crlf=input CRLF_nul +fatal: 'master' - not a valid ref +fatal: 'heads/master' - not a valid ref +fatal: 'A' - not a valid ref +fatal: 'tags/A' - not a valid ref +ok 6 - show-ref -d -expecting success of 0027.204 'commit NNO files crlf=false attr=text LF': - check_warning "$lfwarn" ${pfx}_LF.err - -ok 204 - commit NNO files crlf=false attr=text LF +expecting success of 1403.7 'show-ref --heads, --tags, --head, pattern': + for branch in B master side + do + echo $(git rev-parse refs/heads/$branch) refs/heads/$branch + done >expect.heads && + git show-ref --heads >actual && + test_cmp expect.heads actual && -expecting success of 0027.205 'commit NNO files attr=text aeol= crlf=false CRLF': - check_warning "$crlfwarn" ${pfx}_CRLF.err - -ok 205 - commit NNO files attr=text aeol= crlf=false CRLF + for tag in A B C + do + echo $(git rev-parse refs/tags/$tag) refs/tags/$tag + done >expect.tags && + git show-ref --tags >actual && + test_cmp expect.tags actual && -expecting success of 0027.206 'commit NNO files attr=text aeol= crlf=false CRLF_mix_LF': - check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err - -ok 206 - commit NNO files attr=text aeol= crlf=false CRLF_mix_LF + cat expect.heads expect.tags >expect && + git show-ref --heads --tags >actual && + test_cmp expect actual && -expecting success of 0027.207 'commit NNO files attr=text aeol= crlf=false LF_mix_cr': - check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err - -ok 207 - commit NNO files attr=text aeol= crlf=false LF_mix_cr + { + echo $(git rev-parse HEAD) HEAD && + cat expect.heads expect.tags + } >expect && + git show-ref --heads --tags --head >actual && + test_cmp expect actual && -expecting success of 0027.208 'commit NNO files attr=text aeol= crlf=false CRLF_nul': - check_warning "$crlfnul" ${pfx}_CRLF_nul.err - -ok 208 - commit NNO files attr=text aeol= crlf=false CRLF_nul + { + echo $(git rev-parse HEAD) HEAD && + echo $(git rev-parse refs/heads/B) refs/heads/B + echo $(git rev-parse refs/tags/B) refs/tags/B + } >expect && + git show-ref --head B >actual && + test_cmp expect actual && -expecting success of 0027.209 'commit NNO files crlf=true attr=text LF': - check_warning "$lfwarn" ${pfx}_LF.err - -ok 209 - commit NNO files crlf=true attr=text LF + { + echo $(git rev-parse HEAD) HEAD && + echo $(git rev-parse refs/heads/B) refs/heads/B + echo $(git rev-parse refs/tags/B) refs/tags/B + echo $(git rev-parse refs/tags/B^0) "refs/tags/B^{}" + } >expect && + git show-ref --head -d B >actual && + test_cmp expect actual -expecting success of 0027.210 'commit NNO files attr=text aeol= crlf=true CRLF': - check_warning "$crlfwarn" ${pfx}_CRLF.err - -ok 210 - commit NNO files attr=text aeol= crlf=true CRLF +ok 7 - show-ref --heads, --tags, --head, pattern -expecting success of 0027.211 'commit NNO files attr=text aeol= crlf=true CRLF_mix_LF': - check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err - -ok 211 - commit NNO files attr=text aeol= crlf=true CRLF_mix_LF +expecting success of 1403.8 'show-ref --verify HEAD': + echo $(git rev-parse HEAD) HEAD >expect && + git show-ref --verify HEAD >actual && + test_cmp expect actual && -expecting success of 0027.212 'commit NNO files attr=text aeol= crlf=true LF_mix_cr': - check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err - -ok 212 - commit NNO files attr=text aeol= crlf=true LF_mix_cr + git show-ref --verify -q HEAD >actual && + test_must_be_empty actual -expecting success of 0027.213 'commit NNO files attr=text aeol= crlf=true CRLF_nul': - check_warning "$crlfnul" ${pfx}_CRLF_nul.err - -ok 213 - commit NNO files attr=text aeol= crlf=true CRLF_nul +ok 8 - show-ref --verify HEAD -expecting success of 0027.214 'commit NNO files crlf=input attr=text LF': - check_warning "$lfwarn" ${pfx}_LF.err - -ok 214 - commit NNO files crlf=input attr=text LF +expecting success of 1403.9 'show-ref --verify with dangling ref': + sha1_file() { + echo "$*" | sed "s#..#.git/objects/&/#" + } && -expecting success of 0027.215 'commit NNO files attr=text aeol= crlf=input CRLF': - check_warning "$crlfwarn" ${pfx}_CRLF.err - -ok 215 - commit NNO files attr=text aeol= crlf=input CRLF + remove_object() { + file=$(sha1_file "$*") && + test -e "$file" && + rm -f "$file" + } && -expecting success of 0027.216 'commit NNO files attr=text aeol= crlf=input CRLF_mix_LF': - check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err - -ok 216 - commit NNO files attr=text aeol= crlf=input CRLF_mix_LF + test_when_finished "rm -rf dangling" && + ( + git init dangling && + cd dangling && + test_commit dangling && + sha=$(git rev-parse refs/tags/dangling) && + remove_object $sha && + test_must_fail git show-ref --verify refs/tags/dangling + ) -expecting success of 0027.217 'commit NNO files attr=text aeol= crlf=input LF_mix_cr': - check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err - -ok 217 - commit NNO files attr=text aeol= crlf=input LF_mix_cr +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1403-show-ref/dangling/.git/ +[master (root-commit) ceb9007] dangling + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 dangling.t +fatal: git show-ref: bad ref refs/tags/dangling (ceb9007ddae8b252f505d0ef9dcf579bfda7e91c) +ok 9 - show-ref --verify with dangling ref -expecting success of 0027.218 'commit NNO files attr=text aeol= crlf=input CRLF_nul': - check_warning "$crlfnul" ${pfx}_CRLF_nul.err - -ok 218 - commit NNO files attr=text aeol= crlf=input CRLF_nul +# passed all 9 test(s) +1..9 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t1400-update-ref.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1400-update-ref/.git/ +expecting success of 1400.1 'setup': + git checkout --orphan main && + create_test_commits "" && + mkdir $bare && + cd $bare && + git init --bare -b main && + create_test_commits "bare" && + cd - -expecting success of 0027.219 'commit NNO and cleanup': - git commit -m "commit files on top of NNO" && - rm -f *.txt && - git -c core.autocrlf=false reset --hard +Switched to a new branch 'main' +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1400-update-ref/bare-repo/ +/build/git-2.30.2/t/trash directory.t1400-update-ref +ok 1 - setup -[master 35da0ca] commit files on top of NNO - Author: A U Thor - 210 files changed, 332 insertions(+), 362 deletions(-) -HEAD is now at 35da0ca commit files on top of NNO -ok 219 - commit NNO and cleanup +expecting success of 1400.2 'create refs/heads/main': + git update-ref $m $A && + test $A = $(git show-ref -s --verify $m) -expecting success of 0027.220 'commit empty gitattribues': - check_files_in_repo false "" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul && - check_files_in_repo true "" LF LF LF LF_mix_CR CRLF_nul && - check_files_in_repo input "" LF LF LF LF_mix_CR CRLF_nul +ok 2 - create refs/heads/main -ok 220 - commit empty gitattribues +expecting success of 1400.3 'create refs/heads/main with oldvalue verification': + git update-ref $m $B $A && + test $B = $(git show-ref -s --verify $m) -expecting success of 0027.221 'commit text=auto': - check_files_in_repo false "auto" LF LF LF LF_mix_CR CRLF_nul && - check_files_in_repo true "auto" LF LF LF LF_mix_CR CRLF_nul && - check_files_in_repo input "auto" LF LF LF LF_mix_CR CRLF_nul +ok 3 - create refs/heads/main with oldvalue verification -ok 221 - commit text=auto +expecting success of 1400.4 'fail to delete refs/heads/main with stale ref': + test_must_fail git update-ref -d $m $A && + test $B = "$(git show-ref -s --verify $m)" -expecting success of 0027.222 'commit text': - check_files_in_repo false "text" LF LF LF LF_mix_CR LF_nul && - check_files_in_repo true "text" LF LF LF LF_mix_CR LF_nul && - check_files_in_repo input "text" LF LF LF LF_mix_CR LF_nul +error: cannot lock ref 'refs/heads/main': is at 56d5c1374e8028a1e122ab046ab7b98165342dc4 but expected 102939797ab91a4f201d131418d2c9d919dcdd2c +ok 4 - fail to delete refs/heads/main with stale ref -ok 222 - commit text +expecting success of 1400.5 'delete refs/heads/main': + test_when_finished "git update-ref -d $m" && + git update-ref -d $m $B && + test_must_fail git show-ref --verify -q $m -expecting success of 0027.223 'commit -text': - check_files_in_repo false "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul && - check_files_in_repo true "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul && - check_files_in_repo input "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul +ok 5 - delete refs/heads/main -ok 223 - commit -text +expecting success of 1400.6 'delete refs/heads/main without oldvalue verification': + test_when_finished "git update-ref -d $m" && + git update-ref $m $A && + test $A = $(git show-ref -s --verify $m) && + git update-ref -d $m && + test_must_fail git show-ref --verify -q $m -expecting success of 0027.224 'compare_files LF NNO_attr__aeol__true_LF.txt': - compare_files $lfname ${pfx}_LF.txt - -ok 224 - compare_files LF NNO_attr__aeol__true_LF.txt +ok 6 - delete refs/heads/main without oldvalue verification -expecting success of 0027.225 'compare_files CRLF NNO_attr__aeol__true_CRLF.txt': - compare_files $crlfname ${pfx}_CRLF.txt - -ok 225 - compare_files CRLF NNO_attr__aeol__true_CRLF.txt +expecting success of 1400.7 'fail to create refs/heads/gu/fixes': + test_when_finished "rm -f .git/$n_dir" && + touch .git/$n_dir && + test_must_fail git update-ref $n $A -expecting success of 0027.226 'compare_files CRLF_mix_LF NNO_attr__aeol__true_CRLF_mix_LF.txt': - compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt - -ok 226 - compare_files CRLF_mix_LF NNO_attr__aeol__true_CRLF_mix_LF.txt +fatal: update_ref failed for ref 'refs/heads/gu/fixes': cannot lock ref 'refs/heads/gu/fixes': unable to create lock file .git/refs/heads/gu/fixes.lock; non-directory in the way +ok 7 - fail to create refs/heads/gu/fixes -expecting success of 0027.227 'compare_files LF_mix_CR NNO_attr__aeol__true_LF_mix_CR.txt': - compare_files $lfmixcr ${pfx}_LF_mix_CR.txt - -ok 227 - compare_files LF_mix_CR NNO_attr__aeol__true_LF_mix_CR.txt +expecting success of 1400.8 'create refs/heads/main (by HEAD)': + git update-ref HEAD $A && + test $A = $(git show-ref -s --verify $m) -expecting success of 0027.228 'compare_files CRLF_nul NNO_attr__aeol__true_CRLF_nul.txt': - compare_files $crlfnul ${pfx}_CRLF_nul.txt - -ok 228 - compare_files CRLF_nul NNO_attr__aeol__true_CRLF_nul.txt +ok 8 - create refs/heads/main (by HEAD) -expecting success of 0027.229 'compare_files LF NNO_attr_-text_aeol__true_LF.txt': - compare_files $lfname ${pfx}_LF.txt - -ok 229 - compare_files LF NNO_attr_-text_aeol__true_LF.txt +expecting success of 1400.9 'create refs/heads/main (by HEAD) with oldvalue verification': + git update-ref HEAD $B $A && + test $B = $(git show-ref -s --verify $m) -expecting success of 0027.230 'compare_files CRLF NNO_attr_-text_aeol__true_CRLF.txt': - compare_files $crlfname ${pfx}_CRLF.txt - -ok 230 - compare_files CRLF NNO_attr_-text_aeol__true_CRLF.txt +ok 9 - create refs/heads/main (by HEAD) with oldvalue verification -expecting success of 0027.231 'compare_files CRLF_mix_LF NNO_attr_-text_aeol__true_CRLF_mix_LF.txt': - compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt - -ok 231 - compare_files CRLF_mix_LF NNO_attr_-text_aeol__true_CRLF_mix_LF.txt +expecting success of 1400.10 'fail to delete refs/heads/main (by HEAD) with stale ref': + test_must_fail git update-ref -d HEAD $A && + test $B = $(git show-ref -s --verify $m) -expecting success of 0027.232 'compare_files LF_mix_CR NNO_attr_-text_aeol__true_LF_mix_CR.txt': - compare_files $lfmixcr ${pfx}_LF_mix_CR.txt - -ok 232 - compare_files LF_mix_CR NNO_attr_-text_aeol__true_LF_mix_CR.txt +error: cannot lock ref 'HEAD': is at 56d5c1374e8028a1e122ab046ab7b98165342dc4 but expected 102939797ab91a4f201d131418d2c9d919dcdd2c +ok 10 - fail to delete refs/heads/main (by HEAD) with stale ref -expecting success of 0027.233 'compare_files CRLF_nul NNO_attr_-text_aeol__true_CRLF_nul.txt': - compare_files $crlfnul ${pfx}_CRLF_nul.txt - -ok 233 - compare_files CRLF_nul NNO_attr_-text_aeol__true_CRLF_nul.txt +expecting success of 1400.11 'delete refs/heads/main (by HEAD)': + test_when_finished "git update-ref -d $m" && + git update-ref -d HEAD $B && + test_must_fail git show-ref --verify -q $m -expecting success of 0027.234 'compare_files LF NNO_attr_-text_aeol_lf_true_LF.txt': - compare_files $lfname ${pfx}_LF.txt - -ok 234 - compare_files LF NNO_attr_-text_aeol_lf_true_LF.txt +ok 11 - delete refs/heads/main (by HEAD) -expecting success of 0027.235 'compare_files CRLF NNO_attr_-text_aeol_lf_true_CRLF.txt': - compare_files $crlfname ${pfx}_CRLF.txt - -ok 235 - compare_files CRLF NNO_attr_-text_aeol_lf_true_CRLF.txt +expecting success of 1400.12 'deleting current branch adds message to HEAD's log': + test_when_finished "git update-ref -d $m" && + git update-ref $m $A && + git symbolic-ref HEAD $m && + git update-ref -m delete-$m -d $m && + test_must_fail git show-ref --verify -q $m && + grep "delete-$m$" .git/logs/HEAD -expecting success of 0027.236 'compare_files CRLF_mix_LF NNO_attr_-text_aeol_lf_true_CRLF_mix_LF.txt': - compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt - -ok 236 - compare_files CRLF_mix_LF NNO_attr_-text_aeol_lf_true_CRLF_mix_LF.txt +102939797ab91a4f201d131418d2c9d919dcdd2c 0000000000000000000000000000000000000000 C O Mitter 1112912653 -0700 delete-refs/heads/main +ok 12 - deleting current branch adds message to HEAD's log -expecting success of 0027.237 'compare_files LF_mix_CR NNO_attr_-text_aeol_lf_true_LF_mix_CR.txt': - compare_files $lfmixcr ${pfx}_LF_mix_CR.txt - -ok 237 - compare_files LF_mix_CR NNO_attr_-text_aeol_lf_true_LF_mix_CR.txt +expecting success of 1400.13 'deleting by HEAD adds message to HEAD's log': + test_when_finished "git update-ref -d $m" && + git update-ref $m $A && + git symbolic-ref HEAD $m && + git update-ref -m delete-by-head -d HEAD && + test_must_fail git show-ref --verify -q $m && + grep "delete-by-head$" .git/logs/HEAD -expecting success of 0027.238 'compare_files CRLF_nul NNO_attr_-text_aeol_lf_true_CRLF_nul.txt': - compare_files $crlfnul ${pfx}_CRLF_nul.txt - -ok 238 - compare_files CRLF_nul NNO_attr_-text_aeol_lf_true_CRLF_nul.txt +102939797ab91a4f201d131418d2c9d919dcdd2c 0000000000000000000000000000000000000000 C O Mitter 1112912653 -0700 delete-by-head +ok 13 - deleting by HEAD adds message to HEAD's log -expecting success of 0027.239 'compare_files LF NNO_attr_-text_aeol_crlf_true_LF.txt': - compare_files $lfname ${pfx}_LF.txt - -ok 239 - compare_files LF NNO_attr_-text_aeol_crlf_true_LF.txt +expecting success of 1400.14 'update-ref does not create reflogs by default': + test_when_finished "git update-ref -d $outside" && + git update-ref $outside $A && + git rev-parse $A >expect && + git rev-parse $outside >actual && + test_cmp expect actual && + test_must_fail git reflog exists $outside -expecting success of 0027.240 'compare_files CRLF NNO_attr_-text_aeol_crlf_true_CRLF.txt': - compare_files $crlfname ${pfx}_CRLF.txt - -ok 240 - compare_files CRLF NNO_attr_-text_aeol_crlf_true_CRLF.txt +ok 14 - update-ref does not create reflogs by default -expecting success of 0027.241 'compare_files CRLF_mix_LF NNO_attr_-text_aeol_crlf_true_CRLF_mix_LF.txt': - compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt - -ok 241 - compare_files CRLF_mix_LF NNO_attr_-text_aeol_crlf_true_CRLF_mix_LF.txt +expecting success of 1400.15 'update-ref creates reflogs with --create-reflog': + test_when_finished "git update-ref -d $outside" && + git update-ref --create-reflog $outside $A && + git rev-parse $A >expect && + git rev-parse $outside >actual && + test_cmp expect actual && + git reflog exists $outside -expecting success of 0027.242 'compare_files LF_mix_CR NNO_attr_-text_aeol_crlf_true_LF_mix_CR.txt': - compare_files $lfmixcr ${pfx}_LF_mix_CR.txt - -ok 242 - compare_files LF_mix_CR NNO_attr_-text_aeol_crlf_true_LF_mix_CR.txt +ok 15 - update-ref creates reflogs with --create-reflog -expecting success of 0027.243 'compare_files CRLF_nul NNO_attr_-text_aeol_crlf_true_CRLF_nul.txt': - compare_files $crlfnul ${pfx}_CRLF_nul.txt - -ok 243 - compare_files CRLF_nul NNO_attr_-text_aeol_crlf_true_CRLF_nul.txt +expecting success of 1400.16 'creates no reflog in bare repository': + git -C $bare update-ref $m $bareA && + git -C $bare rev-parse $bareA >expect && + git -C $bare rev-parse $m >actual && + test_cmp expect actual && + test_must_fail git -C $bare reflog exists $m -expecting success of 0027.244 'compare_files LF NNO_attr_auto_aeol__true_LF.txt': - compare_files $lfname ${pfx}_LF.txt - -ok 244 - compare_files LF NNO_attr_auto_aeol__true_LF.txt +ok 16 - creates no reflog in bare repository -expecting success of 0027.245 'compare_files CRLF NNO_attr_auto_aeol__true_CRLF.txt': - compare_files $crlfname ${pfx}_CRLF.txt - -ok 245 - compare_files CRLF NNO_attr_auto_aeol__true_CRLF.txt +expecting success of 1400.17 'core.logAllRefUpdates=true creates reflog in bare repository': + test_when_finished "git -C $bare config --unset core.logAllRefUpdates && \ + rm $bare/logs/$m" && + git -C $bare config core.logAllRefUpdates true && + git -C $bare update-ref $m $bareB && + git -C $bare rev-parse $bareB >expect && + git -C $bare rev-parse $m >actual && + test_cmp expect actual && + git -C $bare reflog exists $m -expecting success of 0027.246 'compare_files CRLF_mix_LF NNO_attr_auto_aeol__true_CRLF_mix_LF.txt': - compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt - -ok 246 - compare_files CRLF_mix_LF NNO_attr_auto_aeol__true_CRLF_mix_LF.txt +ok 17 - core.logAllRefUpdates=true creates reflog in bare repository -expecting success of 0027.247 'compare_files LF_mix_CR NNO_attr_auto_aeol__true_LF_mix_CR.txt': - compare_files $lfmixcr ${pfx}_LF_mix_CR.txt - -ok 247 - compare_files LF_mix_CR NNO_attr_auto_aeol__true_LF_mix_CR.txt +expecting success of 1400.18 'core.logAllRefUpdates=true does not create reflog by default': + test_config core.logAllRefUpdates true && + test_when_finished "git update-ref -d $outside" && + git update-ref $outside $A && + git rev-parse $A >expect && + git rev-parse $outside >actual && + test_cmp expect actual && + test_must_fail git reflog exists $outside -expecting success of 0027.248 'compare_files CRLF_nul NNO_attr_auto_aeol__true_CRLF_nul.txt': - compare_files $crlfnul ${pfx}_CRLF_nul.txt - -ok 248 - compare_files CRLF_nul NNO_attr_auto_aeol__true_CRLF_nul.txt +ok 18 - core.logAllRefUpdates=true does not create reflog by default -expecting success of 0027.249 'compare_files LF NNO_attr_auto_aeol_lf_true_LF.txt': - compare_files $lfname ${pfx}_LF.txt - -ok 249 - compare_files LF NNO_attr_auto_aeol_lf_true_LF.txt +expecting success of 1400.19 'core.logAllRefUpdates=always creates reflog by default': + test_config core.logAllRefUpdates always && + test_when_finished "git update-ref -d $outside" && + git update-ref $outside $A && + git rev-parse $A >expect && + git rev-parse $outside >actual && + test_cmp expect actual && + git reflog exists $outside -expecting success of 0027.250 'compare_files CRLF NNO_attr_auto_aeol_lf_true_CRLF.txt': - compare_files $crlfname ${pfx}_CRLF.txt - -ok 250 - compare_files CRLF NNO_attr_auto_aeol_lf_true_CRLF.txt +ok 19 - core.logAllRefUpdates=always creates reflog by default -expecting success of 0027.251 'compare_files CRLF_mix_LF NNO_attr_auto_aeol_lf_true_CRLF_mix_LF.txt': - compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt - -ok 251 - compare_files CRLF_mix_LF NNO_attr_auto_aeol_lf_true_CRLF_mix_LF.txt +expecting success of 1400.20 'core.logAllRefUpdates=always creates reflog for ORIG_HEAD': + test_config core.logAllRefUpdates always && + git update-ref ORIG_HEAD $A && + git reflog exists ORIG_HEAD -expecting success of 0027.252 'compare_files LF_mix_CR NNO_attr_auto_aeol_lf_true_LF_mix_CR.txt': - compare_files $lfmixcr ${pfx}_LF_mix_CR.txt - -ok 252 - compare_files LF_mix_CR NNO_attr_auto_aeol_lf_true_LF_mix_CR.txt +ok 20 - core.logAllRefUpdates=always creates reflog for ORIG_HEAD -expecting success of 0027.253 'compare_files CRLF_nul NNO_attr_auto_aeol_lf_true_CRLF_nul.txt': - compare_files $crlfnul ${pfx}_CRLF_nul.txt - -ok 253 - compare_files CRLF_nul NNO_attr_auto_aeol_lf_true_CRLF_nul.txt +expecting success of 1400.21 '--no-create-reflog overrides core.logAllRefUpdates=always': + test_config core.logAllRefUpdates true && + test_when_finished "git update-ref -d $outside" && + git update-ref --no-create-reflog $outside $A && + git rev-parse $A >expect && + git rev-parse $outside >actual && + test_cmp expect actual && + test_must_fail git reflog exists $outside -expecting success of 0027.254 'compare_files LF NNO_attr_auto_aeol_crlf_true_LF.txt': - compare_files $lfname ${pfx}_LF.txt - -ok 254 - compare_files LF NNO_attr_auto_aeol_crlf_true_LF.txt +ok 21 - --no-create-reflog overrides core.logAllRefUpdates=always -expecting success of 0027.255 'compare_files CRLF NNO_attr_auto_aeol_crlf_true_CRLF.txt': - compare_files $crlfname ${pfx}_CRLF.txt - -ok 255 - compare_files CRLF NNO_attr_auto_aeol_crlf_true_CRLF.txt +expecting success of 1400.22 'create refs/heads/main (by HEAD)': + git update-ref HEAD $A && + test $A = $(git show-ref -s --verify $m) -expecting success of 0027.256 'compare_files CRLF_mix_LF NNO_attr_auto_aeol_crlf_true_CRLF_mix_LF.txt': - compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt - -ok 256 - compare_files CRLF_mix_LF NNO_attr_auto_aeol_crlf_true_CRLF_mix_LF.txt +ok 22 - create refs/heads/main (by HEAD) -expecting success of 0027.257 'compare_files LF_mix_CR NNO_attr_auto_aeol_crlf_true_LF_mix_CR.txt': - compare_files $lfmixcr ${pfx}_LF_mix_CR.txt - -ok 257 - compare_files LF_mix_CR NNO_attr_auto_aeol_crlf_true_LF_mix_CR.txt +expecting success of 1400.23 'pack refs': + git pack-refs --all -expecting success of 0027.258 'compare_files CRLF_nul NNO_attr_auto_aeol_crlf_true_CRLF_nul.txt': - compare_files $crlfnul ${pfx}_CRLF_nul.txt - -ok 258 - compare_files CRLF_nul NNO_attr_auto_aeol_crlf_true_CRLF_nul.txt +ok 23 - pack refs -expecting success of 0027.259 'compare_files LF NNO_attr_text_aeol__true_LF.txt': - compare_files $lfname ${pfx}_LF.txt - -ok 259 - compare_files LF NNO_attr_text_aeol__true_LF.txt +expecting success of 1400.24 'move refs/heads/main (by HEAD)': + git update-ref HEAD $B $A && + test $B = $(git show-ref -s --verify $m) -expecting success of 0027.260 'compare_files LF NNO_attr_text_aeol__true_CRLF.txt': - compare_files $crlfname ${pfx}_CRLF.txt - -ok 260 - compare_files LF NNO_attr_text_aeol__true_CRLF.txt +ok 24 - move refs/heads/main (by HEAD) -expecting success of 0027.261 'compare_files LF NNO_attr_text_aeol__true_CRLF_mix_LF.txt': - compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt - -ok 261 - compare_files LF NNO_attr_text_aeol__true_CRLF_mix_LF.txt +expecting success of 1400.25 'delete refs/heads/main (by HEAD) should remove both packed and loose refs/heads/main': + test_when_finished "git update-ref -d $m" && + git update-ref -d HEAD $B && + ! grep "$m" .git/packed-refs && + test_must_fail git show-ref --verify -q $m -expecting success of 0027.262 'compare_files LF_mix_CR NNO_attr_text_aeol__true_LF_mix_CR.txt': - compare_files $lfmixcr ${pfx}_LF_mix_CR.txt - -ok 262 - compare_files LF_mix_CR NNO_attr_text_aeol__true_LF_mix_CR.txt +ok 25 - delete refs/heads/main (by HEAD) should remove both packed and loose refs/heads/main -expecting success of 0027.263 'compare_files LF_nul NNO_attr_text_aeol__true_CRLF_nul.txt': - compare_files $crlfnul ${pfx}_CRLF_nul.txt - -ok 263 - compare_files LF_nul NNO_attr_text_aeol__true_CRLF_nul.txt +expecting success of 1400.26 'delete symref without dereference': + test_when_finished "git update-ref -d $m" && + echo foo >foo.c && + git add foo.c && + git commit -m foo && + git symbolic-ref SYMREF $m && + git update-ref --no-deref -d SYMREF && + git show-ref --verify -q $m && + test_must_fail git show-ref --verify -q SYMREF && + test_must_fail git symbolic-ref SYMREF -expecting success of 0027.264 'compare_files LF NNO_attr_text_aeol_lf_true_LF.txt': - compare_files $lfname ${pfx}_LF.txt - -ok 264 - compare_files LF NNO_attr_text_aeol_lf_true_LF.txt +[main (root-commit) fc83d41] foo + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 foo.c +fatal: ref SYMREF is not a symbolic ref +ok 26 - delete symref without dereference -expecting success of 0027.265 'compare_files LF NNO_attr_text_aeol_lf_true_CRLF.txt': - compare_files $crlfname ${pfx}_CRLF.txt - -ok 265 - compare_files LF NNO_attr_text_aeol_lf_true_CRLF.txt +expecting success of 1400.27 'delete symref without dereference when the referred ref is packed': + test_when_finished "git update-ref -d $m" && + echo foo >foo.c && + git add foo.c && + git commit -m foo && + git symbolic-ref SYMREF $m && + git pack-refs --all && + git update-ref --no-deref -d SYMREF && + git show-ref --verify -q $m && + test_must_fail git show-ref --verify -q SYMREF && + test_must_fail git symbolic-ref SYMREF -expecting success of 0027.266 'compare_files LF NNO_attr_text_aeol_lf_true_CRLF_mix_LF.txt': - compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt - -ok 266 - compare_files LF NNO_attr_text_aeol_lf_true_CRLF_mix_LF.txt +[main (root-commit) fc83d41] foo + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 foo.c +fatal: ref SYMREF is not a symbolic ref +ok 27 - delete symref without dereference when the referred ref is packed -expecting success of 0027.267 'compare_files LF_mix_CR NNO_attr_text_aeol_lf_true_LF_mix_CR.txt': - compare_files $lfmixcr ${pfx}_LF_mix_CR.txt - -ok 267 - compare_files LF_mix_CR NNO_attr_text_aeol_lf_true_LF_mix_CR.txt +expecting success of 1400.28 'update-ref -d is not confused by self-reference': + git symbolic-ref refs/heads/self refs/heads/self && + test_when_finished "rm -f .git/refs/heads/self" && + test_path_is_file .git/refs/heads/self && + test_must_fail git update-ref -d refs/heads/self && + test_path_is_file .git/refs/heads/self -expecting success of 0027.268 'compare_files LF_nul NNO_attr_text_aeol_lf_true_CRLF_nul.txt': - compare_files $crlfnul ${pfx}_CRLF_nul.txt - -ok 268 - compare_files LF_nul NNO_attr_text_aeol_lf_true_CRLF_nul.txt +error: multiple updates for 'refs/heads/self' (including one via symref 'refs/heads/self') are not allowed +ok 28 - update-ref -d is not confused by self-reference -expecting success of 0027.269 'compare_files LF NNO_attr_text_aeol_crlf_true_LF.txt': - compare_files $lfname ${pfx}_LF.txt - -ok 269 - compare_files LF NNO_attr_text_aeol_crlf_true_LF.txt +expecting success of 1400.29 'update-ref --no-deref -d can delete self-reference': + git symbolic-ref refs/heads/self refs/heads/self && + test_when_finished "rm -f .git/refs/heads/self" && + test_path_is_file .git/refs/heads/self && + git update-ref --no-deref -d refs/heads/self && + test_must_fail git show-ref --verify -q refs/heads/self -expecting success of 0027.270 'compare_files LF NNO_attr_text_aeol_crlf_true_CRLF.txt': - compare_files $crlfname ${pfx}_CRLF.txt - -ok 270 - compare_files LF NNO_attr_text_aeol_crlf_true_CRLF.txt +ok 29 - update-ref --no-deref -d can delete self-reference -expecting success of 0027.271 'compare_files LF NNO_attr_text_aeol_crlf_true_CRLF_mix_LF.txt': - compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt - -ok 271 - compare_files LF NNO_attr_text_aeol_crlf_true_CRLF_mix_LF.txt +expecting success of 1400.30 'update-ref --no-deref -d can delete reference to bad ref': + >.git/refs/heads/bad && + test_when_finished "rm -f .git/refs/heads/bad" && + git symbolic-ref refs/heads/ref-to-bad refs/heads/bad && + test_when_finished "git update-ref -d refs/heads/ref-to-bad" && + test_path_is_file .git/refs/heads/ref-to-bad && + git update-ref --no-deref -d refs/heads/ref-to-bad && + test_must_fail git show-ref --verify -q refs/heads/ref-to-bad -expecting success of 0027.272 'compare_files LF_mix_CR NNO_attr_text_aeol_crlf_true_LF_mix_CR.txt': - compare_files $lfmixcr ${pfx}_LF_mix_CR.txt - -ok 272 - compare_files LF_mix_CR NNO_attr_text_aeol_crlf_true_LF_mix_CR.txt +ok 30 - update-ref --no-deref -d can delete reference to bad ref -expecting success of 0027.273 'compare_files LF_nul NNO_attr_text_aeol_crlf_true_CRLF_nul.txt': - compare_files $crlfnul ${pfx}_CRLF_nul.txt - -ok 273 - compare_files LF_nul NNO_attr_text_aeol_crlf_true_CRLF_nul.txt +expecting success of 1400.31 '(not) create HEAD with old sha1': + test_must_fail git update-ref HEAD $A $B -expecting success of 0027.274 'compare_files LF NNO_attr__aeol__false_LF.txt': - compare_files $lfname ${pfx}_LF.txt - -ok 274 - compare_files LF NNO_attr__aeol__false_LF.txt +fatal: update_ref failed for ref 'HEAD': cannot lock ref 'HEAD': unable to resolve reference 'refs/heads/main' +ok 31 - (not) create HEAD with old sha1 -expecting success of 0027.275 'compare_files CRLF NNO_attr__aeol__false_CRLF.txt': - compare_files $crlfname ${pfx}_CRLF.txt - -ok 275 - compare_files CRLF NNO_attr__aeol__false_CRLF.txt +expecting success of 1400.32 '(not) prior created .git/refs/heads/main': + test_when_finished "git update-ref -d $m" && + test_must_fail git show-ref --verify -q $m -expecting success of 0027.276 'compare_files CRLF_mix_LF NNO_attr__aeol__false_CRLF_mix_LF.txt': - compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt - -ok 276 - compare_files CRLF_mix_LF NNO_attr__aeol__false_CRLF_mix_LF.txt +ok 32 - (not) prior created .git/refs/heads/main -expecting success of 0027.277 'compare_files LF_mix_CR NNO_attr__aeol__false_LF_mix_CR.txt': - compare_files $lfmixcr ${pfx}_LF_mix_CR.txt - -ok 277 - compare_files LF_mix_CR NNO_attr__aeol__false_LF_mix_CR.txt +expecting success of 1400.33 'create HEAD': + git update-ref HEAD $A -expecting success of 0027.278 'compare_files CRLF_nul NNO_attr__aeol__false_CRLF_nul.txt': - compare_files $crlfnul ${pfx}_CRLF_nul.txt - -ok 278 - compare_files CRLF_nul NNO_attr__aeol__false_CRLF_nul.txt +ok 33 - create HEAD -expecting success of 0027.279 'compare_files LF NNO_attr_-text_aeol__false_LF.txt': - compare_files $lfname ${pfx}_LF.txt - -ok 279 - compare_files LF NNO_attr_-text_aeol__false_LF.txt +expecting success of 1400.34 '(not) change HEAD with wrong SHA1': + test_must_fail git update-ref HEAD $B $Z -expecting success of 0027.280 'compare_files CRLF NNO_attr_-text_aeol__false_CRLF.txt': - compare_files $crlfname ${pfx}_CRLF.txt - -ok 280 - compare_files CRLF NNO_attr_-text_aeol__false_CRLF.txt +fatal: update_ref failed for ref 'HEAD': cannot lock ref 'HEAD': reference already exists +ok 34 - (not) change HEAD with wrong SHA1 -expecting success of 0027.281 'compare_files CRLF_mix_LF NNO_attr_-text_aeol__false_CRLF_mix_LF.txt': - compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt - -ok 281 - compare_files CRLF_mix_LF NNO_attr_-text_aeol__false_CRLF_mix_LF.txt +expecting success of 1400.35 '(not) changed .git/refs/heads/main': + test_when_finished "git update-ref -d $m" && + ! test $B = $(git show-ref -s --verify $m) -expecting success of 0027.282 'compare_files LF_mix_CR NNO_attr_-text_aeol__false_LF_mix_CR.txt': - compare_files $lfmixcr ${pfx}_LF_mix_CR.txt - -ok 282 - compare_files LF_mix_CR NNO_attr_-text_aeol__false_LF_mix_CR.txt +ok 35 - (not) changed .git/refs/heads/main -expecting success of 0027.283 'compare_files CRLF_nul NNO_attr_-text_aeol__false_CRLF_nul.txt': - compare_files $crlfnul ${pfx}_CRLF_nul.txt - -ok 283 - compare_files CRLF_nul NNO_attr_-text_aeol__false_CRLF_nul.txt +expecting success of 1400.36 'create refs/heads/main (logged by touch)': + test_config core.logAllRefUpdates false && + GIT_COMMITTER_DATE="2005-05-26 23:30" \ + git update-ref --create-reflog HEAD $A -m "Initial Creation" && + test $A = $(git show-ref -s --verify $m) -expecting success of 0027.284 'compare_files LF NNO_attr_-text_aeol_lf_false_LF.txt': - compare_files $lfname ${pfx}_LF.txt - -ok 284 - compare_files LF NNO_attr_-text_aeol_lf_false_LF.txt +ok 36 - create refs/heads/main (logged by touch) -expecting success of 0027.285 'compare_files CRLF NNO_attr_-text_aeol_lf_false_CRLF.txt': - compare_files $crlfname ${pfx}_CRLF.txt - -ok 285 - compare_files CRLF NNO_attr_-text_aeol_lf_false_CRLF.txt +expecting success of 1400.37 'update refs/heads/main (logged by touch)': + test_config core.logAllRefUpdates false && + GIT_COMMITTER_DATE="2005-05-26 23:31" \ + git update-ref HEAD $B $A -m "Switch" && + test $B = $(git show-ref -s --verify $m) -expecting success of 0027.286 'compare_files CRLF_mix_LF NNO_attr_-text_aeol_lf_false_CRLF_mix_LF.txt': - compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt - -ok 286 - compare_files CRLF_mix_LF NNO_attr_-text_aeol_lf_false_CRLF_mix_LF.txt +ok 37 - update refs/heads/main (logged by touch) -expecting success of 0027.287 'compare_files LF_mix_CR NNO_attr_-text_aeol_lf_false_LF_mix_CR.txt': - compare_files $lfmixcr ${pfx}_LF_mix_CR.txt - -ok 287 - compare_files LF_mix_CR NNO_attr_-text_aeol_lf_false_LF_mix_CR.txt +expecting success of 1400.38 'set refs/heads/main (logged by touch)': + test_config core.logAllRefUpdates false && + GIT_COMMITTER_DATE="2005-05-26 23:41" \ + git update-ref HEAD $A && + test $A = $(git show-ref -s --verify $m) -expecting success of 0027.288 'compare_files CRLF_nul NNO_attr_-text_aeol_lf_false_CRLF_nul.txt': - compare_files $crlfnul ${pfx}_CRLF_nul.txt - -ok 288 - compare_files CRLF_nul NNO_attr_-text_aeol_lf_false_CRLF_nul.txt +ok 38 - set refs/heads/main (logged by touch) -expecting success of 0027.289 'compare_files LF NNO_attr_-text_aeol_crlf_false_LF.txt': - compare_files $lfname ${pfx}_LF.txt - -ok 289 - compare_files LF NNO_attr_-text_aeol_crlf_false_LF.txt +expecting success of 1400.39 'empty directory removal': + git branch d1/d2/r1 HEAD && + git branch d1/r2 HEAD && + test_path_is_file .git/refs/heads/d1/d2/r1 && + test_path_is_file .git/logs/refs/heads/d1/d2/r1 && + git branch -d d1/d2/r1 && + test_must_fail git show-ref --verify -q refs/heads/d1/d2 && + test_must_fail git show-ref --verify -q logs/refs/heads/d1/d2 && + test_path_is_file .git/refs/heads/d1/r2 && + test_path_is_file .git/logs/refs/heads/d1/r2 -expecting success of 0027.290 'compare_files CRLF NNO_attr_-text_aeol_crlf_false_CRLF.txt': - compare_files $crlfname ${pfx}_CRLF.txt - -ok 290 - compare_files CRLF NNO_attr_-text_aeol_crlf_false_CRLF.txt +Deleted branch d1/d2/r1 (was 1029397). +ok 39 - empty directory removal -expecting success of 0027.291 'compare_files CRLF_mix_LF NNO_attr_-text_aeol_crlf_false_CRLF_mix_LF.txt': - compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt - -ok 291 - compare_files CRLF_mix_LF NNO_attr_-text_aeol_crlf_false_CRLF_mix_LF.txt +expecting success of 1400.40 'symref empty directory removal': + git branch e1/e2/r1 HEAD && + git branch e1/r2 HEAD && + git checkout e1/e2/r1 && + test_when_finished "git checkout main" && + test_path_is_file .git/refs/heads/e1/e2/r1 && + test_path_is_file .git/logs/refs/heads/e1/e2/r1 && + git update-ref -d HEAD && + test_must_fail git show-ref --verify -q refs/heads/e1/e2 && + test_must_fail git show-ref --verify -q logs/refs/heads/e1/e2 && + test_path_is_file .git/refs/heads/e1/r2 && + test_path_is_file .git/logs/refs/heads/e1/r2 && + test_path_is_file .git/logs/HEAD -expecting success of 0027.292 'compare_files LF_mix_CR NNO_attr_-text_aeol_crlf_false_LF_mix_CR.txt': - compare_files $lfmixcr ${pfx}_LF_mix_CR.txt - -ok 292 - compare_files LF_mix_CR NNO_attr_-text_aeol_crlf_false_LF_mix_CR.txt +Switched to branch 'e1/e2/r1' +A foo.c +Switched to branch 'main' +A foo.c +ok 40 - symref empty directory removal -expecting success of 0027.293 'compare_files CRLF_nul NNO_attr_-text_aeol_crlf_false_CRLF_nul.txt': - compare_files $crlfnul ${pfx}_CRLF_nul.txt - -ok 293 - compare_files CRLF_nul NNO_attr_-text_aeol_crlf_false_CRLF_nul.txt +expecting success of 1400.41 'verifying refs/heads/main's log (logged by touch)': + test_when_finished "rm -rf .git/$m .git/logs expect" && + test_cmp expect .git/logs/$m -expecting success of 0027.294 'compare_files LF NNO_attr_auto_aeol__false_LF.txt': - compare_files $lfname ${pfx}_LF.txt - -ok 294 - compare_files LF NNO_attr_auto_aeol__false_LF.txt +ok 41 - verifying refs/heads/main's log (logged by touch) -expecting success of 0027.295 'compare_files CRLF NNO_attr_auto_aeol__false_CRLF.txt': - compare_files $crlfname ${pfx}_CRLF.txt - -ok 295 - compare_files CRLF NNO_attr_auto_aeol__false_CRLF.txt +expecting success of 1400.42 'create refs/heads/main (logged by config)': + test_config core.logAllRefUpdates true && + GIT_COMMITTER_DATE="2005-05-26 23:32" \ + git update-ref HEAD $A -m "Initial Creation" && + test $A = $(git show-ref -s --verify $m) -expecting success of 0027.296 'compare_files CRLF_mix_LF NNO_attr_auto_aeol__false_CRLF_mix_LF.txt': - compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt - -ok 296 - compare_files CRLF_mix_LF NNO_attr_auto_aeol__false_CRLF_mix_LF.txt +ok 42 - create refs/heads/main (logged by config) -expecting success of 0027.297 'compare_files LF_mix_CR NNO_attr_auto_aeol__false_LF_mix_CR.txt': - compare_files $lfmixcr ${pfx}_LF_mix_CR.txt - -ok 297 - compare_files LF_mix_CR NNO_attr_auto_aeol__false_LF_mix_CR.txt +expecting success of 1400.43 'update refs/heads/main (logged by config)': + test_config core.logAllRefUpdates true && + GIT_COMMITTER_DATE="2005-05-26 23:33" \ + git update-ref HEAD $B $A -m "Switch" && + test $B = $(git show-ref -s --verify $m) -expecting success of 0027.298 'compare_files CRLF_nul NNO_attr_auto_aeol__false_CRLF_nul.txt': - compare_files $crlfnul ${pfx}_CRLF_nul.txt - -ok 298 - compare_files CRLF_nul NNO_attr_auto_aeol__false_CRLF_nul.txt +ok 43 - update refs/heads/main (logged by config) -expecting success of 0027.299 'compare_files LF NNO_attr_auto_aeol_lf_false_LF.txt': - compare_files $lfname ${pfx}_LF.txt - -ok 299 - compare_files LF NNO_attr_auto_aeol_lf_false_LF.txt +expecting success of 1400.44 'set refs/heads/main (logged by config)': + test_config core.logAllRefUpdates true && + GIT_COMMITTER_DATE="2005-05-26 23:43" \ + git update-ref HEAD $A && + test $A = $(git show-ref -s --verify $m) -expecting success of 0027.300 'compare_files CRLF NNO_attr_auto_aeol_lf_false_CRLF.txt': - compare_files $crlfname ${pfx}_CRLF.txt - -ok 300 - compare_files CRLF NNO_attr_auto_aeol_lf_false_CRLF.txt +ok 44 - set refs/heads/main (logged by config) -expecting success of 0027.301 'compare_files CRLF_mix_LF NNO_attr_auto_aeol_lf_false_CRLF_mix_LF.txt': - compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt - -ok 301 - compare_files CRLF_mix_LF NNO_attr_auto_aeol_lf_false_CRLF_mix_LF.txt +expecting success of 1400.45 'verifying refs/heads/main's log (logged by config)': + test_when_finished "rm -f .git/$m .git/logs/$m expect" && + test_cmp expect .git/logs/$m -expecting success of 0027.302 'compare_files LF_mix_CR NNO_attr_auto_aeol_lf_false_LF_mix_CR.txt': - compare_files $lfmixcr ${pfx}_LF_mix_CR.txt - -ok 302 - compare_files LF_mix_CR NNO_attr_auto_aeol_lf_false_LF_mix_CR.txt +ok 45 - verifying refs/heads/main's log (logged by config) -expecting success of 0027.303 'compare_files CRLF_nul NNO_attr_auto_aeol_lf_false_CRLF_nul.txt': - compare_files $crlfnul ${pfx}_CRLF_nul.txt - -ok 303 - compare_files CRLF_nul NNO_attr_auto_aeol_lf_false_CRLF_nul.txt +expecting success of 1400.46 'set up for querying the reflog': + git update-ref $m $D && + cat >.git/logs/$m <<-EOF + $Z $C $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> 1117150320 -0500 + $C $A $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> 1117150350 -0500 + $A $B $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> 1117150380 -0500 + $F $Z $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> 1117150680 -0500 + $Z $E $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> 1117150980 -0500 + EOF -expecting success of 0027.304 'compare_files LF NNO_attr_auto_aeol_crlf_false_LF.txt': - compare_files $lfname ${pfx}_LF.txt - -ok 304 - compare_files LF NNO_attr_auto_aeol_crlf_false_LF.txt +ok 46 - set up for querying the reflog -expecting success of 0027.305 'compare_files CRLF NNO_attr_auto_aeol_crlf_false_CRLF.txt': - compare_files $crlfname ${pfx}_CRLF.txt - -ok 305 - compare_files CRLF NNO_attr_auto_aeol_crlf_false_CRLF.txt +expecting success of 1400.47 'Query "main@{May 25 2005}" (before history)': + test_when_finished "rm -f o e" && + git rev-parse --verify "main@{May 25 2005}" >o 2>e && + echo "$C" >expect && + test_cmp expect o && + echo "warning: log for 'main' only goes back to $ed" >expect && + test_i18ncmp expect e -expecting success of 0027.306 'compare_files CRLF_mix_LF NNO_attr_auto_aeol_crlf_false_CRLF_mix_LF.txt': - compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt - -ok 306 - compare_files CRLF_mix_LF NNO_attr_auto_aeol_crlf_false_CRLF_mix_LF.txt +checking prerequisite: C_LOCALE_OUTPUT -expecting success of 0027.307 'compare_files LF_mix_CR NNO_attr_auto_aeol_crlf_false_LF_mix_CR.txt': - compare_files $lfmixcr ${pfx}_LF_mix_CR.txt - -ok 307 - compare_files LF_mix_CR NNO_attr_auto_aeol_crlf_false_LF_mix_CR.txt +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false -expecting success of 0027.308 'compare_files CRLF_nul NNO_attr_auto_aeol_crlf_false_CRLF_nul.txt': - compare_files $crlfnul ${pfx}_CRLF_nul.txt - -ok 308 - compare_files CRLF_nul NNO_attr_auto_aeol_crlf_false_CRLF_nul.txt +) +prerequisite C_LOCALE_OUTPUT ok +ok 47 - Query "main@{May 25 2005}" (before history) -expecting success of 0027.309 'compare_files LF NNO_attr_text_aeol__false_LF.txt': - compare_files $lfname ${pfx}_LF.txt - -ok 309 - compare_files LF NNO_attr_text_aeol__false_LF.txt +expecting success of 1400.48 'Query main@{2005-05-25} (before history)': + test_when_finished "rm -f o e" && + git rev-parse --verify main@{2005-05-25} >o 2>e && + echo "$C" >expect && + test_cmp expect o && + echo "warning: log for 'main' only goes back to $ed" >expect && + test_i18ncmp expect e -expecting success of 0027.310 'compare_files LF NNO_attr_text_aeol__false_CRLF.txt': - compare_files $crlfname ${pfx}_CRLF.txt - -ok 310 - compare_files LF NNO_attr_text_aeol__false_CRLF.txt +ok 48 - Query main@{2005-05-25} (before history) -expecting success of 0027.311 'compare_files LF NNO_attr_text_aeol__false_CRLF_mix_LF.txt': - compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt - -ok 311 - compare_files LF NNO_attr_text_aeol__false_CRLF_mix_LF.txt +expecting success of 1400.49 'Query "main@{May 26 2005 23:31:59}" (1 second before history)': + test_when_finished "rm -f o e" && + git rev-parse --verify "main@{May 26 2005 23:31:59}" >o 2>e && + echo "$C" >expect && + test_cmp expect o && + echo "warning: log for 'main' only goes back to $ed" >expect && + test_i18ncmp expect e -expecting success of 0027.312 'compare_files LF_mix_CR NNO_attr_text_aeol__false_LF_mix_CR.txt': - compare_files $lfmixcr ${pfx}_LF_mix_CR.txt - -ok 312 - compare_files LF_mix_CR NNO_attr_text_aeol__false_LF_mix_CR.txt +ok 49 - Query "main@{May 26 2005 23:31:59}" (1 second before history) -expecting success of 0027.313 'compare_files LF_nul NNO_attr_text_aeol__false_CRLF_nul.txt': - compare_files $crlfnul ${pfx}_CRLF_nul.txt - -ok 313 - compare_files LF_nul NNO_attr_text_aeol__false_CRLF_nul.txt +expecting success of 1400.50 'Query "main@{May 26 2005 23:32:00}" (exactly history start)': + test_when_finished "rm -f o e" && + git rev-parse --verify "main@{May 26 2005 23:32:00}" >o 2>e && + echo "$C" >expect && + test_cmp expect o && + test_must_be_empty e -expecting success of 0027.314 'compare_files LF NNO_attr_text_aeol_lf_false_LF.txt': - compare_files $lfname ${pfx}_LF.txt - -ok 314 - compare_files LF NNO_attr_text_aeol_lf_false_LF.txt +ok 50 - Query "main@{May 26 2005 23:32:00}" (exactly history start) -expecting success of 0027.315 'compare_files LF NNO_attr_text_aeol_lf_false_CRLF.txt': - compare_files $crlfname ${pfx}_CRLF.txt - -ok 315 - compare_files LF NNO_attr_text_aeol_lf_false_CRLF.txt +expecting success of 1400.51 'Query "main@{May 26 2005 23:32:30}" (first non-creation change)': + test_when_finished "rm -f o e" && + git rev-parse --verify "main@{May 26 2005 23:32:30}" >o 2>e && + echo "$A" >expect && + test_cmp expect o && + test_must_be_empty e -expecting success of 0027.316 'compare_files LF NNO_attr_text_aeol_lf_false_CRLF_mix_LF.txt': - compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt - -ok 316 - compare_files LF NNO_attr_text_aeol_lf_false_CRLF_mix_LF.txt +ok 51 - Query "main@{May 26 2005 23:32:30}" (first non-creation change) -expecting success of 0027.317 'compare_files LF_mix_CR NNO_attr_text_aeol_lf_false_LF_mix_CR.txt': - compare_files $lfmixcr ${pfx}_LF_mix_CR.txt - -ok 317 - compare_files LF_mix_CR NNO_attr_text_aeol_lf_false_LF_mix_CR.txt +expecting success of 1400.52 'Query "main@{2005-05-26 23:33:01}" (middle of history with gap)': + test_when_finished "rm -f o e" && + git rev-parse --verify "main@{2005-05-26 23:33:01}" >o 2>e && + echo "$B" >expect && + test_cmp expect o && + test_i18ngrep -F "warning: log for ref $m has gap after $gd" e -expecting success of 0027.318 'compare_files LF_nul NNO_attr_text_aeol_lf_false_CRLF_nul.txt': - compare_files $crlfnul ${pfx}_CRLF_nul.txt - -ok 318 - compare_files LF_nul NNO_attr_text_aeol_lf_false_CRLF_nul.txt +warning: log for ref refs/heads/main has gap after Thu, 26 May 2005 18:33:00 -0500 +ok 52 - Query "main@{2005-05-26 23:33:01}" (middle of history with gap) -expecting success of 0027.319 'compare_files LF NNO_attr_text_aeol_crlf_false_LF.txt': - compare_files $lfname ${pfx}_LF.txt - -ok 319 - compare_files LF NNO_attr_text_aeol_crlf_false_LF.txt +expecting success of 1400.53 'Query "main@{2005-05-26 23:38:00}" (middle of history)': + test_when_finished "rm -f o e" && + git rev-parse --verify "main@{2005-05-26 23:38:00}" >o 2>e && + echo "$Z" >expect && + test_cmp expect o && + test_must_be_empty e -expecting success of 0027.320 'compare_files LF NNO_attr_text_aeol_crlf_false_CRLF.txt': - compare_files $crlfname ${pfx}_CRLF.txt - -ok 320 - compare_files LF NNO_attr_text_aeol_crlf_false_CRLF.txt +ok 53 - Query "main@{2005-05-26 23:38:00}" (middle of history) -expecting success of 0027.321 'compare_files LF NNO_attr_text_aeol_crlf_false_CRLF_mix_LF.txt': - compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt - -ok 321 - compare_files LF NNO_attr_text_aeol_crlf_false_CRLF_mix_LF.txt +expecting success of 1400.54 'Query "main@{2005-05-26 23:43:00}" (exact end of history)': + test_when_finished "rm -f o e" && + git rev-parse --verify "main@{2005-05-26 23:43:00}" >o 2>e && + echo "$E" >expect && + test_cmp expect o && + test_must_be_empty e -expecting success of 0027.322 'compare_files LF_mix_CR NNO_attr_text_aeol_crlf_false_LF_mix_CR.txt': - compare_files $lfmixcr ${pfx}_LF_mix_CR.txt - -ok 322 - compare_files LF_mix_CR NNO_attr_text_aeol_crlf_false_LF_mix_CR.txt +ok 54 - Query "main@{2005-05-26 23:43:00}" (exact end of history) -expecting success of 0027.323 'compare_files LF_nul NNO_attr_text_aeol_crlf_false_CRLF_nul.txt': - compare_files $crlfnul ${pfx}_CRLF_nul.txt - -ok 323 - compare_files LF_nul NNO_attr_text_aeol_crlf_false_CRLF_nul.txt +expecting success of 1400.55 'Query "main@{2005-05-28}" (past end of history)': + test_when_finished "rm -f o e" && + git rev-parse --verify "main@{2005-05-28}" >o 2>e && + echo "$D" >expect && + test_cmp expect o && + test_i18ngrep -F "warning: log for ref $m unexpectedly ended on $ld" e -expecting success of 0027.324 'compare_files LF NNO_attr__aeol__input_LF.txt': - compare_files $lfname ${pfx}_LF.txt - -ok 324 - compare_files LF NNO_attr__aeol__input_LF.txt +warning: log for ref refs/heads/main unexpectedly ended on Thu, 26 May 2005 18:43:00 -0500 +ok 55 - Query "main@{2005-05-28}" (past end of history) -expecting success of 0027.325 'compare_files CRLF NNO_attr__aeol__input_CRLF.txt': - compare_files $crlfname ${pfx}_CRLF.txt - -ok 325 - compare_files CRLF NNO_attr__aeol__input_CRLF.txt +expecting success of 1400.56 'creating initial files': + test_when_finished rm -f M && + echo TEST >F && + git add F && + GIT_AUTHOR_DATE="2005-05-26 23:30" \ + GIT_COMMITTER_DATE="2005-05-26 23:30" git commit -m add -a && + h_TEST=$(git rev-parse --verify HEAD) && + echo The other day this did not work. >M && + echo And then Bob told me how to fix it. >>M && + echo OTHER >F && + GIT_AUTHOR_DATE="2005-05-26 23:41" \ + GIT_COMMITTER_DATE="2005-05-26 23:41" git commit -F M -a && + h_OTHER=$(git rev-parse --verify HEAD) && + GIT_AUTHOR_DATE="2005-05-26 23:44" \ + GIT_COMMITTER_DATE="2005-05-26 23:44" git commit --amend && + h_FIXED=$(git rev-parse --verify HEAD) && + echo Merged initial commit and a later commit. >M && + echo $h_TEST >.git/MERGE_HEAD && + GIT_AUTHOR_DATE="2005-05-26 23:45" \ + GIT_COMMITTER_DATE="2005-05-26 23:45" git commit -F M && + h_MERGED=$(git rev-parse --verify HEAD) -expecting success of 0027.326 'compare_files CRLF_mix_LF NNO_attr__aeol__input_CRLF_mix_LF.txt': - compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt - -ok 326 - compare_files CRLF_mix_LF NNO_attr__aeol__input_CRLF_mix_LF.txt +[main (root-commit) 0c23f5f] add + Author: A U Thor + 2 files changed, 2 insertions(+) + create mode 100644 F + create mode 100644 foo.c +[main d3968db] The other day this did not work. And then Bob told me how to fix it. + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +[main e66de33] The other day this did not work. And then Bob told me how to fix it. + Author: A U Thor + Date: Thu May 26 23:41:00 2005 +0000 + 1 file changed, 1 insertion(+), 1 deletion(-) +[main 29d1ccd] Merged initial commit and a later commit. + Author: A U Thor +ok 56 - creating initial files -expecting success of 0027.327 'compare_files LF_mix_CR NNO_attr__aeol__input_LF_mix_CR.txt': - compare_files $lfmixcr ${pfx}_LF_mix_CR.txt - -ok 327 - compare_files LF_mix_CR NNO_attr__aeol__input_LF_mix_CR.txt +expecting success of 1400.57 'git commit logged updates': + test_cmp expect .git/logs/$m -expecting success of 0027.328 'compare_files CRLF_nul NNO_attr__aeol__input_CRLF_nul.txt': - compare_files $crlfnul ${pfx}_CRLF_nul.txt - -ok 328 - compare_files CRLF_nul NNO_attr__aeol__input_CRLF_nul.txt +ok 57 - git commit logged updates -expecting success of 0027.329 'compare_files LF NNO_attr_-text_aeol__input_LF.txt': - compare_files $lfname ${pfx}_LF.txt - -ok 329 - compare_files LF NNO_attr_-text_aeol__input_LF.txt +expecting success of 1400.58 'git cat-file blob main:F (expect OTHER)': + test OTHER = $(git cat-file blob main:F) -expecting success of 0027.330 'compare_files CRLF NNO_attr_-text_aeol__input_CRLF.txt': - compare_files $crlfname ${pfx}_CRLF.txt - -ok 330 - compare_files CRLF NNO_attr_-text_aeol__input_CRLF.txt +ok 58 - git cat-file blob main:F (expect OTHER) -expecting success of 0027.331 'compare_files CRLF_mix_LF NNO_attr_-text_aeol__input_CRLF_mix_LF.txt': - compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt - -ok 331 - compare_files CRLF_mix_LF NNO_attr_-text_aeol__input_CRLF_mix_LF.txt +expecting success of 1400.59 'git cat-file blob main@{2005-05-26 23:30}:F (expect TEST)': + test TEST = $(git cat-file blob "main@{2005-05-26 23:30}:F") -expecting success of 0027.332 'compare_files LF_mix_CR NNO_attr_-text_aeol__input_LF_mix_CR.txt': - compare_files $lfmixcr ${pfx}_LF_mix_CR.txt - -ok 332 - compare_files LF_mix_CR NNO_attr_-text_aeol__input_LF_mix_CR.txt +ok 59 - git cat-file blob main@{2005-05-26 23:30}:F (expect TEST) -expecting success of 0027.333 'compare_files CRLF_nul NNO_attr_-text_aeol__input_CRLF_nul.txt': - compare_files $crlfnul ${pfx}_CRLF_nul.txt - -ok 333 - compare_files CRLF_nul NNO_attr_-text_aeol__input_CRLF_nul.txt +expecting success of 1400.60 'git cat-file blob main@{2005-05-26 23:42}:F (expect OTHER)': + test OTHER = $(git cat-file blob "main@{2005-05-26 23:42}:F") -expecting success of 0027.334 'compare_files LF NNO_attr_-text_aeol_lf_input_LF.txt': - compare_files $lfname ${pfx}_LF.txt - -ok 334 - compare_files LF NNO_attr_-text_aeol_lf_input_LF.txt +ok 60 - git cat-file blob main@{2005-05-26 23:42}:F (expect OTHER) -expecting success of 0027.335 'compare_files CRLF NNO_attr_-text_aeol_lf_input_CRLF.txt': - compare_files $crlfname ${pfx}_CRLF.txt - -ok 335 - compare_files CRLF NNO_attr_-text_aeol_lf_input_CRLF.txt +expecting success of 1400.61 'given old value for missing pseudoref, do not create': + test_must_fail git update-ref PSEUDOREF $A $B 2>err && + test_must_fail git rev-parse PSEUDOREF && + test_i18ngrep "unable to resolve reference" err -expecting success of 0027.336 'compare_files CRLF_mix_LF NNO_attr_-text_aeol_lf_input_CRLF_mix_LF.txt': - compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt - -ok 336 - compare_files CRLF_mix_LF NNO_attr_-text_aeol_lf_input_CRLF_mix_LF.txt +fatal: ambiguous argument 'PSEUDOREF': unknown revision or path not in the working tree. +Use '--' to separate paths from revisions, like this: +'git [...] -- [...]' +PSEUDOREF +fatal: update_ref failed for ref 'PSEUDOREF': cannot lock ref 'PSEUDOREF': unable to resolve reference 'PSEUDOREF' +ok 61 - given old value for missing pseudoref, do not create -expecting success of 0027.337 'compare_files LF_mix_CR NNO_attr_-text_aeol_lf_input_LF_mix_CR.txt': - compare_files $lfmixcr ${pfx}_LF_mix_CR.txt - -ok 337 - compare_files LF_mix_CR NNO_attr_-text_aeol_lf_input_LF_mix_CR.txt +expecting success of 1400.62 'create pseudoref': + git update-ref PSEUDOREF $A && + test $A = $(git rev-parse PSEUDOREF) -expecting success of 0027.338 'compare_files CRLF_nul NNO_attr_-text_aeol_lf_input_CRLF_nul.txt': - compare_files $crlfnul ${pfx}_CRLF_nul.txt - -ok 338 - compare_files CRLF_nul NNO_attr_-text_aeol_lf_input_CRLF_nul.txt +ok 62 - create pseudoref -expecting success of 0027.339 'compare_files LF NNO_attr_-text_aeol_crlf_input_LF.txt': - compare_files $lfname ${pfx}_LF.txt - -ok 339 - compare_files LF NNO_attr_-text_aeol_crlf_input_LF.txt +expecting success of 1400.63 'overwrite pseudoref with no old value given': + git update-ref PSEUDOREF $B && + test $B = $(git rev-parse PSEUDOREF) -expecting success of 0027.340 'compare_files CRLF NNO_attr_-text_aeol_crlf_input_CRLF.txt': - compare_files $crlfname ${pfx}_CRLF.txt - -ok 340 - compare_files CRLF NNO_attr_-text_aeol_crlf_input_CRLF.txt +ok 63 - overwrite pseudoref with no old value given -expecting success of 0027.341 'compare_files CRLF_mix_LF NNO_attr_-text_aeol_crlf_input_CRLF_mix_LF.txt': - compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt - -ok 341 - compare_files CRLF_mix_LF NNO_attr_-text_aeol_crlf_input_CRLF_mix_LF.txt +expecting success of 1400.64 'overwrite pseudoref with correct old value': + git update-ref PSEUDOREF $C $B && + test $C = $(git rev-parse PSEUDOREF) -expecting success of 0027.342 'compare_files LF_mix_CR NNO_attr_-text_aeol_crlf_input_LF_mix_CR.txt': - compare_files $lfmixcr ${pfx}_LF_mix_CR.txt - -ok 342 - compare_files LF_mix_CR NNO_attr_-text_aeol_crlf_input_LF_mix_CR.txt +ok 64 - overwrite pseudoref with correct old value -expecting success of 0027.343 'compare_files CRLF_nul NNO_attr_-text_aeol_crlf_input_CRLF_nul.txt': - compare_files $crlfnul ${pfx}_CRLF_nul.txt - -ok 343 - compare_files CRLF_nul NNO_attr_-text_aeol_crlf_input_CRLF_nul.txt +expecting success of 1400.65 'do not overwrite pseudoref with wrong old value': + test_must_fail git update-ref PSEUDOREF $D $E 2>err && + test $C = $(git rev-parse PSEUDOREF) && + test_i18ngrep "cannot lock ref.*expected" err -expecting success of 0027.344 'compare_files LF NNO_attr_auto_aeol__input_LF.txt': - compare_files $lfname ${pfx}_LF.txt - -ok 344 - compare_files LF NNO_attr_auto_aeol__input_LF.txt +fatal: update_ref failed for ref 'PSEUDOREF': cannot lock ref 'PSEUDOREF': is at 3cceb89b690679aecbe1db39079f99221f1aaaa6 but expected a6166d2809963b1da1148e6922729c21214390c8 +ok 65 - do not overwrite pseudoref with wrong old value -expecting success of 0027.345 'compare_files CRLF NNO_attr_auto_aeol__input_CRLF.txt': - compare_files $crlfname ${pfx}_CRLF.txt - -ok 345 - compare_files CRLF NNO_attr_auto_aeol__input_CRLF.txt +expecting success of 1400.66 'delete pseudoref': + git update-ref -d PSEUDOREF && + test_must_fail git rev-parse PSEUDOREF -expecting success of 0027.346 'compare_files CRLF_mix_LF NNO_attr_auto_aeol__input_CRLF_mix_LF.txt': - compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt - -ok 346 - compare_files CRLF_mix_LF NNO_attr_auto_aeol__input_CRLF_mix_LF.txt +fatal: ambiguous argument 'PSEUDOREF': unknown revision or path not in the working tree. +Use '--' to separate paths from revisions, like this: +'git [...] -- [...]' +PSEUDOREF +ok 66 - delete pseudoref -expecting success of 0027.347 'compare_files LF_mix_CR NNO_attr_auto_aeol__input_LF_mix_CR.txt': - compare_files $lfmixcr ${pfx}_LF_mix_CR.txt - -ok 347 - compare_files LF_mix_CR NNO_attr_auto_aeol__input_LF_mix_CR.txt +expecting success of 1400.67 'do not delete pseudoref with wrong old value': + git update-ref PSEUDOREF $A && + test_must_fail git update-ref -d PSEUDOREF $B 2>err && + test $A = $(git rev-parse PSEUDOREF) && + test_i18ngrep "cannot lock ref.*expected" err -expecting success of 0027.348 'compare_files CRLF_nul NNO_attr_auto_aeol__input_CRLF_nul.txt': - compare_files $crlfnul ${pfx}_CRLF_nul.txt - -ok 348 - compare_files CRLF_nul NNO_attr_auto_aeol__input_CRLF_nul.txt +error: cannot lock ref 'PSEUDOREF': is at 102939797ab91a4f201d131418d2c9d919dcdd2c but expected 56d5c1374e8028a1e122ab046ab7b98165342dc4 +ok 67 - do not delete pseudoref with wrong old value -expecting success of 0027.349 'compare_files LF NNO_attr_auto_aeol_lf_input_LF.txt': - compare_files $lfname ${pfx}_LF.txt - -ok 349 - compare_files LF NNO_attr_auto_aeol_lf_input_LF.txt +expecting success of 1400.68 'delete pseudoref with correct old value': + git update-ref -d PSEUDOREF $A && + test_must_fail git rev-parse PSEUDOREF -expecting success of 0027.350 'compare_files CRLF NNO_attr_auto_aeol_lf_input_CRLF.txt': - compare_files $crlfname ${pfx}_CRLF.txt - -ok 350 - compare_files CRLF NNO_attr_auto_aeol_lf_input_CRLF.txt +fatal: ambiguous argument 'PSEUDOREF': unknown revision or path not in the working tree. +Use '--' to separate paths from revisions, like this: +'git [...] -- [...]' +PSEUDOREF +ok 68 - delete pseudoref with correct old value -expecting success of 0027.351 'compare_files CRLF_mix_LF NNO_attr_auto_aeol_lf_input_CRLF_mix_LF.txt': - compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt - -ok 351 - compare_files CRLF_mix_LF NNO_attr_auto_aeol_lf_input_CRLF_mix_LF.txt +expecting success of 1400.69 'create pseudoref with old OID zero': + git update-ref PSEUDOREF $A $Z && + test $A = $(git rev-parse PSEUDOREF) -expecting success of 0027.352 'compare_files LF_mix_CR NNO_attr_auto_aeol_lf_input_LF_mix_CR.txt': - compare_files $lfmixcr ${pfx}_LF_mix_CR.txt - -ok 352 - compare_files LF_mix_CR NNO_attr_auto_aeol_lf_input_LF_mix_CR.txt +ok 69 - create pseudoref with old OID zero -expecting success of 0027.353 'compare_files CRLF_nul NNO_attr_auto_aeol_lf_input_CRLF_nul.txt': - compare_files $crlfnul ${pfx}_CRLF_nul.txt - -ok 353 - compare_files CRLF_nul NNO_attr_auto_aeol_lf_input_CRLF_nul.txt +expecting success of 1400.70 'do not overwrite pseudoref with old OID zero': + test_when_finished git update-ref -d PSEUDOREF && + test_must_fail git update-ref PSEUDOREF $B $Z 2>err && + test $A = $(git rev-parse PSEUDOREF) && + test_i18ngrep "already exists" err -expecting success of 0027.354 'compare_files LF NNO_attr_auto_aeol_crlf_input_LF.txt': - compare_files $lfname ${pfx}_LF.txt - -ok 354 - compare_files LF NNO_attr_auto_aeol_crlf_input_LF.txt +fatal: update_ref failed for ref 'PSEUDOREF': cannot lock ref 'PSEUDOREF': reference already exists +ok 70 - do not overwrite pseudoref with old OID zero -expecting success of 0027.355 'compare_files CRLF NNO_attr_auto_aeol_crlf_input_CRLF.txt': - compare_files $crlfname ${pfx}_CRLF.txt - -ok 355 - compare_files CRLF NNO_attr_auto_aeol_crlf_input_CRLF.txt +expecting success of 1400.71 'stdin test setup': + echo "$pws" >"$pws" && + git add -- "$pws" && + git commit -m "$pws" -expecting success of 0027.356 'compare_files CRLF_mix_LF NNO_attr_auto_aeol_crlf_input_CRLF_mix_LF.txt': - compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt - -ok 356 - compare_files CRLF_mix_LF NNO_attr_auto_aeol_crlf_input_CRLF_mix_LF.txt +[main 536da9b] path with space + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 path with space +ok 71 - stdin test setup -expecting success of 0027.357 'compare_files LF_mix_CR NNO_attr_auto_aeol_crlf_input_LF_mix_CR.txt': - compare_files $lfmixcr ${pfx}_LF_mix_CR.txt - -ok 357 - compare_files LF_mix_CR NNO_attr_auto_aeol_crlf_input_LF_mix_CR.txt +expecting success of 1400.72 '-z fails without --stdin': + test_must_fail git update-ref -z $m $m $m 2>err && + test_i18ngrep "usage: git update-ref" err -expecting success of 0027.358 'compare_files CRLF_nul NNO_attr_auto_aeol_crlf_input_CRLF_nul.txt': - compare_files $crlfnul ${pfx}_CRLF_nul.txt - -ok 358 - compare_files CRLF_nul NNO_attr_auto_aeol_crlf_input_CRLF_nul.txt +usage: git update-ref [] -d [] +ok 72 - -z fails without --stdin -expecting success of 0027.359 'compare_files LF NNO_attr_text_aeol__input_LF.txt': - compare_files $lfname ${pfx}_LF.txt - -ok 359 - compare_files LF NNO_attr_text_aeol__input_LF.txt +expecting success of 1400.73 'stdin works with no input': + >stdin && + git update-ref --stdin stdin && + test_must_fail git update-ref --stdin err && + grep "fatal: empty command in input" err -expecting success of 0027.362 'compare_files LF_mix_CR NNO_attr_text_aeol__input_LF_mix_CR.txt': - compare_files $lfmixcr ${pfx}_LF_mix_CR.txt - -ok 362 - compare_files LF_mix_CR NNO_attr_text_aeol__input_LF_mix_CR.txt +fatal: empty command in input +ok 74 - stdin fails on empty line -expecting success of 0027.363 'compare_files LF_nul NNO_attr_text_aeol__input_CRLF_nul.txt': - compare_files $crlfnul ${pfx}_CRLF_nul.txt - -ok 363 - compare_files LF_nul NNO_attr_text_aeol__input_CRLF_nul.txt +expecting success of 1400.75 'stdin fails on only whitespace': + echo " " >stdin && + test_must_fail git update-ref --stdin err && + grep "fatal: whitespace before command: " err -expecting success of 0027.364 'compare_files LF NNO_attr_text_aeol_lf_input_LF.txt': - compare_files $lfname ${pfx}_LF.txt - -ok 364 - compare_files LF NNO_attr_text_aeol_lf_input_LF.txt +fatal: whitespace before command: +ok 75 - stdin fails on only whitespace -expecting success of 0027.365 'compare_files LF NNO_attr_text_aeol_lf_input_CRLF.txt': - compare_files $crlfname ${pfx}_CRLF.txt - -ok 365 - compare_files LF NNO_attr_text_aeol_lf_input_CRLF.txt +expecting success of 1400.76 'stdin fails on leading whitespace': + echo " create $a $m" >stdin && + test_must_fail git update-ref --stdin err && + grep "fatal: whitespace before command: create $a $m" err -expecting success of 0027.366 'compare_files LF NNO_attr_text_aeol_lf_input_CRLF_mix_LF.txt': - compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt - -ok 366 - compare_files LF NNO_attr_text_aeol_lf_input_CRLF_mix_LF.txt +fatal: whitespace before command: create refs/heads/a refs/heads/main +ok 76 - stdin fails on leading whitespace -expecting success of 0027.367 'compare_files LF_mix_CR NNO_attr_text_aeol_lf_input_LF_mix_CR.txt': - compare_files $lfmixcr ${pfx}_LF_mix_CR.txt - -ok 367 - compare_files LF_mix_CR NNO_attr_text_aeol_lf_input_LF_mix_CR.txt +expecting success of 1400.77 'stdin fails on unknown command': + echo "unknown $a" >stdin && + test_must_fail git update-ref --stdin err && + grep "fatal: unknown command: unknown $a" err -expecting success of 0027.368 'compare_files LF_nul NNO_attr_text_aeol_lf_input_CRLF_nul.txt': - compare_files $crlfnul ${pfx}_CRLF_nul.txt - -ok 368 - compare_files LF_nul NNO_attr_text_aeol_lf_input_CRLF_nul.txt +fatal: unknown command: unknown refs/heads/a +ok 77 - stdin fails on unknown command -expecting success of 0027.369 'compare_files LF NNO_attr_text_aeol_crlf_input_LF.txt': - compare_files $lfname ${pfx}_LF.txt - -ok 369 - compare_files LF NNO_attr_text_aeol_crlf_input_LF.txt +expecting success of 1400.78 'stdin fails on unbalanced quotes': + echo "create $a \"main" >stdin && + test_must_fail git update-ref --stdin err && + grep "fatal: badly quoted argument: \\\"main" err -expecting success of 0027.370 'compare_files LF NNO_attr_text_aeol_crlf_input_CRLF.txt': - compare_files $crlfname ${pfx}_CRLF.txt - -ok 370 - compare_files LF NNO_attr_text_aeol_crlf_input_CRLF.txt +fatal: badly quoted argument: "main +ok 78 - stdin fails on unbalanced quotes -expecting success of 0027.371 'compare_files LF NNO_attr_text_aeol_crlf_input_CRLF_mix_LF.txt': - compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt - -ok 371 - compare_files LF NNO_attr_text_aeol_crlf_input_CRLF_mix_LF.txt +expecting success of 1400.79 'stdin fails on invalid escape': + echo "create $a \"ma\zn\"" >stdin && + test_must_fail git update-ref --stdin err && + grep "fatal: badly quoted argument: \\\"ma\\\\zn\\\"" err -expecting success of 0027.372 'compare_files LF_mix_CR NNO_attr_text_aeol_crlf_input_LF_mix_CR.txt': - compare_files $lfmixcr ${pfx}_LF_mix_CR.txt - -ok 372 - compare_files LF_mix_CR NNO_attr_text_aeol_crlf_input_LF_mix_CR.txt +fatal: badly quoted argument: "ma\zn" +ok 79 - stdin fails on invalid escape -expecting success of 0027.373 'compare_files LF_nul NNO_attr_text_aeol_crlf_input_CRLF_nul.txt': - compare_files $crlfnul ${pfx}_CRLF_nul.txt - -ok 373 - compare_files LF_nul NNO_attr_text_aeol_crlf_input_CRLF_nul.txt +expecting success of 1400.80 'stdin fails on junk after quoted argument': + echo "create \"$a\"main" >stdin && + test_must_fail git update-ref --stdin err && + grep "fatal: unexpected character after quoted argument: \\\"$a\\\"main" err -expecting success of 0027.374 'ls-files --eol attr=-text aeol= core.autocrlf=true core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 374 - ls-files --eol attr=-text aeol= core.autocrlf=true core.eol=lf +fatal: unexpected character after quoted argument: "refs/heads/a"main +ok 80 - stdin fails on junk after quoted argument -expecting success of 0027.375 'checkout attr=-text aeol= core.autocrlf=true core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_true_attr_-text_ LF crlf_false_attr__LF.txt - -ok 375 - checkout attr=-text aeol= core.autocrlf=true core.eol=lf file=LF +expecting success of 1400.81 'stdin fails create with no ref': + echo "create " >stdin && + test_must_fail git update-ref --stdin err && + grep "fatal: create: missing " err -expecting success of 0027.376 'checkout attr=-text aeol= core.autocrlf=true core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_true_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 376 - checkout attr=-text aeol= core.autocrlf=true core.eol=lf file=CRLF +fatal: create: missing +ok 81 - stdin fails create with no ref -expecting success of 0027.377 'checkout attr=-text aeol= core.autocrlf=true core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_true_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 377 - checkout attr=-text aeol= core.autocrlf=true core.eol=lf file=CRLF_mix_LF +expecting success of 1400.82 'stdin fails create with no new value': + echo "create $a" >stdin && + test_must_fail git update-ref --stdin err && + grep "fatal: create $a: missing " err -expecting success of 0027.378 'checkout attr=-text aeol= core.autocrlf=true core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_true_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 378 - checkout attr=-text aeol= core.autocrlf=true core.eol=lf file=LF_mix_CR +fatal: create refs/heads/a: missing +ok 82 - stdin fails create with no new value -expecting success of 0027.379 'checkout attr=-text aeol= core.autocrlf=true core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_true_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 379 - checkout attr=-text aeol= core.autocrlf=true core.eol=lf file=LF_nul +expecting success of 1400.83 'stdin fails create with too many arguments': + echo "create $a $m $m" >stdin && + test_must_fail git update-ref --stdin err && + grep "fatal: create $a: extra input: $m" err -expecting success of 0027.380 'ls-files --eol attr=-text aeol=lf core.autocrlf=true core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 380 - ls-files --eol attr=-text aeol=lf core.autocrlf=true core.eol=lf +fatal: create refs/heads/a: extra input: refs/heads/main +ok 83 - stdin fails create with too many arguments -expecting success of 0027.381 'checkout attr=-text aeol=lf core.autocrlf=true core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_true_attr_-text_ LF crlf_false_attr__LF.txt - -ok 381 - checkout attr=-text aeol=lf core.autocrlf=true core.eol=lf file=LF +expecting success of 1400.84 'stdin fails update with no ref': + echo "update " >stdin && + test_must_fail git update-ref --stdin err && + grep "fatal: update: missing " err -expecting success of 0027.382 'checkout attr=-text aeol=lf core.autocrlf=true core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_true_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 382 - checkout attr=-text aeol=lf core.autocrlf=true core.eol=lf file=CRLF +fatal: update: missing +ok 84 - stdin fails update with no ref -expecting success of 0027.383 'checkout attr=-text aeol=lf core.autocrlf=true core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_true_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 383 - checkout attr=-text aeol=lf core.autocrlf=true core.eol=lf file=CRLF_mix_LF +expecting success of 1400.85 'stdin fails update with no new value': + echo "update $a" >stdin && + test_must_fail git update-ref --stdin err && + grep "fatal: update $a: missing " err -expecting success of 0027.384 'checkout attr=-text aeol=lf core.autocrlf=true core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_true_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 384 - checkout attr=-text aeol=lf core.autocrlf=true core.eol=lf file=LF_mix_CR +fatal: update refs/heads/a: missing +ok 85 - stdin fails update with no new value -expecting success of 0027.385 'checkout attr=-text aeol=lf core.autocrlf=true core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_true_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 385 - checkout attr=-text aeol=lf core.autocrlf=true core.eol=lf file=LF_nul +expecting success of 1400.86 'stdin fails update with too many arguments': + echo "update $a $m $m $m" >stdin && + test_must_fail git update-ref --stdin err && + grep "fatal: update $a: extra input: $m" err -expecting success of 0027.386 'ls-files --eol attr=-text aeol=crlf core.autocrlf=true core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 386 - ls-files --eol attr=-text aeol=crlf core.autocrlf=true core.eol=lf +fatal: update refs/heads/a: extra input: refs/heads/main +ok 86 - stdin fails update with too many arguments -expecting success of 0027.387 'checkout attr=-text aeol=crlf core.autocrlf=true core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_true_attr_-text_ LF crlf_false_attr__LF.txt - -ok 387 - checkout attr=-text aeol=crlf core.autocrlf=true core.eol=lf file=LF +expecting success of 1400.87 'stdin fails delete with no ref': + echo "delete " >stdin && + test_must_fail git update-ref --stdin err && + grep "fatal: delete: missing " err -expecting success of 0027.388 'checkout attr=-text aeol=crlf core.autocrlf=true core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_true_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 388 - checkout attr=-text aeol=crlf core.autocrlf=true core.eol=lf file=CRLF +fatal: delete: missing +ok 87 - stdin fails delete with no ref -expecting success of 0027.389 'checkout attr=-text aeol=crlf core.autocrlf=true core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_true_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 389 - checkout attr=-text aeol=crlf core.autocrlf=true core.eol=lf file=CRLF_mix_LF +expecting success of 1400.88 'stdin fails delete with too many arguments': + echo "delete $a $m $m" >stdin && + test_must_fail git update-ref --stdin err && + grep "fatal: delete $a: extra input: $m" err -expecting success of 0027.390 'checkout attr=-text aeol=crlf core.autocrlf=true core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_true_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 390 - checkout attr=-text aeol=crlf core.autocrlf=true core.eol=lf file=LF_mix_CR +fatal: delete refs/heads/a: extra input: refs/heads/main +ok 88 - stdin fails delete with too many arguments -expecting success of 0027.391 'checkout attr=-text aeol=crlf core.autocrlf=true core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_true_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 391 - checkout attr=-text aeol=crlf core.autocrlf=true core.eol=lf file=LF_nul +expecting success of 1400.89 'stdin fails verify with too many arguments': + echo "verify $a $m $m" >stdin && + test_must_fail git update-ref --stdin err && + grep "fatal: verify $a: extra input: $m" err -expecting success of 0027.392 'ls-files --eol attr=text aeol=lf core.autocrlf=true core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 392 - ls-files --eol attr=text aeol=lf core.autocrlf=true core.eol=lf +fatal: verify refs/heads/a: extra input: refs/heads/main +ok 89 - stdin fails verify with too many arguments -expecting success of 0027.393 'checkout attr=text aeol=lf core.autocrlf=true core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_true_attr_text_ LF crlf_false_attr__LF.txt - -ok 393 - checkout attr=text aeol=lf core.autocrlf=true core.eol=lf file=LF +expecting success of 1400.90 'stdin fails option with unknown name': + echo "option unknown" >stdin && + test_must_fail git update-ref --stdin err && + grep "fatal: option unknown: unknown" err -expecting success of 0027.394 'checkout attr=text aeol=lf core.autocrlf=true core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 394 - checkout attr=text aeol=lf core.autocrlf=true core.eol=lf file=CRLF +fatal: option unknown: unknown +ok 90 - stdin fails option with unknown name -expecting success of 0027.395 'checkout attr=text aeol=lf core.autocrlf=true core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_true_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 395 - checkout attr=text aeol=lf core.autocrlf=true core.eol=lf file=CRLF_mix_LF +expecting success of 1400.91 'stdin fails with duplicate refs': + cat >stdin <<-EOF && + create $a $m + create $b $m + create $a $m + EOF + test_must_fail git update-ref --stdin err && + test_i18ngrep "fatal: multiple updates for ref '$a' not allowed" err -expecting success of 0027.396 'checkout attr=text aeol=lf core.autocrlf=true core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_true_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 396 - checkout attr=text aeol=lf core.autocrlf=true core.eol=lf file=LF_mix_CR +fatal: multiple updates for ref 'refs/heads/a' not allowed +ok 91 - stdin fails with duplicate refs -expecting success of 0027.397 'checkout attr=text aeol=lf core.autocrlf=true core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_true_attr_text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 397 - checkout attr=text aeol=lf core.autocrlf=true core.eol=lf file=LF_nul +expecting success of 1400.92 'stdin create ref works': + echo "create $a $m" >stdin && + git update-ref --stdin expect && + git rev-parse $a >actual && + test_cmp expect actual -expecting success of 0027.398 'ls-files --eol attr=text aeol=crlf core.autocrlf=true core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 398 - ls-files --eol attr=text aeol=crlf core.autocrlf=true core.eol=lf +ok 92 - stdin create ref works -expecting success of 0027.399 'checkout attr=text aeol=crlf core.autocrlf=true core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_true_attr_text_ CRLF crlf_false_attr__LF.txt - -ok 399 - checkout attr=text aeol=crlf core.autocrlf=true core.eol=lf file=LF +expecting success of 1400.93 'stdin does not create reflogs by default': + test_when_finished "git update-ref -d $outside" && + echo "create $outside $m" >stdin && + git update-ref --stdin expect && + git rev-parse $outside >actual && + test_cmp expect actual && + test_must_fail git reflog exists $outside -expecting success of 0027.400 'checkout attr=text aeol=crlf core.autocrlf=true core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 400 - checkout attr=text aeol=crlf core.autocrlf=true core.eol=lf file=CRLF +ok 93 - stdin does not create reflogs by default -expecting success of 0027.401 'checkout attr=text aeol=crlf core.autocrlf=true core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt - -ok 401 - checkout attr=text aeol=crlf core.autocrlf=true core.eol=lf file=CRLF_mix_LF +expecting success of 1400.94 'stdin creates reflogs with --create-reflog': + test_when_finished "git update-ref -d $outside" && + echo "create $outside $m" >stdin && + git update-ref --create-reflog --stdin expect && + git rev-parse $outside >actual && + test_cmp expect actual && + git reflog exists $outside -expecting success of 0027.402 'checkout attr=text aeol=crlf core.autocrlf=true core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_true_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 402 - checkout attr=text aeol=crlf core.autocrlf=true core.eol=lf file=LF_mix_CR +ok 94 - stdin creates reflogs with --create-reflog -expecting success of 0027.403 'checkout attr=text aeol=crlf core.autocrlf=true core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_true_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt - -ok 403 - checkout attr=text aeol=crlf core.autocrlf=true core.eol=lf file=LF_nul +expecting success of 1400.95 'stdin succeeds with quoted argument': + git update-ref -d $a && + echo "create $a \"$m\"" >stdin && + git update-ref --stdin expect && + git rev-parse $a >actual && + test_cmp expect actual -expecting success of 0027.404 'ls-files --eol attr=auto aeol=lf core.autocrlf=true core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 404 - ls-files --eol attr=auto aeol=lf core.autocrlf=true core.eol=lf +ok 95 - stdin succeeds with quoted argument -expecting success of 0027.405 'checkout attr=auto aeol=lf core.autocrlf=true core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_true_attr_auto_ LF crlf_false_attr__LF.txt - -ok 405 - checkout attr=auto aeol=lf core.autocrlf=true core.eol=lf file=LF +expecting success of 1400.96 'stdin succeeds with escaped character': + git update-ref -d $a && + echo "create $a \"ma\\151n\"" >stdin && + git update-ref --stdin expect && + git rev-parse $a >actual && + test_cmp expect actual -expecting success of 0027.406 'checkout attr=auto aeol=lf core.autocrlf=true core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_true_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 406 - checkout attr=auto aeol=lf core.autocrlf=true core.eol=lf file=CRLF +ok 96 - stdin succeeds with escaped character -expecting success of 0027.407 'checkout attr=auto aeol=lf core.autocrlf=true core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_true_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 407 - checkout attr=auto aeol=lf core.autocrlf=true core.eol=lf file=CRLF_mix_LF +expecting success of 1400.97 'stdin update ref creates with zero old value': + echo "update $b $m $Z" >stdin && + git update-ref --stdin expect && + git rev-parse $b >actual && + test_cmp expect actual && + git update-ref -d $b -expecting success of 0027.408 'checkout attr=auto aeol=lf core.autocrlf=true core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_true_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 408 - checkout attr=auto aeol=lf core.autocrlf=true core.eol=lf file=LF_mix_CR +ok 97 - stdin update ref creates with zero old value -expecting success of 0027.409 'checkout attr=auto aeol=lf core.autocrlf=true core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_true_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 409 - checkout attr=auto aeol=lf core.autocrlf=true core.eol=lf file=LF_nul +expecting success of 1400.98 'stdin update ref creates with empty old value': + echo "update $b $m $E" >stdin && + git update-ref --stdin expect && + git rev-parse $b >actual && + test_cmp expect actual -expecting success of 0027.410 'ls-files --eol attr=auto aeol=crlf core.autocrlf=true core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 410 - ls-files --eol attr=auto aeol=crlf core.autocrlf=true core.eol=lf +ok 98 - stdin update ref creates with empty old value -expecting success of 0027.411 'checkout attr=auto aeol=crlf core.autocrlf=true core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_true_attr_auto_ CRLF crlf_false_attr__LF.txt - -ok 411 - checkout attr=auto aeol=crlf core.autocrlf=true core.eol=lf file=LF +expecting success of 1400.99 'stdin create ref works with path with space to blob': + echo "create refs/blobs/pws \"$m:$pws\"" >stdin && + git update-ref --stdin expect && + git rev-parse refs/blobs/pws >actual && + test_cmp expect actual && + git update-ref -d refs/blobs/pws -expecting success of 0027.412 'checkout attr=auto aeol=crlf core.autocrlf=true core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_true_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 412 - checkout attr=auto aeol=crlf core.autocrlf=true core.eol=lf file=CRLF +ok 99 - stdin create ref works with path with space to blob -expecting success of 0027.413 'checkout attr=auto aeol=crlf core.autocrlf=true core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_true_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 413 - checkout attr=auto aeol=crlf core.autocrlf=true core.eol=lf file=CRLF_mix_LF +expecting success of 1400.100 'stdin update ref fails with wrong old value': + echo "update $c $m $m~1" >stdin && + test_must_fail git update-ref --stdin err && + grep "fatal: cannot lock ref '$c'" err && + test_must_fail git rev-parse --verify -q $c -expecting success of 0027.414 'checkout attr=auto aeol=crlf core.autocrlf=true core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_true_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 414 - checkout attr=auto aeol=crlf core.autocrlf=true core.eol=lf file=LF_mix_CR +fatal: cannot lock ref 'refs/heads/c': unable to resolve reference 'refs/heads/c' +ok 100 - stdin update ref fails with wrong old value -expecting success of 0027.415 'checkout attr=auto aeol=crlf core.autocrlf=true core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_true_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 415 - checkout attr=auto aeol=crlf core.autocrlf=true core.eol=lf file=LF_nul +expecting success of 1400.101 'stdin update ref fails with bad old value': + echo "update $c $m does-not-exist" >stdin && + test_must_fail git update-ref --stdin err && + grep "fatal: update $c: invalid : does-not-exist" err && + test_must_fail git rev-parse --verify -q $c -expecting success of 0027.416 'ls-files --eol attr=-text aeol= core.autocrlf=false core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 416 - ls-files --eol attr=-text aeol= core.autocrlf=false core.eol=lf +fatal: update refs/heads/c: invalid : does-not-exist +ok 101 - stdin update ref fails with bad old value -expecting success of 0027.417 'checkout attr=-text aeol= core.autocrlf=false core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_false_attr_-text_ LF crlf_false_attr__LF.txt - -ok 417 - checkout attr=-text aeol= core.autocrlf=false core.eol=lf file=LF +expecting success of 1400.102 'stdin create ref fails with bad new value': + echo "create $c does-not-exist" >stdin && + test_must_fail git update-ref --stdin err && + grep "fatal: create $c: invalid : does-not-exist" err && + test_must_fail git rev-parse --verify -q $c -expecting success of 0027.418 'checkout attr=-text aeol= core.autocrlf=false core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_false_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 418 - checkout attr=-text aeol= core.autocrlf=false core.eol=lf file=CRLF +fatal: create refs/heads/c: invalid : does-not-exist +ok 102 - stdin create ref fails with bad new value -expecting success of 0027.419 'checkout attr=-text aeol= core.autocrlf=false core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_false_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 419 - checkout attr=-text aeol= core.autocrlf=false core.eol=lf file=CRLF_mix_LF +expecting success of 1400.103 'stdin create ref fails with zero new value': + echo "create $c " >stdin && + test_must_fail git update-ref --stdin err && + grep "fatal: create $c: zero " err && + test_must_fail git rev-parse --verify -q $c -expecting success of 0027.420 'checkout attr=-text aeol= core.autocrlf=false core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_false_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 420 - checkout attr=-text aeol= core.autocrlf=false core.eol=lf file=LF_mix_CR +fatal: create refs/heads/c: zero +ok 103 - stdin create ref fails with zero new value -expecting success of 0027.421 'checkout attr=-text aeol= core.autocrlf=false core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_false_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 421 - checkout attr=-text aeol= core.autocrlf=false core.eol=lf file=LF_nul +expecting success of 1400.104 'stdin update ref works with right old value': + echo "update $b $m~1 $m" >stdin && + git update-ref --stdin expect && + git rev-parse $b >actual && + test_cmp expect actual -expecting success of 0027.422 'ls-files --eol attr=-text aeol=lf core.autocrlf=false core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 422 - ls-files --eol attr=-text aeol=lf core.autocrlf=false core.eol=lf +ok 104 - stdin update ref works with right old value -expecting success of 0027.423 'checkout attr=-text aeol=lf core.autocrlf=false core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_false_attr_-text_ LF crlf_false_attr__LF.txt - -ok 423 - checkout attr=-text aeol=lf core.autocrlf=false core.eol=lf file=LF +expecting success of 1400.105 'stdin delete ref fails with wrong old value': + echo "delete $a $m~1" >stdin && + test_must_fail git update-ref --stdin err && + grep "fatal: cannot lock ref '$a'" err && + git rev-parse $m >expect && + git rev-parse $a >actual && + test_cmp expect actual -expecting success of 0027.424 'checkout attr=-text aeol=lf core.autocrlf=false core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_false_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 424 - checkout attr=-text aeol=lf core.autocrlf=false core.eol=lf file=CRLF +fatal: cannot lock ref 'refs/heads/a': is at 536da9bc9e8e6d0baf01b41cf3cc49bb819559e6 but expected 29d1ccdc7ee9fe415beb2415b6206b8a20f76b1c +ok 105 - stdin delete ref fails with wrong old value -expecting success of 0027.425 'checkout attr=-text aeol=lf core.autocrlf=false core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_false_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 425 - checkout attr=-text aeol=lf core.autocrlf=false core.eol=lf file=CRLF_mix_LF +expecting success of 1400.106 'stdin delete ref fails with zero old value': + echo "delete $a " >stdin && + test_must_fail git update-ref --stdin err && + grep "fatal: delete $a: zero " err && + git rev-parse $m >expect && + git rev-parse $a >actual && + test_cmp expect actual -expecting success of 0027.426 'checkout attr=-text aeol=lf core.autocrlf=false core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_false_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 426 - checkout attr=-text aeol=lf core.autocrlf=false core.eol=lf file=LF_mix_CR +fatal: delete refs/heads/a: zero +ok 106 - stdin delete ref fails with zero old value -expecting success of 0027.427 'checkout attr=-text aeol=lf core.autocrlf=false core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_false_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 427 - checkout attr=-text aeol=lf core.autocrlf=false core.eol=lf file=LF_nul +expecting success of 1400.107 'stdin update symref works option no-deref': + git symbolic-ref TESTSYMREF $b && + cat >stdin <<-EOF && + option no-deref + update TESTSYMREF $a $b + EOF + git update-ref --stdin expect && + git rev-parse $a >actual && + test_cmp expect actual && + git rev-parse $m~1 >expect && + git rev-parse $b >actual && + test_cmp expect actual -expecting success of 0027.428 'ls-files --eol attr=-text aeol=crlf core.autocrlf=false core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 428 - ls-files --eol attr=-text aeol=crlf core.autocrlf=false core.eol=lf +ok 107 - stdin update symref works option no-deref -expecting success of 0027.429 'checkout attr=-text aeol=crlf core.autocrlf=false core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_false_attr_-text_ LF crlf_false_attr__LF.txt - -ok 429 - checkout attr=-text aeol=crlf core.autocrlf=false core.eol=lf file=LF +expecting success of 1400.108 'stdin delete symref works option no-deref': + git symbolic-ref TESTSYMREF $b && + cat >stdin <<-EOF && + option no-deref + delete TESTSYMREF $b + EOF + git update-ref --stdin expect && + git rev-parse $b >actual && + test_cmp expect actual -expecting success of 0027.430 'checkout attr=-text aeol=crlf core.autocrlf=false core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_false_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 430 - checkout attr=-text aeol=crlf core.autocrlf=false core.eol=lf file=CRLF +ok 108 - stdin delete symref works option no-deref -expecting success of 0027.431 'checkout attr=-text aeol=crlf core.autocrlf=false core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_false_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 431 - checkout attr=-text aeol=crlf core.autocrlf=false core.eol=lf file=CRLF_mix_LF +expecting success of 1400.109 'stdin update symref works flag --no-deref': + git symbolic-ref TESTSYMREFONE $b && + git symbolic-ref TESTSYMREFTWO $b && + cat >stdin <<-EOF && + update TESTSYMREFONE $a $b + update TESTSYMREFTWO $a $b + EOF + git update-ref --no-deref --stdin expect && + git rev-parse $a $a >actual && + test_cmp expect actual && + git rev-parse $m~1 >expect && + git rev-parse $b >actual && + test_cmp expect actual -expecting success of 0027.432 'checkout attr=-text aeol=crlf core.autocrlf=false core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_false_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 432 - checkout attr=-text aeol=crlf core.autocrlf=false core.eol=lf file=LF_mix_CR +ok 109 - stdin update symref works flag --no-deref -expecting success of 0027.433 'checkout attr=-text aeol=crlf core.autocrlf=false core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_false_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 433 - checkout attr=-text aeol=crlf core.autocrlf=false core.eol=lf file=LF_nul +expecting success of 1400.110 'stdin delete symref works flag --no-deref': + git symbolic-ref TESTSYMREFONE $b && + git symbolic-ref TESTSYMREFTWO $b && + cat >stdin <<-EOF && + delete TESTSYMREFONE $b + delete TESTSYMREFTWO $b + EOF + git update-ref --no-deref --stdin expect && + git rev-parse $b >actual && + test_cmp expect actual -expecting success of 0027.434 'ls-files --eol attr=text aeol=lf core.autocrlf=false core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 434 - ls-files --eol attr=text aeol=lf core.autocrlf=false core.eol=lf +ok 110 - stdin delete symref works flag --no-deref -expecting success of 0027.435 'checkout attr=text aeol=lf core.autocrlf=false core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_false_attr_text_ LF crlf_false_attr__LF.txt - -ok 435 - checkout attr=text aeol=lf core.autocrlf=false core.eol=lf file=LF +expecting success of 1400.111 'stdin delete ref works with right old value': + echo "delete $b $m~1" >stdin && + git update-ref --stdin stdin <<-EOF && + update $a $m + create $b $m + verify $c + EOF + git update-ref --stdin expect && + git rev-parse $a >actual && + test_cmp expect actual && + git rev-parse $b >actual && + test_cmp expect actual && + test_must_fail git rev-parse --verify -q $c -expecting success of 0027.438 'checkout attr=text aeol=lf core.autocrlf=false core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_false_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 438 - checkout attr=text aeol=lf core.autocrlf=false core.eol=lf file=LF_mix_CR +ok 112 - stdin update/create/verify combination works -expecting success of 0027.439 'checkout attr=text aeol=lf core.autocrlf=false core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_false_attr_text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 439 - checkout attr=text aeol=lf core.autocrlf=false core.eol=lf file=LF_nul +expecting success of 1400.113 'stdin verify succeeds for correct value': + git rev-parse $m >expect && + echo "verify $m $m" >stdin && + git update-ref --stdin actual && + test_cmp expect actual -expecting success of 0027.440 'ls-files --eol attr=text aeol=crlf core.autocrlf=false core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 440 - ls-files --eol attr=text aeol=crlf core.autocrlf=false core.eol=lf +ok 113 - stdin verify succeeds for correct value -expecting success of 0027.441 'checkout attr=text aeol=crlf core.autocrlf=false core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_false_attr_text_ CRLF crlf_false_attr__LF.txt - -ok 441 - checkout attr=text aeol=crlf core.autocrlf=false core.eol=lf file=LF +expecting success of 1400.114 'stdin verify succeeds for missing reference': + echo "verify refs/heads/missing $Z" >stdin && + git update-ref --stdin stdin && + git update-ref --stdin expect && + echo "verify $m $m~1" >stdin && + test_must_fail git update-ref --stdin actual && + test_cmp expect actual -expecting success of 0027.446 'ls-files --eol attr=auto aeol=lf core.autocrlf=false core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 446 - ls-files --eol attr=auto aeol=lf core.autocrlf=false core.eol=lf +fatal: cannot lock ref 'refs/heads/main': is at 536da9bc9e8e6d0baf01b41cf3cc49bb819559e6 but expected 29d1ccdc7ee9fe415beb2415b6206b8a20f76b1c +ok 116 - stdin verify fails for wrong value -expecting success of 0027.447 'checkout attr=auto aeol=lf core.autocrlf=false core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_false_attr_auto_ LF crlf_false_attr__LF.txt - -ok 447 - checkout attr=auto aeol=lf core.autocrlf=false core.eol=lf file=LF +expecting success of 1400.117 'stdin verify fails for mistaken null value': + git rev-parse $m >expect && + echo "verify $m $Z" >stdin && + test_must_fail git update-ref --stdin actual && + test_cmp expect actual -expecting success of 0027.448 'checkout attr=auto aeol=lf core.autocrlf=false core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_false_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 448 - checkout attr=auto aeol=lf core.autocrlf=false core.eol=lf file=CRLF +fatal: cannot lock ref 'refs/heads/main': reference already exists +ok 117 - stdin verify fails for mistaken null value -expecting success of 0027.449 'checkout attr=auto aeol=lf core.autocrlf=false core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_false_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 449 - checkout attr=auto aeol=lf core.autocrlf=false core.eol=lf file=CRLF_mix_LF +expecting success of 1400.118 'stdin verify fails for mistaken empty value': + M=$(git rev-parse $m) && + test_when_finished "git update-ref $m $M" && + git rev-parse $m >expect && + echo "verify $m" >stdin && + test_must_fail git update-ref --stdin actual && + test_cmp expect actual -expecting success of 0027.450 'checkout attr=auto aeol=lf core.autocrlf=false core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_false_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 450 - checkout attr=auto aeol=lf core.autocrlf=false core.eol=lf file=LF_mix_CR +fatal: cannot lock ref 'refs/heads/main': reference already exists +ok 118 - stdin verify fails for mistaken empty value -expecting success of 0027.451 'checkout attr=auto aeol=lf core.autocrlf=false core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_false_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 451 - checkout attr=auto aeol=lf core.autocrlf=false core.eol=lf file=LF_nul +expecting success of 1400.119 'stdin update refs works with identity updates': + cat >stdin <<-EOF && + update $a $m $m + update $b $m $m + update $c $Z $E + EOF + git update-ref --stdin expect && + git rev-parse $a >actual && + test_cmp expect actual && + git rev-parse $b >actual && + test_cmp expect actual && + test_must_fail git rev-parse --verify -q $c -expecting success of 0027.452 'ls-files --eol attr=auto aeol=crlf core.autocrlf=false core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 452 - ls-files --eol attr=auto aeol=crlf core.autocrlf=false core.eol=lf +ok 119 - stdin update refs works with identity updates -expecting success of 0027.453 'checkout attr=auto aeol=crlf core.autocrlf=false core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_false_attr_auto_ CRLF crlf_false_attr__LF.txt - -ok 453 - checkout attr=auto aeol=crlf core.autocrlf=false core.eol=lf file=LF +expecting success of 1400.120 'stdin update refs fails with wrong old value': + git update-ref $c $m && + cat >stdin <<-EOF && + update $a $m $m + update $b $m $m + update $c + EOF + test_must_fail git update-ref --stdin err && + grep "fatal: cannot lock ref '$c'" err && + git rev-parse $m >expect && + git rev-parse $a >actual && + test_cmp expect actual && + git rev-parse $b >actual && + test_cmp expect actual && + git rev-parse $c >actual && + test_cmp expect actual -expecting success of 0027.454 'checkout attr=auto aeol=crlf core.autocrlf=false core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_false_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 454 - checkout attr=auto aeol=crlf core.autocrlf=false core.eol=lf file=CRLF +fatal: cannot lock ref 'refs/heads/c': reference already exists +ok 120 - stdin update refs fails with wrong old value -expecting success of 0027.455 'checkout attr=auto aeol=crlf core.autocrlf=false core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_false_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 455 - checkout attr=auto aeol=crlf core.autocrlf=false core.eol=lf file=CRLF_mix_LF +expecting success of 1400.121 'stdin delete refs works with packed and loose refs': + git pack-refs --all && + git update-ref $c $m~1 && + cat >stdin <<-EOF && + delete $a $m + update $b $Z $m + update $c $E $m~1 + EOF + git update-ref --stdin stdin && + git update-ref -z --stdin expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 458 - ls-files --eol attr=-text aeol= core.autocrlf=input core.eol=lf +536da9bc9e8e6d0baf01b41cf3cc49bb819559e6 +ok 122 - stdin -z works on empty input -expecting success of 0027.459 'checkout attr=-text aeol= core.autocrlf=input core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_input_attr_-text_ LF crlf_false_attr__LF.txt - -ok 459 - checkout attr=-text aeol= core.autocrlf=input core.eol=lf file=LF +expecting success of 1400.123 'stdin -z fails on empty line': + echo "" >stdin && + test_must_fail git update-ref -z --stdin err && + grep "fatal: whitespace before command: " err -expecting success of 0027.460 'checkout attr=-text aeol= core.autocrlf=input core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_input_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 460 - checkout attr=-text aeol= core.autocrlf=input core.eol=lf file=CRLF +fatal: whitespace before command: +ok 123 - stdin -z fails on empty line -expecting success of 0027.461 'checkout attr=-text aeol= core.autocrlf=input core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_input_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 461 - checkout attr=-text aeol= core.autocrlf=input core.eol=lf file=CRLF_mix_LF +expecting success of 1400.124 'stdin -z fails on empty command': + printf $F "" >stdin && + test_must_fail git update-ref -z --stdin err && + grep "fatal: empty command in input" err -expecting success of 0027.462 'checkout attr=-text aeol= core.autocrlf=input core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_input_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 462 - checkout attr=-text aeol= core.autocrlf=input core.eol=lf file=LF_mix_CR +fatal: empty command in input +ok 124 - stdin -z fails on empty command -expecting success of 0027.463 'checkout attr=-text aeol= core.autocrlf=input core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_input_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 463 - checkout attr=-text aeol= core.autocrlf=input core.eol=lf file=LF_nul +expecting success of 1400.125 'stdin -z fails on only whitespace': + printf $F " " >stdin && + test_must_fail git update-ref -z --stdin err && + grep "fatal: whitespace before command: " err -expecting success of 0027.464 'ls-files --eol attr=-text aeol=lf core.autocrlf=input core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 464 - ls-files --eol attr=-text aeol=lf core.autocrlf=input core.eol=lf +fatal: whitespace before command: +ok 125 - stdin -z fails on only whitespace -expecting success of 0027.465 'checkout attr=-text aeol=lf core.autocrlf=input core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_input_attr_-text_ LF crlf_false_attr__LF.txt - -ok 465 - checkout attr=-text aeol=lf core.autocrlf=input core.eol=lf file=LF +expecting success of 1400.126 'stdin -z fails on leading whitespace': + printf $F " create $a" "$m" >stdin && + test_must_fail git update-ref -z --stdin err && + grep "fatal: whitespace before command: create $a" err -expecting success of 0027.466 'checkout attr=-text aeol=lf core.autocrlf=input core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_input_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 466 - checkout attr=-text aeol=lf core.autocrlf=input core.eol=lf file=CRLF +fatal: whitespace before command: create refs/heads/a +ok 126 - stdin -z fails on leading whitespace -expecting success of 0027.467 'checkout attr=-text aeol=lf core.autocrlf=input core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_input_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 467 - checkout attr=-text aeol=lf core.autocrlf=input core.eol=lf file=CRLF_mix_LF +expecting success of 1400.127 'stdin -z fails on unknown command': + printf $F "unknown $a" >stdin && + test_must_fail git update-ref -z --stdin err && + grep "fatal: unknown command: unknown $a" err -expecting success of 0027.468 'checkout attr=-text aeol=lf core.autocrlf=input core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_input_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 468 - checkout attr=-text aeol=lf core.autocrlf=input core.eol=lf file=LF_mix_CR +fatal: unknown command: unknown refs/heads/a +ok 127 - stdin -z fails on unknown command -expecting success of 0027.469 'checkout attr=-text aeol=lf core.autocrlf=input core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_input_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 469 - checkout attr=-text aeol=lf core.autocrlf=input core.eol=lf file=LF_nul +expecting success of 1400.128 'stdin -z fails create with no ref': + printf $F "create " >stdin && + test_must_fail git update-ref -z --stdin err && + grep "fatal: create: missing " err -expecting success of 0027.470 'ls-files --eol attr=-text aeol=crlf core.autocrlf=input core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 470 - ls-files --eol attr=-text aeol=crlf core.autocrlf=input core.eol=lf +fatal: create: missing +ok 128 - stdin -z fails create with no ref -expecting success of 0027.471 'checkout attr=-text aeol=crlf core.autocrlf=input core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_input_attr_-text_ LF crlf_false_attr__LF.txt - -ok 471 - checkout attr=-text aeol=crlf core.autocrlf=input core.eol=lf file=LF +expecting success of 1400.129 'stdin -z fails create with no new value': + printf $F "create $a" >stdin && + test_must_fail git update-ref -z --stdin err && + grep "fatal: create $a: unexpected end of input when reading " err -expecting success of 0027.472 'checkout attr=-text aeol=crlf core.autocrlf=input core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_input_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 472 - checkout attr=-text aeol=crlf core.autocrlf=input core.eol=lf file=CRLF +fatal: create refs/heads/a: unexpected end of input when reading +ok 129 - stdin -z fails create with no new value -expecting success of 0027.473 'checkout attr=-text aeol=crlf core.autocrlf=input core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_input_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 473 - checkout attr=-text aeol=crlf core.autocrlf=input core.eol=lf file=CRLF_mix_LF +expecting success of 1400.130 'stdin -z fails create with too many arguments': + printf $F "create $a" "$m" "$m" >stdin && + test_must_fail git update-ref -z --stdin err && + grep "fatal: unknown command: $m" err -expecting success of 0027.474 'checkout attr=-text aeol=crlf core.autocrlf=input core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_input_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 474 - checkout attr=-text aeol=crlf core.autocrlf=input core.eol=lf file=LF_mix_CR +fatal: unknown command: refs/heads/main +ok 130 - stdin -z fails create with too many arguments -expecting success of 0027.475 'checkout attr=-text aeol=crlf core.autocrlf=input core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_input_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 475 - checkout attr=-text aeol=crlf core.autocrlf=input core.eol=lf file=LF_nul +expecting success of 1400.131 'stdin -z fails update with no ref': + printf $F "update " >stdin && + test_must_fail git update-ref -z --stdin err && + grep "fatal: update: missing " err -expecting success of 0027.476 'ls-files --eol attr=text aeol=lf core.autocrlf=input core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 476 - ls-files --eol attr=text aeol=lf core.autocrlf=input core.eol=lf +fatal: update: missing +ok 131 - stdin -z fails update with no ref -expecting success of 0027.477 'checkout attr=text aeol=lf core.autocrlf=input core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_input_attr_text_ LF crlf_false_attr__LF.txt - -ok 477 - checkout attr=text aeol=lf core.autocrlf=input core.eol=lf file=LF +expecting success of 1400.132 'stdin -z fails update with too few args': + printf $F "update $a" "$m" >stdin && + test_must_fail git update-ref -z --stdin err && + grep "fatal: update $a: unexpected end of input when reading " err -expecting success of 0027.478 'checkout attr=text aeol=lf core.autocrlf=input core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 478 - checkout attr=text aeol=lf core.autocrlf=input core.eol=lf file=CRLF +fatal: update refs/heads/a: unexpected end of input when reading +ok 132 - stdin -z fails update with too few args -expecting success of 0027.479 'checkout attr=text aeol=lf core.autocrlf=input core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_input_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 479 - checkout attr=text aeol=lf core.autocrlf=input core.eol=lf file=CRLF_mix_LF +expecting success of 1400.133 'stdin -z emits warning with empty new value': + git update-ref $a $m && + printf $F "update $a" "" "" >stdin && + git update-ref -z --stdin err && + grep "warning: update $a: missing , treating as zero" err && + test_must_fail git rev-parse --verify -q $a -expecting success of 0027.480 'checkout attr=text aeol=lf core.autocrlf=input core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_input_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 480 - checkout attr=text aeol=lf core.autocrlf=input core.eol=lf file=LF_mix_CR +warning: update refs/heads/a: missing , treating as zero +ok 133 - stdin -z emits warning with empty new value -expecting success of 0027.481 'checkout attr=text aeol=lf core.autocrlf=input core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_input_attr_text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 481 - checkout attr=text aeol=lf core.autocrlf=input core.eol=lf file=LF_nul +expecting success of 1400.134 'stdin -z fails update with no new value': + printf $F "update $a" >stdin && + test_must_fail git update-ref -z --stdin err && + grep "fatal: update $a: unexpected end of input when reading " err -expecting success of 0027.482 'ls-files --eol attr=text aeol=crlf core.autocrlf=input core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 482 - ls-files --eol attr=text aeol=crlf core.autocrlf=input core.eol=lf +fatal: update refs/heads/a: unexpected end of input when reading +ok 134 - stdin -z fails update with no new value -expecting success of 0027.483 'checkout attr=text aeol=crlf core.autocrlf=input core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_input_attr_text_ CRLF crlf_false_attr__LF.txt - -ok 483 - checkout attr=text aeol=crlf core.autocrlf=input core.eol=lf file=LF +expecting success of 1400.135 'stdin -z fails update with no old value': + printf $F "update $a" "$m" >stdin && + test_must_fail git update-ref -z --stdin err && + grep "fatal: update $a: unexpected end of input when reading " err -expecting success of 0027.484 'checkout attr=text aeol=crlf core.autocrlf=input core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 484 - checkout attr=text aeol=crlf core.autocrlf=input core.eol=lf file=CRLF +fatal: update refs/heads/a: unexpected end of input when reading +ok 135 - stdin -z fails update with no old value -expecting success of 0027.485 'checkout attr=text aeol=crlf core.autocrlf=input core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt - -ok 485 - checkout attr=text aeol=crlf core.autocrlf=input core.eol=lf file=CRLF_mix_LF +expecting success of 1400.136 'stdin -z fails update with too many arguments': + printf $F "update $a" "$m" "$m" "$m" >stdin && + test_must_fail git update-ref -z --stdin err && + grep "fatal: unknown command: $m" err -expecting success of 0027.486 'checkout attr=text aeol=crlf core.autocrlf=input core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_input_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 486 - checkout attr=text aeol=crlf core.autocrlf=input core.eol=lf file=LF_mix_CR +fatal: unknown command: refs/heads/main +ok 136 - stdin -z fails update with too many arguments -expecting success of 0027.487 'checkout attr=text aeol=crlf core.autocrlf=input core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_input_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt - -ok 487 - checkout attr=text aeol=crlf core.autocrlf=input core.eol=lf file=LF_nul +expecting success of 1400.137 'stdin -z fails delete with no ref': + printf $F "delete " >stdin && + test_must_fail git update-ref -z --stdin err && + grep "fatal: delete: missing " err -expecting success of 0027.488 'ls-files --eol attr=auto aeol=lf core.autocrlf=input core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 488 - ls-files --eol attr=auto aeol=lf core.autocrlf=input core.eol=lf +fatal: delete: missing +ok 137 - stdin -z fails delete with no ref -expecting success of 0027.489 'checkout attr=auto aeol=lf core.autocrlf=input core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_input_attr_auto_ LF crlf_false_attr__LF.txt - -ok 489 - checkout attr=auto aeol=lf core.autocrlf=input core.eol=lf file=LF +expecting success of 1400.138 'stdin -z fails delete with no old value': + printf $F "delete $a" >stdin && + test_must_fail git update-ref -z --stdin err && + grep "fatal: delete $a: unexpected end of input when reading " err -expecting success of 0027.490 'checkout attr=auto aeol=lf core.autocrlf=input core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_input_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 490 - checkout attr=auto aeol=lf core.autocrlf=input core.eol=lf file=CRLF +fatal: delete refs/heads/a: unexpected end of input when reading +ok 138 - stdin -z fails delete with no old value -expecting success of 0027.491 'checkout attr=auto aeol=lf core.autocrlf=input core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_input_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 491 - checkout attr=auto aeol=lf core.autocrlf=input core.eol=lf file=CRLF_mix_LF +expecting success of 1400.139 'stdin -z fails delete with too many arguments': + printf $F "delete $a" "$m" "$m" >stdin && + test_must_fail git update-ref -z --stdin err && + grep "fatal: unknown command: $m" err -expecting success of 0027.492 'checkout attr=auto aeol=lf core.autocrlf=input core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_input_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 492 - checkout attr=auto aeol=lf core.autocrlf=input core.eol=lf file=LF_mix_CR +fatal: unknown command: refs/heads/main +ok 139 - stdin -z fails delete with too many arguments -expecting success of 0027.493 'checkout attr=auto aeol=lf core.autocrlf=input core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_input_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 493 - checkout attr=auto aeol=lf core.autocrlf=input core.eol=lf file=LF_nul +expecting success of 1400.140 'stdin -z fails verify with too many arguments': + printf $F "verify $a" "$m" "$m" >stdin && + test_must_fail git update-ref -z --stdin err && + grep "fatal: unknown command: $m" err -expecting success of 0027.494 'ls-files --eol attr=auto aeol=crlf core.autocrlf=input core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 494 - ls-files --eol attr=auto aeol=crlf core.autocrlf=input core.eol=lf +fatal: unknown command: refs/heads/main +ok 140 - stdin -z fails verify with too many arguments -expecting success of 0027.495 'checkout attr=auto aeol=crlf core.autocrlf=input core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_input_attr_auto_ CRLF crlf_false_attr__LF.txt - -ok 495 - checkout attr=auto aeol=crlf core.autocrlf=input core.eol=lf file=LF +expecting success of 1400.141 'stdin -z fails verify with no old value': + printf $F "verify $a" >stdin && + test_must_fail git update-ref -z --stdin err && + grep "fatal: verify $a: unexpected end of input when reading " err -expecting success of 0027.496 'checkout attr=auto aeol=crlf core.autocrlf=input core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_input_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 496 - checkout attr=auto aeol=crlf core.autocrlf=input core.eol=lf file=CRLF +fatal: verify refs/heads/a: unexpected end of input when reading +ok 141 - stdin -z fails verify with no old value -expecting success of 0027.497 'checkout attr=auto aeol=crlf core.autocrlf=input core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_input_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 497 - checkout attr=auto aeol=crlf core.autocrlf=input core.eol=lf file=CRLF_mix_LF +expecting success of 1400.142 'stdin -z fails option with unknown name': + printf $F "option unknown" >stdin && + test_must_fail git update-ref -z --stdin err && + grep "fatal: option unknown: unknown" err -expecting success of 0027.498 'checkout attr=auto aeol=crlf core.autocrlf=input core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_input_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 498 - checkout attr=auto aeol=crlf core.autocrlf=input core.eol=lf file=LF_mix_CR +fatal: option unknown: unknown +ok 142 - stdin -z fails option with unknown name -expecting success of 0027.499 'checkout attr=auto aeol=crlf core.autocrlf=input core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_input_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 499 - checkout attr=auto aeol=crlf core.autocrlf=input core.eol=lf file=LF_nul +expecting success of 1400.143 'stdin -z fails with duplicate refs': + printf $F "create $a" "$m" "create $b" "$m" "create $a" "$m" >stdin && + test_must_fail git update-ref -z --stdin err && + test_i18ngrep "fatal: multiple updates for ref '$a' not allowed" err -expecting success of 0027.500 'ls-files --eol attr= aeol= core.autocrlf=false core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 500 - ls-files --eol attr= aeol= core.autocrlf=false core.eol=lf +fatal: multiple updates for ref 'refs/heads/a' not allowed +ok 143 - stdin -z fails with duplicate refs -expecting success of 0027.501 'checkout attr= aeol= core.autocrlf=false core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_false_attr__ LF crlf_false_attr__LF.txt - -ok 501 - checkout attr= aeol= core.autocrlf=false core.eol=lf file=LF +expecting success of 1400.144 'stdin -z create ref works': + printf $F "create $a" "$m" >stdin && + git update-ref -z --stdin expect && + git rev-parse $a >actual && + test_cmp expect actual -expecting success of 0027.502 'checkout attr= aeol= core.autocrlf=false core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_false_attr__ CRLF crlf_false_attr__CRLF.txt - -ok 502 - checkout attr= aeol= core.autocrlf=false core.eol=lf file=CRLF +ok 144 - stdin -z create ref works -expecting success of 0027.503 'checkout attr= aeol= core.autocrlf=false core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_false_attr__ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 503 - checkout attr= aeol= core.autocrlf=false core.eol=lf file=CRLF_mix_LF +expecting success of 1400.145 'stdin -z update ref creates with zero old value': + printf $F "update $b" "$m" "$Z" >stdin && + git update-ref -z --stdin expect && + git rev-parse $b >actual && + test_cmp expect actual && + git update-ref -d $b -expecting success of 0027.504 'checkout attr= aeol= core.autocrlf=false core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_false_attr__ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 504 - checkout attr= aeol= core.autocrlf=false core.eol=lf file=LF_mix_CR +ok 145 - stdin -z update ref creates with zero old value -expecting success of 0027.505 'checkout attr= aeol= core.autocrlf=false core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_false_attr__ LF_nul crlf_false_attr__LF_nul.txt - -ok 505 - checkout attr= aeol= core.autocrlf=false core.eol=lf file=LF_nul +expecting success of 1400.146 'stdin -z update ref creates with empty old value': + printf $F "update $b" "$m" "" >stdin && + git update-ref -z --stdin expect && + git rev-parse $b >actual && + test_cmp expect actual -expecting success of 0027.506 'ls-files --eol attr= aeol= core.autocrlf=true core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 506 - ls-files --eol attr= aeol= core.autocrlf=true core.eol=lf +ok 146 - stdin -z update ref creates with empty old value -expecting success of 0027.507 'checkout attr= aeol= core.autocrlf=true core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_true_attr__ CRLF crlf_false_attr__LF.txt - -ok 507 - checkout attr= aeol= core.autocrlf=true core.eol=lf file=LF +expecting success of 1400.147 'stdin -z create ref works with path with space to blob': + printf $F "create refs/blobs/pws" "$m:$pws" >stdin && + git update-ref -z --stdin expect && + git rev-parse refs/blobs/pws >actual && + test_cmp expect actual && + git update-ref -d refs/blobs/pws -expecting success of 0027.508 'checkout attr= aeol= core.autocrlf=true core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_true_attr__ CRLF crlf_false_attr__CRLF.txt - -ok 508 - checkout attr= aeol= core.autocrlf=true core.eol=lf file=CRLF +ok 147 - stdin -z create ref works with path with space to blob -expecting success of 0027.509 'checkout attr= aeol= core.autocrlf=true core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_true_attr__ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 509 - checkout attr= aeol= core.autocrlf=true core.eol=lf file=CRLF_mix_LF +expecting success of 1400.148 'stdin -z update ref fails with wrong old value': + printf $F "update $c" "$m" "$m~1" >stdin && + test_must_fail git update-ref -z --stdin err && + grep "fatal: cannot lock ref '$c'" err && + test_must_fail git rev-parse --verify -q $c -expecting success of 0027.510 'checkout attr= aeol= core.autocrlf=true core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_true_attr__ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 510 - checkout attr= aeol= core.autocrlf=true core.eol=lf file=LF_mix_CR +fatal: cannot lock ref 'refs/heads/c': unable to resolve reference 'refs/heads/c' +ok 148 - stdin -z update ref fails with wrong old value -expecting success of 0027.511 'checkout attr= aeol= core.autocrlf=true core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_true_attr__ LF_nul crlf_false_attr__LF_nul.txt - -ok 511 - checkout attr= aeol= core.autocrlf=true core.eol=lf file=LF_nul +expecting success of 1400.149 'stdin -z update ref fails with bad old value': + printf $F "update $c" "$m" "does-not-exist" >stdin && + test_must_fail git update-ref -z --stdin err && + grep "fatal: update $c: invalid : does-not-exist" err && + test_must_fail git rev-parse --verify -q $c -expecting success of 0027.512 'ls-files --eol attr=auto aeol= core.autocrlf=true core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 512 - ls-files --eol attr=auto aeol= core.autocrlf=true core.eol=lf +fatal: update refs/heads/c: invalid : does-not-exist +ok 149 - stdin -z update ref fails with bad old value -expecting success of 0027.513 'checkout attr=auto aeol= core.autocrlf=true core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_true_attr_auto_ CRLF crlf_false_attr__LF.txt - -ok 513 - checkout attr=auto aeol= core.autocrlf=true core.eol=lf file=LF +expecting success of 1400.150 'stdin -z create ref fails when ref exists': + git update-ref $c $m && + git rev-parse "$c" >expect && + printf $F "create $c" "$m~1" >stdin && + test_must_fail git update-ref -z --stdin err && + grep "fatal: cannot lock ref '$c'" err && + git rev-parse "$c" >actual && + test_cmp expect actual -expecting success of 0027.514 'checkout attr=auto aeol= core.autocrlf=true core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_true_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 514 - checkout attr=auto aeol= core.autocrlf=true core.eol=lf file=CRLF +fatal: cannot lock ref 'refs/heads/c': reference already exists +ok 150 - stdin -z create ref fails when ref exists -expecting success of 0027.515 'checkout attr=auto aeol= core.autocrlf=true core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_true_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 515 - checkout attr=auto aeol= core.autocrlf=true core.eol=lf file=CRLF_mix_LF +expecting success of 1400.151 'stdin -z create ref fails with bad new value': + git update-ref -d "$c" && + printf $F "create $c" "does-not-exist" >stdin && + test_must_fail git update-ref -z --stdin err && + grep "fatal: create $c: invalid : does-not-exist" err && + test_must_fail git rev-parse --verify -q $c -expecting success of 0027.516 'checkout attr=auto aeol= core.autocrlf=true core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_true_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 516 - checkout attr=auto aeol= core.autocrlf=true core.eol=lf file=LF_mix_CR +fatal: create refs/heads/c: invalid : does-not-exist +ok 151 - stdin -z create ref fails with bad new value -expecting success of 0027.517 'checkout attr=auto aeol= core.autocrlf=true core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_true_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 517 - checkout attr=auto aeol= core.autocrlf=true core.eol=lf file=LF_nul +expecting success of 1400.152 'stdin -z create ref fails with empty new value': + printf $F "create $c" "" >stdin && + test_must_fail git update-ref -z --stdin err && + grep "fatal: create $c: missing " err && + test_must_fail git rev-parse --verify -q $c -expecting success of 0027.518 'ls-files --eol attr=text aeol= core.autocrlf=true core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 518 - ls-files --eol attr=text aeol= core.autocrlf=true core.eol=lf +fatal: create refs/heads/c: missing +ok 152 - stdin -z create ref fails with empty new value -expecting success of 0027.519 'checkout attr=text aeol= core.autocrlf=true core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_true_attr_text_ CRLF crlf_false_attr__LF.txt - -ok 519 - checkout attr=text aeol= core.autocrlf=true core.eol=lf file=LF +expecting success of 1400.153 'stdin -z update ref works with right old value': + printf $F "update $b" "$m~1" "$m" >stdin && + git update-ref -z --stdin expect && + git rev-parse $b >actual && + test_cmp expect actual -expecting success of 0027.520 'checkout attr=text aeol= core.autocrlf=true core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 520 - checkout attr=text aeol= core.autocrlf=true core.eol=lf file=CRLF +ok 153 - stdin -z update ref works with right old value -expecting success of 0027.521 'checkout attr=text aeol= core.autocrlf=true core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt - -ok 521 - checkout attr=text aeol= core.autocrlf=true core.eol=lf file=CRLF_mix_LF +expecting success of 1400.154 'stdin -z delete ref fails with wrong old value': + printf $F "delete $a" "$m~1" >stdin && + test_must_fail git update-ref -z --stdin err && + grep "fatal: cannot lock ref '$a'" err && + git rev-parse $m >expect && + git rev-parse $a >actual && + test_cmp expect actual -expecting success of 0027.522 'checkout attr=text aeol= core.autocrlf=true core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_true_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 522 - checkout attr=text aeol= core.autocrlf=true core.eol=lf file=LF_mix_CR +fatal: cannot lock ref 'refs/heads/a': is at 536da9bc9e8e6d0baf01b41cf3cc49bb819559e6 but expected 29d1ccdc7ee9fe415beb2415b6206b8a20f76b1c +ok 154 - stdin -z delete ref fails with wrong old value -expecting success of 0027.523 'checkout attr=text aeol= core.autocrlf=true core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_true_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt - -ok 523 - checkout attr=text aeol= core.autocrlf=true core.eol=lf file=LF_nul +expecting success of 1400.155 'stdin -z delete ref fails with zero old value': + printf $F "delete $a" "$Z" >stdin && + test_must_fail git update-ref -z --stdin err && + grep "fatal: delete $a: zero " err && + git rev-parse $m >expect && + git rev-parse $a >actual && + test_cmp expect actual -expecting success of 0027.524 'ls-files --eol attr=text aeol= core.autocrlf=input core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 524 - ls-files --eol attr=text aeol= core.autocrlf=input core.eol=lf +fatal: delete refs/heads/a: zero +ok 155 - stdin -z delete ref fails with zero old value -expecting success of 0027.525 'checkout attr=text aeol= core.autocrlf=input core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_input_attr_text_ LF crlf_false_attr__LF.txt - -ok 525 - checkout attr=text aeol= core.autocrlf=input core.eol=lf file=LF +expecting success of 1400.156 'stdin -z update symref works option no-deref': + git symbolic-ref TESTSYMREF $b && + printf $F "option no-deref" "update TESTSYMREF" "$a" "$b" >stdin && + git update-ref -z --stdin expect && + git rev-parse $a >actual && + test_cmp expect actual && + git rev-parse $m~1 >expect && + git rev-parse $b >actual && + test_cmp expect actual -expecting success of 0027.526 'checkout attr=text aeol= core.autocrlf=input core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 526 - checkout attr=text aeol= core.autocrlf=input core.eol=lf file=CRLF +ok 156 - stdin -z update symref works option no-deref -expecting success of 0027.527 'checkout attr=text aeol= core.autocrlf=input core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_input_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 527 - checkout attr=text aeol= core.autocrlf=input core.eol=lf file=CRLF_mix_LF +expecting success of 1400.157 'stdin -z delete symref works option no-deref': + git symbolic-ref TESTSYMREF $b && + printf $F "option no-deref" "delete TESTSYMREF" "$b" >stdin && + git update-ref -z --stdin expect && + git rev-parse $b >actual && + test_cmp expect actual -expecting success of 0027.528 'checkout attr=text aeol= core.autocrlf=input core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_input_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 528 - checkout attr=text aeol= core.autocrlf=input core.eol=lf file=LF_mix_CR +ok 157 - stdin -z delete symref works option no-deref -expecting success of 0027.529 'checkout attr=text aeol= core.autocrlf=input core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_input_attr_text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 529 - checkout attr=text aeol= core.autocrlf=input core.eol=lf file=LF_nul +expecting success of 1400.158 'stdin -z delete ref works with right old value': + printf $F "delete $b" "$m~1" >stdin && + git update-ref -z --stdin expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 530 - ls-files --eol attr=auto aeol= core.autocrlf=input core.eol=lf +ok 158 - stdin -z delete ref works with right old value -expecting success of 0027.531 'checkout attr=auto aeol= core.autocrlf=input core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_input_attr_auto_ LF crlf_false_attr__LF.txt - -ok 531 - checkout attr=auto aeol= core.autocrlf=input core.eol=lf file=LF +expecting success of 1400.159 'stdin -z update/create/verify combination works': + printf $F "update $a" "$m" "" "create $b" "$m" "verify $c" "" >stdin && + git update-ref -z --stdin expect && + git rev-parse $a >actual && + test_cmp expect actual && + git rev-parse $b >actual && + test_cmp expect actual && + test_must_fail git rev-parse --verify -q $c -expecting success of 0027.532 'checkout attr=auto aeol= core.autocrlf=input core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_input_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 532 - checkout attr=auto aeol= core.autocrlf=input core.eol=lf file=CRLF +ok 159 - stdin -z update/create/verify combination works -expecting success of 0027.533 'checkout attr=auto aeol= core.autocrlf=input core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_input_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 533 - checkout attr=auto aeol= core.autocrlf=input core.eol=lf file=CRLF_mix_LF +expecting success of 1400.160 'stdin -z verify succeeds for correct value': + git rev-parse $m >expect && + printf $F "verify $m" "$m" >stdin && + git update-ref -z --stdin actual && + test_cmp expect actual -expecting success of 0027.534 'checkout attr=auto aeol= core.autocrlf=input core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_input_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 534 - checkout attr=auto aeol= core.autocrlf=input core.eol=lf file=LF_mix_CR +ok 160 - stdin -z verify succeeds for correct value -expecting success of 0027.535 'checkout attr=auto aeol= core.autocrlf=input core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_input_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 535 - checkout attr=auto aeol= core.autocrlf=input core.eol=lf file=LF_nul +expecting success of 1400.161 'stdin -z verify succeeds for missing reference': + printf $F "verify refs/heads/missing" "$Z" >stdin && + git update-ref -z --stdin expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 536 - ls-files --eol attr=-text aeol= core.autocrlf=true core.eol=crlf +ok 161 - stdin -z verify succeeds for missing reference -expecting success of 0027.537 'checkout attr=-text aeol= core.autocrlf=true core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_true_attr_-text_ LF crlf_false_attr__LF.txt - -ok 537 - checkout attr=-text aeol= core.autocrlf=true core.eol=crlf file=LF +expecting success of 1400.162 'stdin -z verify treats no value as missing': + printf $F "verify refs/heads/missing" "" >stdin && + git update-ref -z --stdin expect && + printf $F "verify $m" "$m~1" >stdin && + test_must_fail git update-ref -z --stdin actual && + test_cmp expect actual -expecting success of 0027.540 'checkout attr=-text aeol= core.autocrlf=true core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_true_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 540 - checkout attr=-text aeol= core.autocrlf=true core.eol=crlf file=LF_mix_CR +fatal: cannot lock ref 'refs/heads/main': is at 536da9bc9e8e6d0baf01b41cf3cc49bb819559e6 but expected 29d1ccdc7ee9fe415beb2415b6206b8a20f76b1c +ok 163 - stdin -z verify fails for wrong value -expecting success of 0027.541 'checkout attr=-text aeol= core.autocrlf=true core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_true_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 541 - checkout attr=-text aeol= core.autocrlf=true core.eol=crlf file=LF_nul +expecting success of 1400.164 'stdin -z verify fails for mistaken null value': + git rev-parse $m >expect && + printf $F "verify $m" "$Z" >stdin && + test_must_fail git update-ref -z --stdin actual && + test_cmp expect actual -expecting success of 0027.542 'ls-files --eol attr=-text aeol=lf core.autocrlf=true core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 542 - ls-files --eol attr=-text aeol=lf core.autocrlf=true core.eol=crlf +fatal: cannot lock ref 'refs/heads/main': reference already exists +ok 164 - stdin -z verify fails for mistaken null value -expecting success of 0027.543 'checkout attr=-text aeol=lf core.autocrlf=true core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_true_attr_-text_ LF crlf_false_attr__LF.txt - -ok 543 - checkout attr=-text aeol=lf core.autocrlf=true core.eol=crlf file=LF +expecting success of 1400.165 'stdin -z verify fails for mistaken empty value': + M=$(git rev-parse $m) && + test_when_finished "git update-ref $m $M" && + git rev-parse $m >expect && + printf $F "verify $m" "" >stdin && + test_must_fail git update-ref -z --stdin actual && + test_cmp expect actual -expecting success of 0027.544 'checkout attr=-text aeol=lf core.autocrlf=true core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_true_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 544 - checkout attr=-text aeol=lf core.autocrlf=true core.eol=crlf file=CRLF +fatal: cannot lock ref 'refs/heads/main': reference already exists +ok 165 - stdin -z verify fails for mistaken empty value -expecting success of 0027.545 'checkout attr=-text aeol=lf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_true_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 545 - checkout attr=-text aeol=lf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF +expecting success of 1400.166 'stdin -z update refs works with identity updates': + printf $F "update $a" "$m" "$m" "update $b" "$m" "$m" "update $c" "$Z" "" >stdin && + git update-ref -z --stdin expect && + git rev-parse $a >actual && + test_cmp expect actual && + git rev-parse $b >actual && + test_cmp expect actual && + test_must_fail git rev-parse --verify -q $c -expecting success of 0027.546 'checkout attr=-text aeol=lf core.autocrlf=true core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_true_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 546 - checkout attr=-text aeol=lf core.autocrlf=true core.eol=crlf file=LF_mix_CR +ok 166 - stdin -z update refs works with identity updates -expecting success of 0027.547 'checkout attr=-text aeol=lf core.autocrlf=true core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_true_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 547 - checkout attr=-text aeol=lf core.autocrlf=true core.eol=crlf file=LF_nul +expecting success of 1400.167 'stdin -z update refs fails with wrong old value': + git update-ref $c $m && + printf $F "update $a" "$m" "$m" "update $b" "$m" "$m" "update $c" "$m" "$Z" >stdin && + test_must_fail git update-ref -z --stdin err && + grep "fatal: cannot lock ref '$c'" err && + git rev-parse $m >expect && + git rev-parse $a >actual && + test_cmp expect actual && + git rev-parse $b >actual && + test_cmp expect actual && + git rev-parse $c >actual && + test_cmp expect actual -expecting success of 0027.548 'ls-files --eol attr=-text aeol=crlf core.autocrlf=true core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 548 - ls-files --eol attr=-text aeol=crlf core.autocrlf=true core.eol=crlf +fatal: cannot lock ref 'refs/heads/c': reference already exists +ok 167 - stdin -z update refs fails with wrong old value -expecting success of 0027.549 'checkout attr=-text aeol=crlf core.autocrlf=true core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_true_attr_-text_ LF crlf_false_attr__LF.txt - -ok 549 - checkout attr=-text aeol=crlf core.autocrlf=true core.eol=crlf file=LF +expecting success of 1400.168 'stdin -z delete refs works with packed and loose refs': + git pack-refs --all && + git update-ref $c $m~1 && + printf $F "delete $a" "$m" "update $b" "$Z" "$m" "update $c" "" "$m~1" >stdin && + git update-ref -z --stdin , treating as zero +ok 168 - stdin -z delete refs works with packed and loose refs -expecting success of 0027.551 'checkout attr=-text aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_true_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 551 - checkout attr=-text aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF +expecting success of 1400.169 'fails with duplicate HEAD update': + git branch target1 $A && + git checkout target1 && + cat >stdin <<-EOF && + update refs/heads/target1 $C + option no-deref + update HEAD $B + EOF + test_must_fail git update-ref --stdin err && + test_i18ngrep "fatal: multiple updates for 'HEAD' (including one via its referent .refs/heads/target1.) are not allowed" err && + echo "refs/heads/target1" >expect && + git symbolic-ref HEAD >actual && + test_cmp expect actual && + echo "$A" >expect && + git rev-parse refs/heads/target1 >actual && + test_cmp expect actual -expecting success of 0027.552 'checkout attr=-text aeol=crlf core.autocrlf=true core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_true_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 552 - checkout attr=-text aeol=crlf core.autocrlf=true core.eol=crlf file=LF_mix_CR +Switched to branch 'target1' +fatal: multiple updates for 'HEAD' (including one via its referent 'refs/heads/target1') are not allowed +ok 169 - fails with duplicate HEAD update -expecting success of 0027.553 'checkout attr=-text aeol=crlf core.autocrlf=true core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_true_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 553 - checkout attr=-text aeol=crlf core.autocrlf=true core.eol=crlf file=LF_nul +expecting success of 1400.170 'fails with duplicate ref update via symref': + git branch target2 $A && + git symbolic-ref refs/heads/symref2 refs/heads/target2 && + cat >stdin <<-EOF && + update refs/heads/target2 $C + update refs/heads/symref2 $B + EOF + test_must_fail git update-ref --stdin err && + test_i18ngrep "fatal: multiple updates for 'refs/heads/target2' (including one via symref .refs/heads/symref2.) are not allowed" err && + echo "refs/heads/target2" >expect && + git symbolic-ref refs/heads/symref2 >actual && + test_cmp expect actual && + echo "$A" >expect && + git rev-parse refs/heads/target2 >actual && + test_cmp expect actual -expecting success of 0027.554 'ls-files --eol attr=text aeol=lf core.autocrlf=true core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 554 - ls-files --eol attr=text aeol=lf core.autocrlf=true core.eol=crlf +fatal: multiple updates for 'refs/heads/target2' (including one via symref 'refs/heads/symref2') are not allowed +ok 170 - fails with duplicate ref update via symref -expecting success of 0027.555 'checkout attr=text aeol=lf core.autocrlf=true core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_true_attr_text_ LF crlf_false_attr__LF.txt - -ok 555 - checkout attr=text aeol=lf core.autocrlf=true core.eol=crlf file=LF +checking prerequisite: ULIMIT_FILE_DESCRIPTORS -expecting success of 0027.556 'checkout attr=text aeol=lf core.autocrlf=true core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 556 - checkout attr=text aeol=lf core.autocrlf=true core.eol=crlf file=CRLF +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-ULIMIT_FILE_DESCRIPTORS" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-ULIMIT_FILE_DESCRIPTORS" && + test_have_prereq !MINGW,!CYGWIN && + run_with_limited_open_files true -expecting success of 0027.557 'checkout attr=text aeol=lf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 557 - checkout attr=text aeol=lf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF +) +prerequisite ULIMIT_FILE_DESCRIPTORS ok +expecting success of 1400.171 'large transaction creating branches does not burst open file limit': +( + for i in $(test_seq 33) + do + echo "create refs/heads/$i HEAD" + done >large_input && + run_with_limited_open_files git update-ref --stdin large_input && + run_with_limited_open_files git update-ref --stdin expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 560 - ls-files --eol attr=text aeol=crlf core.autocrlf=true core.eol=crlf +ok 172 - large transaction deleting branches does not burst open file limit -expecting success of 0027.561 'checkout attr=text aeol=crlf core.autocrlf=true core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF crlf_false_attr__LF.txt - -ok 561 - checkout attr=text aeol=crlf core.autocrlf=true core.eol=crlf file=LF +expecting success of 1400.173 'handle per-worktree refs in refs/bisect': + git commit --allow-empty -m "initial commit" && + git worktree add -b branch worktree && + ( + cd worktree && + git commit --allow-empty -m "test commit" && + git for-each-ref >for-each-ref.out && + ! grep refs/bisect for-each-ref.out && + git update-ref refs/bisect/something HEAD && + git rev-parse refs/bisect/something >../worktree-head && + git for-each-ref | grep refs/bisect/something + ) && + git show-ref >actual && + ! grep refs/bisect actual && + test_must_fail git rev-parse refs/bisect/something && + git update-ref refs/bisect/something HEAD && + git rev-parse refs/bisect/something >main-head && + ! test_cmp main-head worktree-head -expecting success of 0027.562 'checkout attr=text aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 562 - checkout attr=text aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF +[target1 58a0522] initial commit + Author: A U Thor +Preparing worktree (new branch 'branch') +HEAD is now at 58a0522 initial commit +[branch b62e0cb] test commit + Author: A U Thor +b62e0cb4990da3244885da90fe7d493334cca9f5 commit refs/bisect/something +fatal: ambiguous argument 'refs/bisect/something': unknown revision or path not in the working tree. +Use '--' to separate paths from revisions, like this: +'git [...] -- [...]' +refs/bisect/something +--- main-head 2023-04-29 17:46:50.895432880 +0000 ++++ worktree-head 2023-04-29 17:46:50.699451483 +0000 +@@ -1 +1 @@ +-58a052250c09f010b95ad9bfe32f35d704eda1a0 ++b62e0cb4990da3244885da90fe7d493334cca9f5 +ok 173 - handle per-worktree refs in refs/bisect -expecting success of 0027.563 'checkout attr=text aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt - -ok 563 - checkout attr=text aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF +expecting success of 1400.174 'transaction handles empty commit': + cat >stdin <<-EOF && + start + prepare + commit + EOF + git update-ref --stdin actual && + printf "%s: ok\n" start prepare commit >expect && + test_cmp expect actual -expecting success of 0027.564 'checkout attr=text aeol=crlf core.autocrlf=true core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 564 - checkout attr=text aeol=crlf core.autocrlf=true core.eol=crlf file=LF_mix_CR +ok 174 - transaction handles empty commit -expecting success of 0027.565 'checkout attr=text aeol=crlf core.autocrlf=true core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt - -ok 565 - checkout attr=text aeol=crlf core.autocrlf=true core.eol=crlf file=LF_nul +expecting success of 1400.175 'transaction handles empty commit with missing prepare': + cat >stdin <<-EOF && + start + commit + EOF + git update-ref --stdin actual && + printf "%s: ok\n" start commit >expect && + test_cmp expect actual -expecting success of 0027.566 'ls-files --eol attr=auto aeol=lf core.autocrlf=true core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 566 - ls-files --eol attr=auto aeol=lf core.autocrlf=true core.eol=crlf +ok 175 - transaction handles empty commit with missing prepare -expecting success of 0027.567 'checkout attr=auto aeol=lf core.autocrlf=true core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_true_attr_auto_ LF crlf_false_attr__LF.txt - -ok 567 - checkout attr=auto aeol=lf core.autocrlf=true core.eol=crlf file=LF +expecting success of 1400.176 'transaction handles sole commit': + cat >stdin <<-EOF && + commit + EOF + git update-ref --stdin actual && + printf "%s: ok\n" commit >expect && + test_cmp expect actual -expecting success of 0027.568 'checkout attr=auto aeol=lf core.autocrlf=true core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_true_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 568 - checkout attr=auto aeol=lf core.autocrlf=true core.eol=crlf file=CRLF +ok 176 - transaction handles sole commit -expecting success of 0027.569 'checkout attr=auto aeol=lf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_true_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 569 - checkout attr=auto aeol=lf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF +expecting success of 1400.177 'transaction handles empty abort': + cat >stdin <<-EOF && + start + prepare + abort + EOF + git update-ref --stdin actual && + printf "%s: ok\n" start prepare abort >expect && + test_cmp expect actual -expecting success of 0027.570 'checkout attr=auto aeol=lf core.autocrlf=true core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_true_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 570 - checkout attr=auto aeol=lf core.autocrlf=true core.eol=crlf file=LF_mix_CR +ok 177 - transaction handles empty abort -expecting success of 0027.571 'checkout attr=auto aeol=lf core.autocrlf=true core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_true_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 571 - checkout attr=auto aeol=lf core.autocrlf=true core.eol=crlf file=LF_nul +expecting success of 1400.178 'transaction exits on multiple aborts': + cat >stdin <<-EOF && + abort + abort + EOF + test_must_fail git update-ref --stdin actual 2>err && + printf "%s: ok\n" abort >expect && + test_cmp expect actual && + grep "fatal: transaction is closed" err -expecting success of 0027.572 'ls-files --eol attr=auto aeol=crlf core.autocrlf=true core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 572 - ls-files --eol attr=auto aeol=crlf core.autocrlf=true core.eol=crlf +fatal: transaction is closed +ok 178 - transaction exits on multiple aborts -expecting success of 0027.573 'checkout attr=auto aeol=crlf core.autocrlf=true core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_true_attr_auto_ CRLF crlf_false_attr__LF.txt - -ok 573 - checkout attr=auto aeol=crlf core.autocrlf=true core.eol=crlf file=LF +expecting success of 1400.179 'transaction exits on start after prepare': + cat >stdin <<-EOF && + prepare + start + EOF + test_must_fail git update-ref --stdin err >actual && + printf "%s: ok\n" prepare >expect && + test_cmp expect actual && + grep "fatal: prepared transactions can only be closed" err -expecting success of 0027.574 'checkout attr=auto aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_true_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 574 - checkout attr=auto aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF +fatal: prepared transactions can only be closed +ok 179 - transaction exits on start after prepare -expecting success of 0027.575 'checkout attr=auto aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_true_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 575 - checkout attr=auto aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF +expecting success of 1400.180 'transaction handles empty abort with missing prepare': + cat >stdin <<-EOF && + start + abort + EOF + git update-ref --stdin actual && + printf "%s: ok\n" start abort >expect && + test_cmp expect actual -expecting success of 0027.576 'checkout attr=auto aeol=crlf core.autocrlf=true core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_true_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 576 - checkout attr=auto aeol=crlf core.autocrlf=true core.eol=crlf file=LF_mix_CR +ok 180 - transaction handles empty abort with missing prepare -expecting success of 0027.577 'checkout attr=auto aeol=crlf core.autocrlf=true core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_true_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 577 - checkout attr=auto aeol=crlf core.autocrlf=true core.eol=crlf file=LF_nul +expecting success of 1400.181 'transaction handles sole abort': + cat >stdin <<-EOF && + abort + EOF + git update-ref --stdin actual && + printf "%s: ok\n" abort >expect && + test_cmp expect actual -expecting success of 0027.578 'ls-files --eol attr=-text aeol= core.autocrlf=false core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 578 - ls-files --eol attr=-text aeol= core.autocrlf=false core.eol=crlf +ok 181 - transaction handles sole abort -expecting success of 0027.579 'checkout attr=-text aeol= core.autocrlf=false core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_false_attr_-text_ LF crlf_false_attr__LF.txt - -ok 579 - checkout attr=-text aeol= core.autocrlf=false core.eol=crlf file=LF +expecting success of 1400.182 'transaction can handle commit': + cat >stdin <<-EOF && + start + create $a HEAD + commit + EOF + git update-ref --stdin actual && + printf "%s: ok\n" start commit >expect && + test_cmp expect actual && + git rev-parse HEAD >expect && + git rev-parse $a >actual && + test_cmp expect actual -expecting success of 0027.580 'checkout attr=-text aeol= core.autocrlf=false core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_false_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 580 - checkout attr=-text aeol= core.autocrlf=false core.eol=crlf file=CRLF +ok 182 - transaction can handle commit -expecting success of 0027.581 'checkout attr=-text aeol= core.autocrlf=false core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_false_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 581 - checkout attr=-text aeol= core.autocrlf=false core.eol=crlf file=CRLF_mix_LF +expecting success of 1400.183 'transaction can handle abort': + cat >stdin <<-EOF && + start + create $b HEAD + abort + EOF + git update-ref --stdin actual && + printf "%s: ok\n" start abort >expect && + test_cmp expect actual && + test_must_fail git show-ref --verify -q $b -expecting success of 0027.582 'checkout attr=-text aeol= core.autocrlf=false core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_false_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 582 - checkout attr=-text aeol= core.autocrlf=false core.eol=crlf file=LF_mix_CR +ok 183 - transaction can handle abort -expecting success of 0027.583 'checkout attr=-text aeol= core.autocrlf=false core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_false_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 583 - checkout attr=-text aeol= core.autocrlf=false core.eol=crlf file=LF_nul +expecting success of 1400.184 'transaction aborts by default': + cat >stdin <<-EOF && + start + create $b HEAD + EOF + git update-ref --stdin actual && + printf "%s: ok\n" start >expect && + test_cmp expect actual && + test_must_fail git show-ref --verify -q $b -expecting success of 0027.584 'ls-files --eol attr=-text aeol=lf core.autocrlf=false core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 584 - ls-files --eol attr=-text aeol=lf core.autocrlf=false core.eol=crlf +ok 184 - transaction aborts by default -expecting success of 0027.585 'checkout attr=-text aeol=lf core.autocrlf=false core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_false_attr_-text_ LF crlf_false_attr__LF.txt - -ok 585 - checkout attr=-text aeol=lf core.autocrlf=false core.eol=crlf file=LF +expecting success of 1400.185 'transaction with prepare aborts by default': + cat >stdin <<-EOF && + start + create $b HEAD + prepare + EOF + git update-ref --stdin actual && + printf "%s: ok\n" start prepare >expect && + test_cmp expect actual && + test_must_fail git show-ref --verify -q $b -expecting success of 0027.586 'checkout attr=-text aeol=lf core.autocrlf=false core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_false_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 586 - checkout attr=-text aeol=lf core.autocrlf=false core.eol=crlf file=CRLF +ok 185 - transaction with prepare aborts by default -expecting success of 0027.587 'checkout attr=-text aeol=lf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_false_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 587 - checkout attr=-text aeol=lf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF +expecting success of 1400.186 'transaction can commit multiple times': + cat >stdin <<-EOF && + start + create refs/heads/branch-1 $A + commit + start + create refs/heads/branch-2 $B + commit + EOF + git update-ref --stdin actual && + printf "%s: ok\n" start commit start commit >expect && + test_cmp expect actual && + echo "$A" >expect && + git rev-parse refs/heads/branch-1 >actual && + test_cmp expect actual && + echo "$B" >expect && + git rev-parse refs/heads/branch-2 >actual && + test_cmp expect actual -expecting success of 0027.588 'checkout attr=-text aeol=lf core.autocrlf=false core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_false_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 588 - checkout attr=-text aeol=lf core.autocrlf=false core.eol=crlf file=LF_mix_CR +ok 186 - transaction can commit multiple times -expecting success of 0027.589 'checkout attr=-text aeol=lf core.autocrlf=false core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_false_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 589 - checkout attr=-text aeol=lf core.autocrlf=false core.eol=crlf file=LF_nul +expecting success of 1400.187 'transaction can create and delete': + cat >stdin <<-EOF && + start + create refs/heads/create-and-delete $A + commit + start + delete refs/heads/create-and-delete $A + commit + EOF + git update-ref --stdin actual && + printf "%s: ok\n" start commit start commit >expect && + test_must_fail git show-ref --verify refs/heads/create-and-delete -expecting success of 0027.590 'ls-files --eol attr=-text aeol=crlf core.autocrlf=false core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 590 - ls-files --eol attr=-text aeol=crlf core.autocrlf=false core.eol=crlf +fatal: 'refs/heads/create-and-delete' - not a valid ref +ok 187 - transaction can create and delete -expecting success of 0027.591 'checkout attr=-text aeol=crlf core.autocrlf=false core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_false_attr_-text_ LF crlf_false_attr__LF.txt - -ok 591 - checkout attr=-text aeol=crlf core.autocrlf=false core.eol=crlf file=LF +expecting success of 1400.188 'transaction can commit after abort': + cat >stdin <<-EOF && + start + create refs/heads/abort $A + abort + start + create refs/heads/abort $A + commit + EOF + git update-ref --stdin actual && + printf "%s: ok\n" start abort start commit >expect && + echo "$A" >expect && + git rev-parse refs/heads/abort >actual && + test_cmp expect actual -expecting success of 0027.592 'checkout attr=-text aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_false_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 592 - checkout attr=-text aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF +ok 188 - transaction can commit after abort -expecting success of 0027.593 'checkout attr=-text aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_false_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 593 - checkout attr=-text aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF +expecting success of 1400.189 'transaction cannot restart ongoing transaction': + cat >stdin <<-EOF && + start + create refs/heads/restart $A + start + commit + EOF + test_must_fail git update-ref --stdin actual && + test_must_fail git show-ref --verify refs/heads/restart -expecting success of 0027.594 'checkout attr=-text aeol=crlf core.autocrlf=false core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_false_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 594 - checkout attr=-text aeol=crlf core.autocrlf=false core.eol=crlf file=LF_mix_CR +fatal: cannot restart ongoing transaction +fatal: 'refs/heads/restart' - not a valid ref +ok 189 - transaction cannot restart ongoing transaction -expecting success of 0027.595 'checkout attr=-text aeol=crlf core.autocrlf=false core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_false_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 595 - checkout attr=-text aeol=crlf core.autocrlf=false core.eol=crlf file=LF_nul +# passed all 189 test(s) +1..189 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t1404-update-ref-errors.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1404-update-ref-errors/.git/ +expecting success of 1404.1 'setup': -expecting success of 0027.596 'ls-files --eol attr=text aeol=lf core.autocrlf=false core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 596 - ls-files --eol attr=text aeol=lf core.autocrlf=false core.eol=crlf + git commit --allow-empty -m Initial && + C=$(git rev-parse HEAD) && + git commit --allow-empty -m Second && + D=$(git rev-parse HEAD) && + git commit --allow-empty -m Third && + E=$(git rev-parse HEAD) -expecting success of 0027.597 'checkout attr=text aeol=lf core.autocrlf=false core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_false_attr_text_ LF crlf_false_attr__LF.txt - -ok 597 - checkout attr=text aeol=lf core.autocrlf=false core.eol=crlf file=LF +[master (root-commit) d31adcd] Initial + Author: A U Thor +[master e6940ad] Second + Author: A U Thor +[master c2327cb] Third + Author: A U Thor +ok 1 - setup -expecting success of 0027.598 'checkout attr=text aeol=lf core.autocrlf=false core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 598 - checkout attr=text aeol=lf core.autocrlf=false core.eol=crlf file=CRLF +expecting success of 1404.2 'existing loose ref is a simple prefix of new': -expecting success of 0027.599 'checkout attr=text aeol=lf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 599 - checkout attr=text aeol=lf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF + prefix=refs/1l && + test_update_rejected "a c e" false "b c/x d" \ + "$SQ$prefix/c$SQ exists; cannot create $SQ$prefix/c/x$SQ" -expecting success of 0027.600 'checkout attr=text aeol=lf core.autocrlf=false core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_false_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 600 - checkout attr=text aeol=lf core.autocrlf=false core.eol=crlf file=LF_mix_CR -expecting success of 0027.601 'checkout attr=text aeol=lf core.autocrlf=false core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_false_attr_text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 601 - checkout attr=text aeol=lf core.autocrlf=false core.eol=crlf file=LF_nul +checking prerequisite: C_LOCALE_OUTPUT -expecting success of 0027.602 'ls-files --eol attr=text aeol=crlf core.autocrlf=false core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 602 - ls-files --eol attr=text aeol=crlf core.autocrlf=false core.eol=crlf +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false -expecting success of 0027.603 'checkout attr=text aeol=crlf core.autocrlf=false core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF crlf_false_attr__LF.txt - -ok 603 - checkout attr=text aeol=crlf core.autocrlf=false core.eol=crlf file=LF +) +prerequisite C_LOCALE_OUTPUT ok +fatal: cannot lock ref 'refs/1l/c/x': 'refs/1l/c' exists; cannot create 'refs/1l/c/x' +ok 2 - existing loose ref is a simple prefix of new -expecting success of 0027.604 'checkout attr=text aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 604 - checkout attr=text aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF +expecting success of 1404.3 'existing packed ref is a simple prefix of new': -expecting success of 0027.605 'checkout attr=text aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt - -ok 605 - checkout attr=text aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF + prefix=refs/1p && + test_update_rejected "a c e" true "b c/x d" \ + "$SQ$prefix/c$SQ exists; cannot create $SQ$prefix/c/x$SQ" -expecting success of 0027.606 'checkout attr=text aeol=crlf core.autocrlf=false core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 606 - checkout attr=text aeol=crlf core.autocrlf=false core.eol=crlf file=LF_mix_CR -expecting success of 0027.607 'checkout attr=text aeol=crlf core.autocrlf=false core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt - -ok 607 - checkout attr=text aeol=crlf core.autocrlf=false core.eol=crlf file=LF_nul +fatal: cannot lock ref 'refs/1p/c/x': 'refs/1p/c' exists; cannot create 'refs/1p/c/x' +ok 3 - existing packed ref is a simple prefix of new -expecting success of 0027.608 'ls-files --eol attr=auto aeol=lf core.autocrlf=false core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 608 - ls-files --eol attr=auto aeol=lf core.autocrlf=false core.eol=crlf +expecting success of 1404.4 'existing loose ref is a deeper prefix of new': -expecting success of 0027.609 'checkout attr=auto aeol=lf core.autocrlf=false core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_false_attr_auto_ LF crlf_false_attr__LF.txt - -ok 609 - checkout attr=auto aeol=lf core.autocrlf=false core.eol=crlf file=LF + prefix=refs/2l && + test_update_rejected "a c e" false "b c/x/y d" \ + "$SQ$prefix/c$SQ exists; cannot create $SQ$prefix/c/x/y$SQ" -expecting success of 0027.610 'checkout attr=auto aeol=lf core.autocrlf=false core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_false_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 610 - checkout attr=auto aeol=lf core.autocrlf=false core.eol=crlf file=CRLF -expecting success of 0027.611 'checkout attr=auto aeol=lf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_false_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 611 - checkout attr=auto aeol=lf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF +fatal: cannot lock ref 'refs/2l/c/x/y': 'refs/2l/c' exists; cannot create 'refs/2l/c/x/y' +ok 4 - existing loose ref is a deeper prefix of new -expecting success of 0027.612 'checkout attr=auto aeol=lf core.autocrlf=false core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_false_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 612 - checkout attr=auto aeol=lf core.autocrlf=false core.eol=crlf file=LF_mix_CR +expecting success of 1404.5 'existing packed ref is a deeper prefix of new': -expecting success of 0027.613 'checkout attr=auto aeol=lf core.autocrlf=false core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_false_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 613 - checkout attr=auto aeol=lf core.autocrlf=false core.eol=crlf file=LF_nul + prefix=refs/2p && + test_update_rejected "a c e" true "b c/x/y d" \ + "$SQ$prefix/c$SQ exists; cannot create $SQ$prefix/c/x/y$SQ" -expecting success of 0027.614 'ls-files --eol attr=auto aeol=crlf core.autocrlf=false core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 614 - ls-files --eol attr=auto aeol=crlf core.autocrlf=false core.eol=crlf -expecting success of 0027.615 'checkout attr=auto aeol=crlf core.autocrlf=false core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_false_attr_auto_ CRLF crlf_false_attr__LF.txt - -ok 615 - checkout attr=auto aeol=crlf core.autocrlf=false core.eol=crlf file=LF +fatal: cannot lock ref 'refs/2p/c/x/y': 'refs/2p/c' exists; cannot create 'refs/2p/c/x/y' +ok 5 - existing packed ref is a deeper prefix of new -expecting success of 0027.616 'checkout attr=auto aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_false_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 616 - checkout attr=auto aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF +expecting success of 1404.6 'new ref is a simple prefix of existing loose': -expecting success of 0027.617 'checkout attr=auto aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_false_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 617 - checkout attr=auto aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF + prefix=refs/3l && + test_update_rejected "a c/x e" false "b c d" \ + "$SQ$prefix/c/x$SQ exists; cannot create $SQ$prefix/c$SQ" -expecting success of 0027.618 'checkout attr=auto aeol=crlf core.autocrlf=false core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_false_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 618 - checkout attr=auto aeol=crlf core.autocrlf=false core.eol=crlf file=LF_mix_CR -expecting success of 0027.619 'checkout attr=auto aeol=crlf core.autocrlf=false core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_false_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 619 - checkout attr=auto aeol=crlf core.autocrlf=false core.eol=crlf file=LF_nul +fatal: cannot lock ref 'refs/3l/c': 'refs/3l/c/x' exists; cannot create 'refs/3l/c' +ok 6 - new ref is a simple prefix of existing loose -expecting success of 0027.620 'ls-files --eol attr=-text aeol= core.autocrlf=input core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 620 - ls-files --eol attr=-text aeol= core.autocrlf=input core.eol=crlf +expecting success of 1404.7 'new ref is a simple prefix of existing packed': -expecting success of 0027.621 'checkout attr=-text aeol= core.autocrlf=input core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_input_attr_-text_ LF crlf_false_attr__LF.txt - -ok 621 - checkout attr=-text aeol= core.autocrlf=input core.eol=crlf file=LF + prefix=refs/3p && + test_update_rejected "a c/x e" true "b c d" \ + "$SQ$prefix/c/x$SQ exists; cannot create $SQ$prefix/c$SQ" -expecting success of 0027.622 'checkout attr=-text aeol= core.autocrlf=input core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_input_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 622 - checkout attr=-text aeol= core.autocrlf=input core.eol=crlf file=CRLF -expecting success of 0027.623 'checkout attr=-text aeol= core.autocrlf=input core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_input_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 623 - checkout attr=-text aeol= core.autocrlf=input core.eol=crlf file=CRLF_mix_LF +fatal: cannot lock ref 'refs/3p/c': 'refs/3p/c/x' exists; cannot create 'refs/3p/c' +ok 7 - new ref is a simple prefix of existing packed -expecting success of 0027.624 'checkout attr=-text aeol= core.autocrlf=input core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_input_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 624 - checkout attr=-text aeol= core.autocrlf=input core.eol=crlf file=LF_mix_CR +expecting success of 1404.8 'new ref is a deeper prefix of existing loose': -expecting success of 0027.625 'checkout attr=-text aeol= core.autocrlf=input core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_input_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 625 - checkout attr=-text aeol= core.autocrlf=input core.eol=crlf file=LF_nul + prefix=refs/4l && + test_update_rejected "a c/x/y e" false "b c d" \ + "$SQ$prefix/c/x/y$SQ exists; cannot create $SQ$prefix/c$SQ" -expecting success of 0027.626 'ls-files --eol attr=-text aeol=lf core.autocrlf=input core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 626 - ls-files --eol attr=-text aeol=lf core.autocrlf=input core.eol=crlf -expecting success of 0027.627 'checkout attr=-text aeol=lf core.autocrlf=input core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_input_attr_-text_ LF crlf_false_attr__LF.txt - -ok 627 - checkout attr=-text aeol=lf core.autocrlf=input core.eol=crlf file=LF +fatal: cannot lock ref 'refs/4l/c': 'refs/4l/c/x/y' exists; cannot create 'refs/4l/c' +ok 8 - new ref is a deeper prefix of existing loose -expecting success of 0027.628 'checkout attr=-text aeol=lf core.autocrlf=input core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_input_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 628 - checkout attr=-text aeol=lf core.autocrlf=input core.eol=crlf file=CRLF +expecting success of 1404.9 'new ref is a deeper prefix of existing packed': -expecting success of 0027.629 'checkout attr=-text aeol=lf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_input_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 629 - checkout attr=-text aeol=lf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF + prefix=refs/4p && + test_update_rejected "a c/x/y e" true "b c d" \ + "$SQ$prefix/c/x/y$SQ exists; cannot create $SQ$prefix/c$SQ" -expecting success of 0027.630 'checkout attr=-text aeol=lf core.autocrlf=input core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_input_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 630 - checkout attr=-text aeol=lf core.autocrlf=input core.eol=crlf file=LF_mix_CR -expecting success of 0027.631 'checkout attr=-text aeol=lf core.autocrlf=input core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_input_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 631 - checkout attr=-text aeol=lf core.autocrlf=input core.eol=crlf file=LF_nul +fatal: cannot lock ref 'refs/4p/c': 'refs/4p/c/x/y' exists; cannot create 'refs/4p/c' +ok 9 - new ref is a deeper prefix of existing packed -expecting success of 0027.632 'ls-files --eol attr=-text aeol=crlf core.autocrlf=input core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 632 - ls-files --eol attr=-text aeol=crlf core.autocrlf=input core.eol=crlf +expecting success of 1404.10 'one new ref is a simple prefix of another': -expecting success of 0027.633 'checkout attr=-text aeol=crlf core.autocrlf=input core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_input_attr_-text_ LF crlf_false_attr__LF.txt - -ok 633 - checkout attr=-text aeol=crlf core.autocrlf=input core.eol=crlf file=LF + prefix=refs/5 && + test_update_rejected "a e" false "b c c/x d" \ + "cannot process $SQ$prefix/c$SQ and $SQ$prefix/c/x$SQ at the same time" -expecting success of 0027.634 'checkout attr=-text aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_input_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 634 - checkout attr=-text aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF -expecting success of 0027.635 'checkout attr=-text aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_input_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 635 - checkout attr=-text aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF +fatal: cannot lock ref 'refs/5/c': cannot process 'refs/5/c' and 'refs/5/c/x' at the same time +ok 10 - one new ref is a simple prefix of another -expecting success of 0027.636 'checkout attr=-text aeol=crlf core.autocrlf=input core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_input_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 636 - checkout attr=-text aeol=crlf core.autocrlf=input core.eol=crlf file=LF_mix_CR +expecting success of 1404.11 'empty directory should not fool rev-parse': + prefix=refs/e-rev-parse && + git update-ref $prefix/foo $C && + git pack-refs --all && + mkdir -p .git/$prefix/foo/bar/baz && + echo "$C" >expected && + git rev-parse $prefix/foo >actual && + test_cmp expected actual -expecting success of 0027.637 'checkout attr=-text aeol=crlf core.autocrlf=input core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_input_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 637 - checkout attr=-text aeol=crlf core.autocrlf=input core.eol=crlf file=LF_nul +ok 11 - empty directory should not fool rev-parse -expecting success of 0027.638 'ls-files --eol attr=text aeol=lf core.autocrlf=input core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 638 - ls-files --eol attr=text aeol=lf core.autocrlf=input core.eol=crlf +expecting success of 1404.12 'empty directory should not fool for-each-ref': + prefix=refs/e-for-each-ref && + git update-ref $prefix/foo $C && + git for-each-ref $prefix >expected && + git pack-refs --all && + mkdir -p .git/$prefix/foo/bar/baz && + git for-each-ref $prefix >actual && + test_cmp expected actual -expecting success of 0027.639 'checkout attr=text aeol=lf core.autocrlf=input core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_input_attr_text_ LF crlf_false_attr__LF.txt - -ok 639 - checkout attr=text aeol=lf core.autocrlf=input core.eol=crlf file=LF +ok 12 - empty directory should not fool for-each-ref -expecting success of 0027.640 'checkout attr=text aeol=lf core.autocrlf=input core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 640 - checkout attr=text aeol=lf core.autocrlf=input core.eol=crlf file=CRLF +expecting success of 1404.13 'empty directory should not fool create': + prefix=refs/e-create && + mkdir -p .git/$prefix/foo/bar/baz && + printf "create %s $C\n" $prefix/foo | + git update-ref --stdin -expecting success of 0027.641 'checkout attr=text aeol=lf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_input_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 641 - checkout attr=text aeol=lf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF +ok 13 - empty directory should not fool create -expecting success of 0027.642 'checkout attr=text aeol=lf core.autocrlf=input core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_input_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 642 - checkout attr=text aeol=lf core.autocrlf=input core.eol=crlf file=LF_mix_CR +expecting success of 1404.14 'empty directory should not fool verify': + prefix=refs/e-verify && + git update-ref $prefix/foo $C && + git pack-refs --all && + mkdir -p .git/$prefix/foo/bar/baz && + printf "verify %s $C\n" $prefix/foo | + git update-ref --stdin -expecting success of 0027.643 'checkout attr=text aeol=lf core.autocrlf=input core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_input_attr_text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 643 - checkout attr=text aeol=lf core.autocrlf=input core.eol=crlf file=LF_nul +ok 14 - empty directory should not fool verify -expecting success of 0027.644 'ls-files --eol attr=text aeol=crlf core.autocrlf=input core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 644 - ls-files --eol attr=text aeol=crlf core.autocrlf=input core.eol=crlf +expecting success of 1404.15 'empty directory should not fool 1-arg update': + prefix=refs/e-update-1 && + git update-ref $prefix/foo $C && + git pack-refs --all && + mkdir -p .git/$prefix/foo/bar/baz && + printf "update %s $D\n" $prefix/foo | + git update-ref --stdin -expecting success of 0027.645 'checkout attr=text aeol=crlf core.autocrlf=input core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_input_attr_text_ CRLF crlf_false_attr__LF.txt - -ok 645 - checkout attr=text aeol=crlf core.autocrlf=input core.eol=crlf file=LF +ok 15 - empty directory should not fool 1-arg update -expecting success of 0027.646 'checkout attr=text aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 646 - checkout attr=text aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF +expecting success of 1404.16 'empty directory should not fool 2-arg update': + prefix=refs/e-update-2 && + git update-ref $prefix/foo $C && + git pack-refs --all && + mkdir -p .git/$prefix/foo/bar/baz && + printf "update %s $D $C\n" $prefix/foo | + git update-ref --stdin -expecting success of 0027.647 'checkout attr=text aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt - -ok 647 - checkout attr=text aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF +ok 16 - empty directory should not fool 2-arg update -expecting success of 0027.648 'checkout attr=text aeol=crlf core.autocrlf=input core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_input_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 648 - checkout attr=text aeol=crlf core.autocrlf=input core.eol=crlf file=LF_mix_CR +expecting success of 1404.17 'empty directory should not fool 0-arg delete': + prefix=refs/e-delete-0 && + git update-ref $prefix/foo $C && + git pack-refs --all && + mkdir -p .git/$prefix/foo/bar/baz && + printf "delete %s\n" $prefix/foo | + git update-ref --stdin -expecting success of 0027.649 'checkout attr=text aeol=crlf core.autocrlf=input core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_input_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt - -ok 649 - checkout attr=text aeol=crlf core.autocrlf=input core.eol=crlf file=LF_nul +ok 17 - empty directory should not fool 0-arg delete -expecting success of 0027.650 'ls-files --eol attr=auto aeol=lf core.autocrlf=input core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 650 - ls-files --eol attr=auto aeol=lf core.autocrlf=input core.eol=crlf +expecting success of 1404.18 'empty directory should not fool 1-arg delete': + prefix=refs/e-delete-1 && + git update-ref $prefix/foo $C && + git pack-refs --all && + mkdir -p .git/$prefix/foo/bar/baz && + printf "delete %s $C\n" $prefix/foo | + git update-ref --stdin -expecting success of 0027.651 'checkout attr=auto aeol=lf core.autocrlf=input core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_input_attr_auto_ LF crlf_false_attr__LF.txt - -ok 651 - checkout attr=auto aeol=lf core.autocrlf=input core.eol=crlf file=LF +ok 18 - empty directory should not fool 1-arg delete -expecting success of 0027.652 'checkout attr=auto aeol=lf core.autocrlf=input core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_input_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 652 - checkout attr=auto aeol=lf core.autocrlf=input core.eol=crlf file=CRLF +expecting success of 1404.19 'D/F conflict prevents add long + delete short': + df_test refs/df-al-ds --add-del foo/bar foo -expecting success of 0027.653 'checkout attr=auto aeol=lf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_input_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 653 - checkout attr=auto aeol=lf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF +ok 19 - D/F conflict prevents add long + delete short -expecting success of 0027.654 'checkout attr=auto aeol=lf core.autocrlf=input core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_input_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 654 - checkout attr=auto aeol=lf core.autocrlf=input core.eol=crlf file=LF_mix_CR +expecting success of 1404.20 'D/F conflict prevents add short + delete long': + df_test refs/df-as-dl --add-del foo foo/bar -expecting success of 0027.655 'checkout attr=auto aeol=lf core.autocrlf=input core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_input_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 655 - checkout attr=auto aeol=lf core.autocrlf=input core.eol=crlf file=LF_nul +ok 20 - D/F conflict prevents add short + delete long -expecting success of 0027.656 'ls-files --eol attr=auto aeol=crlf core.autocrlf=input core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 656 - ls-files --eol attr=auto aeol=crlf core.autocrlf=input core.eol=crlf +expecting success of 1404.21 'D/F conflict prevents delete long + add short': + df_test refs/df-dl-as --del-add foo/bar foo -expecting success of 0027.657 'checkout attr=auto aeol=crlf core.autocrlf=input core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_input_attr_auto_ CRLF crlf_false_attr__LF.txt - -ok 657 - checkout attr=auto aeol=crlf core.autocrlf=input core.eol=crlf file=LF +ok 21 - D/F conflict prevents delete long + add short -expecting success of 0027.658 'checkout attr=auto aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_input_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 658 - checkout attr=auto aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF +expecting success of 1404.22 'D/F conflict prevents delete short + add long': + df_test refs/df-ds-al --del-add foo foo/bar -expecting success of 0027.659 'checkout attr=auto aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_input_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 659 - checkout attr=auto aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF +ok 22 - D/F conflict prevents delete short + add long -expecting success of 0027.660 'checkout attr=auto aeol=crlf core.autocrlf=input core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_input_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 660 - checkout attr=auto aeol=crlf core.autocrlf=input core.eol=crlf file=LF_mix_CR +expecting success of 1404.23 'D/F conflict prevents add long + delete short packed': + df_test refs/df-al-dsp --pack --add-del foo/bar foo -expecting success of 0027.661 'checkout attr=auto aeol=crlf core.autocrlf=input core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_input_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 661 - checkout attr=auto aeol=crlf core.autocrlf=input core.eol=crlf file=LF_nul +ok 23 - D/F conflict prevents add long + delete short packed -expecting success of 0027.662 'ls-files --eol attr= aeol= core.autocrlf=false core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 662 - ls-files --eol attr= aeol= core.autocrlf=false core.eol=crlf +expecting success of 1404.24 'D/F conflict prevents add short + delete long packed': + df_test refs/df-as-dlp --pack --add-del foo foo/bar -expecting success of 0027.663 'checkout attr= aeol= core.autocrlf=false core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_false_attr__ LF crlf_false_attr__LF.txt - -ok 663 - checkout attr= aeol= core.autocrlf=false core.eol=crlf file=LF +ok 24 - D/F conflict prevents add short + delete long packed -expecting success of 0027.664 'checkout attr= aeol= core.autocrlf=false core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_false_attr__ CRLF crlf_false_attr__CRLF.txt - -ok 664 - checkout attr= aeol= core.autocrlf=false core.eol=crlf file=CRLF +expecting success of 1404.25 'D/F conflict prevents delete long packed + add short': + df_test refs/df-dlp-as --pack --del-add foo/bar foo -expecting success of 0027.665 'checkout attr= aeol= core.autocrlf=false core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_false_attr__ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 665 - checkout attr= aeol= core.autocrlf=false core.eol=crlf file=CRLF_mix_LF +ok 25 - D/F conflict prevents delete long packed + add short -expecting success of 0027.666 'checkout attr= aeol= core.autocrlf=false core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_false_attr__ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 666 - checkout attr= aeol= core.autocrlf=false core.eol=crlf file=LF_mix_CR +expecting success of 1404.26 'D/F conflict prevents delete short packed + add long': + df_test refs/df-dsp-al --pack --del-add foo foo/bar -expecting success of 0027.667 'checkout attr= aeol= core.autocrlf=false core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_false_attr__ LF_nul crlf_false_attr__LF_nul.txt - -ok 667 - checkout attr= aeol= core.autocrlf=false core.eol=crlf file=LF_nul +ok 26 - D/F conflict prevents delete short packed + add long -expecting success of 0027.668 'ls-files --eol attr= aeol= core.autocrlf=true core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 668 - ls-files --eol attr= aeol= core.autocrlf=true core.eol=crlf +expecting success of 1404.27 'D/F conflict prevents indirect add long + delete short': + df_test refs/df-ial-ds --sym-add --add-del foo/bar foo -expecting success of 0027.669 'checkout attr= aeol= core.autocrlf=true core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_true_attr__ CRLF crlf_false_attr__LF.txt - -ok 669 - checkout attr= aeol= core.autocrlf=true core.eol=crlf file=LF +ok 27 - D/F conflict prevents indirect add long + delete short -expecting success of 0027.670 'checkout attr= aeol= core.autocrlf=true core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_true_attr__ CRLF crlf_false_attr__CRLF.txt - -ok 670 - checkout attr= aeol= core.autocrlf=true core.eol=crlf file=CRLF +expecting success of 1404.28 'D/F conflict prevents indirect add long + indirect delete short': + df_test refs/df-ial-ids --sym-add --sym-del --add-del foo/bar foo -expecting success of 0027.671 'checkout attr= aeol= core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_true_attr__ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 671 - checkout attr= aeol= core.autocrlf=true core.eol=crlf file=CRLF_mix_LF +ok 28 - D/F conflict prevents indirect add long + indirect delete short -expecting success of 0027.672 'checkout attr= aeol= core.autocrlf=true core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_true_attr__ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 672 - checkout attr= aeol= core.autocrlf=true core.eol=crlf file=LF_mix_CR +expecting success of 1404.29 'D/F conflict prevents indirect add short + indirect delete long': + df_test refs/df-ias-idl --sym-add --sym-del --add-del foo foo/bar -expecting success of 0027.673 'checkout attr= aeol= core.autocrlf=true core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_true_attr__ LF_nul crlf_false_attr__LF_nul.txt - -ok 673 - checkout attr= aeol= core.autocrlf=true core.eol=crlf file=LF_nul +ok 29 - D/F conflict prevents indirect add short + indirect delete long -expecting success of 0027.674 'ls-files --eol attr=auto aeol= core.autocrlf=true core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 674 - ls-files --eol attr=auto aeol= core.autocrlf=true core.eol=crlf +expecting success of 1404.30 'D/F conflict prevents indirect delete long + indirect add short': + df_test refs/df-idl-ias --sym-add --sym-del --del-add foo/bar foo -expecting success of 0027.675 'checkout attr=auto aeol= core.autocrlf=true core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_true_attr_auto_ CRLF crlf_false_attr__LF.txt - -ok 675 - checkout attr=auto aeol= core.autocrlf=true core.eol=crlf file=LF +ok 30 - D/F conflict prevents indirect delete long + indirect add short -expecting success of 0027.676 'checkout attr=auto aeol= core.autocrlf=true core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_true_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 676 - checkout attr=auto aeol= core.autocrlf=true core.eol=crlf file=CRLF +expecting success of 1404.31 'D/F conflict prevents indirect add long + delete short packed': + df_test refs/df-ial-dsp --sym-add --pack --add-del foo/bar foo -expecting success of 0027.677 'checkout attr=auto aeol= core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_true_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 677 - checkout attr=auto aeol= core.autocrlf=true core.eol=crlf file=CRLF_mix_LF +ok 31 - D/F conflict prevents indirect add long + delete short packed -expecting success of 0027.678 'checkout attr=auto aeol= core.autocrlf=true core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_true_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 678 - checkout attr=auto aeol= core.autocrlf=true core.eol=crlf file=LF_mix_CR +expecting success of 1404.32 'D/F conflict prevents indirect add long + indirect delete short packed': + df_test refs/df-ial-idsp --sym-add --sym-del --pack --add-del foo/bar foo -expecting success of 0027.679 'checkout attr=auto aeol= core.autocrlf=true core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_true_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 679 - checkout attr=auto aeol= core.autocrlf=true core.eol=crlf file=LF_nul +ok 32 - D/F conflict prevents indirect add long + indirect delete short packed -expecting success of 0027.680 'ls-files --eol attr=text aeol= core.autocrlf=true core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 680 - ls-files --eol attr=text aeol= core.autocrlf=true core.eol=crlf +expecting success of 1404.33 'D/F conflict prevents add long + indirect delete short packed': + df_test refs/df-al-idsp --sym-del --pack --add-del foo/bar foo -expecting success of 0027.681 'checkout attr=text aeol= core.autocrlf=true core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF crlf_false_attr__LF.txt - -ok 681 - checkout attr=text aeol= core.autocrlf=true core.eol=crlf file=LF +ok 33 - D/F conflict prevents add long + indirect delete short packed -expecting success of 0027.682 'checkout attr=text aeol= core.autocrlf=true core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 682 - checkout attr=text aeol= core.autocrlf=true core.eol=crlf file=CRLF +expecting success of 1404.34 'D/F conflict prevents indirect delete long packed + indirect add short': + df_test refs/df-idlp-ias --sym-add --sym-del --pack --del-add foo/bar foo -expecting success of 0027.683 'checkout attr=text aeol= core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt - -ok 683 - checkout attr=text aeol= core.autocrlf=true core.eol=crlf file=CRLF_mix_LF +ok 34 - D/F conflict prevents indirect delete long packed + indirect add short -expecting success of 0027.684 'checkout attr=text aeol= core.autocrlf=true core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 684 - checkout attr=text aeol= core.autocrlf=true core.eol=crlf file=LF_mix_CR +expecting success of 1404.35 'missing old value blocks update': + prefix=refs/missing-update && + cat >expected <<-EOF && + fatal: cannot lock ref $SQ$prefix/foo$SQ: unable to resolve reference $SQ$prefix/foo$SQ + EOF + printf "%s\n" "update $prefix/foo $E $D" | + test_must_fail git update-ref --stdin 2>output.err && + test_cmp expected output.err -expecting success of 0027.685 'checkout attr=text aeol= core.autocrlf=true core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt - -ok 685 - checkout attr=text aeol= core.autocrlf=true core.eol=crlf file=LF_nul +ok 35 - missing old value blocks update -expecting success of 0027.686 'ls-files --eol attr=text aeol= core.autocrlf=input core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 686 - ls-files --eol attr=text aeol= core.autocrlf=input core.eol=crlf +expecting success of 1404.36 'incorrect old value blocks update': + prefix=refs/incorrect-update && + git update-ref $prefix/foo $C && + cat >expected <<-EOF && + fatal: cannot lock ref $SQ$prefix/foo$SQ: is at $C but expected $D + EOF + printf "%s\n" "update $prefix/foo $E $D" | + test_must_fail git update-ref --stdin 2>output.err && + test_cmp expected output.err -expecting success of 0027.687 'checkout attr=text aeol= core.autocrlf=input core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_input_attr_text_ LF crlf_false_attr__LF.txt - -ok 687 - checkout attr=text aeol= core.autocrlf=input core.eol=crlf file=LF +ok 36 - incorrect old value blocks update -expecting success of 0027.688 'checkout attr=text aeol= core.autocrlf=input core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 688 - checkout attr=text aeol= core.autocrlf=input core.eol=crlf file=CRLF +expecting success of 1404.37 'existing old value blocks create': + prefix=refs/existing-create && + git update-ref $prefix/foo $C && + cat >expected <<-EOF && + fatal: cannot lock ref $SQ$prefix/foo$SQ: reference already exists + EOF + printf "%s\n" "create $prefix/foo $E" | + test_must_fail git update-ref --stdin 2>output.err && + test_cmp expected output.err -expecting success of 0027.689 'checkout attr=text aeol= core.autocrlf=input core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_input_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 689 - checkout attr=text aeol= core.autocrlf=input core.eol=crlf file=CRLF_mix_LF +ok 37 - existing old value blocks create -expecting success of 0027.690 'checkout attr=text aeol= core.autocrlf=input core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_input_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 690 - checkout attr=text aeol= core.autocrlf=input core.eol=crlf file=LF_mix_CR +expecting success of 1404.38 'incorrect old value blocks delete': + prefix=refs/incorrect-delete && + git update-ref $prefix/foo $C && + cat >expected <<-EOF && + fatal: cannot lock ref $SQ$prefix/foo$SQ: is at $C but expected $D + EOF + printf "%s\n" "delete $prefix/foo $D" | + test_must_fail git update-ref --stdin 2>output.err && + test_cmp expected output.err -expecting success of 0027.691 'checkout attr=text aeol= core.autocrlf=input core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_input_attr_text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 691 - checkout attr=text aeol= core.autocrlf=input core.eol=crlf file=LF_nul +ok 38 - incorrect old value blocks delete -expecting success of 0027.692 'ls-files --eol attr=auto aeol= core.autocrlf=input core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 692 - ls-files --eol attr=auto aeol= core.autocrlf=input core.eol=crlf +expecting success of 1404.39 'missing old value blocks indirect update': + prefix=refs/missing-indirect-update && + git symbolic-ref $prefix/symref $prefix/foo && + cat >expected <<-EOF && + fatal: cannot lock ref $SQ$prefix/symref$SQ: unable to resolve reference $SQ$prefix/foo$SQ + EOF + printf "%s\n" "update $prefix/symref $E $D" | + test_must_fail git update-ref --stdin 2>output.err && + test_cmp expected output.err -expecting success of 0027.693 'checkout attr=auto aeol= core.autocrlf=input core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_input_attr_auto_ LF crlf_false_attr__LF.txt - -ok 693 - checkout attr=auto aeol= core.autocrlf=input core.eol=crlf file=LF +ok 39 - missing old value blocks indirect update -expecting success of 0027.694 'checkout attr=auto aeol= core.autocrlf=input core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_input_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 694 - checkout attr=auto aeol= core.autocrlf=input core.eol=crlf file=CRLF +expecting success of 1404.40 'incorrect old value blocks indirect update': + prefix=refs/incorrect-indirect-update && + git symbolic-ref $prefix/symref $prefix/foo && + git update-ref $prefix/foo $C && + cat >expected <<-EOF && + fatal: cannot lock ref $SQ$prefix/symref$SQ: is at $C but expected $D + EOF + printf "%s\n" "update $prefix/symref $E $D" | + test_must_fail git update-ref --stdin 2>output.err && + test_cmp expected output.err -expecting success of 0027.695 'checkout attr=auto aeol= core.autocrlf=input core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_input_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 695 - checkout attr=auto aeol= core.autocrlf=input core.eol=crlf file=CRLF_mix_LF +ok 40 - incorrect old value blocks indirect update -expecting success of 0027.696 'checkout attr=auto aeol= core.autocrlf=input core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_input_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 696 - checkout attr=auto aeol= core.autocrlf=input core.eol=crlf file=LF_mix_CR +expecting success of 1404.41 'existing old value blocks indirect create': + prefix=refs/existing-indirect-create && + git symbolic-ref $prefix/symref $prefix/foo && + git update-ref $prefix/foo $C && + cat >expected <<-EOF && + fatal: cannot lock ref $SQ$prefix/symref$SQ: reference already exists + EOF + printf "%s\n" "create $prefix/symref $E" | + test_must_fail git update-ref --stdin 2>output.err && + test_cmp expected output.err -expecting success of 0027.697 'checkout attr=auto aeol= core.autocrlf=input core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_input_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 697 - checkout attr=auto aeol= core.autocrlf=input core.eol=crlf file=LF_nul +ok 41 - existing old value blocks indirect create -expecting success of 0027.698 'ls-files --eol attr=-text aeol= core.autocrlf=true core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 698 - ls-files --eol attr=-text aeol= core.autocrlf=true core.eol=native +expecting success of 1404.42 'incorrect old value blocks indirect delete': + prefix=refs/incorrect-indirect-delete && + git symbolic-ref $prefix/symref $prefix/foo && + git update-ref $prefix/foo $C && + cat >expected <<-EOF && + fatal: cannot lock ref $SQ$prefix/symref$SQ: is at $C but expected $D + EOF + printf "%s\n" "delete $prefix/symref $D" | + test_must_fail git update-ref --stdin 2>output.err && + test_cmp expected output.err -expecting success of 0027.699 'checkout attr=-text aeol= core.autocrlf=true core.eol=native file=LF': - compare_ws_file eol_native_crlf_true_attr_-text_ LF crlf_false_attr__LF.txt - -ok 699 - checkout attr=-text aeol= core.autocrlf=true core.eol=native file=LF +ok 42 - incorrect old value blocks indirect delete -expecting success of 0027.700 'checkout attr=-text aeol= core.autocrlf=true core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_true_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 700 - checkout attr=-text aeol= core.autocrlf=true core.eol=native file=CRLF +expecting success of 1404.43 'missing old value blocks indirect no-deref update': + prefix=refs/missing-noderef-update && + git symbolic-ref $prefix/symref $prefix/foo && + cat >expected <<-EOF && + fatal: cannot lock ref $SQ$prefix/symref$SQ: reference is missing but expected $D + EOF + printf "%s\n" "option no-deref" "update $prefix/symref $E $D" | + test_must_fail git update-ref --stdin 2>output.err && + test_cmp expected output.err -expecting success of 0027.701 'checkout attr=-text aeol= core.autocrlf=true core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_true_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 701 - checkout attr=-text aeol= core.autocrlf=true core.eol=native file=CRLF_mix_LF +ok 43 - missing old value blocks indirect no-deref update -expecting success of 0027.702 'checkout attr=-text aeol= core.autocrlf=true core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_true_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 702 - checkout attr=-text aeol= core.autocrlf=true core.eol=native file=LF_mix_CR +expecting success of 1404.44 'incorrect old value blocks indirect no-deref update': + prefix=refs/incorrect-noderef-update && + git symbolic-ref $prefix/symref $prefix/foo && + git update-ref $prefix/foo $C && + cat >expected <<-EOF && + fatal: cannot lock ref $SQ$prefix/symref$SQ: is at $C but expected $D + EOF + printf "%s\n" "option no-deref" "update $prefix/symref $E $D" | + test_must_fail git update-ref --stdin 2>output.err && + test_cmp expected output.err -expecting success of 0027.703 'checkout attr=-text aeol= core.autocrlf=true core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_true_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 703 - checkout attr=-text aeol= core.autocrlf=true core.eol=native file=LF_nul +ok 44 - incorrect old value blocks indirect no-deref update -expecting success of 0027.704 'ls-files --eol attr=-text aeol=lf core.autocrlf=true core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 704 - ls-files --eol attr=-text aeol=lf core.autocrlf=true core.eol=native +expecting success of 1404.45 'existing old value blocks indirect no-deref create': + prefix=refs/existing-noderef-create && + git symbolic-ref $prefix/symref $prefix/foo && + git update-ref $prefix/foo $C && + cat >expected <<-EOF && + fatal: cannot lock ref $SQ$prefix/symref$SQ: reference already exists + EOF + printf "%s\n" "option no-deref" "create $prefix/symref $E" | + test_must_fail git update-ref --stdin 2>output.err && + test_cmp expected output.err -expecting success of 0027.705 'checkout attr=-text aeol=lf core.autocrlf=true core.eol=native file=LF': - compare_ws_file eol_native_crlf_true_attr_-text_ LF crlf_false_attr__LF.txt - -ok 705 - checkout attr=-text aeol=lf core.autocrlf=true core.eol=native file=LF +ok 45 - existing old value blocks indirect no-deref create -expecting success of 0027.706 'checkout attr=-text aeol=lf core.autocrlf=true core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_true_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 706 - checkout attr=-text aeol=lf core.autocrlf=true core.eol=native file=CRLF +expecting success of 1404.46 'incorrect old value blocks indirect no-deref delete': + prefix=refs/incorrect-noderef-delete && + git symbolic-ref $prefix/symref $prefix/foo && + git update-ref $prefix/foo $C && + cat >expected <<-EOF && + fatal: cannot lock ref $SQ$prefix/symref$SQ: is at $C but expected $D + EOF + printf "%s\n" "option no-deref" "delete $prefix/symref $D" | + test_must_fail git update-ref --stdin 2>output.err && + test_cmp expected output.err -expecting success of 0027.707 'checkout attr=-text aeol=lf core.autocrlf=true core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_true_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 707 - checkout attr=-text aeol=lf core.autocrlf=true core.eol=native file=CRLF_mix_LF +ok 46 - incorrect old value blocks indirect no-deref delete -expecting success of 0027.708 'checkout attr=-text aeol=lf core.autocrlf=true core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_true_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 708 - checkout attr=-text aeol=lf core.autocrlf=true core.eol=native file=LF_mix_CR +expecting success of 1404.47 'non-empty directory blocks create': + prefix=refs/ne-create && + mkdir -p .git/$prefix/foo/bar && + : >.git/$prefix/foo/bar/baz.lock && + test_when_finished "rm -f .git/$prefix/foo/bar/baz.lock" && + cat >expected <<-EOF && + fatal: cannot lock ref $SQ$prefix/foo$SQ: there is a non-empty directory $SQ.git/$prefix/foo$SQ blocking reference $SQ$prefix/foo$SQ + EOF + printf "%s\n" "update $prefix/foo $C" | + test_must_fail git update-ref --stdin 2>output.err && + test_cmp expected output.err && + cat >expected <<-EOF && + fatal: cannot lock ref $SQ$prefix/foo$SQ: unable to resolve reference $SQ$prefix/foo$SQ + EOF + printf "%s\n" "update $prefix/foo $D $C" | + test_must_fail git update-ref --stdin 2>output.err && + test_cmp expected output.err -expecting success of 0027.709 'checkout attr=-text aeol=lf core.autocrlf=true core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_true_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 709 - checkout attr=-text aeol=lf core.autocrlf=true core.eol=native file=LF_nul +ok 47 - non-empty directory blocks create -expecting success of 0027.710 'ls-files --eol attr=-text aeol=crlf core.autocrlf=true core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 710 - ls-files --eol attr=-text aeol=crlf core.autocrlf=true core.eol=native +expecting success of 1404.48 'broken reference blocks create': + prefix=refs/broken-create && + mkdir -p .git/$prefix && + echo "gobbledigook" >.git/$prefix/foo && + test_when_finished "rm -f .git/$prefix/foo" && + cat >expected <<-EOF && + fatal: cannot lock ref $SQ$prefix/foo$SQ: unable to resolve reference $SQ$prefix/foo$SQ: reference broken + EOF + printf "%s\n" "update $prefix/foo $C" | + test_must_fail git update-ref --stdin 2>output.err && + test_cmp expected output.err && + cat >expected <<-EOF && + fatal: cannot lock ref $SQ$prefix/foo$SQ: unable to resolve reference $SQ$prefix/foo$SQ: reference broken + EOF + printf "%s\n" "update $prefix/foo $D $C" | + test_must_fail git update-ref --stdin 2>output.err && + test_cmp expected output.err -expecting success of 0027.711 'checkout attr=-text aeol=crlf core.autocrlf=true core.eol=native file=LF': - compare_ws_file eol_native_crlf_true_attr_-text_ LF crlf_false_attr__LF.txt - -ok 711 - checkout attr=-text aeol=crlf core.autocrlf=true core.eol=native file=LF +ok 48 - broken reference blocks create -expecting success of 0027.712 'checkout attr=-text aeol=crlf core.autocrlf=true core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_true_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 712 - checkout attr=-text aeol=crlf core.autocrlf=true core.eol=native file=CRLF +expecting success of 1404.49 'non-empty directory blocks indirect create': + prefix=refs/ne-indirect-create && + git symbolic-ref $prefix/symref $prefix/foo && + mkdir -p .git/$prefix/foo/bar && + : >.git/$prefix/foo/bar/baz.lock && + test_when_finished "rm -f .git/$prefix/foo/bar/baz.lock" && + cat >expected <<-EOF && + fatal: cannot lock ref $SQ$prefix/symref$SQ: there is a non-empty directory $SQ.git/$prefix/foo$SQ blocking reference $SQ$prefix/foo$SQ + EOF + printf "%s\n" "update $prefix/symref $C" | + test_must_fail git update-ref --stdin 2>output.err && + test_cmp expected output.err && + cat >expected <<-EOF && + fatal: cannot lock ref $SQ$prefix/symref$SQ: unable to resolve reference $SQ$prefix/foo$SQ + EOF + printf "%s\n" "update $prefix/symref $D $C" | + test_must_fail git update-ref --stdin 2>output.err && + test_cmp expected output.err -expecting success of 0027.713 'checkout attr=-text aeol=crlf core.autocrlf=true core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_true_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 713 - checkout attr=-text aeol=crlf core.autocrlf=true core.eol=native file=CRLF_mix_LF +ok 49 - non-empty directory blocks indirect create -expecting success of 0027.714 'checkout attr=-text aeol=crlf core.autocrlf=true core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_true_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 714 - checkout attr=-text aeol=crlf core.autocrlf=true core.eol=native file=LF_mix_CR +expecting success of 1404.50 'broken reference blocks indirect create': + prefix=refs/broken-indirect-create && + git symbolic-ref $prefix/symref $prefix/foo && + echo "gobbledigook" >.git/$prefix/foo && + test_when_finished "rm -f .git/$prefix/foo" && + cat >expected <<-EOF && + fatal: cannot lock ref $SQ$prefix/symref$SQ: unable to resolve reference $SQ$prefix/foo$SQ: reference broken + EOF + printf "%s\n" "update $prefix/symref $C" | + test_must_fail git update-ref --stdin 2>output.err && + test_cmp expected output.err && + cat >expected <<-EOF && + fatal: cannot lock ref $SQ$prefix/symref$SQ: unable to resolve reference $SQ$prefix/foo$SQ: reference broken + EOF + printf "%s\n" "update $prefix/symref $D $C" | + test_must_fail git update-ref --stdin 2>output.err && + test_cmp expected output.err -expecting success of 0027.715 'checkout attr=-text aeol=crlf core.autocrlf=true core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_true_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 715 - checkout attr=-text aeol=crlf core.autocrlf=true core.eol=native file=LF_nul +ok 50 - broken reference blocks indirect create -expecting success of 0027.716 'ls-files --eol attr=text aeol=lf core.autocrlf=true core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 716 - ls-files --eol attr=text aeol=lf core.autocrlf=true core.eol=native +expecting success of 1404.51 'no bogus intermediate values during delete': + prefix=refs/slow-transaction && + # Set up a reference with differing loose and packed versions: + git update-ref $prefix/foo $C && + git pack-refs --all && + git update-ref $prefix/foo $D && + git for-each-ref $prefix >unchanged && + # Now try to update the reference, but hold the `packed-refs` lock + # for a while to see what happens while the process is blocked: + : >.git/packed-refs.lock && + test_when_finished "rm -f .git/packed-refs.lock" && + { + # Note: the following command is intentionally run in the + # background. We increase the timeout so that `update-ref` + # attempts to acquire the `packed-refs` lock for much longer + # than it takes for us to do the check then delete it: + git -c core.packedrefstimeout=30000 update-ref -d $prefix/foo & + } && + pid2=$! && + # Give update-ref plenty of time to get to the point where it tries + # to lock packed-refs: + sleep 1 && + # Make sure that update-ref did not complete despite the lock: + kill -0 $pid2 && + # Verify that the reference still has its old value: + sha1=$(git rev-parse --verify --quiet $prefix/foo || echo undefined) && + case "$sha1" in + $D) + # This is what we hope for; it means that nothing + # user-visible has changed yet. + : ;; + undefined) + # This is not correct; it means the deletion has happened + # already even though update-ref should not have been + # able to acquire the lock yet. + echo "$prefix/foo deleted prematurely" && + break + ;; + $C) + # This value should never be seen. Probably the loose + # reference has been deleted but the packed reference + # is still there: + echo "$prefix/foo incorrectly observed to be C" && + break + ;; + *) + # WTF? + echo "unexpected value observed for $prefix/foo: $sha1" && + break + ;; + esac >out && + rm -f .git/packed-refs.lock && + wait $pid2 && + test_must_be_empty out && + test_must_fail git rev-parse --verify --quiet $prefix/foo -expecting success of 0027.717 'checkout attr=text aeol=lf core.autocrlf=true core.eol=native file=LF': - compare_ws_file eol_native_crlf_true_attr_text_ LF crlf_false_attr__LF.txt - -ok 717 - checkout attr=text aeol=lf core.autocrlf=true core.eol=native file=LF +ok 51 - no bogus intermediate values during delete -expecting success of 0027.718 'checkout attr=text aeol=lf core.autocrlf=true core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 718 - checkout attr=text aeol=lf core.autocrlf=true core.eol=native file=CRLF +expecting success of 1404.52 'delete fails cleanly if packed-refs file is locked': + prefix=refs/locked-packed-refs && + # Set up a reference with differing loose and packed versions: + git update-ref $prefix/foo $C && + git pack-refs --all && + git update-ref $prefix/foo $D && + git for-each-ref $prefix >unchanged && + # Now try to delete it while the `packed-refs` lock is held: + : >.git/packed-refs.lock && + test_when_finished "rm -f .git/packed-refs.lock" && + test_must_fail git update-ref -d $prefix/foo >out 2>err && + git for-each-ref $prefix >actual && + test_i18ngrep "Unable to create $SQ.*packed-refs.lock$SQ: " err && + test_cmp unchanged actual -expecting success of 0027.719 'checkout attr=text aeol=lf core.autocrlf=true core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_true_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 719 - checkout attr=text aeol=lf core.autocrlf=true core.eol=native file=CRLF_mix_LF +error: Unable to create '/build/git-2.30.2/t/trash directory.t1404-update-ref-errors/.git/packed-refs.lock': File exists. +ok 52 - delete fails cleanly if packed-refs file is locked -expecting success of 0027.720 'checkout attr=text aeol=lf core.autocrlf=true core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_true_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 720 - checkout attr=text aeol=lf core.autocrlf=true core.eol=native file=LF_mix_CR +expecting success of 1404.53 'delete fails cleanly if packed-refs.new write fails': + # Setup and expectations are similar to the test above. + prefix=refs/failed-packed-refs && + git update-ref $prefix/foo $C && + git pack-refs --all && + git update-ref $prefix/foo $D && + git for-each-ref $prefix >unchanged && + # This should not happen in practice, but it is an easy way to get a + # reliable error (we open with create_tempfile(), which uses O_EXCL). + : >.git/packed-refs.new && + test_when_finished "rm -f .git/packed-refs.new" && + test_must_fail git update-ref -d $prefix/foo && + git for-each-ref $prefix >actual && + test_cmp unchanged actual -expecting success of 0027.721 'checkout attr=text aeol=lf core.autocrlf=true core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_true_attr_text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 721 - checkout attr=text aeol=lf core.autocrlf=true core.eol=native file=LF_nul +error: unable to create file /build/git-2.30.2/t/trash directory.t1404-update-ref-errors/.git/packed-refs.new: File exists +ok 53 - delete fails cleanly if packed-refs.new write fails -expecting success of 0027.722 'ls-files --eol attr=text aeol=crlf core.autocrlf=true core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 722 - ls-files --eol attr=text aeol=crlf core.autocrlf=true core.eol=native +# passed all 53 test(s) +1..53 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t1405-main-ref-store.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1405-main-ref-store/.git/ +expecting success of 1405.1 'pack_refs(PACK_REFS_ALL | PACK_REFS_PRUNE)': + test_commit one && + N=`find .git/refs -type f | wc -l` && + test "$N" != 0 && + $RUN pack-refs 3 && + N=`find .git/refs -type f | wc -l` -expecting success of 0027.723 'checkout attr=text aeol=crlf core.autocrlf=true core.eol=native file=LF': - compare_ws_file eol_native_crlf_true_attr_text_ CRLF crlf_false_attr__LF.txt - -ok 723 - checkout attr=text aeol=crlf core.autocrlf=true core.eol=native file=LF +[master (root-commit) d79ce16] one + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 one.t +ok 1 - pack_refs(PACK_REFS_ALL | PACK_REFS_PRUNE) -expecting success of 0027.724 'checkout attr=text aeol=crlf core.autocrlf=true core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 724 - checkout attr=text aeol=crlf core.autocrlf=true core.eol=native file=CRLF +expecting success of 1405.2 'peel_ref(new-tag)': + git rev-parse HEAD >expected && + git tag -a -m new-tag new-tag HEAD && + $RUN peel-ref refs/tags/new-tag >actual && + test_cmp expected actual -expecting success of 0027.725 'checkout attr=text aeol=crlf core.autocrlf=true core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt - -ok 725 - checkout attr=text aeol=crlf core.autocrlf=true core.eol=native file=CRLF_mix_LF +ok 2 - peel_ref(new-tag) -expecting success of 0027.726 'checkout attr=text aeol=crlf core.autocrlf=true core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_true_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 726 - checkout attr=text aeol=crlf core.autocrlf=true core.eol=native file=LF_mix_CR +expecting success of 1405.3 'create_symref(FOO, refs/heads/master)': + $RUN create-symref FOO refs/heads/master nothing && + echo refs/heads/master >expected && + git symbolic-ref FOO >actual && + test_cmp expected actual -expecting success of 0027.727 'checkout attr=text aeol=crlf core.autocrlf=true core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_true_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt - -ok 727 - checkout attr=text aeol=crlf core.autocrlf=true core.eol=native file=LF_nul +ok 3 - create_symref(FOO, refs/heads/master) -expecting success of 0027.728 'ls-files --eol attr=auto aeol=lf core.autocrlf=true core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 728 - ls-files --eol attr=auto aeol=lf core.autocrlf=true core.eol=native +expecting success of 1405.4 'delete_refs(FOO, refs/tags/new-tag)': + git rev-parse FOO -- && + git rev-parse refs/tags/new-tag -- && + m=$(git rev-parse master) && + REF_NO_DEREF=1 && + $RUN delete-refs $REF_NO_DEREF nothing FOO refs/tags/new-tag && + test_must_fail git rev-parse --symbolic-full-name FOO && + test_must_fail git rev-parse FOO -- && + test_must_fail git rev-parse refs/tags/new-tag -- -expecting success of 0027.729 'checkout attr=auto aeol=lf core.autocrlf=true core.eol=native file=LF': - compare_ws_file eol_native_crlf_true_attr_auto_ LF crlf_false_attr__LF.txt - -ok 729 - checkout attr=auto aeol=lf core.autocrlf=true core.eol=native file=LF +d79ce1670bdcb76e6d1da2ae095e890ccb326ae9 +-- +407ffbd56c168afa4e9302a7cdfe469155f84482 +-- +fatal: ambiguous argument 'FOO': unknown revision or path not in the working tree. +Use '--' to separate paths from revisions, like this: +'git [...] -- [...]' +FOO +fatal: bad revision 'FOO' +fatal: bad revision 'refs/tags/new-tag' +ok 4 - delete_refs(FOO, refs/tags/new-tag) -expecting success of 0027.730 'checkout attr=auto aeol=lf core.autocrlf=true core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_true_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 730 - checkout attr=auto aeol=lf core.autocrlf=true core.eol=native file=CRLF +expecting success of 1405.5 'rename_refs(master, new-master)': + git rev-parse master >expected && + $RUN rename-ref refs/heads/master refs/heads/new-master && + git rev-parse new-master >actual && + test_cmp expected actual && + test_commit recreate-master -expecting success of 0027.731 'checkout attr=auto aeol=lf core.autocrlf=true core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_true_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 731 - checkout attr=auto aeol=lf core.autocrlf=true core.eol=native file=CRLF_mix_LF +[master (root-commit) c90e4dc] recreate-master + Author: A U Thor + 2 files changed, 2 insertions(+) + create mode 100644 one.t + create mode 100644 recreate-master.t +ok 5 - rename_refs(master, new-master) -expecting success of 0027.732 'checkout attr=auto aeol=lf core.autocrlf=true core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_true_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 732 - checkout attr=auto aeol=lf core.autocrlf=true core.eol=native file=LF_mix_CR +expecting success of 1405.6 'for_each_ref(refs/heads/)': + $RUN for-each-ref refs/heads/ | cut -d" " -f 2- >actual && + cat >expected <<-\EOF && + master 0x0 + new-master 0x0 + EOF + test_cmp expected actual -expecting success of 0027.733 'checkout attr=auto aeol=lf core.autocrlf=true core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_true_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 733 - checkout attr=auto aeol=lf core.autocrlf=true core.eol=native file=LF_nul +ok 6 - for_each_ref(refs/heads/) -expecting success of 0027.734 'ls-files --eol attr=auto aeol=crlf core.autocrlf=true core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 734 - ls-files --eol attr=auto aeol=crlf core.autocrlf=true core.eol=native +expecting success of 1405.7 'for_each_ref() is sorted': + $RUN for-each-ref refs/heads/ | cut -d" " -f 2- >actual && + sort actual > expected && + test_cmp expected actual -expecting success of 0027.735 'checkout attr=auto aeol=crlf core.autocrlf=true core.eol=native file=LF': - compare_ws_file eol_native_crlf_true_attr_auto_ CRLF crlf_false_attr__LF.txt - -ok 735 - checkout attr=auto aeol=crlf core.autocrlf=true core.eol=native file=LF +ok 7 - for_each_ref() is sorted -expecting success of 0027.736 'checkout attr=auto aeol=crlf core.autocrlf=true core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_true_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 736 - checkout attr=auto aeol=crlf core.autocrlf=true core.eol=native file=CRLF +expecting success of 1405.8 'resolve_ref(new-master)': + SHA1=`git rev-parse new-master` && + echo "$SHA1 refs/heads/new-master 0x0" >expected && + $RUN resolve-ref refs/heads/new-master 0 >actual && + test_cmp expected actual -expecting success of 0027.737 'checkout attr=auto aeol=crlf core.autocrlf=true core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_true_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 737 - checkout attr=auto aeol=crlf core.autocrlf=true core.eol=native file=CRLF_mix_LF +ok 8 - resolve_ref(new-master) -expecting success of 0027.738 'checkout attr=auto aeol=crlf core.autocrlf=true core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_true_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 738 - checkout attr=auto aeol=crlf core.autocrlf=true core.eol=native file=LF_mix_CR +expecting success of 1405.9 'verify_ref(new-master)': + $RUN verify-ref refs/heads/new-master -expecting success of 0027.739 'checkout attr=auto aeol=crlf core.autocrlf=true core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_true_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 739 - checkout attr=auto aeol=crlf core.autocrlf=true core.eol=native file=LF_nul +ok 9 - verify_ref(new-master) -expecting success of 0027.740 'ls-files --eol attr=-text aeol= core.autocrlf=false core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 740 - ls-files --eol attr=-text aeol= core.autocrlf=false core.eol=native +expecting success of 1405.10 'for_each_reflog()': + $RUN for-each-reflog | sort -k2 | cut -d" " -f 2- >actual && + cat >expected <<-\EOF && + HEAD 0x1 + refs/heads/master 0x0 + refs/heads/new-master 0x0 + EOF + test_cmp expected actual -expecting success of 0027.741 'checkout attr=-text aeol= core.autocrlf=false core.eol=native file=LF': - compare_ws_file eol_native_crlf_false_attr_-text_ LF crlf_false_attr__LF.txt - -ok 741 - checkout attr=-text aeol= core.autocrlf=false core.eol=native file=LF +ok 10 - for_each_reflog() -expecting success of 0027.742 'checkout attr=-text aeol= core.autocrlf=false core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_false_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 742 - checkout attr=-text aeol= core.autocrlf=false core.eol=native file=CRLF +expecting success of 1405.11 'for_each_reflog_ent()': + $RUN for-each-reflog-ent HEAD >actual && + head -n1 actual | grep one && + tail -n2 actual | head -n1 | grep recreate-master -expecting success of 0027.743 'checkout attr=-text aeol= core.autocrlf=false core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_false_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 743 - checkout attr=-text aeol= core.autocrlf=false core.eol=native file=CRLF_mix_LF +0000000000000000000000000000000000000000 d79ce1670bdcb76e6d1da2ae095e890ccb326ae9 C O Mitter 1112911993 -700 commit (initial): one +0000000000000000000000000000000000000000 c90e4dc5e12224a428dedfbd45ba11e5531706a2 C O Mitter 1112912053 -700 commit (initial): recreate-master +ok 11 - for_each_reflog_ent() -expecting success of 0027.744 'checkout attr=-text aeol= core.autocrlf=false core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_false_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 744 - checkout attr=-text aeol= core.autocrlf=false core.eol=native file=LF_mix_CR +expecting success of 1405.12 'for_each_reflog_ent_reverse()': + $RUN for-each-reflog-ent-reverse HEAD >actual && + head -n1 actual | grep recreate-master && + tail -n2 actual | head -n1 | grep one -expecting success of 0027.745 'checkout attr=-text aeol= core.autocrlf=false core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_false_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 745 - checkout attr=-text aeol= core.autocrlf=false core.eol=native file=LF_nul +0000000000000000000000000000000000000000 c90e4dc5e12224a428dedfbd45ba11e5531706a2 C O Mitter 1112912053 -700 commit (initial): recreate-master +0000000000000000000000000000000000000000 d79ce1670bdcb76e6d1da2ae095e890ccb326ae9 C O Mitter 1112911993 -700 commit (initial): one +ok 12 - for_each_reflog_ent_reverse() -expecting success of 0027.746 'ls-files --eol attr=-text aeol=lf core.autocrlf=false core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 746 - ls-files --eol attr=-text aeol=lf core.autocrlf=false core.eol=native +expecting success of 1405.13 'reflog_exists(HEAD)': + $RUN reflog-exists HEAD -expecting success of 0027.747 'checkout attr=-text aeol=lf core.autocrlf=false core.eol=native file=LF': - compare_ws_file eol_native_crlf_false_attr_-text_ LF crlf_false_attr__LF.txt - -ok 747 - checkout attr=-text aeol=lf core.autocrlf=false core.eol=native file=LF +ok 13 - reflog_exists(HEAD) -expecting success of 0027.748 'checkout attr=-text aeol=lf core.autocrlf=false core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_false_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 748 - checkout attr=-text aeol=lf core.autocrlf=false core.eol=native file=CRLF +expecting success of 1405.14 'delete_reflog(HEAD)': + $RUN delete-reflog HEAD && + ! test -f .git/logs/HEAD -expecting success of 0027.749 'checkout attr=-text aeol=lf core.autocrlf=false core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_false_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 749 - checkout attr=-text aeol=lf core.autocrlf=false core.eol=native file=CRLF_mix_LF +ok 14 - delete_reflog(HEAD) -expecting success of 0027.750 'checkout attr=-text aeol=lf core.autocrlf=false core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_false_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 750 - checkout attr=-text aeol=lf core.autocrlf=false core.eol=native file=LF_mix_CR +expecting success of 1405.15 'create-reflog(HEAD)': + $RUN create-reflog HEAD 1 && + test -f .git/logs/HEAD -expecting success of 0027.751 'checkout attr=-text aeol=lf core.autocrlf=false core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_false_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 751 - checkout attr=-text aeol=lf core.autocrlf=false core.eol=native file=LF_nul +ok 15 - create-reflog(HEAD) -expecting success of 0027.752 'ls-files --eol attr=-text aeol=crlf core.autocrlf=false core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 752 - ls-files --eol attr=-text aeol=crlf core.autocrlf=false core.eol=native +expecting success of 1405.16 'delete_ref(refs/heads/foo)': + git checkout -b foo && + FOO_SHA1=`git rev-parse foo` && + git checkout --detach && + test_commit bar-commit && + git checkout -b bar && + BAR_SHA1=`git rev-parse bar` && + $RUN update-ref updating refs/heads/foo $BAR_SHA1 $FOO_SHA1 0 && + echo $BAR_SHA1 >expected && + git rev-parse refs/heads/foo >actual && + test_cmp expected actual -expecting success of 0027.753 'checkout attr=-text aeol=crlf core.autocrlf=false core.eol=native file=LF': - compare_ws_file eol_native_crlf_false_attr_-text_ LF crlf_false_attr__LF.txt - -ok 753 - checkout attr=-text aeol=crlf core.autocrlf=false core.eol=native file=LF +Switched to a new branch 'foo' +HEAD is now at c90e4dc recreate-master +[detached HEAD 1e995a9] bar-commit + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 bar-commit.t +Switched to a new branch 'bar' +ok 16 - delete_ref(refs/heads/foo) -expecting success of 0027.754 'checkout attr=-text aeol=crlf core.autocrlf=false core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_false_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 754 - checkout attr=-text aeol=crlf core.autocrlf=false core.eol=native file=CRLF +expecting success of 1405.17 'delete_ref(refs/heads/foo)': + SHA1=`git rev-parse foo` && + git checkout --detach && + $RUN delete-ref msg refs/heads/foo $SHA1 0 && + test_must_fail git rev-parse refs/heads/foo -- -expecting success of 0027.755 'checkout attr=-text aeol=crlf core.autocrlf=false core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_false_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 755 - checkout attr=-text aeol=crlf core.autocrlf=false core.eol=native file=CRLF_mix_LF +HEAD is now at 1e995a9 bar-commit +fatal: bad revision 'refs/heads/foo' +ok 17 - delete_ref(refs/heads/foo) -expecting success of 0027.756 'checkout attr=-text aeol=crlf core.autocrlf=false core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_false_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 756 - checkout attr=-text aeol=crlf core.autocrlf=false core.eol=native file=LF_mix_CR +# passed all 17 test(s) +1..17 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t1406-submodule-ref-store.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1406-submodule-ref-store/.git/ +expecting success of 1406.1 'setup': + git init sub && + ( + cd sub && + test_commit first && + git checkout -b new-master + ) -expecting success of 0027.757 'checkout attr=-text aeol=crlf core.autocrlf=false core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_false_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 757 - checkout attr=-text aeol=crlf core.autocrlf=false core.eol=native file=LF_nul +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1406-submodule-ref-store/sub/.git/ +[master (root-commit) 50e526b] first + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 first.t +Switched to a new branch 'new-master' +ok 1 - setup -expecting success of 0027.758 'ls-files --eol attr=text aeol=lf core.autocrlf=false core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 758 - ls-files --eol attr=text aeol=lf core.autocrlf=false core.eol=native +expecting success of 1406.2 'pack_refs() not allowed': + test_must_fail $RUN pack-refs 3 -expecting success of 0027.759 'checkout attr=text aeol=lf core.autocrlf=false core.eol=native file=LF': - compare_ws_file eol_native_crlf_false_attr_text_ LF crlf_false_attr__LF.txt - -ok 759 - checkout attr=text aeol=lf core.autocrlf=false core.eol=native file=LF +BUG: refs/files-backend.c:138: operation pack_refs requires abilities 0x6, but only have 0x5 +ok 2 - pack_refs() not allowed -expecting success of 0027.760 'checkout attr=text aeol=lf core.autocrlf=false core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 760 - checkout attr=text aeol=lf core.autocrlf=false core.eol=native file=CRLF +expecting success of 1406.3 'peel_ref(new-tag)': + git -C sub rev-parse HEAD >expected && + git -C sub tag -a -m new-tag new-tag HEAD && + $RUN peel-ref refs/tags/new-tag >actual && + test_cmp expected actual -expecting success of 0027.761 'checkout attr=text aeol=lf core.autocrlf=false core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_false_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 761 - checkout attr=text aeol=lf core.autocrlf=false core.eol=native file=CRLF_mix_LF +ok 3 - peel_ref(new-tag) -expecting success of 0027.762 'checkout attr=text aeol=lf core.autocrlf=false core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_false_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 762 - checkout attr=text aeol=lf core.autocrlf=false core.eol=native file=LF_mix_CR +expecting success of 1406.4 'create_symref() not allowed': + test_must_fail $RUN create-symref FOO refs/heads/master nothing -expecting success of 0027.763 'checkout attr=text aeol=lf core.autocrlf=false core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_false_attr_text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 763 - checkout attr=text aeol=lf core.autocrlf=false core.eol=native file=LF_nul +BUG: refs/files-backend.c:138: operation create_symref requires abilities 0x2, but only have 0x5 +ok 4 - create_symref() not allowed -expecting success of 0027.764 'ls-files --eol attr=text aeol=crlf core.autocrlf=false core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 764 - ls-files --eol attr=text aeol=crlf core.autocrlf=false core.eol=native +expecting success of 1406.5 'delete_refs() not allowed': + test_must_fail $RUN delete-refs 0 nothing FOO refs/tags/new-tag -expecting success of 0027.765 'checkout attr=text aeol=crlf core.autocrlf=false core.eol=native file=LF': - compare_ws_file eol_native_crlf_false_attr_text_ CRLF crlf_false_attr__LF.txt - -ok 765 - checkout attr=text aeol=crlf core.autocrlf=false core.eol=native file=LF +BUG: refs/files-backend.c:138: operation delete_refs requires abilities 0x2, but only have 0x5 +ok 5 - delete_refs() not allowed -expecting success of 0027.766 'checkout attr=text aeol=crlf core.autocrlf=false core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 766 - checkout attr=text aeol=crlf core.autocrlf=false core.eol=native file=CRLF +expecting success of 1406.6 'rename_refs() not allowed': + test_must_fail $RUN rename-ref refs/heads/master refs/heads/new-master -expecting success of 0027.767 'checkout attr=text aeol=crlf core.autocrlf=false core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt - -ok 767 - checkout attr=text aeol=crlf core.autocrlf=false core.eol=native file=CRLF_mix_LF +BUG: refs/files-backend.c:138: operation rename_ref requires abilities 0x2, but only have 0x5 +ok 6 - rename_refs() not allowed -expecting success of 0027.768 'checkout attr=text aeol=crlf core.autocrlf=false core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_false_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 768 - checkout attr=text aeol=crlf core.autocrlf=false core.eol=native file=LF_mix_CR +expecting success of 1406.7 'for_each_ref(refs/heads/)': + $RUN for-each-ref refs/heads/ | cut -d" " -f 2- >actual && + cat >expected <<-\EOF && + master 0x0 + new-master 0x0 + EOF + test_cmp expected actual -expecting success of 0027.769 'checkout attr=text aeol=crlf core.autocrlf=false core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_false_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt - -ok 769 - checkout attr=text aeol=crlf core.autocrlf=false core.eol=native file=LF_nul +ok 7 - for_each_ref(refs/heads/) -expecting success of 0027.770 'ls-files --eol attr=auto aeol=lf core.autocrlf=false core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 770 - ls-files --eol attr=auto aeol=lf core.autocrlf=false core.eol=native +expecting success of 1406.8 'for_each_ref() is sorted': + $RUN for-each-ref refs/heads/ | cut -d" " -f 2- >actual && + sort actual > expected && + test_cmp expected actual -expecting success of 0027.771 'checkout attr=auto aeol=lf core.autocrlf=false core.eol=native file=LF': - compare_ws_file eol_native_crlf_false_attr_auto_ LF crlf_false_attr__LF.txt - -ok 771 - checkout attr=auto aeol=lf core.autocrlf=false core.eol=native file=LF +ok 8 - for_each_ref() is sorted -expecting success of 0027.772 'checkout attr=auto aeol=lf core.autocrlf=false core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_false_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 772 - checkout attr=auto aeol=lf core.autocrlf=false core.eol=native file=CRLF +expecting success of 1406.9 'resolve_ref(master)': + SHA1=`git -C sub rev-parse master` && + echo "$SHA1 refs/heads/master 0x0" >expected && + $RUN resolve-ref refs/heads/master 0 >actual && + test_cmp expected actual -expecting success of 0027.773 'checkout attr=auto aeol=lf core.autocrlf=false core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_false_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 773 - checkout attr=auto aeol=lf core.autocrlf=false core.eol=native file=CRLF_mix_LF +ok 9 - resolve_ref(master) -expecting success of 0027.774 'checkout attr=auto aeol=lf core.autocrlf=false core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_false_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 774 - checkout attr=auto aeol=lf core.autocrlf=false core.eol=native file=LF_mix_CR +expecting success of 1406.10 'verify_ref(new-master)': + $RUN verify-ref refs/heads/new-master -expecting success of 0027.775 'checkout attr=auto aeol=lf core.autocrlf=false core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_false_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 775 - checkout attr=auto aeol=lf core.autocrlf=false core.eol=native file=LF_nul +ok 10 - verify_ref(new-master) -expecting success of 0027.776 'ls-files --eol attr=auto aeol=crlf core.autocrlf=false core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 776 - ls-files --eol attr=auto aeol=crlf core.autocrlf=false core.eol=native +expecting success of 1406.11 'for_each_reflog()': + $RUN for-each-reflog | sort | cut -d" " -f 2- >actual && + cat >expected <<-\EOF && + HEAD 0x1 + refs/heads/master 0x0 + refs/heads/new-master 0x0 + EOF + test_cmp expected actual -expecting success of 0027.777 'checkout attr=auto aeol=crlf core.autocrlf=false core.eol=native file=LF': - compare_ws_file eol_native_crlf_false_attr_auto_ CRLF crlf_false_attr__LF.txt - -ok 777 - checkout attr=auto aeol=crlf core.autocrlf=false core.eol=native file=LF +ok 11 - for_each_reflog() -expecting success of 0027.778 'checkout attr=auto aeol=crlf core.autocrlf=false core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_false_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 778 - checkout attr=auto aeol=crlf core.autocrlf=false core.eol=native file=CRLF +expecting success of 1406.12 'for_each_reflog_ent()': + $RUN for-each-reflog-ent HEAD >actual && + head -n1 actual | grep first && + tail -n2 actual | head -n1 | grep master.to.new -expecting success of 0027.779 'checkout attr=auto aeol=crlf core.autocrlf=false core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_false_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 779 - checkout attr=auto aeol=crlf core.autocrlf=false core.eol=native file=CRLF_mix_LF +0000000000000000000000000000000000000000 50e526bb426771f6036ad3a8b0c81d511d91fc2a C O Mitter 1112911993 -700 commit (initial): first +50e526bb426771f6036ad3a8b0c81d511d91fc2a 50e526bb426771f6036ad3a8b0c81d511d91fc2a C O Mitter 1112911993 -700 checkout: moving from master to new-master +ok 12 - for_each_reflog_ent() -expecting success of 0027.780 'checkout attr=auto aeol=crlf core.autocrlf=false core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_false_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 780 - checkout attr=auto aeol=crlf core.autocrlf=false core.eol=native file=LF_mix_CR +expecting success of 1406.13 'for_each_reflog_ent_reverse()': + $RUN for-each-reflog-ent-reverse HEAD >actual && + head -n1 actual | grep master.to.new && + tail -n2 actual | head -n1 | grep first -expecting success of 0027.781 'checkout attr=auto aeol=crlf core.autocrlf=false core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_false_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 781 - checkout attr=auto aeol=crlf core.autocrlf=false core.eol=native file=LF_nul +50e526bb426771f6036ad3a8b0c81d511d91fc2a 50e526bb426771f6036ad3a8b0c81d511d91fc2a C O Mitter 1112911993 -700 checkout: moving from master to new-master +0000000000000000000000000000000000000000 50e526bb426771f6036ad3a8b0c81d511d91fc2a C O Mitter 1112911993 -700 commit (initial): first +ok 13 - for_each_reflog_ent_reverse() -expecting success of 0027.782 'ls-files --eol attr=-text aeol= core.autocrlf=input core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 782 - ls-files --eol attr=-text aeol= core.autocrlf=input core.eol=native +expecting success of 1406.14 'reflog_exists(HEAD)': + $RUN reflog-exists HEAD -expecting success of 0027.783 'checkout attr=-text aeol= core.autocrlf=input core.eol=native file=LF': - compare_ws_file eol_native_crlf_input_attr_-text_ LF crlf_false_attr__LF.txt - -ok 783 - checkout attr=-text aeol= core.autocrlf=input core.eol=native file=LF +ok 14 - reflog_exists(HEAD) -expecting success of 0027.784 'checkout attr=-text aeol= core.autocrlf=input core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_input_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 784 - checkout attr=-text aeol= core.autocrlf=input core.eol=native file=CRLF +expecting success of 1406.15 'delete_reflog() not allowed': + test_must_fail $RUN delete-reflog HEAD -expecting success of 0027.785 'checkout attr=-text aeol= core.autocrlf=input core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_input_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 785 - checkout attr=-text aeol= core.autocrlf=input core.eol=native file=CRLF_mix_LF +BUG: refs/files-backend.c:138: operation delete_reflog requires abilities 0x2, but only have 0x5 +ok 15 - delete_reflog() not allowed -expecting success of 0027.786 'checkout attr=-text aeol= core.autocrlf=input core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_input_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 786 - checkout attr=-text aeol= core.autocrlf=input core.eol=native file=LF_mix_CR +expecting success of 1406.16 'create-reflog() not allowed': + test_must_fail $RUN create-reflog HEAD 1 -expecting success of 0027.787 'checkout attr=-text aeol= core.autocrlf=input core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_input_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 787 - checkout attr=-text aeol= core.autocrlf=input core.eol=native file=LF_nul +BUG: refs/files-backend.c:138: operation create_reflog requires abilities 0x2, but only have 0x5 +ok 16 - create-reflog() not allowed -expecting success of 0027.788 'ls-files --eol attr=-text aeol=lf core.autocrlf=input core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 788 - ls-files --eol attr=-text aeol=lf core.autocrlf=input core.eol=native +# passed all 16 test(s) +1..16 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t1407-worktree-ref-store.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1407-worktree-ref-store/.git/ +expecting success of 1407.1 'setup': + test_commit first && + git worktree add -b wt-master wt && + ( + cd wt && + test_commit second + ) -expecting success of 0027.789 'checkout attr=-text aeol=lf core.autocrlf=input core.eol=native file=LF': - compare_ws_file eol_native_crlf_input_attr_-text_ LF crlf_false_attr__LF.txt - -ok 789 - checkout attr=-text aeol=lf core.autocrlf=input core.eol=native file=LF +[master (root-commit) 50e526b] first + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 first.t +Preparing worktree (new branch 'wt-master') +HEAD is now at 50e526b first +[wt-master d662100] second + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 second.t +ok 1 - setup -expecting success of 0027.790 'checkout attr=-text aeol=lf core.autocrlf=input core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_input_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 790 - checkout attr=-text aeol=lf core.autocrlf=input core.eol=native file=CRLF +expecting success of 1407.2 'resolve_ref()': + SHA1=`git rev-parse master` && + echo "$SHA1 refs/heads/master 0x0" >expected && + $RWT resolve-ref refs/heads/master 0 >actual && + test_cmp expected actual && + $RMAIN resolve-ref refs/heads/master 0 >actual && + test_cmp expected actual -expecting success of 0027.791 'checkout attr=-text aeol=lf core.autocrlf=input core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_input_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 791 - checkout attr=-text aeol=lf core.autocrlf=input core.eol=native file=CRLF_mix_LF +ok 2 - resolve_ref() -expecting success of 0027.792 'checkout attr=-text aeol=lf core.autocrlf=input core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_input_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 792 - checkout attr=-text aeol=lf core.autocrlf=input core.eol=native file=LF_mix_CR +expecting success of 1407.3 'resolve_ref()': + SHA1=`git -C wt rev-parse HEAD` && + echo "$SHA1 refs/heads/wt-master 0x1" >expected && + $RWT resolve-ref HEAD 0 >actual && + test_cmp expected actual && -expecting success of 0027.793 'checkout attr=-text aeol=lf core.autocrlf=input core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_input_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 793 - checkout attr=-text aeol=lf core.autocrlf=input core.eol=native file=LF_nul + SHA1=`git rev-parse HEAD` && + echo "$SHA1 refs/heads/master 0x1" >expected && + $RMAIN resolve-ref HEAD 0 >actual && + test_cmp expected actual -expecting success of 0027.794 'ls-files --eol attr=-text aeol=crlf core.autocrlf=input core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 794 - ls-files --eol attr=-text aeol=crlf core.autocrlf=input core.eol=native +ok 3 - resolve_ref() -expecting success of 0027.795 'checkout attr=-text aeol=crlf core.autocrlf=input core.eol=native file=LF': - compare_ws_file eol_native_crlf_input_attr_-text_ LF crlf_false_attr__LF.txt - -ok 795 - checkout attr=-text aeol=crlf core.autocrlf=input core.eol=native file=LF +expecting success of 1407.4 'create_symref(FOO, refs/heads/master)': + $RWT create-symref FOO refs/heads/master nothing && + echo refs/heads/master >expected && + git -C wt symbolic-ref FOO >actual && + test_cmp expected actual && -expecting success of 0027.796 'checkout attr=-text aeol=crlf core.autocrlf=input core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_input_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 796 - checkout attr=-text aeol=crlf core.autocrlf=input core.eol=native file=CRLF + $RMAIN create-symref FOO refs/heads/wt-master nothing && + echo refs/heads/wt-master >expected && + git symbolic-ref FOO >actual && + test_cmp expected actual -expecting success of 0027.797 'checkout attr=-text aeol=crlf core.autocrlf=input core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_input_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 797 - checkout attr=-text aeol=crlf core.autocrlf=input core.eol=native file=CRLF_mix_LF +ok 4 - create_symref(FOO, refs/heads/master) -expecting success of 0027.798 'checkout attr=-text aeol=crlf core.autocrlf=input core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_input_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 798 - checkout attr=-text aeol=crlf core.autocrlf=input core.eol=native file=LF_mix_CR +expecting success of 1407.5 'for_each_reflog()': + echo $ZERO_OID > .git/logs/PSEUDO-MAIN && + mkdir -p .git/logs/refs/bisect && + echo $ZERO_OID > .git/logs/refs/bisect/random && -expecting success of 0027.799 'checkout attr=-text aeol=crlf core.autocrlf=input core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_input_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 799 - checkout attr=-text aeol=crlf core.autocrlf=input core.eol=native file=LF_nul + echo $ZERO_OID > .git/worktrees/wt/logs/PSEUDO-WT && + mkdir -p .git/worktrees/wt/logs/refs/bisect && + echo $ZERO_OID > .git/worktrees/wt/logs/refs/bisect/wt-random && -expecting success of 0027.800 'ls-files --eol attr=text aeol=lf core.autocrlf=input core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 800 - ls-files --eol attr=text aeol=lf core.autocrlf=input core.eol=native + $RWT for-each-reflog | cut -d" " -f 2- | sort >actual && + cat >expected <<-\EOF && + HEAD 0x1 + PSEUDO-WT 0x0 + refs/bisect/wt-random 0x0 + refs/heads/master 0x0 + refs/heads/wt-master 0x0 + EOF + test_cmp expected actual && -expecting success of 0027.801 'checkout attr=text aeol=lf core.autocrlf=input core.eol=native file=LF': - compare_ws_file eol_native_crlf_input_attr_text_ LF crlf_false_attr__LF.txt - -ok 801 - checkout attr=text aeol=lf core.autocrlf=input core.eol=native file=LF + $RMAIN for-each-reflog | cut -d" " -f 2- | sort >actual && + cat >expected <<-\EOF && + HEAD 0x1 + PSEUDO-MAIN 0x0 + refs/bisect/random 0x0 + refs/heads/master 0x0 + refs/heads/wt-master 0x0 + EOF + test_cmp expected actual -expecting success of 0027.802 'checkout attr=text aeol=lf core.autocrlf=input core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 802 - checkout attr=text aeol=lf core.autocrlf=input core.eol=native file=CRLF +ok 5 - for_each_reflog() -expecting success of 0027.803 'checkout attr=text aeol=lf core.autocrlf=input core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_input_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 803 - checkout attr=text aeol=lf core.autocrlf=input core.eol=native file=CRLF_mix_LF +# passed all 5 test(s) +1..5 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t1408-packed-refs.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1408-packed-refs/.git/ +expecting success of 1408.1 'setup': + test_tick && + git commit --allow-empty -m one && + one=$(git rev-parse HEAD) && + git for-each-ref >actual && + echo "$one commit refs/heads/master" >expect && + test_cmp expect actual && -expecting success of 0027.804 'checkout attr=text aeol=lf core.autocrlf=input core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_input_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 804 - checkout attr=text aeol=lf core.autocrlf=input core.eol=native file=LF_mix_CR + git pack-refs --all && + git for-each-ref >actual && + echo "$one commit refs/heads/master" >expect && + test_cmp expect actual && -expecting success of 0027.805 'checkout attr=text aeol=lf core.autocrlf=input core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_input_attr_text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 805 - checkout attr=text aeol=lf core.autocrlf=input core.eol=native file=LF_nul + git checkout --orphan another && + test_tick && + git commit --allow-empty -m two && + two=$(git rev-parse HEAD) && + git checkout -B master && + git branch -D another && -expecting success of 0027.806 'ls-files --eol attr=text aeol=crlf core.autocrlf=input core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 806 - ls-files --eol attr=text aeol=crlf core.autocrlf=input core.eol=native + git for-each-ref >actual && + echo "$two commit refs/heads/master" >expect && + test_cmp expect actual && -expecting success of 0027.807 'checkout attr=text aeol=crlf core.autocrlf=input core.eol=native file=LF': - compare_ws_file eol_native_crlf_input_attr_text_ CRLF crlf_false_attr__LF.txt - -ok 807 - checkout attr=text aeol=crlf core.autocrlf=input core.eol=native file=LF + git reflog expire --expire=now --all && + git prune && + git tag -m v1.0 v1.0 master -expecting success of 0027.808 'checkout attr=text aeol=crlf core.autocrlf=input core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 808 - checkout attr=text aeol=crlf core.autocrlf=input core.eol=native file=CRLF +[master (root-commit) 76a57ce] one + Author: A U Thor +Switched to a new branch 'another' +[another (root-commit) 169e1dc] two + Author: A U Thor +Switched to and reset branch 'master' +Deleted branch another (was 169e1dc). +ok 1 - setup -expecting success of 0027.809 'checkout attr=text aeol=crlf core.autocrlf=input core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt - -ok 809 - checkout attr=text aeol=crlf core.autocrlf=input core.eol=native file=CRLF_mix_LF +expecting success of 1408.2 'no error from stale entry in packed-refs': + git describe master >actual 2>&1 && + echo "v1.0" >expect && + test_cmp expect actual -expecting success of 0027.810 'checkout attr=text aeol=crlf core.autocrlf=input core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_input_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 810 - checkout attr=text aeol=crlf core.autocrlf=input core.eol=native file=LF_mix_CR +ok 2 - no error from stale entry in packed-refs -expecting success of 0027.811 'checkout attr=text aeol=crlf core.autocrlf=input core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_input_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt - -ok 811 - checkout attr=text aeol=crlf core.autocrlf=input core.eol=native file=LF_nul +# passed all 2 test(s) +1..2 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t1409-avoid-packing-refs.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1409-avoid-packing-refs/.git/ +expecting success of 1409.1 'setup': + git commit --allow-empty -m "Commit A" && + A=$(git rev-parse HEAD) && + git commit --allow-empty -m "Commit B" && + B=$(git rev-parse HEAD) && + git commit --allow-empty -m "Commit C" && + C=$(git rev-parse HEAD) -expecting success of 0027.812 'ls-files --eol attr=auto aeol=lf core.autocrlf=input core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 812 - ls-files --eol attr=auto aeol=lf core.autocrlf=input core.eol=native +[master (root-commit) 8d09622] Commit A + Author: A U Thor +[master 241b9d6] Commit B + Author: A U Thor +[master 8d1dbac] Commit C + Author: A U Thor +ok 1 - setup -expecting success of 0027.813 'checkout attr=auto aeol=lf core.autocrlf=input core.eol=native file=LF': - compare_ws_file eol_native_crlf_input_attr_auto_ LF crlf_false_attr__LF.txt - -ok 813 - checkout attr=auto aeol=lf core.autocrlf=input core.eol=native file=LF +expecting success of 1409.2 'do not create packed-refs file gratuitously': + test_path_is_missing .git/packed-refs && + git update-ref refs/heads/foo $A && + test_path_is_missing .git/packed-refs && + git update-ref refs/heads/foo $B && + test_path_is_missing .git/packed-refs && + git update-ref refs/heads/foo $C $B && + test_path_is_missing .git/packed-refs && + git update-ref -d refs/heads/foo && + test_path_is_missing .git/packed-refs -expecting success of 0027.814 'checkout attr=auto aeol=lf core.autocrlf=input core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_input_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 814 - checkout attr=auto aeol=lf core.autocrlf=input core.eol=native file=CRLF +ok 2 - do not create packed-refs file gratuitously -expecting success of 0027.815 'checkout attr=auto aeol=lf core.autocrlf=input core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_input_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 815 - checkout attr=auto aeol=lf core.autocrlf=input core.eol=native file=CRLF_mix_LF +expecting success of 1409.3 'check that marking the packed-refs file works': + git for-each-ref >expected && + git pack-refs --all && + mark_packed_refs && + check_packed_refs_marked && + git for-each-ref >actual && + test_cmp expected actual && + git pack-refs --all && + ! check_packed_refs_marked && + git for-each-ref >actual2 && + test_cmp expected actual2 -expecting success of 0027.816 'checkout attr=auto aeol=lf core.autocrlf=input core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_input_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 816 - checkout attr=auto aeol=lf core.autocrlf=input core.eol=native file=LF_mix_CR +ok 3 - check that marking the packed-refs file works -expecting success of 0027.817 'checkout attr=auto aeol=lf core.autocrlf=input core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_input_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 817 - checkout attr=auto aeol=lf core.autocrlf=input core.eol=native file=LF_nul +expecting success of 1409.4 'leave packed-refs untouched on update of packed': + git update-ref refs/heads/packed-update $A && + git pack-refs --all && + mark_packed_refs && + git update-ref refs/heads/packed-update $B && + check_packed_refs_marked -expecting success of 0027.818 'ls-files --eol attr=auto aeol=crlf core.autocrlf=input core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 818 - ls-files --eol attr=auto aeol=crlf core.autocrlf=input core.eol=native +ok 4 - leave packed-refs untouched on update of packed -expecting success of 0027.819 'checkout attr=auto aeol=crlf core.autocrlf=input core.eol=native file=LF': - compare_ws_file eol_native_crlf_input_attr_auto_ CRLF crlf_false_attr__LF.txt - -ok 819 - checkout attr=auto aeol=crlf core.autocrlf=input core.eol=native file=LF +expecting success of 1409.5 'leave packed-refs untouched on checked update of packed': + git update-ref refs/heads/packed-checked-update $A && + git pack-refs --all && + mark_packed_refs && + git update-ref refs/heads/packed-checked-update $B $A && + check_packed_refs_marked -expecting success of 0027.820 'checkout attr=auto aeol=crlf core.autocrlf=input core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_input_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 820 - checkout attr=auto aeol=crlf core.autocrlf=input core.eol=native file=CRLF +ok 5 - leave packed-refs untouched on checked update of packed -expecting success of 0027.821 'checkout attr=auto aeol=crlf core.autocrlf=input core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_input_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 821 - checkout attr=auto aeol=crlf core.autocrlf=input core.eol=native file=CRLF_mix_LF +expecting success of 1409.6 'leave packed-refs untouched on verify of packed': + git update-ref refs/heads/packed-verify $A && + git pack-refs --all && + mark_packed_refs && + echo "verify refs/heads/packed-verify $A" | git update-ref --stdin && + check_packed_refs_marked -expecting success of 0027.822 'checkout attr=auto aeol=crlf core.autocrlf=input core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_input_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 822 - checkout attr=auto aeol=crlf core.autocrlf=input core.eol=native file=LF_mix_CR +ok 6 - leave packed-refs untouched on verify of packed -expecting success of 0027.823 'checkout attr=auto aeol=crlf core.autocrlf=input core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_input_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 823 - checkout attr=auto aeol=crlf core.autocrlf=input core.eol=native file=LF_nul +expecting success of 1409.7 'touch packed-refs on delete of packed': + git update-ref refs/heads/packed-delete $A && + git pack-refs --all && + mark_packed_refs && + git update-ref -d refs/heads/packed-delete && + ! check_packed_refs_marked -expecting success of 0027.824 'ls-files --eol attr= aeol= core.autocrlf=false core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 824 - ls-files --eol attr= aeol= core.autocrlf=false core.eol=native +ok 7 - touch packed-refs on delete of packed -expecting success of 0027.825 'checkout attr= aeol= core.autocrlf=false core.eol=native file=LF': - compare_ws_file eol_native_crlf_false_attr__ LF crlf_false_attr__LF.txt - -ok 825 - checkout attr= aeol= core.autocrlf=false core.eol=native file=LF +expecting success of 1409.8 'leave packed-refs untouched on update of loose': + git pack-refs --all && + git update-ref refs/heads/loose-update $A && + mark_packed_refs && + git update-ref refs/heads/loose-update $B && + check_packed_refs_marked -expecting success of 0027.826 'checkout attr= aeol= core.autocrlf=false core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_false_attr__ CRLF crlf_false_attr__CRLF.txt - -ok 826 - checkout attr= aeol= core.autocrlf=false core.eol=native file=CRLF +ok 8 - leave packed-refs untouched on update of loose -expecting success of 0027.827 'checkout attr= aeol= core.autocrlf=false core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_false_attr__ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 827 - checkout attr= aeol= core.autocrlf=false core.eol=native file=CRLF_mix_LF +expecting success of 1409.9 'leave packed-refs untouched on checked update of loose': + git pack-refs --all && + git update-ref refs/heads/loose-checked-update $A && + mark_packed_refs && + git update-ref refs/heads/loose-checked-update $B $A && + check_packed_refs_marked -expecting success of 0027.828 'checkout attr= aeol= core.autocrlf=false core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_false_attr__ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 828 - checkout attr= aeol= core.autocrlf=false core.eol=native file=LF_mix_CR +ok 9 - leave packed-refs untouched on checked update of loose -expecting success of 0027.829 'checkout attr= aeol= core.autocrlf=false core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_false_attr__ LF_nul crlf_false_attr__LF_nul.txt - -ok 829 - checkout attr= aeol= core.autocrlf=false core.eol=native file=LF_nul +expecting success of 1409.10 'leave packed-refs untouched on verify of loose': + git pack-refs --all && + git update-ref refs/heads/loose-verify $A && + mark_packed_refs && + echo "verify refs/heads/loose-verify $A" | git update-ref --stdin && + check_packed_refs_marked -expecting success of 0027.830 'ls-files --eol attr= aeol= core.autocrlf=true core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 830 - ls-files --eol attr= aeol= core.autocrlf=true core.eol=native +ok 10 - leave packed-refs untouched on verify of loose -expecting success of 0027.831 'checkout attr= aeol= core.autocrlf=true core.eol=native file=LF': - compare_ws_file eol_native_crlf_true_attr__ CRLF crlf_false_attr__LF.txt - -ok 831 - checkout attr= aeol= core.autocrlf=true core.eol=native file=LF +expecting success of 1409.11 'leave packed-refs untouched on delete of loose': + git pack-refs --all && + git update-ref refs/heads/loose-delete $A && + mark_packed_refs && + git update-ref -d refs/heads/loose-delete && + check_packed_refs_marked -expecting success of 0027.832 'checkout attr= aeol= core.autocrlf=true core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_true_attr__ CRLF crlf_false_attr__CRLF.txt - -ok 832 - checkout attr= aeol= core.autocrlf=true core.eol=native file=CRLF +ok 11 - leave packed-refs untouched on delete of loose -expecting success of 0027.833 'checkout attr= aeol= core.autocrlf=true core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_true_attr__ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 833 - checkout attr= aeol= core.autocrlf=true core.eol=native file=CRLF_mix_LF +# passed all 11 test(s) +1..11 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t1411-reflog-show.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1411-reflog-show/.git/ +expecting success of 1411.1 'setup': + echo content >file && + git add file && + test_tick && + git commit -m one -expecting success of 0027.834 'checkout attr= aeol= core.autocrlf=true core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_true_attr__ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 834 - checkout attr= aeol= core.autocrlf=true core.eol=native file=LF_mix_CR +[master (root-commit) e46513e] one + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file +ok 1 - setup -expecting success of 0027.835 'checkout attr= aeol= core.autocrlf=true core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_true_attr__ LF_nul crlf_false_attr__LF_nul.txt - -ok 835 - checkout attr= aeol= core.autocrlf=true core.eol=native file=LF_nul +expecting success of 1411.2 'log -g shows reflog headers': + git log -g -1 >tmp && + grep ^Reflog actual && + test_cmp expect actual -expecting success of 0027.836 'ls-files --eol attr=auto aeol= core.autocrlf=true core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 836 - ls-files --eol attr=auto aeol= core.autocrlf=true core.eol=native +ok 2 - log -g shows reflog headers -expecting success of 0027.837 'checkout attr=auto aeol= core.autocrlf=true core.eol=native file=LF': - compare_ws_file eol_native_crlf_true_attr_auto_ CRLF crlf_false_attr__LF.txt - -ok 837 - checkout attr=auto aeol= core.autocrlf=true core.eol=native file=LF +expecting success of 1411.3 'oneline reflog format': + git log -g -1 --oneline >actual && + test_cmp expect actual -expecting success of 0027.838 'checkout attr=auto aeol= core.autocrlf=true core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_true_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 838 - checkout attr=auto aeol= core.autocrlf=true core.eol=native file=CRLF +ok 3 - oneline reflog format -expecting success of 0027.839 'checkout attr=auto aeol= core.autocrlf=true core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_true_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 839 - checkout attr=auto aeol= core.autocrlf=true core.eol=native file=CRLF_mix_LF +expecting success of 1411.4 'reflog default format': + git reflog -1 >actual && + test_cmp expect actual -expecting success of 0027.840 'checkout attr=auto aeol= core.autocrlf=true core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_true_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 840 - checkout attr=auto aeol= core.autocrlf=true core.eol=native file=LF_mix_CR +ok 4 - reflog default format -expecting success of 0027.841 'checkout attr=auto aeol= core.autocrlf=true core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_true_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 841 - checkout attr=auto aeol= core.autocrlf=true core.eol=native file=LF_nul +expecting success of 1411.5 'override reflog default format': + git reflog --format=short -1 >actual && + test_cmp expect actual -expecting success of 0027.842 'ls-files --eol attr=text aeol= core.autocrlf=true core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 842 - ls-files --eol attr=text aeol= core.autocrlf=true core.eol=native +ok 5 - override reflog default format -expecting success of 0027.843 'checkout attr=text aeol= core.autocrlf=true core.eol=native file=LF': - compare_ws_file eol_native_crlf_true_attr_text_ CRLF crlf_false_attr__LF.txt - -ok 843 - checkout attr=text aeol= core.autocrlf=true core.eol=native file=LF +expecting success of 1411.6 'using @{now} syntax shows reflog date (multiline)': + git log -g -1 HEAD@{now} >tmp && + grep ^Reflog actual && + test_cmp expect actual -expecting success of 0027.844 'checkout attr=text aeol= core.autocrlf=true core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 844 - checkout attr=text aeol= core.autocrlf=true core.eol=native file=CRLF +ok 6 - using @{now} syntax shows reflog date (multiline) -expecting success of 0027.845 'checkout attr=text aeol= core.autocrlf=true core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt - -ok 845 - checkout attr=text aeol= core.autocrlf=true core.eol=native file=CRLF_mix_LF +expecting success of 1411.7 'using @{now} syntax shows reflog date (oneline)': + git log -g -1 --oneline HEAD@{now} >actual && + test_cmp expect actual -expecting success of 0027.846 'checkout attr=text aeol= core.autocrlf=true core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_true_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 846 - checkout attr=text aeol= core.autocrlf=true core.eol=native file=LF_mix_CR +ok 7 - using @{now} syntax shows reflog date (oneline) -expecting success of 0027.847 'checkout attr=text aeol= core.autocrlf=true core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_true_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt - -ok 847 - checkout attr=text aeol= core.autocrlf=true core.eol=native file=LF_nul +expecting success of 1411.8 'using @{now} syntax shows reflog date (format=%gd)': + git log -g -1 --format=%gd HEAD@{now} >actual && + test_cmp expect actual -expecting success of 0027.848 'ls-files --eol attr=text aeol= core.autocrlf=input core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 848 - ls-files --eol attr=text aeol= core.autocrlf=input core.eol=native +ok 8 - using @{now} syntax shows reflog date (format=%gd) -expecting success of 0027.849 'checkout attr=text aeol= core.autocrlf=input core.eol=native file=LF': - compare_ws_file eol_native_crlf_input_attr_text_ LF crlf_false_attr__LF.txt - -ok 849 - checkout attr=text aeol= core.autocrlf=input core.eol=native file=LF +expecting success of 1411.9 'using --date= shows reflog date (multiline)': + git log -g -1 --date=default >tmp && + grep ^Reflog actual && + test_cmp expect actual -expecting success of 0027.850 'checkout attr=text aeol= core.autocrlf=input core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 850 - checkout attr=text aeol= core.autocrlf=input core.eol=native file=CRLF +ok 9 - using --date= shows reflog date (multiline) -expecting success of 0027.851 'checkout attr=text aeol= core.autocrlf=input core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_input_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 851 - checkout attr=text aeol= core.autocrlf=input core.eol=native file=CRLF_mix_LF +expecting success of 1411.10 'using --date= shows reflog date (oneline)': + git log -g -1 --oneline --date=default >actual && + test_cmp expect actual -expecting success of 0027.852 'checkout attr=text aeol= core.autocrlf=input core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_input_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 852 - checkout attr=text aeol= core.autocrlf=input core.eol=native file=LF_mix_CR +ok 10 - using --date= shows reflog date (oneline) -expecting success of 0027.853 'checkout attr=text aeol= core.autocrlf=input core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_input_attr_text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 853 - checkout attr=text aeol= core.autocrlf=input core.eol=native file=LF_nul +expecting success of 1411.11 'using --date= shows reflog date (format=%gd)': + git log -g -1 --format=%gd --date=raw >actual && + test_cmp expect actual -expecting success of 0027.854 'ls-files --eol attr=auto aeol= core.autocrlf=input core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 854 - ls-files --eol attr=auto aeol= core.autocrlf=input core.eol=native +ok 11 - using --date= shows reflog date (format=%gd) -expecting success of 0027.855 'checkout attr=auto aeol= core.autocrlf=input core.eol=native file=LF': - compare_ws_file eol_native_crlf_input_attr_auto_ LF crlf_false_attr__LF.txt - -ok 855 - checkout attr=auto aeol= core.autocrlf=input core.eol=native file=LF +expecting success of 1411.12 'log.date does not invoke "--date" magic (multiline)': + test_config log.date raw && + git log -g -1 >tmp && + grep ^Reflog actual && + test_cmp expect actual -expecting success of 0027.856 'checkout attr=auto aeol= core.autocrlf=input core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_input_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 856 - checkout attr=auto aeol= core.autocrlf=input core.eol=native file=CRLF +ok 12 - log.date does not invoke "--date" magic (multiline) -expecting success of 0027.857 'checkout attr=auto aeol= core.autocrlf=input core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_input_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 857 - checkout attr=auto aeol= core.autocrlf=input core.eol=native file=CRLF_mix_LF +expecting success of 1411.13 'log.date does not invoke "--date" magic (oneline)': + test_config log.date raw && + git log -g -1 --oneline >actual && + test_cmp expect actual -expecting success of 0027.858 'checkout attr=auto aeol= core.autocrlf=input core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_input_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 858 - checkout attr=auto aeol= core.autocrlf=input core.eol=native file=LF_mix_CR +ok 13 - log.date does not invoke "--date" magic (oneline) -expecting success of 0027.859 'checkout attr=auto aeol= core.autocrlf=input core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_input_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 859 - checkout attr=auto aeol= core.autocrlf=input core.eol=native file=LF_nul +expecting success of 1411.14 'log.date does not invoke "--date" magic (format=%gd)': + test_config log.date raw && + git log -g -1 --format=%gd >actual && + test_cmp expect actual -expecting success of 0027.860 'ls-files --eol attr=text aeol= core.autocrlf=false core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 860 - ls-files --eol attr=text aeol= core.autocrlf=false core.eol=crlf +ok 14 - log.date does not invoke "--date" magic (format=%gd) -expecting success of 0027.861 'checkout attr=text aeol= core.autocrlf=false core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF crlf_false_attr__LF.txt - -ok 861 - checkout attr=text aeol= core.autocrlf=false core.eol=crlf file=LF +expecting success of 1411.15 '--date magic does not override explicit @{0} syntax': + git log -g -1 --format=%gd --date=raw HEAD@{0} >actual && + test_cmp expect actual -expecting success of 0027.862 'checkout attr=text aeol= core.autocrlf=false core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 862 - checkout attr=text aeol= core.autocrlf=false core.eol=crlf file=CRLF +ok 15 - --date magic does not override explicit @{0} syntax -expecting success of 0027.863 'checkout attr=text aeol= core.autocrlf=false core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt - -ok 863 - checkout attr=text aeol= core.autocrlf=false core.eol=crlf file=CRLF_mix_LF +expecting success of 1411.16 'empty reflog file': + git branch empty && + git reflog expire --expire=all refs/heads/empty && -expecting success of 0027.864 'checkout attr=text aeol= core.autocrlf=false core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 864 - checkout attr=text aeol= core.autocrlf=false core.eol=crlf file=LF_mix_CR + git log -g empty >actual && + test_must_be_empty actual -expecting success of 0027.865 'checkout attr=text aeol= core.autocrlf=false core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt - -ok 865 - checkout attr=text aeol= core.autocrlf=false core.eol=crlf file=LF_nul +ok 16 - empty reflog file -expecting success of 0027.866 'ls-files --eol attr=text aeol= core.autocrlf=false core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 866 - ls-files --eol attr=text aeol= core.autocrlf=false core.eol=lf +expecting success of 1411.17 'git log -g -p shows diffs vs. parents': + test_commit two && + git branch flipflop && + git update-ref refs/heads/flipflop -m flip1 HEAD^ && + git update-ref refs/heads/flipflop -m flop1 HEAD && + git update-ref refs/heads/flipflop -m flip2 HEAD^ && + git log -g -p flipflop >reflog && + grep -v ^Reflog reflog >actual && + git log -1 -p HEAD^ >log.one && + git log -1 -p HEAD >log.two && + ( + cat log.one && echo && + cat log.two && echo && + cat log.one && echo && + cat log.two + ) >expect && + test_cmp expect actual -expecting success of 0027.867 'checkout attr=text aeol= core.autocrlf=false core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_false_attr_text_ LF crlf_false_attr__LF.txt - -ok 867 - checkout attr=text aeol= core.autocrlf=false core.eol=lf file=LF +[master fc3e0aa] two + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 two.t +ok 17 - git log -g -p shows diffs vs. parents -expecting success of 0027.868 'checkout attr=text aeol= core.autocrlf=false core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 868 - checkout attr=text aeol= core.autocrlf=false core.eol=lf file=CRLF +expecting success of 1411.18 'reflog exists works': + git reflog exists refs/heads/master && + ! git reflog exists refs/heads/nonexistent -expecting success of 0027.869 'checkout attr=text aeol= core.autocrlf=false core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_false_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 869 - checkout attr=text aeol= core.autocrlf=false core.eol=lf file=CRLF_mix_LF +ok 18 - reflog exists works -expecting success of 0027.870 'checkout attr=text aeol= core.autocrlf=false core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_false_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 870 - checkout attr=text aeol= core.autocrlf=false core.eol=lf file=LF_mix_CR +# passed all 18 test(s) +1..18 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t1412-reflog-loop.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1412-reflog-loop/.git/ +expecting success of 1412.1 'setup commits': + test_tick && + echo content >file && git add file && git commit -m one && + git tag one && + echo content >>file && git add file && git commit -m two && + git tag two -expecting success of 0027.871 'checkout attr=text aeol= core.autocrlf=false core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_false_attr_text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 871 - checkout attr=text aeol= core.autocrlf=false core.eol=lf file=LF_nul +[master (root-commit) e46513e] one + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file +[master 441e5e0] two + Author: A U Thor + 1 file changed, 1 insertion(+) +ok 1 - setup commits -expecting success of 0027.872 'ls-files --eol attr=text aeol= core.autocrlf=false core.eol=': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 872 - ls-files --eol attr=text aeol= core.autocrlf=false core.eol= +expecting success of 1412.2 'setup reflog with alternating commits': + git checkout -b topic && + git reset one && + git reset two && + git reset one && + git reset two -expecting success of 0027.873 'checkout attr=text aeol= core.autocrlf=false core.eol= file=LF': - compare_ws_file eol__crlf_false_attr_text_ LF crlf_false_attr__LF.txt - -ok 873 - checkout attr=text aeol= core.autocrlf=false core.eol= file=LF +Switched to a new branch 'topic' +Unstaged changes after reset: +M file +Unstaged changes after reset: +M file +ok 2 - setup reflog with alternating commits -expecting success of 0027.874 'checkout attr=text aeol= core.autocrlf=false core.eol= file=CRLF': - compare_ws_file eol__crlf_false_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 874 - checkout attr=text aeol= core.autocrlf=false core.eol= file=CRLF +expecting success of 1412.3 'reflog shows all entries': + cat >expect <<-\EOF && + topic@{0} reset: moving to two + topic@{1} reset: moving to one + topic@{2} reset: moving to two + topic@{3} reset: moving to one + topic@{4} branch: Created from HEAD + EOF + git log -g --format="%gd %gs" topic >actual && + test_cmp expect actual -expecting success of 0027.875 'checkout attr=text aeol= core.autocrlf=false core.eol= file=CRLF_mix_LF': - compare_ws_file eol__crlf_false_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 875 - checkout attr=text aeol= core.autocrlf=false core.eol= file=CRLF_mix_LF +ok 3 - reflog shows all entries -expecting success of 0027.876 'checkout attr=text aeol= core.autocrlf=false core.eol= file=LF_mix_CR': - compare_ws_file eol__crlf_false_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 876 - checkout attr=text aeol= core.autocrlf=false core.eol= file=LF_mix_CR +# passed all 3 test(s) +1..3 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t1410-reflog.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1410-reflog/.git/ +expecting success of 1410.1 'setup': + mkdir -p A/B && + echo rat >C && + echo ox >A/D && + echo tiger >A/B/E && + git add . && -expecting success of 0027.877 'checkout attr=text aeol= core.autocrlf=false core.eol= file=LF_nul': - compare_ws_file eol__crlf_false_attr_text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 877 - checkout attr=text aeol= core.autocrlf=false core.eol= file=LF_nul + test_tick && git commit -m rabbit && + H=$(git rev-parse --verify HEAD) && + A=$(git rev-parse --verify HEAD:A) && + B=$(git rev-parse --verify HEAD:A/B) && + C=$(git rev-parse --verify HEAD:C) && + D=$(git rev-parse --verify HEAD:A/D) && + E=$(git rev-parse --verify HEAD:A/B/E) && + check_fsck && -expecting success of 0027.878 'ls-files --eol attr=text aeol= core.autocrlf=false core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 878 - ls-files --eol attr=text aeol= core.autocrlf=false core.eol=native + test_chmod +x C && + git add C && + test_tick && git commit -m dragon && + L=$(git rev-parse --verify HEAD) && + check_fsck && -expecting success of 0027.879 'checkout attr=text aeol= core.autocrlf=false core.eol=native file=LF': - compare_ws_file eol_native_crlf_false_attr_text_ LF crlf_false_attr__LF.txt - -ok 879 - checkout attr=text aeol= core.autocrlf=false core.eol=native file=LF + rm -f C A/B/E && + echo snake >F && + echo horse >A/G && + git add F A/G && + test_tick && git commit -a -m sheep && + F=$(git rev-parse --verify HEAD:F) && + G=$(git rev-parse --verify HEAD:A/G) && + I=$(git rev-parse --verify HEAD:A) && + J=$(git rev-parse --verify HEAD) && + check_fsck && -expecting success of 0027.880 'checkout attr=text aeol= core.autocrlf=false core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 880 - checkout attr=text aeol= core.autocrlf=false core.eol=native file=CRLF + rm -f A/G && + test_tick && git commit -a -m monkey && + K=$(git rev-parse --verify HEAD) && + check_fsck && -expecting success of 0027.881 'checkout attr=text aeol= core.autocrlf=false core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_false_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 881 - checkout attr=text aeol= core.autocrlf=false core.eol=native file=CRLF_mix_LF + check_have A B C D E F G H I J K L && -expecting success of 0027.882 'checkout attr=text aeol= core.autocrlf=false core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_false_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 882 - checkout attr=text aeol= core.autocrlf=false core.eol=native file=LF_mix_CR + git prune && -expecting success of 0027.883 'checkout attr=text aeol= core.autocrlf=false core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_false_attr_text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 883 - checkout attr=text aeol= core.autocrlf=false core.eol=native file=LF_nul + check_have A B C D E F G H I J K L && -expecting success of 0027.884 'ls-files --eol attr=auto aeol= core.autocrlf=false core.eol=': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 884 - ls-files --eol attr=auto aeol= core.autocrlf=false core.eol= + check_fsck && -expecting success of 0027.885 'checkout attr=auto aeol= core.autocrlf=false core.eol= file=LF': - compare_ws_file eol__crlf_false_attr_auto_ LF crlf_false_attr__LF.txt - -ok 885 - checkout attr=auto aeol= core.autocrlf=false core.eol= file=LF + git reflog refs/heads/master >output && + test_line_count = 4 output -expecting success of 0027.886 'checkout attr=auto aeol= core.autocrlf=false core.eol= file=CRLF': - compare_ws_file eol__crlf_false_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 886 - checkout attr=auto aeol= core.autocrlf=false core.eol= file=CRLF +[master (root-commit) 07fcc4f] rabbit + Author: A U Thor + 3 files changed, 3 insertions(+) + create mode 100644 A/B/E + create mode 100644 A/D + create mode 100644 C +[master 7d1a0b8] dragon + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + mode change 100644 => 100755 C +[master 15ab5f0] sheep + Author: A U Thor + 4 files changed, 2 insertions(+), 2 deletions(-) + delete mode 100644 A/B/E + create mode 100644 A/G + delete mode 100755 C + create mode 100644 F +[master 3ac530f] monkey + Author: A U Thor + 1 file changed, 1 deletion(-) + delete mode 100644 A/G +tree +tree +blob +blob +blob +blob +blob +commit +tree +commit +commit +commit +tree +tree +blob +blob +blob +blob +blob +commit +tree +commit +commit +commit +ok 1 - setup -expecting success of 0027.887 'checkout attr=auto aeol= core.autocrlf=false core.eol= file=CRLF_mix_LF': - compare_ws_file eol__crlf_false_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 887 - checkout attr=auto aeol= core.autocrlf=false core.eol= file=CRLF_mix_LF +expecting success of 1410.2 'rewind': + test_tick && git reset --hard HEAD~2 && + test -f C && + test -f A/B/E && + ! test -f F && + ! test -f A/G && -expecting success of 0027.888 'checkout attr=auto aeol= core.autocrlf=false core.eol= file=LF_mix_CR': - compare_ws_file eol__crlf_false_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 888 - checkout attr=auto aeol= core.autocrlf=false core.eol= file=LF_mix_CR + check_have A B C D E F G H I J K L && -expecting success of 0027.889 'checkout attr=auto aeol= core.autocrlf=false core.eol= file=LF_nul': - compare_ws_file eol__crlf_false_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 889 - checkout attr=auto aeol= core.autocrlf=false core.eol= file=LF_nul + git prune && -expecting success of 0027.890 'ls-files --eol attr=auto aeol= core.autocrlf=false core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 890 - ls-files --eol attr=auto aeol= core.autocrlf=false core.eol=native + check_have A B C D E F G H I J K L && -expecting success of 0027.891 'checkout attr=auto aeol= core.autocrlf=false core.eol=native file=LF': - compare_ws_file eol_native_crlf_false_attr_auto_ LF crlf_false_attr__LF.txt - -ok 891 - checkout attr=auto aeol= core.autocrlf=false core.eol=native file=LF + git reflog refs/heads/master >output && + test_line_count = 5 output -expecting success of 0027.892 'checkout attr=auto aeol= core.autocrlf=false core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_false_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 892 - checkout attr=auto aeol= core.autocrlf=false core.eol=native file=CRLF +HEAD is now at 7d1a0b8 dragon +tree +tree +blob +blob +blob +blob +blob +commit +tree +commit +commit +commit +tree +tree +blob +blob +blob +blob +blob +commit +tree +commit +commit +commit +ok 2 - rewind -expecting success of 0027.893 'checkout attr=auto aeol= core.autocrlf=false core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_false_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 893 - checkout attr=auto aeol= core.autocrlf=false core.eol=native file=CRLF_mix_LF +expecting success of 1410.3 'corrupt and check': -expecting success of 0027.894 'checkout attr=auto aeol= core.autocrlf=false core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_false_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 894 - checkout attr=auto aeol= core.autocrlf=false core.eol=native file=LF_mix_CR + corrupt $F && + check_fsck "missing blob $F" -expecting success of 0027.895 'checkout attr=auto aeol= core.autocrlf=false core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_false_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 895 - checkout attr=auto aeol= core.autocrlf=false core.eol=native file=LF_nul -expecting success of 0027.896 'ls-files --eol attr=-text ident aeol= core.autocrlf=true core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 896 - ls-files --eol attr=-text ident aeol= core.autocrlf=true core.eol=lf +checking prerequisite: C_LOCALE_OUTPUT -expecting success of 0027.897 'checkout attr=-text ident aeol= core.autocrlf=true core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_true_attr_-text_ LF crlf_false_attr__LF.txt - -ok 897 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=lf file=LF +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false -expecting success of 0027.898 'checkout attr=-text ident aeol= core.autocrlf=true core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_true_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 898 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=lf file=CRLF +) +prerequisite C_LOCALE_OUTPUT ok +missing blob 9ae84adb2704cbd49549e52169b4043871e13432 +ok 3 - corrupt and check -expecting success of 0027.899 'checkout attr=-text ident aeol= core.autocrlf=true core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_true_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 899 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=lf file=CRLF_mix_LF +expecting success of 1410.4 'reflog expire --dry-run should not touch reflog': -expecting success of 0027.900 'checkout attr=-text ident aeol= core.autocrlf=true core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_true_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 900 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=lf file=LF_mix_CR + git reflog expire --dry-run \ + --expire=$(($test_tick - 10000)) \ + --expire-unreachable=$(($test_tick - 10000)) \ + --stale-fix \ + --all && -expecting success of 0027.901 'checkout attr=-text ident aeol= core.autocrlf=true core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_true_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 901 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=lf file=LF_nul + git reflog refs/heads/master >output && + test_line_count = 5 output && -expecting success of 0027.902 'ls-files --eol attr=-text ident aeol=lf core.autocrlf=true core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 902 - ls-files --eol attr=-text ident aeol=lf core.autocrlf=true core.eol=lf + check_fsck "missing blob $F" -expecting success of 0027.903 'checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_true_attr_-text_ LF crlf_false_attr__LF.txt - -ok 903 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=lf file=LF +would prune commit: sheep +would prune commit: monkey +would prune reset: moving to HEAD~2 +would prune commit: sheep +would prune commit: monkey +would prune reset: moving to HEAD~2 +missing blob 9ae84adb2704cbd49549e52169b4043871e13432 +ok 4 - reflog expire --dry-run should not touch reflog -expecting success of 0027.904 'checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_true_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 904 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=lf file=CRLF +expecting success of 1410.5 'reflog expire': -expecting success of 0027.905 'checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_true_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 905 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=lf file=CRLF_mix_LF + git reflog expire --verbose \ + --expire=$(($test_tick - 10000)) \ + --expire-unreachable=$(($test_tick - 10000)) \ + --stale-fix \ + --all && -expecting success of 0027.906 'checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_true_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 906 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=lf file=LF_mix_CR + git reflog refs/heads/master >output && + test_line_count = 2 output && -expecting success of 0027.907 'checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_true_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 907 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=lf file=LF_nul + check_fsck "dangling commit $K" -expecting success of 0027.908 'ls-files --eol attr=-text ident aeol=crlf core.autocrlf=true core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 908 - ls-files --eol attr=-text ident aeol=crlf core.autocrlf=true core.eol=lf +Marking reachable objects... +keep commit (initial): rabbit +keep commit: dragon +prune commit: sheep +prune commit: monkey +prune reset: moving to HEAD~2 +keep commit (initial): rabbit +keep commit: dragon +prune commit: sheep +prune commit: monkey +prune reset: moving to HEAD~2 +dangling commit 3ac530f2f6c3a45206a6b2d455baf89d1c8f672d +ok 5 - reflog expire -expecting success of 0027.909 'checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_true_attr_-text_ LF crlf_false_attr__LF.txt - -ok 909 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=lf file=LF +expecting success of 1410.6 'prune and fsck': -expecting success of 0027.910 'checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_true_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 910 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=lf file=CRLF + git prune && + check_fsck && -expecting success of 0027.911 'checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_true_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 911 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=lf file=CRLF_mix_LF + check_have A B C D E H L && + check_dont_have F G I J K -expecting success of 0027.912 'checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_true_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 912 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=lf file=LF_mix_CR -expecting success of 0027.913 'checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_true_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 913 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=lf file=LF_nul +tree +tree +blob +blob +blob +commit +commit +fatal: git cat-file: could not get object info +fatal: git cat-file: could not get object info +fatal: git cat-file: could not get object info +fatal: git cat-file: could not get object info +fatal: git cat-file: could not get object info +ok 6 - prune and fsck -expecting success of 0027.914 'ls-files --eol attr=text ident aeol=lf core.autocrlf=true core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 914 - ls-files --eol attr=text ident aeol=lf core.autocrlf=true core.eol=lf +expecting success of 1410.7 'recover and check': -expecting success of 0027.915 'checkout attr=text ident aeol=lf core.autocrlf=true core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_true_attr_text_ LF crlf_false_attr__LF.txt - -ok 915 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=lf file=LF + recover $F && + check_fsck "dangling blob $F" -expecting success of 0027.916 'checkout attr=text ident aeol=lf core.autocrlf=true core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 916 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=lf file=CRLF -expecting success of 0027.917 'checkout attr=text ident aeol=lf core.autocrlf=true core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_true_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 917 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=lf file=CRLF_mix_LF +dangling blob 9ae84adb2704cbd49549e52169b4043871e13432 +ok 7 - recover and check -expecting success of 0027.918 'checkout attr=text ident aeol=lf core.autocrlf=true core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_true_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 918 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=lf file=LF_mix_CR +expecting success of 1410.8 'delete': + echo 1 > C && + test_tick && + git commit -m rat C && -expecting success of 0027.919 'checkout attr=text ident aeol=lf core.autocrlf=true core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_true_attr_text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 919 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=lf file=LF_nul + echo 2 > C && + test_tick && + git commit -m ox C && -expecting success of 0027.920 'ls-files --eol attr=text ident aeol=crlf core.autocrlf=true core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 920 - ls-files --eol attr=text ident aeol=crlf core.autocrlf=true core.eol=lf + echo 3 > C && + test_tick && + git commit -m tiger C && -expecting success of 0027.921 'checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_true_attr_text_ CRLF crlf_false_attr__LF.txt - -ok 921 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=lf file=LF + HEAD_entry_count=$(git reflog | wc -l) && + master_entry_count=$(git reflog show master | wc -l) && -expecting success of 0027.922 'checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 922 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=lf file=CRLF + test $HEAD_entry_count = 5 && + test $master_entry_count = 5 && -expecting success of 0027.923 'checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt - -ok 923 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=lf file=CRLF_mix_LF -expecting success of 0027.924 'checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_true_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 924 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=lf file=LF_mix_CR + git reflog delete master@{1} && + git reflog show master > output && + test_line_count = $(($master_entry_count - 1)) output && + test $HEAD_entry_count = $(git reflog | wc -l) && + ! grep ox < output && -expecting success of 0027.925 'checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_true_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt - -ok 925 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=lf file=LF_nul + master_entry_count=$(wc -l < output) && -expecting success of 0027.926 'ls-files --eol attr=auto ident aeol=lf core.autocrlf=true core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 926 - ls-files --eol attr=auto ident aeol=lf core.autocrlf=true core.eol=lf + git reflog delete HEAD@{1} && + test $(($HEAD_entry_count -1)) = $(git reflog | wc -l) && + test $master_entry_count = $(git reflog show master | wc -l) && -expecting success of 0027.927 'checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_true_attr_auto_ LF crlf_false_attr__LF.txt - -ok 927 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=lf file=LF + HEAD_entry_count=$(git reflog | wc -l) && -expecting success of 0027.928 'checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_true_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 928 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=lf file=CRLF + git reflog delete master@{07.04.2005.15:15:00.-0700} && + git reflog show master > output && + test_line_count = $(($master_entry_count - 1)) output && + ! grep dragon < output -expecting success of 0027.929 'checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_true_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 929 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=lf file=CRLF_mix_LF -expecting success of 0027.930 'checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_true_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 930 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=lf file=LF_mix_CR +[master b60a214] rat + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +[master 9908ef9] ox + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +[master b93561f] tiger + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +ok 8 - delete -expecting success of 0027.931 'checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_true_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 931 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=lf file=LF_nul +expecting success of 1410.9 'rewind2': -expecting success of 0027.932 'ls-files --eol attr=auto ident aeol=crlf core.autocrlf=true core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 932 - ls-files --eol attr=auto ident aeol=crlf core.autocrlf=true core.eol=lf + test_tick && git reset --hard HEAD~2 && + git reflog refs/heads/master >output && + test_line_count = 4 output -expecting success of 0027.933 'checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_true_attr_auto_ CRLF crlf_false_attr__LF.txt - -ok 933 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=lf file=LF +HEAD is now at b60a214 rat +ok 9 - rewind2 -expecting success of 0027.934 'checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_true_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 934 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=lf file=CRLF +expecting success of 1410.10 '--expire=never': -expecting success of 0027.935 'checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_true_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 935 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=lf file=CRLF_mix_LF + git reflog expire --verbose \ + --expire=never \ + --expire-unreachable=never \ + --all && + git reflog refs/heads/master >output && + test_line_count = 4 output -expecting success of 0027.936 'checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_true_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 936 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=lf file=LF_mix_CR +keep commit (initial): rabbit +keep commit: rat +keep commit: tiger +keep reset: moving to HEAD~2 +keep commit (initial): rabbit +keep commit: dragon +keep commit: rat +keep commit: tiger +keep reset: moving to HEAD~2 +ok 10 - --expire=never -expecting success of 0027.937 'checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_true_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 937 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=lf file=LF_nul +expecting success of 1410.11 'gc.reflogexpire=never': + test_config gc.reflogexpire never && + test_config gc.reflogexpireunreachable never && -expecting success of 0027.938 'ls-files --eol attr=-text ident aeol= core.autocrlf=false core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 938 - ls-files --eol attr=-text ident aeol= core.autocrlf=false core.eol=lf + git reflog expire --verbose --all >output && + test_line_count = 9 output && -expecting success of 0027.939 'checkout attr=-text ident aeol= core.autocrlf=false core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_false_attr_-text_ LF crlf_false_attr__LF.txt - -ok 939 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=lf file=LF + git reflog refs/heads/master >output && + test_line_count = 4 output -expecting success of 0027.940 'checkout attr=-text ident aeol= core.autocrlf=false core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_false_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 940 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=lf file=CRLF +ok 11 - gc.reflogexpire=never -expecting success of 0027.941 'checkout attr=-text ident aeol= core.autocrlf=false core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_false_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 941 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=lf file=CRLF_mix_LF +expecting success of 1410.12 'gc.reflogexpire=false': + test_config gc.reflogexpire false && + test_config gc.reflogexpireunreachable false && -expecting success of 0027.942 'checkout attr=-text ident aeol= core.autocrlf=false core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_false_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 942 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=lf file=LF_mix_CR + git reflog expire --verbose --all && + git reflog refs/heads/master >output && + test_line_count = 4 output -expecting success of 0027.943 'checkout attr=-text ident aeol= core.autocrlf=false core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_false_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 943 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=lf file=LF_nul -expecting success of 0027.944 'ls-files --eol attr=-text ident aeol=lf core.autocrlf=false core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 944 - ls-files --eol attr=-text ident aeol=lf core.autocrlf=false core.eol=lf +keep commit (initial): rabbit +keep commit: rat +keep commit: tiger +keep reset: moving to HEAD~2 +keep commit (initial): rabbit +keep commit: dragon +keep commit: rat +keep commit: tiger +keep reset: moving to HEAD~2 +ok 12 - gc.reflogexpire=false -expecting success of 0027.945 'checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_false_attr_-text_ LF crlf_false_attr__LF.txt - -ok 945 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=lf file=LF +expecting success of 1410.13 'git reflog expire unknown reference': + test_config gc.reflogexpire never && + test_config gc.reflogexpireunreachable never && -expecting success of 0027.946 'checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_false_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 946 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=lf file=CRLF + test_must_fail git reflog expire master@{123} 2>stderr && + test_i18ngrep "points nowhere" stderr && + test_must_fail git reflog expire does-not-exist 2>stderr && + test_i18ngrep "points nowhere" stderr -expecting success of 0027.947 'checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_false_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 947 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=lf file=CRLF_mix_LF +error: master@{123} points nowhere! +error: does-not-exist points nowhere! +ok 13 - git reflog expire unknown reference -expecting success of 0027.948 'checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_false_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 948 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=lf file=LF_mix_CR +expecting success of 1410.14 'checkout should not delete log for packed ref': + test $(git reflog master | wc -l) = 4 && + git branch foo && + git pack-refs --all && + git checkout foo && + test $(git reflog master | wc -l) = 4 -expecting success of 0027.949 'checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_false_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 949 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=lf file=LF_nul +Switched to branch 'foo' +ok 14 - checkout should not delete log for packed ref -expecting success of 0027.950 'ls-files --eol attr=-text ident aeol=crlf core.autocrlf=false core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 950 - ls-files --eol attr=-text ident aeol=crlf core.autocrlf=false core.eol=lf +expecting success of 1410.15 'stale dirs do not cause d/f conflicts (reflogs on)': + test_when_finished "git branch -d one || git branch -d one/two" && -expecting success of 0027.951 'checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_false_attr_-text_ LF crlf_false_attr__LF.txt - -ok 951 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=lf file=LF + git branch one/two master && + echo "one/two@{0} branch: Created from master" >expect && + git log -g --format="%gd %gs" one/two >actual && + test_cmp expect actual && + git branch -d one/two && -expecting success of 0027.952 'checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_false_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 952 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=lf file=CRLF + # now logs/refs/heads/one is a stale directory, but + # we should move it out of the way to create "one" reflog + git branch one master && + echo "one@{0} branch: Created from master" >expect && + git log -g --format="%gd %gs" one >actual && + test_cmp expect actual -expecting success of 0027.953 'checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_false_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 953 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=lf file=CRLF_mix_LF +Deleted branch one/two (was b60a214). +Deleted branch one (was b60a214). +ok 15 - stale dirs do not cause d/f conflicts (reflogs on) -expecting success of 0027.954 'checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_false_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 954 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=lf file=LF_mix_CR +expecting success of 1410.16 'stale dirs do not cause d/f conflicts (reflogs off)': + test_when_finished "git branch -d one || git branch -d one/two" && -expecting success of 0027.955 'checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_false_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 955 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=lf file=LF_nul + git branch one/two master && + echo "one/two@{0} branch: Created from master" >expect && + git log -g --format="%gd %gs" one/two >actual && + test_cmp expect actual && + git branch -d one/two && -expecting success of 0027.956 'ls-files --eol attr=text ident aeol=lf core.autocrlf=false core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 956 - ls-files --eol attr=text ident aeol=lf core.autocrlf=false core.eol=lf + # same as before, but we only create a reflog for "one" if + # it already exists, which it does not + git -c core.logallrefupdates=false branch one master && + git log -g --format="%gd %gs" one >actual && + test_must_be_empty actual -expecting success of 0027.957 'checkout attr=text ident aeol=lf core.autocrlf=false core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_false_attr_text_ LF crlf_false_attr__LF.txt - -ok 957 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=lf file=LF +Deleted branch one/two (was b60a214). +Deleted branch one (was b60a214). +ok 16 - stale dirs do not cause d/f conflicts (reflogs off) -expecting success of 0027.958 'checkout attr=text ident aeol=lf core.autocrlf=false core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 958 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=lf file=CRLF +checking prerequisite: SHA1 -expecting success of 0027.959 'checkout attr=text ident aeol=lf core.autocrlf=false core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_false_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 959 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=lf file=CRLF_mix_LF +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SHA1" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-SHA1" && + case "$GIT_DEFAULT_HASH" in + sha1) true ;; + "") test $(git hash-object /dev/null) = e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 ;; + *) false ;; + esac -expecting success of 0027.960 'checkout attr=text ident aeol=lf core.autocrlf=false core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_false_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 960 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=lf file=LF_mix_CR +) +prerequisite SHA1 ok +expecting success of 1410.17 'parsing reverse reflogs at BUFSIZ boundaries': + git checkout -b reflogskip && + zf=$(test_oid zero_2) && + ident="abc 0000000001 +0000" && + for i in $(test_seq 1 75); do + printf "$zf%02d $zf%02d %s\t" $i $(($i+1)) "$ident" && + if test $i = 75; then + for j in $(test_seq 1 89); do + printf X + done + else + printf X + fi && + printf "\n" + done >.git/logs/refs/heads/reflogskip && + git rev-parse reflogskip@{73} >actual && + echo ${zf}03 >expect && + test_cmp expect actual -expecting success of 0027.961 'checkout attr=text ident aeol=lf core.autocrlf=false core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_false_attr_text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 961 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=lf file=LF_nul +Switched to a new branch 'reflogskip' +ok 17 - parsing reverse reflogs at BUFSIZ boundaries -expecting success of 0027.962 'ls-files --eol attr=text ident aeol=crlf core.autocrlf=false core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 962 - ls-files --eol attr=text ident aeol=crlf core.autocrlf=false core.eol=lf +expecting success of 1410.18 'no segfaults for reflog containing non-commit sha1s': + git update-ref --create-reflog -m "Creating ref" \ + refs/tests/tree-in-reflog HEAD && + git update-ref -m "Forcing tree" refs/tests/tree-in-reflog HEAD^{tree} && + git update-ref -m "Restoring to commit" refs/tests/tree-in-reflog HEAD && + git reflog refs/tests/tree-in-reflog -expecting success of 0027.963 'checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_false_attr_text_ CRLF crlf_false_attr__LF.txt - -ok 963 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=lf file=LF +b60a214 refs/tests/tree-in-reflog@{0}: Restoring to commit +b60a214 refs/tests/tree-in-reflog@{2}: Creating ref +ok 18 - no segfaults for reflog containing non-commit sha1s -expecting success of 0027.964 'checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 964 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=lf file=CRLF +checking known breakage of 1410.19 'reflog with non-commit entries displays all entries': + git reflog refs/tests/tree-in-reflog >actual && + test_line_count = 3 actual -expecting success of 0027.965 'checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt - -ok 965 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=lf file=CRLF_mix_LF +test_line_count: line count for actual != 3 +b60a214 refs/tests/tree-in-reflog@{0}: Restoring to commit +b60a214 refs/tests/tree-in-reflog@{2}: Creating ref +not ok 19 - reflog with non-commit entries displays all entries # TODO known breakage -expecting success of 0027.966 'checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_false_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 966 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=lf file=LF_mix_CR +expecting success of 1410.20 'reflog expire operates on symref not referrent': + git branch --create-reflog the_symref && + git branch --create-reflog referrent && + git update-ref referrent HEAD && + git symbolic-ref refs/heads/the_symref refs/heads/referrent && + test_when_finished "rm -f .git/refs/heads/referrent.lock" && + touch .git/refs/heads/referrent.lock && + git reflog expire --expire=all the_symref -expecting success of 0027.967 'checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_false_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt - -ok 967 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=lf file=LF_nul +ok 20 - reflog expire operates on symref not referrent -expecting success of 0027.968 'ls-files --eol attr=auto ident aeol=lf core.autocrlf=false core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt +expecting success of 1410.21 'continue walking past root commits': + git init orphanage && + ( + cd orphanage && + cat >expect <<-\EOF && + HEAD@{0} commit (initial): orphan2-1 + HEAD@{1} commit: orphan1-2 + HEAD@{2} commit (initial): orphan1-1 + HEAD@{3} commit (initial): initial EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && + test_commit initial && + git checkout --orphan orphan1 && + test_commit orphan1-1 && + test_commit orphan1-2 && + git checkout --orphan orphan2 && + test_commit orphan2-1 && + git log -g --format="%gd %gs" >actual && test_cmp expect actual - -ok 968 - ls-files --eol attr=auto ident aeol=lf core.autocrlf=false core.eol=lf + ) -expecting success of 0027.969 'checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_false_attr_auto_ LF crlf_false_attr__LF.txt - -ok 969 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=lf file=LF +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1410-reflog/orphanage/.git/ +[master (root-commit) 2aabd22] initial + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 initial.t +Switched to a new branch 'orphan1' +[orphan1 (root-commit) e2a0da2] orphan1-1 + Author: A U Thor + 2 files changed, 2 insertions(+) + create mode 100644 initial.t + create mode 100644 orphan1-1.t +[orphan1 9bdda66] orphan1-2 + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 orphan1-2.t +Switched to a new branch 'orphan2' +[orphan2 (root-commit) b47ea8f] orphan2-1 + Author: A U Thor + 4 files changed, 4 insertions(+) + create mode 100644 initial.t + create mode 100644 orphan1-1.t + create mode 100644 orphan1-2.t + create mode 100644 orphan2-1.t +ok 21 - continue walking past root commits -expecting success of 0027.970 'checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_false_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 970 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=lf file=CRLF +expecting success of 1410.22 'expire with multiple worktrees': + git init main-wt && + ( + cd main-wt && + test_tick && + test_commit foo && + git worktree add link-wt && + test_tick && + test_commit -C link-wt foobar && + test_tick && + git reflog expire --verbose --all --expire=$test_tick && + test_must_be_empty .git/worktrees/link-wt/logs/HEAD + ) -expecting success of 0027.971 'checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_false_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 971 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=lf file=CRLF_mix_LF +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1410-reflog/main-wt/.git/ +[master (root-commit) af4983b] foo + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 foo.t +Preparing worktree (new branch 'link-wt') +HEAD is now at af4983b foo +[link-wt 7368abb] foobar + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 foobar.t +prune branch: Created from HEAD +prune commit: foobar +prune commit (initial): foo +prune commit (initial): foo +prune +prune reset: moving to HEAD +prune commit: foobar +ok 22 - expire with multiple worktrees -expecting success of 0027.972 'checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_false_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 972 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=lf file=LF_mix_CR +# still have 1 known breakage(s) +# passed all remaining 21 test(s) +1..22 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t1413-reflog-detach.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1413-reflog-detach/.git/ +expecting success of 1413.1 'setup': + test_tick && + git commit --allow-empty -m initial && + git branch side && + test_tick && + git commit --allow-empty -m second && + cat .git/logs/HEAD >saved_reflog -expecting success of 0027.973 'checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_false_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 973 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=lf file=LF_nul +[master (root-commit) 66fe8b3] initial + Author: A U Thor +[master 5ce2b00] second + Author: A U Thor +ok 1 - setup -expecting success of 0027.974 'ls-files --eol attr=auto ident aeol=crlf core.autocrlf=false core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 974 - ls-files --eol attr=auto ident aeol=crlf core.autocrlf=false core.eol=lf +expecting success of 1413.2 'baseline': + reset_state && + git rev-parse master master^ >expect && + git log -g --format=%H >actual && + test_cmp expect actual -expecting success of 0027.975 'checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_false_attr_auto_ CRLF crlf_false_attr__LF.txt - -ok 975 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=lf file=LF +Already on 'master' +ok 2 - baseline -expecting success of 0027.976 'checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_false_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 976 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=lf file=CRLF +expecting success of 1413.3 'switch to branch': + reset_state && + git rev-parse side master master^ >expect && + git checkout side && + git log -g --format=%H >actual && + test_cmp expect actual -expecting success of 0027.977 'checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_false_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 977 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=lf file=CRLF_mix_LF +Already on 'master' +Switched to branch 'side' +ok 3 - switch to branch -expecting success of 0027.978 'checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_false_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 978 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=lf file=LF_mix_CR +expecting success of 1413.4 'detach to other': + reset_state && + git rev-parse master side master master^ >expect && + git checkout side && + git checkout master^0 && + git log -g --format=%H >actual && + test_cmp expect actual -expecting success of 0027.979 'checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_false_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 979 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=lf file=LF_nul +Switched to branch 'master' +Switched to branch 'side' +Note: switching to 'master^0'. -expecting success of 0027.980 'ls-files --eol attr=-text ident aeol= core.autocrlf=input core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 980 - ls-files --eol attr=-text ident aeol= core.autocrlf=input core.eol=lf +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. -expecting success of 0027.981 'checkout attr=-text ident aeol= core.autocrlf=input core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_input_attr_-text_ LF crlf_false_attr__LF.txt - -ok 981 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=lf file=LF +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: -expecting success of 0027.982 'checkout attr=-text ident aeol= core.autocrlf=input core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_input_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 982 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=lf file=CRLF + git switch -c -expecting success of 0027.983 'checkout attr=-text ident aeol= core.autocrlf=input core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_input_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 983 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=lf file=CRLF_mix_LF +Or undo this operation with: -expecting success of 0027.984 'checkout attr=-text ident aeol= core.autocrlf=input core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_input_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 984 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=lf file=LF_mix_CR + git switch - -expecting success of 0027.985 'checkout attr=-text ident aeol= core.autocrlf=input core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_input_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 985 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=lf file=LF_nul +Turn off this advice by setting config variable advice.detachedHead to false -expecting success of 0027.986 'ls-files --eol attr=-text ident aeol=lf core.autocrlf=input core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 986 - ls-files --eol attr=-text ident aeol=lf core.autocrlf=input core.eol=lf +HEAD is now at 5ce2b00 second +ok 4 - detach to other -expecting success of 0027.987 'checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_input_attr_-text_ LF crlf_false_attr__LF.txt - -ok 987 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=lf file=LF +expecting success of 1413.5 'detach to self': + reset_state && + git rev-parse master master master^ >expect && + git checkout master^0 && + git log -g --format=%H >actual && + test_cmp expect actual -expecting success of 0027.988 'checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_input_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 988 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=lf file=CRLF +Switched to branch 'master' +Note: switching to 'master^0'. -expecting success of 0027.989 'checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_input_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 989 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=lf file=CRLF_mix_LF +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. -expecting success of 0027.990 'checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_input_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 990 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=lf file=LF_mix_CR +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: -expecting success of 0027.991 'checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_input_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 991 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=lf file=LF_nul + git switch -c -expecting success of 0027.992 'ls-files --eol attr=-text ident aeol=crlf core.autocrlf=input core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 992 - ls-files --eol attr=-text ident aeol=crlf core.autocrlf=input core.eol=lf +Or undo this operation with: -expecting success of 0027.993 'checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_input_attr_-text_ LF crlf_false_attr__LF.txt - -ok 993 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=lf file=LF + git switch - -expecting success of 0027.994 'checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_input_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 994 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=lf file=CRLF +Turn off this advice by setting config variable advice.detachedHead to false -expecting success of 0027.995 'checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_input_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 995 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=lf file=CRLF_mix_LF +HEAD is now at 5ce2b00 second +ok 5 - detach to self -expecting success of 0027.996 'checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_input_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 996 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=lf file=LF_mix_CR +expecting success of 1413.6 'attach to self': + reset_state && + git rev-parse master master master master^ >expect && + git checkout master^0 && + git checkout master && + git log -g --format=%H >actual && + test_cmp expect actual -expecting success of 0027.997 'checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_input_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 997 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=lf file=LF_nul +Switched to branch 'master' +Note: switching to 'master^0'. -expecting success of 0027.998 'ls-files --eol attr=text ident aeol=lf core.autocrlf=input core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 998 - ls-files --eol attr=text ident aeol=lf core.autocrlf=input core.eol=lf +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. -expecting success of 0027.999 'checkout attr=text ident aeol=lf core.autocrlf=input core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_input_attr_text_ LF crlf_false_attr__LF.txt - -ok 999 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=lf file=LF +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: -expecting success of 0027.1000 'checkout attr=text ident aeol=lf core.autocrlf=input core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 1000 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=lf file=CRLF + git switch -c -expecting success of 0027.1001 'checkout attr=text ident aeol=lf core.autocrlf=input core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_input_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1001 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=lf file=CRLF_mix_LF +Or undo this operation with: -expecting success of 0027.1002 'checkout attr=text ident aeol=lf core.autocrlf=input core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_input_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1002 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=lf file=LF_mix_CR + git switch - -expecting success of 0027.1003 'checkout attr=text ident aeol=lf core.autocrlf=input core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_input_attr_text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1003 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=lf file=LF_nul +Turn off this advice by setting config variable advice.detachedHead to false -expecting success of 0027.1004 'ls-files --eol attr=text ident aeol=crlf core.autocrlf=input core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1004 - ls-files --eol attr=text ident aeol=crlf core.autocrlf=input core.eol=lf +HEAD is now at 5ce2b00 second +Switched to branch 'master' +ok 6 - attach to self -expecting success of 0027.1005 'checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_input_attr_text_ CRLF crlf_false_attr__LF.txt - -ok 1005 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=lf file=LF +expecting success of 1413.7 'attach to other': + reset_state && + git rev-parse side master master master^ >expect && + git checkout master^0 && + git checkout side && + git log -g --format=%H >actual && + test_cmp expect actual -expecting success of 0027.1006 'checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 1006 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=lf file=CRLF +Already on 'master' +Note: switching to 'master^0'. -expecting success of 0027.1007 'checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt - -ok 1007 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=lf file=CRLF_mix_LF +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. -expecting success of 0027.1008 'checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_input_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1008 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=lf file=LF_mix_CR +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: -expecting success of 0027.1009 'checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_input_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt - -ok 1009 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=lf file=LF_nul + git switch -c -expecting success of 0027.1010 'ls-files --eol attr=auto ident aeol=lf core.autocrlf=input core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1010 - ls-files --eol attr=auto ident aeol=lf core.autocrlf=input core.eol=lf +Or undo this operation with: -expecting success of 0027.1011 'checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_input_attr_auto_ LF crlf_false_attr__LF.txt - -ok 1011 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=lf file=LF + git switch - -expecting success of 0027.1012 'checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_input_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 1012 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=lf file=CRLF +Turn off this advice by setting config variable advice.detachedHead to false -expecting success of 0027.1013 'checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_input_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1013 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=lf file=CRLF_mix_LF +HEAD is now at 5ce2b00 second +Previous HEAD position was 5ce2b00 second +Switched to branch 'side' +ok 7 - attach to other -expecting success of 0027.1014 'checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_input_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1014 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=lf file=LF_mix_CR +# passed all 7 test(s) +1..7 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t1414-reflog-walk.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1414-reflog-walk/.git/ +expecting success of 1414.1 'set up some reflog entries': + test_commit one && + test_commit two && + git checkout -b side HEAD^ && + test_commit three && + git merge --no-commit master && + echo evil-merge-content >>one.t && + test_tick && + git commit --no-edit -a -expecting success of 0027.1015 'checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_input_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1015 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=lf file=LF_nul +[master (root-commit) d79ce16] one + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 one.t +[master 139b20d] two + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 two.t +Switched to a new branch 'side' +[side 897c206] three + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 three.t +Merging: +897c206 three +virtual master +found 1 common ancestor: +d79ce16 one +Automatic merge went well; stopped before committing as requested +[side 0a3eb79] Merge branch 'master' into side + Author: A U Thor +ok 1 - set up some reflog entries -expecting success of 0027.1016 'ls-files --eol attr=auto ident aeol=crlf core.autocrlf=input core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1016 - ls-files --eol attr=auto ident aeol=crlf core.autocrlf=input core.eol=lf +expecting success of 1414.2 'set up expected reflog': + cat >expect.all <<-EOF + HEAD@{0} commit (merge): Merge branch ${SQ}master${SQ} into side + HEAD@{1} commit: three + HEAD@{2} checkout: moving from master to side + HEAD@{3} commit: two + HEAD@{4} commit (initial): one + EOF -expecting success of 0027.1017 'checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_input_attr_auto_ CRLF crlf_false_attr__LF.txt - -ok 1017 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=lf file=LF +ok 2 - set up expected reflog -expecting success of 0027.1018 'checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_input_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 1018 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=lf file=CRLF +expecting success of 1414.3 'reflog walk shows expected logs': + do_walk >actual && + test_cmp expect.all actual -expecting success of 0027.1019 'checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_input_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1019 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=lf file=CRLF_mix_LF +ok 3 - reflog walk shows expected logs -expecting success of 0027.1020 'checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_input_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1020 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=lf file=LF_mix_CR +expecting success of 1414.4 'reflog can limit with --no-merges': + grep -v merge expect.all >expect && + do_walk --no-merges >actual && + test_cmp expect actual -expecting success of 0027.1021 'checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_input_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1021 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=lf file=LF_nul +ok 4 - reflog can limit with --no-merges -expecting success of 0027.1022 'ls-files --eol attr= ident aeol= core.autocrlf=false core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1022 - ls-files --eol attr= ident aeol= core.autocrlf=false core.eol=lf +expecting success of 1414.5 'reflog can limit with pathspecs': + grep two expect.all >expect && + do_walk -- two.t >actual && + test_cmp expect actual -expecting success of 0027.1023 'checkout attr= ident aeol= core.autocrlf=false core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_false_attr__ LF crlf_false_attr__LF.txt - -ok 1023 - checkout attr= ident aeol= core.autocrlf=false core.eol=lf file=LF +ok 5 - reflog can limit with pathspecs -expecting success of 0027.1024 'checkout attr= ident aeol= core.autocrlf=false core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_false_attr__ CRLF crlf_false_attr__CRLF.txt - -ok 1024 - checkout attr= ident aeol= core.autocrlf=false core.eol=lf file=CRLF +expecting success of 1414.6 'pathspec limiting handles merges': + # we pick up: + # - the initial commit of one + # - the checkout back to commit one + # - the evil merge which touched one + sed -n "1p;3p;5p" expect.all >expect && + do_walk -- one.t >actual && + test_cmp expect actual -expecting success of 0027.1025 'checkout attr= ident aeol= core.autocrlf=false core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_false_attr__ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1025 - checkout attr= ident aeol= core.autocrlf=false core.eol=lf file=CRLF_mix_LF +ok 6 - pathspec limiting handles merges -expecting success of 0027.1026 'checkout attr= ident aeol= core.autocrlf=false core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_false_attr__ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1026 - checkout attr= ident aeol= core.autocrlf=false core.eol=lf file=LF_mix_CR +expecting success of 1414.7 '--parents shows true parents': + # convert newlines to spaces + echo $(git rev-parse HEAD HEAD^1 HEAD^2) >expect && + git rev-list -g --parents -1 HEAD >actual && + test_cmp expect actual -expecting success of 0027.1027 'checkout attr= ident aeol= core.autocrlf=false core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_false_attr__ LF_nul crlf_false_attr__LF_nul.txt - -ok 1027 - checkout attr= ident aeol= core.autocrlf=false core.eol=lf file=LF_nul +ok 7 - --parents shows true parents -expecting success of 0027.1028 'ls-files --eol attr= ident aeol= core.autocrlf=true core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1028 - ls-files --eol attr= ident aeol= core.autocrlf=true core.eol=lf +expecting success of 1414.8 'walking multiple reflogs shows all': + # We expect to see all entries for all reflogs, but interleaved by + # date, with order on the command line breaking ties. We + # can use "sort" on the separate lists to generate this, + # but note two tricks: + # + # 1. We use "{" as the delimiter, which lets us skip to the reflog + # date specifier as our second field, and then our "-n" numeric + # sort ignores the bits after the timestamp. + # + # 2. POSIX leaves undefined whether this is a stable sort or not. So + # we use "-k 1" to ensure that we see HEAD before master before + # side when breaking ties. + { + do_walk --date=unix HEAD && + do_walk --date=unix side && + do_walk --date=unix master + } >expect.raw && + sort -t "{" -k 2nr -k 1 expect && + do_walk --date=unix HEAD master side >actual && + test_cmp expect actual -expecting success of 0027.1029 'checkout attr= ident aeol= core.autocrlf=true core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_true_attr__ CRLF crlf_false_attr__LF.txt - -ok 1029 - checkout attr= ident aeol= core.autocrlf=true core.eol=lf file=LF +ok 8 - walking multiple reflogs shows all -expecting success of 0027.1030 'checkout attr= ident aeol= core.autocrlf=true core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_true_attr__ CRLF crlf_false_attr__CRLF.txt - -ok 1030 - checkout attr= ident aeol= core.autocrlf=true core.eol=lf file=CRLF +expecting success of 1414.9 'date-limiting does not interfere with other logs': + do_walk HEAD@{1979-01-01} HEAD >actual && + test_cmp expect.all actual -expecting success of 0027.1031 'checkout attr= ident aeol= core.autocrlf=true core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_true_attr__ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1031 - checkout attr= ident aeol= core.autocrlf=true core.eol=lf file=CRLF_mix_LF +warning: log for 'HEAD' only goes back to Thu, 7 Apr 2005 15:13:13 -0700 +ok 9 - date-limiting does not interfere with other logs -expecting success of 0027.1032 'checkout attr= ident aeol= core.autocrlf=true core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_true_attr__ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1032 - checkout attr= ident aeol= core.autocrlf=true core.eol=lf file=LF_mix_CR +expecting success of 1414.10 'min/max age uses entry date to limit': + # Flip between commits one and two so each ref update actually + # does something (and does not get optimized out). We know + # that the timestamps of those commits will be before our "min". -expecting success of 0027.1033 'checkout attr= ident aeol= core.autocrlf=true core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_true_attr__ LF_nul crlf_false_attr__LF_nul.txt - -ok 1033 - checkout attr= ident aeol= core.autocrlf=true core.eol=lf file=LF_nul + git update-ref -m before refs/heads/minmax one && -expecting success of 0027.1034 'ls-files --eol attr=auto ident aeol= core.autocrlf=true core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1034 - ls-files --eol attr=auto ident aeol= core.autocrlf=true core.eol=lf + test_tick && + min=$test_tick && + git update-ref -m min refs/heads/minmax two && -expecting success of 0027.1035 'checkout attr=auto ident aeol= core.autocrlf=true core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_true_attr_auto_ CRLF crlf_false_attr__LF.txt - -ok 1035 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=lf file=LF + test_tick && + max=$test_tick && + git update-ref -m max refs/heads/minmax one && -expecting success of 0027.1036 'checkout attr=auto ident aeol= core.autocrlf=true core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_true_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 1036 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=lf file=CRLF + test_tick && + git update-ref -m after refs/heads/minmax two && -expecting success of 0027.1037 'checkout attr=auto ident aeol= core.autocrlf=true core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_true_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1037 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=lf file=CRLF_mix_LF + cat >expect <<-\EOF && + max + min + EOF + git log -g --since=$min --until=$max --format=%gs minmax >actual && + test_cmp expect actual -expecting success of 0027.1038 'checkout attr=auto ident aeol= core.autocrlf=true core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_true_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1038 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=lf file=LF_mix_CR +ok 10 - min/max age uses entry date to limit -expecting success of 0027.1039 'checkout attr=auto ident aeol= core.autocrlf=true core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_true_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1039 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=lf file=LF_nul +expecting success of 1414.11 'walk prefers reflog to ref tip': + head=$(git rev-parse HEAD) && + one=$(git rev-parse one) && + ident="$GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE" && + echo "$head $one $ident broken reflog entry" >>.git/logs/HEAD && -expecting success of 0027.1040 'ls-files --eol attr=text ident aeol= core.autocrlf=true core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1040 - ls-files --eol attr=text ident aeol= core.autocrlf=true core.eol=lf + echo $one >expect && + git log -g --format=%H -1 >actual && + test_cmp expect actual -expecting success of 0027.1041 'checkout attr=text ident aeol= core.autocrlf=true core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_true_attr_text_ CRLF crlf_false_attr__LF.txt - -ok 1041 - checkout attr=text ident aeol= core.autocrlf=true core.eol=lf file=LF +ok 11 - walk prefers reflog to ref tip -expecting success of 0027.1042 'checkout attr=text ident aeol= core.autocrlf=true core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 1042 - checkout attr=text ident aeol= core.autocrlf=true core.eol=lf file=CRLF +expecting success of 1414.12 'rev-list -g complains when there are no reflogs': + test_must_fail git rev-list -g -expecting success of 0027.1043 'checkout attr=text ident aeol= core.autocrlf=true core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt - -ok 1043 - checkout attr=text ident aeol= core.autocrlf=true core.eol=lf file=CRLF_mix_LF +usage: git rev-list [OPTION] ... [ -- paths... ] + limiting output: + --max-count= + --max-age= + --min-age= + --sparse + --no-merges + --min-parents= + --no-min-parents + --max-parents= + --no-max-parents + --remove-empty + --all + --branches + --tags + --remotes + --stdin + --quiet + ordering output: + --topo-order + --date-order + --reverse + formatting output: + --parents + --children + --objects | --objects-edge + --unpacked + --header | --pretty + --[no-]object-names + --abbrev= | --no-abbrev + --abbrev-commit + --left-right + --count + special purpose: + --bisect + --bisect-vars + --bisect-all +ok 12 - rev-list -g complains when there are no reflogs -expecting success of 0027.1044 'checkout attr=text ident aeol= core.autocrlf=true core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_true_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1044 - checkout attr=text ident aeol= core.autocrlf=true core.eol=lf file=LF_mix_CR +# passed all 12 test(s) +1..12 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t1415-worktree-refs.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1415-worktree-refs/.git/ +expecting success of 1415.1 'setup': + test_commit initial && + test_commit wt1 && + test_commit wt2 && + git worktree add wt1 wt1 && + git worktree add wt2 wt2 && + git checkout initial && + git update-ref refs/worktree/foo HEAD && + git -C wt1 update-ref refs/worktree/foo HEAD && + git -C wt2 update-ref refs/worktree/foo HEAD -expecting success of 0027.1045 'checkout attr=text ident aeol= core.autocrlf=true core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_true_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt - -ok 1045 - checkout attr=text ident aeol= core.autocrlf=true core.eol=lf file=LF_nul +[master (root-commit) 24b24cf] initial + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 initial.t +[master 42fba42] wt1 + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 wt1.t +[master 83df652] wt2 + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 wt2.t +Preparing worktree (detached HEAD 42fba42) +HEAD is now at 42fba42 wt1 +Preparing worktree (detached HEAD 83df652) +HEAD is now at 83df652 wt2 +Note: switching to 'initial'. -expecting success of 0027.1046 'ls-files --eol attr=text ident aeol= core.autocrlf=input core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1046 - ls-files --eol attr=text ident aeol= core.autocrlf=input core.eol=lf +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. -expecting success of 0027.1047 'checkout attr=text ident aeol= core.autocrlf=input core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_input_attr_text_ LF crlf_false_attr__LF.txt - -ok 1047 - checkout attr=text ident aeol= core.autocrlf=input core.eol=lf file=LF +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: -expecting success of 0027.1048 'checkout attr=text ident aeol= core.autocrlf=input core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 1048 - checkout attr=text ident aeol= core.autocrlf=input core.eol=lf file=CRLF + git switch -c -expecting success of 0027.1049 'checkout attr=text ident aeol= core.autocrlf=input core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_input_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1049 - checkout attr=text ident aeol= core.autocrlf=input core.eol=lf file=CRLF_mix_LF +Or undo this operation with: -expecting success of 0027.1050 'checkout attr=text ident aeol= core.autocrlf=input core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_input_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1050 - checkout attr=text ident aeol= core.autocrlf=input core.eol=lf file=LF_mix_CR + git switch - -expecting success of 0027.1051 'checkout attr=text ident aeol= core.autocrlf=input core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_input_attr_text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1051 - checkout attr=text ident aeol= core.autocrlf=input core.eol=lf file=LF_nul +Turn off this advice by setting config variable advice.detachedHead to false -expecting success of 0027.1052 'ls-files --eol attr=auto ident aeol= core.autocrlf=input core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1052 - ls-files --eol attr=auto ident aeol= core.autocrlf=input core.eol=lf +HEAD is now at 24b24cf initial +ok 1 - setup -expecting success of 0027.1053 'checkout attr=auto ident aeol= core.autocrlf=input core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_input_attr_auto_ LF crlf_false_attr__LF.txt - -ok 1053 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=lf file=LF +expecting success of 1415.2 'refs/worktree must not be packed': + git pack-refs --all && + test_path_is_missing .git/refs/tags/wt1 && + test_path_is_file .git/refs/worktree/foo && + test_path_is_file .git/worktrees/wt1/refs/worktree/foo && + test_path_is_file .git/worktrees/wt2/refs/worktree/foo -expecting success of 0027.1054 'checkout attr=auto ident aeol= core.autocrlf=input core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_input_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 1054 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=lf file=CRLF +ok 2 - refs/worktree must not be packed -expecting success of 0027.1055 'checkout attr=auto ident aeol= core.autocrlf=input core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_input_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1055 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=lf file=CRLF_mix_LF +expecting success of 1415.3 'refs/worktree are per-worktree': + test_cmp_rev worktree/foo initial && + ( cd wt1 && test_cmp_rev worktree/foo wt1 ) && + ( cd wt2 && test_cmp_rev worktree/foo wt2 ) -expecting success of 0027.1056 'checkout attr=auto ident aeol= core.autocrlf=input core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_input_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1056 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=lf file=LF_mix_CR +ok 3 - refs/worktree are per-worktree -expecting success of 0027.1057 'checkout attr=auto ident aeol= core.autocrlf=input core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_input_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1057 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=lf file=LF_nul +expecting success of 1415.4 'resolve main-worktree/HEAD': + test_cmp_rev main-worktree/HEAD initial && + ( cd wt1 && test_cmp_rev main-worktree/HEAD initial ) && + ( cd wt2 && test_cmp_rev main-worktree/HEAD initial ) -expecting success of 0027.1058 'ls-files --eol attr=-text ident aeol= core.autocrlf=true core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1058 - ls-files --eol attr=-text ident aeol= core.autocrlf=true core.eol=crlf +ok 4 - resolve main-worktree/HEAD -expecting success of 0027.1059 'checkout attr=-text ident aeol= core.autocrlf=true core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_true_attr_-text_ LF crlf_false_attr__LF.txt - -ok 1059 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=crlf file=LF +expecting success of 1415.5 'ambiguous main-worktree/HEAD': + mkdir -p .git/refs/heads/main-worktree && + test_when_finished rm -f .git/refs/heads/main-worktree/HEAD && + cp .git/HEAD .git/refs/heads/main-worktree/HEAD && + git rev-parse main-worktree/HEAD 2>warn && + grep "main-worktree/HEAD.*ambiguous" warn -expecting success of 0027.1060 'checkout attr=-text ident aeol= core.autocrlf=true core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_true_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 1060 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=crlf file=CRLF +24b24cf8a829f5b8c30dfc018b0a459a2ccaf380 +warning: refname 'main-worktree/HEAD' is ambiguous. +ok 5 - ambiguous main-worktree/HEAD -expecting success of 0027.1061 'checkout attr=-text ident aeol= core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_true_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1061 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=crlf file=CRLF_mix_LF +expecting success of 1415.6 'resolve worktrees/xx/HEAD': + test_cmp_rev worktrees/wt1/HEAD wt1 && + ( cd wt1 && test_cmp_rev worktrees/wt1/HEAD wt1 ) && + ( cd wt2 && test_cmp_rev worktrees/wt1/HEAD wt1 ) -expecting success of 0027.1062 'checkout attr=-text ident aeol= core.autocrlf=true core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_true_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1062 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=crlf file=LF_mix_CR +ok 6 - resolve worktrees/xx/HEAD -expecting success of 0027.1063 'checkout attr=-text ident aeol= core.autocrlf=true core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_true_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1063 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=crlf file=LF_nul +expecting success of 1415.7 'ambiguous worktrees/xx/HEAD': + mkdir -p .git/refs/heads/worktrees/wt1 && + test_when_finished rm -f .git/refs/heads/worktrees/wt1/HEAD && + cp .git/HEAD .git/refs/heads/worktrees/wt1/HEAD && + git rev-parse worktrees/wt1/HEAD 2>warn && + grep "worktrees/wt1/HEAD.*ambiguous" warn -expecting success of 0027.1064 'ls-files --eol attr=-text ident aeol=lf core.autocrlf=true core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1064 - ls-files --eol attr=-text ident aeol=lf core.autocrlf=true core.eol=crlf +42fba42569eaa325aaade18832dfa5432d54ffd1 +warning: refname 'worktrees/wt1/HEAD' is ambiguous. +ok 7 - ambiguous worktrees/xx/HEAD -expecting success of 0027.1065 'checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_true_attr_-text_ LF crlf_false_attr__LF.txt - -ok 1065 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=crlf file=LF +expecting success of 1415.8 'reflog of main-worktree/HEAD': + git reflog HEAD | sed "s/HEAD/main-worktree\/HEAD/" >expected && + git reflog main-worktree/HEAD >actual && + test_cmp expected actual && + git -C wt1 reflog main-worktree/HEAD >actual.wt1 && + test_cmp expected actual.wt1 -expecting success of 0027.1066 'checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_true_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 1066 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=crlf file=CRLF +ok 8 - reflog of main-worktree/HEAD -expecting success of 0027.1067 'checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_true_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1067 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF +expecting success of 1415.9 'reflog of worktrees/xx/HEAD': + git -C wt2 reflog HEAD | sed "s/HEAD/worktrees\/wt2\/HEAD/" >expected && + git reflog worktrees/wt2/HEAD >actual && + test_cmp expected actual && + git -C wt1 reflog worktrees/wt2/HEAD >actual.wt1 && + test_cmp expected actual.wt1 && + git -C wt2 reflog worktrees/wt2/HEAD >actual.wt2 && + test_cmp expected actual.wt2 -expecting success of 0027.1068 'checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_true_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1068 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=crlf file=LF_mix_CR +ok 9 - reflog of worktrees/xx/HEAD -expecting success of 0027.1069 'checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_true_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1069 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=crlf file=LF_nul +expecting success of 1415.10 'for-each-ref from main worktree': + mkdir fer1 && + git -C fer1 init repo && + test_commit -C fer1/repo initial && + git -C fer1/repo worktree add ../second && + git -C fer1/repo update-ref refs/bisect/first HEAD && + git -C fer1/repo update-ref refs/rewritten/first HEAD && + git -C fer1/repo update-ref refs/worktree/first HEAD && + git -C fer1/repo for-each-ref --format="%(refname)" | grep first >actual && + cat >expected <<-\EOF && + refs/bisect/first + refs/rewritten/first + refs/worktree/first + EOF + test_cmp expected actual -expecting success of 0027.1070 'ls-files --eol attr=-text ident aeol=crlf core.autocrlf=true core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1070 - ls-files --eol attr=-text ident aeol=crlf core.autocrlf=true core.eol=crlf +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1415-worktree-refs/fer1/repo/.git/ +[master (root-commit) 1935181] initial + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 initial.t +Preparing worktree (new branch 'second') +HEAD is now at 1935181 initial +ok 10 - for-each-ref from main worktree -expecting success of 0027.1071 'checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_true_attr_-text_ LF crlf_false_attr__LF.txt - -ok 1071 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF +expecting success of 1415.11 'for-each-ref from linked worktree': + mkdir fer2 && + git -C fer2 init repo && + test_commit -C fer2/repo initial && + git -C fer2/repo worktree add ../second && + git -C fer2/second update-ref refs/bisect/second HEAD && + git -C fer2/second update-ref refs/rewritten/second HEAD && + git -C fer2/second update-ref refs/worktree/second HEAD && + git -C fer2/second for-each-ref --format="%(refname)" | grep second >actual && + cat >expected <<-\EOF && + refs/bisect/second + refs/heads/second + refs/rewritten/second + refs/worktree/second + EOF + test_cmp expected actual -expecting success of 0027.1072 'checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_true_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 1072 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1415-worktree-refs/fer2/repo/.git/ +[master (root-commit) 23fa7ba] initial + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 initial.t +Preparing worktree (new branch 'second') +HEAD is now at 23fa7ba initial +ok 11 - for-each-ref from linked worktree -expecting success of 0027.1073 'checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_true_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1073 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF +# passed all 11 test(s) +1..11 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t1416-ref-transaction-hooks.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1416-ref-transaction-hooks/.git/ +expecting success of 1416.1 'setup': + mkdir -p .git/hooks && + test_commit PRE && + PRE_OID=$(git rev-parse PRE) && + test_commit POST && + POST_OID=$(git rev-parse POST) -expecting success of 0027.1074 'checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_true_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1074 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF_mix_CR +[master (root-commit) 63ac8e7] PRE + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 PRE.t +[master 99d5316] POST + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 POST.t +ok 1 - setup -expecting success of 0027.1075 'checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_true_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1075 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF_nul +expecting success of 1416.2 'hook allows updating ref if successful': + test_when_finished "rm .git/hooks/reference-transaction" && + git reset --hard PRE && + write_script .git/hooks/reference-transaction <<-\EOF && + echo "$*" >>actual + EOF + cat >expect <<-EOF && + prepared + committed + EOF + git update-ref HEAD POST && + test_cmp expect actual -expecting success of 0027.1076 'ls-files --eol attr=text ident aeol=lf core.autocrlf=true core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1076 - ls-files --eol attr=text ident aeol=lf core.autocrlf=true core.eol=crlf +HEAD is now at 63ac8e7 PRE +ok 2 - hook allows updating ref if successful -expecting success of 0027.1077 'checkout attr=text ident aeol=lf core.autocrlf=true core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_true_attr_text_ LF crlf_false_attr__LF.txt - -ok 1077 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=crlf file=LF +expecting success of 1416.3 'hook aborts updating ref in prepared state': + test_when_finished "rm .git/hooks/reference-transaction" && + git reset --hard PRE && + write_script .git/hooks/reference-transaction <<-\EOF && + if test "$1" = prepared + then + exit 1 + fi + EOF + test_must_fail git update-ref HEAD POST 2>err && + test_i18ngrep "ref updates aborted by hook" err -expecting success of 0027.1078 'checkout attr=text ident aeol=lf core.autocrlf=true core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 1078 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=crlf file=CRLF +HEAD is now at 63ac8e7 PRE +checking prerequisite: C_LOCALE_OUTPUT -expecting success of 0027.1079 'checkout attr=text ident aeol=lf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1079 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false -expecting success of 0027.1080 'checkout attr=text ident aeol=lf core.autocrlf=true core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_true_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1080 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=crlf file=LF_mix_CR +) +prerequisite C_LOCALE_OUTPUT ok +fatal: ref updates aborted by hook +ok 3 - hook aborts updating ref in prepared state -expecting success of 0027.1081 'checkout attr=text ident aeol=lf core.autocrlf=true core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_true_attr_text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1081 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=crlf file=LF_nul +expecting success of 1416.4 'hook gets all queued updates in prepared state': + test_when_finished "rm .git/hooks/reference-transaction actual" && + git reset --hard PRE && + write_script .git/hooks/reference-transaction <<-\EOF && + if test "$1" = prepared + then + while read -r line + do + printf "%s\n" "$line" + done >actual + fi + EOF + cat >expect <<-EOF && + $ZERO_OID $POST_OID HEAD + $ZERO_OID $POST_OID refs/heads/master + EOF + git update-ref HEAD POST <<-EOF && + update HEAD $ZERO_OID $POST_OID + update refs/heads/master $ZERO_OID $POST_OID + EOF + test_cmp expect actual -expecting success of 0027.1082 'ls-files --eol attr=text ident aeol=crlf core.autocrlf=true core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1082 - ls-files --eol attr=text ident aeol=crlf core.autocrlf=true core.eol=crlf +HEAD is now at 63ac8e7 PRE +ok 4 - hook gets all queued updates in prepared state -expecting success of 0027.1083 'checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF crlf_false_attr__LF.txt - -ok 1083 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF +expecting success of 1416.5 'hook gets all queued updates in committed state': + test_when_finished "rm .git/hooks/reference-transaction actual" && + git reset --hard PRE && + write_script .git/hooks/reference-transaction <<-\EOF && + if test "$1" = committed + then + while read -r line + do + printf "%s\n" "$line" + done >actual + fi + EOF + cat >expect <<-EOF && + $ZERO_OID $POST_OID HEAD + $ZERO_OID $POST_OID refs/heads/master + EOF + git update-ref HEAD POST && + test_cmp expect actual -expecting success of 0027.1084 'checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 1084 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF +HEAD is now at 63ac8e7 PRE +ok 5 - hook gets all queued updates in committed state -expecting success of 0027.1085 'checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt - -ok 1085 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF +expecting success of 1416.6 'hook gets all queued updates in aborted state': + test_when_finished "rm .git/hooks/reference-transaction actual" && + git reset --hard PRE && + write_script .git/hooks/reference-transaction <<-\EOF && + if test "$1" = aborted + then + while read -r line + do + printf "%s\n" "$line" + done >actual + fi + EOF + cat >expect <<-EOF && + $ZERO_OID $POST_OID HEAD + $ZERO_OID $POST_OID refs/heads/master + EOF + git update-ref --stdin <<-EOF && + start + update HEAD POST $ZERO_OID + update refs/heads/master POST $ZERO_OID + abort + EOF + test_cmp expect actual -expecting success of 0027.1086 'checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1086 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF_mix_CR +HEAD is now at 63ac8e7 PRE +start: ok +abort: ok +ok 6 - hook gets all queued updates in aborted state -expecting success of 0027.1087 'checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt - -ok 1087 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF_nul +expecting success of 1416.7 'interleaving hook calls succeed': + test_when_finished "rm -r target-repo.git" && -expecting success of 0027.1088 'ls-files --eol attr=auto ident aeol=lf core.autocrlf=true core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1088 - ls-files --eol attr=auto ident aeol=lf core.autocrlf=true core.eol=crlf + git init --bare target-repo.git && -expecting success of 0027.1089 'checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_true_attr_auto_ LF crlf_false_attr__LF.txt - -ok 1089 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=crlf file=LF + write_script target-repo.git/hooks/reference-transaction <<-\EOF && + echo $0 "$@" >>actual + EOF -expecting success of 0027.1090 'checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_true_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 1090 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=crlf file=CRLF + write_script target-repo.git/hooks/update <<-\EOF && + echo $0 "$@" >>actual + EOF -expecting success of 0027.1091 'checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_true_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1091 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF + cat >expect <<-EOF && + hooks/update refs/tags/PRE $ZERO_OID $PRE_OID + hooks/reference-transaction prepared + hooks/reference-transaction committed + hooks/update refs/tags/POST $ZERO_OID $POST_OID + hooks/reference-transaction prepared + hooks/reference-transaction committed + EOF -expecting success of 0027.1092 'checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_true_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1092 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=crlf file=LF_mix_CR + git push ./target-repo.git PRE POST && + test_cmp expect target-repo.git/actual -expecting success of 0027.1093 'checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_true_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1093 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=crlf file=LF_nul +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1416-ref-transaction-hooks/target-repo.git/ +To ./target-repo.git + * [new tag] PRE -> PRE + * [new tag] POST -> POST +ok 7 - interleaving hook calls succeed -expecting success of 0027.1094 'ls-files --eol attr=auto ident aeol=crlf core.autocrlf=true core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1094 - ls-files --eol attr=auto ident aeol=crlf core.autocrlf=true core.eol=crlf +# passed all 7 test(s) +1..7 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t1420-lost-found.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1420-lost-found/.git/ +expecting success of 1420.1 'setup': + git config core.logAllRefUpdates 0 && + : > file1 && + git add file1 && + test_tick && + git commit -m initial && + echo 1 > file1 && + echo 2 > file2 && + git add file1 file2 && + test_tick && + git commit -m second && + echo 3 > file3 && + git add file3 -expecting success of 0027.1095 'checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_true_attr_auto_ CRLF crlf_false_attr__LF.txt - -ok 1095 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF +[master (root-commit) 9bb1ae9] initial + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 file1 +[master 8ad33be] second + Author: A U Thor + 2 files changed, 2 insertions(+) + create mode 100644 file2 +ok 1 - setup -expecting success of 0027.1096 'checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_true_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 1096 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF +expecting success of 1420.2 'lost and found something': + git rev-parse HEAD > lost-commit && + git rev-parse :file3 > lost-other && + test_tick && + git reset --hard HEAD^ && + git fsck --lost-found && + test 2 = $(ls .git/lost-found/*/* | wc -l) && + test -f .git/lost-found/commit/$(cat lost-commit) && + test -f .git/lost-found/other/$(cat lost-other) -expecting success of 0027.1097 'checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_true_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1097 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF +HEAD is now at 9bb1ae9 initial +dangling blob 00750edc07d6415dcc07ae0351e9397b0222b7ba +dangling commit 8ad33beea8de8e15812274614acd0a26d73b60f8 +ok 2 - lost and found something -expecting success of 0027.1098 'checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_true_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1098 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF_mix_CR +# passed all 2 test(s) +1..2 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t1430-bad-ref-name.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1430-bad-ref-name/.git/ +expecting success of 1430.1 'setup': + test_commit one && + test_commit two -expecting success of 0027.1099 'checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_true_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1099 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF_nul +[master (root-commit) d79ce16] one + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 one.t +[master 139b20d] two + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 two.t +ok 1 - setup -expecting success of 0027.1100 'ls-files --eol attr=-text ident aeol= core.autocrlf=false core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1100 - ls-files --eol attr=-text ident aeol= core.autocrlf=false core.eol=crlf +expecting success of 1430.2 'fast-import: fail on invalid branch name ".badbranchname"': + test_when_finished "rm -f .git/objects/pack_* .git/objects/index_*" && + cat >input <<-INPUT_END && + commit .badbranchname + committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE + data <input <<-INPUT_END && + commit bad[branch]name + committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE + data <expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1106 - ls-files --eol attr=-text ident aeol=lf core.autocrlf=false core.eol=crlf + INPUT_END + test_must_fail git fast-import output 2>error && + test_i18ngrep -e "ignoring ref with broken name refs/heads/broken\.\.\.ref" error && + ! grep -e "broken\.\.\.ref" output -expecting success of 0027.1109 'checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_false_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1109 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF +checking prerequisite: C_LOCALE_OUTPUT -expecting success of 0027.1110 'checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_false_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1110 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=crlf file=LF_mix_CR +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false -expecting success of 0027.1111 'checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_false_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1111 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=crlf file=LF_nul +) +prerequisite C_LOCALE_OUTPUT ok +warning: ignoring ref with broken name refs/heads/broken...ref +ok 4 - git branch shows badly named ref as warning -expecting success of 0027.1112 'ls-files --eol attr=-text ident aeol=crlf core.autocrlf=false core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1112 - ls-files --eol attr=-text ident aeol=crlf core.autocrlf=false core.eol=crlf +expecting success of 1430.5 'branch -d can delete badly named ref': + cp .git/refs/heads/master .git/refs/heads/broken...ref && + test_when_finished "rm -f .git/refs/heads/broken...ref" && + git branch -d broken...ref && + git branch >output 2>error && + ! grep -e "broken\.\.\.ref" error && + ! grep -e "broken\.\.\.ref" output -expecting success of 0027.1113 'checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_false_attr_-text_ LF crlf_false_attr__LF.txt - -ok 1113 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF +Deleted branch broken...ref (was broken). +ok 5 - branch -d can delete badly named ref -expecting success of 0027.1114 'checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_false_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 1114 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF +expecting success of 1430.6 'branch -D can delete badly named ref': + cp .git/refs/heads/master .git/refs/heads/broken...ref && + test_when_finished "rm -f .git/refs/heads/broken...ref" && + git branch -D broken...ref && + git branch >output 2>error && + ! grep -e "broken\.\.\.ref" error && + ! grep -e "broken\.\.\.ref" output -expecting success of 0027.1115 'checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_false_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1115 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF +Deleted branch broken...ref (was broken). +ok 6 - branch -D can delete badly named ref -expecting success of 0027.1116 'checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_false_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1116 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF_mix_CR +expecting success of 1430.7 'branch -D cannot delete non-ref in .git dir': + echo precious >.git/my-private-file && + echo precious >expect && + test_must_fail git branch -D ../../my-private-file && + test_cmp expect .git/my-private-file -expecting success of 0027.1117 'checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_false_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1117 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF_nul +error: branch '../../my-private-file' not found. +ok 7 - branch -D cannot delete non-ref in .git dir -expecting success of 0027.1118 'ls-files --eol attr=text ident aeol=lf core.autocrlf=false core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1118 - ls-files --eol attr=text ident aeol=lf core.autocrlf=false core.eol=crlf +expecting success of 1430.8 'branch -D cannot delete ref in .git dir': + git rev-parse HEAD >.git/my-private-file && + git rev-parse HEAD >expect && + git branch foo/legit && + test_must_fail git branch -D foo////./././../../../my-private-file && + test_cmp expect .git/my-private-file -expecting success of 0027.1119 'checkout attr=text ident aeol=lf core.autocrlf=false core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_false_attr_text_ LF crlf_false_attr__LF.txt - -ok 1119 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=crlf file=LF +error: branch 'foo////./././../../../my-private-file' not found. +ok 8 - branch -D cannot delete ref in .git dir -expecting success of 0027.1120 'checkout attr=text ident aeol=lf core.autocrlf=false core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 1120 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=crlf file=CRLF +expecting success of 1430.9 'branch -D cannot delete absolute path': + git branch -f extra && + test_must_fail git branch -D "$(pwd)/.git/refs/heads/extra" && + test_cmp_rev HEAD extra -expecting success of 0027.1121 'checkout attr=text ident aeol=lf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1121 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF +error: branch '/build/git-2.30.2/t/trash directory.t1430-bad-ref-name/.git/refs/heads/extra' not found. +ok 9 - branch -D cannot delete absolute path -expecting success of 0027.1122 'checkout attr=text ident aeol=lf core.autocrlf=false core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_false_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1122 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=crlf file=LF_mix_CR +expecting success of 1430.10 'git branch cannot create a badly named ref': + test_when_finished "rm -f .git/refs/heads/broken...ref" && + test_must_fail git branch broken...ref && + git branch >output 2>error && + ! grep -e "broken\.\.\.ref" error && + ! grep -e "broken\.\.\.ref" output -expecting success of 0027.1123 'checkout attr=text ident aeol=lf core.autocrlf=false core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_false_attr_text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1123 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=crlf file=LF_nul +fatal: 'broken...ref' is not a valid branch name. +ok 10 - git branch cannot create a badly named ref -expecting success of 0027.1124 'ls-files --eol attr=text ident aeol=crlf core.autocrlf=false core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1124 - ls-files --eol attr=text ident aeol=crlf core.autocrlf=false core.eol=crlf +expecting success of 1430.11 'branch -m cannot rename to a bad ref name': + test_when_finished "rm -f .git/refs/heads/broken...ref" && + test_might_fail git branch -D goodref && + git branch goodref && + test_must_fail git branch -m goodref broken...ref && + test_cmp_rev master goodref && + git branch >output 2>error && + ! grep -e "broken\.\.\.ref" error && + ! grep -e "broken\.\.\.ref" output -expecting success of 0027.1125 'checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF crlf_false_attr__LF.txt - -ok 1125 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF +error: branch 'goodref' not found. +fatal: 'broken...ref' is not a valid branch name. +ok 11 - branch -m cannot rename to a bad ref name -expecting success of 0027.1126 'checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 1126 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF +checking known breakage of 1430.12 'branch -m can rename from a bad ref name': + cp .git/refs/heads/master .git/refs/heads/broken...ref && + test_when_finished "rm -f .git/refs/heads/broken...ref" && + git branch -m broken...ref renamed && + test_cmp_rev master renamed && + git branch >output 2>error && + ! grep -e "broken\.\.\.ref" error && + ! grep -e "broken\.\.\.ref" output -expecting success of 0027.1127 'checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt - -ok 1127 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF +fatal: Invalid branch name: 'broken...ref' +not ok 12 - branch -m can rename from a bad ref name # TODO known breakage -expecting success of 0027.1128 'checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1128 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF_mix_CR +expecting success of 1430.13 'push cannot create a badly named ref': + test_when_finished "rm -f .git/refs/heads/broken...ref" && + test_must_fail git push "file://$(pwd)" HEAD:refs/heads/broken...ref && + git branch >output 2>error && + ! grep -e "broken\.\.\.ref" error && + ! grep -e "broken\.\.\.ref" output -expecting success of 0027.1129 'checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt - -ok 1129 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF_nul +fatal: invalid refspec 'HEAD:refs/heads/broken...ref' +ok 13 - push cannot create a badly named ref -expecting success of 0027.1130 'ls-files --eol attr=auto ident aeol=lf core.autocrlf=false core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1130 - ls-files --eol attr=auto ident aeol=lf core.autocrlf=false core.eol=crlf +checking known breakage of 1430.14 'push --mirror can delete badly named ref': + top=$(pwd) && + git init src && + git init dest && -expecting success of 0027.1131 'checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_false_attr_auto_ LF crlf_false_attr__LF.txt - -ok 1131 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=crlf file=LF + ( + cd src && + test_commit one + ) && + ( + cd dest && + test_commit two && + git checkout --detach && + cp .git/refs/heads/master .git/refs/heads/broken...ref + ) && + git -C src push --mirror "file://$top/dest" && + git -C dest branch >output 2>error && + ! grep -e "broken\.\.\.ref" error && + ! grep -e "broken\.\.\.ref" output -expecting success of 0027.1132 'checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_false_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 1132 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=crlf file=CRLF +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1430-bad-ref-name/src/.git/ +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1430-bad-ref-name/dest/.git/ +[master (root-commit) 4331c28] one + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 one.t +[master (root-commit) 9db02ea] two + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 two.t +HEAD is now at 9db02ea two +remote: warning: ignoring ref with broken name refs/heads/broken...ref +To file:///build/git-2.30.2/t/trash directory.t1430-bad-ref-name/dest + + 9db02ea...4331c28 master -> master (forced update) + - [deleted] two + * [new tag] one -> one +warning: ignoring ref with broken name refs/heads/broken...ref +not ok 14 - push --mirror can delete badly named ref # TODO known breakage -expecting success of 0027.1133 'checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_false_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1133 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF +expecting success of 1430.15 'rev-parse skips symref pointing to broken name': + test_when_finished "rm -f .git/refs/heads/broken...ref" && + git branch shadow one && + cp .git/refs/heads/master .git/refs/heads/broken...ref && + printf "ref: refs/heads/broken...ref\n" >.git/refs/tags/shadow && + test_when_finished "rm -f .git/refs/tags/shadow" && + git rev-parse --verify one >expect && + git rev-parse --verify shadow >actual 2>err && + test_cmp expect actual && + test_i18ngrep "ignoring dangling symref refs/tags/shadow" err -expecting success of 0027.1134 'checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_false_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1134 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=crlf file=LF_mix_CR +warning: ignoring dangling symref refs/tags/shadow +ok 15 - rev-parse skips symref pointing to broken name -expecting success of 0027.1135 'checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_false_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1135 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=crlf file=LF_nul +expecting success of 1430.16 'for-each-ref emits warnings for broken names': + cp .git/refs/heads/master .git/refs/heads/broken...ref && + test_when_finished "rm -f .git/refs/heads/broken...ref" && + printf "ref: refs/heads/broken...ref\n" >.git/refs/heads/badname && + test_when_finished "rm -f .git/refs/heads/badname" && + printf "ref: refs/heads/master\n" >.git/refs/heads/broken...symref && + test_when_finished "rm -f .git/refs/heads/broken...symref" && + git for-each-ref >output 2>error && + ! grep -e "broken\.\.\.ref" output && + ! grep -e "badname" output && + ! grep -e "broken\.\.\.symref" output && + test_i18ngrep "ignoring ref with broken name refs/heads/broken\.\.\.ref" error && + test_i18ngrep "ignoring broken ref refs/heads/badname" error && + test_i18ngrep "ignoring ref with broken name refs/heads/broken\.\.\.symref" error -expecting success of 0027.1136 'ls-files --eol attr=auto ident aeol=crlf core.autocrlf=false core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1136 - ls-files --eol attr=auto ident aeol=crlf core.autocrlf=false core.eol=crlf +warning: ignoring ref with broken name refs/heads/broken...ref +warning: ignoring broken ref refs/heads/badname +warning: ignoring ref with broken name refs/heads/broken...symref +ok 16 - for-each-ref emits warnings for broken names -expecting success of 0027.1137 'checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_false_attr_auto_ CRLF crlf_false_attr__LF.txt - -ok 1137 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF +expecting success of 1430.17 'update-ref -d can delete broken name': + cp .git/refs/heads/master .git/refs/heads/broken...ref && + test_when_finished "rm -f .git/refs/heads/broken...ref" && + git update-ref -d refs/heads/broken...ref >output 2>error && + test_must_be_empty output && + test_must_be_empty error && + git branch >output 2>error && + ! grep -e "broken\.\.\.ref" error && + ! grep -e "broken\.\.\.ref" output -expecting success of 0027.1138 'checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_false_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 1138 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF +ok 17 - update-ref -d can delete broken name -expecting success of 0027.1139 'checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_false_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1139 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF +expecting success of 1430.18 'branch -d can delete broken name': + cp .git/refs/heads/master .git/refs/heads/broken...ref && + test_when_finished "rm -f .git/refs/heads/broken...ref" && + git branch -d broken...ref >output 2>error && + test_i18ngrep "Deleted branch broken...ref (was broken)" output && + test_must_be_empty error && + git branch >output 2>error && + ! grep -e "broken\.\.\.ref" error && + ! grep -e "broken\.\.\.ref" output -expecting success of 0027.1140 'checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_false_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1140 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF_mix_CR +Deleted branch broken...ref (was broken). +ok 18 - branch -d can delete broken name -expecting success of 0027.1141 'checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_false_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1141 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF_nul +expecting success of 1430.19 'update-ref --no-deref -d can delete symref to broken name': + cp .git/refs/heads/master .git/refs/heads/broken...ref && + test_when_finished "rm -f .git/refs/heads/broken...ref" && + printf "ref: refs/heads/broken...ref\n" >.git/refs/heads/badname && + test_when_finished "rm -f .git/refs/heads/badname" && + git update-ref --no-deref -d refs/heads/badname >output 2>error && + test_path_is_missing .git/refs/heads/badname && + test_must_be_empty output && + test_must_be_empty error -expecting success of 0027.1142 'ls-files --eol attr=-text ident aeol= core.autocrlf=input core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1142 - ls-files --eol attr=-text ident aeol= core.autocrlf=input core.eol=crlf +ok 19 - update-ref --no-deref -d can delete symref to broken name -expecting success of 0027.1143 'checkout attr=-text ident aeol= core.autocrlf=input core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_input_attr_-text_ LF crlf_false_attr__LF.txt - -ok 1143 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=crlf file=LF +expecting success of 1430.20 'branch -d can delete symref to broken name': + cp .git/refs/heads/master .git/refs/heads/broken...ref && + test_when_finished "rm -f .git/refs/heads/broken...ref" && + printf "ref: refs/heads/broken...ref\n" >.git/refs/heads/badname && + test_when_finished "rm -f .git/refs/heads/badname" && + git branch -d badname >output 2>error && + test_path_is_missing .git/refs/heads/badname && + test_i18ngrep "Deleted branch badname (was refs/heads/broken\.\.\.ref)" output && + test_must_be_empty error -expecting success of 0027.1144 'checkout attr=-text ident aeol= core.autocrlf=input core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_input_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 1144 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=crlf file=CRLF +Deleted branch badname (was refs/heads/broken...ref). +ok 20 - branch -d can delete symref to broken name -expecting success of 0027.1145 'checkout attr=-text ident aeol= core.autocrlf=input core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_input_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1145 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=crlf file=CRLF_mix_LF +expecting success of 1430.21 'update-ref --no-deref -d can delete dangling symref to broken name': + printf "ref: refs/heads/broken...ref\n" >.git/refs/heads/badname && + test_when_finished "rm -f .git/refs/heads/badname" && + git update-ref --no-deref -d refs/heads/badname >output 2>error && + test_path_is_missing .git/refs/heads/badname && + test_must_be_empty output && + test_must_be_empty error -expecting success of 0027.1146 'checkout attr=-text ident aeol= core.autocrlf=input core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_input_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1146 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=crlf file=LF_mix_CR +ok 21 - update-ref --no-deref -d can delete dangling symref to broken name -expecting success of 0027.1147 'checkout attr=-text ident aeol= core.autocrlf=input core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_input_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1147 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=crlf file=LF_nul +expecting success of 1430.22 'branch -d can delete dangling symref to broken name': + printf "ref: refs/heads/broken...ref\n" >.git/refs/heads/badname && + test_when_finished "rm -f .git/refs/heads/badname" && + git branch -d badname >output 2>error && + test_path_is_missing .git/refs/heads/badname && + test_i18ngrep "Deleted branch badname (was refs/heads/broken\.\.\.ref)" output && + test_must_be_empty error -expecting success of 0027.1148 'ls-files --eol attr=-text ident aeol=lf core.autocrlf=input core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1148 - ls-files --eol attr=-text ident aeol=lf core.autocrlf=input core.eol=crlf +Deleted branch badname (was refs/heads/broken...ref). +ok 22 - branch -d can delete dangling symref to broken name -expecting success of 0027.1149 'checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_input_attr_-text_ LF crlf_false_attr__LF.txt - -ok 1149 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=crlf file=LF +expecting success of 1430.23 'update-ref -d can delete broken name through symref': + cp .git/refs/heads/master .git/refs/heads/broken...ref && + test_when_finished "rm -f .git/refs/heads/broken...ref" && + printf "ref: refs/heads/broken...ref\n" >.git/refs/heads/badname && + test_when_finished "rm -f .git/refs/heads/badname" && + git update-ref -d refs/heads/badname >output 2>error && + test_path_is_missing .git/refs/heads/broken...ref && + test_must_be_empty output && + test_must_be_empty error -expecting success of 0027.1150 'checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_input_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 1150 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=crlf file=CRLF +ok 23 - update-ref -d can delete broken name through symref -expecting success of 0027.1151 'checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_input_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1151 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF +expecting success of 1430.24 'update-ref --no-deref -d can delete symref with broken name': + printf "ref: refs/heads/master\n" >.git/refs/heads/broken...symref && + test_when_finished "rm -f .git/refs/heads/broken...symref" && + git update-ref --no-deref -d refs/heads/broken...symref >output 2>error && + test_path_is_missing .git/refs/heads/broken...symref && + test_must_be_empty output && + test_must_be_empty error -expecting success of 0027.1152 'checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_input_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1152 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=crlf file=LF_mix_CR +ok 24 - update-ref --no-deref -d can delete symref with broken name -expecting success of 0027.1153 'checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_input_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1153 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=crlf file=LF_nul +expecting success of 1430.25 'branch -d can delete symref with broken name': + printf "ref: refs/heads/master\n" >.git/refs/heads/broken...symref && + test_when_finished "rm -f .git/refs/heads/broken...symref" && + git branch -d broken...symref >output 2>error && + test_path_is_missing .git/refs/heads/broken...symref && + test_i18ngrep "Deleted branch broken...symref (was refs/heads/master)" output && + test_must_be_empty error -expecting success of 0027.1154 'ls-files --eol attr=-text ident aeol=crlf core.autocrlf=input core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1154 - ls-files --eol attr=-text ident aeol=crlf core.autocrlf=input core.eol=crlf +Deleted branch broken...symref (was refs/heads/master). +ok 25 - branch -d can delete symref with broken name -expecting success of 0027.1155 'checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_input_attr_-text_ LF crlf_false_attr__LF.txt - -ok 1155 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF +expecting success of 1430.26 'update-ref --no-deref -d can delete dangling symref with broken name': + printf "ref: refs/heads/idonotexist\n" >.git/refs/heads/broken...symref && + test_when_finished "rm -f .git/refs/heads/broken...symref" && + git update-ref --no-deref -d refs/heads/broken...symref >output 2>error && + test_path_is_missing .git/refs/heads/broken...symref && + test_must_be_empty output && + test_must_be_empty error -expecting success of 0027.1156 'checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_input_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 1156 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF +ok 26 - update-ref --no-deref -d can delete dangling symref with broken name -expecting success of 0027.1157 'checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_input_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1157 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF +expecting success of 1430.27 'branch -d can delete dangling symref with broken name': + printf "ref: refs/heads/idonotexist\n" >.git/refs/heads/broken...symref && + test_when_finished "rm -f .git/refs/heads/broken...symref" && + git branch -d broken...symref >output 2>error && + test_path_is_missing .git/refs/heads/broken...symref && + test_i18ngrep "Deleted branch broken...symref (was refs/heads/idonotexist)" output && + test_must_be_empty error -expecting success of 0027.1158 'checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_input_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1158 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF_mix_CR +Deleted branch broken...symref (was refs/heads/idonotexist). +ok 27 - branch -d can delete dangling symref with broken name -expecting success of 0027.1159 'checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_input_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1159 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF_nul +expecting success of 1430.28 'update-ref -d cannot delete non-ref in .git dir': + echo precious >.git/my-private-file && + echo precious >expect && + test_must_fail git update-ref -d my-private-file >output 2>error && + test_must_be_empty output && + test_i18ngrep -e "refusing to update ref with bad name" error && + test_cmp expect .git/my-private-file -expecting success of 0027.1160 'ls-files --eol attr=text ident aeol=lf core.autocrlf=input core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1160 - ls-files --eol attr=text ident aeol=lf core.autocrlf=input core.eol=crlf +error: refusing to update ref with bad name 'my-private-file' +ok 28 - update-ref -d cannot delete non-ref in .git dir -expecting success of 0027.1161 'checkout attr=text ident aeol=lf core.autocrlf=input core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_input_attr_text_ LF crlf_false_attr__LF.txt - -ok 1161 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=crlf file=LF +expecting success of 1430.29 'update-ref -d cannot delete absolute path': + git branch -f extra && + test_must_fail git update-ref -d "$(pwd)/.git/refs/heads/extra" && + test_cmp_rev HEAD extra -expecting success of 0027.1162 'checkout attr=text ident aeol=lf core.autocrlf=input core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 1162 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=crlf file=CRLF +error: refusing to update ref with bad name '/build/git-2.30.2/t/trash directory.t1430-bad-ref-name/.git/refs/heads/extra' +ok 29 - update-ref -d cannot delete absolute path -expecting success of 0027.1163 'checkout attr=text ident aeol=lf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_input_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1163 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF +expecting success of 1430.30 'update-ref --stdin fails create with bad ref name': + echo "create ~a refs/heads/master" >stdin && + test_must_fail git update-ref --stdin err && + grep "fatal: invalid ref format: ~a" err -expecting success of 0027.1164 'checkout attr=text ident aeol=lf core.autocrlf=input core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_input_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1164 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=crlf file=LF_mix_CR +fatal: invalid ref format: ~a +ok 30 - update-ref --stdin fails create with bad ref name -expecting success of 0027.1165 'checkout attr=text ident aeol=lf core.autocrlf=input core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_input_attr_text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1165 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=crlf file=LF_nul +expecting success of 1430.31 'update-ref --stdin fails update with bad ref name': + echo "update ~a refs/heads/master" >stdin && + test_must_fail git update-ref --stdin err && + grep "fatal: invalid ref format: ~a" err -expecting success of 0027.1166 'ls-files --eol attr=text ident aeol=crlf core.autocrlf=input core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1166 - ls-files --eol attr=text ident aeol=crlf core.autocrlf=input core.eol=crlf +fatal: invalid ref format: ~a +ok 31 - update-ref --stdin fails update with bad ref name -expecting success of 0027.1167 'checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_input_attr_text_ CRLF crlf_false_attr__LF.txt - -ok 1167 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF +expecting success of 1430.32 'update-ref --stdin fails delete with bad ref name': + echo "delete ~a refs/heads/master" >stdin && + test_must_fail git update-ref --stdin err && + grep "fatal: invalid ref format: ~a" err -expecting success of 0027.1168 'checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 1168 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF +fatal: invalid ref format: ~a +ok 32 - update-ref --stdin fails delete with bad ref name -expecting success of 0027.1169 'checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt - -ok 1169 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF +expecting success of 1430.33 'update-ref --stdin -z fails create with bad ref name': + printf "%s\0" "create ~a " refs/heads/master >stdin && + test_must_fail git update-ref -z --stdin err && + grep "fatal: invalid ref format: ~a " err -expecting success of 0027.1170 'checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_input_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1170 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF_mix_CR +fatal: invalid ref format: ~a +ok 33 - update-ref --stdin -z fails create with bad ref name -expecting success of 0027.1171 'checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_input_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt - -ok 1171 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF_nul +expecting success of 1430.34 'update-ref --stdin -z fails update with bad ref name': + printf "%s\0" "update ~a" refs/heads/master "" >stdin && + test_must_fail git update-ref -z --stdin err && + grep "fatal: invalid ref format: ~a" err -expecting success of 0027.1172 'ls-files --eol attr=auto ident aeol=lf core.autocrlf=input core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1172 - ls-files --eol attr=auto ident aeol=lf core.autocrlf=input core.eol=crlf +fatal: invalid ref format: ~a +ok 34 - update-ref --stdin -z fails update with bad ref name -expecting success of 0027.1173 'checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_input_attr_auto_ LF crlf_false_attr__LF.txt - -ok 1173 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=crlf file=LF +expecting success of 1430.35 'update-ref --stdin -z fails delete with bad ref name': + printf "%s\0" "delete ~a" refs/heads/master >stdin && + test_must_fail git update-ref -z --stdin err && + grep "fatal: invalid ref format: ~a" err -expecting success of 0027.1174 'checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_input_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 1174 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=crlf file=CRLF +fatal: invalid ref format: ~a +ok 35 - update-ref --stdin -z fails delete with bad ref name -expecting success of 0027.1175 'checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_input_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1175 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF +expecting success of 1430.36 'branch rejects HEAD as a branch name': + test_must_fail git branch HEAD HEAD^ && + test_must_fail git show-ref refs/heads/HEAD -expecting success of 0027.1176 'checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_input_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1176 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=crlf file=LF_mix_CR +fatal: 'HEAD' is not a valid branch name. +ok 36 - branch rejects HEAD as a branch name -expecting success of 0027.1177 'checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_input_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1177 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=crlf file=LF_nul +expecting success of 1430.37 'checkout -b rejects HEAD as a branch name': + test_must_fail git checkout -B HEAD HEAD^ && + test_must_fail git show-ref refs/heads/HEAD -expecting success of 0027.1178 'ls-files --eol attr=auto ident aeol=crlf core.autocrlf=input core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1178 - ls-files --eol attr=auto ident aeol=crlf core.autocrlf=input core.eol=crlf +fatal: 'HEAD' is not a valid branch name. +ok 37 - checkout -b rejects HEAD as a branch name -expecting success of 0027.1179 'checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_input_attr_auto_ CRLF crlf_false_attr__LF.txt - -ok 1179 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF +expecting success of 1430.38 'update-ref can operate on refs/heads/HEAD': + git update-ref refs/heads/HEAD HEAD^ && + git show-ref refs/heads/HEAD && + git update-ref -d refs/heads/HEAD && + test_must_fail git show-ref refs/heads/HEAD -expecting success of 0027.1180 'checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_input_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 1180 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF +d79ce1670bdcb76e6d1da2ae095e890ccb326ae9 refs/heads/HEAD +ok 38 - update-ref can operate on refs/heads/HEAD -expecting success of 0027.1181 'checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_input_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1181 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF +expecting success of 1430.39 'branch -d can remove refs/heads/HEAD': + git update-ref refs/heads/HEAD HEAD^ && + git branch -d HEAD && + test_must_fail git show-ref refs/heads/HEAD -expecting success of 0027.1182 'checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_input_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1182 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF_mix_CR +Deleted branch HEAD (was d79ce16). +ok 39 - branch -d can remove refs/heads/HEAD -expecting success of 0027.1183 'checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_input_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1183 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF_nul +expecting success of 1430.40 'branch -m can rename refs/heads/HEAD': + git update-ref refs/heads/HEAD HEAD^ && + git branch -m HEAD tail && + test_must_fail git show-ref refs/heads/HEAD && + git show-ref refs/heads/tail -expecting success of 0027.1184 'ls-files --eol attr= ident aeol= core.autocrlf=false core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1184 - ls-files --eol attr= ident aeol= core.autocrlf=false core.eol=crlf +warning: Renamed a misnamed branch 'HEAD' away +d79ce1670bdcb76e6d1da2ae095e890ccb326ae9 refs/heads/tail +ok 40 - branch -m can rename refs/heads/HEAD -expecting success of 0027.1185 'checkout attr= ident aeol= core.autocrlf=false core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_false_attr__ LF crlf_false_attr__LF.txt - -ok 1185 - checkout attr= ident aeol= core.autocrlf=false core.eol=crlf file=LF +expecting success of 1430.41 'branch -d can remove refs/heads/-dash': + git update-ref refs/heads/-dash HEAD^ && + git branch -d -- -dash && + test_must_fail git show-ref refs/heads/-dash -expecting success of 0027.1186 'checkout attr= ident aeol= core.autocrlf=false core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_false_attr__ CRLF crlf_false_attr__CRLF.txt - -ok 1186 - checkout attr= ident aeol= core.autocrlf=false core.eol=crlf file=CRLF +Deleted branch -dash (was d79ce16). +ok 41 - branch -d can remove refs/heads/-dash -expecting success of 0027.1187 'checkout attr= ident aeol= core.autocrlf=false core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_false_attr__ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1187 - checkout attr= ident aeol= core.autocrlf=false core.eol=crlf file=CRLF_mix_LF +expecting success of 1430.42 'branch -m can rename refs/heads/-dash': + git update-ref refs/heads/-dash HEAD^ && + git branch -m -- -dash dash && + test_must_fail git show-ref refs/heads/-dash && + git show-ref refs/heads/dash -expecting success of 0027.1188 'checkout attr= ident aeol= core.autocrlf=false core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_false_attr__ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1188 - checkout attr= ident aeol= core.autocrlf=false core.eol=crlf file=LF_mix_CR +warning: Renamed a misnamed branch '-dash' away +d79ce1670bdcb76e6d1da2ae095e890ccb326ae9 refs/heads/dash +ok 42 - branch -m can rename refs/heads/-dash -expecting success of 0027.1189 'checkout attr= ident aeol= core.autocrlf=false core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_false_attr__ LF_nul crlf_false_attr__LF_nul.txt - -ok 1189 - checkout attr= ident aeol= core.autocrlf=false core.eol=crlf file=LF_nul +# still have 2 known breakage(s) +# passed all remaining 40 test(s) +1..42 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t1500-rev-parse.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1500-rev-parse/.git/ +expecting success of 1500.1 'setup': + mkdir -p sub/dir work && + cp -R .git repo.git -expecting success of 0027.1190 'ls-files --eol attr= ident aeol= core.autocrlf=true core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1190 - ls-files --eol attr= ident aeol= core.autocrlf=true core.eol=crlf +ok 1 - setup -expecting success of 0027.1191 'checkout attr= ident aeol= core.autocrlf=true core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_true_attr__ CRLF crlf_false_attr__LF.txt - -ok 1191 - checkout attr= ident aeol= core.autocrlf=true core.eol=crlf file=LF +expecting success of 1500.2 'toplevel: --is-bare-repository': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1192 'checkout attr= ident aeol= core.autocrlf=true core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_true_attr__ CRLF crlf_false_attr__CRLF.txt - -ok 1192 - checkout attr= ident aeol= core.autocrlf=true core.eol=crlf file=CRLF + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1193 'checkout attr= ident aeol= core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_true_attr__ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1193 - checkout attr= ident aeol= core.autocrlf=true core.eol=crlf file=CRLF_mix_LF + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 2 - toplevel: --is-bare-repository -expecting success of 0027.1194 'checkout attr= ident aeol= core.autocrlf=true core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_true_attr__ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1194 - checkout attr= ident aeol= core.autocrlf=true core.eol=crlf file=LF_mix_CR +expecting success of 1500.3 'toplevel: --is-inside-git-dir': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1195 'checkout attr= ident aeol= core.autocrlf=true core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_true_attr__ LF_nul crlf_false_attr__LF_nul.txt - -ok 1195 - checkout attr= ident aeol= core.autocrlf=true core.eol=crlf file=LF_nul + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1196 'ls-files --eol attr=auto ident aeol= core.autocrlf=true core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1196 - ls-files --eol attr=auto ident aeol= core.autocrlf=true core.eol=crlf + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 3 - toplevel: --is-inside-git-dir -expecting success of 0027.1197 'checkout attr=auto ident aeol= core.autocrlf=true core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_true_attr_auto_ CRLF crlf_false_attr__LF.txt - -ok 1197 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=crlf file=LF +expecting success of 1500.4 'toplevel: --is-inside-work-tree': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1198 'checkout attr=auto ident aeol= core.autocrlf=true core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_true_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 1198 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=crlf file=CRLF + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1199 'checkout attr=auto ident aeol= core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_true_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1199 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=crlf file=CRLF_mix_LF + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 4 - toplevel: --is-inside-work-tree -expecting success of 0027.1200 'checkout attr=auto ident aeol= core.autocrlf=true core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_true_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1200 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=crlf file=LF_mix_CR +expecting success of 1500.5 'toplevel: --show-prefix': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1201 'checkout attr=auto ident aeol= core.autocrlf=true core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_true_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1201 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=crlf file=LF_nul + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1202 'ls-files --eol attr=text ident aeol= core.autocrlf=true core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1202 - ls-files --eol attr=text ident aeol= core.autocrlf=true core.eol=crlf + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 5 - toplevel: --show-prefix -expecting success of 0027.1203 'checkout attr=text ident aeol= core.autocrlf=true core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF crlf_false_attr__LF.txt - -ok 1203 - checkout attr=text ident aeol= core.autocrlf=true core.eol=crlf file=LF +expecting success of 1500.6 'toplevel: --git-dir': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1204 'checkout attr=text ident aeol= core.autocrlf=true core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 1204 - checkout attr=text ident aeol= core.autocrlf=true core.eol=crlf file=CRLF + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1205 'checkout attr=text ident aeol= core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt - -ok 1205 - checkout attr=text ident aeol= core.autocrlf=true core.eol=crlf file=CRLF_mix_LF + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 6 - toplevel: --git-dir -expecting success of 0027.1206 'checkout attr=text ident aeol= core.autocrlf=true core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1206 - checkout attr=text ident aeol= core.autocrlf=true core.eol=crlf file=LF_mix_CR +expecting success of 1500.7 'toplevel: --absolute-git-dir': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1207 'checkout attr=text ident aeol= core.autocrlf=true core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt - -ok 1207 - checkout attr=text ident aeol= core.autocrlf=true core.eol=crlf file=LF_nul + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1208 'ls-files --eol attr=text ident aeol= core.autocrlf=input core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1208 - ls-files --eol attr=text ident aeol= core.autocrlf=input core.eol=crlf + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 7 - toplevel: --absolute-git-dir -expecting success of 0027.1209 'checkout attr=text ident aeol= core.autocrlf=input core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_input_attr_text_ LF crlf_false_attr__LF.txt - -ok 1209 - checkout attr=text ident aeol= core.autocrlf=input core.eol=crlf file=LF +expecting success of 1500.8 '.git/: --is-bare-repository': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1210 'checkout attr=text ident aeol= core.autocrlf=input core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 1210 - checkout attr=text ident aeol= core.autocrlf=input core.eol=crlf file=CRLF + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1211 'checkout attr=text ident aeol= core.autocrlf=input core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_input_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1211 - checkout attr=text ident aeol= core.autocrlf=input core.eol=crlf file=CRLF_mix_LF + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 8 - .git/: --is-bare-repository -expecting success of 0027.1212 'checkout attr=text ident aeol= core.autocrlf=input core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_input_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1212 - checkout attr=text ident aeol= core.autocrlf=input core.eol=crlf file=LF_mix_CR +expecting success of 1500.9 '.git/: --is-inside-git-dir': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1213 'checkout attr=text ident aeol= core.autocrlf=input core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_input_attr_text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1213 - checkout attr=text ident aeol= core.autocrlf=input core.eol=crlf file=LF_nul + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1214 'ls-files --eol attr=auto ident aeol= core.autocrlf=input core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1214 - ls-files --eol attr=auto ident aeol= core.autocrlf=input core.eol=crlf + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 9 - .git/: --is-inside-git-dir -expecting success of 0027.1215 'checkout attr=auto ident aeol= core.autocrlf=input core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_input_attr_auto_ LF crlf_false_attr__LF.txt - -ok 1215 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=crlf file=LF +expecting success of 1500.10 '.git/: --is-inside-work-tree': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1216 'checkout attr=auto ident aeol= core.autocrlf=input core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_input_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 1216 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=crlf file=CRLF + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1217 'checkout attr=auto ident aeol= core.autocrlf=input core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_input_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1217 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=crlf file=CRLF_mix_LF + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 10 - .git/: --is-inside-work-tree -expecting success of 0027.1218 'checkout attr=auto ident aeol= core.autocrlf=input core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_input_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1218 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=crlf file=LF_mix_CR +expecting success of 1500.11 '.git/: --show-prefix': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1219 'checkout attr=auto ident aeol= core.autocrlf=input core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_input_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1219 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=crlf file=LF_nul + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1220 'ls-files --eol attr=-text ident aeol= core.autocrlf=true core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1220 - ls-files --eol attr=-text ident aeol= core.autocrlf=true core.eol=native + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 11 - .git/: --show-prefix -expecting success of 0027.1221 'checkout attr=-text ident aeol= core.autocrlf=true core.eol=native file=LF': - compare_ws_file eol_native_crlf_true_attr_-text_ LF crlf_false_attr__LF.txt - -ok 1221 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=native file=LF +expecting success of 1500.12 '.git/: --git-dir': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1222 'checkout attr=-text ident aeol= core.autocrlf=true core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_true_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 1222 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=native file=CRLF + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1223 'checkout attr=-text ident aeol= core.autocrlf=true core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_true_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1223 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=native file=CRLF_mix_LF + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 12 - .git/: --git-dir -expecting success of 0027.1224 'checkout attr=-text ident aeol= core.autocrlf=true core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_true_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1224 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=native file=LF_mix_CR +expecting success of 1500.13 '.git/: --absolute-git-dir': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1225 'checkout attr=-text ident aeol= core.autocrlf=true core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_true_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1225 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=native file=LF_nul + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1226 'ls-files --eol attr=-text ident aeol=lf core.autocrlf=true core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1226 - ls-files --eol attr=-text ident aeol=lf core.autocrlf=true core.eol=native - -expecting success of 0027.1227 'checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=native file=LF': - compare_ws_file eol_native_crlf_true_attr_-text_ LF crlf_false_attr__LF.txt - -ok 1227 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=native file=LF - -expecting success of 0027.1228 'checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_true_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 1228 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=native file=CRLF - -expecting success of 0027.1229 'checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_true_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1229 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=native file=CRLF_mix_LF - -expecting success of 0027.1230 'checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_true_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1230 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=native file=LF_mix_CR - -expecting success of 0027.1231 'checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_true_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1231 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=native file=LF_nul + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 13 - .git/: --absolute-git-dir -expecting success of 0027.1232 'ls-files --eol attr=-text ident aeol=crlf core.autocrlf=true core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1232 - ls-files --eol attr=-text ident aeol=crlf core.autocrlf=true core.eol=native +expecting success of 1500.14 '.git/objects/: --is-bare-repository': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1233 'checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=native file=LF': - compare_ws_file eol_native_crlf_true_attr_-text_ LF crlf_false_attr__LF.txt - -ok 1233 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=native file=LF + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1234 'checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_true_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 1234 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=native file=CRLF + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 14 - .git/objects/: --is-bare-repository -expecting success of 0027.1235 'checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_true_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1235 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=native file=CRLF_mix_LF +expecting success of 1500.15 '.git/objects/: --is-inside-git-dir': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1236 'checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_true_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1236 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=native file=LF_mix_CR + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1237 'checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_true_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1237 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=native file=LF_nul + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 15 - .git/objects/: --is-inside-git-dir -expecting success of 0027.1238 'ls-files --eol attr=text ident aeol=lf core.autocrlf=true core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1238 - ls-files --eol attr=text ident aeol=lf core.autocrlf=true core.eol=native +expecting success of 1500.16 '.git/objects/: --is-inside-work-tree': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1239 'checkout attr=text ident aeol=lf core.autocrlf=true core.eol=native file=LF': - compare_ws_file eol_native_crlf_true_attr_text_ LF crlf_false_attr__LF.txt - -ok 1239 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=native file=LF + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1240 'checkout attr=text ident aeol=lf core.autocrlf=true core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 1240 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=native file=CRLF + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 16 - .git/objects/: --is-inside-work-tree -expecting success of 0027.1241 'checkout attr=text ident aeol=lf core.autocrlf=true core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_true_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1241 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=native file=CRLF_mix_LF +expecting success of 1500.17 '.git/objects/: --show-prefix': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1242 'checkout attr=text ident aeol=lf core.autocrlf=true core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_true_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1242 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=native file=LF_mix_CR + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1243 'checkout attr=text ident aeol=lf core.autocrlf=true core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_true_attr_text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1243 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=native file=LF_nul + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 17 - .git/objects/: --show-prefix -expecting success of 0027.1244 'ls-files --eol attr=text ident aeol=crlf core.autocrlf=true core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1244 - ls-files --eol attr=text ident aeol=crlf core.autocrlf=true core.eol=native +expecting success of 1500.18 '.git/objects/: --git-dir': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1245 'checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=native file=LF': - compare_ws_file eol_native_crlf_true_attr_text_ CRLF crlf_false_attr__LF.txt - -ok 1245 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=native file=LF + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1246 'checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 1246 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=native file=CRLF + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 18 - .git/objects/: --git-dir -expecting success of 0027.1247 'checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt - -ok 1247 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=native file=CRLF_mix_LF +expecting success of 1500.19 '.git/objects/: --absolute-git-dir': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1248 'checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_true_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1248 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=native file=LF_mix_CR + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1249 'checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_true_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt - -ok 1249 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=native file=LF_nul + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 19 - .git/objects/: --absolute-git-dir -expecting success of 0027.1250 'ls-files --eol attr=auto ident aeol=lf core.autocrlf=true core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1250 - ls-files --eol attr=auto ident aeol=lf core.autocrlf=true core.eol=native +expecting success of 1500.20 'subdirectory: --is-bare-repository': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1251 'checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=native file=LF': - compare_ws_file eol_native_crlf_true_attr_auto_ LF crlf_false_attr__LF.txt - -ok 1251 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=native file=LF + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1252 'checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_true_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 1252 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=native file=CRLF + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 20 - subdirectory: --is-bare-repository -expecting success of 0027.1253 'checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_true_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1253 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=native file=CRLF_mix_LF +expecting success of 1500.21 'subdirectory: --is-inside-git-dir': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1254 'checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_true_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1254 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=native file=LF_mix_CR + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1255 'checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_true_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1255 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=native file=LF_nul + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 21 - subdirectory: --is-inside-git-dir -expecting success of 0027.1256 'ls-files --eol attr=auto ident aeol=crlf core.autocrlf=true core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1256 - ls-files --eol attr=auto ident aeol=crlf core.autocrlf=true core.eol=native +expecting success of 1500.22 'subdirectory: --is-inside-work-tree': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1257 'checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=native file=LF': - compare_ws_file eol_native_crlf_true_attr_auto_ CRLF crlf_false_attr__LF.txt - -ok 1257 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=native file=LF + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1258 'checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_true_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 1258 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=native file=CRLF + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 22 - subdirectory: --is-inside-work-tree -expecting success of 0027.1259 'checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_true_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1259 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=native file=CRLF_mix_LF +expecting success of 1500.23 'subdirectory: --show-prefix': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1260 'checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_true_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1260 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=native file=LF_mix_CR + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1261 'checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_true_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1261 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=native file=LF_nul + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 23 - subdirectory: --show-prefix -expecting success of 0027.1262 'ls-files --eol attr=-text ident aeol= core.autocrlf=false core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1262 - ls-files --eol attr=-text ident aeol= core.autocrlf=false core.eol=native +expecting success of 1500.24 'subdirectory: --git-dir': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1263 'checkout attr=-text ident aeol= core.autocrlf=false core.eol=native file=LF': - compare_ws_file eol_native_crlf_false_attr_-text_ LF crlf_false_attr__LF.txt - -ok 1263 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=native file=LF + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1264 'checkout attr=-text ident aeol= core.autocrlf=false core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_false_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 1264 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=native file=CRLF + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 24 - subdirectory: --git-dir -expecting success of 0027.1265 'checkout attr=-text ident aeol= core.autocrlf=false core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_false_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1265 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=native file=CRLF_mix_LF +expecting success of 1500.25 'subdirectory: --absolute-git-dir': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1266 'checkout attr=-text ident aeol= core.autocrlf=false core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_false_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1266 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=native file=LF_mix_CR + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1267 'checkout attr=-text ident aeol= core.autocrlf=false core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_false_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1267 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=native file=LF_nul + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 25 - subdirectory: --absolute-git-dir -expecting success of 0027.1268 'ls-files --eol attr=-text ident aeol=lf core.autocrlf=false core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1268 - ls-files --eol attr=-text ident aeol=lf core.autocrlf=false core.eol=native +expecting success of 1500.26 'core.bare = true: --is-bare-repository': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1269 'checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=native file=LF': - compare_ws_file eol_native_crlf_false_attr_-text_ LF crlf_false_attr__LF.txt - -ok 1269 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=native file=LF + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1270 'checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_false_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 1270 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=native file=CRLF + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 26 - core.bare = true: --is-bare-repository -expecting success of 0027.1271 'checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_false_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1271 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=native file=CRLF_mix_LF +expecting success of 1500.27 'core.bare = true: --is-inside-git-dir': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1272 'checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_false_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1272 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=native file=LF_mix_CR + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1273 'checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_false_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1273 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=native file=LF_nul + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 27 - core.bare = true: --is-inside-git-dir -expecting success of 0027.1274 'ls-files --eol attr=-text ident aeol=crlf core.autocrlf=false core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1274 - ls-files --eol attr=-text ident aeol=crlf core.autocrlf=false core.eol=native +expecting success of 1500.28 'core.bare = true: --is-inside-work-tree': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1275 'checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=native file=LF': - compare_ws_file eol_native_crlf_false_attr_-text_ LF crlf_false_attr__LF.txt - -ok 1275 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=native file=LF + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1276 'checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_false_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 1276 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=native file=CRLF + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 28 - core.bare = true: --is-inside-work-tree -expecting success of 0027.1277 'checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_false_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1277 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=native file=CRLF_mix_LF +expecting success of 1500.29 'core.bare undefined: --is-bare-repository': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1278 'checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_false_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1278 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=native file=LF_mix_CR + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1279 'checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_false_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1279 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=native file=LF_nul + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 29 - core.bare undefined: --is-bare-repository -expecting success of 0027.1280 'ls-files --eol attr=text ident aeol=lf core.autocrlf=false core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1280 - ls-files --eol attr=text ident aeol=lf core.autocrlf=false core.eol=native +expecting success of 1500.30 'core.bare undefined: --is-inside-git-dir': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1281 'checkout attr=text ident aeol=lf core.autocrlf=false core.eol=native file=LF': - compare_ws_file eol_native_crlf_false_attr_text_ LF crlf_false_attr__LF.txt - -ok 1281 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=native file=LF + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1282 'checkout attr=text ident aeol=lf core.autocrlf=false core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 1282 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=native file=CRLF + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 30 - core.bare undefined: --is-inside-git-dir -expecting success of 0027.1283 'checkout attr=text ident aeol=lf core.autocrlf=false core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_false_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1283 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=native file=CRLF_mix_LF +expecting success of 1500.31 'core.bare undefined: --is-inside-work-tree': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1284 'checkout attr=text ident aeol=lf core.autocrlf=false core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_false_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1284 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=native file=LF_mix_CR + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1285 'checkout attr=text ident aeol=lf core.autocrlf=false core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_false_attr_text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1285 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=native file=LF_nul + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 31 - core.bare undefined: --is-inside-work-tree -expecting success of 0027.1286 'ls-files --eol attr=text ident aeol=crlf core.autocrlf=false core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1286 - ls-files --eol attr=text ident aeol=crlf core.autocrlf=false core.eol=native +expecting success of 1500.32 'GIT_DIR=../.git, core.bare = false: --is-bare-repository': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1287 'checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=native file=LF': - compare_ws_file eol_native_crlf_false_attr_text_ CRLF crlf_false_attr__LF.txt - -ok 1287 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=native file=LF + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1288 'checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 1288 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=native file=CRLF + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 32 - GIT_DIR=../.git, core.bare = false: --is-bare-repository -expecting success of 0027.1289 'checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt - -ok 1289 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=native file=CRLF_mix_LF +expecting success of 1500.33 'GIT_DIR=../.git, core.bare = false: --is-inside-git-dir': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1290 'checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_false_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1290 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=native file=LF_mix_CR + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1291 'checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_false_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt - -ok 1291 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=native file=LF_nul + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 33 - GIT_DIR=../.git, core.bare = false: --is-inside-git-dir -expecting success of 0027.1292 'ls-files --eol attr=auto ident aeol=lf core.autocrlf=false core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1292 - ls-files --eol attr=auto ident aeol=lf core.autocrlf=false core.eol=native +expecting success of 1500.34 'GIT_DIR=../.git, core.bare = false: --is-inside-work-tree': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1293 'checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=native file=LF': - compare_ws_file eol_native_crlf_false_attr_auto_ LF crlf_false_attr__LF.txt - -ok 1293 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=native file=LF + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1294 'checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_false_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 1294 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=native file=CRLF + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 34 - GIT_DIR=../.git, core.bare = false: --is-inside-work-tree -expecting success of 0027.1295 'checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_false_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1295 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=native file=CRLF_mix_LF +expecting success of 1500.35 'GIT_DIR=../.git, core.bare = false: --show-prefix': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1296 'checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_false_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1296 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=native file=LF_mix_CR + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1297 'checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_false_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1297 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=native file=LF_nul + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 35 - GIT_DIR=../.git, core.bare = false: --show-prefix -expecting success of 0027.1298 'ls-files --eol attr=auto ident aeol=crlf core.autocrlf=false core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1298 - ls-files --eol attr=auto ident aeol=crlf core.autocrlf=false core.eol=native +expecting success of 1500.36 'GIT_DIR=../.git, core.bare = false: --git-dir': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1299 'checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=native file=LF': - compare_ws_file eol_native_crlf_false_attr_auto_ CRLF crlf_false_attr__LF.txt - -ok 1299 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=native file=LF + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1300 'checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_false_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 1300 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=native file=CRLF + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 36 - GIT_DIR=../.git, core.bare = false: --git-dir -expecting success of 0027.1301 'checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_false_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1301 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=native file=CRLF_mix_LF +expecting success of 1500.37 'GIT_DIR=../.git, core.bare = false: --absolute-git-dir': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1302 'checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_false_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1302 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=native file=LF_mix_CR + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1303 'checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_false_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1303 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=native file=LF_nul + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 37 - GIT_DIR=../.git, core.bare = false: --absolute-git-dir -expecting success of 0027.1304 'ls-files --eol attr=-text ident aeol= core.autocrlf=input core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1304 - ls-files --eol attr=-text ident aeol= core.autocrlf=input core.eol=native +expecting success of 1500.38 'GIT_DIR=../.git, core.bare = true: --is-bare-repository': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1305 'checkout attr=-text ident aeol= core.autocrlf=input core.eol=native file=LF': - compare_ws_file eol_native_crlf_input_attr_-text_ LF crlf_false_attr__LF.txt - -ok 1305 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=native file=LF + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1306 'checkout attr=-text ident aeol= core.autocrlf=input core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_input_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 1306 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=native file=CRLF + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 38 - GIT_DIR=../.git, core.bare = true: --is-bare-repository -expecting success of 0027.1307 'checkout attr=-text ident aeol= core.autocrlf=input core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_input_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1307 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=native file=CRLF_mix_LF +expecting success of 1500.39 'GIT_DIR=../.git, core.bare = true: --is-inside-git-dir': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1308 'checkout attr=-text ident aeol= core.autocrlf=input core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_input_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1308 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=native file=LF_mix_CR + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1309 'checkout attr=-text ident aeol= core.autocrlf=input core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_input_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1309 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=native file=LF_nul + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 39 - GIT_DIR=../.git, core.bare = true: --is-inside-git-dir -expecting success of 0027.1310 'ls-files --eol attr=-text ident aeol=lf core.autocrlf=input core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1310 - ls-files --eol attr=-text ident aeol=lf core.autocrlf=input core.eol=native +expecting success of 1500.40 'GIT_DIR=../.git, core.bare = true: --is-inside-work-tree': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1311 'checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=native file=LF': - compare_ws_file eol_native_crlf_input_attr_-text_ LF crlf_false_attr__LF.txt - -ok 1311 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=native file=LF + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1312 'checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_input_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 1312 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=native file=CRLF + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 40 - GIT_DIR=../.git, core.bare = true: --is-inside-work-tree -expecting success of 0027.1313 'checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_input_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1313 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=native file=CRLF_mix_LF +expecting success of 1500.41 'GIT_DIR=../.git, core.bare = true: --show-prefix': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1314 'checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_input_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1314 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=native file=LF_mix_CR + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1315 'checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_input_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1315 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=native file=LF_nul + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 41 - GIT_DIR=../.git, core.bare = true: --show-prefix -expecting success of 0027.1316 'ls-files --eol attr=-text ident aeol=crlf core.autocrlf=input core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1316 - ls-files --eol attr=-text ident aeol=crlf core.autocrlf=input core.eol=native +expecting success of 1500.42 'GIT_DIR=../.git, core.bare undefined: --is-bare-repository': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1317 'checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=native file=LF': - compare_ws_file eol_native_crlf_input_attr_-text_ LF crlf_false_attr__LF.txt - -ok 1317 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=native file=LF + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1318 'checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_input_attr_-text_ CRLF crlf_false_attr__CRLF.txt - -ok 1318 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=native file=CRLF + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 42 - GIT_DIR=../.git, core.bare undefined: --is-bare-repository -expecting success of 0027.1319 'checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_input_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1319 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=native file=CRLF_mix_LF +expecting success of 1500.43 'GIT_DIR=../.git, core.bare undefined: --is-inside-git-dir': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1320 'checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_input_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1320 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=native file=LF_mix_CR + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1321 'checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_input_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1321 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=native file=LF_nul + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 43 - GIT_DIR=../.git, core.bare undefined: --is-inside-git-dir -expecting success of 0027.1322 'ls-files --eol attr=text ident aeol=lf core.autocrlf=input core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1322 - ls-files --eol attr=text ident aeol=lf core.autocrlf=input core.eol=native +expecting success of 1500.44 'GIT_DIR=../.git, core.bare undefined: --is-inside-work-tree': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1323 'checkout attr=text ident aeol=lf core.autocrlf=input core.eol=native file=LF': - compare_ws_file eol_native_crlf_input_attr_text_ LF crlf_false_attr__LF.txt - -ok 1323 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=native file=LF + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1324 'checkout attr=text ident aeol=lf core.autocrlf=input core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 1324 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=native file=CRLF + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 44 - GIT_DIR=../.git, core.bare undefined: --is-inside-work-tree -expecting success of 0027.1325 'checkout attr=text ident aeol=lf core.autocrlf=input core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_input_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1325 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=native file=CRLF_mix_LF +expecting success of 1500.45 'GIT_DIR=../.git, core.bare undefined: --show-prefix': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1326 'checkout attr=text ident aeol=lf core.autocrlf=input core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_input_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1326 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=native file=LF_mix_CR + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1327 'checkout attr=text ident aeol=lf core.autocrlf=input core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_input_attr_text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1327 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=native file=LF_nul + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 45 - GIT_DIR=../.git, core.bare undefined: --show-prefix -expecting success of 0027.1328 'ls-files --eol attr=text ident aeol=crlf core.autocrlf=input core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1328 - ls-files --eol attr=text ident aeol=crlf core.autocrlf=input core.eol=native +expecting success of 1500.46 'GIT_DIR=../repo.git, core.bare = false: --is-bare-repository': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1329 'checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=native file=LF': - compare_ws_file eol_native_crlf_input_attr_text_ CRLF crlf_false_attr__LF.txt - -ok 1329 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=native file=LF + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1330 'checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 1330 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=native file=CRLF + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 46 - GIT_DIR=../repo.git, core.bare = false: --is-bare-repository -expecting success of 0027.1331 'checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt - -ok 1331 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=native file=CRLF_mix_LF +expecting success of 1500.47 'GIT_DIR=../repo.git, core.bare = false: --is-inside-git-dir': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1332 'checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_input_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1332 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=native file=LF_mix_CR + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1333 'checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_input_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt - -ok 1333 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=native file=LF_nul + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 47 - GIT_DIR=../repo.git, core.bare = false: --is-inside-git-dir -expecting success of 0027.1334 'ls-files --eol attr=auto ident aeol=lf core.autocrlf=input core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1334 - ls-files --eol attr=auto ident aeol=lf core.autocrlf=input core.eol=native +expecting success of 1500.48 'GIT_DIR=../repo.git, core.bare = false: --is-inside-work-tree': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1335 'checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=native file=LF': - compare_ws_file eol_native_crlf_input_attr_auto_ LF crlf_false_attr__LF.txt - -ok 1335 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=native file=LF + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1336 'checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_input_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 1336 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=native file=CRLF + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 48 - GIT_DIR=../repo.git, core.bare = false: --is-inside-work-tree -expecting success of 0027.1337 'checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_input_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1337 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=native file=CRLF_mix_LF +expecting success of 1500.49 'GIT_DIR=../repo.git, core.bare = false: --show-prefix': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1338 'checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_input_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1338 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=native file=LF_mix_CR + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1339 'checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_input_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1339 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=native file=LF_nul + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 49 - GIT_DIR=../repo.git, core.bare = false: --show-prefix -expecting success of 0027.1340 'ls-files --eol attr=auto ident aeol=crlf core.autocrlf=input core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1340 - ls-files --eol attr=auto ident aeol=crlf core.autocrlf=input core.eol=native +expecting success of 1500.50 'GIT_DIR=../repo.git, core.bare = false: --git-dir': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1341 'checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=native file=LF': - compare_ws_file eol_native_crlf_input_attr_auto_ CRLF crlf_false_attr__LF.txt - -ok 1341 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=native file=LF + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1342 'checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_input_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 1342 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=native file=CRLF + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 50 - GIT_DIR=../repo.git, core.bare = false: --git-dir -expecting success of 0027.1343 'checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_input_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1343 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=native file=CRLF_mix_LF +expecting success of 1500.51 'GIT_DIR=../repo.git, core.bare = false: --absolute-git-dir': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1344 'checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_input_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1344 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=native file=LF_mix_CR + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1345 'checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_input_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1345 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=native file=LF_nul + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 51 - GIT_DIR=../repo.git, core.bare = false: --absolute-git-dir -expecting success of 0027.1346 'ls-files --eol attr= ident aeol= core.autocrlf=false core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1346 - ls-files --eol attr= ident aeol= core.autocrlf=false core.eol=native +expecting success of 1500.52 'GIT_DIR=../repo.git, core.bare = true: --is-bare-repository': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1347 'checkout attr= ident aeol= core.autocrlf=false core.eol=native file=LF': - compare_ws_file eol_native_crlf_false_attr__ LF crlf_false_attr__LF.txt - -ok 1347 - checkout attr= ident aeol= core.autocrlf=false core.eol=native file=LF + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1348 'checkout attr= ident aeol= core.autocrlf=false core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_false_attr__ CRLF crlf_false_attr__CRLF.txt - -ok 1348 - checkout attr= ident aeol= core.autocrlf=false core.eol=native file=CRLF + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 52 - GIT_DIR=../repo.git, core.bare = true: --is-bare-repository -expecting success of 0027.1349 'checkout attr= ident aeol= core.autocrlf=false core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_false_attr__ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1349 - checkout attr= ident aeol= core.autocrlf=false core.eol=native file=CRLF_mix_LF +expecting success of 1500.53 'GIT_DIR=../repo.git, core.bare = true: --is-inside-git-dir': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1350 'checkout attr= ident aeol= core.autocrlf=false core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_false_attr__ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1350 - checkout attr= ident aeol= core.autocrlf=false core.eol=native file=LF_mix_CR + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1351 'checkout attr= ident aeol= core.autocrlf=false core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_false_attr__ LF_nul crlf_false_attr__LF_nul.txt - -ok 1351 - checkout attr= ident aeol= core.autocrlf=false core.eol=native file=LF_nul + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 53 - GIT_DIR=../repo.git, core.bare = true: --is-inside-git-dir -expecting success of 0027.1352 'ls-files --eol attr= ident aeol= core.autocrlf=true core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1352 - ls-files --eol attr= ident aeol= core.autocrlf=true core.eol=native +expecting success of 1500.54 'GIT_DIR=../repo.git, core.bare = true: --is-inside-work-tree': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1353 'checkout attr= ident aeol= core.autocrlf=true core.eol=native file=LF': - compare_ws_file eol_native_crlf_true_attr__ CRLF crlf_false_attr__LF.txt - -ok 1353 - checkout attr= ident aeol= core.autocrlf=true core.eol=native file=LF + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1354 'checkout attr= ident aeol= core.autocrlf=true core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_true_attr__ CRLF crlf_false_attr__CRLF.txt - -ok 1354 - checkout attr= ident aeol= core.autocrlf=true core.eol=native file=CRLF + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 54 - GIT_DIR=../repo.git, core.bare = true: --is-inside-work-tree -expecting success of 0027.1355 'checkout attr= ident aeol= core.autocrlf=true core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_true_attr__ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1355 - checkout attr= ident aeol= core.autocrlf=true core.eol=native file=CRLF_mix_LF +expecting success of 1500.55 'GIT_DIR=../repo.git, core.bare = true: --show-prefix': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1356 'checkout attr= ident aeol= core.autocrlf=true core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_true_attr__ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1356 - checkout attr= ident aeol= core.autocrlf=true core.eol=native file=LF_mix_CR + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1357 'checkout attr= ident aeol= core.autocrlf=true core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_true_attr__ LF_nul crlf_false_attr__LF_nul.txt - -ok 1357 - checkout attr= ident aeol= core.autocrlf=true core.eol=native file=LF_nul + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 55 - GIT_DIR=../repo.git, core.bare = true: --show-prefix -expecting success of 0027.1358 'ls-files --eol attr=auto ident aeol= core.autocrlf=true core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1358 - ls-files --eol attr=auto ident aeol= core.autocrlf=true core.eol=native +expecting success of 1500.56 'GIT_DIR=../repo.git, core.bare undefined: --is-bare-repository': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1359 'checkout attr=auto ident aeol= core.autocrlf=true core.eol=native file=LF': - compare_ws_file eol_native_crlf_true_attr_auto_ CRLF crlf_false_attr__LF.txt - -ok 1359 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=native file=LF + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1360 'checkout attr=auto ident aeol= core.autocrlf=true core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_true_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 1360 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=native file=CRLF + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 56 - GIT_DIR=../repo.git, core.bare undefined: --is-bare-repository -expecting success of 0027.1361 'checkout attr=auto ident aeol= core.autocrlf=true core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_true_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1361 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=native file=CRLF_mix_LF +expecting success of 1500.57 'GIT_DIR=../repo.git, core.bare undefined: --is-inside-git-dir': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1362 'checkout attr=auto ident aeol= core.autocrlf=true core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_true_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1362 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=native file=LF_mix_CR + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1363 'checkout attr=auto ident aeol= core.autocrlf=true core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_true_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1363 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=native file=LF_nul + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 57 - GIT_DIR=../repo.git, core.bare undefined: --is-inside-git-dir -expecting success of 0027.1364 'ls-files --eol attr=text ident aeol= core.autocrlf=true core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1364 - ls-files --eol attr=text ident aeol= core.autocrlf=true core.eol=native +expecting success of 1500.58 'GIT_DIR=../repo.git, core.bare undefined: --is-inside-work-tree': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1365 'checkout attr=text ident aeol= core.autocrlf=true core.eol=native file=LF': - compare_ws_file eol_native_crlf_true_attr_text_ CRLF crlf_false_attr__LF.txt - -ok 1365 - checkout attr=text ident aeol= core.autocrlf=true core.eol=native file=LF + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1366 'checkout attr=text ident aeol= core.autocrlf=true core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 1366 - checkout attr=text ident aeol= core.autocrlf=true core.eol=native file=CRLF + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 58 - GIT_DIR=../repo.git, core.bare undefined: --is-inside-work-tree -expecting success of 0027.1367 'checkout attr=text ident aeol= core.autocrlf=true core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt - -ok 1367 - checkout attr=text ident aeol= core.autocrlf=true core.eol=native file=CRLF_mix_LF +expecting success of 1500.59 'GIT_DIR=../repo.git, core.bare undefined: --show-prefix': + if test -n "$gitdir" + then + test_when_finished "unset GIT_DIR" && + GIT_DIR="$gitdir" && + export GIT_DIR + fi && -expecting success of 0027.1368 'checkout attr=text ident aeol= core.autocrlf=true core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_true_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1368 - checkout attr=text ident aeol= core.autocrlf=true core.eol=native file=LF_mix_CR + case "$bare" in + t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; + f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; + u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; + esac && -expecting success of 0027.1369 'checkout attr=text ident aeol= core.autocrlf=true core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_true_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt - -ok 1369 - checkout attr=text ident aeol= core.autocrlf=true core.eol=native file=LF_nul + echo "$expect" >expect && + git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && + test_cmp expect actual + +ok 59 - GIT_DIR=../repo.git, core.bare undefined: --show-prefix -expecting success of 0027.1370 'ls-files --eol attr=text ident aeol= core.autocrlf=input core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1370 - ls-files --eol attr=text ident aeol= core.autocrlf=input core.eol=native +expecting success of 1500.60 'git-common-dir from worktree root': + echo .git >expect && + git rev-parse --git-common-dir >actual && + test_cmp expect actual -expecting success of 0027.1371 'checkout attr=text ident aeol= core.autocrlf=input core.eol=native file=LF': - compare_ws_file eol_native_crlf_input_attr_text_ LF crlf_false_attr__LF.txt - -ok 1371 - checkout attr=text ident aeol= core.autocrlf=input core.eol=native file=LF +ok 60 - git-common-dir from worktree root -expecting success of 0027.1372 'checkout attr=text ident aeol= core.autocrlf=input core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 1372 - checkout attr=text ident aeol= core.autocrlf=input core.eol=native file=CRLF +expecting success of 1500.61 'git-common-dir inside sub-dir': + mkdir -p path/to/child && + test_when_finished "rm -rf path" && + echo "$(git -C path/to/child rev-parse --show-cdup).git" >expect && + git -C path/to/child rev-parse --git-common-dir >actual && + test_cmp expect actual -expecting success of 0027.1373 'checkout attr=text ident aeol= core.autocrlf=input core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_input_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1373 - checkout attr=text ident aeol= core.autocrlf=input core.eol=native file=CRLF_mix_LF +ok 61 - git-common-dir inside sub-dir -expecting success of 0027.1374 'checkout attr=text ident aeol= core.autocrlf=input core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_input_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1374 - checkout attr=text ident aeol= core.autocrlf=input core.eol=native file=LF_mix_CR +expecting success of 1500.62 'git-path from worktree root': + echo .git/objects >expect && + git rev-parse --git-path objects >actual && + test_cmp expect actual -expecting success of 0027.1375 'checkout attr=text ident aeol= core.autocrlf=input core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_input_attr_text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1375 - checkout attr=text ident aeol= core.autocrlf=input core.eol=native file=LF_nul +ok 62 - git-path from worktree root -expecting success of 0027.1376 'ls-files --eol attr=auto ident aeol= core.autocrlf=input core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1376 - ls-files --eol attr=auto ident aeol= core.autocrlf=input core.eol=native +expecting success of 1500.63 'git-path inside sub-dir': + mkdir -p path/to/child && + test_when_finished "rm -rf path" && + echo "$(git -C path/to/child rev-parse --show-cdup).git/objects" >expect && + git -C path/to/child rev-parse --git-path objects >actual && + test_cmp expect actual -expecting success of 0027.1377 'checkout attr=auto ident aeol= core.autocrlf=input core.eol=native file=LF': - compare_ws_file eol_native_crlf_input_attr_auto_ LF crlf_false_attr__LF.txt - -ok 1377 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=native file=LF +ok 63 - git-path inside sub-dir -expecting success of 0027.1378 'checkout attr=auto ident aeol= core.autocrlf=input core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_input_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 1378 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=native file=CRLF +expecting success of 1500.64 'rev-parse --is-shallow-repository in shallow repo': + test_commit test_commit && + echo true >expect && + git clone --depth 1 --no-local . shallow && + test_when_finished "rm -rf shallow" && + git -C shallow rev-parse --is-shallow-repository >actual && + test_cmp expect actual -expecting success of 0027.1379 'checkout attr=auto ident aeol= core.autocrlf=input core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_input_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1379 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=native file=CRLF_mix_LF +[master (root-commit) 389d16e] test_commit + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 test_commit.t +Cloning into 'shallow'... +ok 64 - rev-parse --is-shallow-repository in shallow repo -expecting success of 0027.1380 'checkout attr=auto ident aeol= core.autocrlf=input core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_input_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1380 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=native file=LF_mix_CR +expecting success of 1500.65 'rev-parse --is-shallow-repository in non-shallow repo': + echo false >expect && + git rev-parse --is-shallow-repository >actual && + test_cmp expect actual -expecting success of 0027.1381 'checkout attr=auto ident aeol= core.autocrlf=input core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_input_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1381 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=native file=LF_nul +ok 65 - rev-parse --is-shallow-repository in non-shallow repo -expecting success of 0027.1382 'ls-files --eol attr=text ident aeol= core.autocrlf=false core.eol=crlf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1382 - ls-files --eol attr=text ident aeol= core.autocrlf=false core.eol=crlf +expecting success of 1500.66 'rev-parse --show-object-format in repo': + echo "$(test_oid algo)" >expect && + git rev-parse --show-object-format >actual && + test_cmp expect actual && + git rev-parse --show-object-format=storage >actual && + test_cmp expect actual && + git rev-parse --show-object-format=input >actual && + test_cmp expect actual && + git rev-parse --show-object-format=output >actual && + test_cmp expect actual && + test_must_fail git rev-parse --show-object-format=squeamish-ossifrage 2>err && + grep "unknown mode for --show-object-format: squeamish-ossifrage" err -expecting success of 0027.1383 'checkout attr=text ident aeol= core.autocrlf=false core.eol=crlf file=LF': - compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF crlf_false_attr__LF.txt - -ok 1383 - checkout attr=text ident aeol= core.autocrlf=false core.eol=crlf file=LF +fatal: unknown mode for --show-object-format: squeamish-ossifrage +ok 66 - rev-parse --show-object-format in repo -expecting success of 0027.1384 'checkout attr=text ident aeol= core.autocrlf=false core.eol=crlf file=CRLF': - compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 1384 - checkout attr=text ident aeol= core.autocrlf=false core.eol=crlf file=CRLF +expecting success of 1500.67 '--show-toplevel from subdir of working tree': + pwd >expect && + git -C sub/dir rev-parse --show-toplevel >actual && + test_cmp expect actual -expecting success of 0027.1385 'checkout attr=text ident aeol= core.autocrlf=false core.eol=crlf file=CRLF_mix_LF': - compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt - -ok 1385 - checkout attr=text ident aeol= core.autocrlf=false core.eol=crlf file=CRLF_mix_LF +ok 67 - --show-toplevel from subdir of working tree -expecting success of 0027.1386 'checkout attr=text ident aeol= core.autocrlf=false core.eol=crlf file=LF_mix_CR': - compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1386 - checkout attr=text ident aeol= core.autocrlf=false core.eol=crlf file=LF_mix_CR +expecting success of 1500.68 '--show-toplevel from inside .git': + test_must_fail git -C .git rev-parse --show-toplevel -expecting success of 0027.1387 'checkout attr=text ident aeol= core.autocrlf=false core.eol=crlf file=LF_nul': - compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt - -ok 1387 - checkout attr=text ident aeol= core.autocrlf=false core.eol=crlf file=LF_nul +fatal: this operation must be run in a work tree +ok 68 - --show-toplevel from inside .git -expecting success of 0027.1388 'ls-files --eol attr=text ident aeol= core.autocrlf=false core.eol=lf': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1388 - ls-files --eol attr=text ident aeol= core.autocrlf=false core.eol=lf +expecting success of 1500.69 'showing the superproject correctly': + git rev-parse --show-superproject-working-tree >out && + test_must_be_empty out && -expecting success of 0027.1389 'checkout attr=text ident aeol= core.autocrlf=false core.eol=lf file=LF': - compare_ws_file eol_lf_crlf_false_attr_text_ LF crlf_false_attr__LF.txt - -ok 1389 - checkout attr=text ident aeol= core.autocrlf=false core.eol=lf file=LF + test_create_repo super && + test_commit -C super test_commit && + test_create_repo sub && + test_commit -C sub test_commit && + git -c protocol.file.allow=always \ + -C super submodule add ../sub dir/sub && + echo $(pwd)/super >expect && + git -C super/dir/sub rev-parse --show-superproject-working-tree >out && + test_cmp expect out && -expecting success of 0027.1390 'checkout attr=text ident aeol= core.autocrlf=false core.eol=lf file=CRLF': - compare_ws_file eol_lf_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 1390 - checkout attr=text ident aeol= core.autocrlf=false core.eol=lf file=CRLF + test_commit -C super submodule_add && + git -C super checkout -b branch1 && + git -C super/dir/sub checkout -b branch1 && + test_commit -C super/dir/sub branch1_commit && + git -C super add dir/sub && + test_commit -C super branch1_commit && + git -C super checkout -b branch2 master && + git -C super/dir/sub checkout -b branch2 master && + test_commit -C super/dir/sub branch2_commit && + git -C super add dir/sub && + test_commit -C super branch2_commit && + test_must_fail git -C super merge branch1 && -expecting success of 0027.1391 'checkout attr=text ident aeol= core.autocrlf=false core.eol=lf file=CRLF_mix_LF': - compare_ws_file eol_lf_crlf_false_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1391 - checkout attr=text ident aeol= core.autocrlf=false core.eol=lf file=CRLF_mix_LF + git -C super/dir/sub rev-parse --show-superproject-working-tree >out && + test_cmp expect out -expecting success of 0027.1392 'checkout attr=text ident aeol= core.autocrlf=false core.eol=lf file=LF_mix_CR': - compare_ws_file eol_lf_crlf_false_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1392 - checkout attr=text ident aeol= core.autocrlf=false core.eol=lf file=LF_mix_CR +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1500-rev-parse/super/.git/ +[master (root-commit) cbdc642] test_commit + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 test_commit.t +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1500-rev-parse/sub/.git/ +[master (root-commit) 2eb1b96] test_commit + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 test_commit.t +Cloning into '/build/git-2.30.2/t/trash directory.t1500-rev-parse/super/dir/sub'... +done. +[master 7cabc11] submodule_add + Author: A U Thor + 3 files changed, 5 insertions(+) + create mode 100644 .gitmodules + create mode 160000 dir/sub + create mode 100644 submodule_add.t +Switched to a new branch 'branch1' +Switched to a new branch 'branch1' +[branch1 2aa4ded] branch1_commit + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 branch1_commit.t +[branch1 7e8b966] branch1_commit + Author: A U Thor + 2 files changed, 2 insertions(+), 1 deletion(-) + create mode 100644 branch1_commit.t +Switched to a new branch 'branch2' +M dir/sub +Switched to a new branch 'branch2' +[branch2 10a2528] branch2_commit + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 branch2_commit.t +[branch2 8d6224f] branch2_commit + Author: A U Thor + 2 files changed, 2 insertions(+), 1 deletion(-) + create mode 100644 branch2_commit.t +Merging: +8d6224f branch2_commit +virtual branch1 +found 1 common ancestor: +7cabc11 submodule_add +Failed to merge submodule dir/sub (merge following commits not found) +Auto-merging dir/sub +CONFLICT (submodule): Merge conflict in dir/sub +Automatic merge failed; fix conflicts and then commit the result. +ok 69 - showing the superproject correctly -expecting success of 0027.1393 'checkout attr=text ident aeol= core.autocrlf=false core.eol=lf file=LF_nul': - compare_ws_file eol_lf_crlf_false_attr_text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1393 - checkout attr=text ident aeol= core.autocrlf=false core.eol=lf file=LF_nul +# passed all 69 test(s) +1..69 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t1501-work-tree.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1501-work-tree/.git/ +expecting success of 1501.1 'setup': + EMPTY_TREE=$(git write-tree) && + EMPTY_BLOB=$(git hash-object -t blob --stdin expected.bare && + echo $2 >expected.inside-git && + echo $3 >expected.inside-worktree && + if test $# -ge 4 + then + echo $4 >expected.prefix + fi && -expecting success of 0027.1397 'checkout attr=text ident aeol= core.autocrlf=false core.eol= file=CRLF_mix_LF': - compare_ws_file eol__crlf_false_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1397 - checkout attr=text ident aeol= core.autocrlf=false core.eol= file=CRLF_mix_LF + git rev-parse --is-bare-repository >actual.bare && + git rev-parse --is-inside-git-dir >actual.inside-git && + git rev-parse --is-inside-work-tree >actual.inside-worktree && + if test $# -ge 4 + then + git rev-parse --show-prefix >actual.prefix + fi && -expecting success of 0027.1398 'checkout attr=text ident aeol= core.autocrlf=false core.eol= file=LF_mix_CR': - compare_ws_file eol__crlf_false_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1398 - checkout attr=text ident aeol= core.autocrlf=false core.eol= file=LF_mix_CR + test_cmp expected.bare actual.bare && + test_cmp expected.inside-git actual.inside-git && + test_cmp expected.inside-worktree actual.inside-worktree && + if test $# -ge 4 + then + # rev-parse --show-prefix should output + # a single newline when at the top of the work tree, + # but we test for that separately. + test -z "$4" && test_must_be_empty actual.prefix || + test_cmp expected.prefix actual.prefix + fi + } -expecting success of 0027.1399 'checkout attr=text ident aeol= core.autocrlf=false core.eol= file=LF_nul': - compare_ws_file eol__crlf_false_attr_text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1399 - checkout attr=text ident aeol= core.autocrlf=false core.eol= file=LF_nul +ok 2 - setup: helper for testing rev-parse -expecting success of 0027.1400 'ls-files --eol attr=text ident aeol= core.autocrlf=false core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1400 - ls-files --eol attr=text ident aeol= core.autocrlf=false core.eol=native +expecting success of 1501.3 'setup: core.worktree = relative path': + sane_unset GIT_WORK_TREE && + GIT_DIR=repo.git && + GIT_CONFIG="$(pwd)"/$GIT_DIR/config && + export GIT_DIR GIT_CONFIG && + git config core.worktree ../work -expecting success of 0027.1401 'checkout attr=text ident aeol= core.autocrlf=false core.eol=native file=LF': - compare_ws_file eol_native_crlf_false_attr_text_ LF crlf_false_attr__LF.txt - -ok 1401 - checkout attr=text ident aeol= core.autocrlf=false core.eol=native file=LF +ok 3 - setup: core.worktree = relative path -expecting success of 0027.1402 'checkout attr=text ident aeol= core.autocrlf=false core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF.txt - -ok 1402 - checkout attr=text ident aeol= core.autocrlf=false core.eol=native file=CRLF +expecting success of 1501.4 'outside': + test_rev_parse false false false -expecting success of 0027.1403 'checkout attr=text ident aeol= core.autocrlf=false core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_false_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1403 - checkout attr=text ident aeol= core.autocrlf=false core.eol=native file=CRLF_mix_LF +ok 4 - outside -expecting success of 0027.1404 'checkout attr=text ident aeol= core.autocrlf=false core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_false_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1404 - checkout attr=text ident aeol= core.autocrlf=false core.eol=native file=LF_mix_CR +expecting success of 1501.5 'inside work tree': + ( + cd work && + GIT_DIR=../repo.git && + GIT_CONFIG="$(pwd)"/$GIT_DIR/config && + test_rev_parse false false true "" + ) -expecting success of 0027.1405 'checkout attr=text ident aeol= core.autocrlf=false core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_false_attr_text_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1405 - checkout attr=text ident aeol= core.autocrlf=false core.eol=native file=LF_nul +'actual.prefix' is not empty, it contains: -expecting success of 0027.1406 'ls-files --eol attr=auto ident aeol= core.autocrlf=false core.eol=': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1406 - ls-files --eol attr=auto ident aeol= core.autocrlf=false core.eol= +ok 5 - inside work tree -expecting success of 0027.1407 'checkout attr=auto ident aeol= core.autocrlf=false core.eol= file=LF': - compare_ws_file eol__crlf_false_attr_auto_ LF crlf_false_attr__LF.txt - -ok 1407 - checkout attr=auto ident aeol= core.autocrlf=false core.eol= file=LF +expecting success of 1501.6 'empty prefix is actually written out': + echo >expected && + ( + cd work && + GIT_DIR=../repo.git && + GIT_CONFIG="$(pwd)"/$GIT_DIR/config && + git rev-parse --show-prefix >../actual + ) && + test_cmp expected actual -expecting success of 0027.1408 'checkout attr=auto ident aeol= core.autocrlf=false core.eol= file=CRLF': - compare_ws_file eol__crlf_false_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 1408 - checkout attr=auto ident aeol= core.autocrlf=false core.eol= file=CRLF +ok 6 - empty prefix is actually written out -expecting success of 0027.1409 'checkout attr=auto ident aeol= core.autocrlf=false core.eol= file=CRLF_mix_LF': - compare_ws_file eol__crlf_false_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1409 - checkout attr=auto ident aeol= core.autocrlf=false core.eol= file=CRLF_mix_LF +expecting success of 1501.7 'subdir of work tree': + ( + cd work/sub/dir && + GIT_DIR=../../../repo.git && + GIT_CONFIG="$(pwd)"/$GIT_DIR/config && + test_rev_parse false false true sub/dir/ + ) -expecting success of 0027.1410 'checkout attr=auto ident aeol= core.autocrlf=false core.eol= file=LF_mix_CR': - compare_ws_file eol__crlf_false_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1410 - checkout attr=auto ident aeol= core.autocrlf=false core.eol= file=LF_mix_CR +ok 7 - subdir of work tree -expecting success of 0027.1411 'checkout attr=auto ident aeol= core.autocrlf=false core.eol= file=LF_nul': - compare_ws_file eol__crlf_false_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1411 - checkout attr=auto ident aeol= core.autocrlf=false core.eol= file=LF_nul +expecting success of 1501.8 'setup: core.worktree = absolute path': + sane_unset GIT_WORK_TREE && + GIT_DIR=$(pwd)/repo.git && + GIT_CONFIG=$GIT_DIR/config && + export GIT_DIR GIT_CONFIG && + git config core.worktree "$(pwd)/work" -expecting success of 0027.1412 'ls-files --eol attr=auto ident aeol= core.autocrlf=false core.eol=native': - test_when_finished "rm expect actual" && - sort <<-EOF >expect && - i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt - i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt - i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt - i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt - i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt - EOF - git ls-files --eol crlf_false_attr__* | - sed -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual - -ok 1412 - ls-files --eol attr=auto ident aeol= core.autocrlf=false core.eol=native +ok 8 - setup: core.worktree = absolute path -expecting success of 0027.1413 'checkout attr=auto ident aeol= core.autocrlf=false core.eol=native file=LF': - compare_ws_file eol_native_crlf_false_attr_auto_ LF crlf_false_attr__LF.txt - -ok 1413 - checkout attr=auto ident aeol= core.autocrlf=false core.eol=native file=LF +expecting success of 1501.9 'outside': + test_rev_parse false false false && + ( + cd work2 && + test_rev_parse false false false + ) -expecting success of 0027.1414 'checkout attr=auto ident aeol= core.autocrlf=false core.eol=native file=CRLF': - compare_ws_file eol_native_crlf_false_attr_auto_ CRLF crlf_false_attr__CRLF.txt - -ok 1414 - checkout attr=auto ident aeol= core.autocrlf=false core.eol=native file=CRLF +ok 9 - outside -expecting success of 0027.1415 'checkout attr=auto ident aeol= core.autocrlf=false core.eol=native file=CRLF_mix_LF': - compare_ws_file eol_native_crlf_false_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt - -ok 1415 - checkout attr=auto ident aeol= core.autocrlf=false core.eol=native file=CRLF_mix_LF +expecting success of 1501.10 'inside work tree': + ( + cd work && + test_rev_parse false false true "" + ) -expecting success of 0027.1416 'checkout attr=auto ident aeol= core.autocrlf=false core.eol=native file=LF_mix_CR': - compare_ws_file eol_native_crlf_false_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt - -ok 1416 - checkout attr=auto ident aeol= core.autocrlf=false core.eol=native file=LF_mix_CR +'actual.prefix' is not empty, it contains: -expecting success of 0027.1417 'checkout attr=auto ident aeol= core.autocrlf=false core.eol=native file=LF_nul': - compare_ws_file eol_native_crlf_false_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt - -ok 1417 - checkout attr=auto ident aeol= core.autocrlf=false core.eol=native file=LF_nul +ok 10 - inside work tree -expecting success of 0027.1418 'ls-files --eol -d -z': - rm crlf_false_attr__CRLF.txt crlf_false_attr__CRLF_mix_LF.txt crlf_false_attr__LF.txt .gitattributes && - cat >expect <<-\EOF && - i/crlf w/ crlf_false_attr__CRLF.txt - i/lf w/ .gitattributes - i/lf w/ crlf_false_attr__LF.txt - i/mixed w/ crlf_false_attr__CRLF_mix_LF.txt - EOF - git ls-files --eol -d | - sed -e "s!attr/[^ ]*!!g" -e "s/ / /g" -e "s/ */ /g" | - sort >actual && - test_cmp expect actual +expecting success of 1501.11 'subdir of work tree': + ( + cd work/sub/dir && + test_rev_parse false false true sub/dir/ + ) -ok 1418 - ls-files --eol -d -z +ok 11 - subdir of work tree -# passed all 1418 test(s) -1..1418 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1305-config-include.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1305-config-include/.git/ -expecting success of 1305.1 'include file by absolute path': - echo "[test]one = 1" >one && - echo "[include]path = \"$(pwd)/one\"" >.gitconfig && - echo 1 >expect && - git config test.one >actual && - test_cmp expect actual +expecting success of 1501.12 'setup: GIT_WORK_TREE=relative (override core.worktree)': + GIT_DIR=$(pwd)/repo.git && + GIT_CONFIG=$GIT_DIR/config && + git config core.worktree non-existent && + GIT_WORK_TREE=work && + export GIT_DIR GIT_CONFIG GIT_WORK_TREE -ok 1 - include file by absolute path +ok 12 - setup: GIT_WORK_TREE=relative (override core.worktree) -expecting success of 1305.2 'include file by relative path': - echo "[test]one = 1" >one && - echo "[include]path = one" >.gitconfig && - echo 1 >expect && - git config test.one >actual && - test_cmp expect actual +expecting success of 1501.13 'outside': + test_rev_parse false false false && + ( + cd work2 && + test_rev_parse false false false + ) -ok 2 - include file by relative path +ok 13 - outside -expecting success of 1305.3 'chained relative paths': - mkdir subdir && - echo "[test]three = 3" >subdir/three && - echo "[include]path = three" >subdir/two && - echo "[include]path = subdir/two" >.gitconfig && - echo 3 >expect && - git config test.three >actual && - test_cmp expect actual +expecting success of 1501.14 'inside work tree': + ( + cd work && + GIT_WORK_TREE=. && + test_rev_parse false false true "" + ) -ok 3 - chained relative paths +'actual.prefix' is not empty, it contains: -expecting success of 1305.4 'include paths get tilde-expansion': - echo "[test]one = 1" >one && - echo "[include]path = ~/one" >.gitconfig && - echo 1 >expect && - git config test.one >actual && - test_cmp expect actual +ok 14 - inside work tree -ok 4 - include paths get tilde-expansion +expecting success of 1501.15 'subdir of work tree': + ( + cd work/sub/dir && + GIT_WORK_TREE=../.. && + test_rev_parse false false true sub/dir/ + ) -expecting success of 1305.5 'include options can still be examined': - echo "[test]one = 1" >one && - echo "[include]path = one" >.gitconfig && - echo one >expect && - git config include.path >actual && - test_cmp expect actual +ok 15 - subdir of work tree -ok 5 - include options can still be examined +expecting success of 1501.16 'setup: GIT_WORK_TREE=absolute, below git dir': + mv work repo.git/work && + mv work2 repo.git/work2 && + GIT_DIR=$(pwd)/repo.git && + GIT_CONFIG=$GIT_DIR/config && + GIT_WORK_TREE=$(pwd)/repo.git/work && + export GIT_DIR GIT_CONFIG GIT_WORK_TREE -expecting success of 1305.6 'listing includes option and expansion': - echo "[test]one = 1" >one && - echo "[include]path = one" >.gitconfig && - cat >expect <<-\EOF && - include.path=one - test.one=1 - EOF - git config --list >actual.full && - grep -v -e ^core -e ^extensions actual.full >actual && - test_cmp expect actual +ok 16 - setup: GIT_WORK_TREE=absolute, below git dir -ok 6 - listing includes option and expansion +expecting success of 1501.17 'outside': + echo outside && + test_rev_parse false false false -expecting success of 1305.7 'single file lookup does not expand includes by default': - echo "[test]one = 1" >one && - echo "[include]path = one" >.gitconfig && - test_must_fail git config -f .gitconfig test.one && - test_must_fail git config --global test.one && - echo 1 >expect && - git config --includes -f .gitconfig test.one >actual && - test_cmp expect actual +outside +ok 17 - outside -ok 7 - single file lookup does not expand includes by default +expecting success of 1501.18 'in repo.git': + ( + cd repo.git && + test_rev_parse false true false + ) && + ( + cd repo.git/objects && + test_rev_parse false true false + ) && + ( + cd repo.git/work2 && + test_rev_parse false true false + ) -expecting success of 1305.8 'single file list does not expand includes by default': - echo "[test]one = 1" >one && - echo "[include]path = one" >.gitconfig && - echo "include.path=one" >expect && - git config -f .gitconfig --list >actual && - test_cmp expect actual +ok 18 - in repo.git -ok 8 - single file list does not expand includes by default +expecting success of 1501.19 'inside work tree': + ( + cd repo.git/work && + test_rev_parse false true true "" + ) -expecting success of 1305.9 'writing config file does not expand includes': - echo "[test]one = 1" >one && - echo "[include]path = one" >.gitconfig && - git config test.two 2 && - echo 2 >expect && - git config --no-includes test.two >actual && - test_cmp expect actual && - test_must_fail git config --no-includes test.one +'actual.prefix' is not empty, it contains: -ok 9 - writing config file does not expand includes +ok 19 - inside work tree -expecting success of 1305.10 'config modification does not affect includes': - echo "[test]one = 1" >one && - echo "[include]path = one" >.gitconfig && - git config test.one 2 && - echo 1 >expect && - git config -f one test.one >actual && - test_cmp expect actual && - cat >expect <<-\EOF && - 1 - 2 - EOF - git config --get-all test.one >actual && - test_cmp expect actual +expecting success of 1501.20 'subdir of work tree': + ( + cd repo.git/work/sub/dir && + test_rev_parse false true true sub/dir/ + ) -ok 10 - config modification does not affect includes +ok 20 - subdir of work tree -expecting success of 1305.11 'missing include files are ignored': - cat >.gitconfig <<-\EOF && - [include]path = non-existent - [test]value = yes +expecting success of 1501.21 'find work tree from repo': + echo sub/dir/untracked >expected && + cat <<-\EOF >repo.git/work/.gitignore && + expected.* + actual.* + .gitignore EOF - echo yes >expect && - git config test.value >actual && - test_cmp expect actual - -ok 11 - missing include files are ignored - -expecting success of 1305.12 'absolute includes from command line work': - echo "[test]one = 1" >one && - echo 1 >expect && - git -c include.path="$(pwd)/one" config test.one >actual && - test_cmp expect actual - -ok 12 - absolute includes from command line work + >repo.git/work/sub/dir/untracked && + ( + cd repo.git && + git ls-files --others --exclude-standard >../actual + ) && + test_cmp expected actual -expecting success of 1305.13 'relative includes from command line fail': - echo "[test]one = 1" >one && - test_must_fail git -c include.path=one config test.one +ok 21 - find work tree from repo -error: relative config includes must come from files -fatal: unable to parse command-line config -ok 13 - relative includes from command line fail +expecting success of 1501.22 'find work tree from work tree': + echo sub/dir/tracked >expected && + >repo.git/work/sub/dir/tracked && + ( + cd repo.git/work/sub/dir && + git --git-dir=../../.. add tracked + ) && + ( + cd repo.git && + git ls-files >../actual + ) && + test_cmp expected actual -expecting success of 1305.14 'absolute includes from blobs work': - echo "[test]one = 1" >one && - echo "[include]path=$(pwd)/one" >blob && - blob=$(git hash-object -w blob) && - echo 1 >expect && - git config --blob=$blob test.one >actual && - test_cmp expect actual +ok 22 - find work tree from work tree -ok 14 - absolute includes from blobs work +expecting success of 1501.23 '_gently() groks relative GIT_DIR & GIT_WORK_TREE': + ( + cd repo.git/work/sub/dir && + GIT_DIR=../../.. && + GIT_WORK_TREE=../.. && + GIT_PAGER= && + export GIT_DIR GIT_WORK_TREE GIT_PAGER && -expecting success of 1305.15 'relative includes from blobs fail': - echo "[test]one = 1" >one && - echo "[include]path=one" >blob && - blob=$(git hash-object -w blob) && - test_must_fail git config --blob=$blob test.one + git diff --exit-code tracked && + echo changed >tracked && + test_must_fail git diff --exit-code tracked + ) -error: relative config includes must come from files -error: bad config line 1 in blob d085876092eb24c144128bcd5db5d26e665f4f8a -ok 15 - relative includes from blobs fail +diff --git a/sub/dir/tracked b/sub/dir/tracked +index e69de29..5ea2ed4 100644 +--- a/sub/dir/tracked ++++ b/sub/dir/tracked +@@ -0,0 +1 @@ ++changed +ok 23 - _gently() groks relative GIT_DIR & GIT_WORK_TREE -expecting success of 1305.16 'absolute includes from stdin work': - echo "[test]one = 1" >one && - echo 1 >expect && - echo "[include]path=\"$(pwd)/one\"" | - git config --file - test.one >actual && - test_cmp expect actual +expecting success of 1501.24 'diff-index respects work tree under .git dir': + cat >diff-index-cached.expected <<-EOF && + :000000 100644 $ZERO_OID $EMPTY_BLOB A sub/dir/tracked + EOF + cat >diff-index.expected <<-EOF && + :000000 100644 $ZERO_OID $ZERO_OID A sub/dir/tracked + EOF -ok 16 - absolute includes from stdin work + ( + GIT_DIR=repo.git && + GIT_WORK_TREE=repo.git/work && + export GIT_DIR GIT_WORK_TREE && + git diff-index $EMPTY_TREE >diff-index.actual && + git diff-index --cached $EMPTY_TREE >diff-index-cached.actual + ) && + test_cmp diff-index.expected diff-index.actual && + test_cmp diff-index-cached.expected diff-index-cached.actual -expecting success of 1305.17 'relative includes from stdin line fail': - echo "[test]one = 1" >one && - echo "[include]path=one" | - test_must_fail git config --file - test.one +ok 24 - diff-index respects work tree under .git dir -error: relative config includes must come from files -fatal: bad config line 1 in standard input -ok 17 - relative includes from stdin line fail +expecting success of 1501.25 'diff-files respects work tree under .git dir': + cat >diff-files.expected <<-EOF && + :100644 100644 $EMPTY_BLOB $ZERO_OID M sub/dir/tracked + EOF -expecting success of 1305.18 'conditional include, both unanchored': - git init foo && ( - cd foo && - echo "[includeIf \"gitdir:foo/\"]path=bar" >>.git/config && - echo "[test]one=1" >.git/bar && - echo 1 >expect && - git config test.one >actual && - test_cmp expect actual - ) + GIT_DIR=repo.git && + GIT_WORK_TREE=repo.git/work && + export GIT_DIR GIT_WORK_TREE && + git diff-files >diff-files.actual + ) && + test_cmp diff-files.expected diff-files.actual -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1305-config-include/foo/.git/ -ok 18 - conditional include, both unanchored +ok 25 - diff-files respects work tree under .git dir + +expecting success of 1501.26 'git diff respects work tree under .git dir': + cat >diff-TREE.expected <<-EOF && + diff --git a/sub/dir/tracked b/sub/dir/tracked + new file mode 100644 + index 0000000..$CHANGED_BLOB7 + --- /dev/null + +++ b/sub/dir/tracked + @@ -0,0 +1 @@ + +changed + EOF + cat >diff-TREE-cached.expected <<-EOF && + diff --git a/sub/dir/tracked b/sub/dir/tracked + new file mode 100644 + index 0000000..$EMPTY_BLOB7 + EOF + cat >diff-FILES.expected <<-EOF && + diff --git a/sub/dir/tracked b/sub/dir/tracked + index $EMPTY_BLOB7..$CHANGED_BLOB7 100644 + --- a/sub/dir/tracked + +++ b/sub/dir/tracked + @@ -0,0 +1 @@ + +changed + EOF -expecting success of 1305.19 'conditional include, $HOME expansion': ( - cd foo && - echo "[includeIf \"gitdir:~/foo/\"]path=bar2" >>.git/config && - echo "[test]two=2" >.git/bar2 && - echo 2 >expect && - git config test.two >actual && - test_cmp expect actual - ) + GIT_DIR=repo.git && + GIT_WORK_TREE=repo.git/work && + export GIT_DIR GIT_WORK_TREE && + git diff $EMPTY_TREE >diff-TREE.actual && + git diff --cached $EMPTY_TREE >diff-TREE-cached.actual && + git diff >diff-FILES.actual + ) && + test_cmp diff-TREE.expected diff-TREE.actual && + test_cmp diff-TREE-cached.expected diff-TREE-cached.actual && + test_cmp diff-FILES.expected diff-FILES.actual -ok 19 - conditional include, $HOME expansion +ok 26 - git diff respects work tree under .git dir -expecting success of 1305.20 'conditional include, full pattern': +expecting success of 1501.27 'git grep': + echo dir/tracked >expected.grep && ( - cd foo && - echo "[includeIf \"gitdir:**/foo/**\"]path=bar3" >>.git/config && - echo "[test]three=3" >.git/bar3 && - echo 3 >expect && - git config test.three >actual && - test_cmp expect actual - ) + cd repo.git/work/sub && + GIT_DIR=../.. && + GIT_WORK_TREE=.. && + export GIT_DIR GIT_WORK_TREE && + git grep -l changed >../../../actual.grep + ) && + test_cmp expected.grep actual.grep -ok 20 - conditional include, full pattern +ok 27 - git grep -expecting success of 1305.21 'conditional include, relative path': - echo "[includeIf \"gitdir:./foo/.git\"]path=bar4" >>.gitconfig && - echo "[test]four=4" >bar4 && +expecting success of 1501.28 'git commit': ( - cd foo && - echo 4 >expect && - git config test.four >actual && - test_cmp expect actual + cd repo.git && + GIT_DIR=. GIT_WORK_TREE=work git commit -a -m done ) -ok 21 - conditional include, relative path +[master (root-commit) 271ed29] done + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 sub/dir/tracked +ok 28 - git commit -expecting success of 1305.22 'conditional include, both unanchored, icase': +expecting success of 1501.29 'absolute pathspec should fail gracefully': ( - cd foo && - echo "[includeIf \"gitdir/i:FOO/\"]path=bar5" >>.git/config && - echo "[test]five=5" >.git/bar5 && - echo 5 >expect && - git config test.five >actual && - test_cmp expect actual + cd repo.git && + test_might_fail git config --unset core.worktree && + test_must_fail git log HEAD -- /home ) -ok 22 - conditional include, both unanchored, icase +fatal: /home: '/home' is outside repository at '/build/git-2.30.2/t/trash directory.t1501-work-tree/repo.git/work' +ok 29 - absolute pathspec should fail gracefully -expecting success of 1305.23 'conditional include, early config reading': - ( - cd foo && - echo "[includeIf \"gitdir:foo/\"]path=bar6" >>.git/config && - echo "[test]six=6" >.git/bar6 && - echo 6 >expect && - test-tool config read_early_config test.six >actual && - test_cmp expect actual - ) +expecting success of 1501.30 'make_relative_path handles double slashes in GIT_DIR': + >dummy_file && + echo git --git-dir="$(pwd)//repo.git" --work-tree="$(pwd)" add dummy_file && + git --git-dir="$(pwd)//repo.git" --work-tree="$(pwd)" add dummy_file -ok 23 - conditional include, early config reading +git --git-dir=/build/git-2.30.2/t/trash directory.t1501-work-tree//repo.git --work-tree=/build/git-2.30.2/t/trash directory.t1501-work-tree add dummy_file +ok 30 - make_relative_path handles double slashes in GIT_DIR -expecting success of 1305.24 'conditional include with /**/': - REPO=foo/bar/repo && - git init $REPO && - cat >>$REPO/.git/config <<-\EOF && - [includeIf "gitdir:**/foo/**/bar/**"] - path=bar7 - EOF - echo "[test]seven=7" >$REPO/.git/bar7 && - echo 7 >expect && - git -C $REPO config test.seven >actual && - test_cmp expect actual +expecting success of 1501.31 'relative $GIT_WORK_TREE and git subprocesses': + GIT_DIR=repo.git GIT_WORK_TREE=repo.git/work \ + test-tool subprocess --setup-work-tree rev-parse --show-toplevel >actual && + echo "$(pwd)/repo.git/work" >expected && + test_cmp expected actual -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1305-config-include/foo/bar/repo/.git/ -ok 24 - conditional include with /**/ +ok 31 - relative $GIT_WORK_TREE and git subprocesses -checking prerequisite: SYMLINKS +expecting success of 1501.32 'Multi-worktree setup': + mkdir work && + mkdir -p repo.git/repos/foo && + cp repo.git/HEAD repo.git/index repo.git/repos/foo && + { cp repo.git/sharedindex.* repo.git/repos/foo || :; } && + sane_unset GIT_DIR GIT_CONFIG GIT_WORK_TREE -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && - # test whether the filesystem supports symbolic links - ln -s x y && test -h y +cp: cannot stat 'repo.git/sharedindex.*': No such file or directory +ok 32 - Multi-worktree setup -) -prerequisite SYMLINKS ok -expecting success of 1305.25 'conditional include, set up symlinked $HOME': - mkdir real-home && - ln -s real-home home && +expecting success of 1501.33 'GIT_DIR set (1)': + echo "gitdir: repo.git/repos/foo" >gitfile && + echo ../.. >repo.git/repos/foo/commondir && ( - HOME="$TRASH_DIRECTORY/home" && - export HOME && - cd "$HOME" && - - git init foo && - cd foo && - mkdir sub + cd work && + GIT_DIR=../gitfile git rev-parse --git-common-dir >actual && + test-tool path-utils real_path "$TRASH_DIRECTORY/repo.git" >expect && + test_cmp expect actual ) -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1305-config-include/real-home/foo/.git/ -ok 25 - conditional include, set up symlinked $HOME +ok 33 - GIT_DIR set (1) -expecting success of 1305.26 'conditional include, $HOME expansion with symlinks': +expecting success of 1501.34 'GIT_DIR set (2)': + echo "gitdir: repo.git/repos/foo" >gitfile && + echo "$(pwd)/repo.git" >repo.git/repos/foo/commondir && ( - HOME="$TRASH_DIRECTORY/home" && - export HOME && - cd "$HOME"/foo && - - echo "[includeIf \"gitdir:~/foo/\"]path=bar2" >>.git/config && - echo "[test]two=2" >.git/bar2 && - echo 2 >expect && - force_setup_explicit_git_dir && - git -C sub config test.two >actual && + cd work && + GIT_DIR=../gitfile git rev-parse --git-common-dir >actual && + test-tool path-utils real_path "$TRASH_DIRECTORY/repo.git" >expect && test_cmp expect actual ) -ok 26 - conditional include, $HOME expansion with symlinks +ok 34 - GIT_DIR set (2) -expecting success of 1305.27 'conditional include, relative path with symlinks': - echo "[includeIf \"gitdir:./foo/.git\"]path=bar4" >home/.gitconfig && - echo "[test]four=4" >home/bar4 && +expecting success of 1501.35 'Auto discovery': + echo "gitdir: repo.git/repos/foo" >.git && + echo ../.. >repo.git/repos/foo/commondir && ( - HOME="$TRASH_DIRECTORY/home" && - export HOME && - cd "$HOME"/foo && - - echo 4 >expect && - force_setup_explicit_git_dir && - git -C sub config test.four >actual && + cd work && + git rev-parse --git-common-dir >actual && + test-tool path-utils real_path "$TRASH_DIRECTORY/repo.git" >expect && + test_cmp expect actual && + echo haha >data1 && + git add data1 && + git ls-files --full-name :/ | grep data1 >actual && + echo work/data1 >expect && test_cmp expect actual ) -ok 27 - conditional include, relative path with symlinks +ok 35 - Auto discovery -expecting success of 1305.28 'conditional include, gitdir matching symlink': - ln -s foo bar && +expecting success of 1501.36 '$GIT_DIR/common overrides core.worktree': + mkdir elsewhere && + git --git-dir=repo.git config core.worktree "$TRASH_DIRECTORY/elsewhere" && + echo "gitdir: repo.git/repos/foo" >.git && + echo ../.. >repo.git/repos/foo/commondir && ( - cd bar && - echo "[includeIf \"gitdir:bar/\"]path=bar7" >>.git/config && - echo "[test]seven=7" >.git/bar7 && - echo 7 >expect && - git config test.seven >actual && + cd work && + git rev-parse --git-common-dir >actual && + test-tool path-utils real_path "$TRASH_DIRECTORY/repo.git" >expect && + test_cmp expect actual && + echo haha >data2 && + git add data2 && + git ls-files --full-name :/ | grep data2 >actual && + echo work/data2 >expect && test_cmp expect actual ) -ok 28 - conditional include, gitdir matching symlink +ok 36 - $GIT_DIR/common overrides core.worktree -expecting success of 1305.29 'conditional include, gitdir matching symlink, icase': +expecting success of 1501.37 '$GIT_WORK_TREE overrides $GIT_DIR/common': + echo "gitdir: repo.git/repos/foo" >.git && + echo ../.. >repo.git/repos/foo/commondir && ( - cd bar && - echo "[includeIf \"gitdir/i:BAR/\"]path=bar8" >>.git/config && - echo "[test]eight=8" >.git/bar8 && - echo 8 >expect && - git config test.eight >actual && + cd work && + echo haha >data3 && + git --git-dir=../.git --work-tree=. add data3 && + git ls-files --full-name -- :/ | grep data3 >actual && + echo data3 >expect && test_cmp expect actual ) -ok 29 - conditional include, gitdir matching symlink, icase - -expecting success of 1305.30 'conditional include, onbranch': - echo "[includeIf \"onbranch:foo-branch\"]path=bar9" >>.git/config && - echo "[test]nine=9" >.git/bar9 && - git checkout -b master && - test_must_fail git config test.nine && - git checkout -b foo-branch && - echo 9 >expect && - git config test.nine >actual && - test_cmp expect actual - -Switched to a new branch 'master' -Switched to a new branch 'foo-branch' -ok 30 - conditional include, onbranch - -expecting success of 1305.31 'conditional include, onbranch, wildcard': - echo "[includeIf \"onbranch:?oo-*/**\"]path=bar10" >>.git/config && - echo "[test]ten=10" >.git/bar10 && - git checkout -b not-foo-branch/a && - test_must_fail git config test.ten && +ok 37 - $GIT_WORK_TREE overrides $GIT_DIR/common - echo 10 >expect && - git checkout -b foo-branch/a/b/c && - git config test.ten >actual && - test_cmp expect actual && +expecting success of 1501.38 'error out gracefully on invalid $GIT_WORK_TREE': + ( + GIT_WORK_TREE=/.invalid/work/tree && + export GIT_WORK_TREE && + test_expect_code 128 git rev-parse + ) - git checkout -b moo-bar/a && - git config test.ten >actual && - test_cmp expect actual +fatal: Invalid path '/.invalid': No such file or directory +ok 38 - error out gracefully on invalid $GIT_WORK_TREE -Switched to a new branch 'not-foo-branch/a' -Switched to a new branch 'foo-branch/a/b/c' -Switched to a new branch 'moo-bar/a' -ok 31 - conditional include, onbranch, wildcard +expecting success of 1501.39 'refs work with relative gitdir and work tree': + git init relative && + git -C relative commit --allow-empty -m one && + git -C relative commit --allow-empty -m two && -expecting success of 1305.32 'conditional include, onbranch, implicit /** for /': - echo "[includeIf \"onbranch:foo-dir/\"]path=bar11" >>.git/config && - echo "[test]eleven=11" >.git/bar11 && - git checkout -b not-foo-dir/a && - test_must_fail git config test.eleven && + GIT_DIR=relative/.git GIT_WORK_TREE=relative git reset HEAD^ && - echo 11 >expect && - git checkout -b foo-dir/a/b/c && - git config test.eleven >actual && + git -C relative log -1 --format=%s >actual && + echo one >expect && test_cmp expect actual -Switched to a new branch 'not-foo-dir/a' -Switched to a new branch 'foo-dir/a/b/c' -ok 32 - conditional include, onbranch, implicit /** for / - -expecting success of 1305.33 'include cycles are detected': - git init --bare cycle && - git -C cycle config include.path cycle && - git config -f cycle/cycle include.path config && - test_must_fail \ - env GIT_TEST_GETTEXT_POISON=false \ - git -C cycle config --get-all test.value 2>stderr && - grep "exceeded maximum include depth" stderr - hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all hint: of your new repositories, which will suppress this warning, call: @@ -48705,87 +47880,69 @@ hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1305-config-include/cycle/ -fatal: exceeded maximum include depth (10) while including -ok 33 - include cycles are detected +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1501-work-tree/relative/.git/ +[master (root-commit) 61ba98b] one + Author: A U Thor +[master 2b4e70d] two + Author: A U Thor +ok 39 - refs work with relative gitdir and work tree -# passed all 33 test(s) -1..33 +# passed all 39 test(s) +1..39 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t1306-xdg-files.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1306-xdg-files/.git/ -expecting success of 1306.1 'read config: xdg file exists and ~/.gitconfig doesn't': - mkdir -p .config/git && - echo "[alias]" >.config/git/config && - echo " myalias = !echo in_config" >>.config/git/config && - echo in_config >expected && - git myalias >actual && - test_cmp expected actual - -ok 1 - read config: xdg file exists and ~/.gitconfig doesn't - -expecting success of 1306.2 'read config: xdg file exists and ~/.gitconfig exists': - >.gitconfig && - echo "[alias]" >.gitconfig && - echo " myalias = !echo in_gitconfig" >>.gitconfig && - echo in_gitconfig >expected && - git myalias >actual && - test_cmp expected actual - -ok 2 - read config: xdg file exists and ~/.gitconfig exists - -expecting success of 1306.3 'read with --get: xdg file exists and ~/.gitconfig doesn't': - rm .gitconfig && - echo "[user]" >.config/git/config && - echo " name = read_config" >>.config/git/config && - echo read_config >expected && - git config --get user.name >actual && - test_cmp expected actual - -ok 3 - read with --get: xdg file exists and ~/.gitconfig doesn't +*** t1450-fsck.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/.git/ +expecting success of 1450.1 'setup': + git config gc.auto 0 && + git config i18n.commitencoding ISO-8859-1 && + test_commit A fileA one && + git config --unset i18n.commitencoding && + git checkout HEAD^0 && + test_commit B fileB two && + git tag -d A B && + git reflog expire --expire=now --all -expecting success of 1306.4 '"$XDG_CONFIG_HOME overrides $HOME/.config/git': - mkdir -p "$HOME"/xdg/git && - echo "[user]name = in_xdg" >"$HOME"/xdg/git/config && - echo in_xdg >expected && - XDG_CONFIG_HOME="$HOME"/xdg git config --get-all user.name >actual && - test_cmp expected actual +[master (root-commit) 1347563] A + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 fileA +Note: switching to 'HEAD^0'. -ok 4 - "$XDG_CONFIG_HOME overrides $HOME/.config/git +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. -expecting success of 1306.5 'read with --get: xdg file exists and ~/.gitconfig exists': - >.gitconfig && - echo "[user]" >.gitconfig && - echo " name = read_gitconfig" >>.gitconfig && - echo read_gitconfig >expected && - git config --get user.name >actual && - test_cmp expected actual +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: -ok 5 - read with --get: xdg file exists and ~/.gitconfig exists + git switch -c -expecting success of 1306.6 'read with --list: xdg file exists and ~/.gitconfig doesn't': - rm .gitconfig && - echo user.name=read_config >expected && - git config --global --list >actual && - test_cmp expected actual +Or undo this operation with: -ok 6 - read with --list: xdg file exists and ~/.gitconfig doesn't + git switch - -expecting success of 1306.7 'read with --list: xdg file exists and ~/.gitconfig exists': - >.gitconfig && - echo "[user]" >.gitconfig && - echo " name = read_gitconfig" >>.gitconfig && - echo user.name=read_gitconfig >expected && - git config --global --list >actual && - test_cmp expected actual +Turn off this advice by setting config variable advice.detachedHead to false -ok 7 - read with --list: xdg file exists and ~/.gitconfig exists +HEAD is now at 1347563 A +[detached HEAD c9145d6] B + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 fileB +Deleted tag 'A' (was 1347563) +Deleted tag 'B' (was c9145d6) +ok 1 - setup -expecting success of 1306.8 'Setup': - git init git && - cd git && - echo foo >to_be_excluded +expecting success of 1450.2 'loose objects borrowed from alternate are not missing': + mkdir another && + ( + cd another && + git init && + echo ../../../.git/objects >.git/objects/info/alternates && + test_commit C fileC one && + git fsck --no-dangling >../actual 2>&1 + ) && + test_must_be_empty actual hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all @@ -48797,282 +47954,52 @@ hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1306-xdg-files/git/.git/ -ok 8 - Setup - -expecting success of 1306.9 'Exclusion of a file in the XDG ignore file': - mkdir -p "$HOME"/.config/git/ && - echo to_be_excluded >"$HOME"/.config/git/ignore && - test_must_fail git add to_be_excluded - -The following paths are ignored by one of your .gitignore files: -to_be_excluded -hint: Use -f if you really want to add them. -hint: Turn this message off by running -hint: "git config advice.addIgnoredFile false" -ok 9 - Exclusion of a file in the XDG ignore file - -expecting success of 1306.10 '$XDG_CONFIG_HOME overrides $HOME/.config/git/ignore': - mkdir -p "$HOME"/xdg/git && - echo content >excluded_by_xdg_only && - echo excluded_by_xdg_only >"$HOME"/xdg/git/ignore && - test_when_finished "git read-tree --empty" && - (XDG_CONFIG_HOME="$HOME/xdg" && - export XDG_CONFIG_HOME && - git add to_be_excluded && - test_must_fail git add excluded_by_xdg_only - ) - -The following paths are ignored by one of your .gitignore files: -excluded_by_xdg_only -hint: Use -f if you really want to add them. -hint: Turn this message off by running -hint: "git config advice.addIgnoredFile false" -ok 10 - $XDG_CONFIG_HOME overrides $HOME/.config/git/ignore - -expecting success of 1306.11 'Exclusion in both XDG and local ignore files': - echo to_be_excluded >.gitignore && - test_must_fail git add to_be_excluded - -The following paths are ignored by one of your .gitignore files: -to_be_excluded -hint: Use -f if you really want to add them. -hint: Turn this message off by running -hint: "git config advice.addIgnoredFile false" -ok 11 - Exclusion in both XDG and local ignore files - -expecting success of 1306.12 'Exclusion in a non-XDG global ignore file': - rm .gitignore && - echo >"$HOME"/.config/git/ignore && - echo to_be_excluded >"$HOME"/my_gitignore && - git config core.excludesfile "$HOME"/my_gitignore && - test_must_fail git add to_be_excluded - -The following paths are ignored by one of your .gitignore files: -to_be_excluded -hint: Use -f if you really want to add them. -hint: Turn this message off by running -hint: "git config advice.addIgnoredFile false" -ok 12 - Exclusion in a non-XDG global ignore file - -expecting success of 1306.13 'Checking XDG ignore file when HOME is unset': - (sane_unset HOME && - git config --unset core.excludesfile && - git ls-files --exclude-standard --ignored >actual) && - test_must_be_empty actual - -ok 13 - Checking XDG ignore file when HOME is unset - -expecting success of 1306.14 'Checking attributes in the XDG attributes file': - echo foo >f && - git check-attr -a f >actual && - test_line_count -eq 0 actual && - echo "f attr_f" >"$HOME"/.config/git/attributes && - echo "f: attr_f: set" >expected && - git check-attr -a f >actual && - test_cmp expected actual - -ok 14 - Checking attributes in the XDG attributes file - -expecting success of 1306.15 'Checking XDG attributes when HOME is unset': - (sane_unset HOME && - git check-attr -a f >actual) && - test_must_be_empty actual - -ok 15 - Checking XDG attributes when HOME is unset - -expecting success of 1306.16 '$XDG_CONFIG_HOME overrides $HOME/.config/git/attributes': - mkdir -p "$HOME"/xdg/git && - echo "f attr_f=xdg" >"$HOME"/xdg/git/attributes && - echo "f: attr_f: xdg" >expected && - XDG_CONFIG_HOME="$HOME/xdg" git check-attr -a f >actual && - test_cmp expected actual - -ok 16 - $XDG_CONFIG_HOME overrides $HOME/.config/git/attributes - -expecting success of 1306.17 'Checking attributes in both XDG and local attributes files': - echo "f -attr_f" >.gitattributes && - echo "f: attr_f: unset" >expected && - git check-attr -a f >actual && - test_cmp expected actual - -ok 17 - Checking attributes in both XDG and local attributes files - -expecting success of 1306.18 'Checking attributes in a non-XDG global attributes file': - rm -f .gitattributes && - echo "f attr_f=test" >"$HOME"/my_gitattributes && - git config core.attributesfile "$HOME"/my_gitattributes && - echo "f: attr_f: test" >expected && - git check-attr -a f >actual && - test_cmp expected actual - -ok 18 - Checking attributes in a non-XDG global attributes file - -expecting success of 1306.19 'write: xdg file exists and ~/.gitconfig doesn't': - mkdir -p "$HOME"/.config/git && - >"$HOME"/.config/git/config && - rm -f "$HOME"/.gitconfig && - git config --global user.name "write_config" && - echo "[user]" >expected && - echo " name = write_config" >>expected && - test_cmp expected "$HOME"/.config/git/config - -ok 19 - write: xdg file exists and ~/.gitconfig doesn't - -expecting success of 1306.20 'write: xdg file exists and ~/.gitconfig exists': - >"$HOME"/.gitconfig && - git config --global user.name "write_gitconfig" && - echo "[user]" >expected && - echo " name = write_gitconfig" >>expected && - test_cmp expected "$HOME"/.gitconfig - -ok 20 - write: xdg file exists and ~/.gitconfig exists - -expecting success of 1306.21 'write: ~/.config/git/ exists and config file doesn't': - rm -f "$HOME"/.gitconfig && - rm -f "$HOME"/.config/git/config && - git config --global user.name "write_gitconfig" && - echo "[user]" >expected && - echo " name = write_gitconfig" >>expected && - test_cmp expected "$HOME"/.gitconfig - -ok 21 - write: ~/.config/git/ exists and config file doesn't - -# passed all 21 test(s) -1..21 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1307-config-blob.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1307-config-blob/.git/ -expecting success of 1307.1 'create config blob': - cat >config <<-\EOF && - [some] - value = 1 - EOF - git add config && - git commit -m foo - -[master (root-commit) 5571afa] foo +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/another/.git/ +[master (root-commit) 1aac250] C Author: A U Thor - 1 file changed, 2 insertions(+) - create mode 100644 config -ok 1 - create config blob - -expecting success of 1307.2 'list config blob contents': - echo some.value=1 >expect && - git config --blob=HEAD:config --list >actual && - test_cmp expect actual - -ok 2 - list config blob contents - -expecting success of 1307.3 'fetch value from blob': - echo true >expect && - git config --blob=HEAD:config --bool some.value >actual && - test_cmp expect actual - -ok 3 - fetch value from blob - -expecting success of 1307.4 'reading non-existing value from blob is an error': - test_must_fail git config --blob=HEAD:config non.existing - -ok 4 - reading non-existing value from blob is an error - -expecting success of 1307.5 'reading from blob and file is an error': - test_must_fail git config --blob=HEAD:config --system --list - -error: only one config file at a time -usage: git config [] - -Config file location - --global use global config file - --system use system config file - --local use repository config file - --worktree use per-worktree config file - -f, --file use given config file - --blob read config from given blob object - -Action - --get get value: name [value-pattern] - --get-all get all values: key [value-pattern] - --get-regexp get values for regexp: name-regex [value-pattern] - --get-urlmatch get value specific for the URL: section[.var] URL - --replace-all replace all matching variables: name value [value-pattern] - --add add a new variable: name value - --unset remove a variable: name [value-pattern] - --unset-all remove all matches: name [value-pattern] - --rename-section rename section: old-name new-name - --remove-section remove a section: name - -l, --list list all - --fixed-value use string equality when comparing values to 'value-pattern' - -e, --edit open an editor - --get-color find the color configured: slot [default] - --get-colorbool find the color setting: slot [stdout-is-tty] - -Type - -t, --type <> value is given this type - --bool value is "true" or "false" - --int value is decimal number - --bool-or-int value is --bool or --int - --bool-or-str value is --bool or string - --path value is a path (file or directory name) - --expiry-date value is an expiry date - -Other - -z, --null terminate values with NUL byte - --name-only show variable names only - --includes respect include directives on lookup - --show-origin show origin of config (file, standard input, blob, command line) - --show-scope show scope of config (worktree, local, global, system, command) - --default with --get, use default value when missing entry - -ok 5 - reading from blob and file is an error - -expecting success of 1307.6 'reading from missing ref is an error': - test_must_fail git config --blob=HEAD:doesnotexist --list - -error: unable to resolve config blob 'HEAD:doesnotexist' -fatal: error processing config file(s) -ok 6 - reading from missing ref is an error - -expecting success of 1307.7 'reading from non-blob is an error': - test_must_fail git config --blob=HEAD --list - -error: reference 'HEAD' does not point to a blob -fatal: error processing config file(s) -ok 7 - reading from non-blob is an error - -expecting success of 1307.8 'setting a value in a blob is an error': - test_must_fail git config --blob=HEAD:config some.value foo + 1 file changed, 1 insertion(+) + create mode 100644 fileC +ok 2 - loose objects borrowed from alternate are not missing -fatal: writing config blobs is not supported -ok 8 - setting a value in a blob is an error +expecting success of 1450.3 'HEAD is part of refs, valid objects appear valid': + git fsck >actual 2>&1 && + test_must_be_empty actual -expecting success of 1307.9 'deleting a value in a blob is an error': - test_must_fail git config --blob=HEAD:config --unset some.value +ok 3 - HEAD is part of refs, valid objects appear valid -fatal: writing config blobs is not supported -ok 9 - deleting a value in a blob is an error +expecting success of 1450.4 'setup: helpers for corruption tests': + sha1_file() { + remainder=${1#??} && + firsttwo=${1%$remainder} && + echo ".git/objects/$firsttwo/$remainder" + } && -expecting success of 1307.10 'editing a blob is an error': - test_must_fail git config --blob=HEAD:config --edit + remove_object() { + rm "$(sha1_file "$1")" + } -fatal: editing blobs is not supported -ok 10 - editing a blob is an error +ok 4 - setup: helpers for corruption tests -expecting success of 1307.11 'parse errors in blobs are properly attributed': - cat >config <<-\EOF && - [some] - value = " - EOF - git add config && - git commit -m broken && +expecting success of 1450.5 'object with bad sha1': + sha=$(echo blob | git hash-object -w --stdin) && + old=$(test_oid_to_path "$sha") && + new=$(dirname $old)/$(test_oid ff_2) && + sha="$(dirname $new)$(basename $new)" && + mv .git/objects/$old .git/objects/$new && + test_when_finished "remove_object $sha" && + git update-index --add --cacheinfo 100644 $sha foo && + test_when_finished "git read-tree -u --reset HEAD" && + tree=$(git write-tree) && + test_when_finished "remove_object $tree" && + cmt=$(echo bogus | git commit-tree $tree) && + test_when_finished "remove_object $cmt" && + git update-ref refs/heads/bogus $cmt && + test_when_finished "git update-ref -d refs/heads/bogus" && - test_must_fail git config --blob=HEAD:config some.value 2>err && - test_i18ngrep "HEAD:config" err + test_must_fail git fsck 2>out && + test_i18ngrep "$sha.*corrupt" out -[master 91b4611] broken - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) +missing blob 63ffffffffffffffffffffffffffffffffffffff checking prerequisite: C_LOCALE_OUTPUT mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && @@ -49082,432 +48009,556 @@ ) prerequisite C_LOCALE_OUTPUT ok -error: bad config line 2 in blob HEAD:config -ok 11 - parse errors in blobs are properly attributed +error: 63ffffffffffffffffffffffffffffffffffffff: object corrupt or missing: .git/objects/63/ffffffffffffffffffffffffffffffffffffff +ok 5 - object with bad sha1 -expecting success of 1307.12 'can parse blob ending with CR': - printf "[some]key = value\\r" >config && - git add config && - git commit -m CR && - echo value >expect && - git config --blob=HEAD:config some.key >actual && - test_cmp expect actual +expecting success of 1450.6 'branch pointing to non-commit': + git rev-parse HEAD^{tree} >.git/refs/heads/invalid && + test_when_finished "git update-ref -d refs/heads/invalid" && + test_must_fail git fsck 2>out && + test_i18ngrep "not a commit" out -[master 2e1cb03] CR - Author: A U Thor - 1 file changed, 1 insertion(+), 2 deletions(-) -ok 12 - can parse blob ending with CR +error: refs/heads/invalid: not a commit +ok 6 - branch pointing to non-commit -expecting success of 1307.13 'config --blob outside of a repository is an error': - nongit test_must_fail git config --blob=foo --list +expecting success of 1450.7 'HEAD link pointing at a funny object': + test_when_finished "mv .git/SAVED_HEAD .git/HEAD" && + mv .git/HEAD .git/SAVED_HEAD && + echo $ZERO_OID >.git/HEAD && + # avoid corrupt/broken HEAD from interfering with repo discovery + test_must_fail env GIT_DIR=.git git fsck 2>out && + test_i18ngrep "detached HEAD points" out -fatal: --blob can only be used inside a git repository -ok 13 - config --blob outside of a repository is an error +dangling commit c9145d6720f85544cc4bb6009a2e541660aa156b +error: HEAD: detached HEAD points at nothing +ok 7 - HEAD link pointing at a funny object -# passed all 13 test(s) -1..13 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1308-config-set.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1308-config-set/.git/ -expecting success of 1308.1 'setup default config': - cat >.git/config <<-\EOF - [case] - penguin = very blue - Movie = BadPhysics - UPPERCASE = true - MixedCase = true - my = - foo - baz = sam - [Cores] - WhatEver = Second - baz = bar - [cores] - baz = bat - [CORES] - baz = ball - [my "Foo bAr"] - hi = mixed-case - [my "FOO BAR"] - hi = upper-case - [my "foo bar"] - hi = lower-case - [case] - baz = bat - baz = hask - [lamb] - chop = 65 - head = none - [goat] - legs = 4 - head = true - skin = false - nose = 1 - horns - EOF +expecting success of 1450.8 'HEAD link pointing at a funny place': + test_when_finished "mv .git/SAVED_HEAD .git/HEAD" && + mv .git/HEAD .git/SAVED_HEAD && + echo "ref: refs/funny/place" >.git/HEAD && + # avoid corrupt/broken HEAD from interfering with repo discovery + test_must_fail env GIT_DIR=.git git fsck 2>out && + test_i18ngrep "HEAD points to something strange" out -ok 1 - setup default config +dangling commit c9145d6720f85544cc4bb6009a2e541660aa156b +error: HEAD points to something strange (refs/funny/place) +ok 8 - HEAD link pointing at a funny place -expecting success of 1308.2 'get value for a simple key': - check_config get_value case.penguin "very blue" +expecting success of 1450.9 'HEAD link pointing at a funny object (from different wt)': + test_when_finished "mv .git/SAVED_HEAD .git/HEAD" && + test_when_finished "rm -rf .git/worktrees wt" && + git worktree add wt && + mv .git/HEAD .git/SAVED_HEAD && + echo $ZERO_OID >.git/HEAD && + # avoid corrupt/broken HEAD from interfering with repo discovery + test_must_fail git -C wt fsck 2>out && + test_i18ngrep "main-worktree/HEAD: detached HEAD points" out -ok 2 - get value for a simple key +Preparing worktree (new branch 'wt') +HEAD is now at c9145d6 B +error: main-worktree/HEAD: detached HEAD points at nothing +ok 9 - HEAD link pointing at a funny object (from different wt) -expecting success of 1308.3 'get value for a key with value as an empty string': - check_config get_value case.my "" +expecting success of 1450.10 'other worktree HEAD link pointing at a funny object': + test_when_finished "rm -rf .git/worktrees other" && + git worktree add other && + echo $ZERO_OID >.git/worktrees/other/HEAD && + test_must_fail git fsck 2>out && + test_i18ngrep "worktrees/other/HEAD: detached HEAD points" out -ok 3 - get value for a key with value as an empty string +Preparing worktree (new branch 'other') +HEAD is now at c9145d6 B +error: worktrees/other/HEAD: detached HEAD points at nothing +ok 10 - other worktree HEAD link pointing at a funny object -expecting success of 1308.4 'get value for a key with value as NULL': - check_config get_value case.foo "(NULL)" +expecting success of 1450.11 'other worktree HEAD link pointing at missing object': + test_when_finished "rm -rf .git/worktrees other" && + git worktree add other && + echo "Contents missing from repo" | git hash-object --stdin >.git/worktrees/other/HEAD && + test_must_fail git fsck 2>out && + test_i18ngrep "worktrees/other/HEAD: invalid sha1 pointer" out -ok 4 - get value for a key with value as NULL +Preparing worktree (checking out 'other') +HEAD is now at c9145d6 B +error: worktrees/other/HEAD: invalid sha1 pointer 45ea5fdbd862b3f0e413a6c2c951347efa0bb114 +ok 11 - other worktree HEAD link pointing at missing object -expecting success of 1308.5 'upper case key': - check_config get_value case.UPPERCASE "true" && - check_config get_value case.uppercase "true" +expecting success of 1450.12 'other worktree HEAD link pointing at a funny place': + test_when_finished "rm -rf .git/worktrees other" && + git worktree add other && + echo "ref: refs/funny/place" >.git/worktrees/other/HEAD && + test_must_fail git fsck 2>out && + test_i18ngrep "worktrees/other/HEAD points to something strange" out -ok 5 - upper case key +Preparing worktree (checking out 'other') +HEAD is now at c9145d6 B +error: worktrees/other/HEAD points to something strange (refs/funny/place) +ok 12 - other worktree HEAD link pointing at a funny place -expecting success of 1308.6 'mixed case key': - check_config get_value case.MixedCase "true" && - check_config get_value case.MIXEDCASE "true" && - check_config get_value case.mixedcase "true" +expecting success of 1450.13 'commit with multiple signatures is okay': + git cat-file commit HEAD >basis && + cat >sigs <<-EOF && + gpgsig -----BEGIN PGP SIGNATURE----- + VGhpcyBpcyBub3QgcmVhbGx5IGEgc2lnbmF0dXJlLg== + -----END PGP SIGNATURE----- + gpgsig-sha256 -----BEGIN PGP SIGNATURE----- + VGhpcyBpcyBub3QgcmVhbGx5IGEgc2lnbmF0dXJlLg== + -----END PGP SIGNATURE----- + EOF + sed -e "/^committer/q" basis >okay && + cat sigs >>okay && + echo >>okay && + sed -e "1,/^$/d" basis >>okay && + cat okay && + new=$(git hash-object -t commit -w --stdin out && + cat out && + ! grep "commit $new" out -ok 6 - mixed case key +tree c9176b0dd1a95c80ad8de21784b1eeffd3681f49 +parent 134756353796a5439d93586be27999eea3807a34 +author A U Thor 1112912053 -0700 +committer C O Mitter 1112912053 -0700 +gpgsig -----BEGIN PGP SIGNATURE----- + VGhpcyBpcyBub3QgcmVhbGx5IGEgc2lnbmF0dXJlLg== + -----END PGP SIGNATURE----- +gpgsig-sha256 -----BEGIN PGP SIGNATURE----- + VGhpcyBpcyBub3QgcmVhbGx5IGEgc2lnbmF0dXJlLg== + -----END PGP SIGNATURE----- -expecting success of 1308.7 'key and value with mixed case': - check_config get_value case.Movie "BadPhysics" +B +ok 13 - commit with multiple signatures is okay -ok 7 - key and value with mixed case +expecting success of 1450.14 'email without @ is okay': + git cat-file commit HEAD >basis && + sed "s/@/AT/" basis >okay && + new=$(git hash-object -t commit -w --stdin out && + ! grep "commit $new" out -expecting success of 1308.8 'key with case sensitive subsection': - check_config get_value "my.Foo bAr.hi" "mixed-case" && - check_config get_value "my.FOO BAR.hi" "upper-case" && - check_config get_value "my.foo bar.hi" "lower-case" +ok 14 - email without @ is okay -ok 8 - key with case sensitive subsection +expecting success of 1450.15 'email with embedded > is not okay': + git cat-file commit HEAD >basis && + sed "s/@[a-z]/&>/" basis >bad-email && + new=$(git hash-object -t commit -w --stdin out && + test_i18ngrep "error in commit $new" out -expecting success of 1308.9 'key with case insensitive section header': - check_config get_value cores.baz "ball" && - check_config get_value Cores.baz "ball" && - check_config get_value CORES.baz "ball" && - check_config get_value coreS.baz "ball" +error in commit af421232fcba11d582d625f9041afbe3fccc01d9: missingSpaceBeforeDate: invalid author/committer line - missing space before date +ok 15 - email with embedded > is not okay -ok 9 - key with case insensitive section header +expecting success of 1450.16 'missing < email delimiter is reported nicely': + git cat-file commit HEAD >basis && + sed "s/bad-email-2 && + new=$(git hash-object -t commit -w --stdin out && + test_i18ngrep "error in commit $new.* - bad name" out -expecting success of 1308.10 'key with case insensitive section header & variable': - check_config get_value CORES.BAZ "ball" && - check_config get_value cores.baz "ball" && - check_config get_value cores.BaZ "ball" && - check_config get_value cOreS.bAz "ball" +error in commit c4b6d356e934be1cc10cb58c734fbcc5fa3a5285: badName: invalid author/committer line - bad name +ok 16 - missing < email delimiter is reported nicely -ok 10 - key with case insensitive section header & variable +expecting success of 1450.17 'missing email is reported nicely': + git cat-file commit HEAD >basis && + sed "s/[a-z]* <[^>]*>//" basis >bad-email-3 && + new=$(git hash-object -t commit -w --stdin out && + test_i18ngrep "error in commit $new.* - missing email" out -expecting success of 1308.11 'find value with misspelled key': - check_config expect_code 1 get_value "my.fOo Bar.hi" "Value not found for \"my.fOo Bar.hi\"" +error in commit 35319efb0a67194811f8583362d460866d58b499: missingEmail: invalid author/committer line - missing email +ok 17 - missing email is reported nicely -ok 11 - find value with misspelled key +expecting success of 1450.18 '> in name is reported': + git cat-file commit HEAD >basis && + sed "s/ bad-email-4 && + new=$(git hash-object -t commit -w --stdin out && + test_i18ngrep "error in commit $new" out -expecting success of 1308.12 'find value with the highest priority': - check_config get_value case.baz "hask" +error in commit 301380051321b3e224015eea93b0ebc550c88198: badName: invalid author/committer line - bad name +ok 18 - > in name is reported -ok 12 - find value with the highest priority +expecting success of 1450.19 'integer overflow in timestamps is reported': + git cat-file commit HEAD >basis && + sed "s/^\\(author .*>\\) [0-9]*/\\1 18446744073709551617/" \ + bad-timestamp && + new=$(git hash-object -t commit -w --stdin out && + test_i18ngrep "error in commit $new.*integer overflow" out -expecting success of 1308.13 'find integer value for a key': - check_config get_int lamb.chop 65 +error in commit c8453435c3587d0404f88f925c28a5944b73be1a: badDateOverflow: invalid author/committer line - date causes integer overflow +ok 19 - integer overflow in timestamps is reported -ok 13 - find integer value for a key +expecting success of 1450.20 'commit with NUL in header': + git cat-file commit HEAD >basis && + sed "s/author ./author Q/" commit-NUL-header && + new=$(git hash-object -t commit -w --stdin out && + test_i18ngrep "error in commit $new.*unterminated header: NUL at offset" out -expecting success of 1308.14 'find string value for a key': - check_config get_string case.baz hask && - check_config expect_code 1 get_string case.ba "Value not found for \"case.ba\"" +error in commit b70520fa0e6346c648b4013350096f65f49946eb: nulInHeader: unterminated header: NUL at offset 101 +ok 20 - commit with NUL in header -ok 14 - find string value for a key +expecting success of 1450.21 'tree object with duplicate entries': + test_when_finished "for i in \$T; do remove_object \$i; done" && + T=$( + GIT_INDEX_FILE=test-index && + export GIT_INDEX_FILE && + rm -f test-index && + >x && + git add x && + git rev-parse :x && + T=$(git write-tree) && + echo $T && + ( + git cat-file tree $T && + git cat-file tree $T + ) | + git hash-object -w -t tree --stdin + ) && + test_must_fail git fsck 2>out && + test_i18ngrep "error in tree .*contains duplicate file entries" out -expecting success of 1308.15 'check line error when NULL string is queried': - test_expect_code 128 test-tool config get_string case.foo 2>result && - test_i18ngrep "fatal: .*case\.foo.*\.git/config.*line 7" result +dangling tree 5805b676e247eb9a8046ad0c4d249cd2fb2513df +dangling tree 7997631de77b8a212b5c3e01eff5e9cf1d3c7580 +error in tree 7997631de77b8a212b5c3e01eff5e9cf1d3c7580: duplicateEntries: contains duplicate file entries +ok 21 - tree object with duplicate entries -checking prerequisite: C_LOCALE_OUTPUT +expecting success of 1450.22 'tree object with duplicate names: x x.1 x/': + test_when_finished "remove_object \$blob" && + test_when_finished "remove_object \$tree" && + test_when_finished "remove_object \$badtree" && + blob=$(echo blob | git hash-object -w --stdin) && + printf "100644 blob %s\t%s\n" $blob x.2 >tree && + tree=$(git mktree badtree && + badtree=$(git mktree out && + test_i18ngrep "$badtree" out && + test_i18ngrep "error in tree .*contains duplicate file entries" out + +dangling tree 26c966b0589aae52be2c311b1ffbdd28e9ba7d67 +error in tree 26c966b0589aae52be2c311b1ffbdd28e9ba7d67: duplicateEntries: contains duplicate file entries +error in tree 26c966b0589aae52be2c311b1ffbdd28e9ba7d67: duplicateEntries: contains duplicate file entries +ok 22 - tree object with duplicate names: x x.1 x/ -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false +expecting success of 1450.23 'tree object with duplicate names: x x.1.2 x.1/ x/': + test_when_finished "remove_object \$blob" && + test_when_finished "remove_object \$tree" && + test_when_finished "remove_object \$badtree" && + blob=$(echo blob | git hash-object -w --stdin) && + printf "100644 blob %s\t%s\n" $blob x.2 >tree && + tree=$(git mktree badtree && + badtree=$(git mktree out && + test_i18ngrep "$badtree" out && + test_i18ngrep "error in tree .*contains duplicate file entries" out + +dangling tree 464b70bd0f13c75cfbde739fe1ba074454b55bdb +error in tree 464b70bd0f13c75cfbde739fe1ba074454b55bdb: duplicateEntries: contains duplicate file entries +error in tree 464b70bd0f13c75cfbde739fe1ba074454b55bdb: duplicateEntries: contains duplicate file entries +ok 23 - tree object with duplicate names: x x.1.2 x.1/ x/ -) -prerequisite C_LOCALE_OUTPUT ok -fatal: bad config variable 'case.foo' in file '.git/config' at line 7 -ok 15 - check line error when NULL string is queried +expecting success of 1450.24 'tree object with duplicate names: x x.1 x.1.2 x/': + test_when_finished "remove_object \$blob" && + test_when_finished "remove_object \$tree" && + test_when_finished "remove_object \$badtree" && + blob=$(echo blob | git hash-object -w --stdin) && + printf "100644 blob %s\t%s\n" $blob x.2 >tree && + tree=$(git mktree badtree && + badtree=$(git mktree out && + test_i18ngrep "$badtree" out && + test_i18ngrep "error in tree .*contains duplicate file entries" out + +dangling tree bfbeecf396ef7aaf4d8c67e3615296a445358420 +error in tree bfbeecf396ef7aaf4d8c67e3615296a445358420: duplicateEntries: contains duplicate file entries +error in tree bfbeecf396ef7aaf4d8c67e3615296a445358420: duplicateEntries: contains duplicate file entries +ok 24 - tree object with duplicate names: x x.1 x.1.2 x/ -expecting success of 1308.16 'find integer if value is non parse-able': - check_config expect_code 128 get_int lamb.head +expecting success of 1450.25 'unparseable tree object': + test_oid_cache <<-\EOF && + junk sha1:twenty-bytes-of-junk + junk sha256:twenty-bytes-of-junk-twelve-more + EOF -fatal: bad numeric config value 'none' for 'lamb.head': invalid unit -ok 16 - find integer if value is non parse-able + test_when_finished "git update-ref -d refs/heads/wrong" && + test_when_finished "remove_object \$tree_sha1" && + test_when_finished "remove_object \$commit_sha1" && + junk=$(test_oid junk) && + tree_sha1=$(printf "100644 \0$junk" | git hash-object -t tree --stdin -w --literally) && + commit_sha1=$(git commit-tree $tree_sha1) && + git update-ref refs/heads/wrong $commit_sha1 && + test_must_fail git fsck 2>out && + test_i18ngrep "error: empty filename in tree entry" out && + test_i18ngrep "$tree_sha1" out && + test_i18ngrep ! "fatal: empty filename in tree entry" out -expecting success of 1308.17 'find bool value for the entered key': - check_config get_bool goat.head 1 && - check_config get_bool goat.skin 0 && - check_config get_bool goat.nose 1 && - check_config get_bool goat.horns 1 && - check_config get_bool goat.legs 1 +error: empty filename in tree entry +error: empty filename in tree entry +error: empty filename in tree entry +error in tree b1b45dcb979335e5f09d3b756c4639cab166c243: broken links +error in tree b1b45dcb979335e5f09d3b756c4639cab166c243: badTree: cannot be parsed as a tree +ok 25 - unparseable tree object -ok 17 - find bool value for the entered key +expecting success of 1450.26 'tree entry with type mismatch': + test_when_finished "remove_object \$blob" && + test_when_finished "remove_object \$tree" && + test_when_finished "remove_object \$commit" && + test_when_finished "git update-ref -d refs/heads/type_mismatch" && + blob=$(echo blob | git hash-object -w --stdin) && + blob_bin=$(echo $blob | hex2oct) && + tree=$( + printf "40000 dir\0${blob_bin}100644 file\0${blob_bin}" | + git hash-object -t tree --stdin -w --literally + ) && + commit=$(git commit-tree $tree) && + git update-ref refs/heads/type_mismatch $commit && + test_must_fail git fsck >out 2>&1 && + test_i18ngrep "is a blob, not a tree" out && + test_i18ngrep ! "dangling blob" out -expecting success of 1308.18 'find multiple values': - check_config get_value_multi case.baz sam bat hask +error: object 63499e4ea8e096b831515ceb1d5a7593e4d87ae5 is a blob, not a tree +error: object 63499e4ea8e096b831515ceb1d5a7593e4d87ae5 is a blob, not a tree +ok 26 - tree entry with type mismatch -ok 18 - find multiple values +expecting success of 1450.27 'tag pointing to nonexistent': + badoid=$(test_oid deadbeef) && + cat >invalid-tag <<-EOF && + object $badoid + type commit + tag invalid + tagger T A Gger 1234567890 -0000 -expecting success of 1308.19 'find value from a configset': - cat >config2 <<-\EOF && - [case] - baz = lama - [my] - new = silk - [case] - baz = ball + This is an invalid tag. EOF - echo silk >expect && - test-tool config configset_get_value my.new config2 .git/config >actual && - test_cmp expect actual -ok 19 - find value from a configset + tag=$(git hash-object -t tag -w --stdin .git/refs/tags/invalid && + test_when_finished "git update-ref -d refs/tags/invalid" && + test_must_fail git fsck --tags >out && + test_i18ngrep "broken link" out -expecting success of 1308.20 'find value with highest priority from a configset': - echo hask >expect && - test-tool config configset_get_value case.baz config2 .git/config >actual && - test_cmp expect actual +broken link from tag 5248b3501322f3dd3ac19713bbbe83f70183da53 +ok 27 - tag pointing to nonexistent -ok 20 - find value with highest priority from a configset +expecting success of 1450.28 'tag pointing to something else than its type': + sha=$(echo blob | git hash-object -w --stdin) && + test_when_finished "remove_object $sha" && + cat >wrong-tag <<-EOF && + object $sha + type commit + tag wrong + tagger T A Gger 1234567890 -0000 -expecting success of 1308.21 'find value_list for a key from a configset': - cat >expect <<-\EOF && - lama - ball - sam - bat - hask + This is an invalid tag. EOF - test-tool config configset_get_value_multi case.baz config2 .git/config >actual && - test_cmp expect actual - -ok 21 - find value_list for a key from a configset - -expecting success of 1308.22 'proper error on non-existent files': - echo "Error (-1) reading configuration file non-existent-file." >expect && - test_expect_code 2 test-tool config configset_get_value foo.bar non-existent-file 2>actual && - test_cmp expect actual - -ok 22 - proper error on non-existent files -expecting success of 1308.23 'proper error on directory "files"': - echo "Error (-1) reading configuration file a-directory." >expect && - mkdir a-directory && - test_expect_code 2 test-tool config configset_get_value foo.bar a-directory 2>output && - grep "^warning:" output && - grep "^Error" output >actual && - test_cmp expect actual - -warning: unable to access 'a-directory': Is a directory -ok 23 - proper error on directory "files" + tag=$(git hash-object -t tag -w --stdin .git/refs/tags/wrong && + test_when_finished "git update-ref -d refs/tags/wrong" && + test_must_fail git fsck --tags -checking prerequisite: SANITY +error: object 63499e4ea8e096b831515ceb1d5a7593e4d87ae5 is a blob, not a commit +error: bad tag pointer to 63499e4ea8e096b831515ceb1d5a7593e4d87ae5 in 66f6581d549f70e05ca586bc2df5c15a95662c36 +error: 66f6581d549f70e05ca586bc2df5c15a95662c36: object could not be parsed: .git/objects/66/f6581d549f70e05ca586bc2df5c15a95662c36 +error: object 63499e4ea8e096b831515ceb1d5a7593e4d87ae5 is a blob, not a commit +error: bad tag pointer to 63499e4ea8e096b831515ceb1d5a7593e4d87ae5 in 66f6581d549f70e05ca586bc2df5c15a95662c36 +error: refs/tags/wrong: invalid sha1 pointer 66f6581d549f70e05ca586bc2df5c15a95662c36 +dangling blob 63499e4ea8e096b831515ceb1d5a7593e4d87ae5 +ok 28 - tag pointing to something else than its type -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SANITY" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-SANITY" && - mkdir SANETESTD.1 SANETESTD.2 && +expecting success of 1450.29 'tag with incorrect tag name & missing tagger': + sha=$(git rev-parse HEAD) && + cat >wrong-tag <<-EOF && + object $sha + type commit + tag wrong name format - chmod +w SANETESTD.1 SANETESTD.2 && - >SANETESTD.1/x 2>SANETESTD.2/x && - chmod -w SANETESTD.1 && - chmod -r SANETESTD.1/x && - chmod -rx SANETESTD.2 || - BUG "cannot prepare SANETESTD" + This is an invalid tag. + EOF - ! test -r SANETESTD.1/x && - ! rm SANETESTD.1/x && ! test -f SANETESTD.2/x - status=$? + tag=$(git hash-object -t tag -w --stdin .git/refs/tags/wrong && + test_when_finished "git update-ref -d refs/tags/wrong" && + git fsck --tags 2>out && - chmod +rwx SANETESTD.1 SANETESTD.2 && - rm -rf SANETESTD.1 SANETESTD.2 || - BUG "cannot clean SANETESTD" - return $status + cat >expect <<-EOF && + warning in tag $tag: badTagName: invalid 'tag' name: wrong name format + warning in tag $tag: missingTaggerEntry: invalid format - expected 'tagger' line + EOF + test_i18ncmp expect out -) -rm: cannot remove 'SANETESTD.1/x': Permission denied -prerequisite SANITY ok -expecting success of 1308.24 'proper error on non-accessible files': - chmod -r .git/config && - test_when_finished "chmod +r .git/config" && - echo "Error (-1) reading configuration file .git/config." >expect && - test_expect_code 2 test-tool config configset_get_value foo.bar .git/config 2>output && - grep "^warning:" output && - grep "^Error" output >actual && - test_cmp expect actual +tagged commit c9145d6720f85544cc4bb6009a2e541660aa156b (wrong name format) in 6d73f1b4d41e4fdac4ba717a11e7409876bb75c3 +ok 29 - tag with incorrect tag name & missing tagger -warning: unable to access '.git/config': Permission denied -warning: unable to access '.git/config': Permission denied -ok 24 - proper error on non-accessible files +expecting success of 1450.30 'tag with bad tagger': + sha=$(git rev-parse HEAD) && + cat >wrong-tag <<-EOF && + object $sha + type commit + tag not-quite-wrong + tagger Bad Tagger Name -expecting success of 1308.25 'proper error on error in default config files': - cp .git/config .git/config.old && - test_when_finished "mv .git/config.old .git/config" && - echo "[" >>.git/config && - echo "fatal: bad config line 34 in file .git/config" >expect && - test_expect_code 128 test-tool config get_value foo.bar 2>actual && - test_i18ncmp expect actual + This is an invalid tag. + EOF -ok 25 - proper error on error in default config files + tag=$(git hash-object --literally -t tag -w --stdin .git/refs/tags/wrong && + test_when_finished "git update-ref -d refs/tags/wrong" && + test_must_fail git fsck --tags 2>out && + test_i18ngrep "error in tag .*: invalid author/committer" out -expecting success of 1308.26 'proper error on error in custom config files': - echo "[" >>syntax-error && - echo "fatal: bad config line 1 in file syntax-error" >expect && - test_expect_code 128 test-tool config configset_get_value foo.bar syntax-error 2>actual && - test_i18ncmp expect actual +error in tag d037dcc834669cc0c5d3416130c899572cb1aedd: missingEmail: invalid author/committer line - missing email +ok 30 - tag with bad tagger -ok 26 - proper error on error in custom config files +expecting success of 1450.31 'tag with NUL in header': + sha=$(git rev-parse HEAD) && + q_to_nul >tag-NUL-header <<-EOF && + object $sha + type commit + tag contains-Q-in-header + tagger T A Gger 1234567890 -0000 -expecting success of 1308.27 'check line errors for malformed values': - mv .git/config .git/config.old && - test_when_finished "mv .git/config.old .git/config" && - cat >.git/config <<-\EOF && - [alias] - br + This is an invalid tag. EOF - test_expect_code 128 git br 2>result && - test_i18ngrep "missing value for .alias\.br" result && - test_i18ngrep "fatal: .*\.git/config" result && - test_i18ngrep "fatal: .*line 2" result - -error: missing value for 'alias.br' -fatal: bad config line 2 in file .git/config -fatal: bad config line 2 in file .git/config -ok 27 - check line errors for malformed values - -expecting success of 1308.28 'error on modifying repo config without repo': - nongit test_must_fail git config a.b c 2>err && - test_i18ngrep "not in a git directory" err - -fatal: not in a git directory -ok 28 - error on modifying repo config without repo -expecting success of 1308.29 'iteration shows correct origins': - printf "[ignore]\n\tthis = please\n[foo]bar = from-repo\n" >.git/config && - printf "[foo]\n\tbar = from-home\n" >.gitconfig && - if test_have_prereq MINGW - then - # Use Windows path (i.e. *not* $HOME) - HOME_GITCONFIG=$(pwd)/.gitconfig - else - # Do not get fooled by symbolic links, i.e. $HOME != $(pwd) - HOME_GITCONFIG=$HOME/.gitconfig - fi && - cat >expect <<-EOF && - key=foo.bar - value=from-home - origin=file - name=$HOME_GITCONFIG - lno=2 - scope=global + tag=$(git hash-object --literally -t tag -w --stdin .git/refs/tags/wrong && + test_when_finished "git update-ref -d refs/tags/wrong" && + test_must_fail git fsck --tags 2>out && + test_i18ngrep "error in tag $tag.*unterminated header: NUL at offset" out - key=ignore.this - value=please - origin=file - name=.git/config - lno=2 - scope=local +error in tag 6251166df5b0f4b7f840db1a9af555089418c925: nulInHeader: unterminated header: NUL at offset 73 +ok 31 - tag with NUL in header - key=foo.bar - value=from-repo - origin=file - name=.git/config - lno=3 - scope=local +expecting success of 1450.32 'cleaned up': + git fsck >actual 2>&1 && + test_must_be_empty actual - key=foo.bar - value=from-cmdline - origin=command line - name= - lno=-1 - scope=command - EOF - GIT_CONFIG_PARAMETERS=$cmdline_config test-tool config iterate >actual && - test_cmp expect actual +ok 32 - cleaned up -ok 29 - iteration shows correct origins +expecting success of 1450.33 'rev-list --verify-objects': + git rev-list --verify-objects --all >/dev/null 2>out && + test_must_be_empty out -# passed all 29 test(s) -1..29 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1309-early-config.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1309-early-config/.git/ -expecting success of 1309.1 'read early config': - test_config early.config correct && - test-tool config read_early_config early.config >output && - test correct = "$(cat output)" +ok 33 - rev-list --verify-objects -ok 1 - read early config +expecting success of 1450.34 'rev-list --verify-objects with bad sha1': + sha=$(echo blob | git hash-object -w --stdin) && + old=$(test_oid_to_path $sha) && + new=$(dirname $old)/$(test_oid ff_2) && + sha="$(dirname $new)$(basename $new)" && + mv .git/objects/$old .git/objects/$new && + test_when_finished "remove_object $sha" && + git update-index --add --cacheinfo 100644 $sha foo && + test_when_finished "git read-tree -u --reset HEAD" && + tree=$(git write-tree) && + test_when_finished "remove_object $tree" && + cmt=$(echo bogus | git commit-tree $tree) && + test_when_finished "remove_object $cmt" && + git update-ref refs/heads/bogus $cmt && + test_when_finished "git update-ref -d refs/heads/bogus" && -expecting success of 1309.2 'in a sub-directory': - test_config early.config sub && - mkdir -p sub && - ( - cd sub && - test-tool config read_early_config early.config - ) >output && - test sub = "$(cat output)" + test_might_fail git rev-list --verify-objects refs/heads/bogus >/dev/null 2>out && + test_i18ngrep -q "error: hash mismatch $(dirname $new)$(test_oid ff_2)" out -ok 2 - in a sub-directory +ok 34 - rev-list --verify-objects with bad sha1 -expecting success of 1309.3 'ceiling': - test_config early.config ceiling && - mkdir -p sub && - ( - GIT_CEILING_DIRECTORIES="$PWD" && - export GIT_CEILING_DIRECTORIES && - cd sub && - test-tool config read_early_config early.config - ) >output && - test_must_be_empty output +expecting success of 1450.35 'force fsck to ignore double author': + git cat-file commit HEAD >basis && + sed "s/^author .*/&,&/" multiple-authors && + new=$(git hash-object -t commit -w --stdin output && - test xdg = "$(cat output)" +expecting success of 1450.36 'fsck notices blob entry pointing to null sha1': + (git init null-blob && + cd null-blob && + sha=$(printf "100644 file$_bz$_bzoid" | + git hash-object -w --stdin -t tree) && + git fsck 2>out && + test_i18ngrep "warning.*null sha1" out + ) -ok 4 - ceiling #2 +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/null-blob/.git/ +dangling tree aaf928e9279b56c88bcc8d79f881e5c820ea23e8 +warning in tree aaf928e9279b56c88bcc8d79f881e5c820ea23e8: nullSha1: contains entries pointing to null sha1 +ok 36 - fsck notices blob entry pointing to null sha1 -expecting success of 1309.5 'read config file in right order': - echo "[test]source = home" >>.gitconfig && - git init foo && - ( - cd foo && - echo "[test]source = repo" >>.git/config && - GIT_CONFIG_PARAMETERS=$cmdline_config test-tool config \ - read_early_config test.source >actual && - cat >expected <<-\EOF && - home - repo - cmdline - EOF - test_cmp expected actual +expecting success of 1450.37 'fsck notices submodule entry pointing to null sha1': + (git init null-commit && + cd null-commit && + sha=$(printf "160000 submodule$_bz$_bzoid" | + git hash-object -w --stdin -t tree) && + git fsck 2>out && + test_i18ngrep "warning.*null sha1" out ) hint: Using 'master' as the name for the initial branch. This default branch name @@ -49520,29 +48571,132 @@ hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1309-early-config/foo/.git/ -ok 5 - read config file in right order - -expecting success of 1309.6 'ignore .git/ with incompatible repository version': - test_with_config "[core]repositoryformatversion = 999999" 2>err && - test_i18ngrep "warning:.* Expected git repo version <= [1-9]" err +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/null-commit/.git/ +dangling tree f87f3eabd15018382578c00e3a71a46c842e17e6 +warning in tree f87f3eabd15018382578c00e3a71a46c842e17e6: nullSha1: contains entries pointing to null sha1 +ok 37 - fsck notices submodule entry pointing to null sha1 -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1309-early-config/throwaway/.git/ -checking prerequisite: C_LOCALE_OUTPUT - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false +expecting success of 1450.38 'fsck notices . as blob': + ( + git init $name-$type && + cd $name-$type && + git config core.protectNTFS false && + echo content >file && + git add file && + git commit -m base && + blob=$(git rev-parse :file) && + tree=$(git rev-parse HEAD^{tree}) && + value=$(eval "echo \$$type") && + printf "$mode $type %s\t%s" "$value" "$path" >bad && + bad_tree=$(git mktree out && + test_i18ngrep "warning.*tree $bad_tree" out + ) +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/dot-blob/.git/ +[master (root-commit) ebd6d19] base + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file +dangling tree 4d6a3deda84474ed5f701962ea9bf83c5fe08185 +warning in tree 4d6a3deda84474ed5f701962ea9bf83c5fe08185: hasDot: contains '.' +ok 38 - fsck notices . as blob -) -prerequisite C_LOCALE_OUTPUT ok -warning: ignoring git dir '.git': Expected git repo version <= 1, found 999999 -ok 6 - ignore .git/ with incompatible repository version +expecting success of 1450.39 'fsck notices . as tree': + ( + git init $name-$type && + cd $name-$type && + git config core.protectNTFS false && + echo content >file && + git add file && + git commit -m base && + blob=$(git rev-parse :file) && + tree=$(git rev-parse HEAD^{tree}) && + value=$(eval "echo \$$type") && + printf "$mode $type %s\t%s" "$value" "$path" >bad && + bad_tree=$(git mktree out && + test_i18ngrep "warning.*tree $bad_tree" out + ) +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/dot-tree/.git/ +[master (root-commit) ebd6d19] base + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file +dangling tree 8984d55df404e56c99a9c5a2e5a168084a913e8f +warning in tree 8984d55df404e56c99a9c5a2e5a168084a913e8f: hasDot: contains '.' +ok 39 - fsck notices . as tree -checking known breakage of 1309.7 'ignore .git/ with invalid repository version': - test_with_config "[core]repositoryformatversion = invalid" +expecting success of 1450.40 'fsck notices .. as blob': + ( + git init $name-$type && + cd $name-$type && + git config core.protectNTFS false && + echo content >file && + git add file && + git commit -m base && + blob=$(git rev-parse :file) && + tree=$(git rev-parse HEAD^{tree}) && + value=$(eval "echo \$$type") && + printf "$mode $type %s\t%s" "$value" "$path" >bad && + bad_tree=$(git mktree out && + test_i18ngrep "warning.*tree $bad_tree" out + ) +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/dotdot-blob/.git/ +[master (root-commit) ebd6d19] base + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file +dangling tree 879560d9e3297f45ca9c25d4eea563f8dd179a32 +warning in tree 879560d9e3297f45ca9c25d4eea563f8dd179a32: hasDotdot: contains '..' +ok 40 - fsck notices .. as blob +expecting success of 1450.41 'fsck notices .. as tree': + ( + git init $name-$type && + cd $name-$type && + git config core.protectNTFS false && + echo content >file && + git add file && + git commit -m base && + blob=$(git rev-parse :file) && + tree=$(git rev-parse HEAD^{tree}) && + value=$(eval "echo \$$type") && + printf "$mode $type %s\t%s" "$value" "$path" >bad && + bad_tree=$(git mktree out && + test_i18ngrep "warning.*tree $bad_tree" out + ) hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all hint: of your new repositories, which will suppress this warning, call: @@ -49553,13 +48707,66 @@ hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1309-early-config/throwaway/.git/ -fatal: bad numeric config value 'invalid' for 'core.repositoryformatversion' in file .git/config: invalid unit -not ok 7 - ignore .git/ with invalid repository version # TODO known breakage +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/dotdot-tree/.git/ +[master (root-commit) ebd6d19] base + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file +dangling tree e704ff9811f799e752c8894dbc145bc74e4561fa +warning in tree e704ff9811f799e752c8894dbc145bc74e4561fa: hasDotdot: contains '..' +ok 41 - fsck notices .. as tree -checking known breakage of 1309.8 'ignore .git/ with invalid config': - test_with_config "[" +expecting success of 1450.42 'fsck notices .git as blob': + ( + git init $name-$type && + cd $name-$type && + git config core.protectNTFS false && + echo content >file && + git add file && + git commit -m base && + blob=$(git rev-parse :file) && + tree=$(git rev-parse HEAD^{tree}) && + value=$(eval "echo \$$type") && + printf "$mode $type %s\t%s" "$value" "$path" >bad && + bad_tree=$(git mktree out && + test_i18ngrep "warning.*tree $bad_tree" out + ) +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/dotgit-blob/.git/ +[master (root-commit) ebd6d19] base + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file +dangling tree 8ac5f64528d35de17a03755d2f3387af1de58b5a +warning in tree 8ac5f64528d35de17a03755d2f3387af1de58b5a: hasDotgit: contains '.git' +ok 42 - fsck notices .git as blob +expecting success of 1450.43 'fsck notices .git as tree': + ( + git init $name-$type && + cd $name-$type && + git config core.protectNTFS false && + echo content >file && + git add file && + git commit -m base && + blob=$(git rev-parse :file) && + tree=$(git rev-parse HEAD^{tree}) && + value=$(eval "echo \$$type") && + printf "$mode $type %s\t%s" "$value" "$path" >bad && + bad_tree=$(git mktree out && + test_i18ngrep "warning.*tree $bad_tree" out + ) hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all hint: of your new repositories, which will suppress this warning, call: @@ -49570,14 +48777,66 @@ hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1309-early-config/throwaway/.git/ -fatal: bad config line 1 in file .git/config -not ok 8 - ignore .git/ with invalid config # TODO known breakage +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/dotgit-tree/.git/ +[master (root-commit) ebd6d19] base + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file +dangling tree 69237360529ca48e6b6c1af14e753faabe339fb7 +warning in tree 69237360529ca48e6b6c1af14e753faabe339fb7: hasDotgit: contains '.git' +ok 43 - fsck notices .git as tree -expecting success of 1309.9 'early config and onbranch': - echo "[broken" >broken && - test_with_config "[includeif \"onbranch:topic\"]path=../broken" +expecting success of 1450.44 'fsck notices .GIT as blob': + ( + git init $name-$type && + cd $name-$type && + git config core.protectNTFS false && + echo content >file && + git add file && + git commit -m base && + blob=$(git rev-parse :file) && + tree=$(git rev-parse HEAD^{tree}) && + value=$(eval "echo \$$type") && + printf "$mode $type %s\t%s" "$value" "$path" >bad && + bad_tree=$(git mktree out && + test_i18ngrep "warning.*tree $bad_tree" out + ) +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/dotgit-case-blob/.git/ +[master (root-commit) ebd6d19] base + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file +dangling tree 56bac0d7a0a3c1451521352e3d40117e5ffc602e +warning in tree 56bac0d7a0a3c1451521352e3d40117e5ffc602e: hasDotgit: contains '.git' +ok 44 - fsck notices .GIT as blob +expecting success of 1450.45 'fsck notices .GIT as tree': + ( + git init $name-$type && + cd $name-$type && + git config core.protectNTFS false && + echo content >file && + git add file && + git commit -m base && + blob=$(git rev-parse :file) && + tree=$(git rev-parse HEAD^{tree}) && + value=$(eval "echo \$$type") && + printf "$mode $type %s\t%s" "$value" "$path" >bad && + bad_tree=$(git mktree out && + test_i18ngrep "warning.*tree $bad_tree" out + ) hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all hint: of your new repositories, which will suppress this warning, call: @@ -49588,3146 +48847,5954 @@ hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1309-early-config/throwaway/.git/ -ok 9 - early config and onbranch +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/dotgit-case-tree/.git/ +[master (root-commit) ebd6d19] base + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file +dangling tree 968a2dfde1e164e0513456c00ef656b2497434a3 +warning in tree 968a2dfde1e164e0513456c00ef656b2497434a3: hasDotgit: contains '.git' +ok 45 - fsck notices .GIT as tree -expecting success of 1309.10 'onbranch config outside of git repo': - test_config_global includeIf.onbranch:topic.path non-existent && - nongit git help +expecting success of 1450.46 'fsck notices .gI{u200c}T as blob': + ( + git init $name-$type && + cd $name-$type && + git config core.protectNTFS false && + echo content >file && + git add file && + git commit -m base && + blob=$(git rev-parse :file) && + tree=$(git rev-parse HEAD^{tree}) && + value=$(eval "echo \$$type") && + printf "$mode $type %s\t%s" "$value" "$path" >bad && + bad_tree=$(git mktree out && + test_i18ngrep "warning.*tree $bad_tree" out + ) +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/dotgit-unicode-blob/.git/ +[master (root-commit) ebd6d19] base + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file +dangling tree 2b65491a1b39699fb2bffda8e997c85fcb9c7beb +warning in tree 2b65491a1b39699fb2bffda8e997c85fcb9c7beb: hasDotgit: contains '.git' +ok 46 - fsck notices .gI{u200c}T as blob -usage: git [--version] [--help] [-C ] [-c =] - [--exec-path[=]] [--html-path] [--man-path] [--info-path] - [-p | --paginate | -P | --no-pager] [--no-replace-objects] [--bare] - [--git-dir=] [--work-tree=] [--namespace=] - [] +expecting success of 1450.47 'fsck notices .gI{u200c}T as tree': + ( + git init $name-$type && + cd $name-$type && + git config core.protectNTFS false && + echo content >file && + git add file && + git commit -m base && + blob=$(git rev-parse :file) && + tree=$(git rev-parse HEAD^{tree}) && + value=$(eval "echo \$$type") && + printf "$mode $type %s\t%s" "$value" "$path" >bad && + bad_tree=$(git mktree out && + test_i18ngrep "warning.*tree $bad_tree" out + ) +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/dotgit-unicode-tree/.git/ +[master (root-commit) ebd6d19] base + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file +dangling tree 6a547d921721f1cf91601a53fcc7aae232947d23 +warning in tree 6a547d921721f1cf91601a53fcc7aae232947d23: hasDotgit: contains '.git' +ok 47 - fsck notices .gI{u200c}T as tree -These are common Git commands used in various situations: +expecting success of 1450.48 'fsck notices .Git as blob': + ( + git init $name-$type && + cd $name-$type && + git config core.protectNTFS false && + echo content >file && + git add file && + git commit -m base && + blob=$(git rev-parse :file) && + tree=$(git rev-parse HEAD^{tree}) && + value=$(eval "echo \$$type") && + printf "$mode $type %s\t%s" "$value" "$path" >bad && + bad_tree=$(git mktree out && + test_i18ngrep "warning.*tree $bad_tree" out + ) +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/dotgit-case2-blob/.git/ +[master (root-commit) ebd6d19] base + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file +dangling tree 3e29dd65f814deffead951c60da749fdf8a668c8 +warning in tree 3e29dd65f814deffead951c60da749fdf8a668c8: hasDotgit: contains '.git' +ok 48 - fsck notices .Git as blob -start a working area (see also: git help tutorial) - clone Clone a repository into a new directory - init Create an empty Git repository or reinitialize an existing one +expecting success of 1450.49 'fsck notices .Git as tree': + ( + git init $name-$type && + cd $name-$type && + git config core.protectNTFS false && + echo content >file && + git add file && + git commit -m base && + blob=$(git rev-parse :file) && + tree=$(git rev-parse HEAD^{tree}) && + value=$(eval "echo \$$type") && + printf "$mode $type %s\t%s" "$value" "$path" >bad && + bad_tree=$(git mktree out && + test_i18ngrep "warning.*tree $bad_tree" out + ) +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/dotgit-case2-tree/.git/ +[master (root-commit) ebd6d19] base + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file +dangling tree 50c7c9624762f2fe0d4efe5cba98835f58822ef4 +warning in tree 50c7c9624762f2fe0d4efe5cba98835f58822ef4: hasDotgit: contains '.git' +ok 49 - fsck notices .Git as tree -work on the current change (see also: git help everyday) - add Add file contents to the index - mv Move or rename a file, a directory, or a symlink - restore Restore working tree files - rm Remove files from the working tree and from the index - sparse-checkout Initialize and modify the sparse-checkout +expecting success of 1450.50 'fsck notices git~1 as blob': + ( + git init $name-$type && + cd $name-$type && + git config core.protectNTFS false && + echo content >file && + git add file && + git commit -m base && + blob=$(git rev-parse :file) && + tree=$(git rev-parse HEAD^{tree}) && + value=$(eval "echo \$$type") && + printf "$mode $type %s\t%s" "$value" "$path" >bad && + bad_tree=$(git mktree out && + test_i18ngrep "warning.*tree $bad_tree" out + ) +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/git-tilde1-blob/.git/ +[master (root-commit) ebd6d19] base + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file +dangling tree 1206e1b64fcedc2a9e7b8195c1c4c1a278285b20 +warning in tree 1206e1b64fcedc2a9e7b8195c1c4c1a278285b20: hasDotgit: contains '.git' +ok 50 - fsck notices git~1 as blob -examine the history and state (see also: git help revisions) - bisect Use binary search to find the commit that introduced a bug - diff Show changes between commits, commit and working tree, etc - grep Print lines matching a pattern - log Show commit logs - show Show various types of objects - status Show the working tree status +expecting success of 1450.51 'fsck notices git~1 as tree': + ( + git init $name-$type && + cd $name-$type && + git config core.protectNTFS false && + echo content >file && + git add file && + git commit -m base && + blob=$(git rev-parse :file) && + tree=$(git rev-parse HEAD^{tree}) && + value=$(eval "echo \$$type") && + printf "$mode $type %s\t%s" "$value" "$path" >bad && + bad_tree=$(git mktree out && + test_i18ngrep "warning.*tree $bad_tree" out + ) +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/git-tilde1-tree/.git/ +[master (root-commit) ebd6d19] base + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file +dangling tree 06f99accfb778f3318c72f3ae1c809cca146d27c +warning in tree 06f99accfb778f3318c72f3ae1c809cca146d27c: hasDotgit: contains '.git' +ok 51 - fsck notices git~1 as tree -grow, mark and tweak your common history - branch List, create, or delete branches - commit Record changes to the repository - merge Join two or more development histories together - rebase Reapply commits on top of another base tip - reset Reset current HEAD to the specified state - switch Switch branches - tag Create, list, delete or verify a tag object signed with GPG +expecting success of 1450.52 'fsck notices .git. as blob': + ( + git init $name-$type && + cd $name-$type && + git config core.protectNTFS false && + echo content >file && + git add file && + git commit -m base && + blob=$(git rev-parse :file) && + tree=$(git rev-parse HEAD^{tree}) && + value=$(eval "echo \$$type") && + printf "$mode $type %s\t%s" "$value" "$path" >bad && + bad_tree=$(git mktree out && + test_i18ngrep "warning.*tree $bad_tree" out + ) +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/dotgitdot-blob/.git/ +[master (root-commit) ebd6d19] base + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file +dangling tree 08554698725ae2bc2c2ae0172779111c62bda7a2 +warning in tree 08554698725ae2bc2c2ae0172779111c62bda7a2: hasDotgit: contains '.git' +ok 52 - fsck notices .git. as blob -collaborate (see also: git help workflows) - fetch Download objects and refs from another repository - pull Fetch from and integrate with another repository or a local branch - push Update remote refs along with associated objects +expecting success of 1450.53 'fsck notices .git. as tree': + ( + git init $name-$type && + cd $name-$type && + git config core.protectNTFS false && + echo content >file && + git add file && + git commit -m base && + blob=$(git rev-parse :file) && + tree=$(git rev-parse HEAD^{tree}) && + value=$(eval "echo \$$type") && + printf "$mode $type %s\t%s" "$value" "$path" >bad && + bad_tree=$(git mktree out && + test_i18ngrep "warning.*tree $bad_tree" out + ) +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/dotgitdot-tree/.git/ +[master (root-commit) ebd6d19] base + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file +dangling tree 4d7df7e65b79aeef4640dbfba95705b94a2bc266 +warning in tree 4d7df7e65b79aeef4640dbfba95705b94a2bc266: hasDotgit: contains '.git' +ok 53 - fsck notices .git. as tree -'git help -a' and 'git help -g' list available subcommands and some -concept guides. See 'git help ' or 'git help ' -to read about a specific subcommand or concept. -See 'git help git' for an overview of the system. -ok 10 - onbranch config outside of git repo +expecting success of 1450.54 'fsck notices .\.GIT\foobar as blob': + ( + git init $name-$type && + cd $name-$type && + git config core.protectNTFS false && + echo content >file && + git add file && + git commit -m base && + blob=$(git rev-parse :file) && + tree=$(git rev-parse HEAD^{tree}) && + value=$(eval "echo \$$type") && + printf "$mode $type %s\t%s" "$value" "$path" >bad && + bad_tree=$(git mktree out && + test_i18ngrep "warning.*tree $bad_tree" out + ) +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/dot-backslash-case-blob/.git/ +[master (root-commit) ebd6d19] base + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file +dangling tree 4447c608c557aa9e2d0d226c7af1f06937133ea1 +warning in tree 4447c608c557aa9e2d0d226c7af1f06937133ea1: hasDotgit: contains '.git' +ok 54 - fsck notices .\.GIT\foobar as blob -# still have 2 known breakage(s) -# passed all remaining 8 test(s) -1..10 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1310-config-default.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1310-config-default/.git/ -expecting success of 1310.1 'uses --default when entry missing': - echo quux >expect && - git config -f config --default=quux core.foo >actual && - test_cmp expect actual +expecting success of 1450.55 'fsck notices .\.GIT\foobar as tree': + ( + git init $name-$type && + cd $name-$type && + git config core.protectNTFS false && + echo content >file && + git add file && + git commit -m base && + blob=$(git rev-parse :file) && + tree=$(git rev-parse HEAD^{tree}) && + value=$(eval "echo \$$type") && + printf "$mode $type %s\t%s" "$value" "$path" >bad && + bad_tree=$(git mktree out && + test_i18ngrep "warning.*tree $bad_tree" out + ) +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/dot-backslash-case-tree/.git/ +[master (root-commit) ebd6d19] base + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file +dangling tree a8562dc6d26106f039fc8af6b2aa6fed2b1e14d4 +warning in tree a8562dc6d26106f039fc8af6b2aa6fed2b1e14d4: hasDotgit: contains '.git' +ok 55 - fsck notices .\.GIT\foobar as tree -ok 1 - uses --default when entry missing +expecting success of 1450.56 'fsck notices .git\foobar as blob': + ( + git init $name-$type && + cd $name-$type && + git config core.protectNTFS false && + echo content >file && + git add file && + git commit -m base && + blob=$(git rev-parse :file) && + tree=$(git rev-parse HEAD^{tree}) && + value=$(eval "echo \$$type") && + printf "$mode $type %s\t%s" "$value" "$path" >bad && + bad_tree=$(git mktree out && + test_i18ngrep "warning.*tree $bad_tree" out + ) +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/dotgit-case-backslash-blob/.git/ +[master (root-commit) ebd6d19] base + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file +dangling tree 707c253cde8e3742e9f02a3cf02fdc4ca0f55652 +warning in tree 707c253cde8e3742e9f02a3cf02fdc4ca0f55652: hasDotgit: contains '.git' +ok 56 - fsck notices .git\foobar as blob -expecting success of 1310.2 'does not use --default when entry present': - echo bar >expect && - git -c core.foo=bar config --default=baz core.foo >actual && - test_cmp expect actual +expecting success of 1450.57 'fsck notices .git\foobar as tree': + ( + git init $name-$type && + cd $name-$type && + git config core.protectNTFS false && + echo content >file && + git add file && + git commit -m base && + blob=$(git rev-parse :file) && + tree=$(git rev-parse HEAD^{tree}) && + value=$(eval "echo \$$type") && + printf "$mode $type %s\t%s" "$value" "$path" >bad && + bad_tree=$(git mktree out && + test_i18ngrep "warning.*tree $bad_tree" out + ) +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/dotgit-case-backslash-tree/.git/ +[master (root-commit) ebd6d19] base + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file +dangling tree caa586f8ddde64c3fc9157a3a262c9bd6a6a41ff +warning in tree caa586f8ddde64c3fc9157a3a262c9bd6a6a41ff: hasDotgit: contains '.git' +ok 57 - fsck notices .git\foobar as tree -ok 2 - does not use --default when entry present +expecting success of 1450.58 'fsck allows .Ňit': + ( + git init not-dotgit && + cd not-dotgit && + echo content >file && + git add file && + git commit -m base && + blob=$(git rev-parse :file) && + printf "100644 blob $blob\t.\\305\\207it" >tree && + tree=$(git mktree err && + test_line_count = 0 err + ) -expecting success of 1310.3 'canonicalizes --default with appropriate type': - echo true >expect && - git config -f config --default=yes --bool core.foo >actual && - test_cmp expect actual +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/not-dotgit/.git/ +[master (root-commit) ebd6d19] base + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file +dangling tree b6cf3d0dca284724c6c6a7005056d573f86157d7 +ok 58 - fsck allows .Ňit -ok 3 - canonicalizes --default with appropriate type +expecting success of 1450.59 'NUL in commit': + rm -fr nul-in-commit && + git init nul-in-commit && + ( + cd nul-in-commit && + git commit --allow-empty -m "initial commitQNUL after message" && + git cat-file commit HEAD >original && + q_to_nul munged && + git hash-object -w -t commit --stdin name && + git branch bad $(cat name) && -expecting success of 1310.4 'dies when --default cannot be parsed': - test_must_fail git config -f config --type=expiry-date --default=x --get \ - not.a.section 2>error && - test_i18ngrep "failed to format default config value" error + test_must_fail git -c fsck.nulInCommit=error fsck 2>warn.1 && + test_i18ngrep nulInCommit warn.1 && + git fsck 2>warn.2 && + test_i18ngrep nulInCommit warn.2 + ) -checking prerequisite: C_LOCALE_OUTPUT +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/nul-in-commit/.git/ +[master (root-commit) c31a7f2] initial commitQNUL after message + Author: A U Thor +error in commit f2f2305a657f7e4cfa7cd358e43c37ab0394720d: nulInCommit: NUL byte in the commit object body +warning in commit f2f2305a657f7e4cfa7cd358e43c37ab0394720d: nulInCommit: NUL byte in the commit object body +ok 59 - NUL in commit -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false +expecting success of 1450.60 'fsck notices missing blob': + create_repo_missing HEAD:subdir/file && + test_must_fail git -C missing fsck -) -prerequisite C_LOCALE_OUTPUT ok -fatal: failed to format default config value: x -ok 4 - dies when --default cannot be parsed +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/missing/.git/ +[master (root-commit) d38f542] one + Author: A U Thor +[master ca32bda] two + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 subdir/file +missing blob d95f3ad14dee633a758d2e331151e950dd13e4ed +ok 60 - fsck notices missing blob -expecting success of 1310.5 'does not allow --default without --get': - test_must_fail git config --default=quux --unset a.section >output 2>&1 && - test_i18ngrep "\-\-default is only applicable to" output +expecting success of 1450.61 'fsck notices missing subtree': + create_repo_missing HEAD:subdir && + test_must_fail git -C missing fsck -error: --default is only applicable to --get -ok 5 - does not allow --default without --get +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/missing/.git/ +[master (root-commit) d38f542] one + Author: A U Thor +[master ca32bda] two + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 subdir/file +error: 07753f428765ac1afe2020b24e40785869bd4a85: invalid sha1 pointer in cache-tree +broken link from tree 5f9d5fe4279246e5b2ddcd446efc2aed53a52304 + to tree 07753f428765ac1afe2020b24e40785869bd4a85 +missing tree 07753f428765ac1afe2020b24e40785869bd4a85 +ok 61 - fsck notices missing subtree -# passed all 5 test(s) -1..5 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1350-config-hooks-path.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1350-config-hooks-path/.git/ -expecting success of 1350.1 'set up a pre-commit hook in core.hooksPath': - mkdir -p .git/custom-hooks .git/hooks && - write_script .git/custom-hooks/pre-commit <<-\EOF && - echo CUSTOM >>actual - EOF - write_script .git/hooks/pre-commit <<-\EOF - echo NORMAL >>actual - EOF +expecting success of 1450.62 'fsck notices missing root tree': + create_repo_missing HEAD^{tree} && + test_must_fail git -C missing fsck -ok 1 - set up a pre-commit hook in core.hooksPath +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/missing/.git/ +[master (root-commit) d38f542] one + Author: A U Thor +[master ca32bda] two + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 subdir/file +error: 5f9d5fe4279246e5b2ddcd446efc2aed53a52304: invalid sha1 pointer in cache-tree +broken link from commit ca32bdaaf4ee9eab00bafa6471c9a2fa98fc42c3 + to tree 5f9d5fe4279246e5b2ddcd446efc2aed53a52304 +dangling tree 07753f428765ac1afe2020b24e40785869bd4a85 +missing tree 5f9d5fe4279246e5b2ddcd446efc2aed53a52304 +ok 62 - fsck notices missing root tree -expecting success of 1350.2 'Check that various forms of specifying core.hooksPath work': - test_commit no_custom_hook && - git config core.hooksPath .git/custom-hooks && - test_commit have_custom_hook && - git config core.hooksPath .git/custom-hooks/ && - test_commit have_custom_hook_trailing_slash && - git config core.hooksPath "$PWD/.git/custom-hooks" && - test_commit have_custom_hook_abs_path && - git config core.hooksPath "$PWD/.git/custom-hooks/" && - test_commit have_custom_hook_abs_path_trailing_slash && - cat >expect <<-\EOF && - NORMAL - CUSTOM - CUSTOM - CUSTOM - CUSTOM - EOF - test_cmp expect actual +expecting success of 1450.63 'fsck notices missing parent': + create_repo_missing HEAD^ && + test_must_fail git -C missing fsck -[master (root-commit) 51fec20] no_custom_hook +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/missing/.git/ +[master (root-commit) d38f542] one Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 no_custom_hook.t -[master d6f765a] have_custom_hook +[master ca32bda] two Author: A U Thor 1 file changed, 1 insertion(+) - create mode 100644 have_custom_hook.t -[master c8447a6] have_custom_hook_trailing_slash + create mode 100644 subdir/file +error: refs/heads/master: invalid reflog entry d38f542f2d868bcbbb09173528a3bb403f53a0f0 +error: refs/heads/master: invalid reflog entry d38f542f2d868bcbbb09173528a3bb403f53a0f0 +error: HEAD: invalid reflog entry d38f542f2d868bcbbb09173528a3bb403f53a0f0 +error: HEAD: invalid reflog entry d38f542f2d868bcbbb09173528a3bb403f53a0f0 +broken link from commit ca32bdaaf4ee9eab00bafa6471c9a2fa98fc42c3 + to commit d38f542f2d868bcbbb09173528a3bb403f53a0f0 +dangling tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904 +missing commit d38f542f2d868bcbbb09173528a3bb403f53a0f0 +ok 63 - fsck notices missing parent + +expecting success of 1450.64 'fsck notices missing tagged object': + create_repo_missing tag^{blob} && + test_must_fail git -C missing fsck + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/missing/.git/ +[master (root-commit) d38f542] one Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 have_custom_hook_trailing_slash.t -[master acc1a92] have_custom_hook_abs_path +[master ca32bda] two Author: A U Thor 1 file changed, 1 insertion(+) - create mode 100644 have_custom_hook_abs_path.t -[master 3a47fb1] have_custom_hook_abs_path_trailing_slash + create mode 100644 subdir/file +broken link from tag 7c115056e13b1f41142fe9e6f6cb98a1c077facd + to blob c21c9352f7526e9576892a6631e0e8cf1fccd34d +missing blob c21c9352f7526e9576892a6631e0e8cf1fccd34d +ok 64 - fsck notices missing tagged object + +expecting success of 1450.65 'fsck notices ref pointing to missing commit': + create_repo_missing HEAD && + test_must_fail git -C missing fsck + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/missing/.git/ +[master (root-commit) d38f542] one + Author: A U Thor +[master ca32bda] two Author: A U Thor 1 file changed, 1 insertion(+) - create mode 100644 have_custom_hook_abs_path_trailing_slash.t -ok 2 - Check that various forms of specifying core.hooksPath work + create mode 100644 subdir/file +error: refs/heads/master: invalid sha1 pointer ca32bdaaf4ee9eab00bafa6471c9a2fa98fc42c3 +error: HEAD: invalid sha1 pointer ca32bdaaf4ee9eab00bafa6471c9a2fa98fc42c3 +error: refs/heads/master: invalid reflog entry ca32bdaaf4ee9eab00bafa6471c9a2fa98fc42c3 +error: HEAD: invalid reflog entry ca32bdaaf4ee9eab00bafa6471c9a2fa98fc42c3 +ok 65 - fsck notices ref pointing to missing commit -expecting success of 1350.3 'git rev-parse --git-path hooks': - git config core.hooksPath .git/custom-hooks && - git rev-parse --git-path hooks/abc >actual && - test .git/custom-hooks/abc = "$(cat actual)" +expecting success of 1450.66 'fsck notices ref pointing to missing tag': + create_repo_missing tag && + test_must_fail git -C missing fsck -ok 3 - git rev-parse --git-path hooks +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/missing/.git/ +[master (root-commit) d38f542] one + Author: A U Thor +[master ca32bda] two + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 subdir/file +error: refs/tags/tag: invalid sha1 pointer 7c115056e13b1f41142fe9e6f6cb98a1c077facd +dangling blob c21c9352f7526e9576892a6631e0e8cf1fccd34d +ok 66 - fsck notices ref pointing to missing tag -# passed all 3 test(s) -1..3 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1401-symbolic-ref.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1401-symbolic-ref/.git/ -expecting success of 1401.1 'symbolic-ref writes HEAD': - git symbolic-ref HEAD refs/heads/foo && - echo ref: refs/heads/foo >expect && - test_cmp expect .git/HEAD +expecting success of 1450.67 'fsck --connectivity-only': + rm -rf connectivity-only && + git init connectivity-only && + ( + cd connectivity-only && + touch empty && + git add empty && + test_commit empty && -ok 1 - symbolic-ref writes HEAD + # Drop the index now; we want to be sure that we + # recursively notice the broken objects + # because they are reachable from refs, not because + # they are in the index. + rm -f .git/index && -expecting success of 1401.2 'symbolic-ref reads HEAD': - echo refs/heads/foo >expect && - git symbolic-ref HEAD >actual && - test_cmp expect actual + # corrupt the blob, but in a way that we can still identify + # its type. That lets us see that --connectivity-only is + # not actually looking at the contents, but leaves it + # free to examine the type if it chooses. + empty=.git/objects/$(test_oid_to_path $EMPTY_BLOB) && + blob=$(echo unrelated | git hash-object -w --stdin) && + mv -f $(sha1_file $blob) $empty && -ok 2 - symbolic-ref reads HEAD + test_must_fail git fsck --strict && + git fsck --strict --connectivity-only && + tree=$(git rev-parse HEAD:) && + suffix=${tree#??} && + tree=.git/objects/${tree%$suffix}/$suffix && + rm -f $tree && + echo invalid >$tree && + test_must_fail git fsck --strict --connectivity-only + ) -expecting success of 1401.3 'symbolic-ref refuses non-ref for HEAD': - test_must_fail git symbolic-ref HEAD foo +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/connectivity-only/.git/ +[master (root-commit) 86520b7] empty + Author: A U Thor + 2 files changed, 1 insertion(+) + create mode 100644 empty + create mode 100644 empty.t +error: hash mismatch for .git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 (expected e69de29bb2d1d6434b8b29ae775ad8c2e48c5391) +error: e69de29bb2d1d6434b8b29ae775ad8c2e48c5391: object corrupt or missing: .git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 +missing blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 +error: inflate: data stream error (incorrect header check) +error: unable to unpack 0d3d3508cb204b9201d016862e6025a49e8c01d6 header +fatal: loose object 0d3d3508cb204b9201d016862e6025a49e8c01d6 (stored in .git/objects/0d/3d3508cb204b9201d016862e6025a49e8c01d6) is corrupt +ok 67 - fsck --connectivity-only -fatal: Refusing to point HEAD outside of refs/ -ok 3 - symbolic-ref refuses non-ref for HEAD +expecting success of 1450.68 'fsck --connectivity-only with explicit head': + rm -rf connectivity-only && + git init connectivity-only && + ( + cd connectivity-only && + test_commit foo && + rm -f .git/index && + tree=$(git rev-parse HEAD^{tree}) && + remove_object $(git rev-parse HEAD:foo.t) && + test_must_fail git fsck --connectivity-only $tree + ) -expecting success of 1401.4 'symbolic-ref refuses bare sha1': - echo content >file && git add file && git commit -m one && - test_must_fail git symbolic-ref HEAD $(git rev-parse HEAD) +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/connectivity-only/.git/ +[master (root-commit) 31f3b95] foo + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 foo.t +broken link from tree 64fd3796c57084e7b8cbae358ce37970b8e954f6 + to blob 257cc5642cb1a054f08cc83f2d943e56fd3ebe99 +missing blob 257cc5642cb1a054f08cc83f2d943e56fd3ebe99 +dangling commit 31f3b953b325df75c7b6fbf854b59ac67382ac3b +ok 68 - fsck --connectivity-only with explicit head -[foo (root-commit) f39a923] one +expecting success of 1450.69 'fsck --name-objects': + rm -rf name-objects && + git init name-objects && + ( + cd name-objects && + test_commit julius caesar.t && + test_commit augustus && + test_commit caesar && + remove_object $(git rev-parse julius:caesar.t) && + test_must_fail git fsck --name-objects >out && + tree=$(git rev-parse --verify julius:) && + test_i18ngrep "$tree (refs/tags/julius:" out + ) + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/name-objects/.git/ +[master (root-commit) 6ab43a8] julius Author: A U Thor 1 file changed, 1 insertion(+) - create mode 100644 file -fatal: Refusing to point HEAD outside of refs/ -ok 4 - symbolic-ref refuses bare sha1 + create mode 100644 caesar.t +[master 14a9c9c] augustus + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 augustus.t +[master 2d3dc47] caesar + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +broken link from tree c2fab98f409a47394d992eca10a20e0b22377c0c (refs/tags/julius:) +ok 69 - fsck --name-objects -expecting success of 1401.5 'HEAD cannot be removed': - test_must_fail git symbolic-ref -d HEAD +expecting success of 1450.70 'alternate objects are correctly blamed': + test_when_finished "rm -rf alt.git .git/objects/info/alternates" && + name=$(test_oid numeric) && + path=$(test_oid_to_path "$name") && + git init --bare alt.git && + echo "../../alt.git/objects" >.git/objects/info/alternates && + mkdir alt.git/objects/$(dirname $path) && + >alt.git/objects/$(dirname $path)/$(basename $path) && + test_must_fail git fsck >out 2>&1 && + test_i18ngrep alt.git out -fatal: deleting 'HEAD' is not allowed -ok 5 - HEAD cannot be removed +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/alt.git/ +error: object file /build/git-2.30.2/t/trash directory.t1450-fsck/alt.git/objects/01/23456789012345678901234567890123456789 is empty +error: unable to mmap /build/git-2.30.2/t/trash directory.t1450-fsck/alt.git/objects/01/23456789012345678901234567890123456789: No such file or directory +error: 0123456789012345678901234567890123456789: object corrupt or missing: /build/git-2.30.2/t/trash directory.t1450-fsck/alt.git/objects/01/23456789012345678901234567890123456789 +ok 70 - alternate objects are correctly blamed -expecting success of 1401.6 'symbolic-ref can be deleted': - git symbolic-ref NOTHEAD refs/heads/foo && - git symbolic-ref -d NOTHEAD && - test_path_is_file .git/refs/heads/foo && - test_path_is_missing .git/NOTHEAD +expecting success of 1450.71 'fsck errors in packed objects': + git cat-file commit HEAD >basis && + sed "s/one && + sed "s/two && + one=$(git hash-object -t commit -w one) && + two=$(git hash-object -t commit -w two) && + pack=$( + { + echo $one && + echo $two + } | git pack-objects .git/objects/pack/pack + ) && + test_when_finished "rm -f .git/objects/pack/pack-$pack.*" && + remove_object $one && + remove_object $two && + test_must_fail git fsck 2>out && + test_i18ngrep "error in commit $one.* - bad name" out && + test_i18ngrep "error in commit $two.* - bad name" out && + ! grep corrupt out -ok 6 - symbolic-ref can be deleted +dangling commit a55646b2b4c741ed105e2e5c54365a5b4051c7e2 +dangling commit e705fceb9d8aec1503002ea31f4f68ea707e88ef +error in commit e705fceb9d8aec1503002ea31f4f68ea707e88ef: badName: invalid author/committer line - bad name +error in commit a55646b2b4c741ed105e2e5c54365a5b4051c7e2: badName: invalid author/committer line - bad name +ok 71 - fsck errors in packed objects -expecting success of 1401.7 'symbolic-ref can delete dangling symref': - git symbolic-ref NOTHEAD refs/heads/missing && - git symbolic-ref -d NOTHEAD && - test_path_is_missing .git/refs/heads/missing && - test_path_is_missing .git/NOTHEAD +expecting success of 1450.72 'fsck fails on corrupt packfile': + hsh=$(git commit-tree -m mycommit HEAD^{tree}) && + pack=$(echo $hsh | git pack-objects .git/objects/pack/pack) && -ok 7 - symbolic-ref can delete dangling symref + # Corrupt the first byte of the first object. (It contains 3 type bits, + # at least one of which is not zero, so setting the first byte to 0 is + # sufficient.) + chmod a+w .git/objects/pack/pack-$pack.pack && + printf "\0" | dd of=.git/objects/pack/pack-$pack.pack bs=1 conv=notrunc seek=12 && -expecting success of 1401.8 'symbolic-ref fails to delete missing FOO': - echo "fatal: Cannot delete FOO, not a symbolic ref" >expect && - test_must_fail git symbolic-ref -d FOO >actual 2>&1 && - test_cmp expect actual + test_when_finished "rm -f .git/objects/pack/pack-$pack.*" && + remove_object $hsh && + test_must_fail git fsck 2>out && + test_i18ngrep "checksum mismatch" out -ok 8 - symbolic-ref fails to delete missing FOO +1+0 records in +1+0 records out +1 byte copied, 0.000170904 s, 5.9 kB/s +error: .git/objects/pack/pack-8be9f6a4139bcddd74c3d2ed343bb71e87863c4b.pack pack checksum mismatch +ok 72 - fsck fails on corrupt packfile -expecting success of 1401.9 'symbolic-ref fails to delete real ref': - echo "fatal: Cannot delete refs/heads/foo, not a symbolic ref" >expect && - test_must_fail git symbolic-ref -d refs/heads/foo >actual 2>&1 && - git rev-parse --verify refs/heads/foo && - test_cmp expect actual +expecting success of 1450.73 'fsck finds problems in duplicate loose objects': + rm -rf broken-duplicate && + git init broken-duplicate && + ( + cd broken-duplicate && + test_commit duplicate && + # no "-d" here, so we end up with duplicates + git repack && + # now corrupt the loose copy + file=$(sha1_file "$(git rev-parse HEAD)") && + rm "$file" && + echo broken >"$file" && + test_must_fail git fsck + ) -f39a92305d069e3dcdc4ce95c3001deec3642dc3 -ok 9 - symbolic-ref fails to delete real ref +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/broken-duplicate/.git/ +[master (root-commit) d19e0e2] duplicate + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 duplicate.t +error: inflate: data stream error (incorrect header check) +error: unable to unpack header of .git/objects/d1/9e0e27f1e3e1ac93ebc6183333db3c4d9b00bd +error: d19e0e27f1e3e1ac93ebc6183333db3c4d9b00bd: object corrupt or missing: .git/objects/d1/9e0e27f1e3e1ac93ebc6183333db3c4d9b00bd +ok 73 - fsck finds problems in duplicate loose objects -expecting success of 1401.10 'create large ref name': - # make 256+ character ref; some systems may not handle that, - # so be gentle - long=0123456789abcdef && - long=$long/$long/$long/$long && - long=$long/$long/$long/$long && - long_ref=refs/heads/$long && - tree=$(git write-tree) && - commit=$(echo foo | git commit-tree $tree) && - if git update-ref $long_ref $commit; then - test_set_prereq LONG_REF - else - echo >&2 "long refs not supported" - fi +expecting success of 1450.74 'fsck detects trailing loose garbage (commit)': + git cat-file commit HEAD >basis && + echo bump-commit-sha1 >>basis && + commit=$(git hash-object -w -t commit basis) && + file=$(sha1_file $commit) && + test_when_finished "remove_object $commit" && + chmod +w "$file" && + echo garbage >>"$file" && + test_must_fail git fsck 2>out && + test_i18ngrep "garbage.*$commit" out -ok 10 - create large ref name +error: garbage at end of loose object '59ac8713639e31797addb7a886b8f5f6637bda3c' +ok 74 - fsck detects trailing loose garbage (commit) -expecting success of 1401.11 'symbolic-ref can point to large ref name': - git symbolic-ref HEAD $long_ref && - echo $long_ref >expect && - git symbolic-ref HEAD >actual && - test_cmp expect actual +expecting success of 1450.75 'fsck detects trailing loose garbage (large blob)': + blob=$(echo trailing | git hash-object -w --stdin) && + file=$(sha1_file $blob) && + test_when_finished "remove_object $blob" && + chmod +w "$file" && + echo garbage >>"$file" && + test_must_fail git -c core.bigfilethreshold=5 fsck 2>out && + test_i18ngrep "garbage.*$blob" out -ok 11 - symbolic-ref can point to large ref name +error: garbage at end of loose object '1e285548b47be8577f0549b6ebcecb242e692df3' +ok 75 - fsck detects trailing loose garbage (large blob) -expecting success of 1401.12 'we can parse long symbolic ref': - echo $commit >expect && - git rev-parse --verify HEAD >actual && - test_cmp expect actual +expecting success of 1450.76 'fsck detects truncated loose object': + # make it big enough that we know we will truncate in the data + # portion, not the header + test-tool genrandom truncate 4096 >file && + blob=$(git hash-object -w file) && + file=$(sha1_file $blob) && + test_when_finished "remove_object $blob" && + test_copy_bytes 1024 <"$file" >tmp && + rm "$file" && + mv -f tmp "$file" && -ok 12 - we can parse long symbolic ref + # check both regular and streaming code paths + test_must_fail git fsck 2>out && + test_i18ngrep corrupt.*$blob out && -expecting success of 1401.13 'symbolic-ref reports failure in exit code': - test_when_finished "rm -f .git/HEAD.lock" && - >.git/HEAD.lock && - test_must_fail git symbolic-ref HEAD refs/heads/whatever + test_must_fail git -c core.bigfilethreshold=128 fsck 2>out && + test_i18ngrep corrupt.*$blob out -error: Unable to create '/build/git-2.30.2/t/trash directory.t1401-symbolic-ref/.git/HEAD.lock': File exists. +error: corrupt loose object 'a56f9fb3e06dcfb3e5088f319ee1d4ccd1e05098' +error: corrupt loose object 'a56f9fb3e06dcfb3e5088f319ee1d4ccd1e05098' +ok 76 - fsck detects truncated loose object -Another git process seems to be running in this repository, e.g. -an editor opened by 'git commit'. Please make sure all processes -are terminated then try again. If it still fails, a git process -may have crashed in this repository earlier: -remove the file manually to continue. -ok 13 - symbolic-ref reports failure in exit code +expecting success of 1450.77 'create dangling-object repository': + git init dangling && + ( + cd dangling && + blob=$(echo not-dangling | git hash-object -w --stdin) && + dblob=$(echo dangling | git hash-object -w --stdin) && + tree=$(printf "100644 blob %s\t%s\n" $blob one | git mktree) && + dtree=$(printf "100644 blob %s\t%s\n" $blob two | git mktree) && + commit=$(git commit-tree $tree) && + dcommit=$(git commit-tree -p $commit $tree) && -expecting success of 1401.14 'symbolic-ref writes reflog entry': - git checkout -b log1 && - test_commit one && - git checkout -b log2 && - test_commit two && - git checkout --orphan orphan && - git symbolic-ref -m create HEAD refs/heads/log1 && - git symbolic-ref -m update HEAD refs/heads/log2 && - cat >expect <<-\EOF && - update - create - EOF - git log --format=%gs -g -2 >actual && - test_cmp expect actual + cat >expect <<-EOF + dangling blob $dblob + dangling commit $dcommit + dangling tree $dtree + EOF + ) -Switched to a new branch 'log1' -[log1 6782655] one - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 one.t -Switched to a new branch 'log2' -[log2 4d9c76a] two - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 two.t -Switched to a new branch 'orphan' -ok 14 - symbolic-ref writes reflog entry +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/dangling/.git/ +ok 77 - create dangling-object repository -expecting success of 1401.15 'symbolic-ref does not create ref d/f conflicts': - git checkout -b df && - test_commit df && - test_must_fail git symbolic-ref refs/heads/df/conflict refs/heads/df && - git pack-refs --all --prune && - test_must_fail git symbolic-ref refs/heads/df/conflict refs/heads/df +expecting success of 1450.78 'fsck notices dangling objects': + ( + cd dangling && + git fsck >actual && + # the output order is non-deterministic, as it comes from a hash + sort actual.sorted && + test_i18ncmp expect actual.sorted + ) -Switched to a new branch 'df' -[df 39fb238] df - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 df.t -error: Unable to create '/build/git-2.30.2/t/trash directory.t1401-symbolic-ref/.git/refs/heads/df/conflict.lock': Not a directory -error: 'refs/heads/df' exists; cannot create 'refs/heads/df/conflict' -ok 15 - symbolic-ref does not create ref d/f conflicts +notice: HEAD points to an unborn branch (master) +notice: No default references +ok 78 - fsck notices dangling objects -expecting success of 1401.16 'symbolic-ref can overwrite pointer to invalid name': - test_when_finished reset_to_sane && - head=$(git rev-parse HEAD) && - git symbolic-ref HEAD refs/heads/outer && - test_when_finished "git update-ref -d refs/heads/outer/inner" && - git update-ref refs/heads/outer/inner $head && - git symbolic-ref HEAD refs/heads/unrelated +expecting success of 1450.79 'fsck --connectivity-only notices dangling objects': + ( + cd dangling && + git fsck --connectivity-only >actual && + # the output order is non-deterministic, as it comes from a hash + sort actual.sorted && + test_i18ncmp expect actual.sorted + ) -ok 16 - symbolic-ref can overwrite pointer to invalid name +notice: HEAD points to an unborn branch (master) +notice: No default references +ok 79 - fsck --connectivity-only notices dangling objects -expecting success of 1401.17 'symbolic-ref can resolve d/f name (EISDIR)': - test_when_finished reset_to_sane && - head=$(git rev-parse HEAD) && - git symbolic-ref HEAD refs/heads/outer/inner && - test_when_finished "git update-ref -d refs/heads/outer" && - git update-ref refs/heads/outer $head && - echo refs/heads/outer/inner >expect && - git symbolic-ref HEAD >actual && - test_cmp expect actual +expecting success of 1450.80 'fsck $name notices bogus $name': + test_must_fail git fsck bogus && + test_must_fail git fsck $ZERO_OID -ok 17 - symbolic-ref can resolve d/f name (EISDIR) +error: invalid parameter: expected sha1, got 'bogus' +dangling commit c9145d6720f85544cc4bb6009a2e541660aa156b +error: 0000000000000000000000000000000000000000: object missing +dangling commit c9145d6720f85544cc4bb6009a2e541660aa156b +ok 80 - fsck $name notices bogus $name -expecting success of 1401.18 'symbolic-ref can resolve d/f name (ENOTDIR)': - test_when_finished reset_to_sane && - head=$(git rev-parse HEAD) && - git symbolic-ref HEAD refs/heads/outer && - test_when_finished "git update-ref -d refs/heads/outer/inner" && - git update-ref refs/heads/outer/inner $head && - echo refs/heads/outer >expect && - git symbolic-ref HEAD >actual && - test_cmp expect actual +expecting success of 1450.81 'bogus head does not fallback to all heads': + # set up a case that will cause a reachability complaint + echo to-be-deleted >foo && + git add foo && + blob=$(git rev-parse :foo) && + test_when_finished "git rm --cached foo" && + remove_object $blob && + test_must_fail git fsck $ZERO_OID >out 2>&1 && + ! grep $blob out -ok 18 - symbolic-ref can resolve d/f name (ENOTDIR) +rm 'foo' +ok 81 - bogus head does not fallback to all heads -# passed all 18 test(s) -1..18 +expecting success of 1450.82 'detect corrupt index file in fsck': + cp .git/index .git/index.backup && + test_when_finished "mv .git/index.backup .git/index" && + corrupt_index_checksum && + test_must_fail git fsck --cache 2>errors && + test_i18ngrep "bad index file" errors + +error: bad index file sha1 signature +ok 82 - detect corrupt index file in fsck + +# passed all 82 test(s) +1..82 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t1402-check-ref-format.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1402-check-ref-format/.git/ -expecting success of 1402.1 'ref name '' is invalid': - test_must_fail git check-ref-format '' +*** t1013-read-tree-submodule.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/.git/ +expecting success of 1013.1 'git read-tree -u -m --recurse-submodules: added submodule is checked out': + prolog && + reset_work_tree_to_interested no_submodule && + ( + cd submodule_update && + git branch -t add_sub1 origin/add_sub1 && + $command add_sub1 && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) -ok 1 - ref name '' is invalid +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1/.git/ +[master (root-commit) 63c4304] Base inside first submodule + Author: A U Thor + 3 files changed, 4 insertions(+) + create mode 100644 .gitignore + create mode 100644 file1 + create mode 100644 file2 +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub2/.git/ +[master (root-commit) 27c5769] nested submodule base + Author: A U Thor + 3 files changed, 4 insertions(+) + create mode 100644 .gitignore + create mode 100644 file1 + create mode 100644 file2 +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_repo/.git/ +[master (root-commit) 27611a5] Base + Author: A U Thor + 3 files changed, 4 insertions(+) + create mode 100644 .gitignore + create mode 100644 file1 + create mode 100644 file2 +Switched to a new branch 'add_sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_repo/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_repo/uninitialized_sub'... +done. +[add_sub1 09bcf53] Add sub1 + Author: A U Thor + 2 files changed, 8 insertions(+) + create mode 100644 .gitmodules + create mode 160000 uninitialized_sub +Switched to a new branch 'remove_sub1' +Removing uninitialized_sub +Removing sub1 +Removing .gitmodules +[remove_sub1 d6ba723] Revert "Add sub1" + Author: A U Thor + Date: Fri Apr 1 13:14:15 2005 +0200 + 3 files changed, 9 deletions(-) + delete mode 100644 .gitmodules + delete mode 160000 sub1 + delete mode 160000 uninitialized_sub +Switched to a new branch 'modify_sub1' +Switched to a new branch 'modifications' +[modifications 03da4ea] modified file2 and added file3 + Author: A U Thor + 2 files changed, 2 insertions(+), 1 deletion(-) + create mode 100644 file3 +To /build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1 + * [new branch] modifications -> modifications +[modify_sub1 cb2bda7] Modify sub1 + Author: A U Thor +Switched to a new branch 'add_nested_sub' +Switched to a new branch 'add_nested_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_repo/sub1/sub2'... +done. +[add_nested_sub 8b3b335] add a nested submodule + Author: A U Thor + 2 files changed, 5 insertions(+) + create mode 100644 .gitmodules + create mode 160000 sub2 +[add_nested_sub 5bc57bf] update submodule, that updates a nested submodule + Author: A U Thor +Switched to a new branch 'modify_sub1_recursively' +Switched to a new branch 'modify_sub1_recursively' +Switched to a new branch 'modify_sub1_recursively' +[modify_sub1_recursively c7c4624] make a change in nested sub + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file3 +[modify_sub1_recursively 92fc14a] update nested sub + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +[modify_sub1_recursively 953e869] update sub1, that updates nested sub + Author: A U Thor +To /build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1 + * [new branch] modify_sub1_recursively -> modify_sub1_recursively +To /build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub2 + * [new branch] modify_sub1_recursively -> modify_sub1_recursively +Cleared directory 'sub2' +Submodule 'sub2' (../submodule_update_sub2) unregistered for path 'sub2' +Switched to a new branch 'replace_sub1_with_directory' +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Previous HEAD position was 63c4304 Base inside first submodule +Switched to branch 'modifications' +rm 'sub1' +[replace_sub1_with_directory cb28587] Replace sub1 with directory + Author: A U Thor + 5 files changed, 3 insertions(+), 5 deletions(-) + delete mode 160000 sub1 + create mode 100644 sub1/file1 + create mode 100644 sub1/file2 + create mode 100644 sub1/file3 +Switched to a new branch 'replace_directory_with_sub1' +Removing sub1/file3 +Removing sub1/file2 +Removing sub1/file1 +Adding sub1 +[replace_directory_with_sub1 a2e65d5] Revert "Replace sub1 with directory" + Author: A U Thor + Date: Fri Apr 1 13:14:15 2005 +0200 + 4 files changed, 4 insertions(+), 3 deletions(-) + delete mode 100644 sub1/file1 + delete mode 100644 sub1/file2 + delete mode 100644 sub1/file3 +Switched to a new branch 'replace_sub1_with_file' +rm 'sub1' +[replace_sub1_with_file 2364f5a] Replace sub1 with file + Author: A U Thor + 2 files changed, 1 insertion(+), 5 deletions(-) + mode change 160000 => 100644 sub1 +Switched to a new branch 'replace_file_with_sub1' +[replace_file_with_sub1 8b6fdfc] Revert "Replace sub1 with file" + Author: A U Thor + Date: Fri Apr 1 13:14:15 2005 +0200 + 2 files changed, 5 insertions(+), 1 deletion(-) + mode change 100644 => 160000 sub1 +Switched to a new branch 'invalid_sub1' +[invalid_sub1 e6169bf] Invalid sub1 commit + Author: A U Thor +Switched to a new branch 'valid_sub1' +[valid_sub1 3036e4e] Revert "Invalid sub1 commit" + Author: A U Thor + Date: Fri Apr 1 13:14:15 2005 +0200 +warning: unable to rmdir 'uninitialized_sub': Directory not empty +Switched to branch 'master' +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +ok 1 - git read-tree -u -m --recurse-submodules: added submodule is checked out -expecting success of 1402.2 'ref name '/' is invalid': - test_must_fail git check-ref-format '/' +expecting success of 1013.2 'git read-tree -u -m --recurse-submodules: added submodule is checked out in empty dir': + prolog && + reset_work_tree_to_interested no_submodule && + ( + cd submodule_update && + mkdir sub1 && + git branch -t add_sub1 origin/add_sub1 && + $command add_sub1 && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) -ok 2 - ref name '/' is invalid +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +ok 2 - git read-tree -u -m --recurse-submodules: added submodule is checked out in empty dir -expecting success of 1402.3 'ref name '/' is invalid with options --allow-onelevel': - test_must_fail git check-ref-format --allow-onelevel '/' +expecting success of 1013.3 'git read-tree -u -m --recurse-submodules: replace tracked file with submodule checks out submodule': + prolog && + reset_work_tree_to_interested replace_sub1_with_file && + ( + cd submodule_update && + git branch -t replace_file_with_sub1 origin/replace_file_with_sub1 && + $command replace_file_with_sub1 && + test_superproject_content origin/replace_file_with_sub1 && + test_submodule_content sub1 origin/replace_file_with_sub1 + ) -ok 3 - ref name '/' is invalid with options --allow-onelevel +Cloning into 'submodule_update'... +done. +Switched to a new branch 'replace_sub1_with_file' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +fatal: Needed a single revision +Branch 'replace_file_with_sub1' set up to track remote branch 'replace_file_with_sub1' from 'origin'. +ok 3 - git read-tree -u -m --recurse-submodules: replace tracked file with submodule checks out submodule -expecting success of 1402.4 'ref name '/' is invalid with options --normalize': - test_must_fail git check-ref-format --normalize '/' +expecting success of 1013.4 'git read-tree -u -m --recurse-submodules: replace directory with submodule': + prolog && + reset_work_tree_to_interested replace_sub1_with_directory && + ( + cd submodule_update && + git branch -t replace_directory_with_sub1 origin/replace_directory_with_sub1 && + $command replace_directory_with_sub1 && + test_superproject_content origin/replace_directory_with_sub1 && + test_submodule_content sub1 origin/replace_directory_with_sub1 + ) -ok 4 - ref name '/' is invalid with options --normalize +Cloning into 'submodule_update'... +done. +Switched to a new branch 'replace_sub1_with_directory' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +fatal: Needed a single revision +Branch 'replace_directory_with_sub1' set up to track remote branch 'replace_directory_with_sub1' from 'origin'. +ok 4 - git read-tree -u -m --recurse-submodules: replace directory with submodule -expecting success of 1402.5 'ref name '/' is invalid with options --allow-onelevel --normalize': - test_must_fail git check-ref-format --allow-onelevel --normalize '/' +expecting success of 1013.5 'git read-tree -u -m --recurse-submodules: nested submodules are checked out': + prolog && + reset_work_tree_to_interested no_submodule && + ( + cd submodule_update && + git branch -t modify_sub1_recursively origin/modify_sub1_recursively && + $command modify_sub1_recursively && + test_superproject_content origin/modify_sub1_recursively && + test_submodule_content sub1 origin/modify_sub1_recursively && + test_submodule_content -C sub1 sub2 origin/modify_sub1_recursively + ) -ok 5 - ref name '/' is invalid with options --allow-onelevel --normalize +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'modify_sub1_recursively' set up to track remote branch 'modify_sub1_recursively' from 'origin'. +ok 5 - git read-tree -u -m --recurse-submodules: nested submodules are checked out -expecting success of 1402.6 'ref name 'foo/bar/baz' is valid': - git check-ref-format 'foo/bar/baz' +expecting success of 1013.6 'git read-tree -u -m --recurse-submodules: removed submodule removes submodules working tree': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t remove_sub1 origin/remove_sub1 && + $command remove_sub1 && + test_superproject_content origin/remove_sub1 && + ! test -e sub1 && + test_must_fail git config -f .git/modules/sub1/config core.worktree + ) -ok 6 - ref name 'foo/bar/baz' is valid +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. +ok 6 - git read-tree -u -m --recurse-submodules: removed submodule removes submodules working tree -expecting success of 1402.7 'ref name 'foo/bar/baz' is valid with options --normalize': - git check-ref-format --normalize 'foo/bar/baz' +expecting success of 1013.7 'git read-tree -u -m --recurse-submodules: removed submodule absorbs submodules .git directory': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t remove_sub1 origin/remove_sub1 && + replace_gitfile_with_git_dir sub1 && + rm -rf .git/modules && + $command remove_sub1 && + test_superproject_content origin/remove_sub1 && + ! test -e sub1 && + test_git_directory_exists sub1 + ) -foo/bar/baz -ok 7 - ref name 'foo/bar/baz' is valid with options --normalize +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. +Migrating git directory of 'sub1' from +'/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1/.git' to +'/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/.git/modules/sub1' +ok 7 - git read-tree -u -m --recurse-submodules: removed submodule absorbs submodules .git directory -expecting success of 1402.8 'ref name 'refs///heads/foo' is invalid': - test_must_fail git check-ref-format 'refs///heads/foo' +expecting success of 1013.8 'git read-tree -u -m --recurse-submodules: replace submodule with a file': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_file origin/replace_sub1_with_file && + $command replace_sub1_with_file && + test_superproject_content origin/replace_sub1_with_file && + test -f sub1 + ) -ok 8 - ref name 'refs///heads/foo' is invalid +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +ok 8 - git read-tree -u -m --recurse-submodules: replace submodule with a file -expecting success of 1402.9 'ref name 'refs///heads/foo' is valid with options --normalize': - git check-ref-format --normalize 'refs///heads/foo' +checking known breakage of 1013.9 'git read-tree -u -m --recurse-submodules: replace submodule with a file must fail with untracked files': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_file origin/replace_sub1_with_file && + : >sub1/untrackedfile && + test_must_fail $command replace_sub1_with_file && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 && + test -f sub1/untracked_file + ) -refs/heads/foo -ok 9 - ref name 'refs///heads/foo' is valid with options --normalize +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +test_must_fail: command succeeded: git read-tree -u -m --recurse-submodules replace_sub1_with_file +not ok 9 - git read-tree -u -m --recurse-submodules: replace submodule with a file must fail with untracked files # TODO known breakage -expecting success of 1402.10 'ref name 'heads/foo/' is invalid': - test_must_fail git check-ref-format 'heads/foo/' +expecting success of 1013.10 'git read-tree -u -m --recurse-submodules: worktrees of nested submodules are removed': + prolog && + reset_work_tree_to_interested add_nested_sub && + ( + cd submodule_update && + git branch -t no_submodule origin/no_submodule && + $command no_submodule && + test_superproject_content origin/no_submodule && + ! test_path_is_dir sub1 && + test_must_fail git config -f .git/modules/sub1/config core.worktree && + test_must_fail git config -f .git/modules/sub1/modules/sub2/config core.worktree + ) -ok 10 - ref name 'heads/foo/' is invalid +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_nested_sub' +Branch 'add_nested_sub' set up to track remote branch 'add_nested_sub' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '8b3b3353ac8999eb3d8af8e947e0ef2a08a60008' +Submodule 'sub2' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub2) registered for path 'sub1/sub2' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1/sub2'... +done. +Submodule path 'sub1/sub2': checked out '27c5769ac0ebf2d924e34d3aa503345baaaa98b2' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Directory sub1 doesn't exist. +ok 10 - git read-tree -u -m --recurse-submodules: worktrees of nested submodules are removed -expecting success of 1402.11 'ref name '/heads/foo' is invalid': - test_must_fail git check-ref-format '/heads/foo' +expecting success of 1013.11 'git read-tree -u -m --recurse-submodules: modified submodule updates submodule work tree': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t modify_sub1 origin/modify_sub1 && + $command modify_sub1 && + test_superproject_content origin/modify_sub1 && + test_submodule_content sub1 origin/modify_sub1 + ) -ok 11 - ref name '/heads/foo' is invalid +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. +ok 11 - git read-tree -u -m --recurse-submodules: modified submodule updates submodule work tree -expecting success of 1402.12 'ref name '/heads/foo' is valid with options --normalize': - git check-ref-format --normalize '/heads/foo' +expecting success of 1013.12 'git read-tree -u -m --recurse-submodules: updating to a missing submodule commit fails': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t invalid_sub1 origin/invalid_sub1 && + test_must_fail $command invalid_sub1 2>err && + test_i18ngrep sub1 err && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) -heads/foo -ok 12 - ref name '/heads/foo' is valid with options --normalize +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. +checking prerequisite: C_LOCALE_OUTPUT -expecting success of 1402.13 'ref name '///heads/foo' is invalid': - test_must_fail git check-ref-format '///heads/foo' - -ok 13 - ref name '///heads/foo' is invalid +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false -expecting success of 1402.14 'ref name '///heads/foo' is valid with options --normalize': - git check-ref-format --normalize '///heads/foo' - -heads/foo -ok 14 - ref name '///heads/foo' is valid with options --normalize +) +prerequisite C_LOCALE_OUTPUT ok +error: Submodule 'sub1' could not be updated. +error: Submodule 'sub1' cannot checkout new HEAD. +ok 12 - git read-tree -u -m --recurse-submodules: updating to a missing submodule commit fails -expecting success of 1402.15 'ref name './foo' is invalid': - test_must_fail git check-ref-format './foo' +expecting success of 1013.13 'git read-tree -u -m --recurse-submodules: submodule branch is not changed, detach HEAD instead': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git -C sub1 checkout -b keep_branch && + git -C sub1 rev-parse HEAD >expect && + git branch -t modify_sub1 origin/modify_sub1 && + $command modify_sub1 && + test_superproject_content origin/modify_sub1 && + test_submodule_content sub1 origin/modify_sub1 && + git -C sub1 rev-parse keep_branch >actual && + test_cmp expect actual && + test_must_fail git -C sub1 symbolic-ref HEAD + ) -ok 15 - ref name './foo' is invalid +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Switched to a new branch 'keep_branch' +Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. +fatal: ref HEAD is not a symbolic ref +ok 13 - git read-tree -u -m --recurse-submodules: submodule branch is not changed, detach HEAD instead -expecting success of 1402.16 'ref name './foo/bar' is invalid': - test_must_fail git check-ref-format './foo/bar' +expecting success of 1013.14 'git read-tree -u -m --recurse-submodules: added submodule doesn't remove untracked file with same name': + prolog && + reset_work_tree_to_interested no_submodule && + ( + cd submodule_update && + git branch -t add_sub1 origin/add_sub1 && + : >sub1 && + test_must_fail $command add_sub1 && + test_superproject_content origin/no_submodule && + test_must_be_empty sub1 + ) -ok 16 - ref name './foo/bar' is invalid +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +error: Untracked working tree file 'sub1' would be overwritten by merge. +ok 14 - git read-tree -u -m --recurse-submodules: added submodule doesn't remove untracked file with same name -expecting success of 1402.17 'ref name 'foo/./bar' is invalid': - test_must_fail git check-ref-format 'foo/./bar' +checking known breakage of 1013.15 'git read-tree -u -m --recurse-submodules: added submodule removes an untracked ignored file': + test_when_finished "rm submodule_update/.git/info/exclude" && + prolog && + reset_work_tree_to_interested no_submodule && + ( + cd submodule_update && + git branch -t add_sub1 origin/add_sub1 && + : >sub1 && + echo sub1 >.git/info/exclude && + $command add_sub1 && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) -ok 17 - ref name 'foo/./bar' is invalid +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +error: Untracked working tree file 'sub1' would be overwritten by merge. +not ok 15 - git read-tree -u -m --recurse-submodules: added submodule removes an untracked ignored file # TODO known breakage -expecting success of 1402.18 'ref name 'foo/bar/.' is invalid': - test_must_fail git check-ref-format 'foo/bar/.' +checking known breakage of 1013.16 'git read-tree -u -m --recurse-submodules: replace submodule with a directory': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && + $command replace_sub1_with_directory && + test_superproject_content origin/replace_sub1_with_directory && + test_submodule_content sub1 origin/replace_sub1_with_directory + ) -ok 18 - ref name 'foo/bar/.' is invalid +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +error: Untracked working tree file 'sub1/file1' would be overwritten by merge. +not ok 16 - git read-tree -u -m --recurse-submodules: replace submodule with a directory # TODO known breakage -expecting success of 1402.19 'ref name '.refs/foo' is invalid': - test_must_fail git check-ref-format '.refs/foo' +checking known breakage of 1013.17 'git read-tree -u -m --recurse-submodules: replace submodule containing a .git directory with a directory must absorb the git dir': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && + replace_gitfile_with_git_dir sub1 && + rm -rf .git/modules && + $command replace_sub1_with_directory && + test_superproject_content origin/replace_sub1_with_directory && + test_git_directory_exists sub1 + ) -ok 19 - ref name '.refs/foo' is invalid +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +error: Untracked working tree file 'sub1/file1' would be overwritten by merge. +not ok 17 - git read-tree -u -m --recurse-submodules: replace submodule containing a .git directory with a directory must absorb the git dir # TODO known breakage -expecting success of 1402.20 'ref name 'refs/heads/foo.' is invalid': - test_must_fail git check-ref-format 'refs/heads/foo.' +expecting success of 1013.18 'git read-tree -u -m --recurse-submodules: replace submodule with a file works ignores ignored files in submodule': + test_when_finished "rm submodule_update/.git/modules/sub1/info/exclude" && + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_file origin/replace_sub1_with_file && + echo ignored >.git/modules/sub1/info/exclude && + : >sub1/ignored && + $command replace_sub1_with_file && + test_superproject_content origin/replace_sub1_with_file && + test -f sub1 + ) -ok 20 - ref name 'refs/heads/foo.' is invalid +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +ok 18 - git read-tree -u -m --recurse-submodules: replace submodule with a file works ignores ignored files in submodule -expecting success of 1402.21 'ref name 'heads/foo..bar' is invalid': - test_must_fail git check-ref-format 'heads/foo..bar' +expecting success of 1013.19 'git -c submodule.recurse=true read-tree -u -m: modified submodule updates submodule work tree': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t modify_sub1 origin/modify_sub1 && + git -c submodule.recurse=true $cmd_args modify_sub1 && + test_superproject_content origin/modify_sub1 && + test_submodule_content sub1 origin/modify_sub1 + ) -ok 21 - ref name 'heads/foo..bar' is invalid +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. +ok 19 - git -c submodule.recurse=true read-tree -u -m: modified submodule updates submodule work tree -expecting success of 1402.22 'ref name 'heads/foo?bar' is invalid': - test_must_fail git check-ref-format 'heads/foo?bar' +expecting success of 1013.20 'git read-tree -u -m --recurse-submodules: modified submodule updates submodule recursively': + prolog && + reset_work_tree_to_interested add_nested_sub && + ( + cd submodule_update && + git branch -t modify_sub1_recursively origin/modify_sub1_recursively && + $command modify_sub1_recursively && + test_superproject_content origin/modify_sub1_recursively && + test_submodule_content sub1 origin/modify_sub1_recursively && + test_submodule_content -C sub1 sub2 origin/modify_sub1_recursively + ) -ok 22 - ref name 'heads/foo?bar' is invalid +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_nested_sub' +Branch 'add_nested_sub' set up to track remote branch 'add_nested_sub' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '8b3b3353ac8999eb3d8af8e947e0ef2a08a60008' +Submodule 'sub2' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub2) registered for path 'sub1/sub2' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1/sub2'... +done. +Submodule path 'sub1/sub2': checked out '27c5769ac0ebf2d924e34d3aa503345baaaa98b2' +Branch 'modify_sub1_recursively' set up to track remote branch 'modify_sub1_recursively' from 'origin'. +ok 20 - git read-tree -u -m --recurse-submodules: modified submodule updates submodule recursively -expecting success of 1402.23 'ref name 'foo./bar' is valid': - git check-ref-format 'foo./bar' +expecting success of 1013.21 'git read-tree -u --reset --recurse-submodules: added submodule is checked out': + prolog && + reset_work_tree_to_interested no_submodule && + ( + cd submodule_update && + git branch -t add_sub1 origin/add_sub1 && + $command add_sub1 && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) -ok 23 - ref name 'foo./bar' is valid +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +ok 21 - git read-tree -u --reset --recurse-submodules: added submodule is checked out -expecting success of 1402.24 'ref name 'heads/foo.lock' is invalid': - test_must_fail git check-ref-format 'heads/foo.lock' +expecting success of 1013.22 'git read-tree -u --reset --recurse-submodules: added submodule is checked out in empty dir': + prolog && + reset_work_tree_to_interested no_submodule && + ( + cd submodule_update && + mkdir sub1 && + git branch -t add_sub1 origin/add_sub1 && + $command add_sub1 && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) -ok 24 - ref name 'heads/foo.lock' is invalid +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +ok 22 - git read-tree -u --reset --recurse-submodules: added submodule is checked out in empty dir -expecting success of 1402.25 'ref name 'heads///foo.lock' is invalid': - test_must_fail git check-ref-format 'heads///foo.lock' +expecting success of 1013.23 'git read-tree -u --reset --recurse-submodules: replace tracked file with submodule checks out submodule': + prolog && + reset_work_tree_to_interested replace_sub1_with_file && + ( + cd submodule_update && + git branch -t replace_file_with_sub1 origin/replace_file_with_sub1 && + $command replace_file_with_sub1 && + test_superproject_content origin/replace_file_with_sub1 && + test_submodule_content sub1 origin/replace_file_with_sub1 + ) -ok 25 - ref name 'heads///foo.lock' is invalid +Cloning into 'submodule_update'... +done. +Switched to a new branch 'replace_sub1_with_file' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +fatal: Needed a single revision +Branch 'replace_file_with_sub1' set up to track remote branch 'replace_file_with_sub1' from 'origin'. +ok 23 - git read-tree -u --reset --recurse-submodules: replace tracked file with submodule checks out submodule -expecting success of 1402.26 'ref name 'foo.lock/bar' is invalid': - test_must_fail git check-ref-format 'foo.lock/bar' +expecting success of 1013.24 'git read-tree -u --reset --recurse-submodules: replace directory with submodule': + prolog && + reset_work_tree_to_interested replace_sub1_with_directory && + ( + cd submodule_update && + git branch -t replace_directory_with_sub1 origin/replace_directory_with_sub1 && + $command replace_directory_with_sub1 && + test_superproject_content origin/replace_directory_with_sub1 && + test_submodule_content sub1 origin/replace_directory_with_sub1 + ) -ok 26 - ref name 'foo.lock/bar' is invalid +Cloning into 'submodule_update'... +done. +Switched to a new branch 'replace_sub1_with_directory' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +fatal: Needed a single revision +Branch 'replace_directory_with_sub1' set up to track remote branch 'replace_directory_with_sub1' from 'origin'. +ok 24 - git read-tree -u --reset --recurse-submodules: replace directory with submodule -expecting success of 1402.27 'ref name 'foo.lock///bar' is invalid': - test_must_fail git check-ref-format 'foo.lock///bar' +expecting success of 1013.25 'git read-tree -u --reset --recurse-submodules: nested submodules are checked out': + prolog && + reset_work_tree_to_interested no_submodule && + ( + cd submodule_update && + git branch -t modify_sub1_recursively origin/modify_sub1_recursively && + $command modify_sub1_recursively && + test_superproject_content origin/modify_sub1_recursively && + test_submodule_content sub1 origin/modify_sub1_recursively && + test_submodule_content -C sub1 sub2 origin/modify_sub1_recursively + ) -ok 27 - ref name 'foo.lock///bar' is invalid +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'modify_sub1_recursively' set up to track remote branch 'modify_sub1_recursively' from 'origin'. +ok 25 - git read-tree -u --reset --recurse-submodules: nested submodules are checked out -expecting success of 1402.28 'ref name 'heads/foo@bar' is valid': - git check-ref-format 'heads/foo@bar' +expecting success of 1013.26 'git read-tree -u --reset --recurse-submodules: removed submodule removes submodules working tree': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t remove_sub1 origin/remove_sub1 && + $command remove_sub1 && + test_superproject_content origin/remove_sub1 && + ! test -e sub1 && + test_must_fail git config -f .git/modules/sub1/config core.worktree + ) -ok 28 - ref name 'heads/foo@bar' is valid +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. +ok 26 - git read-tree -u --reset --recurse-submodules: removed submodule removes submodules working tree -expecting success of 1402.29 'ref name 'heads/v@{ation' is invalid': - test_must_fail git check-ref-format 'heads/v@{ation' +expecting success of 1013.27 'git read-tree -u --reset --recurse-submodules: removed submodule absorbs submodules .git directory': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t remove_sub1 origin/remove_sub1 && + replace_gitfile_with_git_dir sub1 && + rm -rf .git/modules && + $command remove_sub1 && + test_superproject_content origin/remove_sub1 && + ! test -e sub1 && + test_git_directory_exists sub1 + ) -ok 29 - ref name 'heads/v@{ation' is invalid +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. +Migrating git directory of 'sub1' from +'/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1/.git' to +'/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/.git/modules/sub1' +ok 27 - git read-tree -u --reset --recurse-submodules: removed submodule absorbs submodules .git directory -expecting success of 1402.30 'ref name 'heads/foo\bar' is invalid': - test_must_fail git check-ref-format 'heads/foo\bar' +expecting success of 1013.28 'git read-tree -u --reset --recurse-submodules: replace submodule with a file': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_file origin/replace_sub1_with_file && + $command replace_sub1_with_file && + test_superproject_content origin/replace_sub1_with_file && + test -f sub1 + ) -ok 30 - ref name 'heads/foo\bar' is invalid +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +ok 28 - git read-tree -u --reset --recurse-submodules: replace submodule with a file -expecting success of 1402.31 'ref name 'heads/foo ' is invalid': - test_must_fail git check-ref-format 'heads/foo ' +checking known breakage of 1013.29 'git read-tree -u --reset --recurse-submodules: replace submodule with a file must fail with untracked files': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_file origin/replace_sub1_with_file && + : >sub1/untrackedfile && + test_must_fail $command replace_sub1_with_file && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 && + test -f sub1/untracked_file + ) -ok 31 - ref name 'heads/foo ' is invalid +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +test_must_fail: command succeeded: git read-tree -u --reset --recurse-submodules replace_sub1_with_file +not ok 29 - git read-tree -u --reset --recurse-submodules: replace submodule with a file must fail with untracked files # TODO known breakage -expecting success of 1402.32 'ref name 'heads/foo' is invalid': - test_must_fail git check-ref-format 'heads/foo' +expecting success of 1013.30 'git read-tree -u --reset --recurse-submodules: worktrees of nested submodules are removed': + prolog && + reset_work_tree_to_interested add_nested_sub && + ( + cd submodule_update && + git branch -t no_submodule origin/no_submodule && + $command no_submodule && + test_superproject_content origin/no_submodule && + ! test_path_is_dir sub1 && + test_must_fail git config -f .git/modules/sub1/config core.worktree && + test_must_fail git config -f .git/modules/sub1/modules/sub2/config core.worktree + ) -ok 32 - ref name 'heads/foo' is invalid +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_nested_sub' +Branch 'add_nested_sub' set up to track remote branch 'add_nested_sub' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '8b3b3353ac8999eb3d8af8e947e0ef2a08a60008' +Submodule 'sub2' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub2) registered for path 'sub1/sub2' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1/sub2'... +done. +Submodule path 'sub1/sub2': checked out '27c5769ac0ebf2d924e34d3aa503345baaaa98b2' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Directory sub1 doesn't exist. +ok 30 - git read-tree -u --reset --recurse-submodules: worktrees of nested submodules are removed -expecting success of 1402.33 'ref name 'heads/fuß' is valid': - git check-ref-format 'heads/fuß' +expecting success of 1013.31 'git read-tree -u --reset --recurse-submodules: modified submodule updates submodule work tree': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t modify_sub1 origin/modify_sub1 && + $command modify_sub1 && + test_superproject_content origin/modify_sub1 && + test_submodule_content sub1 origin/modify_sub1 + ) -ok 33 - ref name 'heads/fuß' is valid +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. +ok 31 - git read-tree -u --reset --recurse-submodules: modified submodule updates submodule work tree -expecting success of 1402.34 'ref name 'heads/*foo/bar' is valid with options --refspec-pattern': - git check-ref-format --refspec-pattern 'heads/*foo/bar' +expecting success of 1013.32 'git read-tree -u --reset --recurse-submodules: updating to a missing submodule commit fails': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t invalid_sub1 origin/invalid_sub1 && + test_must_fail $command invalid_sub1 2>err && + test_i18ngrep sub1 err && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) -ok 34 - ref name 'heads/*foo/bar' is valid with options --refspec-pattern +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. +checking prerequisite: C_LOCALE_OUTPUT -expecting success of 1402.35 'ref name 'heads/foo*/bar' is valid with options --refspec-pattern': - git check-ref-format --refspec-pattern 'heads/foo*/bar' - -ok 35 - ref name 'heads/foo*/bar' is valid with options --refspec-pattern +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false -expecting success of 1402.36 'ref name 'heads/f*o/bar' is valid with options --refspec-pattern': - git check-ref-format --refspec-pattern 'heads/f*o/bar' - -ok 36 - ref name 'heads/f*o/bar' is valid with options --refspec-pattern +) +prerequisite C_LOCALE_OUTPUT ok +error: Submodule 'sub1' could not be updated. +error: Submodule 'sub1' cannot checkout new HEAD. +ok 32 - git read-tree -u --reset --recurse-submodules: updating to a missing submodule commit fails -expecting success of 1402.37 'ref name 'heads/f*o*/bar' is invalid with options --refspec-pattern': - test_must_fail git check-ref-format --refspec-pattern 'heads/f*o*/bar' +expecting success of 1013.33 'git read-tree -u --reset --recurse-submodules: submodule branch is not changed, detach HEAD instead': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git -C sub1 checkout -b keep_branch && + git -C sub1 rev-parse HEAD >expect && + git branch -t modify_sub1 origin/modify_sub1 && + $command modify_sub1 && + test_superproject_content origin/modify_sub1 && + test_submodule_content sub1 origin/modify_sub1 && + git -C sub1 rev-parse keep_branch >actual && + test_cmp expect actual && + test_must_fail git -C sub1 symbolic-ref HEAD + ) -ok 37 - ref name 'heads/f*o*/bar' is invalid with options --refspec-pattern +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Switched to a new branch 'keep_branch' +Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. +fatal: ref HEAD is not a symbolic ref +ok 33 - git read-tree -u --reset --recurse-submodules: submodule branch is not changed, detach HEAD instead -expecting success of 1402.38 'ref name 'heads/foo*/bar*' is invalid with options --refspec-pattern': - test_must_fail git check-ref-format --refspec-pattern 'heads/foo*/bar*' +expecting success of 1013.34 'git read-tree -u --reset --recurse-submodules: added submodule does remove untracked unignored file with same name when forced': + prolog && + reset_work_tree_to_interested no_submodule && + ( + cd submodule_update && + git branch -t add_sub1 origin/add_sub1 && + >sub1 && + $command add_sub1 && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) -ok 38 - ref name 'heads/foo*/bar*' is invalid with options --refspec-pattern +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +ok 34 - git read-tree -u --reset --recurse-submodules: added submodule does remove untracked unignored file with same name when forced -expecting success of 1402.39 'ref name 'foo' is invalid': - test_must_fail git check-ref-format 'foo' +expecting success of 1013.35 'git read-tree -u --reset --recurse-submodules: replace submodule with a directory': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && + $command replace_sub1_with_directory && + test_superproject_content origin/replace_sub1_with_directory + ) -ok 39 - ref name 'foo' is invalid +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +ok 35 - git read-tree -u --reset --recurse-submodules: replace submodule with a directory -expecting success of 1402.40 'ref name 'foo' is valid with options --allow-onelevel': - git check-ref-format --allow-onelevel 'foo' +expecting success of 1013.36 'git read-tree -u --reset --recurse-submodules: replace submodule containing a .git directory with a directory must fail': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && + replace_gitfile_with_git_dir sub1 && + rm -rf .git/modules/sub1 && + $command replace_sub1_with_directory && + test_superproject_content origin/replace_sub1_with_directory && + test_git_directory_exists sub1 + ) -ok 40 - ref name 'foo' is valid with options --allow-onelevel +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +Migrating git directory of 'sub1' from +'/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1/.git' to +'/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/.git/modules/sub1' +ok 36 - git read-tree -u --reset --recurse-submodules: replace submodule containing a .git directory with a directory must fail -expecting success of 1402.41 'ref name 'foo' is invalid with options --refspec-pattern': - test_must_fail git check-ref-format --refspec-pattern 'foo' +expecting success of 1013.37 'git read-tree -u --reset --recurse-submodules: replace submodule with a file ignoring ignored files': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_file origin/replace_sub1_with_file && + : >sub1/expect && + $command replace_sub1_with_file && + test_superproject_content origin/replace_sub1_with_file + ) -ok 41 - ref name 'foo' is invalid with options --refspec-pattern +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +ok 37 - git read-tree -u --reset --recurse-submodules: replace submodule with a file ignoring ignored files -expecting success of 1402.42 'ref name 'foo' is valid with options --refspec-pattern --allow-onelevel': - git check-ref-format --refspec-pattern --allow-onelevel 'foo' +expecting success of 1013.38 'git read-tree -u --reset --recurse-submodules: modified submodule does update submodule work tree from invalid commit': + prolog && + reset_work_tree_to_interested invalid_sub1 && + ( + cd submodule_update && + git branch -t valid_sub1 origin/valid_sub1 && + $command valid_sub1 && + test_superproject_content origin/valid_sub1 && + test_submodule_content sub1 origin/valid_sub1 + ) -ok 42 - ref name 'foo' is valid with options --refspec-pattern --allow-onelevel +Cloning into 'submodule_update'... +done. +Switched to a new branch 'invalid_sub1' +Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. +fatal: Needed a single revision +Branch 'valid_sub1' set up to track remote branch 'valid_sub1' from 'origin'. +ok 38 - git read-tree -u --reset --recurse-submodules: modified submodule does update submodule work tree from invalid commit -expecting success of 1402.43 'ref name 'foo' is invalid with options --normalize': - test_must_fail git check-ref-format --normalize 'foo' +expecting success of 1013.39 'git read-tree -u --reset --recurse-submodules: updating submodules fixes .git links': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t modify_sub1 origin/modify_sub1 && + echo "gitdir: bogus/path" >sub1/.git && + $command modify_sub1 && + test_superproject_content origin/modify_sub1 && + test_submodule_content sub1 origin/modify_sub1 + ) -ok 43 - ref name 'foo' is invalid with options --normalize +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. +ok 39 - git read-tree -u --reset --recurse-submodules: updating submodules fixes .git links -expecting success of 1402.44 'ref name 'foo' is valid with options --allow-onelevel --normalize': - git check-ref-format --allow-onelevel --normalize 'foo' +expecting success of 1013.40 'git read-tree -u --reset --recurse-submodules: changed submodule worktree is reset': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + rm sub1/file1 && + : >sub1/new_file && + git -C sub1 add new_file && + $command HEAD && + test_path_is_file sub1/file1 && + test_path_is_missing sub1/new_file + ) -foo -ok 44 - ref name 'foo' is valid with options --allow-onelevel --normalize +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +ok 40 - git read-tree -u --reset --recurse-submodules: changed submodule worktree is reset -expecting success of 1402.45 'ref name 'foo/bar' is valid': - git check-ref-format 'foo/bar' +expecting success of 1013.41 'git_test_func: added submodule creates empty directory': + prolog && + reset_work_tree_to no_submodule && + ( + cd submodule_update && + git branch -t add_sub1 origin/add_sub1 && + $command add_sub1 && + test_superproject_content origin/add_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/add_sub1 + ) -ok 45 - ref name 'foo/bar' is valid +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +ok 41 - git_test_func: added submodule creates empty directory -expecting success of 1402.46 'ref name 'foo/bar' is valid with options --allow-onelevel': - git check-ref-format --allow-onelevel 'foo/bar' +expecting success of 1013.42 'git_test_func: added submodule leaves existing empty directory alone': + prolog && + reset_work_tree_to no_submodule && + ( + cd submodule_update && + mkdir sub1 && + git branch -t add_sub1 origin/add_sub1 && + $command add_sub1 && + test_superproject_content origin/add_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/add_sub1 + ) -ok 46 - ref name 'foo/bar' is valid with options --allow-onelevel +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +ok 42 - git_test_func: added submodule leaves existing empty directory alone -expecting success of 1402.47 'ref name 'foo/bar' is valid with options --refspec-pattern': - git check-ref-format --refspec-pattern 'foo/bar' +expecting success of 1013.43 'git_test_func: replace tracked file with submodule creates empty directory': + prolog && + reset_work_tree_to replace_sub1_with_file && + ( + cd submodule_update && + git branch -t replace_file_with_sub1 origin/replace_file_with_sub1 && + $command replace_file_with_sub1 && + test_superproject_content origin/replace_file_with_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/replace_file_with_sub1 + ) -ok 47 - ref name 'foo/bar' is valid with options --refspec-pattern +Cloning into 'submodule_update'... +done. +Switched to a new branch 'replace_sub1_with_file' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +fatal: Needed a single revision +Branch 'replace_file_with_sub1' set up to track remote branch 'replace_file_with_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +ok 43 - git_test_func: replace tracked file with submodule creates empty directory -expecting success of 1402.48 'ref name 'foo/bar' is valid with options --refspec-pattern --allow-onelevel': - git check-ref-format --refspec-pattern --allow-onelevel 'foo/bar' +expecting success of 1013.44 'git_test_func: replace directory with submodule': + prolog && + reset_work_tree_to replace_sub1_with_directory && + ( + cd submodule_update && + git branch -t replace_directory_with_sub1 origin/replace_directory_with_sub1 && + $command replace_directory_with_sub1 && + test_superproject_content origin/replace_directory_with_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/replace_directory_with_sub1 + ) -ok 48 - ref name 'foo/bar' is valid with options --refspec-pattern --allow-onelevel +Cloning into 'submodule_update'... +done. +Switched to a new branch 'replace_sub1_with_directory' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +fatal: Needed a single revision +Branch 'replace_directory_with_sub1' set up to track remote branch 'replace_directory_with_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +ok 44 - git_test_func: replace directory with submodule -expecting success of 1402.49 'ref name 'foo/bar' is valid with options --normalize': - git check-ref-format --normalize 'foo/bar' +expecting success of 1013.45 'git_test_func: removed submodule leaves submodule directory and its contents in place': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t remove_sub1 origin/remove_sub1 && + $command remove_sub1 && + test_superproject_content origin/remove_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) -foo/bar -ok 49 - ref name 'foo/bar' is valid with options --normalize +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. +warning: unable to rmdir 'sub1': Directory not empty +ok 45 - git_test_func: removed submodule leaves submodule directory and its contents in place -expecting success of 1402.50 'ref name 'foo/*' is invalid': - test_must_fail git check-ref-format 'foo/*' +expecting success of 1013.46 'git_test_func: removed submodule leaves submodule containing a .git directory alone': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t remove_sub1 origin/remove_sub1 && + replace_gitfile_with_git_dir sub1 && + $command remove_sub1 && + test_superproject_content origin/remove_sub1 && + test_git_directory_is_unchanged sub1 && + test_submodule_content sub1 origin/add_sub1 + ) -ok 50 - ref name 'foo/*' is invalid +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. +warning: unable to rmdir 'sub1': Directory not empty +ok 46 - git_test_func: removed submodule leaves submodule containing a .git directory alone -expecting success of 1402.51 'ref name 'foo/*' is invalid with options --allow-onelevel': - test_must_fail git check-ref-format --allow-onelevel 'foo/*' +expecting success of 1013.47 'git_test_func: replace submodule with a directory must fail': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && + $command replace_sub1_with_directory test_must_fail && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) -ok 51 - ref name 'foo/*' is invalid with options --allow-onelevel +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +error: Untracked working tree file 'sub1/file1' would be overwritten by merge. +ok 47 - git_test_func: replace submodule with a directory must fail -expecting success of 1402.52 'ref name 'foo/*' is valid with options --refspec-pattern': - git check-ref-format --refspec-pattern 'foo/*' +expecting success of 1013.48 'git_test_func: replace submodule containing a .git directory with a directory must fail': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && + replace_gitfile_with_git_dir sub1 && + $command replace_sub1_with_directory test_must_fail && + test_superproject_content origin/add_sub1 && + test_git_directory_is_unchanged sub1 && + test_submodule_content sub1 origin/add_sub1 + ) -ok 52 - ref name 'foo/*' is valid with options --refspec-pattern +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +error: Untracked working tree file 'sub1/file1' would be overwritten by merge. +ok 48 - git_test_func: replace submodule containing a .git directory with a directory must fail -expecting success of 1402.53 'ref name 'foo/*' is valid with options --refspec-pattern --allow-onelevel': - git check-ref-format --refspec-pattern --allow-onelevel 'foo/*' +checking known breakage of 1013.49 'git_test_func: replace submodule with a file must fail': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_file origin/replace_sub1_with_file && + $command replace_sub1_with_file test_must_fail && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) -ok 53 - ref name 'foo/*' is valid with options --refspec-pattern --allow-onelevel +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +test_must_fail: command succeeded: git read-tree -u -m replace_sub1_with_file +not ok 49 - git_test_func: replace submodule with a file must fail # TODO known breakage -expecting success of 1402.54 'ref name '*/foo' is invalid': - test_must_fail git check-ref-format '*/foo' +checking known breakage of 1013.50 'git_test_func: replace submodule containing a .git directory with a file must fail': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_file origin/replace_sub1_with_file && + replace_gitfile_with_git_dir sub1 && + $command replace_sub1_with_file test_must_fail && + test_superproject_content origin/add_sub1 && + test_git_directory_is_unchanged sub1 && + test_submodule_content sub1 origin/add_sub1 + ) -ok 54 - ref name '*/foo' is invalid +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +test_must_fail: command succeeded: git read-tree -u -m replace_sub1_with_file +not ok 50 - git_test_func: replace submodule containing a .git directory with a file must fail # TODO known breakage -expecting success of 1402.55 'ref name '*/foo' is invalid with options --allow-onelevel': - test_must_fail git check-ref-format --allow-onelevel '*/foo' +expecting success of 1013.51 'git_test_func: modified submodule does not update submodule work tree': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t modify_sub1 origin/modify_sub1 && + $command modify_sub1 && + test_superproject_content origin/modify_sub1 && + test_submodule_content sub1 origin/add_sub1 && + git submodule update && + test_submodule_content sub1 origin/modify_sub1 + ) -ok 55 - ref name '*/foo' is invalid with options --allow-onelevel +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. +Submodule path 'sub1': checked out '03da4ea88bb165bd26ee0b2e5c657f2858b23f53' +ok 51 - git_test_func: modified submodule does not update submodule work tree -expecting success of 1402.56 'ref name '*/foo' is valid with options --refspec-pattern': - git check-ref-format --refspec-pattern '*/foo' +expecting success of 1013.52 'git_test_func: modified submodule does not update submodule work tree to invalid commit': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t invalid_sub1 origin/invalid_sub1 && + $command invalid_sub1 && + test_superproject_content origin/invalid_sub1 && + test_submodule_content sub1 origin/add_sub1 && + test_must_fail git submodule update && + test_submodule_content sub1 origin/add_sub1 + ) -ok 56 - ref name '*/foo' is valid with options --refspec-pattern +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. +fatal: git upload-pack: not our ref 0123456789012345678901234567890123456789 +fatal: remote error: upload-pack: not our ref 0123456789012345678901234567890123456789 +Fetched in submodule path 'sub1', but it did not contain 0123456789012345678901234567890123456789. Direct fetching of that commit failed. +ok 52 - git_test_func: modified submodule does not update submodule work tree to invalid commit -expecting success of 1402.57 'ref name '*/foo' is valid with options --refspec-pattern --allow-onelevel': - git check-ref-format --refspec-pattern --allow-onelevel '*/foo' +expecting success of 1013.53 'git_test_func: modified submodule does not update submodule work tree from invalid commit': + prolog && + reset_work_tree_to invalid_sub1 && + ( + cd submodule_update && + git branch -t valid_sub1 origin/valid_sub1 && + $command valid_sub1 && + test_superproject_content origin/valid_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/valid_sub1 + ) -ok 57 - ref name '*/foo' is valid with options --refspec-pattern --allow-onelevel +Cloning into 'submodule_update'... +done. +Switched to a new branch 'invalid_sub1' +Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. +fatal: Needed a single revision +Branch 'valid_sub1' set up to track remote branch 'valid_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +ok 53 - git_test_func: modified submodule does not update submodule work tree from invalid commit -expecting success of 1402.58 'ref name '*/foo' is invalid with options --normalize': - test_must_fail git check-ref-format --normalize '*/foo' +expecting success of 1013.54 'git_test_func: added submodule doesn't remove untracked unignored file with same name': + prolog && + reset_work_tree_to no_submodule && + ( + cd submodule_update && + git branch -t add_sub1 origin/add_sub1 && + >sub1 && + $command add_sub1 test_must_fail && + test_superproject_content origin/no_submodule && + test_must_be_empty sub1 + ) -ok 58 - ref name '*/foo' is invalid with options --normalize +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +error: Untracked working tree file 'sub1' would be overwritten by merge. +ok 54 - git_test_func: added submodule doesn't remove untracked unignored file with same name -expecting success of 1402.59 'ref name '*/foo' is valid with options --refspec-pattern --normalize': - git check-ref-format --refspec-pattern --normalize '*/foo' +expecting success of 1013.55 'git_test_func: added submodule creates empty directory': + prolog && + reset_work_tree_to no_submodule && + ( + cd submodule_update && + git branch -t add_sub1 origin/add_sub1 && + $command add_sub1 && + test_superproject_content origin/add_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/add_sub1 + ) -*/foo -ok 59 - ref name '*/foo' is valid with options --refspec-pattern --normalize +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +ok 55 - git_test_func: added submodule creates empty directory -expecting success of 1402.60 'ref name 'foo/*/bar' is invalid': - test_must_fail git check-ref-format 'foo/*/bar' +expecting success of 1013.56 'git_test_func: added submodule leaves existing empty directory alone': + prolog && + reset_work_tree_to no_submodule && + ( + cd submodule_update && + mkdir sub1 && + git branch -t add_sub1 origin/add_sub1 && + $command add_sub1 && + test_superproject_content origin/add_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/add_sub1 + ) -ok 60 - ref name 'foo/*/bar' is invalid +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +ok 56 - git_test_func: added submodule leaves existing empty directory alone -expecting success of 1402.61 'ref name 'foo/*/bar' is invalid with options --allow-onelevel': - test_must_fail git check-ref-format --allow-onelevel 'foo/*/bar' +expecting success of 1013.57 'git_test_func: replace tracked file with submodule creates empty directory': + prolog && + reset_work_tree_to replace_sub1_with_file && + ( + cd submodule_update && + git branch -t replace_file_with_sub1 origin/replace_file_with_sub1 && + $command replace_file_with_sub1 && + test_superproject_content origin/replace_file_with_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/replace_file_with_sub1 + ) -ok 61 - ref name 'foo/*/bar' is invalid with options --allow-onelevel +Cloning into 'submodule_update'... +done. +Switched to a new branch 'replace_sub1_with_file' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +fatal: Needed a single revision +Branch 'replace_file_with_sub1' set up to track remote branch 'replace_file_with_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +ok 57 - git_test_func: replace tracked file with submodule creates empty directory -expecting success of 1402.62 'ref name 'foo/*/bar' is valid with options --refspec-pattern': - git check-ref-format --refspec-pattern 'foo/*/bar' +expecting success of 1013.58 'git_test_func: replace directory with submodule': + prolog && + reset_work_tree_to replace_sub1_with_directory && + ( + cd submodule_update && + git branch -t replace_directory_with_sub1 origin/replace_directory_with_sub1 && + $command replace_directory_with_sub1 && + test_superproject_content origin/replace_directory_with_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/replace_directory_with_sub1 + ) -ok 62 - ref name 'foo/*/bar' is valid with options --refspec-pattern +Cloning into 'submodule_update'... +done. +Switched to a new branch 'replace_sub1_with_directory' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +fatal: Needed a single revision +Branch 'replace_directory_with_sub1' set up to track remote branch 'replace_directory_with_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +ok 58 - git_test_func: replace directory with submodule -expecting success of 1402.63 'ref name 'foo/*/bar' is valid with options --refspec-pattern --allow-onelevel': - git check-ref-format --refspec-pattern --allow-onelevel 'foo/*/bar' +expecting success of 1013.59 'git_test_func: removed submodule leaves submodule directory and its contents in place': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t remove_sub1 origin/remove_sub1 && + $command remove_sub1 && + test_superproject_content origin/remove_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) -ok 63 - ref name 'foo/*/bar' is valid with options --refspec-pattern --allow-onelevel +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. +warning: unable to rmdir 'sub1': Directory not empty +ok 59 - git_test_func: removed submodule leaves submodule directory and its contents in place -expecting success of 1402.64 'ref name '*' is invalid': - test_must_fail git check-ref-format '*' +expecting success of 1013.60 'git_test_func: removed submodule leaves submodule containing a .git directory alone': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t remove_sub1 origin/remove_sub1 && + replace_gitfile_with_git_dir sub1 && + $command remove_sub1 && + test_superproject_content origin/remove_sub1 && + test_git_directory_is_unchanged sub1 && + test_submodule_content sub1 origin/add_sub1 + ) -ok 64 - ref name '*' is invalid +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. +warning: unable to rmdir 'sub1': Directory not empty +ok 60 - git_test_func: removed submodule leaves submodule containing a .git directory alone -expecting success of 1402.65 'ref name '*' is invalid with options --allow-onelevel': - test_must_fail git check-ref-format --allow-onelevel '*' +checking known breakage of 1013.61 'git_test_func: replace submodule with a directory must fail': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && + $command replace_sub1_with_directory test_must_fail && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) -ok 65 - ref name '*' is invalid with options --allow-onelevel +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +warning: unable to rmdir 'sub1': Directory not empty +test_must_fail: command succeeded: git read-tree -u --reset replace_sub1_with_directory +not ok 61 - git_test_func: replace submodule with a directory must fail # TODO known breakage -expecting success of 1402.66 'ref name '*' is invalid with options --refspec-pattern': - test_must_fail git check-ref-format --refspec-pattern '*' +checking known breakage of 1013.62 'git_test_func: replace submodule containing a .git directory with a directory must fail': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && + replace_gitfile_with_git_dir sub1 && + $command replace_sub1_with_directory test_must_fail && + test_superproject_content origin/add_sub1 && + test_git_directory_is_unchanged sub1 && + test_submodule_content sub1 origin/add_sub1 + ) -ok 66 - ref name '*' is invalid with options --refspec-pattern +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +warning: unable to rmdir 'sub1': Directory not empty +test_must_fail: command succeeded: git read-tree -u --reset replace_sub1_with_directory +not ok 62 - git_test_func: replace submodule containing a .git directory with a directory must fail # TODO known breakage -expecting success of 1402.67 'ref name '*' is valid with options --refspec-pattern --allow-onelevel': - git check-ref-format --refspec-pattern --allow-onelevel '*' +checking known breakage of 1013.63 'git_test_func: replace submodule with a file must fail': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_file origin/replace_sub1_with_file && + $command replace_sub1_with_file test_must_fail && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) -ok 67 - ref name '*' is valid with options --refspec-pattern --allow-onelevel +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +test_must_fail: command succeeded: git read-tree -u --reset replace_sub1_with_file +not ok 63 - git_test_func: replace submodule with a file must fail # TODO known breakage -expecting success of 1402.68 'ref name 'foo/*/*' is invalid with options --refspec-pattern': - test_must_fail git check-ref-format --refspec-pattern 'foo/*/*' +checking known breakage of 1013.64 'git_test_func: replace submodule containing a .git directory with a file must fail': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_file origin/replace_sub1_with_file && + replace_gitfile_with_git_dir sub1 && + $command replace_sub1_with_file test_must_fail && + test_superproject_content origin/add_sub1 && + test_git_directory_is_unchanged sub1 && + test_submodule_content sub1 origin/add_sub1 + ) -ok 68 - ref name 'foo/*/*' is invalid with options --refspec-pattern +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +test_must_fail: command succeeded: git read-tree -u --reset replace_sub1_with_file +not ok 64 - git_test_func: replace submodule containing a .git directory with a file must fail # TODO known breakage -expecting success of 1402.69 'ref name 'foo/*/*' is invalid with options --refspec-pattern --allow-onelevel': - test_must_fail git check-ref-format --refspec-pattern --allow-onelevel 'foo/*/*' +expecting success of 1013.65 'git_test_func: modified submodule does not update submodule work tree': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t modify_sub1 origin/modify_sub1 && + $command modify_sub1 && + test_superproject_content origin/modify_sub1 && + test_submodule_content sub1 origin/add_sub1 && + git submodule update && + test_submodule_content sub1 origin/modify_sub1 + ) -ok 69 - ref name 'foo/*/*' is invalid with options --refspec-pattern --allow-onelevel +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. +Submodule path 'sub1': checked out '03da4ea88bb165bd26ee0b2e5c657f2858b23f53' +ok 65 - git_test_func: modified submodule does not update submodule work tree -expecting success of 1402.70 'ref name '*/foo/*' is invalid with options --refspec-pattern': - test_must_fail git check-ref-format --refspec-pattern '*/foo/*' +expecting success of 1013.66 'git_test_func: modified submodule does not update submodule work tree to invalid commit': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t invalid_sub1 origin/invalid_sub1 && + $command invalid_sub1 && + test_superproject_content origin/invalid_sub1 && + test_submodule_content sub1 origin/add_sub1 && + test_must_fail git submodule update && + test_submodule_content sub1 origin/add_sub1 + ) -ok 70 - ref name '*/foo/*' is invalid with options --refspec-pattern +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. +fatal: git upload-pack: not our ref 0123456789012345678901234567890123456789 +fatal: remote error: upload-pack: not our ref 0123456789012345678901234567890123456789 +Fetched in submodule path 'sub1', but it did not contain 0123456789012345678901234567890123456789. Direct fetching of that commit failed. +ok 66 - git_test_func: modified submodule does not update submodule work tree to invalid commit -expecting success of 1402.71 'ref name '*/foo/*' is invalid with options --refspec-pattern --allow-onelevel': - test_must_fail git check-ref-format --refspec-pattern --allow-onelevel '*/foo/*' +expecting success of 1013.67 'git_test_func: modified submodule does not update submodule work tree from invalid commit': + prolog && + reset_work_tree_to invalid_sub1 && + ( + cd submodule_update && + git branch -t valid_sub1 origin/valid_sub1 && + $command valid_sub1 && + test_superproject_content origin/valid_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/valid_sub1 + ) -ok 71 - ref name '*/foo/*' is invalid with options --refspec-pattern --allow-onelevel +Cloning into 'submodule_update'... +done. +Switched to a new branch 'invalid_sub1' +Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. +fatal: Needed a single revision +Branch 'valid_sub1' set up to track remote branch 'valid_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +ok 67 - git_test_func: modified submodule does not update submodule work tree from invalid commit -expecting success of 1402.72 'ref name '*/*/foo' is invalid with options --refspec-pattern': - test_must_fail git check-ref-format --refspec-pattern '*/*/foo' +expecting success of 1013.68 'git_test_func: added submodule does remove untracked unignored file with same name when forced': + prolog && + reset_work_tree_to no_submodule && + ( + cd submodule_update && + git branch -t add_sub1 origin/add_sub1 && + >sub1 && + $command add_sub1 && + test_superproject_content origin/add_sub1 && + test_dir_is_empty sub1 + ) -ok 72 - ref name '*/*/foo' is invalid with options --refspec-pattern +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +ok 68 - git_test_func: added submodule does remove untracked unignored file with same name when forced -expecting success of 1402.73 'ref name '*/*/foo' is invalid with options --refspec-pattern --allow-onelevel': - test_must_fail git check-ref-format --refspec-pattern --allow-onelevel '*/*/foo' - -ok 73 - ref name '*/*/foo' is invalid with options --refspec-pattern --allow-onelevel +# still have 11 known breakage(s) +# passed all remaining 57 test(s) +1..68 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t1502-rev-parse-parseopt.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1502-rev-parse-parseopt/.git/ +expecting success of 1502.1 'setup optionspec': + sed -e "s/^|//" >optionspec <<\EOF +|some-command [options] ... +| +|some-command does foo and bar! +|-- +|h,help show the help +| +|foo some nifty option --foo +|bar= some cool option --bar with an argument +|b,baz a short and long option +| +| An option group Header +|C? option C with an optional argument +|d,data? short and long option with an optional argument +| +| Argument hints +|B=arg short option required argument +|bar2=arg long option required argument +|e,fuz=with-space short and long option required argument +|s?some short option optional argument +|long?data long option optional argument +|g,fluf?path short and long option optional argument +|longest=very-long-argument-hint a very long argument hint +|pair=key=value with an equals sign in the hint +|aswitch help te=t contains? fl*g characters!` +|bswitch=hint hint has trailing tab character +|cswitch switch has trailing tab character +|short-hint=a with a one symbol hint +| +|Extras +|extra1 line above used to cause a segfault but no longer does +EOF -expecting success of 1402.74 'ref name '/foo' is invalid': - test_must_fail git check-ref-format '/foo' - -ok 74 - ref name '/foo' is invalid +ok 1 - setup optionspec -expecting success of 1402.75 'ref name '/foo' is invalid with options --allow-onelevel': - test_must_fail git check-ref-format --allow-onelevel '/foo' - -ok 75 - ref name '/foo' is invalid with options --allow-onelevel +expecting success of 1502.2 'setup optionspec-no-switches': + sed -e "s/^|//" >optionspec_no_switches <<\EOF +|some-command [options] ... +| +|some-command does foo and bar! +|-- +EOF -expecting success of 1402.76 'ref name '/foo' is invalid with options --refspec-pattern': - test_must_fail git check-ref-format --refspec-pattern '/foo' - -ok 76 - ref name '/foo' is invalid with options --refspec-pattern +ok 2 - setup optionspec-no-switches -expecting success of 1402.77 'ref name '/foo' is invalid with options --refspec-pattern --allow-onelevel': - test_must_fail git check-ref-format --refspec-pattern --allow-onelevel '/foo' - -ok 77 - ref name '/foo' is invalid with options --refspec-pattern --allow-onelevel +expecting success of 1502.3 'setup optionspec-only-hidden-switches': + sed -e "s/^|//" >optionspec_only_hidden_switches <<\EOF +|some-command [options] ... +| +|some-command does foo and bar! +|-- +|hidden1* A hidden switch +EOF -expecting success of 1402.78 'ref name '/foo' is invalid with options --normalize': - test_must_fail git check-ref-format --normalize '/foo' - -ok 78 - ref name '/foo' is invalid with options --normalize +ok 3 - setup optionspec-only-hidden-switches -expecting success of 1402.79 'ref name '/foo' is valid with options --allow-onelevel --normalize': - git check-ref-format --allow-onelevel --normalize '/foo' - -foo -ok 79 - ref name '/foo' is valid with options --allow-onelevel --normalize +expecting success of 1502.4 'test --parseopt help output': + sed -e "s/^|//" >expect <<\END_EXPECT && +|cat <<\EOF +|usage: some-command [options] ... +| +| some-command does foo and bar! +| +| -h, --help show the help +| --foo some nifty option --foo +| --bar ... some cool option --bar with an argument +| -b, --baz a short and long option +| +|An option group Header +| -C[...] option C with an optional argument +| -d, --data[=...] short and long option with an optional argument +| +|Argument hints +| -B short option required argument +| --bar2 long option required argument +| -e, --fuz +| short and long option required argument +| -s[] short option optional argument +| --long[=] long option optional argument +| -g, --fluf[=] short and long option optional argument +| --longest +| a very long argument hint +| --pair with an equals sign in the hint +| --aswitch help te=t contains? fl*g characters!` +| --bswitch hint has trailing tab character +| --cswitch switch has trailing tab character +| --short-hint with a one symbol hint +| +|Extras +| --extra1 line above used to cause a segfault but no longer does +| +|EOF +END_EXPECT + test_expect_code 129 git rev-parse --parseopt -- -h > output < optionspec && + test_i18ncmp expect output -expecting success of 1402.80 'ref name '/foo' is invalid with options --refspec-pattern --normalize': - test_must_fail git check-ref-format --refspec-pattern --normalize '/foo' - -ok 80 - ref name '/foo' is invalid with options --refspec-pattern --normalize +checking prerequisite: C_LOCALE_OUTPUT -expecting success of 1402.81 'ref name '/foo' is valid with options --refspec-pattern --allow-onelevel --normalize': - git check-ref-format --refspec-pattern --allow-onelevel --normalize '/foo' - -foo -ok 81 - ref name '/foo' is valid with options --refspec-pattern --allow-onelevel --normalize +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false -expecting success of 1402.82 'check-ref-format --branch @{-1}': - T=$(git write-tree) && - sha1=$(echo A | git commit-tree $T) && - git update-ref refs/heads/master $sha1 && - git update-ref refs/remotes/origin/master $sha1 && - git checkout master && - git checkout origin/master && - git checkout master && - refname=$(git check-ref-format --branch @{-1}) && - test "$refname" = "$sha1" && - refname2=$(git check-ref-format --branch @{-2}) && - test "$refname2" = master -Already on 'master' -Note: switching to 'origin/master'. +) +prerequisite C_LOCALE_OUTPUT ok +ok 4 - test --parseopt help output -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. +expecting success of 1502.5 'test --parseopt help output no switches': + sed -e "s/^|//" >expect <<\END_EXPECT && +|cat <<\EOF +|usage: some-command [options] ... +| +| some-command does foo and bar! +| +|EOF +END_EXPECT + test_expect_code 129 git rev-parse --parseopt -- -h > output < optionspec_no_switches && + test_i18ncmp expect output -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: +ok 5 - test --parseopt help output no switches - git switch -c +expecting success of 1502.6 'test --parseopt help output hidden switches': + sed -e "s/^|//" >expect <<\END_EXPECT && +|cat <<\EOF +|usage: some-command [options] ... +| +| some-command does foo and bar! +| +|EOF +END_EXPECT + test_expect_code 129 git rev-parse --parseopt -- -h > output < optionspec_only_hidden_switches && + test_i18ncmp expect output -Or undo this operation with: +ok 6 - test --parseopt help output hidden switches - git switch - +expecting success of 1502.7 'test --parseopt help-all output hidden switches': + sed -e "s/^|//" >expect <<\END_EXPECT && +|cat <<\EOF +|usage: some-command [options] ... +| +| some-command does foo and bar! +| +| --hidden1 A hidden switch +| +|EOF +END_EXPECT + test_expect_code 129 git rev-parse --parseopt -- --help-all > output < optionspec_only_hidden_switches && + test_i18ncmp expect output -Turn off this advice by setting config variable advice.detachedHead to false +ok 7 - test --parseopt help-all output hidden switches -HEAD is now at 58052da A -Switched to branch 'master' -ok 82 - check-ref-format --branch @{-1} +expecting success of 1502.8 'test --parseopt invalid switch help output': + sed -e "s/^|//" >expect <<\END_EXPECT && +|error: unknown option `does-not-exist' +|usage: some-command [options] ... +| +| some-command does foo and bar! +| +| -h, --help show the help +| --foo some nifty option --foo +| --bar ... some cool option --bar with an argument +| -b, --baz a short and long option +| +|An option group Header +| -C[...] option C with an optional argument +| -d, --data[=...] short and long option with an optional argument +| +|Argument hints +| -B short option required argument +| --bar2 long option required argument +| -e, --fuz +| short and long option required argument +| -s[] short option optional argument +| --long[=] long option optional argument +| -g, --fluf[=] short and long option optional argument +| --longest +| a very long argument hint +| --pair with an equals sign in the hint +| --aswitch help te=t contains? fl*g characters!` +| --bswitch hint has trailing tab character +| --cswitch switch has trailing tab character +| --short-hint with a one symbol hint +| +|Extras +| --extra1 line above used to cause a segfault but no longer does +| +END_EXPECT + test_expect_code 129 git rev-parse --parseopt -- --does-not-exist 1>/dev/null 2>output < optionspec && + test_i18ncmp expect output -expecting success of 1402.83 'check-ref-format --branch -naster': - test_must_fail git check-ref-format --branch -naster >actual && - test_must_be_empty actual +ok 8 - test --parseopt invalid switch help output -fatal: '-naster' is not a valid branch name -ok 83 - check-ref-format --branch -naster +expecting success of 1502.9 'setup expect.1': + cat > expect < output && + test_cmp expect output -Already on 'master' -Note: switching to 'origin/master'. +ok 10 - test --parseopt -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. +expecting success of 1502.11 'test --parseopt with mixed options and arguments': + git rev-parse --parseopt -- --foo arg --bar=ham --baz --aswitch < optionspec > output && + test_cmp expect output -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: +ok 11 - test --parseopt with mixed options and arguments - git switch -c +expecting success of 1502.12 'setup expect.2': + cat > expect < output && + test_cmp expect output -Turn off this advice by setting config variable advice.detachedHead to false +ok 13 - test --parseopt with -- -HEAD is now at 58052da A -Switched to branch 'master' -ok 84 - check-ref-format --branch from subdir +expecting success of 1502.14 'test --parseopt --stop-at-non-option': + git rev-parse --parseopt --stop-at-non-option -- --foo arg --bar=ham < optionspec > output && + test_cmp expect output -expecting success of 1402.85 'check-ref-format --branch @{-1} from non-repo': - nongit test_must_fail git check-ref-format --branch @{-1} >actual && - test_must_be_empty actual +ok 14 - test --parseopt --stop-at-non-option -fatal: '@{-1}' is not a valid branch name -ok 85 - check-ref-format --branch @{-1} from non-repo +expecting success of 1502.15 'setup expect.3': + cat > expect <expect && - nongit git check-ref-format --branch master >actual && - test_cmp expect actual +ok 15 - setup expect.3 -ok 86 - check-ref-format --branch master from non-repo +expecting success of 1502.16 'test --parseopt --keep-dashdash': + git rev-parse --parseopt --keep-dashdash -- --foo -- arg --bar=ham < optionspec > output && + test_cmp expect output -expecting success of 1402.87 'ref name 'heads/foo' simplifies to 'heads/foo'': - refname=$(git check-ref-format --normalize 'heads/foo') && - test "$refname" = 'heads/foo' - -ok 87 - ref name 'heads/foo' simplifies to 'heads/foo' +ok 16 - test --parseopt --keep-dashdash -expecting success of 1402.88 'ref name 'refs///heads/foo' simplifies to 'refs/heads/foo'': - refname=$(git check-ref-format --normalize 'refs///heads/foo') && - test "$refname" = 'refs/heads/foo' - -ok 88 - ref name 'refs///heads/foo' simplifies to 'refs/heads/foo' +expecting success of 1502.17 'setup expect.4': + cat >expect <output && + test_cmp expect output -expecting success of 1402.91 'check-ref-format --normalize rejects 'foo'': - test_must_fail git check-ref-format --normalize 'foo' - -ok 91 - check-ref-format --normalize rejects 'foo' +ok 18 - test --parseopt --keep-dashdash --stop-at-non-option with -- -expecting success of 1402.92 'check-ref-format --normalize rejects '/foo'': - test_must_fail git check-ref-format --normalize '/foo' - -ok 92 - check-ref-format --normalize rejects '/foo' +expecting success of 1502.19 'setup expect.5': + cat > expect <output && + test_cmp expect output -expecting success of 1402.95 'check-ref-format --normalize rejects 'heads\foo'': - test_must_fail git check-ref-format --normalize 'heads\foo' - -ok 95 - check-ref-format --normalize rejects 'heads\foo' +ok 20 - test --parseopt --keep-dashdash --stop-at-non-option without -- -expecting success of 1402.96 'check-ref-format --normalize rejects 'heads/foo.lock'': - test_must_fail git check-ref-format --normalize 'heads/foo.lock' - -ok 96 - check-ref-format --normalize rejects 'heads/foo.lock' +expecting success of 1502.21 'setup expect.6': + cat > expect <output && + test_cmp expect output -expecting success of 1402.99 'check-ref-format --normalize rejects 'foo.lock///bar'': - test_must_fail git check-ref-format --normalize 'foo.lock///bar' - -ok 99 - check-ref-format --normalize rejects 'foo.lock///bar' +ok 22 - test --parseopt --stuck-long -# passed all 99 test(s) -1..99 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1403-show-ref.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1403-show-ref/.git/ -expecting success of 1403.1 'setup': - test_commit A && - git tag -f -a -m "annotated A" A && - git checkout -b side && - test_commit B && - git tag -f -a -m "annotated B" B && - git checkout master && - test_commit C && - git branch B A^0 +expecting success of 1502.23 'setup expect.7': + cat > expect < - 1 file changed, 1 insertion(+) - create mode 100644 A.t -Updated tag 'A' (was 0ddfaf1) -Switched to a new branch 'side' -[side d9df450] B - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 B.t -Updated tag 'B' (was d9df450) -Switched to branch 'master' -[master 5dee784] C - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 C.t -ok 1 - setup +ok 23 - setup expect.7 -expecting success of 1403.2 'show-ref': - echo $(git rev-parse refs/tags/A) refs/tags/A >expect && +expecting success of 1502.24 'test --parseopt --stuck-long and empty optional argument': + git rev-parse --parseopt --stuck-long -- --data= arg -C -b output && + test_cmp expect output - git show-ref A >actual && - test_cmp expect actual && +ok 24 - test --parseopt --stuck-long and empty optional argument - git show-ref tags/A >actual && - test_cmp expect actual && +expecting success of 1502.25 'setup expect.8': + cat > expect <actual && - test_cmp expect actual && +ok 25 - setup expect.8 - test_must_fail git show-ref D >actual && - test_must_be_empty actual +expecting success of 1502.26 'test --parseopt --stuck-long and long option with unset optional argument': + git rev-parse --parseopt --stuck-long -- --data arg -b output && + test_cmp expect output -ok 2 - show-ref +ok 26 - test --parseopt --stuck-long and long option with unset optional argument -expecting success of 1403.3 'show-ref -q': - git show-ref -q A >actual && - test_must_be_empty actual && +expecting success of 1502.27 'test --parseopt --stuck-long and short option with unset optional argument': + git rev-parse --parseopt --stuck-long -- -d arg -b output && + test_cmp expect output - git show-ref -q tags/A >actual && - test_must_be_empty actual && +ok 27 - test --parseopt --stuck-long and short option with unset optional argument - git show-ref -q refs/tags/A >actual && - test_must_be_empty actual && +# passed all 27 test(s) +1..27 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t1503-rev-parse-verify.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1503-rev-parse-verify/.git/ +expecting success of 1503.1 'set up basic repo with 1 file (hello) and 4 commits': + add_line_into_file "1: Hello World" hello && + HASH1=$(git rev-parse --verify HEAD) && + add_line_into_file "2: A new day for git" hello && + HASH2=$(git rev-parse --verify HEAD) && + add_line_into_file "3: Another new day for git" hello && + HASH3=$(git rev-parse --verify HEAD) && + add_line_into_file "4: Ciao for now" hello && + HASH4=$(git rev-parse --verify HEAD) - test_must_fail git show-ref -q D >actual && - test_must_be_empty actual +ok 1 - set up basic repo with 1 file (hello) and 4 commits -ok 3 - show-ref -q +expecting success of 1503.2 'works with one good rev': + rev_hash1=$(git rev-parse --verify $HASH1) && + test "$rev_hash1" = "$HASH1" && + rev_hash2=$(git rev-parse --verify $HASH2) && + test "$rev_hash2" = "$HASH2" && + rev_hash3=$(git rev-parse --verify $HASH3) && + test "$rev_hash3" = "$HASH3" && + rev_hash4=$(git rev-parse --verify $HASH4) && + test "$rev_hash4" = "$HASH4" && + rev_master=$(git rev-parse --verify master) && + test "$rev_master" = "$HASH4" && + rev_head=$(git rev-parse --verify HEAD) && + test "$rev_head" = "$HASH4" -expecting success of 1403.4 'show-ref --verify': - echo $(git rev-parse refs/tags/A) refs/tags/A >expect && +ok 2 - works with one good rev - git show-ref --verify refs/tags/A >actual && - test_cmp expect actual && +expecting success of 1503.3 'fails with any bad rev or many good revs': + test_must_fail git rev-parse --verify 2>error && + grep "single revision" error && + test_must_fail git rev-parse --verify foo 2>error && + grep "single revision" error && + test_must_fail git rev-parse --verify HEAD bar 2>error && + grep "single revision" error && + test_must_fail git rev-parse --verify baz HEAD 2>error && + grep "single revision" error && + test_must_fail git rev-parse --verify $HASH2 HEAD 2>error && + grep "single revision" error - test_must_fail git show-ref --verify A >actual && - test_must_be_empty actual && +fatal: Needed a single revision +fatal: Needed a single revision +fatal: Needed a single revision +fatal: Needed a single revision +fatal: Needed a single revision +ok 3 - fails with any bad rev or many good revs - test_must_fail git show-ref --verify tags/A >actual && - test_must_be_empty actual && +expecting success of 1503.4 'fails silently when using -q': + test_must_fail git rev-parse --verify --quiet 2>error && + test_must_be_empty error && + test_must_fail git rev-parse -q --verify foo 2>error && + test_must_be_empty error && + test_must_fail git rev-parse --verify -q HEAD bar 2>error && + test_must_be_empty error && + test_must_fail git rev-parse --quiet --verify baz HEAD 2>error && + test_must_be_empty error && + test_must_fail git rev-parse -q --verify $HASH2 HEAD 2>error && + test_must_be_empty error - test_must_fail git show-ref --verify D >actual && - test_must_be_empty actual +ok 4 - fails silently when using -q -fatal: 'A' - not a valid ref -fatal: 'tags/A' - not a valid ref -fatal: 'D' - not a valid ref -ok 4 - show-ref --verify +expecting success of 1503.5 'fails silently when using -q with deleted reflogs': + ref=$(git rev-parse HEAD) && + git update-ref --create-reflog -m "message for refs/test" refs/test "$ref" && + git reflog delete --updateref --rewrite refs/test@{0} && + test_must_fail git rev-parse -q --verify refs/test@{0} >error 2>&1 && + test_must_be_empty error -expecting success of 1403.5 'show-ref --verify -q': - git show-ref --verify -q refs/tags/A >actual && - test_must_be_empty actual && +ok 5 - fails silently when using -q with deleted reflogs - test_must_fail git show-ref --verify -q A >actual && - test_must_be_empty actual && +expecting success of 1503.6 'fails silently when using -q with not enough reflogs': + ref=$(git rev-parse HEAD) && + git update-ref --create-reflog -m "message for refs/test2" refs/test2 "$ref" && + test_must_fail git rev-parse -q --verify refs/test2@{999} >error 2>&1 && + test_must_be_empty error - test_must_fail git show-ref --verify -q tags/A >actual && - test_must_be_empty actual && +ok 6 - fails silently when using -q with not enough reflogs - test_must_fail git show-ref --verify -q D >actual && - test_must_be_empty actual +expecting success of 1503.7 'succeeds silently with -q and reflogs that do not go far back enough in time': + ref=$(git rev-parse HEAD) && + git update-ref --create-reflog -m "message for refs/test3" refs/test3 "$ref" && + git rev-parse -q --verify refs/test3@{1.year.ago} >actual 2>error && + test_must_be_empty error && + echo "$ref" >expect && + test_cmp expect actual -ok 5 - show-ref --verify -q +ok 7 - succeeds silently with -q and reflogs that do not go far back enough in time -expecting success of 1403.6 'show-ref -d': - { - echo $(git rev-parse refs/tags/A) refs/tags/A && - echo $(git rev-parse refs/tags/A^0) "refs/tags/A^{}" - echo $(git rev-parse refs/tags/C) refs/tags/C - } >expect && - git show-ref -d A C >actual && - test_cmp expect actual && +expecting success of 1503.8 'no stdout output on error': + test -z "$(git rev-parse --verify)" && + test -z "$(git rev-parse --verify foo)" && + test -z "$(git rev-parse --verify baz HEAD)" && + test -z "$(git rev-parse --verify HEAD bar)" && + test -z "$(git rev-parse --verify $HASH2 HEAD)" - git show-ref -d tags/A tags/C >actual && - test_cmp expect actual && +fatal: Needed a single revision +fatal: Needed a single revision +fatal: Needed a single revision +fatal: Needed a single revision +fatal: Needed a single revision +ok 8 - no stdout output on error - git show-ref -d refs/tags/A refs/tags/C >actual && - test_cmp expect actual && +expecting success of 1503.9 'use --default': + git rev-parse --verify --default master && + git rev-parse --verify --default master HEAD && + git rev-parse --default master --verify && + git rev-parse --default master --verify HEAD && + git rev-parse --verify HEAD --default master && + test_must_fail git rev-parse --verify foo --default master && + test_must_fail git rev-parse --default HEAD --verify bar && + test_must_fail git rev-parse --verify --default HEAD baz && + test_must_fail git rev-parse --default foo --verify && + test_must_fail git rev-parse --verify --default bar - git show-ref --verify -d refs/tags/A refs/tags/C >actual && - test_cmp expect actual && +32a594a3fdac2d57cf6d02987e30eec68511498c +32a594a3fdac2d57cf6d02987e30eec68511498c +32a594a3fdac2d57cf6d02987e30eec68511498c +32a594a3fdac2d57cf6d02987e30eec68511498c +32a594a3fdac2d57cf6d02987e30eec68511498c +fatal: Needed a single revision +fatal: Needed a single revision +fatal: Needed a single revision +fatal: Needed a single revision +fatal: Needed a single revision +ok 9 - use --default - echo $(git rev-parse refs/heads/master) refs/heads/master >expect && - git show-ref -d master >actual && - test_cmp expect actual && +expecting success of 1503.10 'master@{n} for various n': + N=$(git reflog | wc -l) && + Nm1=$(($N-1)) && + Np1=$(($N+1)) && + git rev-parse --verify master@{0} && + git rev-parse --verify master@{1} && + git rev-parse --verify master@{$Nm1} && + test_must_fail git rev-parse --verify master@{$N} && + test_must_fail git rev-parse --verify master@{$Np1} - git show-ref -d heads/master >actual && - test_cmp expect actual && +32a594a3fdac2d57cf6d02987e30eec68511498c +3de952f2416b6084f557ec417709eac740c6818c +88bcdc1839f0ad191ffdd65cae2a2a862d682151 +fatal: log for 'master' only has 4 entries +fatal: log for 'master' only has 4 entries +ok 10 - master@{n} for various n - git show-ref -d refs/heads/master >actual && - test_cmp expect actual && +checking prerequisite: SYMLINKS - git show-ref -d --verify refs/heads/master >actual && - test_cmp expect actual && +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && + # test whether the filesystem supports symbolic links + ln -s x y && test -h y - test_must_fail git show-ref -d --verify master >actual && - test_must_be_empty actual && +) +prerequisite SYMLINKS ok +expecting success of 1503.11 'ref resolution not confused by broken symlinks': + ln -s does-not-exist .git/refs/heads/broken && + test_must_fail git rev-parse --verify broken - test_must_fail git show-ref -d --verify heads/master >actual && - test_must_be_empty actual && +fatal: Needed a single revision +ok 11 - ref resolution not confused by broken symlinks - test_must_fail git show-ref --verify -d A C >actual && - test_must_be_empty actual && +expecting success of 1503.12 'options can appear after --verify': + git rev-parse --verify HEAD >expect && + git rev-parse --verify -q HEAD >actual && + test_cmp expect actual - test_must_fail git show-ref --verify -d tags/A tags/C >actual && - test_must_be_empty actual +ok 12 - options can appear after --verify +expecting success of 1503.13 'verify respects --end-of-options': + git update-ref refs/heads/-tricky HEAD && + git rev-parse --verify HEAD >expect && + git rev-parse --verify --end-of-options -tricky >actual && + test_cmp expect actual -fatal: 'master' - not a valid ref -fatal: 'heads/master' - not a valid ref -fatal: 'A' - not a valid ref -fatal: 'tags/A' - not a valid ref -ok 6 - show-ref -d +ok 13 - verify respects --end-of-options -expecting success of 1403.7 'show-ref --heads, --tags, --head, pattern': - for branch in B master side - do - echo $(git rev-parse refs/heads/$branch) refs/heads/$branch - done >expect.heads && - git show-ref --heads >actual && - test_cmp expect.heads actual && +# passed all 13 test(s) +1..13 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t1505-rev-parse-last.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1505-rev-parse-last/.git/ +expecting success of 1505.1 'setup': - for tag in A B C - do - echo $(git rev-parse refs/tags/$tag) refs/tags/$tag - done >expect.tags && - git show-ref --tags >actual && - test_cmp expect.tags actual && + make_commit 1 && + git branch side && + make_commit 2 && + make_commit 3 && + git checkout side && + make_commit 4 && + git merge master && + git checkout master - cat expect.heads expect.tags >expect && - git show-ref --heads --tags >actual && - test_cmp expect actual && - { - echo $(git rev-parse HEAD) HEAD && - cat expect.heads expect.tags - } >expect && - git show-ref --heads --tags --head >actual && - test_cmp expect actual && +[master (root-commit) c11cd10] 1 + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 1 +[master ba98451] 2 + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 2 +[master aefd701] 3 + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 3 +Switched to branch 'side' +[side 1d4df77] 4 + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 4 +Merging: +1d4df77 4 +virtual master +found 1 common ancestor: +c11cd10 1 +Merge made by the 'recursive' strategy. + 2 | 1 + + 3 | 1 + + 2 files changed, 2 insertions(+) + create mode 100644 2 + create mode 100644 3 +Switched to branch 'master' +ok 1 - setup - { - echo $(git rev-parse HEAD) HEAD && - echo $(git rev-parse refs/heads/B) refs/heads/B - echo $(git rev-parse refs/tags/B) refs/tags/B - } >expect && - git show-ref --head B >actual && - test_cmp expect actual && +expecting success of 1505.2 '@{-1} works': + test_cmp_rev side @{-1} - { - echo $(git rev-parse HEAD) HEAD && - echo $(git rev-parse refs/heads/B) refs/heads/B - echo $(git rev-parse refs/tags/B) refs/tags/B - echo $(git rev-parse refs/tags/B^0) "refs/tags/B^{}" - } >expect && - git show-ref --head -d B >actual && - test_cmp expect actual +ok 2 - @{-1} works -ok 7 - show-ref --heads, --tags, --head, pattern +expecting success of 1505.3 '@{-1}~2 works': + test_cmp_rev side~2 @{-1}~2 -expecting success of 1403.8 'show-ref --verify HEAD': - echo $(git rev-parse HEAD) HEAD >expect && - git show-ref --verify HEAD >actual && - test_cmp expect actual && +ok 3 - @{-1}~2 works - git show-ref --verify -q HEAD >actual && - test_must_be_empty actual +expecting success of 1505.4 '@{-1}^2 works': + test_cmp_rev side^2 @{-1}^2 -ok 8 - show-ref --verify HEAD +ok 4 - @{-1}^2 works -expecting success of 1403.9 'show-ref --verify with dangling ref': - sha1_file() { - echo "$*" | sed "s#..#.git/objects/&/#" - } && +expecting success of 1505.5 '@{-1}@{1} works': + test_cmp_rev side@{1} @{-1}@{1} - remove_object() { - file=$(sha1_file "$*") && - test -e "$file" && - rm -f "$file" - } && +ok 5 - @{-1}@{1} works - test_when_finished "rm -rf dangling" && - ( - git init dangling && - cd dangling && - test_commit dangling && - sha=$(git rev-parse refs/tags/dangling) && - remove_object $sha && - test_must_fail git show-ref --verify refs/tags/dangling - ) +expecting success of 1505.6 '@{-2} works': + test_cmp_rev master @{-2} -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1403-show-ref/dangling/.git/ -[master (root-commit) ceb9007] dangling - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 dangling.t -fatal: git show-ref: bad ref refs/tags/dangling (ceb9007ddae8b252f505d0ef9dcf579bfda7e91c) -ok 9 - show-ref --verify with dangling ref +ok 6 - @{-2} works -# passed all 9 test(s) -1..9 +expecting success of 1505.7 '@{-3} fails': + test_must_fail git rev-parse @{-3} + +fatal: ambiguous argument '@{-3}': unknown revision or path not in the working tree. +Use '--' to separate paths from revisions, like this: +'git [...] -- [...]' +@{-3} +ok 7 - @{-3} fails + +# passed all 7 test(s) +1..7 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t1400-update-ref.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1400-update-ref/.git/ -expecting success of 1400.1 'setup': - git checkout --orphan main && - create_test_commits "" && - mkdir $bare && - cd $bare && - git init --bare -b main && - create_test_commits "bare" && - cd - +*** t1504-ceiling-dirs.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1504-ceiling-dirs/.git/ +expecting success of 1504.1 'no_ceil': test '' = "$(git rev-parse --show-prefix)" +ok 1 - no_ceil -Switched to a new branch 'main' -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1400-update-ref/bare-repo/ -/build/git-2.30.2/t/trash directory.t1400-update-ref -ok 1 - setup +expecting success of 1504.2 'ceil_empty': test '' = "$(git rev-parse --show-prefix)" +ok 2 - ceil_empty -expecting success of 1400.2 'create refs/heads/main': - git update-ref $m $A && - test $A = $(git show-ref -s --verify $m) +expecting success of 1504.3 'ceil_at_parent': test '' = "$(git rev-parse --show-prefix)" +ok 3 - ceil_at_parent -ok 2 - create refs/heads/main +expecting success of 1504.4 'ceil_at_parent_slash': test '' = "$(git rev-parse --show-prefix)" +ok 4 - ceil_at_parent_slash -expecting success of 1400.3 'create refs/heads/main with oldvalue verification': - git update-ref $m $B $A && - test $B = $(git show-ref -s --verify $m) +expecting success of 1504.5 'ceil_at_trash': test '' = "$(git rev-parse --show-prefix)" +ok 5 - ceil_at_trash -ok 3 - create refs/heads/main with oldvalue verification +expecting success of 1504.6 'ceil_at_trash_slash': test '' = "$(git rev-parse --show-prefix)" +ok 6 - ceil_at_trash_slash -expecting success of 1400.4 'fail to delete refs/heads/main with stale ref': - test_must_fail git update-ref -d $m $A && - test $B = "$(git show-ref -s --verify $m)" +expecting success of 1504.7 'ceil_at_sub': test '' = "$(git rev-parse --show-prefix)" +ok 7 - ceil_at_sub -error: cannot lock ref 'refs/heads/main': is at 56d5c1374e8028a1e122ab046ab7b98165342dc4 but expected 102939797ab91a4f201d131418d2c9d919dcdd2c -ok 4 - fail to delete refs/heads/main with stale ref +expecting success of 1504.8 'ceil_at_sub_slash': test '' = "$(git rev-parse --show-prefix)" +ok 8 - ceil_at_sub_slash -expecting success of 1400.5 'delete refs/heads/main': - test_when_finished "git update-ref -d $m" && - git update-ref -d $m $B && - test_must_fail git show-ref --verify -q $m +checking prerequisite: SYMLINKS -ok 5 - delete refs/heads/main +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && + # test whether the filesystem supports symbolic links + ln -s x y && test -h y -expecting success of 1400.6 'delete refs/heads/main without oldvalue verification': - test_when_finished "git update-ref -d $m" && - git update-ref $m $A && - test $A = $(git show-ref -s --verify $m) && - git update-ref -d $m && - test_must_fail git show-ref --verify -q $m +) +prerequisite SYMLINKS ok +expecting success of 1504.9 'subdir_no_ceil': test 'sub/dir/' = "$(git rev-parse --show-prefix)" +ok 9 - subdir_no_ceil -ok 6 - delete refs/heads/main without oldvalue verification +expecting success of 1504.10 'subdir_ceil_empty': test 'sub/dir/' = "$(git rev-parse --show-prefix)" +ok 10 - subdir_ceil_empty -expecting success of 1400.7 'fail to create refs/heads/gu/fixes': - test_when_finished "rm -f .git/$n_dir" && - touch .git/$n_dir && - test_must_fail git update-ref $n $A +expecting success of 1504.11 'subdir_ceil_at_trash: prefix': + test_expect_code 128 git rev-parse --show-prefix + +fatal: not a git repository (or any of the parent directories): .git +ok 11 - subdir_ceil_at_trash: prefix -fatal: update_ref failed for ref 'refs/heads/gu/fixes': cannot lock ref 'refs/heads/gu/fixes': unable to create lock file .git/refs/heads/gu/fixes.lock; non-directory in the way -ok 7 - fail to create refs/heads/gu/fixes +expecting success of 1504.12 'subdir_ceil_at_trash_slash: prefix': + test_expect_code 128 git rev-parse --show-prefix + +fatal: not a git repository (or any of the parent directories): .git +ok 12 - subdir_ceil_at_trash_slash: prefix -expecting success of 1400.8 'create refs/heads/main (by HEAD)': - git update-ref HEAD $A && - test $A = $(git show-ref -s --verify $m) +expecting success of 1504.13 'subdir_ceil_at_sub: prefix': + test_expect_code 128 git rev-parse --show-prefix + +fatal: not a git repository (or any of the parent directories): .git +ok 13 - subdir_ceil_at_sub: prefix -ok 8 - create refs/heads/main (by HEAD) +expecting success of 1504.14 'subdir_ceil_at_sub_slash: prefix': + test_expect_code 128 git rev-parse --show-prefix + +fatal: not a git repository (or any of the parent directories): .git +ok 14 - subdir_ceil_at_sub_slash: prefix -expecting success of 1400.9 'create refs/heads/main (by HEAD) with oldvalue verification': - git update-ref HEAD $B $A && - test $B = $(git show-ref -s --verify $m) +expecting success of 1504.15 'subdir_ceil_at_top: prefix': + test_expect_code 128 git rev-parse --show-prefix + +fatal: not a git repository (or any of the parent directories): .git +ok 15 - subdir_ceil_at_top: prefix -ok 9 - create refs/heads/main (by HEAD) with oldvalue verification +expecting success of 1504.16 'subdir_ceil_at_top_slash: prefix': + test_expect_code 128 git rev-parse --show-prefix + +fatal: not a git repository (or any of the parent directories): .git +ok 16 - subdir_ceil_at_top_slash: prefix -expecting success of 1400.10 'fail to delete refs/heads/main (by HEAD) with stale ref': - test_must_fail git update-ref -d HEAD $A && - test $B = $(git show-ref -s --verify $m) +expecting success of 1504.17 'subdir_ceil_at_top_no_resolve': test 'sub/dir/' = "$(git rev-parse --show-prefix)" +ok 17 - subdir_ceil_at_top_no_resolve -error: cannot lock ref 'HEAD': is at 56d5c1374e8028a1e122ab046ab7b98165342dc4 but expected 102939797ab91a4f201d131418d2c9d919dcdd2c -ok 10 - fail to delete refs/heads/main (by HEAD) with stale ref +expecting success of 1504.18 'subdir_ceil_at_top_slash_no_resolve': test 'sub/dir/' = "$(git rev-parse --show-prefix)" +ok 18 - subdir_ceil_at_top_slash_no_resolve -expecting success of 1400.11 'delete refs/heads/main (by HEAD)': - test_when_finished "git update-ref -d $m" && - git update-ref -d HEAD $B && - test_must_fail git show-ref --verify -q $m +expecting success of 1504.19 'subdir_ceil_at_subdir': test 'sub/dir/' = "$(git rev-parse --show-prefix)" +ok 19 - subdir_ceil_at_subdir -ok 11 - delete refs/heads/main (by HEAD) +expecting success of 1504.20 'subdir_ceil_at_subdir_slash': test 'sub/dir/' = "$(git rev-parse --show-prefix)" +ok 20 - subdir_ceil_at_subdir_slash -expecting success of 1400.12 'deleting current branch adds message to HEAD's log': - test_when_finished "git update-ref -d $m" && - git update-ref $m $A && - git symbolic-ref HEAD $m && - git update-ref -m delete-$m -d $m && - test_must_fail git show-ref --verify -q $m && - grep "delete-$m$" .git/logs/HEAD +expecting success of 1504.21 'subdir_ceil_at_su': test 'sub/dir/' = "$(git rev-parse --show-prefix)" +ok 21 - subdir_ceil_at_su -102939797ab91a4f201d131418d2c9d919dcdd2c 0000000000000000000000000000000000000000 C O Mitter 1112912653 -0700 delete-refs/heads/main -ok 12 - deleting current branch adds message to HEAD's log +expecting success of 1504.22 'subdir_ceil_at_su_slash': test 'sub/dir/' = "$(git rev-parse --show-prefix)" +ok 22 - subdir_ceil_at_su_slash -expecting success of 1400.13 'deleting by HEAD adds message to HEAD's log': - test_when_finished "git update-ref -d $m" && - git update-ref $m $A && - git symbolic-ref HEAD $m && - git update-ref -m delete-by-head -d HEAD && - test_must_fail git show-ref --verify -q $m && - grep "delete-by-head$" .git/logs/HEAD +expecting success of 1504.23 'subdir_ceil_at_sub_di': test 'sub/dir/' = "$(git rev-parse --show-prefix)" +ok 23 - subdir_ceil_at_sub_di -102939797ab91a4f201d131418d2c9d919dcdd2c 0000000000000000000000000000000000000000 C O Mitter 1112912653 -0700 delete-by-head -ok 13 - deleting by HEAD adds message to HEAD's log +expecting success of 1504.24 'subdir_ceil_at_sub_di_slash': test 'sub/dir/' = "$(git rev-parse --show-prefix)" +ok 24 - subdir_ceil_at_sub_di_slash -expecting success of 1400.14 'update-ref does not create reflogs by default': - test_when_finished "git update-ref -d $outside" && - git update-ref $outside $A && - git rev-parse $A >expect && - git rev-parse $outside >actual && - test_cmp expect actual && - test_must_fail git reflog exists $outside +expecting success of 1504.25 'subdir_ceil_at_subdi': test 'sub/dir/' = "$(git rev-parse --show-prefix)" +ok 25 - subdir_ceil_at_subdi -ok 14 - update-ref does not create reflogs by default +expecting success of 1504.26 'subdir_ceil_at_subdi_slash': test 'sub/dir/' = "$(git rev-parse --show-prefix)" +ok 26 - subdir_ceil_at_subdi_slash -expecting success of 1400.15 'update-ref creates reflogs with --create-reflog': - test_when_finished "git update-ref -d $outside" && - git update-ref --create-reflog $outside $A && - git rev-parse $A >expect && - git rev-parse $outside >actual && - test_cmp expect actual && - git reflog exists $outside +expecting success of 1504.27 'second_of_two: prefix': + test_expect_code 128 git rev-parse --show-prefix + +fatal: not a git repository (or any of the parent directories): .git +ok 27 - second_of_two: prefix -ok 15 - update-ref creates reflogs with --create-reflog +expecting success of 1504.28 'first_of_two: prefix': + test_expect_code 128 git rev-parse --show-prefix + +fatal: not a git repository (or any of the parent directories): .git +ok 28 - first_of_two: prefix -expecting success of 1400.16 'creates no reflog in bare repository': - git -C $bare update-ref $m $bareA && - git -C $bare rev-parse $bareA >expect && - git -C $bare rev-parse $m >actual && - test_cmp expect actual && - test_must_fail git -C $bare reflog exists $m +expecting success of 1504.29 'second_of_three: prefix': + test_expect_code 128 git rev-parse --show-prefix + +fatal: not a git repository (or any of the parent directories): .git +ok 29 - second_of_three: prefix -ok 16 - creates no reflog in bare repository +expecting success of 1504.30 'git_dir_specified': test '' = "$(git rev-parse --show-prefix)" +ok 30 - git_dir_specified -expecting success of 1400.17 'core.logAllRefUpdates=true creates reflog in bare repository': - test_when_finished "git -C $bare config --unset core.logAllRefUpdates && \ - rm $bare/logs/$m" && - git -C $bare config core.logAllRefUpdates true && - git -C $bare update-ref $m $bareB && - git -C $bare rev-parse $bareB >expect && - git -C $bare rev-parse $m >actual && - test_cmp expect actual && - git -C $bare reflog exists $m +expecting success of 1504.31 'sd_no_ceil': test 's/d/' = "$(git rev-parse --show-prefix)" +ok 31 - sd_no_ceil -ok 17 - core.logAllRefUpdates=true creates reflog in bare repository +expecting success of 1504.32 'sd_ceil_empty': test 's/d/' = "$(git rev-parse --show-prefix)" +ok 32 - sd_ceil_empty -expecting success of 1400.18 'core.logAllRefUpdates=true does not create reflog by default': - test_config core.logAllRefUpdates true && - test_when_finished "git update-ref -d $outside" && - git update-ref $outside $A && - git rev-parse $A >expect && - git rev-parse $outside >actual && - test_cmp expect actual && - test_must_fail git reflog exists $outside +expecting success of 1504.33 'sd_ceil_at_trash: prefix': + test_expect_code 128 git rev-parse --show-prefix + +fatal: not a git repository (or any of the parent directories): .git +ok 33 - sd_ceil_at_trash: prefix -ok 18 - core.logAllRefUpdates=true does not create reflog by default +expecting success of 1504.34 'sd_ceil_at_trash_slash: prefix': + test_expect_code 128 git rev-parse --show-prefix + +fatal: not a git repository (or any of the parent directories): .git +ok 34 - sd_ceil_at_trash_slash: prefix -expecting success of 1400.19 'core.logAllRefUpdates=always creates reflog by default': - test_config core.logAllRefUpdates always && - test_when_finished "git update-ref -d $outside" && - git update-ref $outside $A && - git rev-parse $A >expect && - git rev-parse $outside >actual && - test_cmp expect actual && - git reflog exists $outside +expecting success of 1504.35 'sd_ceil_at_s: prefix': + test_expect_code 128 git rev-parse --show-prefix + +fatal: not a git repository (or any of the parent directories): .git +ok 35 - sd_ceil_at_s: prefix -ok 19 - core.logAllRefUpdates=always creates reflog by default +expecting success of 1504.36 'sd_ceil_at_s_slash: prefix': + test_expect_code 128 git rev-parse --show-prefix + +fatal: not a git repository (or any of the parent directories): .git +ok 36 - sd_ceil_at_s_slash: prefix -expecting success of 1400.20 'core.logAllRefUpdates=always creates reflog for ORIG_HEAD': - test_config core.logAllRefUpdates always && - git update-ref ORIG_HEAD $A && - git reflog exists ORIG_HEAD +expecting success of 1504.37 'sd_ceil_at_sd': test 's/d/' = "$(git rev-parse --show-prefix)" +ok 37 - sd_ceil_at_sd -ok 20 - core.logAllRefUpdates=always creates reflog for ORIG_HEAD +expecting success of 1504.38 'sd_ceil_at_sd_slash': test 's/d/' = "$(git rev-parse --show-prefix)" +ok 38 - sd_ceil_at_sd_slash -expecting success of 1400.21 '--no-create-reflog overrides core.logAllRefUpdates=always': - test_config core.logAllRefUpdates true && - test_when_finished "git update-ref -d $outside" && - git update-ref --no-create-reflog $outside $A && - git rev-parse $A >expect && - git rev-parse $outside >actual && - test_cmp expect actual && - test_must_fail git reflog exists $outside +expecting success of 1504.39 'sd_ceil_at_su': test 's/d/' = "$(git rev-parse --show-prefix)" +ok 39 - sd_ceil_at_su -ok 21 - --no-create-reflog overrides core.logAllRefUpdates=always +expecting success of 1504.40 'sd_ceil_at_su_slash': test 's/d/' = "$(git rev-parse --show-prefix)" +ok 40 - sd_ceil_at_su_slash -expecting success of 1400.22 'create refs/heads/main (by HEAD)': - git update-ref HEAD $A && - test $A = $(git show-ref -s --verify $m) +expecting success of 1504.41 'sd_ceil_at_s_di': test 's/d/' = "$(git rev-parse --show-prefix)" +ok 41 - sd_ceil_at_s_di -ok 22 - create refs/heads/main (by HEAD) +expecting success of 1504.42 'sd_ceil_at_s_di_slash': test 's/d/' = "$(git rev-parse --show-prefix)" +ok 42 - sd_ceil_at_s_di_slash -expecting success of 1400.23 'pack refs': - git pack-refs --all +expecting success of 1504.43 'sd_ceil_at_sdi': test 's/d/' = "$(git rev-parse --show-prefix)" +ok 43 - sd_ceil_at_sdi -ok 23 - pack refs +expecting success of 1504.44 'sd_ceil_at_sdi_slash': test 's/d/' = "$(git rev-parse --show-prefix)" +ok 44 - sd_ceil_at_sdi_slash -expecting success of 1400.24 'move refs/heads/main (by HEAD)': - git update-ref HEAD $B $A && - test $B = $(git show-ref -s --verify $m) +# passed all 44 test(s) +1..44 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t1506-rev-parse-diagnosis.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1506-rev-parse-diagnosis/.git/ +expecting success of 1506.1 'set up basic repo': + echo one > file.txt && + mkdir subdir && + echo two > subdir/file.txt && + echo three > subdir/file2.txt && + git add . && + git commit -m init && + echo four > index-only.txt && + git add index-only.txt && + echo five > disk-only.txt -ok 24 - move refs/heads/main (by HEAD) +[master (root-commit) 724c7fc] init + Author: A U Thor + 3 files changed, 3 insertions(+) + create mode 100644 file.txt + create mode 100644 subdir/file.txt + create mode 100644 subdir/file2.txt +ok 1 - set up basic repo -expecting success of 1400.25 'delete refs/heads/main (by HEAD) should remove both packed and loose refs/heads/main': - test_when_finished "git update-ref -d $m" && - git update-ref -d HEAD $B && - ! grep "$m" .git/packed-refs && - test_must_fail git show-ref --verify -q $m +expecting success of 1506.2 'correct file objects': + HASH_file=$(git rev-parse HEAD:file.txt) && + git rev-parse HEAD:subdir/file.txt && + git rev-parse :index-only.txt && + (cd subdir && + git rev-parse HEAD:subdir/file2.txt && + test $HASH_file = $(git rev-parse HEAD:file.txt) && + test $HASH_file = $(git rev-parse :file.txt) && + test $HASH_file = $(git rev-parse :0:file.txt) ) -ok 25 - delete refs/heads/main (by HEAD) should remove both packed and loose refs/heads/main +f719efd430d52bcfc8566a43b2eb655688d38871 +8510665149157c2bc901848c3e0b746954e9cbd9 +2bdf67abb163a4ffb2d7f3f0880c9fe5068ce782 +ok 2 - correct file objects -expecting success of 1400.26 'delete symref without dereference': - test_when_finished "git update-ref -d $m" && - echo foo >foo.c && - git add foo.c && - git commit -m foo && - git symbolic-ref SYMREF $m && - git update-ref --no-deref -d SYMREF && - git show-ref --verify -q $m && - test_must_fail git show-ref --verify -q SYMREF && - test_must_fail git symbolic-ref SYMREF +expecting success of 1506.3 'correct relative file objects (0)': + git rev-parse :file.txt >expected && + git rev-parse :./file.txt >result && + test_cmp expected result && + git rev-parse :0:./file.txt >result && + test_cmp expected result -[main (root-commit) fc83d41] foo - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 foo.c -fatal: ref SYMREF is not a symbolic ref -ok 26 - delete symref without dereference +ok 3 - correct relative file objects (0) -expecting success of 1400.27 'delete symref without dereference when the referred ref is packed': - test_when_finished "git update-ref -d $m" && - echo foo >foo.c && - git add foo.c && - git commit -m foo && - git symbolic-ref SYMREF $m && - git pack-refs --all && - git update-ref --no-deref -d SYMREF && - git show-ref --verify -q $m && - test_must_fail git show-ref --verify -q SYMREF && - test_must_fail git symbolic-ref SYMREF +expecting success of 1506.4 'correct relative file objects (1)': + git rev-parse HEAD:file.txt >expected && + git rev-parse HEAD:./file.txt >result && + test_cmp expected result -[main (root-commit) fc83d41] foo - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 foo.c -fatal: ref SYMREF is not a symbolic ref -ok 27 - delete symref without dereference when the referred ref is packed +ok 4 - correct relative file objects (1) -expecting success of 1400.28 'update-ref -d is not confused by self-reference': - git symbolic-ref refs/heads/self refs/heads/self && - test_when_finished "rm -f .git/refs/heads/self" && - test_path_is_file .git/refs/heads/self && - test_must_fail git update-ref -d refs/heads/self && - test_path_is_file .git/refs/heads/self +expecting success of 1506.5 'correct relative file objects (2)': + ( + cd subdir && + git rev-parse HEAD:../file.txt >result && + test_cmp ../expected result + ) -error: multiple updates for 'refs/heads/self' (including one via symref 'refs/heads/self') are not allowed -ok 28 - update-ref -d is not confused by self-reference +ok 5 - correct relative file objects (2) -expecting success of 1400.29 'update-ref --no-deref -d can delete self-reference': - git symbolic-ref refs/heads/self refs/heads/self && - test_when_finished "rm -f .git/refs/heads/self" && - test_path_is_file .git/refs/heads/self && - git update-ref --no-deref -d refs/heads/self && - test_must_fail git show-ref --verify -q refs/heads/self +expecting success of 1506.6 'correct relative file objects (3)': + ( + cd subdir && + git rev-parse HEAD:../subdir/../file.txt >result && + test_cmp ../expected result + ) -ok 29 - update-ref --no-deref -d can delete self-reference +ok 6 - correct relative file objects (3) -expecting success of 1400.30 'update-ref --no-deref -d can delete reference to bad ref': - >.git/refs/heads/bad && - test_when_finished "rm -f .git/refs/heads/bad" && - git symbolic-ref refs/heads/ref-to-bad refs/heads/bad && - test_when_finished "git update-ref -d refs/heads/ref-to-bad" && - test_path_is_file .git/refs/heads/ref-to-bad && - git update-ref --no-deref -d refs/heads/ref-to-bad && - test_must_fail git show-ref --verify -q refs/heads/ref-to-bad +expecting success of 1506.7 'correct relative file objects (4)': + git rev-parse HEAD:subdir/file.txt >expected && + ( + cd subdir && + git rev-parse HEAD:./file.txt >result && + test_cmp ../expected result + ) -ok 30 - update-ref --no-deref -d can delete reference to bad ref +ok 7 - correct relative file objects (4) -expecting success of 1400.31 '(not) create HEAD with old sha1': - test_must_fail git update-ref HEAD $A $B +expecting success of 1506.8 'correct relative file objects (5)': + git rev-parse :subdir/file.txt >expected && + ( + cd subdir && + git rev-parse :./file.txt >result && + test_cmp ../expected result && + git rev-parse :0:./file.txt >result && + test_cmp ../expected result + ) -fatal: update_ref failed for ref 'HEAD': cannot lock ref 'HEAD': unable to resolve reference 'refs/heads/main' -ok 31 - (not) create HEAD with old sha1 +ok 8 - correct relative file objects (5) -expecting success of 1400.32 '(not) prior created .git/refs/heads/main': - test_when_finished "git update-ref -d $m" && - test_must_fail git show-ref --verify -q $m +expecting success of 1506.9 'correct relative file objects (6)': + git rev-parse :file.txt >expected && + ( + cd subdir && + git rev-parse :../file.txt >result && + test_cmp ../expected result && + git rev-parse :0:../file.txt >result && + test_cmp ../expected result + ) -ok 32 - (not) prior created .git/refs/heads/main +ok 9 - correct relative file objects (6) -expecting success of 1400.33 'create HEAD': - git update-ref HEAD $A +expecting success of 1506.10 'incorrect revision id': + test_must_fail git rev-parse foobar:file.txt 2>error && + test_i18ngrep "invalid object name .foobar." error && + test_must_fail git rev-parse foobar 2>error && + test_i18ngrep "unknown revision or path not in the working tree." error -ok 33 - create HEAD +foobar:file.txt +checking prerequisite: C_LOCALE_OUTPUT -expecting success of 1400.34 '(not) change HEAD with wrong SHA1': - test_must_fail git update-ref HEAD $B $Z +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false -fatal: update_ref failed for ref 'HEAD': cannot lock ref 'HEAD': reference already exists -ok 34 - (not) change HEAD with wrong SHA1 +) +prerequisite C_LOCALE_OUTPUT ok +fatal: invalid object name 'foobar'. +foobar +fatal: ambiguous argument 'foobar': unknown revision or path not in the working tree. +ok 10 - incorrect revision id -expecting success of 1400.35 '(not) changed .git/refs/heads/main': - test_when_finished "git update-ref -d $m" && - ! test $B = $(git show-ref -s --verify $m) +expecting success of 1506.11 'incorrect file in sha1:path': + test_must_fail git rev-parse HEAD:nothing.txt 2>error && + test_i18ngrep "path .nothing.txt. does not exist in .HEAD." error && + test_must_fail git rev-parse HEAD:index-only.txt 2>error && + test_i18ngrep "path .index-only.txt. exists on disk, but not in .HEAD." error && + (cd subdir && + test_must_fail git rev-parse HEAD:file2.txt 2>error && + test_did_you_mean HEAD subdir/ file2.txt exists ) -ok 35 - (not) changed .git/refs/heads/main +HEAD:nothing.txt +fatal: path 'nothing.txt' does not exist in 'HEAD' +HEAD:index-only.txt +fatal: path 'index-only.txt' exists on disk, but not in 'HEAD' +HEAD:file2.txt +ok 11 - incorrect file in sha1:path -expecting success of 1400.36 'create refs/heads/main (logged by touch)': - test_config core.logAllRefUpdates false && - GIT_COMMITTER_DATE="2005-05-26 23:30" \ - git update-ref --create-reflog HEAD $A -m "Initial Creation" && - test $A = $(git show-ref -s --verify $m) +expecting success of 1506.12 'incorrect file in :path and :N:path': + test_must_fail git rev-parse :nothing.txt 2>error && + test_i18ngrep "path .nothing.txt. does not exist (neither on disk nor in the index)" error && + test_must_fail git rev-parse :1:nothing.txt 2>error && + test_i18ngrep "path .nothing.txt. does not exist (neither on disk nor in the index)" error && + test_must_fail git rev-parse :1:file.txt 2>error && + test_did_you_mean ":0" "" file.txt "is in the index" "at stage 1" && + (cd subdir && + test_must_fail git rev-parse :1:file.txt 2>error && + test_did_you_mean ":0" "" file.txt "is in the index" "at stage 1" && + test_must_fail git rev-parse :file2.txt 2>error && + test_did_you_mean ":0" subdir/ file2.txt "is in the index" && + test_must_fail git rev-parse :2:file2.txt 2>error && + test_did_you_mean :0 subdir/ file2.txt "is in the index") && + test_must_fail git rev-parse :disk-only.txt 2>error && + test_i18ngrep "path .disk-only.txt. exists on disk, but not in the index" error -ok 36 - create refs/heads/main (logged by touch) +:nothing.txt +fatal: path 'nothing.txt' does not exist (neither on disk nor in the index) +:1:nothing.txt +fatal: path 'nothing.txt' does not exist (neither on disk nor in the index) +:1:file.txt +:1:file.txt +:file2.txt +:2:file2.txt +:disk-only.txt +fatal: path 'disk-only.txt' exists on disk, but not in the index +ok 12 - incorrect file in :path and :N:path -expecting success of 1400.37 'update refs/heads/main (logged by touch)': - test_config core.logAllRefUpdates false && - GIT_COMMITTER_DATE="2005-05-26 23:31" \ - git update-ref HEAD $B $A -m "Switch" && - test $B = $(git show-ref -s --verify $m) +expecting success of 1506.13 'invalid @{n} reference': + test_must_fail git rev-parse master@{99999} >output 2>error && + test_must_be_empty output && + test_i18ngrep "log for [^ ]* only has [0-9][0-9]* entries" error && + test_must_fail git rev-parse --verify master@{99999} >output 2>error && + test_must_be_empty output && + test_i18ngrep "log for [^ ]* only has [0-9][0-9]* entries" error -ok 37 - update refs/heads/main (logged by touch) +fatal: log for 'master' only has 1 entries +fatal: log for 'master' only has 1 entries +ok 13 - invalid @{n} reference -expecting success of 1400.38 'set refs/heads/main (logged by touch)': - test_config core.logAllRefUpdates false && - GIT_COMMITTER_DATE="2005-05-26 23:41" \ - git update-ref HEAD $A && - test $A = $(git show-ref -s --verify $m) +expecting success of 1506.14 'relative path not found': + ( + cd subdir && + test_must_fail git rev-parse HEAD:./nonexistent.txt 2>error && + test_i18ngrep subdir/nonexistent.txt error + ) -ok 38 - set refs/heads/main (logged by touch) +HEAD:./nonexistent.txt +fatal: path 'subdir/nonexistent.txt' does not exist in 'HEAD' +ok 14 - relative path not found -expecting success of 1400.39 'empty directory removal': - git branch d1/d2/r1 HEAD && - git branch d1/r2 HEAD && - test_path_is_file .git/refs/heads/d1/d2/r1 && - test_path_is_file .git/logs/refs/heads/d1/d2/r1 && - git branch -d d1/d2/r1 && - test_must_fail git show-ref --verify -q refs/heads/d1/d2 && - test_must_fail git show-ref --verify -q logs/refs/heads/d1/d2 && - test_path_is_file .git/refs/heads/d1/r2 && - test_path_is_file .git/logs/refs/heads/d1/r2 +expecting success of 1506.15 'relative path outside worktree': + test_must_fail git rev-parse HEAD:../file.txt >output 2>error && + test_must_be_empty output && + test_i18ngrep "outside repository" error -Deleted branch d1/d2/r1 (was 1029397). -ok 39 - empty directory removal +fatal: '../file.txt' is outside repository at '/build/git-2.30.2/t/trash directory.t1506-rev-parse-diagnosis' +ok 15 - relative path outside worktree -expecting success of 1400.40 'symref empty directory removal': - git branch e1/e2/r1 HEAD && - git branch e1/r2 HEAD && - git checkout e1/e2/r1 && - test_when_finished "git checkout main" && - test_path_is_file .git/refs/heads/e1/e2/r1 && - test_path_is_file .git/logs/refs/heads/e1/e2/r1 && - git update-ref -d HEAD && - test_must_fail git show-ref --verify -q refs/heads/e1/e2 && - test_must_fail git show-ref --verify -q logs/refs/heads/e1/e2 && - test_path_is_file .git/refs/heads/e1/r2 && - test_path_is_file .git/logs/refs/heads/e1/r2 && - test_path_is_file .git/logs/HEAD +expecting success of 1506.16 'relative path when cwd is outside worktree': + test_must_fail git --git-dir=.git --work-tree=subdir rev-parse HEAD:./file.txt >output 2>error && + test_must_be_empty output && + test_i18ngrep "relative path syntax can.t be used outside working tree" error -Switched to branch 'e1/e2/r1' -A foo.c -Switched to branch 'main' -A foo.c -ok 40 - symref empty directory removal +fatal: relative path syntax can't be used outside working tree +ok 16 - relative path when cwd is outside worktree -expecting success of 1400.41 'verifying refs/heads/main's log (logged by touch)': - test_when_finished "rm -rf .git/$m .git/logs expect" && - test_cmp expect .git/logs/$m +expecting success of 1506.17 ':file correctly diagnosed after a pathname': + test_must_fail git rev-parse file.txt HEAD:file.txt 1>actual 2>error && + test_i18ngrep ! "exists on disk" error && + test_i18ngrep "no such path in the working tree" error && + cat >expect <<-\EOF && + file.txt + HEAD:file.txt + EOF + test_cmp expect actual -ok 41 - verifying refs/heads/main's log (logged by touch) +fatal: HEAD:file.txt: no such path in the working tree. +ok 17 - :file correctly diagnosed after a pathname -expecting success of 1400.42 'create refs/heads/main (logged by config)': - test_config core.logAllRefUpdates true && - GIT_COMMITTER_DATE="2005-05-26 23:32" \ - git update-ref HEAD $A -m "Initial Creation" && - test $A = $(git show-ref -s --verify $m) +expecting success of 1506.18 'dotdot is not an empty set': + ( H=$(git rev-parse HEAD) && echo $H && echo ^$H ) >expect && -ok 42 - create refs/heads/main (logged by config) + git rev-parse HEAD.. >actual && + test_cmp expect actual && -expecting success of 1400.43 'update refs/heads/main (logged by config)': - test_config core.logAllRefUpdates true && - GIT_COMMITTER_DATE="2005-05-26 23:33" \ - git update-ref HEAD $B $A -m "Switch" && - test $B = $(git show-ref -s --verify $m) + git rev-parse ..HEAD >actual && + test_cmp expect actual && -ok 43 - update refs/heads/main (logged by config) + echo .. >expect && + git rev-parse .. >actual && + test_cmp expect actual -expecting success of 1400.44 'set refs/heads/main (logged by config)': - test_config core.logAllRefUpdates true && - GIT_COMMITTER_DATE="2005-05-26 23:43" \ - git update-ref HEAD $A && - test $A = $(git show-ref -s --verify $m) +ok 18 - dotdot is not an empty set -ok 44 - set refs/heads/main (logged by config) +expecting success of 1506.19 'dotdot does not peel endpoints': + git tag -a -m "annote" annotated HEAD && + A=$(git rev-parse annotated) && + H=$(git rev-parse annotated^0) && + { + echo $A && echo ^$A + } >expect-with-two-dots && + { + echo $A && echo $A && echo ^$H + } >expect-with-merge-base && -expecting success of 1400.45 'verifying refs/heads/main's log (logged by config)': - test_when_finished "rm -f .git/$m .git/logs/$m expect" && - test_cmp expect .git/logs/$m + git rev-parse annotated..annotated >actual-with-two-dots && + test_cmp expect-with-two-dots actual-with-two-dots && -ok 45 - verifying refs/heads/main's log (logged by config) + git rev-parse annotated...annotated >actual-with-merge-base && + test_cmp expect-with-merge-base actual-with-merge-base -expecting success of 1400.46 'set up for querying the reflog': - git update-ref $m $D && - cat >.git/logs/$m <<-EOF - $Z $C $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> 1117150320 -0500 - $C $A $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> 1117150350 -0500 - $A $B $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> 1117150380 -0500 - $F $Z $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> 1117150680 -0500 - $Z $E $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> 1117150980 -0500 - EOF +ok 19 - dotdot does not peel endpoints -ok 46 - set up for querying the reflog +expecting success of 1506.20 'arg before dashdash must be a revision (missing)': + test_must_fail git rev-parse foobar -- 2>stderr && + test_i18ngrep "bad revision" stderr -expecting success of 1400.47 'Query "main@{May 25 2005}" (before history)': - test_when_finished "rm -f o e" && - git rev-parse --verify "main@{May 25 2005}" >o 2>e && - echo "$C" >expect && - test_cmp expect o && - echo "warning: log for 'main' only goes back to $ed" >expect && - test_i18ncmp expect e +fatal: bad revision 'foobar' +ok 20 - arg before dashdash must be a revision (missing) -checking prerequisite: C_LOCALE_OUTPUT +expecting success of 1506.21 'arg before dashdash must be a revision (file)': + >foobar && + test_must_fail git rev-parse foobar -- 2>stderr && + test_i18ngrep "bad revision" stderr -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false +fatal: bad revision 'foobar' +ok 21 - arg before dashdash must be a revision (file) -) -prerequisite C_LOCALE_OUTPUT ok -ok 47 - Query "main@{May 25 2005}" (before history) +expecting success of 1506.22 'arg before dashdash must be a revision (ambiguous)': + >foobar && + git update-ref refs/heads/foobar HEAD && + { + # we do not want to use rev-parse here, because + # we are testing it + git show-ref -s refs/heads/foobar && + printf "%s\n" -- + } >expect && + git rev-parse foobar -- >actual && + test_cmp expect actual -expecting success of 1400.48 'Query main@{2005-05-25} (before history)': - test_when_finished "rm -f o e" && - git rev-parse --verify main@{2005-05-25} >o 2>e && - echo "$C" >expect && - test_cmp expect o && - echo "warning: log for 'main' only goes back to $ed" >expect && - test_i18ncmp expect e +ok 22 - arg before dashdash must be a revision (ambiguous) -ok 48 - Query main@{2005-05-25} (before history) +expecting success of 1506.23 'reject Nth parent if N is too high': + test_must_fail git rev-parse HEAD^100000000000000000000000000000000 -expecting success of 1400.49 'Query "main@{May 26 2005 23:31:59}" (1 second before history)': - test_when_finished "rm -f o e" && - git rev-parse --verify "main@{May 26 2005 23:31:59}" >o 2>e && - echo "$C" >expect && - test_cmp expect o && - echo "warning: log for 'main' only goes back to $ed" >expect && - test_i18ncmp expect e +fatal: ambiguous argument 'HEAD^100000000000000000000000000000000': unknown revision or path not in the working tree. +Use '--' to separate paths from revisions, like this: +'git [...] -- [...]' +HEAD^100000000000000000000000000000000 +ok 23 - reject Nth parent if N is too high -ok 49 - Query "main@{May 26 2005 23:31:59}" (1 second before history) +expecting success of 1506.24 'reject Nth ancestor if N is too high': + test_must_fail git rev-parse HEAD~100000000000000000000000000000000 -expecting success of 1400.50 'Query "main@{May 26 2005 23:32:00}" (exactly history start)': - test_when_finished "rm -f o e" && - git rev-parse --verify "main@{May 26 2005 23:32:00}" >o 2>e && - echo "$C" >expect && - test_cmp expect o && - test_must_be_empty e +fatal: ambiguous argument 'HEAD~100000000000000000000000000000000': unknown revision or path not in the working tree. +Use '--' to separate paths from revisions, like this: +'git [...] -- [...]' +HEAD~100000000000000000000000000000000 +ok 24 - reject Nth ancestor if N is too high -ok 50 - Query "main@{May 26 2005 23:32:00}" (exactly history start) +expecting success of 1506.25 'pathspecs with wildcards are not ambiguous': + echo "*.c" >expect && + git rev-parse "*.c" >actual && + test_cmp expect actual -expecting success of 1400.51 'Query "main@{May 26 2005 23:32:30}" (first non-creation change)': - test_when_finished "rm -f o e" && - git rev-parse --verify "main@{May 26 2005 23:32:30}" >o 2>e && - echo "$A" >expect && - test_cmp expect o && - test_must_be_empty e +ok 25 - pathspecs with wildcards are not ambiguous -ok 51 - Query "main@{May 26 2005 23:32:30}" (first non-creation change) +expecting success of 1506.26 'backslash does not trigger wildcard rule': + test_must_fail git rev-parse "foo\\bar" -expecting success of 1400.52 'Query "main@{2005-05-26 23:33:01}" (middle of history with gap)': - test_when_finished "rm -f o e" && - git rev-parse --verify "main@{2005-05-26 23:33:01}" >o 2>e && - echo "$B" >expect && - test_cmp expect o && - test_i18ngrep -F "warning: log for ref $m has gap after $gd" e +fatal: ambiguous argument 'foo\bar': unknown revision or path not in the working tree. +Use '--' to separate paths from revisions, like this: +'git [...] -- [...]' +foo\bar +ok 26 - backslash does not trigger wildcard rule -warning: log for ref refs/heads/main has gap after Thu, 26 May 2005 18:33:00 -0500 -ok 52 - Query "main@{2005-05-26 23:33:01}" (middle of history with gap) +expecting success of 1506.27 'escaped char does not trigger wildcard rule': + test_must_fail git rev-parse "foo\\*bar" -expecting success of 1400.53 'Query "main@{2005-05-26 23:38:00}" (middle of history)': - test_when_finished "rm -f o e" && - git rev-parse --verify "main@{2005-05-26 23:38:00}" >o 2>e && - echo "$Z" >expect && - test_cmp expect o && - test_must_be_empty e +fatal: ambiguous argument 'foo\*bar': unknown revision or path not in the working tree. +Use '--' to separate paths from revisions, like this: +'git [...] -- [...]' +foo\*bar +ok 27 - escaped char does not trigger wildcard rule -ok 53 - Query "main@{2005-05-26 23:38:00}" (middle of history) +expecting success of 1506.28 'arg after dashdash not interpreted as option': + cat >expect <<-\EOF && + -- + --local-env-vars + EOF + git rev-parse -- --local-env-vars >actual && + test_cmp expect actual -expecting success of 1400.54 'Query "main@{2005-05-26 23:43:00}" (exact end of history)': - test_when_finished "rm -f o e" && - git rev-parse --verify "main@{2005-05-26 23:43:00}" >o 2>e && - echo "$E" >expect && - test_cmp expect o && - test_must_be_empty e +ok 28 - arg after dashdash not interpreted as option -ok 54 - Query "main@{2005-05-26 23:43:00}" (exact end of history) +expecting success of 1506.29 'arg after end-of-options not interpreted as option': + test_must_fail git rev-parse --end-of-options --not-real -- 2>err && + test_i18ngrep bad.revision.*--not-real err -expecting success of 1400.55 'Query "main@{2005-05-28}" (past end of history)': - test_when_finished "rm -f o e" && - git rev-parse --verify "main@{2005-05-28}" >o 2>e && - echo "$D" >expect && - test_cmp expect o && - test_i18ngrep -F "warning: log for ref $m unexpectedly ended on $ld" e +--end-of-options +fatal: bad revision '--not-real' +ok 29 - arg after end-of-options not interpreted as option -warning: log for ref refs/heads/main unexpectedly ended on Thu, 26 May 2005 18:43:00 -0500 -ok 55 - Query "main@{2005-05-28}" (past end of history) +expecting success of 1506.30 'end-of-options still allows --': + cat >expect <<-EOF && + --end-of-options + $(git rev-parse --verify HEAD) + -- + path + EOF + git rev-parse --end-of-options HEAD -- path >actual && + test_cmp expect actual -expecting success of 1400.56 'creating initial files': - test_when_finished rm -f M && - echo TEST >F && - git add F && - GIT_AUTHOR_DATE="2005-05-26 23:30" \ - GIT_COMMITTER_DATE="2005-05-26 23:30" git commit -m add -a && - h_TEST=$(git rev-parse --verify HEAD) && - echo The other day this did not work. >M && - echo And then Bob told me how to fix it. >>M && - echo OTHER >F && - GIT_AUTHOR_DATE="2005-05-26 23:41" \ - GIT_COMMITTER_DATE="2005-05-26 23:41" git commit -F M -a && - h_OTHER=$(git rev-parse --verify HEAD) && - GIT_AUTHOR_DATE="2005-05-26 23:44" \ - GIT_COMMITTER_DATE="2005-05-26 23:44" git commit --amend && - h_FIXED=$(git rev-parse --verify HEAD) && - echo Merged initial commit and a later commit. >M && - echo $h_TEST >.git/MERGE_HEAD && - GIT_AUTHOR_DATE="2005-05-26 23:45" \ - GIT_COMMITTER_DATE="2005-05-26 23:45" git commit -F M && - h_MERGED=$(git rev-parse --verify HEAD) +ok 30 - end-of-options still allows -- -[main (root-commit) 0c23f5f] add +# passed all 30 test(s) +1..30 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t1509-root-work-tree.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1509-root-work-tree/.git/ +1..0 # SKIP Test requiring writable / skipped. Read this test if you want to run it +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t1507-rev-parse-upstream.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1507-rev-parse-upstream/.git/ +expecting success of 1507.1 'setup': + + test_commit 1 && + git checkout -b side && + test_commit 2 && + git checkout master && + git clone . clone && + test_commit 3 && + (cd clone && + test_commit 4 && + git branch --track my-side origin/side && + git branch --track local-master master && + git branch --track fun@ny origin/side && + git branch --track @funny origin/side && + git branch --track funny@ origin/side && + git remote add -t master master-only .. && + git fetch master-only && + git branch bad-upstream && + git config branch.bad-upstream.remote master-only && + git config branch.bad-upstream.merge refs/heads/side + ) + +[master (root-commit) d0dcf97] 1 Author: A U Thor - 2 files changed, 2 insertions(+) - create mode 100644 F - create mode 100644 foo.c -[main d3968db] The other day this did not work. And then Bob told me how to fix it. + 1 file changed, 1 insertion(+) + create mode 100644 1.t +Switched to a new branch 'side' +[side 82335b2] 2 Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -[main e66de33] The other day this did not work. And then Bob told me how to fix it. + 1 file changed, 1 insertion(+) + create mode 100644 2.t +Switched to branch 'master' +Cloning into 'clone'... +done. +[master 8f489d0] 3 Author: A U Thor - Date: Thu May 26 23:41:00 2005 +0000 - 1 file changed, 1 insertion(+), 1 deletion(-) -[main 29d1ccd] Merged initial commit and a later commit. + 1 file changed, 1 insertion(+) + create mode 100644 3.t +[master 6efda21] 4 Author: A U Thor -ok 56 - creating initial files + 1 file changed, 1 insertion(+) + create mode 100644 4.t +Branch 'my-side' set up to track remote branch 'side' from 'origin'. +Branch 'local-master' set up to track local branch 'master'. +Branch 'fun@ny' set up to track remote branch 'side' from 'origin'. +Branch '@funny' set up to track remote branch 'side' from 'origin'. +Branch 'funny@' set up to track remote branch 'side' from 'origin'. +From .. + * [new branch] master -> master-only/master + * [new tag] 3 -> 3 +ok 1 - setup -expecting success of 1400.57 'git commit logged updates': - test_cmp expect .git/logs/$m +expecting success of 1507.2 '@{upstream} resolves to correct full name': + echo refs/remotes/origin/master >expect && + git -C clone rev-parse --symbolic-full-name @{upstream} >actual && + test_cmp expect actual && + git -C clone rev-parse --symbolic-full-name @{UPSTREAM} >actual && + test_cmp expect actual && + git -C clone rev-parse --symbolic-full-name @{UpSTReam} >actual && + test_cmp expect actual -ok 57 - git commit logged updates +ok 2 - @{upstream} resolves to correct full name -expecting success of 1400.58 'git cat-file blob main:F (expect OTHER)': - test OTHER = $(git cat-file blob main:F) +expecting success of 1507.3 '@{u} resolves to correct full name': + echo refs/remotes/origin/master >expect && + git -C clone rev-parse --symbolic-full-name @{u} >actual && + test_cmp expect actual && + git -C clone rev-parse --symbolic-full-name @{U} >actual && + test_cmp expect actual -ok 58 - git cat-file blob main:F (expect OTHER) +ok 3 - @{u} resolves to correct full name -expecting success of 1400.59 'git cat-file blob main@{2005-05-26 23:30}:F (expect TEST)': - test TEST = $(git cat-file blob "main@{2005-05-26 23:30}:F") +expecting success of 1507.4 'my-side@{upstream} resolves to correct full name': + echo refs/remotes/origin/side >expect && + git -C clone rev-parse --symbolic-full-name my-side@{u} >actual && + test_cmp expect actual -ok 59 - git cat-file blob main@{2005-05-26 23:30}:F (expect TEST) +ok 4 - my-side@{upstream} resolves to correct full name -expecting success of 1400.60 'git cat-file blob main@{2005-05-26 23:42}:F (expect OTHER)': - test OTHER = $(git cat-file blob "main@{2005-05-26 23:42}:F") +expecting success of 1507.5 'upstream of branch with @ in middle': + git -C clone rev-parse --symbolic-full-name fun@ny@{u} >actual && + echo refs/remotes/origin/side >expect && + test_cmp expect actual && + git -C clone rev-parse --symbolic-full-name fun@ny@{U} >actual && + test_cmp expect actual -ok 60 - git cat-file blob main@{2005-05-26 23:42}:F (expect OTHER) +ok 5 - upstream of branch with @ in middle -expecting success of 1400.61 'given old value for missing pseudoref, do not create': - test_must_fail git update-ref PSEUDOREF $A $B 2>err && - test_must_fail git rev-parse PSEUDOREF && - test_i18ngrep "unable to resolve reference" err +expecting success of 1507.6 'upstream of branch with @ at start': + git -C clone rev-parse --symbolic-full-name @funny@{u} >actual && + echo refs/remotes/origin/side >expect && + test_cmp expect actual -fatal: ambiguous argument 'PSEUDOREF': unknown revision or path not in the working tree. -Use '--' to separate paths from revisions, like this: -'git [...] -- [...]' -PSEUDOREF -fatal: update_ref failed for ref 'PSEUDOREF': cannot lock ref 'PSEUDOREF': unable to resolve reference 'PSEUDOREF' -ok 61 - given old value for missing pseudoref, do not create +ok 6 - upstream of branch with @ at start -expecting success of 1400.62 'create pseudoref': - git update-ref PSEUDOREF $A && - test $A = $(git rev-parse PSEUDOREF) +expecting success of 1507.7 'upstream of branch with @ at end': + git -C clone rev-parse --symbolic-full-name funny@@{u} >actual && + echo refs/remotes/origin/side >expect && + test_cmp expect actual -ok 62 - create pseudoref +ok 7 - upstream of branch with @ at end -expecting success of 1400.63 'overwrite pseudoref with no old value given': - git update-ref PSEUDOREF $B && - test $B = $(git rev-parse PSEUDOREF) +expecting success of 1507.8 'refs/heads/my-side@{upstream} does not resolve to my-side{upstream}': + test_must_fail git -C clone rev-parse --symbolic-full-name refs/heads/my-side@{upstream} -ok 63 - overwrite pseudoref with no old value given +fatal: no such branch: 'refs/heads/my-side' +ok 8 - refs/heads/my-side@{upstream} does not resolve to my-side{upstream} -expecting success of 1400.64 'overwrite pseudoref with correct old value': - git update-ref PSEUDOREF $C $B && - test $C = $(git rev-parse PSEUDOREF) +expecting success of 1507.9 'my-side@{u} resolves to correct commit': + git checkout side && + test_commit 5 && + (cd clone && git fetch) && + echo 2 >expect && + commit_subject my-side >actual && + test_cmp expect actual && + echo 5 >expect && + commit_subject my-side@{u} >actual -ok 64 - overwrite pseudoref with correct old value +Switched to branch 'side' +[side e3f9627] 5 + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 5.t +From /build/git-2.30.2/t/trash directory.t1507-rev-parse-upstream/. + d0dcf97..8f489d0 master -> origin/master + 82335b2..e3f9627 side -> origin/side + * [new tag] 5 -> 5 +ok 9 - my-side@{u} resolves to correct commit -expecting success of 1400.65 'do not overwrite pseudoref with wrong old value': - test_must_fail git update-ref PSEUDOREF $D $E 2>err && - test $C = $(git rev-parse PSEUDOREF) && - test_i18ngrep "cannot lock ref.*expected" err +expecting success of 1507.10 'not-tracking@{u} fails': + test_must_fail git -C clone rev-parse --symbolic-full-name non-tracking@{u} && + (cd clone && git checkout --no-track -b non-tracking) && + test_must_fail git -C clone rev-parse --symbolic-full-name non-tracking@{u} -fatal: update_ref failed for ref 'PSEUDOREF': cannot lock ref 'PSEUDOREF': is at 3cceb89b690679aecbe1db39079f99221f1aaaa6 but expected a6166d2809963b1da1148e6922729c21214390c8 -ok 65 - do not overwrite pseudoref with wrong old value +fatal: no such branch: 'non-tracking' +Switched to a new branch 'non-tracking' +fatal: no upstream configured for branch 'non-tracking' +ok 10 - not-tracking@{u} fails -expecting success of 1400.66 'delete pseudoref': - git update-ref -d PSEUDOREF && - test_must_fail git rev-parse PSEUDOREF +expecting success of 1507.11 '@{u}@{1} resolves correctly': + test_commit 6 && + (cd clone && git fetch) && + echo 5 >expect && + commit_subject my-side@{u}@{1} >actual && + test_cmp expect actual && + commit_subject my-side@{U}@{1} >actual && + test_cmp expect actual -fatal: ambiguous argument 'PSEUDOREF': unknown revision or path not in the working tree. -Use '--' to separate paths from revisions, like this: -'git [...] -- [...]' -PSEUDOREF -ok 66 - delete pseudoref +[side 8bf5882] 6 + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 6.t +From /build/git-2.30.2/t/trash directory.t1507-rev-parse-upstream/. + e3f9627..8bf5882 side -> origin/side + * [new tag] 6 -> 6 +ok 11 - @{u}@{1} resolves correctly -expecting success of 1400.67 'do not delete pseudoref with wrong old value': - git update-ref PSEUDOREF $A && - test_must_fail git update-ref -d PSEUDOREF $B 2>err && - test $A = $(git rev-parse PSEUDOREF) && - test_i18ngrep "cannot lock ref.*expected" err +expecting success of 1507.12 '@{u} without specifying branch fails on a detached HEAD': + git checkout HEAD^0 && + test_must_fail git rev-parse @{u} && + test_must_fail git rev-parse @{U} -error: cannot lock ref 'PSEUDOREF': is at 102939797ab91a4f201d131418d2c9d919dcdd2c but expected 56d5c1374e8028a1e122ab046ab7b98165342dc4 -ok 67 - do not delete pseudoref with wrong old value +Note: switching to 'HEAD^0'. -expecting success of 1400.68 'delete pseudoref with correct old value': - git update-ref -d PSEUDOREF $A && - test_must_fail git rev-parse PSEUDOREF +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. -fatal: ambiguous argument 'PSEUDOREF': unknown revision or path not in the working tree. -Use '--' to separate paths from revisions, like this: -'git [...] -- [...]' -PSEUDOREF -ok 68 - delete pseudoref with correct old value +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: -expecting success of 1400.69 'create pseudoref with old OID zero': - git update-ref PSEUDOREF $A $Z && - test $A = $(git rev-parse PSEUDOREF) + git switch -c -ok 69 - create pseudoref with old OID zero +Or undo this operation with: -expecting success of 1400.70 'do not overwrite pseudoref with old OID zero': - test_when_finished git update-ref -d PSEUDOREF && - test_must_fail git update-ref PSEUDOREF $B $Z 2>err && - test $A = $(git rev-parse PSEUDOREF) && - test_i18ngrep "already exists" err + git switch - -fatal: update_ref failed for ref 'PSEUDOREF': cannot lock ref 'PSEUDOREF': reference already exists -ok 70 - do not overwrite pseudoref with old OID zero +Turn off this advice by setting config variable advice.detachedHead to false -expecting success of 1400.71 'stdin test setup': - echo "$pws" >"$pws" && - git add -- "$pws" && - git commit -m "$pws" +HEAD is now at 8bf5882 6 +fatal: HEAD does not point to a branch +fatal: HEAD does not point to a branch +ok 12 - @{u} without specifying branch fails on a detached HEAD -[main 536da9b] path with space - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 path with space -ok 71 - stdin test setup +expecting success of 1507.13 'checkout -b new my-side@{u} forks from the same': +( + cd clone && + git checkout -b new my-side@{u} && + git rev-parse --symbolic-full-name my-side@{u} >expect && + git rev-parse --symbolic-full-name new@{u} >actual && + test_cmp expect actual +) -expecting success of 1400.72 '-z fails without --stdin': - test_must_fail git update-ref -z $m $m $m 2>err && - test_i18ngrep "usage: git update-ref" err +Switched to a new branch 'new' +Branch 'new' set up to track remote branch 'side' from 'origin'. +ok 13 - checkout -b new my-side@{u} forks from the same -usage: git update-ref [] -d [] -ok 72 - -z fails without --stdin +expecting success of 1507.14 'merge my-side@{u} records the correct name': +( + cd clone && + git checkout master && + test_might_fail git branch -D new && + git branch -t new my-side@{u} && + git merge -s ours new@{u} && + git show -s --pretty=tformat:%s >actual && + echo "Merge remote-tracking branch ${SQ}origin/side${SQ}" >expect && + test_cmp expect actual +) -expecting success of 1400.73 'stdin works with no input': - >stdin && - git update-ref --stdin actual && + test_must_be_empty actual -expecting success of 1400.74 'stdin fails on empty line': - echo "" >stdin && - test_must_fail git update-ref --stdin err && - grep "fatal: empty command in input" err +Previous HEAD position was 8bf5882 6 +Switched to a new branch 'other' +Branch 'other' set up to track local branch 'master'. +Deleted branch master (was 8f489d0). +ok 15 - branch -d other@{u} -fatal: empty command in input -ok 74 - stdin fails on empty line +expecting success of 1507.16 'checkout other@{u}': + git branch -f master HEAD && + git checkout -t -b another master && + git checkout @{u} && + git symbolic-ref HEAD >actual && + echo refs/heads/master >expect && + test_cmp expect actual -expecting success of 1400.75 'stdin fails on only whitespace': - echo " " >stdin && - test_must_fail git update-ref --stdin err && - grep "fatal: whitespace before command: " err +Switched to a new branch 'another' +Branch 'another' set up to track local branch 'master'. +Switched to branch 'master' +ok 16 - checkout other@{u} -fatal: whitespace before command: -ok 75 - stdin fails on only whitespace +expecting success of 1507.17 'branch@{u} works when tracking a local branch': + echo refs/heads/master >expect && + git -C clone rev-parse --symbolic-full-name local-master@{u} >actual && + test_cmp expect actual -expecting success of 1400.76 'stdin fails on leading whitespace': - echo " create $a $m" >stdin && - test_must_fail git update-ref --stdin err && - grep "fatal: whitespace before command: create $a $m" err +ok 17 - branch@{u} works when tracking a local branch -fatal: whitespace before command: create refs/heads/a refs/heads/main -ok 76 - stdin fails on leading whitespace +expecting success of 1507.18 'branch@{u} error message when no upstream': + cat >expect <<-EOF && + fatal: no upstream configured for branch ${SQ}non-tracking${SQ} + EOF + error_message non-tracking@{u} && + test_i18ncmp expect error -expecting success of 1400.77 'stdin fails on unknown command': - echo "unknown $a" >stdin && - test_must_fail git update-ref --stdin err && - grep "fatal: unknown command: unknown $a" err +checking prerequisite: C_LOCALE_OUTPUT -fatal: unknown command: unknown refs/heads/a -ok 77 - stdin fails on unknown command +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false -expecting success of 1400.78 'stdin fails on unbalanced quotes': - echo "create $a \"main" >stdin && - test_must_fail git update-ref --stdin err && - grep "fatal: badly quoted argument: \\\"main" err +) +prerequisite C_LOCALE_OUTPUT ok +ok 18 - branch@{u} error message when no upstream -fatal: badly quoted argument: "main -ok 78 - stdin fails on unbalanced quotes +expecting success of 1507.19 '@{u} error message when no upstream': + cat >expect <<-EOF && + fatal: no upstream configured for branch ${SQ}master${SQ} + EOF + test_must_fail git rev-parse --verify @{u} 2>actual && + test_i18ncmp expect actual -expecting success of 1400.79 'stdin fails on invalid escape': - echo "create $a \"ma\zn\"" >stdin && - test_must_fail git update-ref --stdin err && - grep "fatal: badly quoted argument: \\\"ma\\\\zn\\\"" err +ok 19 - @{u} error message when no upstream -fatal: badly quoted argument: "ma\zn" -ok 79 - stdin fails on invalid escape +expecting success of 1507.20 'branch@{u} error message with misspelt branch': + cat >expect <<-EOF && + fatal: no such branch: ${SQ}no-such-branch${SQ} + EOF + error_message no-such-branch@{u} && + test_i18ncmp expect error -expecting success of 1400.80 'stdin fails on junk after quoted argument': - echo "create \"$a\"main" >stdin && - test_must_fail git update-ref --stdin err && - grep "fatal: unexpected character after quoted argument: \\\"$a\\\"main" err +ok 20 - branch@{u} error message with misspelt branch -fatal: unexpected character after quoted argument: "refs/heads/a"main -ok 80 - stdin fails on junk after quoted argument +expecting success of 1507.21 '@{u} error message when not on a branch': + cat >expect <<-EOF && + fatal: HEAD does not point to a branch + EOF + git checkout HEAD^0 && + test_must_fail git rev-parse --verify @{u} 2>actual && + test_i18ncmp expect actual -expecting success of 1400.81 'stdin fails create with no ref': - echo "create " >stdin && - test_must_fail git update-ref --stdin err && - grep "fatal: create: missing " err +Note: switching to 'HEAD^0'. -fatal: create: missing -ok 81 - stdin fails create with no ref +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. -expecting success of 1400.82 'stdin fails create with no new value': - echo "create $a" >stdin && - test_must_fail git update-ref --stdin err && - grep "fatal: create $a: missing " err +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: -fatal: create refs/heads/a: missing -ok 82 - stdin fails create with no new value + git switch -c -expecting success of 1400.83 'stdin fails create with too many arguments': - echo "create $a $m $m" >stdin && - test_must_fail git update-ref --stdin err && - grep "fatal: create $a: extra input: $m" err +Or undo this operation with: -fatal: create refs/heads/a: extra input: refs/heads/main -ok 83 - stdin fails create with too many arguments + git switch - -expecting success of 1400.84 'stdin fails update with no ref': - echo "update " >stdin && - test_must_fail git update-ref --stdin err && - grep "fatal: update: missing " err +Turn off this advice by setting config variable advice.detachedHead to false -fatal: update: missing -ok 84 - stdin fails update with no ref +HEAD is now at 8f489d0 3 +ok 21 - @{u} error message when not on a branch -expecting success of 1400.85 'stdin fails update with no new value': - echo "update $a" >stdin && - test_must_fail git update-ref --stdin err && - grep "fatal: update $a: missing " err +expecting success of 1507.22 'branch@{u} error message if upstream branch not fetched': + cat >expect <<-EOF && + fatal: upstream branch ${SQ}refs/heads/side${SQ} not stored as a remote-tracking branch + EOF + error_message bad-upstream@{u} && + test_i18ncmp expect error -fatal: update refs/heads/a: missing -ok 85 - stdin fails update with no new value +ok 22 - branch@{u} error message if upstream branch not fetched -expecting success of 1400.86 'stdin fails update with too many arguments': - echo "update $a $m $m $m" >stdin && - test_must_fail git update-ref --stdin err && - grep "fatal: update $a: extra input: $m" err +expecting success of 1507.23 'pull works when tracking a local branch': +( + cd clone && + git checkout local-master && + git pull +) -fatal: update refs/heads/a: extra input: refs/heads/main -ok 86 - stdin fails update with too many arguments +Switched to branch 'local-master' +Your branch is behind 'master' by 4 commits, and can be fast-forwarded. + (use "git pull" to update your local branch) +hint: Pulling without specifying how to reconcile divergent branches is +hint: discouraged. You can squelch this message by running one of the following +hint: commands sometime before your next pull: +hint: +hint: git config pull.rebase false # merge (the default strategy) +hint: git config pull.rebase true # rebase +hint: git config pull.ff only # fast-forward only +hint: +hint: You can replace "git config" with "git config --global" to set a default +hint: preference for all repositories. You can also pass --rebase, --no-rebase, +hint: or --ff-only on the command line to override the configured default per +hint: invocation. +From . + * branch master -> FETCH_HEAD +Updating 6efda21..ac35135 +Fast-forward +ok 23 - pull works when tracking a local branch -expecting success of 1400.87 'stdin fails delete with no ref': - echo "delete " >stdin && - test_must_fail git update-ref --stdin err && - grep "fatal: delete: missing " err +expecting success of 1507.24 '@{u} works when tracking a local branch': + echo refs/heads/master >expect && + git -C clone rev-parse --symbolic-full-name @{u} >actual && + test_cmp expect actual -fatal: delete: missing -ok 87 - stdin fails delete with no ref +ok 24 - @{u} works when tracking a local branch -expecting success of 1400.88 'stdin fails delete with too many arguments': - echo "delete $a $m $m" >stdin && - test_must_fail git update-ref --stdin err && - grep "fatal: delete $a: extra input: $m" err +expecting success of 1507.25 'log -g other@{u}': + commit=$(git rev-parse HEAD) && + cat >expect <<-EOF && + commit $commit + Reflog: master@{0} (C O Mitter ) + Reflog message: branch: Created from HEAD + Author: A U Thor + Date: Thu Apr 7 15:15:13 2005 -0700 -fatal: delete refs/heads/a: extra input: refs/heads/main -ok 88 - stdin fails delete with too many arguments + 3 + EOF + git log -1 -g other@{u} >actual && + test_cmp expect actual -expecting success of 1400.89 'stdin fails verify with too many arguments': - echo "verify $a $m $m" >stdin && - test_must_fail git update-ref --stdin err && - grep "fatal: verify $a: extra input: $m" err +ok 25 - log -g other@{u} -fatal: verify refs/heads/a: extra input: refs/heads/main -ok 89 - stdin fails verify with too many arguments +expecting success of 1507.26 'log -g other@{u}@{now}': + commit=$(git rev-parse HEAD) && + cat >expect <<-EOF && + commit $commit + Reflog: master@{Thu Apr 7 15:17:13 2005 -0700} (C O Mitter ) + Reflog message: branch: Created from HEAD + Author: A U Thor + Date: Thu Apr 7 15:15:13 2005 -0700 -expecting success of 1400.90 'stdin fails option with unknown name': - echo "option unknown" >stdin && - test_must_fail git update-ref --stdin err && - grep "fatal: option unknown: unknown" err + 3 + EOF + git log -1 -g other@{u}@{now} >actual && + test_cmp expect actual -fatal: option unknown: unknown -ok 90 - stdin fails option with unknown name +ok 26 - log -g other@{u}@{now} -expecting success of 1400.91 'stdin fails with duplicate refs': - cat >stdin <<-EOF && - create $a $m - create $b $m - create $a $m - EOF - test_must_fail git update-ref --stdin err && - test_i18ngrep "fatal: multiple updates for ref '$a' not allowed" err +expecting success of 1507.27 '@{reflog}-parsing does not look beyond colon': + echo content >@{yesterday} && + git add @{yesterday} && + git commit -m "funny reflog file" && + git hash-object @{yesterday} >expect && + git rev-parse HEAD:@{yesterday} >actual -fatal: multiple updates for ref 'refs/heads/a' not allowed -ok 91 - stdin fails with duplicate refs +[detached HEAD eae0df2] funny reflog file + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 @{yesterday} +ok 27 - @{reflog}-parsing does not look beyond colon -expecting success of 1400.92 'stdin create ref works': - echo "create $a $m" >stdin && - git update-ref --stdin expect && - git rev-parse $a >actual && - test_cmp expect actual +expecting success of 1507.28 '@{upstream}-parsing does not look beyond colon': + echo content >@{upstream} && + git add @{upstream} && + git commit -m "funny upstream file" && + git hash-object @{upstream} >expect && + git rev-parse HEAD:@{upstream} >actual -ok 92 - stdin create ref works +[detached HEAD c358789] funny upstream file + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 @{upstream} +ok 28 - @{upstream}-parsing does not look beyond colon -expecting success of 1400.93 'stdin does not create reflogs by default': - test_when_finished "git update-ref -d $outside" && - echo "create $outside $m" >stdin && - git update-ref --stdin expect && - git rev-parse $outside >actual && - test_cmp expect actual && - test_must_fail git reflog exists $outside +# passed all 28 test(s) +1..28 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t1508-at-combinations.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1508-at-combinations/.git/ +expecting success of 1508.1 'setup': + test_commit master-one && + test_commit master-two && + git checkout -b upstream-branch && + test_commit upstream-one && + test_commit upstream-two && + if test_have_prereq !MINGW + then + git checkout -b @/at-test + fi && + git checkout -b @@/at-test && + git checkout -b @at-test && + git checkout -b old-branch && + test_commit old-one && + test_commit old-two && + git checkout -b new-branch && + test_commit new-one && + test_commit new-two && + git branch -u master old-branch && + git branch -u upstream-branch new-branch -ok 93 - stdin does not create reflogs by default +[master (root-commit) 8ff5a25] master-one + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 master-one.t +[master 8164ab4] master-two + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 master-two.t +Switched to a new branch 'upstream-branch' +[upstream-branch 101729d] upstream-one + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 upstream-one.t +[upstream-branch 77f4b7f] upstream-two + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 upstream-two.t +Switched to a new branch '@/at-test' +Switched to a new branch '@@/at-test' +Switched to a new branch '@at-test' +Switched to a new branch 'old-branch' +[old-branch 4e4e7fa] old-one + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 old-one.t +[old-branch 3273d4d] old-two + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 old-two.t +Switched to a new branch 'new-branch' +[new-branch e49ce93] new-one + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 new-one.t +[new-branch c493e4b] new-two + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 new-two.t +Branch 'old-branch' set up to track local branch 'master'. +Branch 'new-branch' set up to track local branch 'upstream-branch'. +ok 1 - setup -expecting success of 1400.94 'stdin creates reflogs with --create-reflog': - test_when_finished "git update-ref -d $outside" && - echo "create $outside $m" >stdin && - git update-ref --create-reflog --stdin expect && - git rev-parse $outside >actual && - test_cmp expect actual && - git reflog exists $outside +expecting success of 1508.2 'HEAD = refs/heads/new-branch': + echo 'refs/heads/new-branch' >expect && + if test 'ref' = 'commit' + then + git log -1 --format=%s 'HEAD' >actual + elif test 'ref' = 'ref' + then + git rev-parse --symbolic-full-name 'HEAD' >actual + else + git cat-file -p 'HEAD' >actual + fi && + test_cmp expect actual + +ok 2 - HEAD = refs/heads/new-branch -ok 94 - stdin creates reflogs with --create-reflog +expecting success of 1508.3 '@{1} = new-one': + echo 'new-one' >expect && + if test 'commit' = 'commit' + then + git log -1 --format=%s '@{1}' >actual + elif test 'commit' = 'ref' + then + git rev-parse --symbolic-full-name '@{1}' >actual + else + git cat-file -p '@{1}' >actual + fi && + test_cmp expect actual + +ok 3 - @{1} = new-one -expecting success of 1400.95 'stdin succeeds with quoted argument': - git update-ref -d $a && - echo "create $a \"$m\"" >stdin && - git update-ref --stdin expect && - git rev-parse $a >actual && - test_cmp expect actual +expecting success of 1508.4 'HEAD@{1} = new-one': + echo 'new-one' >expect && + if test 'commit' = 'commit' + then + git log -1 --format=%s 'HEAD@{1}' >actual + elif test 'commit' = 'ref' + then + git rev-parse --symbolic-full-name 'HEAD@{1}' >actual + else + git cat-file -p 'HEAD@{1}' >actual + fi && + test_cmp expect actual + +ok 4 - HEAD@{1} = new-one -ok 95 - stdin succeeds with quoted argument +expecting success of 1508.5 '@{now} = new-two': + echo 'new-two' >expect && + if test 'commit' = 'commit' + then + git log -1 --format=%s '@{now}' >actual + elif test 'commit' = 'ref' + then + git rev-parse --symbolic-full-name '@{now}' >actual + else + git cat-file -p '@{now}' >actual + fi && + test_cmp expect actual + +ok 5 - @{now} = new-two -expecting success of 1400.96 'stdin succeeds with escaped character': - git update-ref -d $a && - echo "create $a \"ma\\151n\"" >stdin && - git update-ref --stdin expect && - git rev-parse $a >actual && - test_cmp expect actual +expecting success of 1508.6 'HEAD@{now} = new-two': + echo 'new-two' >expect && + if test 'commit' = 'commit' + then + git log -1 --format=%s 'HEAD@{now}' >actual + elif test 'commit' = 'ref' + then + git rev-parse --symbolic-full-name 'HEAD@{now}' >actual + else + git cat-file -p 'HEAD@{now}' >actual + fi && + test_cmp expect actual + +ok 6 - HEAD@{now} = new-two -ok 96 - stdin succeeds with escaped character +expecting success of 1508.7 '@{-1} = refs/heads/old-branch': + echo 'refs/heads/old-branch' >expect && + if test 'ref' = 'commit' + then + git log -1 --format=%s '@{-1}' >actual + elif test 'ref' = 'ref' + then + git rev-parse --symbolic-full-name '@{-1}' >actual + else + git cat-file -p '@{-1}' >actual + fi && + test_cmp expect actual + +ok 7 - @{-1} = refs/heads/old-branch -expecting success of 1400.97 'stdin update ref creates with zero old value': - echo "update $b $m $Z" >stdin && - git update-ref --stdin expect && - git rev-parse $b >actual && - test_cmp expect actual && - git update-ref -d $b +expecting success of 1508.8 '@{-1}@{0} = old-two': + echo 'old-two' >expect && + if test 'commit' = 'commit' + then + git log -1 --format=%s '@{-1}@{0}' >actual + elif test 'commit' = 'ref' + then + git rev-parse --symbolic-full-name '@{-1}@{0}' >actual + else + git cat-file -p '@{-1}@{0}' >actual + fi && + test_cmp expect actual + +ok 8 - @{-1}@{0} = old-two -ok 97 - stdin update ref creates with zero old value +expecting success of 1508.9 '@{-1}@{1} = old-one': + echo 'old-one' >expect && + if test 'commit' = 'commit' + then + git log -1 --format=%s '@{-1}@{1}' >actual + elif test 'commit' = 'ref' + then + git rev-parse --symbolic-full-name '@{-1}@{1}' >actual + else + git cat-file -p '@{-1}@{1}' >actual + fi && + test_cmp expect actual + +ok 9 - @{-1}@{1} = old-one -expecting success of 1400.98 'stdin update ref creates with empty old value': - echo "update $b $m $E" >stdin && - git update-ref --stdin expect && - git rev-parse $b >actual && - test_cmp expect actual +expecting success of 1508.10 '@{u} = refs/heads/upstream-branch': + echo 'refs/heads/upstream-branch' >expect && + if test 'ref' = 'commit' + then + git log -1 --format=%s '@{u}' >actual + elif test 'ref' = 'ref' + then + git rev-parse --symbolic-full-name '@{u}' >actual + else + git cat-file -p '@{u}' >actual + fi && + test_cmp expect actual + +ok 10 - @{u} = refs/heads/upstream-branch -ok 98 - stdin update ref creates with empty old value +expecting success of 1508.11 'HEAD@{u} = refs/heads/upstream-branch': + echo 'refs/heads/upstream-branch' >expect && + if test 'ref' = 'commit' + then + git log -1 --format=%s 'HEAD@{u}' >actual + elif test 'ref' = 'ref' + then + git rev-parse --symbolic-full-name 'HEAD@{u}' >actual + else + git cat-file -p 'HEAD@{u}' >actual + fi && + test_cmp expect actual + +ok 11 - HEAD@{u} = refs/heads/upstream-branch -expecting success of 1400.99 'stdin create ref works with path with space to blob': - echo "create refs/blobs/pws \"$m:$pws\"" >stdin && - git update-ref --stdin expect && - git rev-parse refs/blobs/pws >actual && - test_cmp expect actual && - git update-ref -d refs/blobs/pws +expecting success of 1508.12 '@{u}@{1} = upstream-one': + echo 'upstream-one' >expect && + if test 'commit' = 'commit' + then + git log -1 --format=%s '@{u}@{1}' >actual + elif test 'commit' = 'ref' + then + git rev-parse --symbolic-full-name '@{u}@{1}' >actual + else + git cat-file -p '@{u}@{1}' >actual + fi && + test_cmp expect actual + +ok 12 - @{u}@{1} = upstream-one -ok 99 - stdin create ref works with path with space to blob +expecting success of 1508.13 '@{-1}@{u} = refs/heads/master': + echo 'refs/heads/master' >expect && + if test 'ref' = 'commit' + then + git log -1 --format=%s '@{-1}@{u}' >actual + elif test 'ref' = 'ref' + then + git rev-parse --symbolic-full-name '@{-1}@{u}' >actual + else + git cat-file -p '@{-1}@{u}' >actual + fi && + test_cmp expect actual + +ok 13 - @{-1}@{u} = refs/heads/master -expecting success of 1400.100 'stdin update ref fails with wrong old value': - echo "update $c $m $m~1" >stdin && - test_must_fail git update-ref --stdin err && - grep "fatal: cannot lock ref '$c'" err && - test_must_fail git rev-parse --verify -q $c +expecting success of 1508.14 '@{-1}@{u}@{1} = master-one': + echo 'master-one' >expect && + if test 'commit' = 'commit' + then + git log -1 --format=%s '@{-1}@{u}@{1}' >actual + elif test 'commit' = 'ref' + then + git rev-parse --symbolic-full-name '@{-1}@{u}@{1}' >actual + else + git cat-file -p '@{-1}@{u}@{1}' >actual + fi && + test_cmp expect actual + +ok 14 - @{-1}@{u}@{1} = master-one -fatal: cannot lock ref 'refs/heads/c': unable to resolve reference 'refs/heads/c' -ok 100 - stdin update ref fails with wrong old value +expecting success of 1508.15 '@ = new-two': + echo 'new-two' >expect && + if test 'commit' = 'commit' + then + git log -1 --format=%s '@' >actual + elif test 'commit' = 'ref' + then + git rev-parse --symbolic-full-name '@' >actual + else + git cat-file -p '@' >actual + fi && + test_cmp expect actual + +ok 15 - @ = new-two -expecting success of 1400.101 'stdin update ref fails with bad old value': - echo "update $c $m does-not-exist" >stdin && - test_must_fail git update-ref --stdin err && - grep "fatal: update $c: invalid : does-not-exist" err && - test_must_fail git rev-parse --verify -q $c +expecting success of 1508.16 '@@{u} = refs/heads/upstream-branch': + echo 'refs/heads/upstream-branch' >expect && + if test 'ref' = 'commit' + then + git log -1 --format=%s '@@{u}' >actual + elif test 'ref' = 'ref' + then + git rev-parse --symbolic-full-name '@@{u}' >actual + else + git cat-file -p '@@{u}' >actual + fi && + test_cmp expect actual + +ok 16 - @@{u} = refs/heads/upstream-branch -fatal: update refs/heads/c: invalid : does-not-exist -ok 101 - stdin update ref fails with bad old value +expecting success of 1508.17 '@@/at-test = refs/heads/@@/at-test': + echo 'refs/heads/@@/at-test' >expect && + if test 'ref' = 'commit' + then + git log -1 --format=%s '@@/at-test' >actual + elif test 'ref' = 'ref' + then + git rev-parse --symbolic-full-name '@@/at-test' >actual + else + git cat-file -p '@@/at-test' >actual + fi && + test_cmp expect actual + +ok 17 - @@/at-test = refs/heads/@@/at-test -expecting success of 1400.102 'stdin create ref fails with bad new value': - echo "create $c does-not-exist" >stdin && - test_must_fail git update-ref --stdin err && - grep "fatal: create $c: invalid : does-not-exist" err && - test_must_fail git rev-parse --verify -q $c +expecting success of 1508.18 '@/at-test = refs/heads/@/at-test': + echo 'refs/heads/@/at-test' >expect && + if test 'ref' = 'commit' + then + git log -1 --format=%s '@/at-test' >actual + elif test 'ref' = 'ref' + then + git rev-parse --symbolic-full-name '@/at-test' >actual + else + git cat-file -p '@/at-test' >actual + fi && + test_cmp expect actual + +ok 18 - @/at-test = refs/heads/@/at-test -fatal: create refs/heads/c: invalid : does-not-exist -ok 102 - stdin create ref fails with bad new value +expecting success of 1508.19 '@at-test = refs/heads/@at-test': + echo 'refs/heads/@at-test' >expect && + if test 'ref' = 'commit' + then + git log -1 --format=%s '@at-test' >actual + elif test 'ref' = 'ref' + then + git rev-parse --symbolic-full-name '@at-test' >actual + else + git cat-file -p '@at-test' >actual + fi && + test_cmp expect actual + +ok 19 - @at-test = refs/heads/@at-test -expecting success of 1400.103 'stdin create ref fails with zero new value': - echo "create $c " >stdin && - test_must_fail git update-ref --stdin err && - grep "fatal: create $c: zero " err && - test_must_fail git rev-parse --verify -q $c +expecting success of 1508.20 '@{u}@{-1} is nonsensical': + test_must_fail git rev-parse --verify '@{u}@{-1}' + +fatal: Needed a single revision +ok 20 - @{u}@{-1} is nonsensical -fatal: create refs/heads/c: zero -ok 103 - stdin create ref fails with zero new value +expecting success of 1508.21 '@{0}@{0} is nonsensical': + test_must_fail git rev-parse --verify '@{0}@{0}' + +fatal: Needed a single revision +ok 21 - @{0}@{0} is nonsensical -expecting success of 1400.104 'stdin update ref works with right old value': - echo "update $b $m~1 $m" >stdin && - git update-ref --stdin expect && - git rev-parse $b >actual && - test_cmp expect actual +expecting success of 1508.22 '@{1}@{u} is nonsensical': + test_must_fail git rev-parse --verify '@{1}@{u}' + +fatal: no such branch: '@{1}' +ok 22 - @{1}@{u} is nonsensical -ok 104 - stdin update ref works with right old value +expecting success of 1508.23 'HEAD@{-1} is nonsensical': + test_must_fail git rev-parse --verify 'HEAD@{-1}' + +fatal: Needed a single revision +ok 23 - HEAD@{-1} is nonsensical -expecting success of 1400.105 'stdin delete ref fails with wrong old value': - echo "delete $a $m~1" >stdin && - test_must_fail git update-ref --stdin err && - grep "fatal: cannot lock ref '$a'" err && - git rev-parse $m >expect && - git rev-parse $a >actual && - test_cmp expect actual +expecting success of 1508.24 '@{-1}@{-1} is nonsensical': + test_must_fail git rev-parse --verify '@{-1}@{-1}' + +fatal: Needed a single revision +ok 24 - @{-1}@{-1} is nonsensical -fatal: cannot lock ref 'refs/heads/a': is at 536da9bc9e8e6d0baf01b41cf3cc49bb819559e6 but expected 29d1ccdc7ee9fe415beb2415b6206b8a20f76b1c -ok 105 - stdin delete ref fails with wrong old value +expecting success of 1508.25 'HEAD@{3} = old-two': + echo 'old-two' >expect && + if test 'commit' = 'commit' + then + git log -1 --format=%s 'HEAD@{3}' >actual + elif test 'commit' = 'ref' + then + git rev-parse --symbolic-full-name 'HEAD@{3}' >actual + else + git cat-file -p 'HEAD@{3}' >actual + fi && + test_cmp expect actual + +ok 25 - HEAD@{3} = old-two -expecting success of 1400.106 'stdin delete ref fails with zero old value': - echo "delete $a " >stdin && - test_must_fail git update-ref --stdin err && - grep "fatal: delete $a: zero " err && - git rev-parse $m >expect && - git rev-parse $a >actual && - test_cmp expect actual +expecting success of 1508.26 '@{3} is nonsensical': + test_must_fail git rev-parse --verify '@{3}' + +fatal: log for 'new-branch' only has 3 entries +ok 26 - @{3} is nonsensical -fatal: delete refs/heads/a: zero -ok 106 - stdin delete ref fails with zero old value +expecting success of 1508.27 'switch to old-branch': + git checkout old-branch -expecting success of 1400.107 'stdin update symref works option no-deref': - git symbolic-ref TESTSYMREF $b && - cat >stdin <<-EOF && - option no-deref - update TESTSYMREF $a $b - EOF - git update-ref --stdin expect && - git rev-parse $a >actual && - test_cmp expect actual && - git rev-parse $m~1 >expect && - git rev-parse $b >actual && - test_cmp expect actual +Switched to branch 'old-branch' +Your branch is ahead of 'master' by 4 commits. + (use "git push" to publish your local commits) +ok 27 - switch to old-branch -ok 107 - stdin update symref works option no-deref +expecting success of 1508.28 'HEAD = refs/heads/old-branch': + echo 'refs/heads/old-branch' >expect && + if test 'ref' = 'commit' + then + git log -1 --format=%s 'HEAD' >actual + elif test 'ref' = 'ref' + then + git rev-parse --symbolic-full-name 'HEAD' >actual + else + git cat-file -p 'HEAD' >actual + fi && + test_cmp expect actual + +ok 28 - HEAD = refs/heads/old-branch -expecting success of 1400.108 'stdin delete symref works option no-deref': - git symbolic-ref TESTSYMREF $b && - cat >stdin <<-EOF && - option no-deref - delete TESTSYMREF $b - EOF - git update-ref --stdin expect && - git rev-parse $b >actual && - test_cmp expect actual +expecting success of 1508.29 'HEAD@{1} = new-two': + echo 'new-two' >expect && + if test 'commit' = 'commit' + then + git log -1 --format=%s 'HEAD@{1}' >actual + elif test 'commit' = 'ref' + then + git rev-parse --symbolic-full-name 'HEAD@{1}' >actual + else + git cat-file -p 'HEAD@{1}' >actual + fi && + test_cmp expect actual + +ok 29 - HEAD@{1} = new-two -ok 108 - stdin delete symref works option no-deref +expecting success of 1508.30 '@{1} = old-one': + echo 'old-one' >expect && + if test 'commit' = 'commit' + then + git log -1 --format=%s '@{1}' >actual + elif test 'commit' = 'ref' + then + git rev-parse --symbolic-full-name '@{1}' >actual + else + git cat-file -p '@{1}' >actual + fi && + test_cmp expect actual + +ok 30 - @{1} = old-one -expecting success of 1400.109 'stdin update symref works flag --no-deref': - git symbolic-ref TESTSYMREFONE $b && - git symbolic-ref TESTSYMREFTWO $b && - cat >stdin <<-EOF && - update TESTSYMREFONE $a $b - update TESTSYMREFTWO $a $b - EOF - git update-ref --no-deref --stdin expect && - git rev-parse $a $a >actual && - test_cmp expect actual && - git rev-parse $m~1 >expect && - git rev-parse $b >actual && - test_cmp expect actual +expecting success of 1508.31 'create path with @': + echo content >normal && + echo content >fun@ny && + git add normal fun@ny && + git commit -m "funny path" -ok 109 - stdin update symref works flag --no-deref +[old-branch 9d022ac] funny path + Author: A U Thor + 2 files changed, 2 insertions(+) + create mode 100644 fun@ny + create mode 100644 normal +ok 31 - create path with @ -expecting success of 1400.110 'stdin delete symref works flag --no-deref': - git symbolic-ref TESTSYMREFONE $b && - git symbolic-ref TESTSYMREFTWO $b && - cat >stdin <<-EOF && - delete TESTSYMREFONE $b - delete TESTSYMREFTWO $b - EOF - git update-ref --no-deref --stdin expect && - git rev-parse $b >actual && - test_cmp expect actual +expecting success of 1508.32 '@:normal = content': + echo 'content' >expect && + if test 'blob' = 'commit' + then + git log -1 --format=%s '@:normal' >actual + elif test 'blob' = 'ref' + then + git rev-parse --symbolic-full-name '@:normal' >actual + else + git cat-file -p '@:normal' >actual + fi && + test_cmp expect actual + +ok 32 - @:normal = content -ok 110 - stdin delete symref works flag --no-deref +expecting success of 1508.33 '@:fun@ny = content': + echo 'content' >expect && + if test 'blob' = 'commit' + then + git log -1 --format=%s '@:fun@ny' >actual + elif test 'blob' = 'ref' + then + git rev-parse --symbolic-full-name '@:fun@ny' >actual + else + git cat-file -p '@:fun@ny' >actual + fi && + test_cmp expect actual + +ok 33 - @:fun@ny = content -expecting success of 1400.111 'stdin delete ref works with right old value': - echo "delete $b $m~1" >stdin && - git update-ref --stdin a-blob && + git tag -a -m blob blob-tag $(git hash-object -w a-blob) && + mkdir a-tree && + echo moreblobs >a-tree/another-blob && + git add . && + TREE_SHA1=$(git write-tree) && + git tag -a -m tree tree-tag "$TREE_SHA1" && + git commit -m Initial && + git tag -a -m commit commit-tag && + git branch ref && + git checkout master && + echo modified >>a-blob && + git add -u && + git commit -m Modified && + git branch modref && + echo changed! >>a-blob && + git add -u && + git commit -m !Exp && + git branch expref && + echo changed >>a-blob && + git add -u && + git commit -m Changed && + echo changed-again >>a-blob && + git add -u && + git commit -m Changed-again -ok 111 - stdin delete ref works with right old value +[master (root-commit) 543146a] Initial + Author: A U Thor + 2 files changed, 2 insertions(+) + create mode 100644 a-blob + create mode 100644 a-tree/another-blob +Already on 'master' +[master 921b76a] Modified + Author: A U Thor + 1 file changed, 1 insertion(+) +[master e6ae3e8] !Exp + Author: A U Thor + 1 file changed, 1 insertion(+) +[master ee9e0b8] Changed + Author: A U Thor + 1 file changed, 1 insertion(+) +[master 8f5adaa] Changed-again + Author: A U Thor + 1 file changed, 1 insertion(+) +ok 1 - setup -expecting success of 1400.112 'stdin update/create/verify combination works': - cat >stdin <<-EOF && - update $a $m - create $b $m - verify $c - EOF - git update-ref --stdin expect && - git rev-parse $a >actual && - test_cmp expect actual && - git rev-parse $b >actual && - test_cmp expect actual && - test_must_fail git rev-parse --verify -q $c +expecting success of 1511.2 'ref^{non-existent}': + test_must_fail git rev-parse ref^{non-existent} -ok 112 - stdin update/create/verify combination works +fatal: ambiguous argument 'ref^{non-existent}': unknown revision or path not in the working tree. +Use '--' to separate paths from revisions, like this: +'git [...] -- [...]' +ref^{non-existent} +ok 2 - ref^{non-existent} -expecting success of 1400.113 'stdin verify succeeds for correct value': - git rev-parse $m >expect && - echo "verify $m $m" >stdin && - git update-ref --stdin actual && - test_cmp expect actual +expecting success of 1511.3 'ref^{}': + git rev-parse ref >expected && + git rev-parse ref^{} >actual && + test_cmp expected actual && + git rev-parse commit-tag^{} >actual && + test_cmp expected actual -ok 113 - stdin verify succeeds for correct value +ok 3 - ref^{} -expecting success of 1400.114 'stdin verify succeeds for missing reference': - echo "verify refs/heads/missing $Z" >stdin && - git update-ref --stdin expected && + git rev-parse ref^{commit} >actual && + test_cmp expected actual && + git rev-parse commit-tag^{commit} >actual && + test_cmp expected actual && + test_must_fail git rev-parse tree-tag^{commit} && + test_must_fail git rev-parse blob-tag^{commit} -ok 114 - stdin verify succeeds for missing reference +error: tree-tag^{commit}: expected commit type, but the object dereferences to tree type +error: tree-tag^{commit}: expected commit type, but the object dereferences to tree type +fatal: ambiguous argument 'tree-tag^{commit}': unknown revision or path not in the working tree. +Use '--' to separate paths from revisions, like this: +'git [...] -- [...]' +tree-tag^{commit} +error: blob-tag^{commit}: expected commit type, but the object dereferences to blob type +error: blob-tag^{commit}: expected commit type, but the object dereferences to blob type +fatal: ambiguous argument 'blob-tag^{commit}': unknown revision or path not in the working tree. +Use '--' to separate paths from revisions, like this: +'git [...] -- [...]' +blob-tag^{commit} +ok 4 - ref^{commit} -expecting success of 1400.115 'stdin verify treats no value as missing': - echo "verify refs/heads/missing" >stdin && - git update-ref --stdin expected && + git rev-parse ref^{tree} >actual && + test_cmp expected actual && + git rev-parse commit-tag^{tree} >actual && + test_cmp expected actual && + git rev-parse tree-tag^{tree} >actual && + test_cmp expected actual && + test_must_fail git rev-parse blob-tag^{tree} -ok 115 - stdin verify treats no value as missing +error: blob-tag^{tree}: expected tree type, but the object dereferences to blob type +error: blob-tag^{tree}: expected tree type, but the object dereferences to blob type +fatal: ambiguous argument 'blob-tag^{tree}': unknown revision or path not in the working tree. +Use '--' to separate paths from revisions, like this: +'git [...] -- [...]' +blob-tag^{tree} +ok 5 - ref^{tree} -expecting success of 1400.116 'stdin verify fails for wrong value': - git rev-parse $m >expect && - echo "verify $m $m~1" >stdin && - test_must_fail git update-ref --stdin actual && - test_cmp expect actual +expecting success of 1511.6 'ref^{tag}': + test_must_fail git rev-parse HEAD^{tag} && + git rev-parse commit-tag >expected && + git rev-parse commit-tag^{tag} >actual && + test_cmp expected actual -fatal: cannot lock ref 'refs/heads/main': is at 536da9bc9e8e6d0baf01b41cf3cc49bb819559e6 but expected 29d1ccdc7ee9fe415beb2415b6206b8a20f76b1c -ok 116 - stdin verify fails for wrong value +error: HEAD^{tag}: expected tag type, but the object dereferences to tree type +error: HEAD^{tag}: expected tag type, but the object dereferences to tree type +fatal: ambiguous argument 'HEAD^{tag}': unknown revision or path not in the working tree. +Use '--' to separate paths from revisions, like this: +'git [...] -- [...]' +HEAD^{tag} +ok 6 - ref^{tag} -expecting success of 1400.117 'stdin verify fails for mistaken null value': - git rev-parse $m >expect && - echo "verify $m $Z" >stdin && - test_must_fail git update-ref --stdin actual && - test_cmp expect actual +expecting success of 1511.7 'ref^{/.}': + git rev-parse master >expected && + git rev-parse master^{/.} >actual && + test_cmp expected actual -fatal: cannot lock ref 'refs/heads/main': reference already exists -ok 117 - stdin verify fails for mistaken null value +ok 7 - ref^{/.} -expecting success of 1400.118 'stdin verify fails for mistaken empty value': - M=$(git rev-parse $m) && - test_when_finished "git update-ref $m $M" && - git rev-parse $m >expect && - echo "verify $m" >stdin && - test_must_fail git update-ref --stdin actual && - test_cmp expect actual +expecting success of 1511.8 'ref^{/non-existent}': + test_must_fail git rev-parse master^{/non-existent} -fatal: cannot lock ref 'refs/heads/main': reference already exists -ok 118 - stdin verify fails for mistaken empty value +fatal: ambiguous argument 'master^{/non-existent}': unknown revision or path not in the working tree. +Use '--' to separate paths from revisions, like this: +'git [...] -- [...]' +master^{/non-existent} +ok 8 - ref^{/non-existent} -expecting success of 1400.119 'stdin update refs works with identity updates': - cat >stdin <<-EOF && - update $a $m $m - update $b $m $m - update $c $Z $E - EOF - git update-ref --stdin expect && - git rev-parse $a >actual && - test_cmp expect actual && - git rev-parse $b >actual && - test_cmp expect actual && - test_must_fail git rev-parse --verify -q $c +expecting success of 1511.9 'ref^{/Initial}': + git rev-parse ref >expected && + git rev-parse master^{/Initial} >actual && + test_cmp expected actual -ok 119 - stdin update refs works with identity updates +ok 9 - ref^{/Initial} -expecting success of 1400.120 'stdin update refs fails with wrong old value': - git update-ref $c $m && - cat >stdin <<-EOF && - update $a $m $m - update $b $m $m - update $c - EOF - test_must_fail git update-ref --stdin err && - grep "fatal: cannot lock ref '$c'" err && - git rev-parse $m >expect && - git rev-parse $a >actual && - test_cmp expect actual && - git rev-parse $b >actual && - test_cmp expect actual && - git rev-parse $c >actual && - test_cmp expect actual +expecting success of 1511.10 'ref^{/!Exp}': + test_must_fail git rev-parse master^{/!Exp} -fatal: cannot lock ref 'refs/heads/c': reference already exists -ok 120 - stdin update refs fails with wrong old value +fatal: ambiguous argument 'master^{/!Exp}': unknown revision or path not in the working tree. +Use '--' to separate paths from revisions, like this: +'git [...] -- [...]' +master^{/!Exp} +ok 10 - ref^{/!Exp} -expecting success of 1400.121 'stdin delete refs works with packed and loose refs': - git pack-refs --all && - git update-ref $c $m~1 && - cat >stdin <<-EOF && - delete $a $m - update $b $Z $m - update $c $E $m~1 - EOF - git update-ref --stdin [...] -- [...]' +master^{/!} +ok 11 - ref^{/!} -expecting success of 1400.122 'stdin -z works on empty input': - >stdin && - git update-ref -z --stdin expected && + git rev-parse master^{/!!Exp} >actual && + test_cmp expected actual -536da9bc9e8e6d0baf01b41cf3cc49bb819559e6 -ok 122 - stdin -z works on empty input +ok 12 - ref^{/!!Exp} -expecting success of 1400.123 'stdin -z fails on empty line': - echo "" >stdin && - test_must_fail git update-ref -z --stdin err && - grep "fatal: whitespace before command: " err +expecting success of 1511.13 'ref^{/!-}': + test_must_fail git rev-parse master^{/!-} -fatal: whitespace before command: -ok 123 - stdin -z fails on empty line +fatal: ambiguous argument 'master^{/!-}': unknown revision or path not in the working tree. +Use '--' to separate paths from revisions, like this: +'git [...] -- [...]' +master^{/!-} +ok 13 - ref^{/!-} -expecting success of 1400.124 'stdin -z fails on empty command': - printf $F "" >stdin && - test_must_fail git update-ref -z --stdin err && - grep "fatal: empty command in input" err +expecting success of 1511.14 'ref^{/!-.}': + test_must_fail git rev-parse master^{/!-.} -fatal: empty command in input -ok 124 - stdin -z fails on empty command +fatal: ambiguous argument 'master^{/!-.}': unknown revision or path not in the working tree. +Use '--' to separate paths from revisions, like this: +'git [...] -- [...]' +master^{/!-.} +ok 14 - ref^{/!-.} -expecting success of 1400.125 'stdin -z fails on only whitespace': - printf $F " " >stdin && - test_must_fail git update-ref -z --stdin err && - grep "fatal: whitespace before command: " err +expecting success of 1511.15 'ref^{/!-non-existent}': + git rev-parse master >expected && + git rev-parse master^{/!-non-existent} >actual && + test_cmp expected actual -fatal: whitespace before command: -ok 125 - stdin -z fails on only whitespace +ok 15 - ref^{/!-non-existent} -expecting success of 1400.126 'stdin -z fails on leading whitespace': - printf $F " create $a" "$m" >stdin && - test_must_fail git update-ref -z --stdin err && - grep "fatal: whitespace before command: create $a" err +expecting success of 1511.16 'ref^{/!-Changed}': + git rev-parse expref >expected && + git rev-parse master^{/!-Changed} >actual && + test_cmp expected actual -fatal: whitespace before command: create refs/heads/a -ok 126 - stdin -z fails on leading whitespace +ok 16 - ref^{/!-Changed} -expecting success of 1400.127 'stdin -z fails on unknown command': - printf $F "unknown $a" >stdin && - test_must_fail git update-ref -z --stdin err && - grep "fatal: unknown command: unknown $a" err +expecting success of 1511.17 'ref^{/!-!Exp}': + git rev-parse modref >expected && + git rev-parse expref^{/!-!Exp} >actual && + test_cmp expected actual -fatal: unknown command: unknown refs/heads/a -ok 127 - stdin -z fails on unknown command +ok 17 - ref^{/!-!Exp} -expecting success of 1400.128 'stdin -z fails create with no ref': - printf $F "create " >stdin && - test_must_fail git update-ref -z --stdin err && - grep "fatal: create: missing " err +# passed all 17 test(s) +1..17 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t1513-rev-parse-prefix.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1513-rev-parse-prefix/.git/ +expecting success of 1513.1 'setup': + mkdir -p sub1/sub2 && + echo top >top && + echo file1 >sub1/file1 && + echo file2 >sub1/sub2/file2 && + git add top sub1/file1 sub1/sub2/file2 && + git commit -m commit -fatal: create: missing -ok 128 - stdin -z fails create with no ref +[master (root-commit) 2a70803] commit + Author: A U Thor + 3 files changed, 3 insertions(+) + create mode 100644 sub1/file1 + create mode 100644 sub1/sub2/file2 + create mode 100644 top +ok 1 - setup -expecting success of 1400.129 'stdin -z fails create with no new value': - printf $F "create $a" >stdin && - test_must_fail git update-ref -z --stdin err && - grep "fatal: create $a: unexpected end of input when reading " err +expecting success of 1513.2 'empty prefix -- file': + git rev-parse --prefix "" -- top sub1/file1 >actual && + cat <<-\EOF >expected && + -- + top + sub1/file1 + EOF + test_cmp expected actual -fatal: create refs/heads/a: unexpected end of input when reading -ok 129 - stdin -z fails create with no new value +ok 2 - empty prefix -- file -expecting success of 1400.130 'stdin -z fails create with too many arguments': - printf $F "create $a" "$m" "$m" >stdin && - test_must_fail git update-ref -z --stdin err && - grep "fatal: unknown command: $m" err +expecting success of 1513.3 'valid prefix -- file': + git rev-parse --prefix sub1/ -- file1 sub2/file2 >actual && + cat <<-\EOF >expected && + -- + sub1/file1 + sub1/sub2/file2 + EOF + test_cmp expected actual -fatal: unknown command: refs/heads/main -ok 130 - stdin -z fails create with too many arguments +ok 3 - valid prefix -- file -expecting success of 1400.131 'stdin -z fails update with no ref': - printf $F "update " >stdin && - test_must_fail git update-ref -z --stdin err && - grep "fatal: update: missing " err +expecting success of 1513.4 'valid prefix -- ../file': + git rev-parse --prefix sub1/ -- ../top sub2/file2 >actual && + cat <<-\EOF >expected && + -- + sub1/../top + sub1/sub2/file2 + EOF + test_cmp expected actual -fatal: update: missing -ok 131 - stdin -z fails update with no ref +ok 4 - valid prefix -- ../file -expecting success of 1400.132 'stdin -z fails update with too few args': - printf $F "update $a" "$m" >stdin && - test_must_fail git update-ref -z --stdin err && - grep "fatal: update $a: unexpected end of input when reading " err +expecting success of 1513.5 'empty prefix HEAD:./path': + git rev-parse --prefix "" HEAD:./top >actual && + git rev-parse HEAD:top >expected && + test_cmp expected actual -fatal: update refs/heads/a: unexpected end of input when reading -ok 132 - stdin -z fails update with too few args +ok 5 - empty prefix HEAD:./path -expecting success of 1400.133 'stdin -z emits warning with empty new value': - git update-ref $a $m && - printf $F "update $a" "" "" >stdin && - git update-ref -z --stdin err && - grep "warning: update $a: missing , treating as zero" err && - test_must_fail git rev-parse --verify -q $a +expecting success of 1513.6 'valid prefix HEAD:./path': + git rev-parse --prefix sub1/ HEAD:./file1 >actual && + git rev-parse HEAD:sub1/file1 >expected && + test_cmp expected actual -warning: update refs/heads/a: missing , treating as zero -ok 133 - stdin -z emits warning with empty new value +ok 6 - valid prefix HEAD:./path -expecting success of 1400.134 'stdin -z fails update with no new value': - printf $F "update $a" >stdin && - test_must_fail git update-ref -z --stdin err && - grep "fatal: update $a: unexpected end of input when reading " err +expecting success of 1513.7 'valid prefix HEAD:../path': + git rev-parse --prefix sub1/ HEAD:../top >actual && + git rev-parse HEAD:top >expected && + test_cmp expected actual -fatal: update refs/heads/a: unexpected end of input when reading -ok 134 - stdin -z fails update with no new value +ok 7 - valid prefix HEAD:../path -expecting success of 1400.135 'stdin -z fails update with no old value': - printf $F "update $a" "$m" >stdin && - test_must_fail git update-ref -z --stdin err && - grep "fatal: update $a: unexpected end of input when reading " err +expecting success of 1513.8 'prefix ignored with HEAD:top': + git rev-parse --prefix sub1/ HEAD:top >actual && + git rev-parse HEAD:top >expected && + test_cmp expected actual -fatal: update refs/heads/a: unexpected end of input when reading -ok 135 - stdin -z fails update with no old value +ok 8 - prefix ignored with HEAD:top -expecting success of 1400.136 'stdin -z fails update with too many arguments': - printf $F "update $a" "$m" "$m" "$m" >stdin && - test_must_fail git update-ref -z --stdin err && - grep "fatal: unknown command: $m" err +expecting success of 1513.9 'disambiguate path with valid prefix': + git rev-parse --prefix sub1/ file1 >actual && + cat <<-\EOF >expected && + sub1/file1 + EOF + test_cmp expected actual -fatal: unknown command: refs/heads/main -ok 136 - stdin -z fails update with too many arguments +ok 9 - disambiguate path with valid prefix -expecting success of 1400.137 'stdin -z fails delete with no ref': - printf $F "delete " >stdin && - test_must_fail git update-ref -z --stdin err && - grep "fatal: delete: missing " err +expecting success of 1513.10 'file and refs with prefix': + git rev-parse --prefix sub1/ master file1 >actual && + cat <<-EOF >expected && + $(git rev-parse master) + sub1/file1 + EOF + test_cmp expected actual -fatal: delete: missing -ok 137 - stdin -z fails delete with no ref +ok 10 - file and refs with prefix -expecting success of 1400.138 'stdin -z fails delete with no old value': - printf $F "delete $a" >stdin && - test_must_fail git update-ref -z --stdin err && - grep "fatal: delete $a: unexpected end of input when reading " err +expecting success of 1513.11 'two-levels deep': + git rev-parse --prefix sub1/sub2/ -- file2 >actual && + cat <<-\EOF >expected && + -- + sub1/sub2/file2 + EOF + test_cmp expected actual -fatal: delete refs/heads/a: unexpected end of input when reading -ok 138 - stdin -z fails delete with no old value +ok 11 - two-levels deep -expecting success of 1400.139 'stdin -z fails delete with too many arguments': - printf $F "delete $a" "$m" "$m" >stdin && - test_must_fail git update-ref -z --stdin err && - grep "fatal: unknown command: $m" err +# passed all 11 test(s) +1..11 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t1512-rev-parse-disambiguation.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1512-rev-parse-disambiguation/.git/ +checking prerequisite: SHA1 -fatal: unknown command: refs/heads/main -ok 139 - stdin -z fails delete with too many arguments +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SHA1" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-SHA1" && + case "$GIT_DEFAULT_HASH" in + sha1) true ;; + "") test $(git hash-object /dev/null) = e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 ;; + *) false ;; + esac -expecting success of 1400.140 'stdin -z fails verify with too many arguments': - printf $F "verify $a" "$m" "$m" >stdin && - test_must_fail git update-ref -z --stdin err && - grep "fatal: unknown command: $m" err +) +prerequisite SHA1 ok +expecting success of 1512.1 'blob and tree': + test_tick && + ( + for i in 0 1 2 3 4 5 6 7 8 9 + do + echo $i + done && + echo && + echo b1rwzyc3 + ) >a0blgqsjc && -fatal: unknown command: refs/heads/main -ok 140 - stdin -z fails verify with too many arguments + # create one blob 0000000000b36 + git add a0blgqsjc && -expecting success of 1400.141 'stdin -z fails verify with no old value': - printf $F "verify $a" >stdin && - test_must_fail git update-ref -z --stdin err && - grep "fatal: verify $a: unexpected end of input when reading " err + # create one tree 0000000000cdc + git write-tree -fatal: verify refs/heads/a: unexpected end of input when reading -ok 141 - stdin -z fails verify with no old value +0000000000cdcf04beb2fab69e65622616294984 +ok 1 - blob and tree -expecting success of 1400.142 'stdin -z fails option with unknown name': - printf $F "option unknown" >stdin && - test_must_fail git update-ref -z --stdin err && - grep "fatal: option unknown: unknown" err +expecting success of 1512.2 'warn ambiguity when no candidate matches type hint': + test_must_fail git rev-parse --verify 000000000^{commit} 2>actual && + test_i18ngrep "short SHA1 000000000 is ambiguous" actual -fatal: option unknown: unknown -ok 142 - stdin -z fails option with unknown name +checking prerequisite: C_LOCALE_OUTPUT -expecting success of 1400.143 'stdin -z fails with duplicate refs': - printf $F "create $a" "$m" "create $b" "$m" "create $a" "$m" >stdin && - test_must_fail git update-ref -z --stdin err && - test_i18ngrep "fatal: multiple updates for ref '$a' not allowed" err +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false -fatal: multiple updates for ref 'refs/heads/a' not allowed -ok 143 - stdin -z fails with duplicate refs +) +prerequisite C_LOCALE_OUTPUT ok +error: short SHA1 000000000 is ambiguous +ok 2 - warn ambiguity when no candidate matches type hint -expecting success of 1400.144 'stdin -z create ref works': - printf $F "create $a" "$m" >stdin && - git update-ref -z --stdin expect && - git rev-parse $a >actual && - test_cmp expect actual +expecting success of 1512.3 'disambiguate tree-ish': + # feed tree-ish in an unambiguous way + git rev-parse --verify 0000000000cdc:a0blgqsjc && -ok 144 - stdin -z create ref works + # ambiguous at the object name level, but there is only one + # such tree-ish (the other is a blob) + git rev-parse --verify 000000000:a0blgqsjc -expecting success of 1400.145 'stdin -z update ref creates with zero old value': - printf $F "update $b" "$m" "$Z" >stdin && - git update-ref -z --stdin expect && - git rev-parse $b >actual && - test_cmp expect actual && - git update-ref -d $b +0000000000b36b6aa7ea4b75318ed078f55505c3 +0000000000b36b6aa7ea4b75318ed078f55505c3 +ok 3 - disambiguate tree-ish -ok 145 - stdin -z update ref creates with zero old value +expecting success of 1512.4 'disambiguate blob': + sed -e "s/|$//" >patch <<-EOF && + diff --git a/frotz b/frotz + index 000000000..ffffff 100644 + --- a/frotz + +++ b/frotz + @@ -10,3 +10,4 @@ + 9 + | + b1rwzyc3 + +irwry + EOF + ( + GIT_INDEX_FILE=frotz && + export GIT_INDEX_FILE && + git apply --build-fake-ancestor frotz patch && + git cat-file blob :frotz >actual + ) && + test_cmp a0blgqsjc actual -expecting success of 1400.146 'stdin -z update ref creates with empty old value': - printf $F "update $b" "$m" "" >stdin && - git update-ref -z --stdin expect && - git rev-parse $b >actual && - test_cmp expect actual +ok 4 - disambiguate blob -ok 146 - stdin -z update ref creates with empty old value +expecting success of 1512.5 'disambiguate tree': + commit=$(echo "d7xm" | git commit-tree 000000000) && + # this commit is fffff2e and not ambiguous with the 00000* objects + test $(git rev-parse $commit^{tree}) = $(git rev-parse 0000000000cdc) -expecting success of 1400.147 'stdin -z create ref works with path with space to blob': - printf $F "create refs/blobs/pws" "$m:$pws" >stdin && - git update-ref -z --stdin expect && - git rev-parse refs/blobs/pws >actual && - test_cmp expect actual && - git update-ref -d refs/blobs/pws +ok 5 - disambiguate tree -ok 147 - stdin -z create ref works with path with space to blob +expecting success of 1512.6 'first commit': + # create one commit 0000000000e4f + git commit -m a2onsxbvj -expecting success of 1400.148 'stdin -z update ref fails with wrong old value': - printf $F "update $c" "$m" "$m~1" >stdin && - test_must_fail git update-ref -z --stdin err && - grep "fatal: cannot lock ref '$c'" err && - test_must_fail git rev-parse --verify -q $c +[master (root-commit) 0000000000e] a2onsxbvj + Author: A U Thor + 1 file changed, 12 insertions(+) + create mode 100644 a0blgqsjc +ok 6 - first commit -fatal: cannot lock ref 'refs/heads/c': unable to resolve reference 'refs/heads/c' -ok 148 - stdin -z update ref fails with wrong old value +expecting success of 1512.7 'disambiguate commit-ish': + # feed commit-ish in an unambiguous way + git rev-parse --verify 0000000000e4f^{commit} && -expecting success of 1400.149 'stdin -z update ref fails with bad old value': - printf $F "update $c" "$m" "does-not-exist" >stdin && - test_must_fail git update-ref -z --stdin err && - grep "fatal: update $c: invalid : does-not-exist" err && - test_must_fail git rev-parse --verify -q $c + # ambiguous at the object name level, but there is only one + # such commit (the others are tree and blob) + git rev-parse --verify 000000000^{commit} && -fatal: update refs/heads/c: invalid : does-not-exist -ok 149 - stdin -z update ref fails with bad old value + # likewise + git rev-parse --verify 000000000^0 -expecting success of 1400.150 'stdin -z create ref fails when ref exists': - git update-ref $c $m && - git rev-parse "$c" >expect && - printf $F "create $c" "$m~1" >stdin && - test_must_fail git update-ref -z --stdin err && - grep "fatal: cannot lock ref '$c'" err && - git rev-parse "$c" >actual && - test_cmp expect actual +0000000000e4f9fbd19cf1e932319e5ad0d1d00b +0000000000e4f9fbd19cf1e932319e5ad0d1d00b +0000000000e4f9fbd19cf1e932319e5ad0d1d00b +ok 7 - disambiguate commit-ish -fatal: cannot lock ref 'refs/heads/c': reference already exists -ok 150 - stdin -z create ref fails when ref exists +expecting success of 1512.8 'disambiguate commit': + commit=$(echo "hoaxj" | git commit-tree 0000000000cdc -p 000000000) && + # this commit is ffffffd8 and not ambiguous with the 00000* objects + test $(git rev-parse $commit^) = $(git rev-parse 0000000000e4f) -expecting success of 1400.151 'stdin -z create ref fails with bad new value': - git update-ref -d "$c" && - printf $F "create $c" "does-not-exist" >stdin && - test_must_fail git update-ref -z --stdin err && - grep "fatal: create $c: invalid : does-not-exist" err && - test_must_fail git rev-parse --verify -q $c +ok 8 - disambiguate commit -fatal: create refs/heads/c: invalid : does-not-exist -ok 151 - stdin -z create ref fails with bad new value +expecting success of 1512.9 'log name1..name2 takes only commit-ishes on both ends': + # These are underspecified from the prefix-length point of view + # to disambiguate the commit with other objects, but there is only + # one commit that has 00000* prefix at this point. + git log 000000000..000000000 && + git log ..000000000 && + git log 000000000.. && + git log 000000000...000000000 && + git log ...000000000 && + git log 000000000... -expecting success of 1400.152 'stdin -z create ref fails with empty new value': - printf $F "create $c" "" >stdin && - test_must_fail git update-ref -z --stdin err && - grep "fatal: create $c: missing " err && - test_must_fail git rev-parse --verify -q $c +ok 9 - log name1..name2 takes only commit-ishes on both ends -fatal: create refs/heads/c: missing -ok 152 - stdin -z create ref fails with empty new value +expecting success of 1512.10 'rev-parse name1..name2 takes only commit-ishes on both ends': + # Likewise. + git rev-parse 000000000..000000000 && + git rev-parse ..000000000 && + git rev-parse 000000000.. -expecting success of 1400.153 'stdin -z update ref works with right old value': - printf $F "update $b" "$m~1" "$m" >stdin && - git update-ref -z --stdin expect && - git rev-parse $b >actual && - test_cmp expect actual +0000000000e4f9fbd19cf1e932319e5ad0d1d00b +^0000000000e4f9fbd19cf1e932319e5ad0d1d00b +0000000000e4f9fbd19cf1e932319e5ad0d1d00b +^0000000000e4f9fbd19cf1e932319e5ad0d1d00b +0000000000e4f9fbd19cf1e932319e5ad0d1d00b +^0000000000e4f9fbd19cf1e932319e5ad0d1d00b +ok 10 - rev-parse name1..name2 takes only commit-ishes on both ends -ok 153 - stdin -z update ref works with right old value +expecting success of 1512.11 'git log takes only commit-ish': + # Likewise. + git log 000000000 -expecting success of 1400.154 'stdin -z delete ref fails with wrong old value': - printf $F "delete $a" "$m~1" >stdin && - test_must_fail git update-ref -z --stdin err && - grep "fatal: cannot lock ref '$a'" err && - git rev-parse $m >expect && - git rev-parse $a >actual && - test_cmp expect actual +commit 0000000000e4f9fbd19cf1e932319e5ad0d1d00b +Author: A U Thor +Date: Thu Apr 7 15:13:13 2005 -0700 -fatal: cannot lock ref 'refs/heads/a': is at 536da9bc9e8e6d0baf01b41cf3cc49bb819559e6 but expected 29d1ccdc7ee9fe415beb2415b6206b8a20f76b1c -ok 154 - stdin -z delete ref fails with wrong old value + a2onsxbvj +ok 11 - git log takes only commit-ish -expecting success of 1400.155 'stdin -z delete ref fails with zero old value': - printf $F "delete $a" "$Z" >stdin && - test_must_fail git update-ref -z --stdin err && - grep "fatal: delete $a: zero " err && - git rev-parse $m >expect && - git rev-parse $a >actual && - test_cmp expect actual +expecting success of 1512.12 'git reset takes only commit-ish': + # Likewise. + git reset 000000000 -fatal: delete refs/heads/a: zero -ok 155 - stdin -z delete ref fails with zero old value +ok 12 - git reset takes only commit-ish -expecting success of 1400.156 'stdin -z update symref works option no-deref': - git symbolic-ref TESTSYMREF $b && - printf $F "option no-deref" "update TESTSYMREF" "$a" "$b" >stdin && - git update-ref -z --stdin expect && - git rev-parse $a >actual && - test_cmp expect actual && - git rev-parse $m~1 >expect && - git rev-parse $b >actual && - test_cmp expect actual +expecting success of 1512.13 'first tag': + # create one tag 0000000000f8f + git tag -a -m j7cp83um v1.0.0 -ok 156 - stdin -z update symref works option no-deref +ok 13 - first tag -expecting success of 1400.157 'stdin -z delete symref works option no-deref': - git symbolic-ref TESTSYMREF $b && - printf $F "option no-deref" "delete TESTSYMREF" "$b" >stdin && - git update-ref -z --stdin expect && - git rev-parse $b >actual && - test_cmp expect actual +checking known breakage of 1512.14 'two semi-ambiguous commit-ish': + # At this point, we have a tag 0000000000f8f that points + # at a commit 0000000000e4f, and a tree and a blob that + # share 0000000000 prefix with these tag and commit. + # + # Once the parser becomes ultra-smart, it could notice that + # 0000000000 before ^{commit} name many different objects, but + # that only two (HEAD and v1.0.0 tag) can be peeled to commit, + # and that peeling them down to commit yield the same commit + # without ambiguity. + git rev-parse --verify 0000000000^{commit} && -ok 157 - stdin -z delete symref works option no-deref + # likewise + git log 0000000000..0000000000 && + git log ..0000000000 && + git log 0000000000.. && + git log 0000000000...0000000000 && + git log ...0000000000 && + git log 0000000000... -expecting success of 1400.158 'stdin -z delete ref works with right old value': - printf $F "delete $b" "$m~1" >stdin && - git update-ref -z --stdin stdin && - git update-ref -z --stdin expect && - git rev-parse $a >actual && - test_cmp expect actual && - git rev-parse $b >actual && - test_cmp expect actual && - test_must_fail git rev-parse --verify -q $c +error: short SHA1 0000000000 is ambiguous +hint: The candidates are: +hint: 0000000000f tag v1.0.0 +hint: 0000000000e commit 2005-04-07 - a2onsxbvj +hint: 0000000000c tree +fatal: Needed a single revision +not ok 15 - three semi-ambiguous tree-ish # TODO known breakage -ok 159 - stdin -z update/create/verify combination works +expecting success of 1512.16 'parse describe name': + # feed an unambiguous describe name + git rev-parse --verify v1.0.0-0-g0000000000e4f && -expecting success of 1400.160 'stdin -z verify succeeds for correct value': - git rev-parse $m >expect && - printf $F "verify $m" "$m" >stdin && - git update-ref -z --stdin actual && - test_cmp expect actual + # ambiguous at the object name level, but there is only one + # such commit (others are blob, tree and tag) + git rev-parse --verify v1.0.0-0-g000000000 -ok 160 - stdin -z verify succeeds for correct value +0000000000e4f9fbd19cf1e932319e5ad0d1d00b +0000000000e4f9fbd19cf1e932319e5ad0d1d00b +ok 16 - parse describe name -expecting success of 1400.161 'stdin -z verify succeeds for missing reference': - printf $F "verify refs/heads/missing" "$Z" >stdin && - git update-ref -z --stdin >d12cr3h8t && + git add d12cr3h8t && -ok 161 - stdin -z verify succeeds for missing reference + test_tick && + git commit -m czy8f73t && -expecting success of 1400.162 'stdin -z verify treats no value as missing': - printf $F "verify refs/heads/missing" "" >stdin && - git update-ref -z --stdin >j000jmpzn && + git add j000jmpzn && -ok 162 - stdin -z verify treats no value as missing + test_tick && + git commit -m ioiley5o && -expecting success of 1400.163 'stdin -z verify fails for wrong value': - git rev-parse $m >expect && - printf $F "verify $m" "$m~1" >stdin && - test_must_fail git update-ref -z --stdin actual && - test_cmp expect actual + # commit 0000000005b0 + git checkout v1.0.0^0 && + git mv a0blgqsjc f5518nwu && -fatal: cannot lock ref 'refs/heads/main': is at 536da9bc9e8e6d0baf01b41cf3cc49bb819559e6 but expected 29d1ccdc7ee9fe415beb2415b6206b8a20f76b1c -ok 163 - stdin -z verify fails for wrong value + for i in h62xsjeu j08bekfvt kg7xflhm + do + echo $i + done >>f5518nwu && + git add f5518nwu && -expecting success of 1400.164 'stdin -z verify fails for mistaken null value': - git rev-parse $m >expect && - printf $F "verify $m" "$Z" >stdin && - test_must_fail git update-ref -z --stdin actual && - test_cmp expect actual + test_tick && + git commit -m b3wettvi && + side=$(git rev-parse HEAD) && -fatal: cannot lock ref 'refs/heads/main': reference already exists -ok 164 - stdin -z verify fails for mistaken null value + # commit 000000000066 + git checkout master && -expecting success of 1400.165 'stdin -z verify fails for mistaken empty value': - M=$(git rev-parse $m) && - test_when_finished "git update-ref $m $M" && - git rev-parse $m >expect && - printf $F "verify $m" "" >stdin && - test_must_fail git update-ref -z --stdin actual && - test_cmp expect actual + # If you use recursive, merge will fail and you will need to + # clean up a0blgqsjc as well. If you use resolve, merge will + # succeed. + test_might_fail git merge --no-commit -s recursive $side && + git rm -f f5518nwu j000jmpzn && -fatal: cannot lock ref 'refs/heads/main': reference already exists -ok 165 - stdin -z verify fails for mistaken empty value + test_might_fail git rm -f a0blgqsjc && + ( + git cat-file blob $side:f5518nwu && + echo j3l0i9s6 + ) >ab2gs879 && + git add ab2gs879 && -expecting success of 1400.166 'stdin -z update refs works with identity updates': - printf $F "update $a" "$m" "$m" "update $b" "$m" "$m" "update $c" "$Z" "" >stdin && - git update-ref -z --stdin expect && - git rev-parse $a >actual && - test_cmp expect actual && - git rev-parse $b >actual && - test_cmp expect actual && - test_must_fail git rev-parse --verify -q $c + test_tick && + git commit -m ad2uee -ok 166 - stdin -z update refs works with identity updates -expecting success of 1400.167 'stdin -z update refs fails with wrong old value': - git update-ref $c $m && - printf $F "update $a" "$m" "$m" "update $b" "$m" "$m" "update $c" "$m" "$Z" >stdin && - test_must_fail git update-ref -z --stdin err && - grep "fatal: cannot lock ref '$c'" err && - git rev-parse $m >expect && - git rev-parse $a >actual && - test_cmp expect actual && - git rev-parse $b >actual && - test_cmp expect actual && - git rev-parse $c >actual && - test_cmp expect actual +[master 00000000000] czy8f73t + Author: A U Thor + 1 file changed, 1 insertion(+) + rename a0blgqsjc => d12cr3h8t (76%) +[master 00000000008] ioiley5o + Author: A U Thor + 1 file changed, 1 insertion(+) + rename d12cr3h8t => j000jmpzn (79%) +Note: switching to 'v1.0.0^0'. -fatal: cannot lock ref 'refs/heads/c': reference already exists -ok 167 - stdin -z update refs fails with wrong old value +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. -expecting success of 1400.168 'stdin -z delete refs works with packed and loose refs': - git pack-refs --all && - git update-ref $c $m~1 && - printf $F "delete $a" "$m" "update $b" "$Z" "$m" "update $c" "" "$m~1" >stdin && - git update-ref -z --stdin , treating as zero -ok 168 - stdin -z delete refs works with packed and loose refs + git switch -c -expecting success of 1400.169 'fails with duplicate HEAD update': - git branch target1 $A && - git checkout target1 && - cat >stdin <<-EOF && - update refs/heads/target1 $C - option no-deref - update HEAD $B - EOF - test_must_fail git update-ref --stdin err && - test_i18ngrep "fatal: multiple updates for 'HEAD' (including one via its referent .refs/heads/target1.) are not allowed" err && - echo "refs/heads/target1" >expect && - git symbolic-ref HEAD >actual && - test_cmp expect actual && - echo "$A" >expect && - git rev-parse refs/heads/target1 >actual && - test_cmp expect actual +Or undo this operation with: -Switched to branch 'target1' -fatal: multiple updates for 'HEAD' (including one via its referent 'refs/heads/target1') are not allowed -ok 169 - fails with duplicate HEAD update + git switch - -expecting success of 1400.170 'fails with duplicate ref update via symref': - git branch target2 $A && - git symbolic-ref refs/heads/symref2 refs/heads/target2 && - cat >stdin <<-EOF && - update refs/heads/target2 $C - update refs/heads/symref2 $B - EOF - test_must_fail git update-ref --stdin err && - test_i18ngrep "fatal: multiple updates for 'refs/heads/target2' (including one via symref .refs/heads/symref2.) are not allowed" err && - echo "refs/heads/target2" >expect && - git symbolic-ref refs/heads/symref2 >actual && - test_cmp expect actual && - echo "$A" >expect && - git rev-parse refs/heads/target2 >actual && - test_cmp expect actual +Turn off this advice by setting config variable advice.detachedHead to false -fatal: multiple updates for 'refs/heads/target2' (including one via symref 'refs/heads/symref2') are not allowed -ok 170 - fails with duplicate ref update via symref +HEAD is now at 0000000000e a2onsxbvj +[detached HEAD 0000000005] b3wettvi + Author: A U Thor + 1 file changed, 3 insertions(+) + rename a0blgqsjc => f5518nwu (51%) +Warning: you are leaving 1 commit behind, not connected to +any of your branches: -checking prerequisite: ULIMIT_FILE_DESCRIPTORS + 0000000005 b3wettvi -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-ULIMIT_FILE_DESCRIPTORS" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-ULIMIT_FILE_DESCRIPTORS" && - test_have_prereq !MINGW,!CYGWIN && - run_with_limited_open_files true +If you want to keep it by creating a new branch, this may be a good time +to do so with: -) -prerequisite ULIMIT_FILE_DESCRIPTORS ok -expecting success of 1400.171 'large transaction creating branches does not burst open file limit': -( - for i in $(test_seq 33) - do - echo "create refs/heads/$i HEAD" - done >large_input && - run_with_limited_open_files git update-ref --stdin 0000000005 -102939797ab91a4f201d131418d2c9d919dcdd2c -ok 171 - large transaction creating branches does not burst open file limit +Switched to branch 'master' +Merging: +00000000008 ioiley5o +virtual 0000000005b0d85f595e1a98533157ea161798da +found 1 common ancestor: +0000000000e a2onsxbvj +CONFLICT (rename/rename): Rename "a0blgqsjc"->"j000jmpzn" in branch "HEAD" rename "a0blgqsjc"->"f5518nwu" in "0000000005b0d85f595e1a98533157ea161798da" +Auto-merging j000jmpzn and f5518nwu, both renamed from a0blgqsjc +Automatic merge failed; fix conflicts and then commit the result. +rm 'f5518nwu' +rm 'j000jmpzn' +rm 'a0blgqsjc' +[master 00000000006] ad2uee + Author: A U Thor +ok 17 - more history -expecting success of 1400.172 'large transaction deleting branches does not burst open file limit': -( - for i in $(test_seq 33) - do - echo "delete refs/heads/$i HEAD" - done >large_input && - run_with_limited_open_files git update-ref --stdin for-each-ref.out && - ! grep refs/bisect for-each-ref.out && - git update-ref refs/bisect/something HEAD && - git rev-parse refs/bisect/something >../worktree-head && - git for-each-ref | grep refs/bisect/something - ) && - git show-ref >actual && - ! grep refs/bisect actual && - test_must_fail git rev-parse refs/bisect/something && - git update-ref refs/bisect/something HEAD && - git rev-parse refs/bisect/something >main-head && - ! test_cmp main-head worktree-head +fatal: Needed a single revision +not ok 18 - parse describe name taking advantage of generation # TODO known breakage -[target1 58a0522] initial commit - Author: A U Thor -Preparing worktree (new branch 'branch') -HEAD is now at 58a0522 initial commit -[branch b62e0cb] test commit - Author: A U Thor -b62e0cb4990da3244885da90fe7d493334cca9f5 commit refs/bisect/something -fatal: ambiguous argument 'refs/bisect/something': unknown revision or path not in the working tree. +expecting success of 1512.19 'parse describe name not ignoring ambiguity': + # ambiguous at the object name level, and there are two such + # commits at generation 1 + test_must_fail git rev-parse --verify v1.0.0-1-g000000000 + +fatal: Needed a single revision +ok 19 - parse describe name not ignoring ambiguity + +expecting success of 1512.20 'ambiguous commit-ish': + # Now there are many commits that begin with the + # common prefix, none of these should pick one at + # random. They all should result in ambiguity errors. + test_must_fail git rev-parse --verify 00000000^{commit} && + + # likewise + test_must_fail git log 000000000..000000000 && + test_must_fail git log ..000000000 && + test_must_fail git log 000000000.. && + test_must_fail git log 000000000...000000000 && + test_must_fail git log ...000000000 && + test_must_fail git log 000000000... + +error: short SHA1 00000000 is ambiguous +hint: The candidates are: +hint: 0000000000f8 tag v1.0.0 +hint: 000000000004 commit 2005-04-07 - czy8f73t +hint: 00000000006 commit 2005-04-07 - ad2uee +hint: 00000000008 commit 2005-04-07 - ioiley5o +hint: 0000000000e commit 2005-04-07 - a2onsxbvj +hint: 0000000005 commit 2005-04-07 - b3wettvi +fatal: Needed a single revision +error: short SHA1 000000000 is ambiguous +hint: The candidates are: +hint: 0000000000f8 tag v1.0.0 +hint: 000000000004 commit 2005-04-07 - czy8f73t +hint: 00000000006 commit 2005-04-07 - ad2uee +hint: 00000000008 commit 2005-04-07 - ioiley5o +hint: 0000000000e commit 2005-04-07 - a2onsxbvj +hint: 0000000005 commit 2005-04-07 - b3wettvi +fatal: ambiguous argument '000000000..000000000': unknown revision or path not in the working tree. Use '--' to separate paths from revisions, like this: 'git [...] -- [...]' -refs/bisect/something ---- main-head 2023-04-29 16:18:34.238714274 +0000 -+++ worktree-head 2023-04-29 16:18:34.142723812 +0000 -@@ -1 +1 @@ --58a052250c09f010b95ad9bfe32f35d704eda1a0 -+b62e0cb4990da3244885da90fe7d493334cca9f5 -ok 173 - handle per-worktree refs in refs/bisect +error: short SHA1 000000000 is ambiguous +hint: The candidates are: +hint: 0000000000f8 tag v1.0.0 +hint: 000000000004 commit 2005-04-07 - czy8f73t +hint: 00000000006 commit 2005-04-07 - ad2uee +hint: 00000000008 commit 2005-04-07 - ioiley5o +hint: 0000000000e commit 2005-04-07 - a2onsxbvj +hint: 0000000005 commit 2005-04-07 - b3wettvi +fatal: ambiguous argument '..000000000': unknown revision or path not in the working tree. +Use '--' to separate paths from revisions, like this: +'git [...] -- [...]' +error: short SHA1 000000000 is ambiguous +hint: The candidates are: +hint: 0000000000f8 tag v1.0.0 +hint: 000000000004 commit 2005-04-07 - czy8f73t +hint: 00000000006 commit 2005-04-07 - ad2uee +hint: 00000000008 commit 2005-04-07 - ioiley5o +hint: 0000000000e commit 2005-04-07 - a2onsxbvj +hint: 0000000005 commit 2005-04-07 - b3wettvi +fatal: ambiguous argument '000000000..': unknown revision or path not in the working tree. +Use '--' to separate paths from revisions, like this: +'git [...] -- [...]' +error: short SHA1 000000000 is ambiguous +hint: The candidates are: +hint: 0000000000f8 tag v1.0.0 +hint: 000000000004 commit 2005-04-07 - czy8f73t +hint: 00000000006 commit 2005-04-07 - ad2uee +hint: 00000000008 commit 2005-04-07 - ioiley5o +hint: 0000000000e commit 2005-04-07 - a2onsxbvj +hint: 0000000005 commit 2005-04-07 - b3wettvi +fatal: ambiguous argument '000000000...000000000': unknown revision or path not in the working tree. +Use '--' to separate paths from revisions, like this: +'git [...] -- [...]' +error: short SHA1 000000000 is ambiguous +hint: The candidates are: +hint: 0000000000f8 tag v1.0.0 +hint: 000000000004 commit 2005-04-07 - czy8f73t +hint: 00000000006 commit 2005-04-07 - ad2uee +hint: 00000000008 commit 2005-04-07 - ioiley5o +hint: 0000000000e commit 2005-04-07 - a2onsxbvj +hint: 0000000005 commit 2005-04-07 - b3wettvi +fatal: ambiguous argument '...000000000': unknown revision or path not in the working tree. +Use '--' to separate paths from revisions, like this: +'git [...] -- [...]' +error: short SHA1 000000000 is ambiguous +hint: The candidates are: +hint: 0000000000f8 tag v1.0.0 +hint: 000000000004 commit 2005-04-07 - czy8f73t +hint: 00000000006 commit 2005-04-07 - ad2uee +hint: 00000000008 commit 2005-04-07 - ioiley5o +hint: 0000000000e commit 2005-04-07 - a2onsxbvj +hint: 0000000005 commit 2005-04-07 - b3wettvi +fatal: ambiguous argument '000000000...': unknown revision or path not in the working tree. +Use '--' to separate paths from revisions, like this: +'git [...] -- [...]' +ok 20 - ambiguous commit-ish -expecting success of 1400.174 'transaction handles empty commit': - cat >stdin <<-EOF && - start - prepare - commit - EOF - git update-ref --stdin actual && - printf "%s: ok\n" start prepare commit >expect && - test_cmp expect actual +expecting success of 1512.21 'ambiguous tags peel to treeish': + test_must_fail git rev-parse 0000000000f^{tree} -ok 174 - transaction handles empty commit +error: short SHA1 0000000000f is ambiguous +hint: The candidates are: +hint: 0000000000f8 tag v1.0.0 +hint: 0000000000fd tree +fatal: ambiguous argument '0000000000f^{tree}': unknown revision or path not in the working tree. +Use '--' to separate paths from revisions, like this: +'git [...] -- [...]' +0000000000f^{tree} +ok 21 - ambiguous tags peel to treeish -expecting success of 1400.175 'transaction handles empty commit with missing prepare': - cat >stdin <<-EOF && - start - commit - EOF - git update-ref --stdin actual && - printf "%s: ok\n" start commit >expect && - test_cmp expect actual +expecting success of 1512.22 'rev-parse --disambiguate': + # The test creates 16 objects that share the prefix and two + # commits created by commit-tree in earlier tests share a + # different prefix. + git rev-parse --disambiguate=000000000 >actual && + test_line_count = 16 actual && + test "$(sed -e "s/^\(.........\).*/\1/" actual | sort -u)" = 000000000 -ok 175 - transaction handles empty commit with missing prepare +ok 22 - rev-parse --disambiguate -expecting success of 1400.176 'transaction handles sole commit': - cat >stdin <<-EOF && - commit - EOF - git update-ref --stdin actual && - printf "%s: ok\n" commit >expect && +expecting success of 1512.23 'rev-parse --disambiguate drops duplicates': + git rev-parse --disambiguate=000000000 >expect && + git pack-objects .git/objects/pack/pack actual && test_cmp expect actual -ok 176 - transaction handles sole commit +bdfb78b16a1cd3c3b1ebf4cca29330c92a46fc43 +ok 23 - rev-parse --disambiguate drops duplicates -expecting success of 1400.177 'transaction handles empty abort': - cat >stdin <<-EOF && - start - prepare - abort - EOF - git update-ref --stdin actual && - printf "%s: ok\n" start prepare abort >expect && - test_cmp expect actual +expecting success of 1512.24 'ambiguous 40-hex ref': + TREE=$(git mktree err) = $REF && + grep "refname.*${REF}.*ambiguous" err -ok 177 - transaction handles empty abort +warning: refname '0000000000663a70a94c2b280b575855256220fa' is ambiguous. +ok 24 - ambiguous 40-hex ref -expecting success of 1400.178 'transaction exits on multiple aborts': - cat >stdin <<-EOF && - abort - abort - EOF - test_must_fail git update-ref --stdin actual 2>err && - printf "%s: ok\n" abort >expect && - test_cmp expect actual && - grep "fatal: transaction is closed" err +expecting success of 1512.25 'ambiguous short sha1 ref': + TREE=$(git mktree err) = $VAL && + grep "refname.*${REF}.*ambiguous" err -fatal: transaction is closed -ok 178 - transaction exits on multiple aborts +warning: refname '00000000006' is ambiguous. +ok 25 - ambiguous short sha1 ref -expecting success of 1400.179 'transaction exits on start after prepare': - cat >stdin <<-EOF && - prepare - start - EOF - test_must_fail git update-ref --stdin err >actual && - printf "%s: ok\n" prepare >expect && - test_cmp expect actual && - grep "fatal: prepared transactions can only be closed" err +expecting success of 1512.26 'ambiguity errors are not repeated (raw)': + test_must_fail git rev-parse 00000 2>stderr && + grep "is ambiguous" stderr >errors && + test_line_count = 1 errors -fatal: prepared transactions can only be closed -ok 179 - transaction exits on start after prepare +00000 +ok 26 - ambiguity errors are not repeated (raw) -expecting success of 1400.180 'transaction handles empty abort with missing prepare': - cat >stdin <<-EOF && - start - abort - EOF - git update-ref --stdin actual && - printf "%s: ok\n" start abort >expect && - test_cmp expect actual +expecting success of 1512.27 'ambiguity errors are not repeated (treeish)': + test_must_fail git rev-parse 00000:foo 2>stderr && + grep "is ambiguous" stderr >errors && + test_line_count = 1 errors -ok 180 - transaction handles empty abort with missing prepare +00000:foo +ok 27 - ambiguity errors are not repeated (treeish) -expecting success of 1400.181 'transaction handles sole abort': - cat >stdin <<-EOF && - abort - EOF - git update-ref --stdin actual && - printf "%s: ok\n" abort >expect && - test_cmp expect actual +expecting success of 1512.28 'ambiguity errors are not repeated (peel)': + test_must_fail git rev-parse 00000^{commit} 2>stderr && + grep "is ambiguous" stderr >errors && + test_line_count = 1 errors -ok 181 - transaction handles sole abort +00000^{commit} +ok 28 - ambiguity errors are not repeated (peel) -expecting success of 1400.182 'transaction can handle commit': - cat >stdin <<-EOF && - start - create $a HEAD - commit - EOF - git update-ref --stdin actual && - printf "%s: ok\n" start commit >expect && - test_cmp expect actual && - git rev-parse HEAD >expect && - git rev-parse $a >actual && - test_cmp expect actual +expecting success of 1512.29 'ambiguity hints': + test_must_fail git rev-parse 000000000 2>stderr && + grep ^hint: stderr >hints && + # 16 candidates, plus one intro line + test_line_count = 17 hints -ok 182 - transaction can handle commit +000000000 +ok 29 - ambiguity hints -expecting success of 1400.183 'transaction can handle abort': - cat >stdin <<-EOF && - start - create $b HEAD - abort - EOF - git update-ref --stdin actual && - printf "%s: ok\n" start abort >expect && - test_cmp expect actual && - test_must_fail git show-ref --verify -q $b +expecting success of 1512.30 'ambiguity hints respect type': + test_must_fail git rev-parse 000000000^{commit} 2>stderr && + grep ^hint: stderr >hints && + # 5 commits, 1 tag (which is a committish), plus intro line + test_line_count = 7 hints -ok 183 - transaction can handle abort +000000000^{commit} +ok 30 - ambiguity hints respect type -expecting success of 1400.184 'transaction aborts by default': - cat >stdin <<-EOF && - start - create $b HEAD - EOF - git update-ref --stdin actual && - printf "%s: ok\n" start >expect && - test_cmp expect actual && - test_must_fail git show-ref --verify -q $b +expecting success of 1512.31 'failed type-selector still shows hint': + # these two blobs share the same prefix "ee3d", but neither + # will pass for a commit + echo 851 | git hash-object --stdin -w && + echo 872 | git hash-object --stdin -w && + test_must_fail git rev-parse ee3d^{commit} 2>stderr && + grep ^hint: stderr >hints && + test_line_count = 3 hints -ok 184 - transaction aborts by default +ee3de9906b5e9a4a369e91cba4235487a7e10351 +ee3d8abaa95a7395b373892b2593de2f426814e2 +ee3d^{commit} +ok 31 - failed type-selector still shows hint -expecting success of 1400.185 'transaction with prepare aborts by default': - cat >stdin <<-EOF && - start - create $b HEAD - prepare - EOF - git update-ref --stdin actual && - printf "%s: ok\n" start prepare >expect && - test_cmp expect actual && - test_must_fail git show-ref --verify -q $b +expecting success of 1512.32 'core.disambiguate config can prefer types': + # ambiguous between tree and tag + sha1=0000000000f && + test_must_fail git rev-parse $sha1 && + git rev-parse $sha1^{commit} && + git -c core.disambiguate=committish rev-parse $sha1 -ok 185 - transaction with prepare aborts by default +error: short SHA1 0000000000f is ambiguous +hint: The candidates are: +hint: 0000000000f8 tag v1.0.0 +hint: 0000000000fd tree +hint: 0000000000f2 blob +fatal: ambiguous argument '0000000000f': unknown revision or path not in the working tree. +Use '--' to separate paths from revisions, like this: +'git [...] -- [...]' +0000000000f +0000000000e4f9fbd19cf1e932319e5ad0d1d00b +0000000000f8f5507ab27a0d7bd3c75c0f64ffe0 +ok 32 - core.disambiguate config can prefer types -expecting success of 1400.186 'transaction can commit multiple times': - cat >stdin <<-EOF && - start - create refs/heads/branch-1 $A - commit - start - create refs/heads/branch-2 $B +expecting success of 1512.33 'core.disambiguate does not override context': + # treeish ambiguous between tag and tree + test_must_fail \ + git -c core.disambiguate=committish rev-parse $sha1^{tree} + +error: short SHA1 0000000000f is ambiguous +hint: The candidates are: +hint: 0000000000f8 tag v1.0.0 +hint: 0000000000fd tree +fatal: ambiguous argument '0000000000f^{tree}': unknown revision or path not in the working tree. +Use '--' to separate paths from revisions, like this: +'git [...] -- [...]' +0000000000f^{tree} +ok 33 - core.disambiguate does not override context + +expecting success of 1512.34 'ambiguous commits are printed by type first, then hash order': + test_must_fail git rev-parse 0000 2>stderr && + grep ^hint: stderr >hints && + grep 0000 hints >objects && + cat >expected <<-\EOF && + tag commit + tree + blob EOF - git update-ref --stdin actual && - printf "%s: ok\n" start commit start commit >expect && + awk "{print \$3}" objects.types && + uniq objects.types.uniq && + test_cmp expected objects.types.uniq && + for type in tag commit tree blob + do + grep $type objects >$type.objects && + sort $type.objects >$type.objects.sorted && + test_cmp $type.objects.sorted $type.objects + done + +0000 +ok 34 - ambiguous commits are printed by type first, then hash order + +expecting success of 1512.35 'cat-file --batch and --batch-check show ambiguous': + echo "0000 ambiguous" >expect && + echo 0000 | git cat-file --batch-check >actual 2>err && test_cmp expect actual && - echo "$A" >expect && - git rev-parse refs/heads/branch-1 >actual && + test_i18ngrep hint: err && + echo 0000 | git cat-file --batch >actual 2>err && test_cmp expect actual && - echo "$B" >expect && - git rev-parse refs/heads/branch-2 >actual && - test_cmp expect actual + test_i18ngrep hint: err -ok 186 - transaction can commit multiple times +hint: The candidates are: +hint: 0000000000f8 tag v1.0.0 +hint: 000000000004 commit 2005-04-07 - czy8f73t +hint: 00000000006 commit 2005-04-07 - ad2uee +hint: 00000000008 commit 2005-04-07 - ioiley5o +hint: 0000000000e commit 2005-04-07 - a2onsxbvj +hint: 0000000005 commit 2005-04-07 - b3wettvi +hint: 000000000002 tree +hint: 00000000005 tree +hint: 00000000009 tree +hint: 0000000000c tree +hint: 0000000000fd tree +hint: 00000000001 blob +hint: 00000000003 blob +hint: 0000000000a blob +hint: 0000000000b blob +hint: 0000000000f2 blob +hint: The candidates are: +hint: 0000000000f8 tag v1.0.0 +hint: 000000000004 commit 2005-04-07 - czy8f73t +hint: 00000000006 commit 2005-04-07 - ad2uee +hint: 00000000008 commit 2005-04-07 - ioiley5o +hint: 0000000000e commit 2005-04-07 - a2onsxbvj +hint: 0000000005 commit 2005-04-07 - b3wettvi +hint: 000000000002 tree +hint: 00000000005 tree +hint: 00000000009 tree +hint: 0000000000c tree +hint: 0000000000fd tree +hint: 00000000001 blob +hint: 00000000003 blob +hint: 0000000000a blob +hint: 0000000000b blob +hint: 0000000000f2 blob +ok 35 - cat-file --batch and --batch-check show ambiguous -expecting success of 1400.187 'transaction can create and delete': - cat >stdin <<-EOF && - start - create refs/heads/create-and-delete $A - commit - start - delete refs/heads/create-and-delete $A - commit - EOF - git update-ref --stdin actual && - printf "%s: ok\n" start commit start commit >expect && - test_must_fail git show-ref --verify refs/heads/create-and-delete +# still have 3 known breakage(s) +# passed all remaining 32 test(s) +1..35 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t1515-rev-parse-outside-repo.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1515-rev-parse-outside-repo/.git/ +expecting success of 1515.1 'set up non-repo directory': + GIT_CEILING_DIRECTORIES=$(pwd) && + export GIT_CEILING_DIRECTORIES && + mkdir non-repo && + cd non-repo && + # confirm that git does not find a repo + test_must_fail git rev-parse --git-dir -fatal: 'refs/heads/create-and-delete' - not a valid ref -ok 187 - transaction can create and delete +fatal: not a git repository (or any of the parent directories): .git +ok 1 - set up non-repo directory -expecting success of 1400.188 'transaction can commit after abort': - cat >stdin <<-EOF && - start - create refs/heads/abort $A - abort - start - create refs/heads/abort $A - commit - EOF - git update-ref --stdin actual && - printf "%s: ok\n" start abort start commit >expect && - echo "$A" >expect && - git rev-parse refs/heads/abort >actual && +expecting success of 1515.2 'rev-parse --sq-quote': + dump_args "$tricky" easy >expect && + eval "dump_args $(git rev-parse --sq-quote "$tricky" easy)" >actual && test_cmp expect actual -ok 188 - transaction can commit after abort +ok 2 - rev-parse --sq-quote -expecting success of 1400.189 'transaction cannot restart ongoing transaction': - cat >stdin <<-EOF && - start - create refs/heads/restart $A - start - commit - EOF - test_must_fail git update-ref --stdin actual && - test_must_fail git show-ref --verify refs/heads/restart +expecting success of 1515.3 'rev-parse --local-env-vars': + git rev-parse --local-env-vars >actual && + # we do not want to depend on the complete list here, + # so just look for something plausible + grep ^GIT_DIR actual -fatal: cannot restart ongoing transaction -fatal: 'refs/heads/restart' - not a valid ref -ok 189 - transaction cannot restart ongoing transaction +GIT_DIR +ok 3 - rev-parse --local-env-vars + +expecting success of 1515.4 'rev-parse --resolve-git-dir': + git init --separate-git-dir repo dir && + test_must_fail git rev-parse --resolve-git-dir . && + echo "$(pwd)/repo" >expect && + git rev-parse --resolve-git-dir dir/.git >actual && + test_cmp expect actual -# passed all 189 test(s) -1..189 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1013-read-tree-submodule.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/.git/ -expecting success of 1013.1 'git read-tree -u -m --recurse-submodules: added submodule is checked out': - prolog && - reset_work_tree_to_interested no_submodule && - ( - cd submodule_update && - git branch -t add_sub1 origin/add_sub1 && - $command add_sub1 && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all hint: of your new repositories, which will suppress this warning, call: @@ -52738,13 +54805,28 @@ hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1/.git/ -[master (root-commit) 63c4304] Base inside first submodule - Author: A U Thor - 3 files changed, 4 insertions(+) - create mode 100644 .gitignore - create mode 100644 file1 - create mode 100644 file2 +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1515-rev-parse-outside-repo/non-repo/repo/ +fatal: not a gitdir '.' +ok 4 - rev-parse --resolve-git-dir + +# passed all 4 test(s) +1..4 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t1514-rev-parse-push.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1514-rev-parse-push/.git/ +expecting success of 1514.1 'setup': + git init --bare parent.git && + git init --bare other.git && + git remote add origin parent.git && + git remote add other other.git && + test_commit base && + git push origin HEAD && + git branch --set-upstream-to=origin/master master && + git branch --track topic origin/master && + git push origin topic && + git push other topic + hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all hint: of your new repositories, which will suppress this warning, call: @@ -52755,13 +54837,7 @@ hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub2/.git/ -[master (root-commit) 27c5769] nested submodule base - Author: A U Thor - 3 files changed, 4 insertions(+) - create mode 100644 .gitignore - create mode 100644 file1 - create mode 100644 file2 +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1514-rev-parse-push/parent.git/ hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all hint: of your new repositories, which will suppress this warning, call: @@ -52772,841 +54848,162 @@ hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_repo/.git/ -[master (root-commit) 27611a5] Base - Author: A U Thor - 3 files changed, 4 insertions(+) - create mode 100644 .gitignore - create mode 100644 file1 - create mode 100644 file2 -Switched to a new branch 'add_sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_repo/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_repo/uninitialized_sub'... -done. -[add_sub1 09bcf53] Add sub1 - Author: A U Thor - 2 files changed, 8 insertions(+) - create mode 100644 .gitmodules - create mode 160000 uninitialized_sub -Switched to a new branch 'remove_sub1' -Removing uninitialized_sub -Removing sub1 -Removing .gitmodules -[remove_sub1 d6ba723] Revert "Add sub1" - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 3 files changed, 9 deletions(-) - delete mode 100644 .gitmodules - delete mode 160000 sub1 - delete mode 160000 uninitialized_sub -Switched to a new branch 'modify_sub1' -Switched to a new branch 'modifications' -[modifications 03da4ea] modified file2 and added file3 - Author: A U Thor - 2 files changed, 2 insertions(+), 1 deletion(-) - create mode 100644 file3 -To /build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1 - * [new branch] modifications -> modifications -[modify_sub1 cb2bda7] Modify sub1 - Author: A U Thor -Switched to a new branch 'add_nested_sub' -Switched to a new branch 'add_nested_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_repo/sub1/sub2'... -done. -[add_nested_sub 8b3b335] add a nested submodule - Author: A U Thor - 2 files changed, 5 insertions(+) - create mode 100644 .gitmodules - create mode 160000 sub2 -[add_nested_sub 5bc57bf] update submodule, that updates a nested submodule - Author: A U Thor -Switched to a new branch 'modify_sub1_recursively' -Switched to a new branch 'modify_sub1_recursively' -Switched to a new branch 'modify_sub1_recursively' -[modify_sub1_recursively c7c4624] make a change in nested sub +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1514-rev-parse-push/other.git/ +[master (root-commit) d1ff1c9] base Author: A U Thor 1 file changed, 1 insertion(+) - create mode 100644 file3 -[modify_sub1_recursively 92fc14a] update nested sub - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -[modify_sub1_recursively 953e869] update sub1, that updates nested sub - Author: A U Thor -To /build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1 - * [new branch] modify_sub1_recursively -> modify_sub1_recursively -To /build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub2 - * [new branch] modify_sub1_recursively -> modify_sub1_recursively -Cleared directory 'sub2' -Submodule 'sub2' (../submodule_update_sub2) unregistered for path 'sub2' -Switched to a new branch 'replace_sub1_with_directory' -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Previous HEAD position was 63c4304 Base inside first submodule -Switched to branch 'modifications' -rm 'sub1' -[replace_sub1_with_directory cb28587] Replace sub1 with directory - Author: A U Thor - 5 files changed, 3 insertions(+), 5 deletions(-) - delete mode 160000 sub1 - create mode 100644 sub1/file1 - create mode 100644 sub1/file2 - create mode 100644 sub1/file3 -Switched to a new branch 'replace_directory_with_sub1' -Removing sub1/file3 -Removing sub1/file2 -Removing sub1/file1 -Adding sub1 -[replace_directory_with_sub1 a2e65d5] Revert "Replace sub1 with directory" - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 4 files changed, 4 insertions(+), 3 deletions(-) - delete mode 100644 sub1/file1 - delete mode 100644 sub1/file2 - delete mode 100644 sub1/file3 -Switched to a new branch 'replace_sub1_with_file' -rm 'sub1' -[replace_sub1_with_file 2364f5a] Replace sub1 with file - Author: A U Thor - 2 files changed, 1 insertion(+), 5 deletions(-) - mode change 160000 => 100644 sub1 -Switched to a new branch 'replace_file_with_sub1' -[replace_file_with_sub1 8b6fdfc] Revert "Replace sub1 with file" - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 2 files changed, 5 insertions(+), 1 deletion(-) - mode change 100644 => 160000 sub1 -Switched to a new branch 'invalid_sub1' -[invalid_sub1 e6169bf] Invalid sub1 commit - Author: A U Thor -Switched to a new branch 'valid_sub1' -[valid_sub1 3036e4e] Revert "Invalid sub1 commit" - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 -warning: unable to rmdir 'uninitialized_sub': Directory not empty -Switched to branch 'master' -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -ok 1 - git read-tree -u -m --recurse-submodules: added submodule is checked out + create mode 100644 base.t +To parent.git + * [new branch] HEAD -> master +Branch 'master' set up to track remote branch 'master' from 'origin'. +Branch 'topic' set up to track remote branch 'master' from 'origin'. +To parent.git + * [new branch] topic -> topic +To other.git + * [new branch] topic -> topic +ok 1 - setup -expecting success of 1013.2 'git read-tree -u -m --recurse-submodules: added submodule is checked out in empty dir': - prolog && - reset_work_tree_to_interested no_submodule && - ( - cd submodule_update && - mkdir sub1 && - git branch -t add_sub1 origin/add_sub1 && - $command add_sub1 && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -ok 2 - git read-tree -u -m --recurse-submodules: added submodule is checked out in empty dir +expecting success of 1514.2 '@{push} with default=nothing': + test_config push.default nothing && + test_must_fail git rev-parse master@{push} && + test_must_fail git rev-parse master@{PUSH} && + test_must_fail git rev-parse master@{PuSH} -expecting success of 1013.3 'git read-tree -u -m --recurse-submodules: replace tracked file with submodule checks out submodule': - prolog && - reset_work_tree_to_interested replace_sub1_with_file && - ( - cd submodule_update && - git branch -t replace_file_with_sub1 origin/replace_file_with_sub1 && - $command replace_file_with_sub1 && - test_superproject_content origin/replace_file_with_sub1 && - test_submodule_content sub1 origin/replace_file_with_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'replace_sub1_with_file' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -fatal: Needed a single revision -Branch 'replace_file_with_sub1' set up to track remote branch 'replace_file_with_sub1' from 'origin'. -ok 3 - git read-tree -u -m --recurse-submodules: replace tracked file with submodule checks out submodule +fatal: push has no destination (push.default is 'nothing') +fatal: push has no destination (push.default is 'nothing') +fatal: push has no destination (push.default is 'nothing') +ok 2 - @{push} with default=nothing -expecting success of 1013.4 'git read-tree -u -m --recurse-submodules: replace directory with submodule': - prolog && - reset_work_tree_to_interested replace_sub1_with_directory && - ( - cd submodule_update && - git branch -t replace_directory_with_sub1 origin/replace_directory_with_sub1 && - $command replace_directory_with_sub1 && - test_superproject_content origin/replace_directory_with_sub1 && - test_submodule_content sub1 origin/replace_directory_with_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'replace_sub1_with_directory' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -fatal: Needed a single revision -Branch 'replace_directory_with_sub1' set up to track remote branch 'replace_directory_with_sub1' from 'origin'. -ok 4 - git read-tree -u -m --recurse-submodules: replace directory with submodule +expecting success of 1514.3 '@{push} with default=simple': + test_config push.default simple && + resolve master@{push} refs/remotes/origin/master && + resolve master@{PUSH} refs/remotes/origin/master && + resolve master@{pUSh} refs/remotes/origin/master -expecting success of 1013.5 'git read-tree -u -m --recurse-submodules: nested submodules are checked out': - prolog && - reset_work_tree_to_interested no_submodule && - ( - cd submodule_update && - git branch -t modify_sub1_recursively origin/modify_sub1_recursively && - $command modify_sub1_recursively && - test_superproject_content origin/modify_sub1_recursively && - test_submodule_content sub1 origin/modify_sub1_recursively && - test_submodule_content -C sub1 sub2 origin/modify_sub1_recursively - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'modify_sub1_recursively' set up to track remote branch 'modify_sub1_recursively' from 'origin'. -ok 5 - git read-tree -u -m --recurse-submodules: nested submodules are checked out +ok 3 - @{push} with default=simple -expecting success of 1013.6 'git read-tree -u -m --recurse-submodules: removed submodule removes submodules working tree': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t remove_sub1 origin/remove_sub1 && - $command remove_sub1 && - test_superproject_content origin/remove_sub1 && - ! test -e sub1 && - test_must_fail git config -f .git/modules/sub1/config core.worktree - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. -ok 6 - git read-tree -u -m --recurse-submodules: removed submodule removes submodules working tree +expecting success of 1514.4 'triangular @{push} fails with default=simple': + test_config push.default simple && + test_must_fail git rev-parse topic@{push} -expecting success of 1013.7 'git read-tree -u -m --recurse-submodules: removed submodule absorbs submodules .git directory': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t remove_sub1 origin/remove_sub1 && - replace_gitfile_with_git_dir sub1 && - rm -rf .git/modules && - $command remove_sub1 && - test_superproject_content origin/remove_sub1 && - ! test -e sub1 && - test_git_directory_exists sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. -Migrating git directory of 'sub1' from -'/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1/.git' to -'/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/.git/modules/sub1' -ok 7 - git read-tree -u -m --recurse-submodules: removed submodule absorbs submodules .git directory +fatal: cannot resolve 'simple' push to a single destination +ok 4 - triangular @{push} fails with default=simple -expecting success of 1013.8 'git read-tree -u -m --recurse-submodules: replace submodule with a file': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_file origin/replace_sub1_with_file && - $command replace_sub1_with_file && - test_superproject_content origin/replace_sub1_with_file && - test -f sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -ok 8 - git read-tree -u -m --recurse-submodules: replace submodule with a file +expecting success of 1514.5 '@{push} with default=current': + test_config push.default current && + resolve topic@{push} refs/remotes/origin/topic -checking known breakage of 1013.9 'git read-tree -u -m --recurse-submodules: replace submodule with a file must fail with untracked files': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_file origin/replace_sub1_with_file && - : >sub1/untrackedfile && - test_must_fail $command replace_sub1_with_file && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 && - test -f sub1/untracked_file - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -test_must_fail: command succeeded: git read-tree -u -m --recurse-submodules replace_sub1_with_file -not ok 9 - git read-tree -u -m --recurse-submodules: replace submodule with a file must fail with untracked files # TODO known breakage +ok 5 - @{push} with default=current -expecting success of 1013.10 'git read-tree -u -m --recurse-submodules: worktrees of nested submodules are removed': - prolog && - reset_work_tree_to_interested add_nested_sub && - ( - cd submodule_update && - git branch -t no_submodule origin/no_submodule && - $command no_submodule && - test_superproject_content origin/no_submodule && - ! test_path_is_dir sub1 && - test_must_fail git config -f .git/modules/sub1/config core.worktree && - test_must_fail git config -f .git/modules/sub1/modules/sub2/config core.worktree - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_nested_sub' -Branch 'add_nested_sub' set up to track remote branch 'add_nested_sub' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '8b3b3353ac8999eb3d8af8e947e0ef2a08a60008' -Submodule 'sub2' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub2) registered for path 'sub1/sub2' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1/sub2'... -done. -Submodule path 'sub1/sub2': checked out '27c5769ac0ebf2d924e34d3aa503345baaaa98b2' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Directory sub1 doesn't exist. -ok 10 - git read-tree -u -m --recurse-submodules: worktrees of nested submodules are removed +expecting success of 1514.6 '@{push} with default=matching': + test_config push.default matching && + resolve topic@{push} refs/remotes/origin/topic -expecting success of 1013.11 'git read-tree -u -m --recurse-submodules: modified submodule updates submodule work tree': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t modify_sub1 origin/modify_sub1 && - $command modify_sub1 && - test_superproject_content origin/modify_sub1 && - test_submodule_content sub1 origin/modify_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. -ok 11 - git read-tree -u -m --recurse-submodules: modified submodule updates submodule work tree +ok 6 - @{push} with default=matching -expecting success of 1013.12 'git read-tree -u -m --recurse-submodules: updating to a missing submodule commit fails': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t invalid_sub1 origin/invalid_sub1 && - test_must_fail $command invalid_sub1 2>err && - test_i18ngrep sub1 err && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. -checking prerequisite: C_LOCALE_OUTPUT +expecting success of 1514.7 '@{push} with pushremote defined': + test_config push.default current && + test_config branch.topic.pushremote other && + resolve topic@{push} refs/remotes/other/topic -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false +ok 7 - @{push} with pushremote defined -) -prerequisite C_LOCALE_OUTPUT ok -error: Submodule 'sub1' could not be updated. -error: Submodule 'sub1' cannot checkout new HEAD. -ok 12 - git read-tree -u -m --recurse-submodules: updating to a missing submodule commit fails +expecting success of 1514.8 '@{push} with push refspecs': + test_config push.default nothing && + test_config remote.origin.push refs/heads/*:refs/heads/magic/* && + git push && + resolve topic@{push} refs/remotes/origin/magic/topic -expecting success of 1013.13 'git read-tree -u -m --recurse-submodules: submodule branch is not changed, detach HEAD instead': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git -C sub1 checkout -b keep_branch && - git -C sub1 rev-parse HEAD >expect && - git branch -t modify_sub1 origin/modify_sub1 && - $command modify_sub1 && - test_superproject_content origin/modify_sub1 && - test_submodule_content sub1 origin/modify_sub1 && - git -C sub1 rev-parse keep_branch >actual && - test_cmp expect actual && - test_must_fail git -C sub1 symbolic-ref HEAD - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Switched to a new branch 'keep_branch' -Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. -fatal: ref HEAD is not a symbolic ref -ok 13 - git read-tree -u -m --recurse-submodules: submodule branch is not changed, detach HEAD instead +To parent.git + * [new branch] master -> magic/master + * [new branch] topic -> magic/topic +ok 8 - @{push} with push refspecs -expecting success of 1013.14 'git read-tree -u -m --recurse-submodules: added submodule doesn't remove untracked file with same name': - prolog && - reset_work_tree_to_interested no_submodule && - ( - cd submodule_update && - git branch -t add_sub1 origin/add_sub1 && - : >sub1 && - test_must_fail $command add_sub1 && - test_superproject_content origin/no_submodule && - test_must_be_empty sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -error: Untracked working tree file 'sub1' would be overwritten by merge. -ok 14 - git read-tree -u -m --recurse-submodules: added submodule doesn't remove untracked file with same name +expecting success of 1514.9 'resolving @{push} fails with a detached HEAD': + git checkout HEAD^0 && + test_when_finished "git checkout -" && + test_must_fail git rev-parse @{push} -checking known breakage of 1013.15 'git read-tree -u -m --recurse-submodules: added submodule removes an untracked ignored file': - test_when_finished "rm submodule_update/.git/info/exclude" && - prolog && - reset_work_tree_to_interested no_submodule && - ( - cd submodule_update && - git branch -t add_sub1 origin/add_sub1 && - : >sub1 && - echo sub1 >.git/info/exclude && - $command add_sub1 && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -error: Untracked working tree file 'sub1' would be overwritten by merge. -not ok 15 - git read-tree -u -m --recurse-submodules: added submodule removes an untracked ignored file # TODO known breakage +Note: switching to 'HEAD^0'. -checking known breakage of 1013.16 'git read-tree -u -m --recurse-submodules: replace submodule with a directory': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && - $command replace_sub1_with_directory && - test_superproject_content origin/replace_sub1_with_directory && - test_submodule_content sub1 origin/replace_sub1_with_directory - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -error: Untracked working tree file 'sub1/file1' would be overwritten by merge. -not ok 16 - git read-tree -u -m --recurse-submodules: replace submodule with a directory # TODO known breakage +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. -checking known breakage of 1013.17 'git read-tree -u -m --recurse-submodules: replace submodule containing a .git directory with a directory must absorb the git dir': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && - replace_gitfile_with_git_dir sub1 && - rm -rf .git/modules && - $command replace_sub1_with_directory && - test_superproject_content origin/replace_sub1_with_directory && - test_git_directory_exists sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -error: Untracked working tree file 'sub1/file1' would be overwritten by merge. -not ok 17 - git read-tree -u -m --recurse-submodules: replace submodule containing a .git directory with a directory must absorb the git dir # TODO known breakage +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: -expecting success of 1013.18 'git read-tree -u -m --recurse-submodules: replace submodule with a file works ignores ignored files in submodule': - test_when_finished "rm submodule_update/.git/modules/sub1/info/exclude" && - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_file origin/replace_sub1_with_file && - echo ignored >.git/modules/sub1/info/exclude && - : >sub1/ignored && - $command replace_sub1_with_file && - test_superproject_content origin/replace_sub1_with_file && - test -f sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -ok 18 - git read-tree -u -m --recurse-submodules: replace submodule with a file works ignores ignored files in submodule + git switch -c -expecting success of 1013.19 'git -c submodule.recurse=true read-tree -u -m: modified submodule updates submodule work tree': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t modify_sub1 origin/modify_sub1 && - git -c submodule.recurse=true $cmd_args modify_sub1 && - test_superproject_content origin/modify_sub1 && - test_submodule_content sub1 origin/modify_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. -ok 19 - git -c submodule.recurse=true read-tree -u -m: modified submodule updates submodule work tree +Or undo this operation with: -expecting success of 1013.20 'git read-tree -u -m --recurse-submodules: modified submodule updates submodule recursively': - prolog && - reset_work_tree_to_interested add_nested_sub && - ( - cd submodule_update && - git branch -t modify_sub1_recursively origin/modify_sub1_recursively && - $command modify_sub1_recursively && - test_superproject_content origin/modify_sub1_recursively && - test_submodule_content sub1 origin/modify_sub1_recursively && - test_submodule_content -C sub1 sub2 origin/modify_sub1_recursively - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_nested_sub' -Branch 'add_nested_sub' set up to track remote branch 'add_nested_sub' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '8b3b3353ac8999eb3d8af8e947e0ef2a08a60008' -Submodule 'sub2' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub2) registered for path 'sub1/sub2' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1/sub2'... -done. -Submodule path 'sub1/sub2': checked out '27c5769ac0ebf2d924e34d3aa503345baaaa98b2' -Branch 'modify_sub1_recursively' set up to track remote branch 'modify_sub1_recursively' from 'origin'. -ok 20 - git read-tree -u -m --recurse-submodules: modified submodule updates submodule recursively + git switch - -expecting success of 1013.21 'git read-tree -u --reset --recurse-submodules: added submodule is checked out': - prolog && - reset_work_tree_to_interested no_submodule && - ( - cd submodule_update && - git branch -t add_sub1 origin/add_sub1 && - $command add_sub1 && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -ok 21 - git read-tree -u --reset --recurse-submodules: added submodule is checked out +Turn off this advice by setting config variable advice.detachedHead to false -expecting success of 1013.22 'git read-tree -u --reset --recurse-submodules: added submodule is checked out in empty dir': - prolog && - reset_work_tree_to_interested no_submodule && - ( - cd submodule_update && - mkdir sub1 && - git branch -t add_sub1 origin/add_sub1 && - $command add_sub1 && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -ok 22 - git read-tree -u --reset --recurse-submodules: added submodule is checked out in empty dir +HEAD is now at d1ff1c9 base +fatal: HEAD does not point to a branch +Switched to branch 'master' +Your branch is up to date with 'origin/master'. +ok 9 - resolving @{push} fails with a detached HEAD -expecting success of 1013.23 'git read-tree -u --reset --recurse-submodules: replace tracked file with submodule checks out submodule': - prolog && - reset_work_tree_to_interested replace_sub1_with_file && - ( - cd submodule_update && - git branch -t replace_file_with_sub1 origin/replace_file_with_sub1 && - $command replace_file_with_sub1 && - test_superproject_content origin/replace_file_with_sub1 && - test_submodule_content sub1 origin/replace_file_with_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'replace_sub1_with_file' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -fatal: Needed a single revision -Branch 'replace_file_with_sub1' set up to track remote branch 'replace_file_with_sub1' from 'origin'. -ok 23 - git read-tree -u --reset --recurse-submodules: replace tracked file with submodule checks out submodule +# passed all 9 test(s) +1..9 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t1601-index-bogus.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1601-index-bogus/.git/ +expecting success of 1601.1 'create tree with null sha1': + tree=$(printf "160000 commit $ZERO_OID\\tbroken\\n" | git mktree) -expecting success of 1013.24 'git read-tree -u --reset --recurse-submodules: replace directory with submodule': - prolog && - reset_work_tree_to_interested replace_sub1_with_directory && - ( - cd submodule_update && - git branch -t replace_directory_with_sub1 origin/replace_directory_with_sub1 && - $command replace_directory_with_sub1 && - test_superproject_content origin/replace_directory_with_sub1 && - test_submodule_content sub1 origin/replace_directory_with_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'replace_sub1_with_directory' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -fatal: Needed a single revision -Branch 'replace_directory_with_sub1' set up to track remote branch 'replace_directory_with_sub1' from 'origin'. -ok 24 - git read-tree -u --reset --recurse-submodules: replace directory with submodule +ok 1 - create tree with null sha1 -expecting success of 1013.25 'git read-tree -u --reset --recurse-submodules: nested submodules are checked out': - prolog && - reset_work_tree_to_interested no_submodule && - ( - cd submodule_update && - git branch -t modify_sub1_recursively origin/modify_sub1_recursively && - $command modify_sub1_recursively && - test_superproject_content origin/modify_sub1_recursively && - test_submodule_content sub1 origin/modify_sub1_recursively && - test_submodule_content -C sub1 sub2 origin/modify_sub1_recursively - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'modify_sub1_recursively' set up to track remote branch 'modify_sub1_recursively' from 'origin'. -ok 25 - git read-tree -u --reset --recurse-submodules: nested submodules are checked out +expecting success of 1601.2 'read-tree refuses to read null sha1': + test_must_fail git read-tree $tree -expecting success of 1013.26 'git read-tree -u --reset --recurse-submodules: removed submodule removes submodules working tree': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t remove_sub1 origin/remove_sub1 && - $command remove_sub1 && - test_superproject_content origin/remove_sub1 && - ! test -e sub1 && - test_must_fail git config -f .git/modules/sub1/config core.worktree - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. -ok 26 - git read-tree -u --reset --recurse-submodules: removed submodule removes submodules working tree +error: invalid object 160000 0000000000000000000000000000000000000000 for 'broken' +error: cache entry has null sha1: broken +fatal: unable to write new index file +ok 2 - read-tree refuses to read null sha1 -expecting success of 1013.27 'git read-tree -u --reset --recurse-submodules: removed submodule absorbs submodules .git directory': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t remove_sub1 origin/remove_sub1 && - replace_gitfile_with_git_dir sub1 && - rm -rf .git/modules && - $command remove_sub1 && - test_superproject_content origin/remove_sub1 && - ! test -e sub1 && - test_git_directory_exists sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. -Migrating git directory of 'sub1' from -'/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1/.git' to -'/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/.git/modules/sub1' -ok 27 - git read-tree -u --reset --recurse-submodules: removed submodule absorbs submodules .git directory +expecting success of 1601.3 'GIT_ALLOW_NULL_SHA1 overrides refusal': + GIT_ALLOW_NULL_SHA1=1 git read-tree $tree -expecting success of 1013.28 'git read-tree -u --reset --recurse-submodules: replace submodule with a file': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_file origin/replace_sub1_with_file && - $command replace_sub1_with_file && - test_superproject_content origin/replace_sub1_with_file && - test -f sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -ok 28 - git read-tree -u --reset --recurse-submodules: replace submodule with a file +error: invalid object 160000 0000000000000000000000000000000000000000 for 'broken' +warning: cache entry has null sha1: broken +ok 3 - GIT_ALLOW_NULL_SHA1 overrides refusal -checking known breakage of 1013.29 'git read-tree -u --reset --recurse-submodules: replace submodule with a file must fail with untracked files': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_file origin/replace_sub1_with_file && - : >sub1/untrackedfile && - test_must_fail $command replace_sub1_with_file && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 && - test -f sub1/untracked_file - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -test_must_fail: command succeeded: git read-tree -u --reset --recurse-submodules replace_sub1_with_file -not ok 29 - git read-tree -u --reset --recurse-submodules: replace submodule with a file must fail with untracked files # TODO known breakage +expecting success of 1601.4 'git write-tree refuses to write null sha1': + test_must_fail git write-tree -expecting success of 1013.30 'git read-tree -u --reset --recurse-submodules: worktrees of nested submodules are removed': - prolog && - reset_work_tree_to_interested add_nested_sub && - ( - cd submodule_update && - git branch -t no_submodule origin/no_submodule && - $command no_submodule && - test_superproject_content origin/no_submodule && - ! test_path_is_dir sub1 && - test_must_fail git config -f .git/modules/sub1/config core.worktree && - test_must_fail git config -f .git/modules/sub1/modules/sub2/config core.worktree - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_nested_sub' -Branch 'add_nested_sub' set up to track remote branch 'add_nested_sub' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '8b3b3353ac8999eb3d8af8e947e0ef2a08a60008' -Submodule 'sub2' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub2) registered for path 'sub1/sub2' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1/sub2'... -done. -Submodule path 'sub1/sub2': checked out '27c5769ac0ebf2d924e34d3aa503345baaaa98b2' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Directory sub1 doesn't exist. -ok 30 - git read-tree -u --reset --recurse-submodules: worktrees of nested submodules are removed +error: invalid object 160000 0000000000000000000000000000000000000000 for 'broken' +fatal: git-write-tree: error building trees +ok 4 - git write-tree refuses to write null sha1 -expecting success of 1013.31 'git read-tree -u --reset --recurse-submodules: modified submodule updates submodule work tree': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t modify_sub1 origin/modify_sub1 && - $command modify_sub1 && - test_superproject_content origin/modify_sub1 && - test_submodule_content sub1 origin/modify_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. -ok 31 - git read-tree -u --reset --recurse-submodules: modified submodule updates submodule work tree +# passed all 4 test(s) +1..4 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t1600-index.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1600-index/.git/ +expecting success of 1600.1 'setup': + echo 1 >a + +ok 1 - setup + +expecting success of 1600.2 'bogus GIT_INDEX_VERSION issues warning': + ( + rm -f .git/index && + GIT_INDEX_VERSION=2bogus && + export GIT_INDEX_VERSION && + git add a 2>&1 | sed "s/[0-9]//" >actual.err && + sed -e "s/ Z$/ /" <<-\EOF >expect.err && + warning: GIT_INDEX_VERSION set, but the value is invalid. + Using version Z + EOF + test_i18ncmp expect.err actual.err + ) -expecting success of 1013.32 'git read-tree -u --reset --recurse-submodules: updating to a missing submodule commit fails': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t invalid_sub1 origin/invalid_sub1 && - test_must_fail $command invalid_sub1 2>err && - test_i18ngrep sub1 err && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. checking prerequisite: C_LOCALE_OUTPUT mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && @@ -53616,12293 +55013,10771 @@ ) prerequisite C_LOCALE_OUTPUT ok -error: Submodule 'sub1' could not be updated. -error: Submodule 'sub1' cannot checkout new HEAD. -ok 32 - git read-tree -u --reset --recurse-submodules: updating to a missing submodule commit fails +ok 2 - bogus GIT_INDEX_VERSION issues warning -expecting success of 1013.33 'git read-tree -u --reset --recurse-submodules: submodule branch is not changed, detach HEAD instead': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git -C sub1 checkout -b keep_branch && - git -C sub1 rev-parse HEAD >expect && - git branch -t modify_sub1 origin/modify_sub1 && - $command modify_sub1 && - test_superproject_content origin/modify_sub1 && - test_submodule_content sub1 origin/modify_sub1 && - git -C sub1 rev-parse keep_branch >actual && - test_cmp expect actual && - test_must_fail git -C sub1 symbolic-ref HEAD - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Switched to a new branch 'keep_branch' -Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. -fatal: ref HEAD is not a symbolic ref -ok 33 - git read-tree -u --reset --recurse-submodules: submodule branch is not changed, detach HEAD instead +expecting success of 1600.3 'out of bounds GIT_INDEX_VERSION issues warning': + ( + rm -f .git/index && + GIT_INDEX_VERSION=1 && + export GIT_INDEX_VERSION && + git add a 2>&1 | sed "s/[0-9]//" >actual.err && + sed -e "s/ Z$/ /" <<-\EOF >expect.err && + warning: GIT_INDEX_VERSION set, but the value is invalid. + Using version Z + EOF + test_i18ncmp expect.err actual.err + ) -expecting success of 1013.34 'git read-tree -u --reset --recurse-submodules: added submodule does remove untracked unignored file with same name when forced': - prolog && - reset_work_tree_to_interested no_submodule && - ( - cd submodule_update && - git branch -t add_sub1 origin/add_sub1 && - >sub1 && - $command add_sub1 && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -ok 34 - git read-tree -u --reset --recurse-submodules: added submodule does remove untracked unignored file with same name when forced +checking prerequisite: C_LOCALE_OUTPUT -expecting success of 1013.35 'git read-tree -u --reset --recurse-submodules: replace submodule with a directory': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && - $command replace_sub1_with_directory && - test_superproject_content origin/replace_sub1_with_directory - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -ok 35 - git read-tree -u --reset --recurse-submodules: replace submodule with a directory +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false -expecting success of 1013.36 'git read-tree -u --reset --recurse-submodules: replace submodule containing a .git directory with a directory must fail': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && - replace_gitfile_with_git_dir sub1 && - rm -rf .git/modules/sub1 && - $command replace_sub1_with_directory && - test_superproject_content origin/replace_sub1_with_directory && - test_git_directory_exists sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -Migrating git directory of 'sub1' from -'/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1/.git' to -'/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/.git/modules/sub1' -ok 36 - git read-tree -u --reset --recurse-submodules: replace submodule containing a .git directory with a directory must fail +) +prerequisite C_LOCALE_OUTPUT ok +ok 3 - out of bounds GIT_INDEX_VERSION issues warning -expecting success of 1013.37 'git read-tree -u --reset --recurse-submodules: replace submodule with a file ignoring ignored files': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_file origin/replace_sub1_with_file && - : >sub1/expect && - $command replace_sub1_with_file && - test_superproject_content origin/replace_sub1_with_file - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -ok 37 - git read-tree -u --reset --recurse-submodules: replace submodule with a file ignoring ignored files +expecting success of 1600.4 'no warning with bogus GIT_INDEX_VERSION and existing index': + ( + GIT_INDEX_VERSION=1 && + export GIT_INDEX_VERSION && + git add a 2>actual.err && + test_must_be_empty actual.err + ) -expecting success of 1013.38 'git read-tree -u --reset --recurse-submodules: modified submodule does update submodule work tree from invalid commit': - prolog && - reset_work_tree_to_interested invalid_sub1 && - ( - cd submodule_update && - git branch -t valid_sub1 origin/valid_sub1 && - $command valid_sub1 && - test_superproject_content origin/valid_sub1 && - test_submodule_content sub1 origin/valid_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'invalid_sub1' -Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. -fatal: Needed a single revision -Branch 'valid_sub1' set up to track remote branch 'valid_sub1' from 'origin'. -ok 38 - git read-tree -u --reset --recurse-submodules: modified submodule does update submodule work tree from invalid commit +ok 4 - no warning with bogus GIT_INDEX_VERSION and existing index -expecting success of 1013.39 'git read-tree -u --reset --recurse-submodules: updating submodules fixes .git links': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t modify_sub1 origin/modify_sub1 && - echo "gitdir: bogus/path" >sub1/.git && - $command modify_sub1 && - test_superproject_content origin/modify_sub1 && - test_submodule_content sub1 origin/modify_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. -ok 39 - git read-tree -u --reset --recurse-submodules: updating submodules fixes .git links +expecting success of 1600.5 'out of bounds index.version issues warning': + ( + sane_unset GIT_INDEX_VERSION && + rm -f .git/index && + git config --add index.version 1 && + git add a 2>&1 | sed "s/[0-9]//" >actual.err && + sed -e "s/ Z$/ /" <<-\EOF >expect.err && + warning: index.version set, but the value is invalid. + Using version Z + EOF + test_i18ncmp expect.err actual.err + ) -expecting success of 1013.40 'git read-tree -u --reset --recurse-submodules: changed submodule worktree is reset': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - rm sub1/file1 && - : >sub1/new_file && - git -C sub1 add new_file && - $command HEAD && - test_path_is_file sub1/file1 && - test_path_is_missing sub1/new_file - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -ok 40 - git read-tree -u --reset --recurse-submodules: changed submodule worktree is reset +checking prerequisite: C_LOCALE_OUTPUT -expecting success of 1013.41 'git_test_func: added submodule creates empty directory': - prolog && - reset_work_tree_to no_submodule && - ( - cd submodule_update && - git branch -t add_sub1 origin/add_sub1 && - $command add_sub1 && - test_superproject_content origin/add_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -ok 41 - git_test_func: added submodule creates empty directory +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false -expecting success of 1013.42 'git_test_func: added submodule leaves existing empty directory alone': - prolog && - reset_work_tree_to no_submodule && - ( - cd submodule_update && - mkdir sub1 && - git branch -t add_sub1 origin/add_sub1 && - $command add_sub1 && - test_superproject_content origin/add_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -ok 42 - git_test_func: added submodule leaves existing empty directory alone +) +prerequisite C_LOCALE_OUTPUT ok +ok 5 - out of bounds index.version issues warning -expecting success of 1013.43 'git_test_func: replace tracked file with submodule creates empty directory': - prolog && - reset_work_tree_to replace_sub1_with_file && - ( - cd submodule_update && - git branch -t replace_file_with_sub1 origin/replace_file_with_sub1 && - $command replace_file_with_sub1 && - test_superproject_content origin/replace_file_with_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/replace_file_with_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'replace_sub1_with_file' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -fatal: Needed a single revision -Branch 'replace_file_with_sub1' set up to track remote branch 'replace_file_with_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -ok 43 - git_test_func: replace tracked file with submodule creates empty directory +expecting success of 1600.6 'index version config precedence': + test_index_version 0 false 0 2 && + test_index_version 2 false 0 2 && + test_index_version 3 false 0 2 && + test_index_version 4 false 0 4 && + test_index_version 2 false 4 4 && + test_index_version 2 true 0 2 && + test_index_version 0 true 0 4 && + test_index_version 0 true 2 2 -expecting success of 1013.44 'git_test_func: replace directory with submodule': - prolog && - reset_work_tree_to replace_sub1_with_directory && - ( - cd submodule_update && - git branch -t replace_directory_with_sub1 origin/replace_directory_with_sub1 && - $command replace_directory_with_sub1 && - test_superproject_content origin/replace_directory_with_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/replace_directory_with_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'replace_sub1_with_directory' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -fatal: Needed a single revision -Branch 'replace_directory_with_sub1' set up to track remote branch 'replace_directory_with_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -ok 44 - git_test_func: replace directory with submodule +ok 6 - index version config precedence -expecting success of 1013.45 'git_test_func: removed submodule leaves submodule directory and its contents in place': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t remove_sub1 origin/remove_sub1 && - $command remove_sub1 && - test_superproject_content origin/remove_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. -warning: unable to rmdir 'sub1': Directory not empty -ok 45 - git_test_func: removed submodule leaves submodule directory and its contents in place +# passed all 6 test(s) +1..6 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t1700-split-index.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1700-split-index/.git/ +expecting success of 1700.1 'setup': + test_oid_cache <<-EOF + own_v3 sha1:8299b0bcd1ac364e5f1d7768efb62fa2da79a339 + own_v3 sha256:38a6d2925e3eceec33ad7b34cbff4e0086caa0daf28f31e51f5bd94b4a7af86b -expecting success of 1013.46 'git_test_func: removed submodule leaves submodule containing a .git directory alone': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t remove_sub1 origin/remove_sub1 && - replace_gitfile_with_git_dir sub1 && - $command remove_sub1 && - test_superproject_content origin/remove_sub1 && - test_git_directory_is_unchanged sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. -warning: unable to rmdir 'sub1': Directory not empty -ok 46 - git_test_func: removed submodule leaves submodule containing a .git directory alone + base_v3 sha1:39d890139ee5356c7ef572216cebcd27aa41f9df + base_v3 sha256:c9baeadf905112bf6c17aefbd7d02267afd70ded613c30cafed2d40cb506e1ed -expecting success of 1013.47 'git_test_func: replace submodule with a directory must fail': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && - $command replace_sub1_with_directory test_must_fail && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -error: Untracked working tree file 'sub1/file1' would be overwritten by merge. -ok 47 - git_test_func: replace submodule with a directory must fail + own_v4 sha1:432ef4b63f32193984f339431fd50ca796493569 + own_v4 sha256:6738ac6319c25b694afa7bcc313deb182d1a59b68bf7a47b4296de83478c0420 -expecting success of 1013.48 'git_test_func: replace submodule containing a .git directory with a directory must fail': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && - replace_gitfile_with_git_dir sub1 && - $command replace_sub1_with_directory test_must_fail && - test_superproject_content origin/add_sub1 && - test_git_directory_is_unchanged sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -error: Untracked working tree file 'sub1/file1' would be overwritten by merge. -ok 48 - git_test_func: replace submodule containing a .git directory with a directory must fail + base_v4 sha1:508851a7f0dfa8691e9f69c7f055865389012491 + base_v4 sha256:3177d4adfdd4b6904f7e921d91d715a471c0dde7cf6a4bba574927f02b699508 + EOF -checking known breakage of 1013.49 'git_test_func: replace submodule with a file must fail': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_file origin/replace_sub1_with_file && - $command replace_sub1_with_file test_must_fail && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -test_must_fail: command succeeded: git read-tree -u -m replace_sub1_with_file -not ok 49 - git_test_func: replace submodule with a file must fail # TODO known breakage +ok 1 - setup -checking known breakage of 1013.50 'git_test_func: replace submodule containing a .git directory with a file must fail': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_file origin/replace_sub1_with_file && - replace_gitfile_with_git_dir sub1 && - $command replace_sub1_with_file test_must_fail && - test_superproject_content origin/add_sub1 && - test_git_directory_is_unchanged sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -test_must_fail: command succeeded: git read-tree -u -m replace_sub1_with_file -not ok 50 - git_test_func: replace submodule containing a .git directory with a file must fail # TODO known breakage +expecting success of 1700.2 'enable split index': + git config splitIndex.maxPercentChange 100 && + git update-index --split-index && + test-tool dump-split-index .git/index >actual && + indexversion=$(test-tool index-version <.git/index) && -expecting success of 1013.51 'git_test_func: modified submodule does not update submodule work tree': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t modify_sub1 origin/modify_sub1 && - $command modify_sub1 && - test_superproject_content origin/modify_sub1 && - test_submodule_content sub1 origin/add_sub1 && - git submodule update && - test_submodule_content sub1 origin/modify_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. -Submodule path 'sub1': checked out '03da4ea88bb165bd26ee0b2e5c657f2858b23f53' -ok 51 - git_test_func: modified submodule does not update submodule work tree + # NEEDSWORK: Stop hard-coding checksums. + if test "$indexversion" = "4" + then + own=$(test_oid own_v4) + base=$(test_oid base_v4) + else + own=$(test_oid own_v3) + base=$(test_oid base_v3) + fi && -expecting success of 1013.52 'git_test_func: modified submodule does not update submodule work tree to invalid commit': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t invalid_sub1 origin/invalid_sub1 && - $command invalid_sub1 && - test_superproject_content origin/invalid_sub1 && - test_submodule_content sub1 origin/add_sub1 && - test_must_fail git submodule update && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. -fatal: git upload-pack: not our ref 0123456789012345678901234567890123456789 -fatal: remote error: upload-pack: not our ref 0123456789012345678901234567890123456789 -Fetched in submodule path 'sub1', but it did not contain 0123456789012345678901234567890123456789. Direct fetching of that commit failed. -ok 52 - git_test_func: modified submodule does not update submodule work tree to invalid commit + cat >expect <<-EOF && + own $own + base $base + replacements: + deletions: + EOF + test_cmp expect actual -expecting success of 1013.53 'git_test_func: modified submodule does not update submodule work tree from invalid commit': - prolog && - reset_work_tree_to invalid_sub1 && - ( - cd submodule_update && - git branch -t valid_sub1 origin/valid_sub1 && - $command valid_sub1 && - test_superproject_content origin/valid_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/valid_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'invalid_sub1' -Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. -fatal: Needed a single revision -Branch 'valid_sub1' set up to track remote branch 'valid_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -ok 53 - git_test_func: modified submodule does not update submodule work tree from invalid commit +ok 2 - enable split index -expecting success of 1013.54 'git_test_func: added submodule doesn't remove untracked unignored file with same name': - prolog && - reset_work_tree_to no_submodule && - ( - cd submodule_update && - git branch -t add_sub1 origin/add_sub1 && - >sub1 && - $command add_sub1 test_must_fail && - test_superproject_content origin/no_submodule && - test_must_be_empty sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -error: Untracked working tree file 'sub1' would be overwritten by merge. -ok 54 - git_test_func: added submodule doesn't remove untracked unignored file with same name +expecting success of 1700.3 'add one file': + create_non_racy_file one && + git update-index --add one && + git ls-files --stage >ls-files.actual && + cat >ls-files.expect <<-EOF && + 100644 $EMPTY_BLOB 0 one + EOF + test_cmp ls-files.expect ls-files.actual && -expecting success of 1013.55 'git_test_func: added submodule creates empty directory': - prolog && - reset_work_tree_to no_submodule && - ( - cd submodule_update && - git branch -t add_sub1 origin/add_sub1 && - $command add_sub1 && - test_superproject_content origin/add_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -ok 55 - git_test_func: added submodule creates empty directory + test-tool dump-split-index .git/index | sed "/^own/d" >actual && + cat >expect <<-EOF && + base $base + 100644 $EMPTY_BLOB 0 one + replacements: + deletions: + EOF + test_cmp expect actual -expecting success of 1013.56 'git_test_func: added submodule leaves existing empty directory alone': - prolog && - reset_work_tree_to no_submodule && - ( - cd submodule_update && - mkdir sub1 && - git branch -t add_sub1 origin/add_sub1 && - $command add_sub1 && - test_superproject_content origin/add_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -ok 56 - git_test_func: added submodule leaves existing empty directory alone +ok 3 - add one file -expecting success of 1013.57 'git_test_func: replace tracked file with submodule creates empty directory': - prolog && - reset_work_tree_to replace_sub1_with_file && - ( - cd submodule_update && - git branch -t replace_file_with_sub1 origin/replace_file_with_sub1 && - $command replace_file_with_sub1 && - test_superproject_content origin/replace_file_with_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/replace_file_with_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'replace_sub1_with_file' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -fatal: Needed a single revision -Branch 'replace_file_with_sub1' set up to track remote branch 'replace_file_with_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -ok 57 - git_test_func: replace tracked file with submodule creates empty directory +expecting success of 1700.4 'disable split index': + git update-index --no-split-index && + git ls-files --stage >ls-files.actual && + cat >ls-files.expect <<-EOF && + 100644 $EMPTY_BLOB 0 one + EOF + test_cmp ls-files.expect ls-files.actual && -expecting success of 1013.58 'git_test_func: replace directory with submodule': - prolog && - reset_work_tree_to replace_sub1_with_directory && - ( - cd submodule_update && - git branch -t replace_directory_with_sub1 origin/replace_directory_with_sub1 && - $command replace_directory_with_sub1 && - test_superproject_content origin/replace_directory_with_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/replace_directory_with_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'replace_sub1_with_directory' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -fatal: Needed a single revision -Branch 'replace_directory_with_sub1' set up to track remote branch 'replace_directory_with_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -ok 58 - git_test_func: replace directory with submodule + BASE=$(test-tool dump-split-index .git/index | sed -n "s/^own/base/p") && + test-tool dump-split-index .git/index | sed "/^own/d" >actual && + cat >expect <<-EOF && + not a split index + EOF + test_cmp expect actual -expecting success of 1013.59 'git_test_func: removed submodule leaves submodule directory and its contents in place': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t remove_sub1 origin/remove_sub1 && - $command remove_sub1 && - test_superproject_content origin/remove_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. -warning: unable to rmdir 'sub1': Directory not empty -ok 59 - git_test_func: removed submodule leaves submodule directory and its contents in place +ok 4 - disable split index -expecting success of 1013.60 'git_test_func: removed submodule leaves submodule containing a .git directory alone': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t remove_sub1 origin/remove_sub1 && - replace_gitfile_with_git_dir sub1 && - $command remove_sub1 && - test_superproject_content origin/remove_sub1 && - test_git_directory_is_unchanged sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. -warning: unable to rmdir 'sub1': Directory not empty -ok 60 - git_test_func: removed submodule leaves submodule containing a .git directory alone +expecting success of 1700.5 'enable split index again, "one" now belongs to base index"': + git update-index --split-index && + git ls-files --stage >ls-files.actual && + cat >ls-files.expect <<-EOF && + 100644 $EMPTY_BLOB 0 one + EOF + test_cmp ls-files.expect ls-files.actual && -checking known breakage of 1013.61 'git_test_func: replace submodule with a directory must fail': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && - $command replace_sub1_with_directory test_must_fail && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -warning: unable to rmdir 'sub1': Directory not empty -test_must_fail: command succeeded: git read-tree -u --reset replace_sub1_with_directory -not ok 61 - git_test_func: replace submodule with a directory must fail # TODO known breakage + test-tool dump-split-index .git/index | sed "/^own/d" >actual && + cat >expect <<-EOF && + $BASE + replacements: + deletions: + EOF + test_cmp expect actual -checking known breakage of 1013.62 'git_test_func: replace submodule containing a .git directory with a directory must fail': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && - replace_gitfile_with_git_dir sub1 && - $command replace_sub1_with_directory test_must_fail && - test_superproject_content origin/add_sub1 && - test_git_directory_is_unchanged sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -warning: unable to rmdir 'sub1': Directory not empty -test_must_fail: command succeeded: git read-tree -u --reset replace_sub1_with_directory -not ok 62 - git_test_func: replace submodule containing a .git directory with a directory must fail # TODO known breakage +ok 5 - enable split index again, "one" now belongs to base index" -checking known breakage of 1013.63 'git_test_func: replace submodule with a file must fail': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_file origin/replace_sub1_with_file && - $command replace_sub1_with_file test_must_fail && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -test_must_fail: command succeeded: git read-tree -u --reset replace_sub1_with_file -not ok 63 - git_test_func: replace submodule with a file must fail # TODO known breakage +expecting success of 1700.6 'modify original file, base index untouched': + echo modified | create_non_racy_file one && + file1_blob=$(git hash-object one) && + git update-index one && + git ls-files --stage >ls-files.actual && + cat >ls-files.expect <<-EOF && + 100644 $file1_blob 0 one + EOF + test_cmp ls-files.expect ls-files.actual && -checking known breakage of 1013.64 'git_test_func: replace submodule containing a .git directory with a file must fail': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_file origin/replace_sub1_with_file && - replace_gitfile_with_git_dir sub1 && - $command replace_sub1_with_file test_must_fail && - test_superproject_content origin/add_sub1 && - test_git_directory_is_unchanged sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -test_must_fail: command succeeded: git read-tree -u --reset replace_sub1_with_file -not ok 64 - git_test_func: replace submodule containing a .git directory with a file must fail # TODO known breakage + test-tool dump-split-index .git/index | sed "/^own/d" >actual && + q_to_tab >expect <<-EOF && + $BASE + 100644 $file1_blob 0Q + replacements: 0 + deletions: + EOF + test_cmp expect actual -expecting success of 1013.65 'git_test_func: modified submodule does not update submodule work tree': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t modify_sub1 origin/modify_sub1 && - $command modify_sub1 && - test_superproject_content origin/modify_sub1 && - test_submodule_content sub1 origin/add_sub1 && - git submodule update && - test_submodule_content sub1 origin/modify_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. -Submodule path 'sub1': checked out '03da4ea88bb165bd26ee0b2e5c657f2858b23f53' -ok 65 - git_test_func: modified submodule does not update submodule work tree +ok 6 - modify original file, base index untouched -expecting success of 1013.66 'git_test_func: modified submodule does not update submodule work tree to invalid commit': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t invalid_sub1 origin/invalid_sub1 && - $command invalid_sub1 && - test_superproject_content origin/invalid_sub1 && - test_submodule_content sub1 origin/add_sub1 && - test_must_fail git submodule update && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. -fatal: git upload-pack: not our ref 0123456789012345678901234567890123456789 -fatal: remote error: upload-pack: not our ref 0123456789012345678901234567890123456789 -Fetched in submodule path 'sub1', but it did not contain 0123456789012345678901234567890123456789. Direct fetching of that commit failed. -ok 66 - git_test_func: modified submodule does not update submodule work tree to invalid commit +expecting success of 1700.7 'add another file, which stays index': + create_non_racy_file two && + git update-index --add two && + git ls-files --stage >ls-files.actual && + cat >ls-files.expect <<-EOF && + 100644 $file1_blob 0 one + 100644 $EMPTY_BLOB 0 two + EOF + test_cmp ls-files.expect ls-files.actual && -expecting success of 1013.67 'git_test_func: modified submodule does not update submodule work tree from invalid commit': - prolog && - reset_work_tree_to invalid_sub1 && - ( - cd submodule_update && - git branch -t valid_sub1 origin/valid_sub1 && - $command valid_sub1 && - test_superproject_content origin/valid_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/valid_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'invalid_sub1' -Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. -fatal: Needed a single revision -Branch 'valid_sub1' set up to track remote branch 'valid_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t1013-read-tree-submodule/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -ok 67 - git_test_func: modified submodule does not update submodule work tree from invalid commit + test-tool dump-split-index .git/index | sed "/^own/d" >actual && + q_to_tab >expect <<-EOF && + $BASE + 100644 $file1_blob 0Q + 100644 $EMPTY_BLOB 0 two + replacements: 0 + deletions: + EOF + test_cmp expect actual -expecting success of 1013.68 'git_test_func: added submodule does remove untracked unignored file with same name when forced': - prolog && - reset_work_tree_to no_submodule && - ( - cd submodule_update && - git branch -t add_sub1 origin/add_sub1 && - >sub1 && - $command add_sub1 && - test_superproject_content origin/add_sub1 && - test_dir_is_empty sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -ok 68 - git_test_func: added submodule does remove untracked unignored file with same name when forced +ok 7 - add another file, which stays index -# still have 11 known breakage(s) -# passed all remaining 57 test(s) -1..68 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1405-main-ref-store.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1405-main-ref-store/.git/ -expecting success of 1405.1 'pack_refs(PACK_REFS_ALL | PACK_REFS_PRUNE)': - test_commit one && - N=`find .git/refs -type f | wc -l` && - test "$N" != 0 && - $RUN pack-refs 3 && - N=`find .git/refs -type f | wc -l` +expecting success of 1700.8 'remove file not in base index': + git update-index --force-remove two && + git ls-files --stage >ls-files.actual && + cat >ls-files.expect <<-EOF && + 100644 $file1_blob 0 one + EOF + test_cmp ls-files.expect ls-files.actual && -[master (root-commit) d79ce16] one - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 one.t -ok 1 - pack_refs(PACK_REFS_ALL | PACK_REFS_PRUNE) + test-tool dump-split-index .git/index | sed "/^own/d" >actual && + q_to_tab >expect <<-EOF && + $BASE + 100644 $file1_blob 0Q + replacements: 0 + deletions: + EOF + test_cmp expect actual -expecting success of 1405.2 'peel_ref(new-tag)': - git rev-parse HEAD >expected && - git tag -a -m new-tag new-tag HEAD && - $RUN peel-ref refs/tags/new-tag >actual && - test_cmp expected actual +ok 8 - remove file not in base index -ok 2 - peel_ref(new-tag) +expecting success of 1700.9 'remove file in base index': + git update-index --force-remove one && + git ls-files --stage >ls-files.actual && + test_must_be_empty ls-files.actual && -expecting success of 1405.3 'create_symref(FOO, refs/heads/master)': - $RUN create-symref FOO refs/heads/master nothing && - echo refs/heads/master >expected && - git symbolic-ref FOO >actual && - test_cmp expected actual + test-tool dump-split-index .git/index | sed "/^own/d" >actual && + cat >expect <<-EOF && + $BASE + replacements: + deletions: 0 + EOF + test_cmp expect actual -ok 3 - create_symref(FOO, refs/heads/master) +ok 9 - remove file in base index -expecting success of 1405.4 'delete_refs(FOO, refs/tags/new-tag)': - git rev-parse FOO -- && - git rev-parse refs/tags/new-tag -- && - m=$(git rev-parse master) && - REF_NO_DEREF=1 && - $RUN delete-refs $REF_NO_DEREF nothing FOO refs/tags/new-tag && - test_must_fail git rev-parse --symbolic-full-name FOO && - test_must_fail git rev-parse FOO -- && - test_must_fail git rev-parse refs/tags/new-tag -- +expecting success of 1700.10 'add original file back': + create_non_racy_file one && + git update-index --add one && + git ls-files --stage >ls-files.actual && + cat >ls-files.expect <<-EOF && + 100644 $EMPTY_BLOB 0 one + EOF + test_cmp ls-files.expect ls-files.actual && -d79ce1670bdcb76e6d1da2ae095e890ccb326ae9 --- -407ffbd56c168afa4e9302a7cdfe469155f84482 --- -fatal: ambiguous argument 'FOO': unknown revision or path not in the working tree. -Use '--' to separate paths from revisions, like this: -'git [...] -- [...]' -FOO -fatal: bad revision 'FOO' -fatal: bad revision 'refs/tags/new-tag' -ok 4 - delete_refs(FOO, refs/tags/new-tag) + test-tool dump-split-index .git/index | sed "/^own/d" >actual && + cat >expect <<-EOF && + $BASE + 100644 $EMPTY_BLOB 0 one + replacements: + deletions: 0 + EOF + test_cmp expect actual -expecting success of 1405.5 'rename_refs(master, new-master)': - git rev-parse master >expected && - $RUN rename-ref refs/heads/master refs/heads/new-master && - git rev-parse new-master >actual && - test_cmp expected actual && - test_commit recreate-master +ok 10 - add original file back -[master (root-commit) c90e4dc] recreate-master - Author: A U Thor - 2 files changed, 2 insertions(+) - create mode 100644 one.t - create mode 100644 recreate-master.t -ok 5 - rename_refs(master, new-master) +expecting success of 1700.11 'add new file': + create_non_racy_file two && + git update-index --add two && + git ls-files --stage >actual && + cat >expect <<-EOF && + 100644 $EMPTY_BLOB 0 one + 100644 $EMPTY_BLOB 0 two + EOF + test_cmp expect actual -expecting success of 1405.6 'for_each_ref(refs/heads/)': - $RUN for-each-ref refs/heads/ | cut -d" " -f 2- >actual && - cat >expected <<-\EOF && - master 0x0 - new-master 0x0 +ok 11 - add new file + +expecting success of 1700.12 'unify index, two files remain': + git update-index --no-split-index && + git ls-files --stage >ls-files.actual && + cat >ls-files.expect <<-EOF && + 100644 $EMPTY_BLOB 0 one + 100644 $EMPTY_BLOB 0 two EOF - test_cmp expected actual + test_cmp ls-files.expect ls-files.actual && -ok 6 - for_each_ref(refs/heads/) + test-tool dump-split-index .git/index | sed "/^own/d" >actual && + cat >expect <<-EOF && + not a split index + EOF + test_cmp expect actual -expecting success of 1405.7 'for_each_ref() is sorted': - $RUN for-each-ref refs/heads/ | cut -d" " -f 2- >actual && - sort actual > expected && - test_cmp expected actual +ok 12 - unify index, two files remain -ok 7 - for_each_ref() is sorted +expecting success of 1700.13 'rev-parse --shared-index-path': + test_create_repo split-index && + ( + cd split-index && + git update-index --split-index && + echo .git/sharedindex* >expect && + git rev-parse --shared-index-path >actual && + test_cmp expect actual && + mkdir subdirectory && + cd subdirectory && + echo ../.git/sharedindex* >expect && + git rev-parse --shared-index-path >actual && + test_cmp expect actual + ) -expecting success of 1405.8 'resolve_ref(new-master)': - SHA1=`git rev-parse new-master` && - echo "$SHA1 refs/heads/new-master 0x0" >expected && - $RUN resolve-ref refs/heads/new-master 0 >actual && - test_cmp expected actual +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1700-split-index/split-index/.git/ +ok 13 - rev-parse --shared-index-path -ok 8 - resolve_ref(new-master) +expecting success of 1700.14 'set core.splitIndex config variable to true': + git config core.splitIndex true && + create_non_racy_file three && + git update-index --add three && + git ls-files --stage >ls-files.actual && + cat >ls-files.expect <<-EOF && + 100644 $EMPTY_BLOB 0 one + 100644 $EMPTY_BLOB 0 three + 100644 $EMPTY_BLOB 0 two + EOF + test_cmp ls-files.expect ls-files.actual && + BASE=$(test-tool dump-split-index .git/index | grep "^base") && + test-tool dump-split-index .git/index | sed "/^own/d" >actual && + cat >expect <<-EOF && + $BASE + replacements: + deletions: + EOF + test_cmp expect actual -expecting success of 1405.9 'verify_ref(new-master)': - $RUN verify-ref refs/heads/new-master +ok 14 - set core.splitIndex config variable to true -ok 9 - verify_ref(new-master) +expecting success of 1700.15 'set core.splitIndex config variable to false': + git config core.splitIndex false && + git update-index --force-remove three && + git ls-files --stage >ls-files.actual && + cat >ls-files.expect <<-EOF && + 100644 $EMPTY_BLOB 0 one + 100644 $EMPTY_BLOB 0 two + EOF + test_cmp ls-files.expect ls-files.actual && + test-tool dump-split-index .git/index | sed "/^own/d" >actual && + cat >expect <<-EOF && + not a split index + EOF + test_cmp expect actual -expecting success of 1405.10 'for_each_reflog()': - $RUN for-each-reflog | sort -k2 | cut -d" " -f 2- >actual && - cat >expected <<-\EOF && - HEAD 0x1 - refs/heads/master 0x0 - refs/heads/new-master 0x0 +ok 15 - set core.splitIndex config variable to false + +expecting success of 1700.16 'set core.splitIndex config variable back to true': + git config core.splitIndex true && + create_non_racy_file three && + git update-index --add three && + BASE=$(test-tool dump-split-index .git/index | grep "^base") && + test-tool dump-split-index .git/index | sed "/^own/d" >actual && + cat >expect <<-EOF && + $BASE + replacements: + deletions: EOF - test_cmp expected actual + test_cmp expect actual && + create_non_racy_file four && + git update-index --add four && + test-tool dump-split-index .git/index | sed "/^own/d" >actual && + cat >expect <<-EOF && + $BASE + 100644 $EMPTY_BLOB 0 four + replacements: + deletions: + EOF + test_cmp expect actual -ok 10 - for_each_reflog() +ok 16 - set core.splitIndex config variable back to true -expecting success of 1405.11 'for_each_reflog_ent()': - $RUN for-each-reflog-ent HEAD >actual && - head -n1 actual | grep one && - tail -n2 actual | head -n1 | grep recreate-master +expecting success of 1700.17 'check behavior with splitIndex.maxPercentChange unset': + git config --unset splitIndex.maxPercentChange && + create_non_racy_file five && + git update-index --add five && + BASE=$(test-tool dump-split-index .git/index | grep "^base") && + test-tool dump-split-index .git/index | sed "/^own/d" >actual && + cat >expect <<-EOF && + $BASE + replacements: + deletions: + EOF + test_cmp expect actual && + create_non_racy_file six && + git update-index --add six && + test-tool dump-split-index .git/index | sed "/^own/d" >actual && + cat >expect <<-EOF && + $BASE + 100644 $EMPTY_BLOB 0 six + replacements: + deletions: + EOF + test_cmp expect actual -0000000000000000000000000000000000000000 d79ce1670bdcb76e6d1da2ae095e890ccb326ae9 C O Mitter 1112911993 -700 commit (initial): one -0000000000000000000000000000000000000000 c90e4dc5e12224a428dedfbd45ba11e5531706a2 C O Mitter 1112912053 -700 commit (initial): recreate-master -ok 11 - for_each_reflog_ent() +ok 17 - check behavior with splitIndex.maxPercentChange unset -expecting success of 1405.12 'for_each_reflog_ent_reverse()': - $RUN for-each-reflog-ent-reverse HEAD >actual && - head -n1 actual | grep recreate-master && - tail -n2 actual | head -n1 | grep one +expecting success of 1700.18 'check splitIndex.maxPercentChange set to 0': + git config splitIndex.maxPercentChange 0 && + create_non_racy_file seven && + git update-index --add seven && + BASE=$(test-tool dump-split-index .git/index | grep "^base") && + test-tool dump-split-index .git/index | sed "/^own/d" >actual && + cat >expect <<-EOF && + $BASE + replacements: + deletions: + EOF + test_cmp expect actual && + create_non_racy_file eight && + git update-index --add eight && + BASE=$(test-tool dump-split-index .git/index | grep "^base") && + test-tool dump-split-index .git/index | sed "/^own/d" >actual && + cat >expect <<-EOF && + $BASE + replacements: + deletions: + EOF + test_cmp expect actual -0000000000000000000000000000000000000000 c90e4dc5e12224a428dedfbd45ba11e5531706a2 C O Mitter 1112912053 -700 commit (initial): recreate-master -0000000000000000000000000000000000000000 d79ce1670bdcb76e6d1da2ae095e890ccb326ae9 C O Mitter 1112911993 -700 commit (initial): one -ok 12 - for_each_reflog_ent_reverse() +ok 18 - check splitIndex.maxPercentChange set to 0 -expecting success of 1405.13 'reflog_exists(HEAD)': - $RUN reflog-exists HEAD +expecting success of 1700.19 'shared index files expire after 2 weeks by default': + create_non_racy_file ten && + git update-index --add ten && + test $(ls .git/sharedindex.* | wc -l) -gt 2 && + just_under_2_weeks_ago=$((5-14*86400)) && + test-tool chmtime =$just_under_2_weeks_ago .git/sharedindex.* && + create_non_racy_file eleven && + git update-index --add eleven && + test $(ls .git/sharedindex.* | wc -l) -gt 2 && + just_over_2_weeks_ago=$((-1-14*86400)) && + test-tool chmtime =$just_over_2_weeks_ago .git/sharedindex.* && + create_non_racy_file twelve && + git update-index --add twelve && + test $(ls .git/sharedindex.* | wc -l) -le 2 -ok 13 - reflog_exists(HEAD) +ok 19 - shared index files expire after 2 weeks by default -expecting success of 1405.14 'delete_reflog(HEAD)': - $RUN delete-reflog HEAD && - ! test -f .git/logs/HEAD +expecting success of 1700.20 'check splitIndex.sharedIndexExpire set to 16 days': + git config splitIndex.sharedIndexExpire "16.days.ago" && + test-tool chmtime =$just_over_2_weeks_ago .git/sharedindex.* && + create_non_racy_file thirteen && + git update-index --add thirteen && + test $(ls .git/sharedindex.* | wc -l) -gt 2 && + just_over_16_days_ago=$((-1-16*86400)) && + test-tool chmtime =$just_over_16_days_ago .git/sharedindex.* && + create_non_racy_file fourteen && + git update-index --add fourteen && + test $(ls .git/sharedindex.* | wc -l) -le 2 -ok 14 - delete_reflog(HEAD) +ok 20 - check splitIndex.sharedIndexExpire set to 16 days -expecting success of 1405.15 'create-reflog(HEAD)': - $RUN create-reflog HEAD 1 && - test -f .git/logs/HEAD +expecting success of 1700.21 'check splitIndex.sharedIndexExpire set to "never" and "now"': + git config splitIndex.sharedIndexExpire never && + just_10_years_ago=$((-365*10*86400)) && + test-tool chmtime =$just_10_years_ago .git/sharedindex.* && + create_non_racy_file fifteen && + git update-index --add fifteen && + test $(ls .git/sharedindex.* | wc -l) -gt 2 && + git config splitIndex.sharedIndexExpire now && + just_1_second_ago=-1 && + test-tool chmtime =$just_1_second_ago .git/sharedindex.* && + create_non_racy_file sixteen && + git update-index --add sixteen && + test $(ls .git/sharedindex.* | wc -l) -le 2 -ok 15 - create-reflog(HEAD) +ok 21 - check splitIndex.sharedIndexExpire set to "never" and "now" -expecting success of 1405.16 'delete_ref(refs/heads/foo)': - git checkout -b foo && - FOO_SHA1=`git rev-parse foo` && - git checkout --detach && - test_commit bar-commit && - git checkout -b bar && - BAR_SHA1=`git rev-parse bar` && - $RUN update-ref updating refs/heads/foo $BAR_SHA1 $FOO_SHA1 0 && - echo $BAR_SHA1 >expected && - git rev-parse refs/heads/foo >actual && +expecting success of 1700.22 'same mode for index & split index': + git init same-mode && + ( + cd same-mode && + test_commit A && + test_modebits .git/index >index_mode && + test_must_fail git config core.sharedRepository && + git -c core.splitIndex=true status && + shared=$(ls .git/sharedindex.*) && + case "$shared" in + *" "*) + # we have more than one??? + false ;; + *) + test_modebits "$shared" >split_index_mode && + test_cmp index_mode split_index_mode ;; + esac + ) + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1700-split-index/same-mode/.git/ +[master (root-commit) 0ddfaf1] A + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 A.t +On branch master +Untracked files: + (use "git add ..." to include in what will be committed) + index_mode + +nothing added to commit but untracked files present (use "git add" to track) +ok 22 - same mode for index & split index + +expecting success of 1700.23 'split index respects core.sharedrepository 0666': + # Remove existing shared index files + git config core.splitIndex false && + git update-index --force-remove one && + rm -f .git/sharedindex.* && + # Create one new shared index file + git config core.sharedrepository "$mode" && + git config core.splitIndex true && + create_non_racy_file one && + git update-index --add one && + echo "$modebits" >expect && + test_modebits .git/index >actual && + test_cmp expect actual && + shared=$(ls .git/sharedindex.*) && + case "$shared" in + *" "*) + # we have more than one??? + false ;; + *) + test_modebits "$shared" >actual && + test_cmp expect actual ;; + esac + +ok 23 - split index respects core.sharedrepository 0666 + +expecting success of 1700.24 'split index respects core.sharedrepository 0642': + # Remove existing shared index files + git config core.splitIndex false && + git update-index --force-remove one && + rm -f .git/sharedindex.* && + # Create one new shared index file + git config core.sharedrepository "$mode" && + git config core.splitIndex true && + create_non_racy_file one && + git update-index --add one && + echo "$modebits" >expect && + test_modebits .git/index >actual && + test_cmp expect actual && + shared=$(ls .git/sharedindex.*) && + case "$shared" in + *" "*) + # we have more than one??? + false ;; + *) + test_modebits "$shared" >actual && + test_cmp expect actual ;; + esac + +ok 24 - split index respects core.sharedrepository 0642 + +checking prerequisite: SANITY + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SANITY" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-SANITY" && + mkdir SANETESTD.1 SANETESTD.2 && + + chmod +w SANETESTD.1 SANETESTD.2 && + >SANETESTD.1/x 2>SANETESTD.2/x && + chmod -w SANETESTD.1 && + chmod -r SANETESTD.1/x && + chmod -rx SANETESTD.2 || + BUG "cannot prepare SANETESTD" + + ! test -r SANETESTD.1/x && + ! rm SANETESTD.1/x && ! test -f SANETESTD.2/x + status=$? + + chmod +rwx SANETESTD.1 SANETESTD.2 && + rm -rf SANETESTD.1 SANETESTD.2 || + BUG "cannot clean SANETESTD" + return $status + +) +rm: cannot remove 'SANETESTD.1/x': Permission denied +prerequisite SANITY ok +expecting success of 1700.25 'graceful handling when splitting index is not allowed': + test_create_repo ro && + ( + cd ro && + test_commit initial && + git update-index --split-index && + test -f .git/sharedindex.* + ) && + cp ro/.git/index new-index && + test_when_finished "chmod u+w ro/.git" && + chmod u-w ro/.git && + GIT_INDEX_FILE="$(pwd)/new-index" git -C ro update-index --split-index && + chmod u+w ro/.git && + rm ro/.git/sharedindex.* && + GIT_INDEX_FILE=new-index git ls-files >actual && + echo initial.t >expected && test_cmp expected actual -Switched to a new branch 'foo' -HEAD is now at c90e4dc recreate-master -[detached HEAD 1e995a9] bar-commit +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1700-split-index/ro/.git/ +[master (root-commit) 24b24cf] initial Author: A U Thor 1 file changed, 1 insertion(+) - create mode 100644 bar-commit.t -Switched to a new branch 'bar' -ok 16 - delete_ref(refs/heads/foo) + create mode 100644 initial.t +ok 25 - graceful handling when splitting index is not allowed -expecting success of 1405.17 'delete_ref(refs/heads/foo)': - SHA1=`git rev-parse foo` && - git checkout --detach && - $RUN delete-ref msg refs/heads/foo $SHA1 0 && - test_must_fail git rev-parse refs/heads/foo -- +expecting success of 1700.26 'writing split index with null sha1 does not write cache tree': + git config core.splitIndex true && + git config splitIndex.maxPercentChange 0 && + git commit -m "commit" && + { + git ls-tree HEAD && + printf "160000 commit $ZERO_OID\\tbroken\\n" + } >broken-tree && + echo "add broken entry" >msg && -HEAD is now at 1e995a9 bar-commit -fatal: bad revision 'refs/heads/foo' -ok 17 - delete_ref(refs/heads/foo) + tree=$(git mktree cache-tree.out && + test_line_count = 0 cache-tree.out -# passed all 17 test(s) -1..17 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1404-update-ref-errors.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1404-update-ref-errors/.git/ -expecting success of 1404.1 'setup': +[master (root-commit) 57c62fa] commit + Author: A U Thor + 15 files changed, 0 insertions(+), 0 deletions(-) + create mode 100644 eight + create mode 100644 eleven + create mode 100644 fifteen + create mode 100644 five + create mode 100644 four + create mode 100644 fourteen + create mode 100644 one + create mode 100644 seven + create mode 100644 six + create mode 100644 sixteen + create mode 100644 ten + create mode 100644 thirteen + create mode 100644 three + create mode 100644 twelve + create mode 100644 two +error: invalid object 160000 0000000000000000000000000000000000000000 for 'broken' +warning: cache entry has null sha1: broken +HEAD is now at 57cc685 add broken entry +error: invalid object 160000 0000000000000000000000000000000000000000 for 'broken' +ok 26 - writing split index with null sha1 does not write cache tree - git commit --allow-empty -m Initial && - C=$(git rev-parse HEAD) && - git commit --allow-empty -m Second && - D=$(git rev-parse HEAD) && - git commit --allow-empty -m Third && - E=$(git rev-parse HEAD) +expecting success of 1700.27 'do not refresh null base index': + test_create_repo merge && + ( + cd merge && + test_commit initial && + git checkout -b side-branch && + test_commit extra && + git checkout master && + git update-index --split-index && + test_commit more && + # must not write a new shareindex, or we wont catch the problem + git -c splitIndex.maxPercentChange=100 merge --no-edit side-branch 2>err && + # i.e. do not expect warnings like + # could not freshen shared index .../shareindex.00000... + test_must_be_empty err + ) -[master (root-commit) d31adcd] Initial +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1700-split-index/merge/.git/ +[master (root-commit) 5e30013] initial Author: A U Thor -[master e6940ad] Second + 1 file changed, 1 insertion(+) + create mode 100644 initial.t +Switched to a new branch 'side-branch' +[side-branch 678a87c] extra Author: A U Thor -[master c2327cb] Third + 1 file changed, 1 insertion(+) + create mode 100644 extra.t +Switched to branch 'master' +[master 34c8267] more Author: A U Thor -ok 1 - setup + 1 file changed, 1 insertion(+) + create mode 100644 more.t +Merging: +34c8267 more +virtual side-branch +found 1 common ancestor: +5e30013 initial +Merge made by the 'recursive' strategy. + extra.t | 1 + + 1 file changed, 1 insertion(+) + create mode 100644 extra.t +ok 27 - do not refresh null base index -expecting success of 1404.2 'existing loose ref is a simple prefix of new': +# passed all 27 test(s) +1..27 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t2000-conflict-when-checking-files-out.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2000-conflict-when-checking-files-out/.git/ +expecting success of 2000.1 'git update-index --add various paths.': git update-index --add path0 path1/file1 +ok 1 - git update-index --add various paths. - prefix=refs/1l && - test_update_rejected "a c e" false "b c/x d" \ - "$SQ$prefix/c$SQ exists; cannot create $SQ$prefix/c/x$SQ" +expecting success of 2000.2 'git checkout-index without -f should fail on conflicting work tree.': test_must_fail git checkout-index -a +path0 already exists, no checkout +fatal: cannot create directory at 'path1': File exists +ok 2 - git checkout-index without -f should fail on conflicting work tree. +expecting success of 2000.3 'git checkout-index with -f should succeed.': git checkout-index -f -a +ok 3 - git checkout-index with -f should succeed. -checking prerequisite: C_LOCALE_OUTPUT +expecting success of 2000.4 'git checkout-index conflicting paths.': test -f path0 && test -d path1 && test -f path1/file1 +ok 4 - git checkout-index conflicting paths. -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +checking prerequisite: SYMLINKS + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && ( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false + cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && + # test whether the filesystem supports symbolic links + ln -s x y && test -h y ) -prerequisite C_LOCALE_OUTPUT ok -fatal: cannot lock ref 'refs/1l/c/x': 'refs/1l/c' exists; cannot create 'refs/1l/c/x' -ok 2 - existing loose ref is a simple prefix of new - -expecting success of 1404.3 'existing packed ref is a simple prefix of new': +prerequisite SYMLINKS ok +expecting success of 2000.5 'checkout-index -f twice with --prefix': + mkdir -p tar/get && + ln -s tar/get there && + echo first && + git checkout-index -a -f --prefix=there/ && + echo second && + git checkout-index -a -f --prefix=there/ - prefix=refs/1p && - test_update_rejected "a c e" true "b c/x d" \ - "$SQ$prefix/c$SQ exists; cannot create $SQ$prefix/c/x$SQ" +first +second +ok 5 - checkout-index -f twice with --prefix +expecting success of 2000.6 'git update-index --add path2/file0': git update-index --add path2/file0 +ok 6 - git update-index --add path2/file0 -fatal: cannot lock ref 'refs/1p/c/x': 'refs/1p/c' exists; cannot create 'refs/1p/c/x' -ok 3 - existing packed ref is a simple prefix of new +expecting success of 2000.7 'writing tree out with git write-tree': tree1=$(git write-tree) +ok 7 - writing tree out with git write-tree -expecting success of 1404.4 'existing loose ref is a deeper prefix of new': +expecting success of 2000.8 'git update-index --add path3/file1': git update-index --add path3/file1 +ok 8 - git update-index --add path3/file1 - prefix=refs/2l && - test_update_rejected "a c e" false "b c/x/y d" \ - "$SQ$prefix/c$SQ exists; cannot create $SQ$prefix/c/x/y$SQ" +expecting success of 2000.9 'writing tree out with git write-tree': tree2=$(git write-tree) +ok 9 - writing tree out with git write-tree +expecting success of 2000.10 'read previously written tree and checkout.': git read-tree -m $tree1 && git checkout-index -f -a +ok 10 - read previously written tree and checkout. -fatal: cannot lock ref 'refs/2l/c/x/y': 'refs/2l/c' exists; cannot create 'refs/2l/c/x/y' -ok 4 - existing loose ref is a deeper prefix of new +expecting success of 2000.11 'add a symlink': test_ln_s_add path2 path3 +ok 11 - add a symlink -expecting success of 1404.5 'existing packed ref is a deeper prefix of new': +expecting success of 2000.12 'writing tree out with git write-tree': tree3=$(git write-tree) +ok 12 - writing tree out with git write-tree - prefix=refs/2p && - test_update_rejected "a c e" true "b c/x/y d" \ - "$SQ$prefix/c$SQ exists; cannot create $SQ$prefix/c/x/y$SQ" +expecting success of 2000.13 'read previously written tree and checkout.': git read-tree $tree2 && git checkout-index -f -a +ok 13 - read previously written tree and checkout. +expecting success of 2000.14 'checking out conflicting path with -f': test ! -h path2 && test -d path2 && + test ! -h path3 && test -d path3 && + test ! -h path2/file0 && test -f path2/file0 && + test ! -h path3/file1 && test -f path3/file1 +ok 14 - checking out conflicting path with -f -fatal: cannot lock ref 'refs/2p/c/x/y': 'refs/2p/c' exists; cannot create 'refs/2p/c/x/y' -ok 5 - existing packed ref is a deeper prefix of new +# passed all 14 test(s) +1..14 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t2002-checkout-cache-u.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2002-checkout-cache-u/.git/ +expecting success of 2002.1 'preparation': +echo frotz >path0 && +git update-index --add path0 && +t=$(git write-tree) +ok 1 - preparation -expecting success of 1404.6 'new ref is a simple prefix of existing loose': +expecting success of 2002.2 'without -u, git checkout-index smudges stat information.': +rm -f path0 && +git read-tree $t && +git checkout-index -f -a && +test_must_fail git diff-files --exit-code +:100644 100644 8e4020bb5a8d8c873b25de15933e75cc0fc275df 0000000000000000000000000000000000000000 M path0 +ok 2 - without -u, git checkout-index smudges stat information. - prefix=refs/3l && - test_update_rejected "a c/x e" false "b c d" \ - "$SQ$prefix/c/x$SQ exists; cannot create $SQ$prefix/c$SQ" +expecting success of 2002.3 'with -u, git checkout-index picks up stat information from new files.': +rm -f path0 && +git read-tree $t && +git checkout-index -u -f -a && +git diff-files --exit-code +ok 3 - with -u, git checkout-index picks up stat information from new files. +# passed all 3 test(s) +1..3 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t2003-checkout-cache-mkdir.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2003-checkout-cache-mkdir/.git/ +expecting success of 2003.1 'setup': + mkdir path1 && + echo frotz >path0 && + echo rezrov >path1/file1 && + git update-index --add path0 path1/file1 -fatal: cannot lock ref 'refs/3l/c': 'refs/3l/c/x' exists; cannot create 'refs/3l/c' -ok 6 - new ref is a simple prefix of existing loose +ok 1 - setup -expecting success of 1404.7 'new ref is a simple prefix of existing packed': +checking prerequisite: SYMLINKS - prefix=refs/3p && - test_update_rejected "a c/x e" true "b c d" \ - "$SQ$prefix/c/x$SQ exists; cannot create $SQ$prefix/c$SQ" +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && + # test whether the filesystem supports symbolic links + ln -s x y && test -h y +) +prerequisite SYMLINKS ok +expecting success of 2003.2 'have symlink in place where dir is expected.': + rm -fr path0 path1 && + mkdir path2 && + ln -s path2 path1 && + git checkout-index -f -a && + test ! -h path1 && test -d path1 && + test -f path1/file1 && test ! -f path2/file1 -fatal: cannot lock ref 'refs/3p/c': 'refs/3p/c/x' exists; cannot create 'refs/3p/c' -ok 7 - new ref is a simple prefix of existing packed +ok 2 - have symlink in place where dir is expected. -expecting success of 1404.8 'new ref is a deeper prefix of existing loose': +expecting success of 2003.3 'use --prefix=path2/': + rm -fr path0 path1 path2 && + mkdir path2 && + git checkout-index --prefix=path2/ -f -a && + test -f path2/path0 && + test -f path2/path1/file1 && + test ! -f path0 && + test ! -f path1/file1 - prefix=refs/4l && - test_update_rejected "a c/x/y e" false "b c d" \ - "$SQ$prefix/c/x/y$SQ exists; cannot create $SQ$prefix/c$SQ" +ok 3 - use --prefix=path2/ +expecting success of 2003.4 'use --prefix=tmp-': + rm -fr path0 path1 path2 tmp* && + git checkout-index --prefix=tmp- -f -a && + test -f tmp-path0 && + test -f tmp-path1/file1 && + test ! -f path0 && + test ! -f path1/file1 -fatal: cannot lock ref 'refs/4l/c': 'refs/4l/c/x/y' exists; cannot create 'refs/4l/c' -ok 8 - new ref is a deeper prefix of existing loose +ok 4 - use --prefix=tmp- -expecting success of 1404.9 'new ref is a deeper prefix of existing packed': +expecting success of 2003.5 'use --prefix=tmp- but with a conflicting file and dir': + rm -fr path0 path1 path2 tmp* && + echo nitfol >tmp-path1 && + mkdir tmp-path0 && + git checkout-index --prefix=tmp- -f -a && + test -f tmp-path0 && + test -f tmp-path1/file1 && + test ! -f path0 && + test ! -f path1/file1 - prefix=refs/4p && - test_update_rejected "a c/x/y e" true "b c d" \ - "$SQ$prefix/c/x/y$SQ exists; cannot create $SQ$prefix/c$SQ" +ok 5 - use --prefix=tmp- but with a conflicting file and dir +expecting success of 2003.6 'use --prefix=tmp/orary/ where tmp is a symlink': + rm -fr path0 path1 path2 tmp* && + mkdir tmp1 tmp1/orary && + ln -s tmp1 tmp && + git checkout-index --prefix=tmp/orary/ -f -a && + test -d tmp1/orary && + test -f tmp1/orary/path0 && + test -f tmp1/orary/path1/file1 && + test -h tmp -fatal: cannot lock ref 'refs/4p/c': 'refs/4p/c/x/y' exists; cannot create 'refs/4p/c' -ok 9 - new ref is a deeper prefix of existing packed +ok 6 - use --prefix=tmp/orary/ where tmp is a symlink -expecting success of 1404.10 'one new ref is a simple prefix of another': +expecting success of 2003.7 'use --prefix=tmp/orary- where tmp is a symlink': + rm -fr path0 path1 path2 tmp* && + mkdir tmp1 && + ln -s tmp1 tmp && + git checkout-index --prefix=tmp/orary- -f -a && + test -f tmp1/orary-path0 && + test -f tmp1/orary-path1/file1 && + test -h tmp - prefix=refs/5 && - test_update_rejected "a e" false "b c c/x d" \ - "cannot process $SQ$prefix/c$SQ and $SQ$prefix/c/x$SQ at the same time" +ok 7 - use --prefix=tmp/orary- where tmp is a symlink +expecting success of 2003.8 'use --prefix=tmp- where tmp-path1 is a symlink': + rm -fr path0 path1 path2 tmp* && + mkdir tmp1 && + ln -s tmp1 tmp-path1 && + git checkout-index --prefix=tmp- -f -a && + test -f tmp-path0 && + test ! -h tmp-path1 && + test -d tmp-path1 && + test -f tmp-path1/file1 -fatal: cannot lock ref 'refs/5/c': cannot process 'refs/5/c' and 'refs/5/c/x' at the same time -ok 10 - one new ref is a simple prefix of another +ok 8 - use --prefix=tmp- where tmp-path1 is a symlink -expecting success of 1404.11 'empty directory should not fool rev-parse': - prefix=refs/e-rev-parse && - git update-ref $prefix/foo $C && - git pack-refs --all && - mkdir -p .git/$prefix/foo/bar/baz && - echo "$C" >expected && - git rev-parse $prefix/foo >actual && - test_cmp expected actual +expecting success of 2003.9 'apply filter from working tree .gitattributes with --prefix': + rm -fr path0 path1 path2 tmp* && + mkdir path1 && + mkdir tmp && + git config filter.replace-all.smudge "sed -e s/./,/g" && + git config filter.replace-all.clean cat && + git config filter.replace-all.required true && + echo "file1 filter=replace-all" >path1/.gitattributes && + git checkout-index --prefix=tmp/ -f -a && + echo frotz >expected && + test_cmp expected tmp/path0 && + echo ,,,,,, >expected && + test_cmp expected tmp/path1/file1 -ok 11 - empty directory should not fool rev-parse +ok 9 - apply filter from working tree .gitattributes with --prefix -expecting success of 1404.12 'empty directory should not fool for-each-ref': - prefix=refs/e-for-each-ref && - git update-ref $prefix/foo $C && - git for-each-ref $prefix >expected && - git pack-refs --all && - mkdir -p .git/$prefix/foo/bar/baz && - git for-each-ref $prefix >actual && +expecting success of 2003.10 'apply CRLF filter from working tree .gitattributes with --prefix': + rm -fr path0 path1 path2 tmp* && + mkdir path1 && + mkdir tmp && + echo "file1 eol=crlf" >path1/.gitattributes && + git checkout-index --prefix=tmp/ -f -a && + echo rezrovQ >expected && + tr \\015 Q actual && test_cmp expected actual -ok 12 - empty directory should not fool for-each-ref +ok 10 - apply CRLF filter from working tree .gitattributes with --prefix -expecting success of 1404.13 'empty directory should not fool create': - prefix=refs/e-create && - mkdir -p .git/$prefix/foo/bar/baz && - printf "create %s $C\n" $prefix/foo | - git update-ref --stdin +# passed all 10 test(s) +1..10 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t0027-auto-crlf.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t0027-auto-crlf/.git/ +expecting success of 0027.1 'ls-files --eol -o Text/Binary': + test_when_finished "rm expect actual TeBi_*" && + STRT=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA && + STR=$STRT$STRT$STRT$STRT && + printf "${STR}BBB\001" >TeBi_127_S && + printf "${STR}BBBB\001">TeBi_128_S && + printf "${STR}BBB\032" >TeBi_127_E && + printf "\032${STR}BBB" >TeBi_E_127 && + printf "${STR}BBBB\000">TeBi_128_N && + printf "${STR}BBB\012">TeBi_128_L && + printf "${STR}BBB\015">TeBi_127_C && + printf "${STR}BB\015\012" >TeBi_126_CL && + printf "${STR}BB\015\012\015" >TeBi_126_CLC && + sort <<-\EOF >expect && + i/ w/-text TeBi_127_S + i/ w/none TeBi_128_S + i/ w/none TeBi_127_E + i/ w/-text TeBi_E_127 + i/ w/-text TeBi_128_N + i/ w/lf TeBi_128_L + i/ w/-text TeBi_127_C + i/ w/crlf TeBi_126_CL + i/ w/-text TeBi_126_CLC + EOF + git ls-files --eol -o | + sed -n -e "/TeBi_/{s!attr/[ ]*!!g + s! ! !g + s! *! !g + p + }" | sort >actual && + test_cmp expect actual -ok 13 - empty directory should not fool create +ok 1 - ls-files --eol -o Text/Binary -expecting success of 1404.14 'empty directory should not fool verify': - prefix=refs/e-verify && - git update-ref $prefix/foo $C && - git pack-refs --all && - mkdir -p .git/$prefix/foo/bar/baz && - printf "verify %s $C\n" $prefix/foo | - git update-ref --stdin +expecting success of 0027.2 'setup master': + echo >.gitattributes && + git checkout -b master && + git add .gitattributes && + git commit -m "add .gitattributes" . && + printf "\$Id: 0000000000000000000000000000000000000000 \$\nLINEONE\nLINETWO\nLINETHREE" >LF && + printf "\$Id: 0000000000000000000000000000000000000000 \$\r\nLINEONE\r\nLINETWO\r\nLINETHREE" >CRLF && + printf "\$Id: 0000000000000000000000000000000000000000 \$\nLINEONE\r\nLINETWO\nLINETHREE" >CRLF_mix_LF && + printf "\$Id: 0000000000000000000000000000000000000000 \$\nLINEONE\nLINETWO\rLINETHREE" >LF_mix_CR && + printf "\$Id: 0000000000000000000000000000000000000000 \$\r\nLINEONE\r\nLINETWO\rLINETHREE" >CRLF_mix_CR && + printf "\$Id: 0000000000000000000000000000000000000000 \$\r\nLINEONEQ\r\nLINETWO\r\nLINETHREE" | q_to_nul >CRLF_nul && + printf "\$Id: 0000000000000000000000000000000000000000 \$\nLINEONEQ\nLINETWO\nLINETHREE" | q_to_nul >LF_nul && + create_NNO_MIX_files && + git -c core.autocrlf=false add NNO_*.txt MIX_*.txt && + git commit -m "mixed line endings" && + test_tick -ok 14 - empty directory should not fool verify +Switched to a new branch 'master' +[master (root-commit) 92d411f] add .gitattributes + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 .gitattributes +[master 28e6523] mixed line endings + Author: A U Thor + 360 files changed, 1260 insertions(+) + create mode 100644 MIX_attr_-text_aeol__false_CRLF.txt + create mode 100644 MIX_attr_-text_aeol__false_CRLF_mix_LF.txt + create mode 100644 MIX_attr_-text_aeol__false_CRLF_nul.txt + create mode 100644 MIX_attr_-text_aeol__false_LF.txt + create mode 100644 MIX_attr_-text_aeol__false_LF_mix_CR.txt + create mode 100644 MIX_attr_-text_aeol__input_CRLF.txt + create mode 100644 MIX_attr_-text_aeol__input_CRLF_mix_LF.txt + create mode 100644 MIX_attr_-text_aeol__input_CRLF_nul.txt + create mode 100644 MIX_attr_-text_aeol__input_LF.txt + create mode 100644 MIX_attr_-text_aeol__input_LF_mix_CR.txt + create mode 100644 MIX_attr_-text_aeol__true_CRLF.txt + create mode 100644 MIX_attr_-text_aeol__true_CRLF_mix_LF.txt + create mode 100644 MIX_attr_-text_aeol__true_CRLF_nul.txt + create mode 100644 MIX_attr_-text_aeol__true_LF.txt + create mode 100644 MIX_attr_-text_aeol__true_LF_mix_CR.txt + create mode 100644 MIX_attr_-text_aeol_crlf_false_CRLF.txt + create mode 100644 MIX_attr_-text_aeol_crlf_false_CRLF_mix_LF.txt + create mode 100644 MIX_attr_-text_aeol_crlf_false_CRLF_nul.txt + create mode 100644 MIX_attr_-text_aeol_crlf_false_LF.txt + create mode 100644 MIX_attr_-text_aeol_crlf_false_LF_mix_CR.txt + create mode 100644 MIX_attr_-text_aeol_crlf_input_CRLF.txt + create mode 100644 MIX_attr_-text_aeol_crlf_input_CRLF_mix_LF.txt + create mode 100644 MIX_attr_-text_aeol_crlf_input_CRLF_nul.txt + create mode 100644 MIX_attr_-text_aeol_crlf_input_LF.txt + create mode 100644 MIX_attr_-text_aeol_crlf_input_LF_mix_CR.txt + create mode 100644 MIX_attr_-text_aeol_crlf_true_CRLF.txt + create mode 100644 MIX_attr_-text_aeol_crlf_true_CRLF_mix_LF.txt + create mode 100644 MIX_attr_-text_aeol_crlf_true_CRLF_nul.txt + create mode 100644 MIX_attr_-text_aeol_crlf_true_LF.txt + create mode 100644 MIX_attr_-text_aeol_crlf_true_LF_mix_CR.txt + create mode 100644 MIX_attr_-text_aeol_lf_false_CRLF.txt + create mode 100644 MIX_attr_-text_aeol_lf_false_CRLF_mix_LF.txt + create mode 100644 MIX_attr_-text_aeol_lf_false_CRLF_nul.txt + create mode 100644 MIX_attr_-text_aeol_lf_false_LF.txt + create mode 100644 MIX_attr_-text_aeol_lf_false_LF_mix_CR.txt + create mode 100644 MIX_attr_-text_aeol_lf_input_CRLF.txt + create mode 100644 MIX_attr_-text_aeol_lf_input_CRLF_mix_LF.txt + create mode 100644 MIX_attr_-text_aeol_lf_input_CRLF_nul.txt + create mode 100644 MIX_attr_-text_aeol_lf_input_LF.txt + create mode 100644 MIX_attr_-text_aeol_lf_input_LF_mix_CR.txt + create mode 100644 MIX_attr_-text_aeol_lf_true_CRLF.txt + create mode 100644 MIX_attr_-text_aeol_lf_true_CRLF_mix_LF.txt + create mode 100644 MIX_attr_-text_aeol_lf_true_CRLF_nul.txt + create mode 100644 MIX_attr_-text_aeol_lf_true_LF.txt + create mode 100644 MIX_attr_-text_aeol_lf_true_LF_mix_CR.txt + create mode 100644 MIX_attr__aeol__false_CRLF.txt + create mode 100644 MIX_attr__aeol__false_CRLF_mix_LF.txt + create mode 100644 MIX_attr__aeol__false_CRLF_nul.txt + create mode 100644 MIX_attr__aeol__false_LF.txt + create mode 100644 MIX_attr__aeol__false_LF_mix_CR.txt + create mode 100644 MIX_attr__aeol__input_CRLF.txt + create mode 100644 MIX_attr__aeol__input_CRLF_mix_LF.txt + create mode 100644 MIX_attr__aeol__input_CRLF_nul.txt + create mode 100644 MIX_attr__aeol__input_LF.txt + create mode 100644 MIX_attr__aeol__input_LF_mix_CR.txt + create mode 100644 MIX_attr__aeol__true_CRLF.txt + create mode 100644 MIX_attr__aeol__true_CRLF_mix_LF.txt + create mode 100644 MIX_attr__aeol__true_CRLF_nul.txt + create mode 100644 MIX_attr__aeol__true_LF.txt + create mode 100644 MIX_attr__aeol__true_LF_mix_CR.txt + create mode 100644 MIX_attr__aeol_crlf_false_CRLF.txt + create mode 100644 MIX_attr__aeol_crlf_false_CRLF_mix_LF.txt + create mode 100644 MIX_attr__aeol_crlf_false_CRLF_nul.txt + create mode 100644 MIX_attr__aeol_crlf_false_LF.txt + create mode 100644 MIX_attr__aeol_crlf_false_LF_mix_CR.txt + create mode 100644 MIX_attr__aeol_crlf_input_CRLF.txt + create mode 100644 MIX_attr__aeol_crlf_input_CRLF_mix_LF.txt + create mode 100644 MIX_attr__aeol_crlf_input_CRLF_nul.txt + create mode 100644 MIX_attr__aeol_crlf_input_LF.txt + create mode 100644 MIX_attr__aeol_crlf_input_LF_mix_CR.txt + create mode 100644 MIX_attr__aeol_crlf_true_CRLF.txt + create mode 100644 MIX_attr__aeol_crlf_true_CRLF_mix_LF.txt + create mode 100644 MIX_attr__aeol_crlf_true_CRLF_nul.txt + create mode 100644 MIX_attr__aeol_crlf_true_LF.txt + create mode 100644 MIX_attr__aeol_crlf_true_LF_mix_CR.txt + create mode 100644 MIX_attr__aeol_lf_false_CRLF.txt + create mode 100644 MIX_attr__aeol_lf_false_CRLF_mix_LF.txt + create mode 100644 MIX_attr__aeol_lf_false_CRLF_nul.txt + create mode 100644 MIX_attr__aeol_lf_false_LF.txt + create mode 100644 MIX_attr__aeol_lf_false_LF_mix_CR.txt + create mode 100644 MIX_attr__aeol_lf_input_CRLF.txt + create mode 100644 MIX_attr__aeol_lf_input_CRLF_mix_LF.txt + create mode 100644 MIX_attr__aeol_lf_input_CRLF_nul.txt + create mode 100644 MIX_attr__aeol_lf_input_LF.txt + create mode 100644 MIX_attr__aeol_lf_input_LF_mix_CR.txt + create mode 100644 MIX_attr__aeol_lf_true_CRLF.txt + create mode 100644 MIX_attr__aeol_lf_true_CRLF_mix_LF.txt + create mode 100644 MIX_attr__aeol_lf_true_CRLF_nul.txt + create mode 100644 MIX_attr__aeol_lf_true_LF.txt + create mode 100644 MIX_attr__aeol_lf_true_LF_mix_CR.txt + create mode 100644 MIX_attr_auto_aeol__false_CRLF.txt + create mode 100644 MIX_attr_auto_aeol__false_CRLF_mix_LF.txt + create mode 100644 MIX_attr_auto_aeol__false_CRLF_nul.txt + create mode 100644 MIX_attr_auto_aeol__false_LF.txt + create mode 100644 MIX_attr_auto_aeol__false_LF_mix_CR.txt + create mode 100644 MIX_attr_auto_aeol__input_CRLF.txt + create mode 100644 MIX_attr_auto_aeol__input_CRLF_mix_LF.txt + create mode 100644 MIX_attr_auto_aeol__input_CRLF_nul.txt + create mode 100644 MIX_attr_auto_aeol__input_LF.txt + create mode 100644 MIX_attr_auto_aeol__input_LF_mix_CR.txt + create mode 100644 MIX_attr_auto_aeol__true_CRLF.txt + create mode 100644 MIX_attr_auto_aeol__true_CRLF_mix_LF.txt + create mode 100644 MIX_attr_auto_aeol__true_CRLF_nul.txt + create mode 100644 MIX_attr_auto_aeol__true_LF.txt + create mode 100644 MIX_attr_auto_aeol__true_LF_mix_CR.txt + create mode 100644 MIX_attr_auto_aeol_crlf_false_CRLF.txt + create mode 100644 MIX_attr_auto_aeol_crlf_false_CRLF_mix_LF.txt + create mode 100644 MIX_attr_auto_aeol_crlf_false_CRLF_nul.txt + create mode 100644 MIX_attr_auto_aeol_crlf_false_LF.txt + create mode 100644 MIX_attr_auto_aeol_crlf_false_LF_mix_CR.txt + create mode 100644 MIX_attr_auto_aeol_crlf_input_CRLF.txt + create mode 100644 MIX_attr_auto_aeol_crlf_input_CRLF_mix_LF.txt + create mode 100644 MIX_attr_auto_aeol_crlf_input_CRLF_nul.txt + create mode 100644 MIX_attr_auto_aeol_crlf_input_LF.txt + create mode 100644 MIX_attr_auto_aeol_crlf_input_LF_mix_CR.txt + create mode 100644 MIX_attr_auto_aeol_crlf_true_CRLF.txt + create mode 100644 MIX_attr_auto_aeol_crlf_true_CRLF_mix_LF.txt + create mode 100644 MIX_attr_auto_aeol_crlf_true_CRLF_nul.txt + create mode 100644 MIX_attr_auto_aeol_crlf_true_LF.txt + create mode 100644 MIX_attr_auto_aeol_crlf_true_LF_mix_CR.txt + create mode 100644 MIX_attr_auto_aeol_lf_false_CRLF.txt + create mode 100644 MIX_attr_auto_aeol_lf_false_CRLF_mix_LF.txt + create mode 100644 MIX_attr_auto_aeol_lf_false_CRLF_nul.txt + create mode 100644 MIX_attr_auto_aeol_lf_false_LF.txt + create mode 100644 MIX_attr_auto_aeol_lf_false_LF_mix_CR.txt + create mode 100644 MIX_attr_auto_aeol_lf_input_CRLF.txt + create mode 100644 MIX_attr_auto_aeol_lf_input_CRLF_mix_LF.txt + create mode 100644 MIX_attr_auto_aeol_lf_input_CRLF_nul.txt + create mode 100644 MIX_attr_auto_aeol_lf_input_LF.txt + create mode 100644 MIX_attr_auto_aeol_lf_input_LF_mix_CR.txt + create mode 100644 MIX_attr_auto_aeol_lf_true_CRLF.txt + create mode 100644 MIX_attr_auto_aeol_lf_true_CRLF_mix_LF.txt + create mode 100644 MIX_attr_auto_aeol_lf_true_CRLF_nul.txt + create mode 100644 MIX_attr_auto_aeol_lf_true_LF.txt + create mode 100644 MIX_attr_auto_aeol_lf_true_LF_mix_CR.txt + create mode 100644 MIX_attr_text_aeol__false_CRLF.txt + create mode 100644 MIX_attr_text_aeol__false_CRLF_mix_LF.txt + create mode 100644 MIX_attr_text_aeol__false_CRLF_nul.txt + create mode 100644 MIX_attr_text_aeol__false_LF.txt + create mode 100644 MIX_attr_text_aeol__false_LF_mix_CR.txt + create mode 100644 MIX_attr_text_aeol__input_CRLF.txt + create mode 100644 MIX_attr_text_aeol__input_CRLF_mix_LF.txt + create mode 100644 MIX_attr_text_aeol__input_CRLF_nul.txt + create mode 100644 MIX_attr_text_aeol__input_LF.txt + create mode 100644 MIX_attr_text_aeol__input_LF_mix_CR.txt + create mode 100644 MIX_attr_text_aeol__true_CRLF.txt + create mode 100644 MIX_attr_text_aeol__true_CRLF_mix_LF.txt + create mode 100644 MIX_attr_text_aeol__true_CRLF_nul.txt + create mode 100644 MIX_attr_text_aeol__true_LF.txt + create mode 100644 MIX_attr_text_aeol__true_LF_mix_CR.txt + create mode 100644 MIX_attr_text_aeol_crlf_false_CRLF.txt + create mode 100644 MIX_attr_text_aeol_crlf_false_CRLF_mix_LF.txt + create mode 100644 MIX_attr_text_aeol_crlf_false_CRLF_nul.txt + create mode 100644 MIX_attr_text_aeol_crlf_false_LF.txt + create mode 100644 MIX_attr_text_aeol_crlf_false_LF_mix_CR.txt + create mode 100644 MIX_attr_text_aeol_crlf_input_CRLF.txt + create mode 100644 MIX_attr_text_aeol_crlf_input_CRLF_mix_LF.txt + create mode 100644 MIX_attr_text_aeol_crlf_input_CRLF_nul.txt + create mode 100644 MIX_attr_text_aeol_crlf_input_LF.txt + create mode 100644 MIX_attr_text_aeol_crlf_input_LF_mix_CR.txt + create mode 100644 MIX_attr_text_aeol_crlf_true_CRLF.txt + create mode 100644 MIX_attr_text_aeol_crlf_true_CRLF_mix_LF.txt + create mode 100644 MIX_attr_text_aeol_crlf_true_CRLF_nul.txt + create mode 100644 MIX_attr_text_aeol_crlf_true_LF.txt + create mode 100644 MIX_attr_text_aeol_crlf_true_LF_mix_CR.txt + create mode 100644 MIX_attr_text_aeol_lf_false_CRLF.txt + create mode 100644 MIX_attr_text_aeol_lf_false_CRLF_mix_LF.txt + create mode 100644 MIX_attr_text_aeol_lf_false_CRLF_nul.txt + create mode 100644 MIX_attr_text_aeol_lf_false_LF.txt + create mode 100644 MIX_attr_text_aeol_lf_false_LF_mix_CR.txt + create mode 100644 MIX_attr_text_aeol_lf_input_CRLF.txt + create mode 100644 MIX_attr_text_aeol_lf_input_CRLF_mix_LF.txt + create mode 100644 MIX_attr_text_aeol_lf_input_CRLF_nul.txt + create mode 100644 MIX_attr_text_aeol_lf_input_LF.txt + create mode 100644 MIX_attr_text_aeol_lf_input_LF_mix_CR.txt + create mode 100644 MIX_attr_text_aeol_lf_true_CRLF.txt + create mode 100644 MIX_attr_text_aeol_lf_true_CRLF_mix_LF.txt + create mode 100644 MIX_attr_text_aeol_lf_true_CRLF_nul.txt + create mode 100644 MIX_attr_text_aeol_lf_true_LF.txt + create mode 100644 MIX_attr_text_aeol_lf_true_LF_mix_CR.txt + create mode 100644 NNO_attr_-text_aeol__false_CRLF.txt + create mode 100644 NNO_attr_-text_aeol__false_CRLF_mix_LF.txt + create mode 100644 NNO_attr_-text_aeol__false_CRLF_nul.txt + create mode 100644 NNO_attr_-text_aeol__false_LF.txt + create mode 100644 NNO_attr_-text_aeol__false_LF_mix_CR.txt + create mode 100644 NNO_attr_-text_aeol__input_CRLF.txt + create mode 100644 NNO_attr_-text_aeol__input_CRLF_mix_LF.txt + create mode 100644 NNO_attr_-text_aeol__input_CRLF_nul.txt + create mode 100644 NNO_attr_-text_aeol__input_LF.txt + create mode 100644 NNO_attr_-text_aeol__input_LF_mix_CR.txt + create mode 100644 NNO_attr_-text_aeol__true_CRLF.txt + create mode 100644 NNO_attr_-text_aeol__true_CRLF_mix_LF.txt + create mode 100644 NNO_attr_-text_aeol__true_CRLF_nul.txt + create mode 100644 NNO_attr_-text_aeol__true_LF.txt + create mode 100644 NNO_attr_-text_aeol__true_LF_mix_CR.txt + create mode 100644 NNO_attr_-text_aeol_crlf_false_CRLF.txt + create mode 100644 NNO_attr_-text_aeol_crlf_false_CRLF_mix_LF.txt + create mode 100644 NNO_attr_-text_aeol_crlf_false_CRLF_nul.txt + create mode 100644 NNO_attr_-text_aeol_crlf_false_LF.txt + create mode 100644 NNO_attr_-text_aeol_crlf_false_LF_mix_CR.txt + create mode 100644 NNO_attr_-text_aeol_crlf_input_CRLF.txt + create mode 100644 NNO_attr_-text_aeol_crlf_input_CRLF_mix_LF.txt + create mode 100644 NNO_attr_-text_aeol_crlf_input_CRLF_nul.txt + create mode 100644 NNO_attr_-text_aeol_crlf_input_LF.txt + create mode 100644 NNO_attr_-text_aeol_crlf_input_LF_mix_CR.txt + create mode 100644 NNO_attr_-text_aeol_crlf_true_CRLF.txt + create mode 100644 NNO_attr_-text_aeol_crlf_true_CRLF_mix_LF.txt + create mode 100644 NNO_attr_-text_aeol_crlf_true_CRLF_nul.txt + create mode 100644 NNO_attr_-text_aeol_crlf_true_LF.txt + create mode 100644 NNO_attr_-text_aeol_crlf_true_LF_mix_CR.txt + create mode 100644 NNO_attr_-text_aeol_lf_false_CRLF.txt + create mode 100644 NNO_attr_-text_aeol_lf_false_CRLF_mix_LF.txt + create mode 100644 NNO_attr_-text_aeol_lf_false_CRLF_nul.txt + create mode 100644 NNO_attr_-text_aeol_lf_false_LF.txt + create mode 100644 NNO_attr_-text_aeol_lf_false_LF_mix_CR.txt + create mode 100644 NNO_attr_-text_aeol_lf_input_CRLF.txt + create mode 100644 NNO_attr_-text_aeol_lf_input_CRLF_mix_LF.txt + create mode 100644 NNO_attr_-text_aeol_lf_input_CRLF_nul.txt + create mode 100644 NNO_attr_-text_aeol_lf_input_LF.txt + create mode 100644 NNO_attr_-text_aeol_lf_input_LF_mix_CR.txt + create mode 100644 NNO_attr_-text_aeol_lf_true_CRLF.txt + create mode 100644 NNO_attr_-text_aeol_lf_true_CRLF_mix_LF.txt + create mode 100644 NNO_attr_-text_aeol_lf_true_CRLF_nul.txt + create mode 100644 NNO_attr_-text_aeol_lf_true_LF.txt + create mode 100644 NNO_attr_-text_aeol_lf_true_LF_mix_CR.txt + create mode 100644 NNO_attr__aeol__false_CRLF.txt + create mode 100644 NNO_attr__aeol__false_CRLF_mix_LF.txt + create mode 100644 NNO_attr__aeol__false_CRLF_nul.txt + create mode 100644 NNO_attr__aeol__false_LF.txt + create mode 100644 NNO_attr__aeol__false_LF_mix_CR.txt + create mode 100644 NNO_attr__aeol__input_CRLF.txt + create mode 100644 NNO_attr__aeol__input_CRLF_mix_LF.txt + create mode 100644 NNO_attr__aeol__input_CRLF_nul.txt + create mode 100644 NNO_attr__aeol__input_LF.txt + create mode 100644 NNO_attr__aeol__input_LF_mix_CR.txt + create mode 100644 NNO_attr__aeol__true_CRLF.txt + create mode 100644 NNO_attr__aeol__true_CRLF_mix_LF.txt + create mode 100644 NNO_attr__aeol__true_CRLF_nul.txt + create mode 100644 NNO_attr__aeol__true_LF.txt + create mode 100644 NNO_attr__aeol__true_LF_mix_CR.txt + create mode 100644 NNO_attr__aeol_crlf_false_CRLF.txt + create mode 100644 NNO_attr__aeol_crlf_false_CRLF_mix_LF.txt + create mode 100644 NNO_attr__aeol_crlf_false_CRLF_nul.txt + create mode 100644 NNO_attr__aeol_crlf_false_LF.txt + create mode 100644 NNO_attr__aeol_crlf_false_LF_mix_CR.txt + create mode 100644 NNO_attr__aeol_crlf_input_CRLF.txt + create mode 100644 NNO_attr__aeol_crlf_input_CRLF_mix_LF.txt + create mode 100644 NNO_attr__aeol_crlf_input_CRLF_nul.txt + create mode 100644 NNO_attr__aeol_crlf_input_LF.txt + create mode 100644 NNO_attr__aeol_crlf_input_LF_mix_CR.txt + create mode 100644 NNO_attr__aeol_crlf_true_CRLF.txt + create mode 100644 NNO_attr__aeol_crlf_true_CRLF_mix_LF.txt + create mode 100644 NNO_attr__aeol_crlf_true_CRLF_nul.txt + create mode 100644 NNO_attr__aeol_crlf_true_LF.txt + create mode 100644 NNO_attr__aeol_crlf_true_LF_mix_CR.txt + create mode 100644 NNO_attr__aeol_lf_false_CRLF.txt + create mode 100644 NNO_attr__aeol_lf_false_CRLF_mix_LF.txt + create mode 100644 NNO_attr__aeol_lf_false_CRLF_nul.txt + create mode 100644 NNO_attr__aeol_lf_false_LF.txt + create mode 100644 NNO_attr__aeol_lf_false_LF_mix_CR.txt + create mode 100644 NNO_attr__aeol_lf_input_CRLF.txt + create mode 100644 NNO_attr__aeol_lf_input_CRLF_mix_LF.txt + create mode 100644 NNO_attr__aeol_lf_input_CRLF_nul.txt + create mode 100644 NNO_attr__aeol_lf_input_LF.txt + create mode 100644 NNO_attr__aeol_lf_input_LF_mix_CR.txt + create mode 100644 NNO_attr__aeol_lf_true_CRLF.txt + create mode 100644 NNO_attr__aeol_lf_true_CRLF_mix_LF.txt + create mode 100644 NNO_attr__aeol_lf_true_CRLF_nul.txt + create mode 100644 NNO_attr__aeol_lf_true_LF.txt + create mode 100644 NNO_attr__aeol_lf_true_LF_mix_CR.txt + create mode 100644 NNO_attr_auto_aeol__false_CRLF.txt + create mode 100644 NNO_attr_auto_aeol__false_CRLF_mix_LF.txt + create mode 100644 NNO_attr_auto_aeol__false_CRLF_nul.txt + create mode 100644 NNO_attr_auto_aeol__false_LF.txt + create mode 100644 NNO_attr_auto_aeol__false_LF_mix_CR.txt + create mode 100644 NNO_attr_auto_aeol__input_CRLF.txt + create mode 100644 NNO_attr_auto_aeol__input_CRLF_mix_LF.txt + create mode 100644 NNO_attr_auto_aeol__input_CRLF_nul.txt + create mode 100644 NNO_attr_auto_aeol__input_LF.txt + create mode 100644 NNO_attr_auto_aeol__input_LF_mix_CR.txt + create mode 100644 NNO_attr_auto_aeol__true_CRLF.txt + create mode 100644 NNO_attr_auto_aeol__true_CRLF_mix_LF.txt + create mode 100644 NNO_attr_auto_aeol__true_CRLF_nul.txt + create mode 100644 NNO_attr_auto_aeol__true_LF.txt + create mode 100644 NNO_attr_auto_aeol__true_LF_mix_CR.txt + create mode 100644 NNO_attr_auto_aeol_crlf_false_CRLF.txt + create mode 100644 NNO_attr_auto_aeol_crlf_false_CRLF_mix_LF.txt + create mode 100644 NNO_attr_auto_aeol_crlf_false_CRLF_nul.txt + create mode 100644 NNO_attr_auto_aeol_crlf_false_LF.txt + create mode 100644 NNO_attr_auto_aeol_crlf_false_LF_mix_CR.txt + create mode 100644 NNO_attr_auto_aeol_crlf_input_CRLF.txt + create mode 100644 NNO_attr_auto_aeol_crlf_input_CRLF_mix_LF.txt + create mode 100644 NNO_attr_auto_aeol_crlf_input_CRLF_nul.txt + create mode 100644 NNO_attr_auto_aeol_crlf_input_LF.txt + create mode 100644 NNO_attr_auto_aeol_crlf_input_LF_mix_CR.txt + create mode 100644 NNO_attr_auto_aeol_crlf_true_CRLF.txt + create mode 100644 NNO_attr_auto_aeol_crlf_true_CRLF_mix_LF.txt + create mode 100644 NNO_attr_auto_aeol_crlf_true_CRLF_nul.txt + create mode 100644 NNO_attr_auto_aeol_crlf_true_LF.txt + create mode 100644 NNO_attr_auto_aeol_crlf_true_LF_mix_CR.txt + create mode 100644 NNO_attr_auto_aeol_lf_false_CRLF.txt + create mode 100644 NNO_attr_auto_aeol_lf_false_CRLF_mix_LF.txt + create mode 100644 NNO_attr_auto_aeol_lf_false_CRLF_nul.txt + create mode 100644 NNO_attr_auto_aeol_lf_false_LF.txt + create mode 100644 NNO_attr_auto_aeol_lf_false_LF_mix_CR.txt + create mode 100644 NNO_attr_auto_aeol_lf_input_CRLF.txt + create mode 100644 NNO_attr_auto_aeol_lf_input_CRLF_mix_LF.txt + create mode 100644 NNO_attr_auto_aeol_lf_input_CRLF_nul.txt + create mode 100644 NNO_attr_auto_aeol_lf_input_LF.txt + create mode 100644 NNO_attr_auto_aeol_lf_input_LF_mix_CR.txt + create mode 100644 NNO_attr_auto_aeol_lf_true_CRLF.txt + create mode 100644 NNO_attr_auto_aeol_lf_true_CRLF_mix_LF.txt + create mode 100644 NNO_attr_auto_aeol_lf_true_CRLF_nul.txt + create mode 100644 NNO_attr_auto_aeol_lf_true_LF.txt + create mode 100644 NNO_attr_auto_aeol_lf_true_LF_mix_CR.txt + create mode 100644 NNO_attr_text_aeol__false_CRLF.txt + create mode 100644 NNO_attr_text_aeol__false_CRLF_mix_LF.txt + create mode 100644 NNO_attr_text_aeol__false_CRLF_nul.txt + create mode 100644 NNO_attr_text_aeol__false_LF.txt + create mode 100644 NNO_attr_text_aeol__false_LF_mix_CR.txt + create mode 100644 NNO_attr_text_aeol__input_CRLF.txt + create mode 100644 NNO_attr_text_aeol__input_CRLF_mix_LF.txt + create mode 100644 NNO_attr_text_aeol__input_CRLF_nul.txt + create mode 100644 NNO_attr_text_aeol__input_LF.txt + create mode 100644 NNO_attr_text_aeol__input_LF_mix_CR.txt + create mode 100644 NNO_attr_text_aeol__true_CRLF.txt + create mode 100644 NNO_attr_text_aeol__true_CRLF_mix_LF.txt + create mode 100644 NNO_attr_text_aeol__true_CRLF_nul.txt + create mode 100644 NNO_attr_text_aeol__true_LF.txt + create mode 100644 NNO_attr_text_aeol__true_LF_mix_CR.txt + create mode 100644 NNO_attr_text_aeol_crlf_false_CRLF.txt + create mode 100644 NNO_attr_text_aeol_crlf_false_CRLF_mix_LF.txt + create mode 100644 NNO_attr_text_aeol_crlf_false_CRLF_nul.txt + create mode 100644 NNO_attr_text_aeol_crlf_false_LF.txt + create mode 100644 NNO_attr_text_aeol_crlf_false_LF_mix_CR.txt + create mode 100644 NNO_attr_text_aeol_crlf_input_CRLF.txt + create mode 100644 NNO_attr_text_aeol_crlf_input_CRLF_mix_LF.txt + create mode 100644 NNO_attr_text_aeol_crlf_input_CRLF_nul.txt + create mode 100644 NNO_attr_text_aeol_crlf_input_LF.txt + create mode 100644 NNO_attr_text_aeol_crlf_input_LF_mix_CR.txt + create mode 100644 NNO_attr_text_aeol_crlf_true_CRLF.txt + create mode 100644 NNO_attr_text_aeol_crlf_true_CRLF_mix_LF.txt + create mode 100644 NNO_attr_text_aeol_crlf_true_CRLF_nul.txt + create mode 100644 NNO_attr_text_aeol_crlf_true_LF.txt + create mode 100644 NNO_attr_text_aeol_crlf_true_LF_mix_CR.txt + create mode 100644 NNO_attr_text_aeol_lf_false_CRLF.txt + create mode 100644 NNO_attr_text_aeol_lf_false_CRLF_mix_LF.txt + create mode 100644 NNO_attr_text_aeol_lf_false_CRLF_nul.txt + create mode 100644 NNO_attr_text_aeol_lf_false_LF.txt + create mode 100644 NNO_attr_text_aeol_lf_false_LF_mix_CR.txt + create mode 100644 NNO_attr_text_aeol_lf_input_CRLF.txt + create mode 100644 NNO_attr_text_aeol_lf_input_CRLF_mix_LF.txt + create mode 100644 NNO_attr_text_aeol_lf_input_CRLF_nul.txt + create mode 100644 NNO_attr_text_aeol_lf_input_LF.txt + create mode 100644 NNO_attr_text_aeol_lf_input_LF_mix_CR.txt + create mode 100644 NNO_attr_text_aeol_lf_true_CRLF.txt + create mode 100644 NNO_attr_text_aeol_lf_true_CRLF_mix_LF.txt + create mode 100644 NNO_attr_text_aeol_lf_true_CRLF_nul.txt + create mode 100644 NNO_attr_text_aeol_lf_true_LF.txt + create mode 100644 NNO_attr_text_aeol_lf_true_LF_mix_CR.txt +ok 2 - setup master -expecting success of 1404.15 'empty directory should not fool 1-arg update': - prefix=refs/e-update-1 && - git update-ref $prefix/foo $C && - git pack-refs --all && - mkdir -p .git/$prefix/foo/bar/baz && - printf "update %s $D\n" $prefix/foo | - git update-ref --stdin +expecting success of 0027.3 'commit files empty attr': + commit_check_warn false "" "" "" "" "" "" && + commit_check_warn true "" "LF_CRLF" "" "LF_CRLF" "" "" && + commit_check_warn input "" "" "CRLF_LF" "CRLF_LF" "" "" -ok 15 - empty directory should not fool 1-arg update +[master c62ad5d] core.autocrlf false + Author: A U Thor + 6 files changed, 15 insertions(+) + create mode 100644 crlf_false_attr__CRLF.txt + create mode 100644 crlf_false_attr__CRLF_mix_LF.txt + create mode 100644 crlf_false_attr__CRLF_nul.txt + create mode 100644 crlf_false_attr__LF.txt + create mode 100644 crlf_false_attr__LF_mix_CR.txt + create mode 100644 crlf_false_attr__LF_nul.txt +checking prerequisite: C_LOCALE_OUTPUT -expecting success of 1404.16 'empty directory should not fool 2-arg update': - prefix=refs/e-update-2 && - git update-ref $prefix/foo $C && - git pack-refs --all && - mkdir -p .git/$prefix/foo/bar/baz && - printf "update %s $D $C\n" $prefix/foo | - git update-ref --stdin +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false -ok 16 - empty directory should not fool 2-arg update +) +prerequisite C_LOCALE_OUTPUT ok +[master d70a676] core.autocrlf true + Author: A U Thor + 6 files changed, 15 insertions(+) + create mode 100644 crlf_true_attr__CRLF.txt + create mode 100644 crlf_true_attr__CRLF_mix_LF.txt + create mode 100644 crlf_true_attr__CRLF_nul.txt + create mode 100644 crlf_true_attr__LF.txt + create mode 100644 crlf_true_attr__LF_mix_CR.txt + create mode 100644 crlf_true_attr__LF_nul.txt +[master a106c40] core.autocrlf input + Author: A U Thor + 6 files changed, 15 insertions(+) + create mode 100644 crlf_input_attr__CRLF.txt + create mode 100644 crlf_input_attr__CRLF_mix_LF.txt + create mode 100644 crlf_input_attr__CRLF_nul.txt + create mode 100644 crlf_input_attr__LF.txt + create mode 100644 crlf_input_attr__LF_mix_CR.txt + create mode 100644 crlf_input_attr__LF_nul.txt +ok 3 - commit files empty attr -expecting success of 1404.17 'empty directory should not fool 0-arg delete': - prefix=refs/e-delete-0 && - git update-ref $prefix/foo $C && - git pack-refs --all && - mkdir -p .git/$prefix/foo/bar/baz && - printf "delete %s\n" $prefix/foo | - git update-ref --stdin +expecting success of 0027.4 'commit files attr=auto': + commit_check_warn false "auto" "$WILC" "$WICL" "$WAMIX" "" "" && + commit_check_warn true "auto" "LF_CRLF" "" "LF_CRLF" "" "" && + commit_check_warn input "auto" "" "CRLF_LF" "CRLF_LF" "" "" -ok 17 - empty directory should not fool 0-arg delete +[master 68bab31] core.autocrlf false + Author: A U Thor + 6 files changed, 15 insertions(+) + create mode 100644 crlf_false_attr_auto_CRLF.txt + create mode 100644 crlf_false_attr_auto_CRLF_mix_LF.txt + create mode 100644 crlf_false_attr_auto_CRLF_nul.txt + create mode 100644 crlf_false_attr_auto_LF.txt + create mode 100644 crlf_false_attr_auto_LF_mix_CR.txt + create mode 100644 crlf_false_attr_auto_LF_nul.txt +[master efc8d5d] core.autocrlf true + Author: A U Thor + 6 files changed, 15 insertions(+) + create mode 100644 crlf_true_attr_auto_CRLF.txt + create mode 100644 crlf_true_attr_auto_CRLF_mix_LF.txt + create mode 100644 crlf_true_attr_auto_CRLF_nul.txt + create mode 100644 crlf_true_attr_auto_LF.txt + create mode 100644 crlf_true_attr_auto_LF_mix_CR.txt + create mode 100644 crlf_true_attr_auto_LF_nul.txt +[master 21fb1d0] core.autocrlf input + Author: A U Thor + 6 files changed, 15 insertions(+) + create mode 100644 crlf_input_attr_auto_CRLF.txt + create mode 100644 crlf_input_attr_auto_CRLF_mix_LF.txt + create mode 100644 crlf_input_attr_auto_CRLF_nul.txt + create mode 100644 crlf_input_attr_auto_LF.txt + create mode 100644 crlf_input_attr_auto_LF_mix_CR.txt + create mode 100644 crlf_input_attr_auto_LF_nul.txt +ok 4 - commit files attr=auto -expecting success of 1404.18 'empty directory should not fool 1-arg delete': - prefix=refs/e-delete-1 && - git update-ref $prefix/foo $C && - git pack-refs --all && - mkdir -p .git/$prefix/foo/bar/baz && - printf "delete %s $C\n" $prefix/foo | - git update-ref --stdin +expecting success of 0027.5 'commit files attr=text': + commit_check_warn false "text" "$WILC" "$WICL" "$WAMIX" "$WILC" "$WICL" && + commit_check_warn true "text" "LF_CRLF" "" "LF_CRLF" "LF_CRLF" "" && + commit_check_warn input "text" "" "CRLF_LF" "CRLF_LF" "" "CRLF_LF" -ok 18 - empty directory should not fool 1-arg delete +[master 16b2963] core.autocrlf false + Author: A U Thor + 6 files changed, 15 insertions(+) + create mode 100644 crlf_false_attr_text_CRLF.txt + create mode 100644 crlf_false_attr_text_CRLF_mix_LF.txt + create mode 100644 crlf_false_attr_text_CRLF_nul.txt + create mode 100644 crlf_false_attr_text_LF.txt + create mode 100644 crlf_false_attr_text_LF_mix_CR.txt + create mode 100644 crlf_false_attr_text_LF_nul.txt +[master 006c230] core.autocrlf true + Author: A U Thor + 6 files changed, 15 insertions(+) + create mode 100644 crlf_true_attr_text_CRLF.txt + create mode 100644 crlf_true_attr_text_CRLF_mix_LF.txt + create mode 100644 crlf_true_attr_text_CRLF_nul.txt + create mode 100644 crlf_true_attr_text_LF.txt + create mode 100644 crlf_true_attr_text_LF_mix_CR.txt + create mode 100644 crlf_true_attr_text_LF_nul.txt +[master 00481a2] core.autocrlf input + Author: A U Thor + 6 files changed, 15 insertions(+) + create mode 100644 crlf_input_attr_text_CRLF.txt + create mode 100644 crlf_input_attr_text_CRLF_mix_LF.txt + create mode 100644 crlf_input_attr_text_CRLF_nul.txt + create mode 100644 crlf_input_attr_text_LF.txt + create mode 100644 crlf_input_attr_text_LF_mix_CR.txt + create mode 100644 crlf_input_attr_text_LF_nul.txt +ok 5 - commit files attr=text -expecting success of 1404.19 'D/F conflict prevents add long + delete short': - df_test refs/df-al-ds --add-del foo/bar foo +expecting success of 0027.6 'commit files attr=-text': + commit_check_warn false "-text" "" "" "" "" "" && + commit_check_warn true "-text" "" "" "" "" "" && + commit_check_warn input "-text" "" "" "" "" "" -ok 19 - D/F conflict prevents add long + delete short +[master 88d9dda] core.autocrlf false + Author: A U Thor + 6 files changed, 15 insertions(+) + create mode 100644 crlf_false_attr_-text_CRLF.txt + create mode 100644 crlf_false_attr_-text_CRLF_mix_LF.txt + create mode 100644 crlf_false_attr_-text_CRLF_nul.txt + create mode 100644 crlf_false_attr_-text_LF.txt + create mode 100644 crlf_false_attr_-text_LF_mix_CR.txt + create mode 100644 crlf_false_attr_-text_LF_nul.txt +[master 1456133] core.autocrlf true + Author: A U Thor + 6 files changed, 15 insertions(+) + create mode 100644 crlf_true_attr_-text_CRLF.txt + create mode 100644 crlf_true_attr_-text_CRLF_mix_LF.txt + create mode 100644 crlf_true_attr_-text_CRLF_nul.txt + create mode 100644 crlf_true_attr_-text_LF.txt + create mode 100644 crlf_true_attr_-text_LF_mix_CR.txt + create mode 100644 crlf_true_attr_-text_LF_nul.txt +[master 08b2ac8] core.autocrlf input + Author: A U Thor + 6 files changed, 15 insertions(+) + create mode 100644 crlf_input_attr_-text_CRLF.txt + create mode 100644 crlf_input_attr_-text_CRLF_mix_LF.txt + create mode 100644 crlf_input_attr_-text_CRLF_nul.txt + create mode 100644 crlf_input_attr_-text_LF.txt + create mode 100644 crlf_input_attr_-text_LF_mix_CR.txt + create mode 100644 crlf_input_attr_-text_LF_nul.txt +ok 6 - commit files attr=-text -expecting success of 1404.20 'D/F conflict prevents add short + delete long': - df_test refs/df-as-dl --add-del foo foo/bar +expecting success of 0027.7 'commit files attr=lf': + commit_check_warn false "lf" "" "CRLF_LF" "CRLF_LF" "" "CRLF_LF" && + commit_check_warn true "lf" "" "CRLF_LF" "CRLF_LF" "" "CRLF_LF" && + commit_check_warn input "lf" "" "CRLF_LF" "CRLF_LF" "" "CRLF_LF" -ok 20 - D/F conflict prevents add short + delete long +[master f130974] core.autocrlf false + Author: A U Thor + 6 files changed, 15 insertions(+) + create mode 100644 crlf_false_attr_lf_CRLF.txt + create mode 100644 crlf_false_attr_lf_CRLF_mix_LF.txt + create mode 100644 crlf_false_attr_lf_CRLF_nul.txt + create mode 100644 crlf_false_attr_lf_LF.txt + create mode 100644 crlf_false_attr_lf_LF_mix_CR.txt + create mode 100644 crlf_false_attr_lf_LF_nul.txt +[master 0b69747] core.autocrlf true + Author: A U Thor + 6 files changed, 15 insertions(+) + create mode 100644 crlf_true_attr_lf_CRLF.txt + create mode 100644 crlf_true_attr_lf_CRLF_mix_LF.txt + create mode 100644 crlf_true_attr_lf_CRLF_nul.txt + create mode 100644 crlf_true_attr_lf_LF.txt + create mode 100644 crlf_true_attr_lf_LF_mix_CR.txt + create mode 100644 crlf_true_attr_lf_LF_nul.txt +[master 7d87167] core.autocrlf input + Author: A U Thor + 6 files changed, 15 insertions(+) + create mode 100644 crlf_input_attr_lf_CRLF.txt + create mode 100644 crlf_input_attr_lf_CRLF_mix_LF.txt + create mode 100644 crlf_input_attr_lf_CRLF_nul.txt + create mode 100644 crlf_input_attr_lf_LF.txt + create mode 100644 crlf_input_attr_lf_LF_mix_CR.txt + create mode 100644 crlf_input_attr_lf_LF_nul.txt +ok 7 - commit files attr=lf -expecting success of 1404.21 'D/F conflict prevents delete long + add short': - df_test refs/df-dl-as --del-add foo/bar foo +expecting success of 0027.8 'commit files attr=crlf': + commit_check_warn false "crlf" "LF_CRLF" "" "LF_CRLF" "LF_CRLF" "" && + commit_check_warn true "crlf" "LF_CRLF" "" "LF_CRLF" "LF_CRLF" "" && + commit_check_warn input "crlf" "LF_CRLF" "" "LF_CRLF" "LF_CRLF" "" -ok 21 - D/F conflict prevents delete long + add short +[master 753280e] core.autocrlf false + Author: A U Thor + 6 files changed, 15 insertions(+) + create mode 100644 crlf_false_attr_crlf_CRLF.txt + create mode 100644 crlf_false_attr_crlf_CRLF_mix_LF.txt + create mode 100644 crlf_false_attr_crlf_CRLF_nul.txt + create mode 100644 crlf_false_attr_crlf_LF.txt + create mode 100644 crlf_false_attr_crlf_LF_mix_CR.txt + create mode 100644 crlf_false_attr_crlf_LF_nul.txt +[master abec00d] core.autocrlf true + Author: A U Thor + 6 files changed, 15 insertions(+) + create mode 100644 crlf_true_attr_crlf_CRLF.txt + create mode 100644 crlf_true_attr_crlf_CRLF_mix_LF.txt + create mode 100644 crlf_true_attr_crlf_CRLF_nul.txt + create mode 100644 crlf_true_attr_crlf_LF.txt + create mode 100644 crlf_true_attr_crlf_LF_mix_CR.txt + create mode 100644 crlf_true_attr_crlf_LF_nul.txt +[master 4e045e6] core.autocrlf input + Author: A U Thor + 6 files changed, 15 insertions(+) + create mode 100644 crlf_input_attr_crlf_CRLF.txt + create mode 100644 crlf_input_attr_crlf_CRLF_mix_LF.txt + create mode 100644 crlf_input_attr_crlf_CRLF_nul.txt + create mode 100644 crlf_input_attr_crlf_LF.txt + create mode 100644 crlf_input_attr_crlf_LF_mix_CR.txt + create mode 100644 crlf_input_attr_crlf_LF_nul.txt +ok 8 - commit files attr=crlf -expecting success of 1404.22 'D/F conflict prevents delete short + add long': - df_test refs/df-ds-al --del-add foo foo/bar +expecting success of 0027.9 'commit file with mixed EOL onto LF crlf=false attr=': + check_warning "$lfwarn" ${pfx}_LF.err + +ok 9 - commit file with mixed EOL onto LF crlf=false attr= -ok 22 - D/F conflict prevents delete short + add long +expecting success of 0027.10 'commit file with mixed EOL onto CLRF attr= aeol= crlf=false': + check_warning "$crlfwarn" ${pfx}_CRLF.err + +ok 10 - commit file with mixed EOL onto CLRF attr= aeol= crlf=false -expecting success of 1404.23 'D/F conflict prevents add long + delete short packed': - df_test refs/df-al-dsp --pack --add-del foo/bar foo +expecting success of 0027.11 'commit file with mixed EOL onto CRLF_mix_LF attr= aeol= crlf=false': + check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err + +ok 11 - commit file with mixed EOL onto CRLF_mix_LF attr= aeol= crlf=false -ok 23 - D/F conflict prevents add long + delete short packed +expecting success of 0027.12 'commit file with mixed EOL onto LF_mix_cr attr= aeol= crlf=false ': + check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err + +ok 12 - commit file with mixed EOL onto LF_mix_cr attr= aeol= crlf=false -expecting success of 1404.24 'D/F conflict prevents add short + delete long packed': - df_test refs/df-as-dlp --pack --add-del foo foo/bar +expecting success of 0027.13 'commit file with mixed EOL onto CRLF_nul attr= aeol= crlf=false': + check_warning "$crlfnul" ${pfx}_CRLF_nul.err + +ok 13 - commit file with mixed EOL onto CRLF_nul attr= aeol= crlf=false -ok 24 - D/F conflict prevents add short + delete long packed +expecting success of 0027.14 'commit file with mixed EOL onto LF crlf=true attr=': + check_warning "$lfwarn" ${pfx}_LF.err + +ok 14 - commit file with mixed EOL onto LF crlf=true attr= -expecting success of 1404.25 'D/F conflict prevents delete long packed + add short': - df_test refs/df-dlp-as --pack --del-add foo/bar foo +expecting success of 0027.15 'commit file with mixed EOL onto CLRF attr= aeol= crlf=true': + check_warning "$crlfwarn" ${pfx}_CRLF.err + +ok 15 - commit file with mixed EOL onto CLRF attr= aeol= crlf=true -ok 25 - D/F conflict prevents delete long packed + add short +expecting success of 0027.16 'commit file with mixed EOL onto CRLF_mix_LF attr= aeol= crlf=true': + check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err + +ok 16 - commit file with mixed EOL onto CRLF_mix_LF attr= aeol= crlf=true -expecting success of 1404.26 'D/F conflict prevents delete short packed + add long': - df_test refs/df-dsp-al --pack --del-add foo foo/bar +expecting success of 0027.17 'commit file with mixed EOL onto LF_mix_cr attr= aeol= crlf=true ': + check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err + +ok 17 - commit file with mixed EOL onto LF_mix_cr attr= aeol= crlf=true -ok 26 - D/F conflict prevents delete short packed + add long +expecting success of 0027.18 'commit file with mixed EOL onto CRLF_nul attr= aeol= crlf=true': + check_warning "$crlfnul" ${pfx}_CRLF_nul.err + +ok 18 - commit file with mixed EOL onto CRLF_nul attr= aeol= crlf=true -expecting success of 1404.27 'D/F conflict prevents indirect add long + delete short': - df_test refs/df-ial-ds --sym-add --add-del foo/bar foo +expecting success of 0027.19 'commit file with mixed EOL onto LF crlf=input attr=': + check_warning "$lfwarn" ${pfx}_LF.err + +ok 19 - commit file with mixed EOL onto LF crlf=input attr= -ok 27 - D/F conflict prevents indirect add long + delete short +expecting success of 0027.20 'commit file with mixed EOL onto CLRF attr= aeol= crlf=input': + check_warning "$crlfwarn" ${pfx}_CRLF.err + +ok 20 - commit file with mixed EOL onto CLRF attr= aeol= crlf=input -expecting success of 1404.28 'D/F conflict prevents indirect add long + indirect delete short': - df_test refs/df-ial-ids --sym-add --sym-del --add-del foo/bar foo +expecting success of 0027.21 'commit file with mixed EOL onto CRLF_mix_LF attr= aeol= crlf=input': + check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err + +ok 21 - commit file with mixed EOL onto CRLF_mix_LF attr= aeol= crlf=input -ok 28 - D/F conflict prevents indirect add long + indirect delete short +expecting success of 0027.22 'commit file with mixed EOL onto LF_mix_cr attr= aeol= crlf=input ': + check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err + +ok 22 - commit file with mixed EOL onto LF_mix_cr attr= aeol= crlf=input -expecting success of 1404.29 'D/F conflict prevents indirect add short + indirect delete long': - df_test refs/df-ias-idl --sym-add --sym-del --add-del foo foo/bar +expecting success of 0027.23 'commit file with mixed EOL onto CRLF_nul attr= aeol= crlf=input': + check_warning "$crlfnul" ${pfx}_CRLF_nul.err + +ok 23 - commit file with mixed EOL onto CRLF_nul attr= aeol= crlf=input -ok 29 - D/F conflict prevents indirect add short + indirect delete long +expecting success of 0027.24 'commit file with mixed EOL onto LF crlf=false attr=auto': + check_warning "$lfwarn" ${pfx}_LF.err + +ok 24 - commit file with mixed EOL onto LF crlf=false attr=auto -expecting success of 1404.30 'D/F conflict prevents indirect delete long + indirect add short': - df_test refs/df-idl-ias --sym-add --sym-del --del-add foo/bar foo +expecting success of 0027.25 'commit file with mixed EOL onto CLRF attr=auto aeol= crlf=false': + check_warning "$crlfwarn" ${pfx}_CRLF.err + +ok 25 - commit file with mixed EOL onto CLRF attr=auto aeol= crlf=false -ok 30 - D/F conflict prevents indirect delete long + indirect add short +expecting success of 0027.26 'commit file with mixed EOL onto CRLF_mix_LF attr=auto aeol= crlf=false': + check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err + +ok 26 - commit file with mixed EOL onto CRLF_mix_LF attr=auto aeol= crlf=false -expecting success of 1404.31 'D/F conflict prevents indirect add long + delete short packed': - df_test refs/df-ial-dsp --sym-add --pack --add-del foo/bar foo +expecting success of 0027.27 'commit file with mixed EOL onto LF_mix_cr attr=auto aeol= crlf=false ': + check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err + +ok 27 - commit file with mixed EOL onto LF_mix_cr attr=auto aeol= crlf=false -ok 31 - D/F conflict prevents indirect add long + delete short packed +expecting success of 0027.28 'commit file with mixed EOL onto CRLF_nul attr=auto aeol= crlf=false': + check_warning "$crlfnul" ${pfx}_CRLF_nul.err + +ok 28 - commit file with mixed EOL onto CRLF_nul attr=auto aeol= crlf=false -expecting success of 1404.32 'D/F conflict prevents indirect add long + indirect delete short packed': - df_test refs/df-ial-idsp --sym-add --sym-del --pack --add-del foo/bar foo +expecting success of 0027.29 'commit file with mixed EOL onto LF crlf=true attr=auto': + check_warning "$lfwarn" ${pfx}_LF.err + +ok 29 - commit file with mixed EOL onto LF crlf=true attr=auto -ok 32 - D/F conflict prevents indirect add long + indirect delete short packed +expecting success of 0027.30 'commit file with mixed EOL onto CLRF attr=auto aeol= crlf=true': + check_warning "$crlfwarn" ${pfx}_CRLF.err + +ok 30 - commit file with mixed EOL onto CLRF attr=auto aeol= crlf=true -expecting success of 1404.33 'D/F conflict prevents add long + indirect delete short packed': - df_test refs/df-al-idsp --sym-del --pack --add-del foo/bar foo +expecting success of 0027.31 'commit file with mixed EOL onto CRLF_mix_LF attr=auto aeol= crlf=true': + check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err + +ok 31 - commit file with mixed EOL onto CRLF_mix_LF attr=auto aeol= crlf=true -ok 33 - D/F conflict prevents add long + indirect delete short packed +expecting success of 0027.32 'commit file with mixed EOL onto LF_mix_cr attr=auto aeol= crlf=true ': + check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err + +ok 32 - commit file with mixed EOL onto LF_mix_cr attr=auto aeol= crlf=true -expecting success of 1404.34 'D/F conflict prevents indirect delete long packed + indirect add short': - df_test refs/df-idlp-ias --sym-add --sym-del --pack --del-add foo/bar foo +expecting success of 0027.33 'commit file with mixed EOL onto CRLF_nul attr=auto aeol= crlf=true': + check_warning "$crlfnul" ${pfx}_CRLF_nul.err + +ok 33 - commit file with mixed EOL onto CRLF_nul attr=auto aeol= crlf=true -ok 34 - D/F conflict prevents indirect delete long packed + indirect add short +expecting success of 0027.34 'commit file with mixed EOL onto LF crlf=input attr=auto': + check_warning "$lfwarn" ${pfx}_LF.err + +ok 34 - commit file with mixed EOL onto LF crlf=input attr=auto -expecting success of 1404.35 'missing old value blocks update': - prefix=refs/missing-update && - cat >expected <<-EOF && - fatal: cannot lock ref $SQ$prefix/foo$SQ: unable to resolve reference $SQ$prefix/foo$SQ - EOF - printf "%s\n" "update $prefix/foo $E $D" | - test_must_fail git update-ref --stdin 2>output.err && - test_cmp expected output.err +expecting success of 0027.35 'commit file with mixed EOL onto CLRF attr=auto aeol= crlf=input': + check_warning "$crlfwarn" ${pfx}_CRLF.err + +ok 35 - commit file with mixed EOL onto CLRF attr=auto aeol= crlf=input -ok 35 - missing old value blocks update +expecting success of 0027.36 'commit file with mixed EOL onto CRLF_mix_LF attr=auto aeol= crlf=input': + check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err + +ok 36 - commit file with mixed EOL onto CRLF_mix_LF attr=auto aeol= crlf=input -expecting success of 1404.36 'incorrect old value blocks update': - prefix=refs/incorrect-update && - git update-ref $prefix/foo $C && - cat >expected <<-EOF && - fatal: cannot lock ref $SQ$prefix/foo$SQ: is at $C but expected $D - EOF - printf "%s\n" "update $prefix/foo $E $D" | - test_must_fail git update-ref --stdin 2>output.err && - test_cmp expected output.err +expecting success of 0027.37 'commit file with mixed EOL onto LF_mix_cr attr=auto aeol= crlf=input ': + check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err + +ok 37 - commit file with mixed EOL onto LF_mix_cr attr=auto aeol= crlf=input -ok 36 - incorrect old value blocks update +expecting success of 0027.38 'commit file with mixed EOL onto CRLF_nul attr=auto aeol= crlf=input': + check_warning "$crlfnul" ${pfx}_CRLF_nul.err + +ok 38 - commit file with mixed EOL onto CRLF_nul attr=auto aeol= crlf=input -expecting success of 1404.37 'existing old value blocks create': - prefix=refs/existing-create && - git update-ref $prefix/foo $C && - cat >expected <<-EOF && - fatal: cannot lock ref $SQ$prefix/foo$SQ: reference already exists - EOF - printf "%s\n" "create $prefix/foo $E" | - test_must_fail git update-ref --stdin 2>output.err && - test_cmp expected output.err +expecting success of 0027.39 'commit NNO files crlf=false attr= LF': + check_warning "$lfwarn" ${pfx}_LF.err + +ok 39 - commit NNO files crlf=false attr= LF -ok 37 - existing old value blocks create +expecting success of 0027.40 'commit NNO files attr= aeol= crlf=false CRLF': + check_warning "$crlfwarn" ${pfx}_CRLF.err + +ok 40 - commit NNO files attr= aeol= crlf=false CRLF -expecting success of 1404.38 'incorrect old value blocks delete': - prefix=refs/incorrect-delete && - git update-ref $prefix/foo $C && - cat >expected <<-EOF && - fatal: cannot lock ref $SQ$prefix/foo$SQ: is at $C but expected $D - EOF - printf "%s\n" "delete $prefix/foo $D" | - test_must_fail git update-ref --stdin 2>output.err && - test_cmp expected output.err +expecting success of 0027.41 'commit NNO files attr= aeol= crlf=false CRLF_mix_LF': + check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err + +ok 41 - commit NNO files attr= aeol= crlf=false CRLF_mix_LF -ok 38 - incorrect old value blocks delete +expecting success of 0027.42 'commit NNO files attr= aeol= crlf=false LF_mix_cr': + check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err + +ok 42 - commit NNO files attr= aeol= crlf=false LF_mix_cr -expecting success of 1404.39 'missing old value blocks indirect update': - prefix=refs/missing-indirect-update && - git symbolic-ref $prefix/symref $prefix/foo && - cat >expected <<-EOF && - fatal: cannot lock ref $SQ$prefix/symref$SQ: unable to resolve reference $SQ$prefix/foo$SQ - EOF - printf "%s\n" "update $prefix/symref $E $D" | - test_must_fail git update-ref --stdin 2>output.err && - test_cmp expected output.err +expecting success of 0027.43 'commit NNO files attr= aeol= crlf=false CRLF_nul': + check_warning "$crlfnul" ${pfx}_CRLF_nul.err + +ok 43 - commit NNO files attr= aeol= crlf=false CRLF_nul -ok 39 - missing old value blocks indirect update +expecting success of 0027.44 'commit NNO files crlf=true attr= LF': + check_warning "$lfwarn" ${pfx}_LF.err + +ok 44 - commit NNO files crlf=true attr= LF -expecting success of 1404.40 'incorrect old value blocks indirect update': - prefix=refs/incorrect-indirect-update && - git symbolic-ref $prefix/symref $prefix/foo && - git update-ref $prefix/foo $C && - cat >expected <<-EOF && - fatal: cannot lock ref $SQ$prefix/symref$SQ: is at $C but expected $D - EOF - printf "%s\n" "update $prefix/symref $E $D" | - test_must_fail git update-ref --stdin 2>output.err && - test_cmp expected output.err +expecting success of 0027.45 'commit NNO files attr= aeol= crlf=true CRLF': + check_warning "$crlfwarn" ${pfx}_CRLF.err + +ok 45 - commit NNO files attr= aeol= crlf=true CRLF -ok 40 - incorrect old value blocks indirect update +expecting success of 0027.46 'commit NNO files attr= aeol= crlf=true CRLF_mix_LF': + check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err + +ok 46 - commit NNO files attr= aeol= crlf=true CRLF_mix_LF -expecting success of 1404.41 'existing old value blocks indirect create': - prefix=refs/existing-indirect-create && - git symbolic-ref $prefix/symref $prefix/foo && - git update-ref $prefix/foo $C && - cat >expected <<-EOF && - fatal: cannot lock ref $SQ$prefix/symref$SQ: reference already exists - EOF - printf "%s\n" "create $prefix/symref $E" | - test_must_fail git update-ref --stdin 2>output.err && - test_cmp expected output.err +expecting success of 0027.47 'commit NNO files attr= aeol= crlf=true LF_mix_cr': + check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err + +ok 47 - commit NNO files attr= aeol= crlf=true LF_mix_cr -ok 41 - existing old value blocks indirect create +expecting success of 0027.48 'commit NNO files attr= aeol= crlf=true CRLF_nul': + check_warning "$crlfnul" ${pfx}_CRLF_nul.err + +ok 48 - commit NNO files attr= aeol= crlf=true CRLF_nul -expecting success of 1404.42 'incorrect old value blocks indirect delete': - prefix=refs/incorrect-indirect-delete && - git symbolic-ref $prefix/symref $prefix/foo && - git update-ref $prefix/foo $C && - cat >expected <<-EOF && - fatal: cannot lock ref $SQ$prefix/symref$SQ: is at $C but expected $D - EOF - printf "%s\n" "delete $prefix/symref $D" | - test_must_fail git update-ref --stdin 2>output.err && - test_cmp expected output.err +expecting success of 0027.49 'commit NNO files crlf=input attr= LF': + check_warning "$lfwarn" ${pfx}_LF.err + +ok 49 - commit NNO files crlf=input attr= LF -ok 42 - incorrect old value blocks indirect delete +expecting success of 0027.50 'commit NNO files attr= aeol= crlf=input CRLF': + check_warning "$crlfwarn" ${pfx}_CRLF.err + +ok 50 - commit NNO files attr= aeol= crlf=input CRLF -expecting success of 1404.43 'missing old value blocks indirect no-deref update': - prefix=refs/missing-noderef-update && - git symbolic-ref $prefix/symref $prefix/foo && - cat >expected <<-EOF && - fatal: cannot lock ref $SQ$prefix/symref$SQ: reference is missing but expected $D - EOF - printf "%s\n" "option no-deref" "update $prefix/symref $E $D" | - test_must_fail git update-ref --stdin 2>output.err && - test_cmp expected output.err +expecting success of 0027.51 'commit NNO files attr= aeol= crlf=input CRLF_mix_LF': + check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err + +ok 51 - commit NNO files attr= aeol= crlf=input CRLF_mix_LF -ok 43 - missing old value blocks indirect no-deref update +expecting success of 0027.52 'commit NNO files attr= aeol= crlf=input LF_mix_cr': + check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err + +ok 52 - commit NNO files attr= aeol= crlf=input LF_mix_cr -expecting success of 1404.44 'incorrect old value blocks indirect no-deref update': - prefix=refs/incorrect-noderef-update && - git symbolic-ref $prefix/symref $prefix/foo && - git update-ref $prefix/foo $C && - cat >expected <<-EOF && - fatal: cannot lock ref $SQ$prefix/symref$SQ: is at $C but expected $D - EOF - printf "%s\n" "option no-deref" "update $prefix/symref $E $D" | - test_must_fail git update-ref --stdin 2>output.err && - test_cmp expected output.err +expecting success of 0027.53 'commit NNO files attr= aeol= crlf=input CRLF_nul': + check_warning "$crlfnul" ${pfx}_CRLF_nul.err + +ok 53 - commit NNO files attr= aeol= crlf=input CRLF_nul -ok 44 - incorrect old value blocks indirect no-deref update +expecting success of 0027.54 'commit NNO files crlf=false attr=auto LF': + check_warning "$lfwarn" ${pfx}_LF.err + +ok 54 - commit NNO files crlf=false attr=auto LF -expecting success of 1404.45 'existing old value blocks indirect no-deref create': - prefix=refs/existing-noderef-create && - git symbolic-ref $prefix/symref $prefix/foo && - git update-ref $prefix/foo $C && - cat >expected <<-EOF && - fatal: cannot lock ref $SQ$prefix/symref$SQ: reference already exists - EOF - printf "%s\n" "option no-deref" "create $prefix/symref $E" | - test_must_fail git update-ref --stdin 2>output.err && - test_cmp expected output.err +expecting success of 0027.55 'commit NNO files attr=auto aeol= crlf=false CRLF': + check_warning "$crlfwarn" ${pfx}_CRLF.err + +ok 55 - commit NNO files attr=auto aeol= crlf=false CRLF -ok 45 - existing old value blocks indirect no-deref create +expecting success of 0027.56 'commit NNO files attr=auto aeol= crlf=false CRLF_mix_LF': + check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err + +ok 56 - commit NNO files attr=auto aeol= crlf=false CRLF_mix_LF -expecting success of 1404.46 'incorrect old value blocks indirect no-deref delete': - prefix=refs/incorrect-noderef-delete && - git symbolic-ref $prefix/symref $prefix/foo && - git update-ref $prefix/foo $C && - cat >expected <<-EOF && - fatal: cannot lock ref $SQ$prefix/symref$SQ: is at $C but expected $D - EOF - printf "%s\n" "option no-deref" "delete $prefix/symref $D" | - test_must_fail git update-ref --stdin 2>output.err && - test_cmp expected output.err +expecting success of 0027.57 'commit NNO files attr=auto aeol= crlf=false LF_mix_cr': + check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err + +ok 57 - commit NNO files attr=auto aeol= crlf=false LF_mix_cr -ok 46 - incorrect old value blocks indirect no-deref delete +expecting success of 0027.58 'commit NNO files attr=auto aeol= crlf=false CRLF_nul': + check_warning "$crlfnul" ${pfx}_CRLF_nul.err + +ok 58 - commit NNO files attr=auto aeol= crlf=false CRLF_nul -expecting success of 1404.47 'non-empty directory blocks create': - prefix=refs/ne-create && - mkdir -p .git/$prefix/foo/bar && - : >.git/$prefix/foo/bar/baz.lock && - test_when_finished "rm -f .git/$prefix/foo/bar/baz.lock" && - cat >expected <<-EOF && - fatal: cannot lock ref $SQ$prefix/foo$SQ: there is a non-empty directory $SQ.git/$prefix/foo$SQ blocking reference $SQ$prefix/foo$SQ - EOF - printf "%s\n" "update $prefix/foo $C" | - test_must_fail git update-ref --stdin 2>output.err && - test_cmp expected output.err && - cat >expected <<-EOF && - fatal: cannot lock ref $SQ$prefix/foo$SQ: unable to resolve reference $SQ$prefix/foo$SQ - EOF - printf "%s\n" "update $prefix/foo $D $C" | - test_must_fail git update-ref --stdin 2>output.err && - test_cmp expected output.err +expecting success of 0027.59 'commit NNO files crlf=true attr=auto LF': + check_warning "$lfwarn" ${pfx}_LF.err + +ok 59 - commit NNO files crlf=true attr=auto LF -ok 47 - non-empty directory blocks create +expecting success of 0027.60 'commit NNO files attr=auto aeol= crlf=true CRLF': + check_warning "$crlfwarn" ${pfx}_CRLF.err + +ok 60 - commit NNO files attr=auto aeol= crlf=true CRLF -expecting success of 1404.48 'broken reference blocks create': - prefix=refs/broken-create && - mkdir -p .git/$prefix && - echo "gobbledigook" >.git/$prefix/foo && - test_when_finished "rm -f .git/$prefix/foo" && - cat >expected <<-EOF && - fatal: cannot lock ref $SQ$prefix/foo$SQ: unable to resolve reference $SQ$prefix/foo$SQ: reference broken - EOF - printf "%s\n" "update $prefix/foo $C" | - test_must_fail git update-ref --stdin 2>output.err && - test_cmp expected output.err && - cat >expected <<-EOF && - fatal: cannot lock ref $SQ$prefix/foo$SQ: unable to resolve reference $SQ$prefix/foo$SQ: reference broken - EOF - printf "%s\n" "update $prefix/foo $D $C" | - test_must_fail git update-ref --stdin 2>output.err && - test_cmp expected output.err +expecting success of 0027.61 'commit NNO files attr=auto aeol= crlf=true CRLF_mix_LF': + check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err + +ok 61 - commit NNO files attr=auto aeol= crlf=true CRLF_mix_LF -ok 48 - broken reference blocks create +expecting success of 0027.62 'commit NNO files attr=auto aeol= crlf=true LF_mix_cr': + check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err + +ok 62 - commit NNO files attr=auto aeol= crlf=true LF_mix_cr -expecting success of 1404.49 'non-empty directory blocks indirect create': - prefix=refs/ne-indirect-create && - git symbolic-ref $prefix/symref $prefix/foo && - mkdir -p .git/$prefix/foo/bar && - : >.git/$prefix/foo/bar/baz.lock && - test_when_finished "rm -f .git/$prefix/foo/bar/baz.lock" && - cat >expected <<-EOF && - fatal: cannot lock ref $SQ$prefix/symref$SQ: there is a non-empty directory $SQ.git/$prefix/foo$SQ blocking reference $SQ$prefix/foo$SQ - EOF - printf "%s\n" "update $prefix/symref $C" | - test_must_fail git update-ref --stdin 2>output.err && - test_cmp expected output.err && - cat >expected <<-EOF && - fatal: cannot lock ref $SQ$prefix/symref$SQ: unable to resolve reference $SQ$prefix/foo$SQ - EOF - printf "%s\n" "update $prefix/symref $D $C" | - test_must_fail git update-ref --stdin 2>output.err && - test_cmp expected output.err +expecting success of 0027.63 'commit NNO files attr=auto aeol= crlf=true CRLF_nul': + check_warning "$crlfnul" ${pfx}_CRLF_nul.err + +ok 63 - commit NNO files attr=auto aeol= crlf=true CRLF_nul -ok 49 - non-empty directory blocks indirect create +expecting success of 0027.64 'commit NNO files crlf=input attr=auto LF': + check_warning "$lfwarn" ${pfx}_LF.err + +ok 64 - commit NNO files crlf=input attr=auto LF -expecting success of 1404.50 'broken reference blocks indirect create': - prefix=refs/broken-indirect-create && - git symbolic-ref $prefix/symref $prefix/foo && - echo "gobbledigook" >.git/$prefix/foo && - test_when_finished "rm -f .git/$prefix/foo" && - cat >expected <<-EOF && - fatal: cannot lock ref $SQ$prefix/symref$SQ: unable to resolve reference $SQ$prefix/foo$SQ: reference broken - EOF - printf "%s\n" "update $prefix/symref $C" | - test_must_fail git update-ref --stdin 2>output.err && - test_cmp expected output.err && - cat >expected <<-EOF && - fatal: cannot lock ref $SQ$prefix/symref$SQ: unable to resolve reference $SQ$prefix/foo$SQ: reference broken - EOF - printf "%s\n" "update $prefix/symref $D $C" | - test_must_fail git update-ref --stdin 2>output.err && - test_cmp expected output.err +expecting success of 0027.65 'commit NNO files attr=auto aeol= crlf=input CRLF': + check_warning "$crlfwarn" ${pfx}_CRLF.err + +ok 65 - commit NNO files attr=auto aeol= crlf=input CRLF -ok 50 - broken reference blocks indirect create +expecting success of 0027.66 'commit NNO files attr=auto aeol= crlf=input CRLF_mix_LF': + check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err + +ok 66 - commit NNO files attr=auto aeol= crlf=input CRLF_mix_LF -expecting success of 1404.51 'no bogus intermediate values during delete': - prefix=refs/slow-transaction && - # Set up a reference with differing loose and packed versions: - git update-ref $prefix/foo $C && - git pack-refs --all && - git update-ref $prefix/foo $D && - git for-each-ref $prefix >unchanged && - # Now try to update the reference, but hold the `packed-refs` lock - # for a while to see what happens while the process is blocked: - : >.git/packed-refs.lock && - test_when_finished "rm -f .git/packed-refs.lock" && - { - # Note: the following command is intentionally run in the - # background. We increase the timeout so that `update-ref` - # attempts to acquire the `packed-refs` lock for much longer - # than it takes for us to do the check then delete it: - git -c core.packedrefstimeout=30000 update-ref -d $prefix/foo & - } && - pid2=$! && - # Give update-ref plenty of time to get to the point where it tries - # to lock packed-refs: - sleep 1 && - # Make sure that update-ref did not complete despite the lock: - kill -0 $pid2 && - # Verify that the reference still has its old value: - sha1=$(git rev-parse --verify --quiet $prefix/foo || echo undefined) && - case "$sha1" in - $D) - # This is what we hope for; it means that nothing - # user-visible has changed yet. - : ;; - undefined) - # This is not correct; it means the deletion has happened - # already even though update-ref should not have been - # able to acquire the lock yet. - echo "$prefix/foo deleted prematurely" && - break - ;; - $C) - # This value should never be seen. Probably the loose - # reference has been deleted but the packed reference - # is still there: - echo "$prefix/foo incorrectly observed to be C" && - break - ;; - *) - # WTF? - echo "unexpected value observed for $prefix/foo: $sha1" && - break - ;; - esac >out && - rm -f .git/packed-refs.lock && - wait $pid2 && - test_must_be_empty out && - test_must_fail git rev-parse --verify --quiet $prefix/foo +expecting success of 0027.67 'commit NNO files attr=auto aeol= crlf=input LF_mix_cr': + check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err + +ok 67 - commit NNO files attr=auto aeol= crlf=input LF_mix_cr -ok 51 - no bogus intermediate values during delete +expecting success of 0027.68 'commit NNO files attr=auto aeol= crlf=input CRLF_nul': + check_warning "$crlfnul" ${pfx}_CRLF_nul.err + +ok 68 - commit NNO files attr=auto aeol= crlf=input CRLF_nul -expecting success of 1404.52 'delete fails cleanly if packed-refs file is locked': - prefix=refs/locked-packed-refs && - # Set up a reference with differing loose and packed versions: - git update-ref $prefix/foo $C && - git pack-refs --all && - git update-ref $prefix/foo $D && - git for-each-ref $prefix >unchanged && - # Now try to delete it while the `packed-refs` lock is held: - : >.git/packed-refs.lock && - test_when_finished "rm -f .git/packed-refs.lock" && - test_must_fail git update-ref -d $prefix/foo >out 2>err && - git for-each-ref $prefix >actual && - test_i18ngrep "Unable to create $SQ.*packed-refs.lock$SQ: " err && - test_cmp unchanged actual +expecting success of 0027.69 'commit NNO files crlf=true attr=-text LF': + check_warning "$lfwarn" ${pfx}_LF.err + +ok 69 - commit NNO files crlf=true attr=-text LF -error: Unable to create '/build/git-2.30.2/t/trash directory.t1404-update-ref-errors/.git/packed-refs.lock': File exists. -ok 52 - delete fails cleanly if packed-refs file is locked +expecting success of 0027.70 'commit NNO files attr=-text aeol= crlf=true CRLF': + check_warning "$crlfwarn" ${pfx}_CRLF.err + +ok 70 - commit NNO files attr=-text aeol= crlf=true CRLF -expecting success of 1404.53 'delete fails cleanly if packed-refs.new write fails': - # Setup and expectations are similar to the test above. - prefix=refs/failed-packed-refs && - git update-ref $prefix/foo $C && - git pack-refs --all && - git update-ref $prefix/foo $D && - git for-each-ref $prefix >unchanged && - # This should not happen in practice, but it is an easy way to get a - # reliable error (we open with create_tempfile(), which uses O_EXCL). - : >.git/packed-refs.new && - test_when_finished "rm -f .git/packed-refs.new" && - test_must_fail git update-ref -d $prefix/foo && - git for-each-ref $prefix >actual && - test_cmp unchanged actual +expecting success of 0027.71 'commit NNO files attr=-text aeol= crlf=true CRLF_mix_LF': + check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err + +ok 71 - commit NNO files attr=-text aeol= crlf=true CRLF_mix_LF -error: unable to create file /build/git-2.30.2/t/trash directory.t1404-update-ref-errors/.git/packed-refs.new: File exists -ok 53 - delete fails cleanly if packed-refs.new write fails +expecting success of 0027.72 'commit NNO files attr=-text aeol= crlf=true LF_mix_cr': + check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err + +ok 72 - commit NNO files attr=-text aeol= crlf=true LF_mix_cr -# passed all 53 test(s) -1..53 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1408-packed-refs.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1408-packed-refs/.git/ -expecting success of 1408.1 'setup': - test_tick && - git commit --allow-empty -m one && - one=$(git rev-parse HEAD) && - git for-each-ref >actual && - echo "$one commit refs/heads/master" >expect && - test_cmp expect actual && +expecting success of 0027.73 'commit NNO files attr=-text aeol= crlf=true CRLF_nul': + check_warning "$crlfnul" ${pfx}_CRLF_nul.err + +ok 73 - commit NNO files attr=-text aeol= crlf=true CRLF_nul - git pack-refs --all && - git for-each-ref >actual && - echo "$one commit refs/heads/master" >expect && - test_cmp expect actual && +expecting success of 0027.74 'commit NNO files crlf=true attr=-text LF': + check_warning "$lfwarn" ${pfx}_LF.err + +ok 74 - commit NNO files crlf=true attr=-text LF - git checkout --orphan another && - test_tick && - git commit --allow-empty -m two && - two=$(git rev-parse HEAD) && - git checkout -B master && - git branch -D another && +expecting success of 0027.75 'commit NNO files attr=-text aeol=lf crlf=true CRLF': + check_warning "$crlfwarn" ${pfx}_CRLF.err + +ok 75 - commit NNO files attr=-text aeol=lf crlf=true CRLF - git for-each-ref >actual && - echo "$two commit refs/heads/master" >expect && - test_cmp expect actual && +expecting success of 0027.76 'commit NNO files attr=-text aeol=lf crlf=true CRLF_mix_LF': + check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err + +ok 76 - commit NNO files attr=-text aeol=lf crlf=true CRLF_mix_LF - git reflog expire --expire=now --all && - git prune && - git tag -m v1.0 v1.0 master +expecting success of 0027.77 'commit NNO files attr=-text aeol=lf crlf=true LF_mix_cr': + check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err + +ok 77 - commit NNO files attr=-text aeol=lf crlf=true LF_mix_cr -[master (root-commit) 76a57ce] one - Author: A U Thor -Switched to a new branch 'another' -[another (root-commit) 169e1dc] two - Author: A U Thor -Switched to and reset branch 'master' -Deleted branch another (was 169e1dc). -ok 1 - setup +expecting success of 0027.78 'commit NNO files attr=-text aeol=lf crlf=true CRLF_nul': + check_warning "$crlfnul" ${pfx}_CRLF_nul.err + +ok 78 - commit NNO files attr=-text aeol=lf crlf=true CRLF_nul -expecting success of 1408.2 'no error from stale entry in packed-refs': - git describe master >actual 2>&1 && - echo "v1.0" >expect && - test_cmp expect actual +expecting success of 0027.79 'commit NNO files crlf=true attr=-text LF': + check_warning "$lfwarn" ${pfx}_LF.err + +ok 79 - commit NNO files crlf=true attr=-text LF -ok 2 - no error from stale entry in packed-refs +expecting success of 0027.80 'commit NNO files attr=-text aeol=crlf crlf=true CRLF': + check_warning "$crlfwarn" ${pfx}_CRLF.err + +ok 80 - commit NNO files attr=-text aeol=crlf crlf=true CRLF -# passed all 2 test(s) -1..2 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1407-worktree-ref-store.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1407-worktree-ref-store/.git/ -expecting success of 1407.1 'setup': - test_commit first && - git worktree add -b wt-master wt && - ( - cd wt && - test_commit second - ) +expecting success of 0027.81 'commit NNO files attr=-text aeol=crlf crlf=true CRLF_mix_LF': + check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err + +ok 81 - commit NNO files attr=-text aeol=crlf crlf=true CRLF_mix_LF -[master (root-commit) 50e526b] first - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 first.t -Preparing worktree (new branch 'wt-master') -HEAD is now at 50e526b first -[wt-master d662100] second - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 second.t -ok 1 - setup +expecting success of 0027.82 'commit NNO files attr=-text aeol=crlf crlf=true LF_mix_cr': + check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err + +ok 82 - commit NNO files attr=-text aeol=crlf crlf=true LF_mix_cr -expecting success of 1407.2 'resolve_ref()': - SHA1=`git rev-parse master` && - echo "$SHA1 refs/heads/master 0x0" >expected && - $RWT resolve-ref refs/heads/master 0 >actual && - test_cmp expected actual && - $RMAIN resolve-ref refs/heads/master 0 >actual && - test_cmp expected actual +expecting success of 0027.83 'commit NNO files attr=-text aeol=crlf crlf=true CRLF_nul': + check_warning "$crlfnul" ${pfx}_CRLF_nul.err + +ok 83 - commit NNO files attr=-text aeol=crlf crlf=true CRLF_nul -ok 2 - resolve_ref() +expecting success of 0027.84 'commit NNO files crlf=true attr= LF': + check_warning "$lfwarn" ${pfx}_LF.err + +ok 84 - commit NNO files crlf=true attr= LF -expecting success of 1407.3 'resolve_ref()': - SHA1=`git -C wt rev-parse HEAD` && - echo "$SHA1 refs/heads/wt-master 0x1" >expected && - $RWT resolve-ref HEAD 0 >actual && - test_cmp expected actual && +expecting success of 0027.85 'commit NNO files attr= aeol=lf crlf=true CRLF': + check_warning "$crlfwarn" ${pfx}_CRLF.err + +ok 85 - commit NNO files attr= aeol=lf crlf=true CRLF - SHA1=`git rev-parse HEAD` && - echo "$SHA1 refs/heads/master 0x1" >expected && - $RMAIN resolve-ref HEAD 0 >actual && - test_cmp expected actual +expecting success of 0027.86 'commit NNO files attr= aeol=lf crlf=true CRLF_mix_LF': + check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err + +ok 86 - commit NNO files attr= aeol=lf crlf=true CRLF_mix_LF -ok 3 - resolve_ref() +expecting success of 0027.87 'commit NNO files attr= aeol=lf crlf=true LF_mix_cr': + check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err + +ok 87 - commit NNO files attr= aeol=lf crlf=true LF_mix_cr -expecting success of 1407.4 'create_symref(FOO, refs/heads/master)': - $RWT create-symref FOO refs/heads/master nothing && - echo refs/heads/master >expected && - git -C wt symbolic-ref FOO >actual && - test_cmp expected actual && +expecting success of 0027.88 'commit NNO files attr= aeol=lf crlf=true CRLF_nul': + check_warning "$crlfnul" ${pfx}_CRLF_nul.err + +ok 88 - commit NNO files attr= aeol=lf crlf=true CRLF_nul - $RMAIN create-symref FOO refs/heads/wt-master nothing && - echo refs/heads/wt-master >expected && - git symbolic-ref FOO >actual && - test_cmp expected actual +expecting success of 0027.89 'commit NNO files crlf=true attr= LF': + check_warning "$lfwarn" ${pfx}_LF.err + +ok 89 - commit NNO files crlf=true attr= LF -ok 4 - create_symref(FOO, refs/heads/master) +expecting success of 0027.90 'commit NNO files attr= aeol=crlf crlf=true CRLF': + check_warning "$crlfwarn" ${pfx}_CRLF.err + +ok 90 - commit NNO files attr= aeol=crlf crlf=true CRLF -expecting success of 1407.5 'for_each_reflog()': - echo $ZERO_OID > .git/logs/PSEUDO-MAIN && - mkdir -p .git/logs/refs/bisect && - echo $ZERO_OID > .git/logs/refs/bisect/random && +expecting success of 0027.91 'commit NNO files attr= aeol=crlf crlf=true CRLF_mix_LF': + check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err + +ok 91 - commit NNO files attr= aeol=crlf crlf=true CRLF_mix_LF - echo $ZERO_OID > .git/worktrees/wt/logs/PSEUDO-WT && - mkdir -p .git/worktrees/wt/logs/refs/bisect && - echo $ZERO_OID > .git/worktrees/wt/logs/refs/bisect/wt-random && +expecting success of 0027.92 'commit NNO files attr= aeol=crlf crlf=true LF_mix_cr': + check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err + +ok 92 - commit NNO files attr= aeol=crlf crlf=true LF_mix_cr - $RWT for-each-reflog | cut -d" " -f 2- | sort >actual && - cat >expected <<-\EOF && - HEAD 0x1 - PSEUDO-WT 0x0 - refs/bisect/wt-random 0x0 - refs/heads/master 0x0 - refs/heads/wt-master 0x0 - EOF - test_cmp expected actual && +expecting success of 0027.93 'commit NNO files attr= aeol=crlf crlf=true CRLF_nul': + check_warning "$crlfnul" ${pfx}_CRLF_nul.err + +ok 93 - commit NNO files attr= aeol=crlf crlf=true CRLF_nul - $RMAIN for-each-reflog | cut -d" " -f 2- | sort >actual && - cat >expected <<-\EOF && - HEAD 0x1 - PSEUDO-MAIN 0x0 - refs/bisect/random 0x0 - refs/heads/master 0x0 - refs/heads/wt-master 0x0 - EOF - test_cmp expected actual +expecting success of 0027.94 'commit NNO files crlf=true attr=auto LF': + check_warning "$lfwarn" ${pfx}_LF.err + +ok 94 - commit NNO files crlf=true attr=auto LF -ok 5 - for_each_reflog() +expecting success of 0027.95 'commit NNO files attr=auto aeol=lf crlf=true CRLF': + check_warning "$crlfwarn" ${pfx}_CRLF.err + +ok 95 - commit NNO files attr=auto aeol=lf crlf=true CRLF -# passed all 5 test(s) -1..5 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1406-submodule-ref-store.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1406-submodule-ref-store/.git/ -expecting success of 1406.1 'setup': - git init sub && - ( - cd sub && - test_commit first && - git checkout -b new-master - ) +expecting success of 0027.96 'commit NNO files attr=auto aeol=lf crlf=true CRLF_mix_LF': + check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err + +ok 96 - commit NNO files attr=auto aeol=lf crlf=true CRLF_mix_LF -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1406-submodule-ref-store/sub/.git/ -[master (root-commit) 50e526b] first - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 first.t -Switched to a new branch 'new-master' -ok 1 - setup +expecting success of 0027.97 'commit NNO files attr=auto aeol=lf crlf=true LF_mix_cr': + check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err + +ok 97 - commit NNO files attr=auto aeol=lf crlf=true LF_mix_cr -expecting success of 1406.2 'pack_refs() not allowed': - test_must_fail $RUN pack-refs 3 +expecting success of 0027.98 'commit NNO files attr=auto aeol=lf crlf=true CRLF_nul': + check_warning "$crlfnul" ${pfx}_CRLF_nul.err + +ok 98 - commit NNO files attr=auto aeol=lf crlf=true CRLF_nul -BUG: refs/files-backend.c:138: operation pack_refs requires abilities 0x6, but only have 0x5 -ok 2 - pack_refs() not allowed +expecting success of 0027.99 'commit NNO files crlf=true attr=auto LF': + check_warning "$lfwarn" ${pfx}_LF.err + +ok 99 - commit NNO files crlf=true attr=auto LF -expecting success of 1406.3 'peel_ref(new-tag)': - git -C sub rev-parse HEAD >expected && - git -C sub tag -a -m new-tag new-tag HEAD && - $RUN peel-ref refs/tags/new-tag >actual && - test_cmp expected actual +expecting success of 0027.100 'commit NNO files attr=auto aeol=crlf crlf=true CRLF': + check_warning "$crlfwarn" ${pfx}_CRLF.err + +ok 100 - commit NNO files attr=auto aeol=crlf crlf=true CRLF -ok 3 - peel_ref(new-tag) +expecting success of 0027.101 'commit NNO files attr=auto aeol=crlf crlf=true CRLF_mix_LF': + check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err + +ok 101 - commit NNO files attr=auto aeol=crlf crlf=true CRLF_mix_LF -expecting success of 1406.4 'create_symref() not allowed': - test_must_fail $RUN create-symref FOO refs/heads/master nothing +expecting success of 0027.102 'commit NNO files attr=auto aeol=crlf crlf=true LF_mix_cr': + check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err + +ok 102 - commit NNO files attr=auto aeol=crlf crlf=true LF_mix_cr -BUG: refs/files-backend.c:138: operation create_symref requires abilities 0x2, but only have 0x5 -ok 4 - create_symref() not allowed +expecting success of 0027.103 'commit NNO files attr=auto aeol=crlf crlf=true CRLF_nul': + check_warning "$crlfnul" ${pfx}_CRLF_nul.err + +ok 103 - commit NNO files attr=auto aeol=crlf crlf=true CRLF_nul -expecting success of 1406.5 'delete_refs() not allowed': - test_must_fail $RUN delete-refs 0 nothing FOO refs/tags/new-tag +expecting success of 0027.104 'commit NNO files crlf=true attr=text LF': + check_warning "$lfwarn" ${pfx}_LF.err + +ok 104 - commit NNO files crlf=true attr=text LF -BUG: refs/files-backend.c:138: operation delete_refs requires abilities 0x2, but only have 0x5 -ok 5 - delete_refs() not allowed +expecting success of 0027.105 'commit NNO files attr=text aeol=lf crlf=true CRLF': + check_warning "$crlfwarn" ${pfx}_CRLF.err + +ok 105 - commit NNO files attr=text aeol=lf crlf=true CRLF -expecting success of 1406.6 'rename_refs() not allowed': - test_must_fail $RUN rename-ref refs/heads/master refs/heads/new-master +expecting success of 0027.106 'commit NNO files attr=text aeol=lf crlf=true CRLF_mix_LF': + check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err + +ok 106 - commit NNO files attr=text aeol=lf crlf=true CRLF_mix_LF -BUG: refs/files-backend.c:138: operation rename_ref requires abilities 0x2, but only have 0x5 -ok 6 - rename_refs() not allowed +expecting success of 0027.107 'commit NNO files attr=text aeol=lf crlf=true LF_mix_cr': + check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err + +ok 107 - commit NNO files attr=text aeol=lf crlf=true LF_mix_cr -expecting success of 1406.7 'for_each_ref(refs/heads/)': - $RUN for-each-ref refs/heads/ | cut -d" " -f 2- >actual && - cat >expected <<-\EOF && - master 0x0 - new-master 0x0 - EOF - test_cmp expected actual +expecting success of 0027.108 'commit NNO files attr=text aeol=lf crlf=true CRLF_nul': + check_warning "$crlfnul" ${pfx}_CRLF_nul.err + +ok 108 - commit NNO files attr=text aeol=lf crlf=true CRLF_nul -ok 7 - for_each_ref(refs/heads/) +expecting success of 0027.109 'commit NNO files crlf=true attr=text LF': + check_warning "$lfwarn" ${pfx}_LF.err + +ok 109 - commit NNO files crlf=true attr=text LF -expecting success of 1406.8 'for_each_ref() is sorted': - $RUN for-each-ref refs/heads/ | cut -d" " -f 2- >actual && - sort actual > expected && - test_cmp expected actual +expecting success of 0027.110 'commit NNO files attr=text aeol=crlf crlf=true CRLF': + check_warning "$crlfwarn" ${pfx}_CRLF.err + +ok 110 - commit NNO files attr=text aeol=crlf crlf=true CRLF -ok 8 - for_each_ref() is sorted +expecting success of 0027.111 'commit NNO files attr=text aeol=crlf crlf=true CRLF_mix_LF': + check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err + +ok 111 - commit NNO files attr=text aeol=crlf crlf=true CRLF_mix_LF -expecting success of 1406.9 'resolve_ref(master)': - SHA1=`git -C sub rev-parse master` && - echo "$SHA1 refs/heads/master 0x0" >expected && - $RUN resolve-ref refs/heads/master 0 >actual && - test_cmp expected actual +expecting success of 0027.112 'commit NNO files attr=text aeol=crlf crlf=true LF_mix_cr': + check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err + +ok 112 - commit NNO files attr=text aeol=crlf crlf=true LF_mix_cr -ok 9 - resolve_ref(master) +expecting success of 0027.113 'commit NNO files attr=text aeol=crlf crlf=true CRLF_nul': + check_warning "$crlfnul" ${pfx}_CRLF_nul.err + +ok 113 - commit NNO files attr=text aeol=crlf crlf=true CRLF_nul -expecting success of 1406.10 'verify_ref(new-master)': - $RUN verify-ref refs/heads/new-master +expecting success of 0027.114 'commit NNO files crlf=false attr=-text LF': + check_warning "$lfwarn" ${pfx}_LF.err + +ok 114 - commit NNO files crlf=false attr=-text LF -ok 10 - verify_ref(new-master) +expecting success of 0027.115 'commit NNO files attr=-text aeol= crlf=false CRLF': + check_warning "$crlfwarn" ${pfx}_CRLF.err + +ok 115 - commit NNO files attr=-text aeol= crlf=false CRLF -expecting success of 1406.11 'for_each_reflog()': - $RUN for-each-reflog | sort | cut -d" " -f 2- >actual && - cat >expected <<-\EOF && - HEAD 0x1 - refs/heads/master 0x0 - refs/heads/new-master 0x0 - EOF - test_cmp expected actual +expecting success of 0027.116 'commit NNO files attr=-text aeol= crlf=false CRLF_mix_LF': + check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err + +ok 116 - commit NNO files attr=-text aeol= crlf=false CRLF_mix_LF -ok 11 - for_each_reflog() +expecting success of 0027.117 'commit NNO files attr=-text aeol= crlf=false LF_mix_cr': + check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err + +ok 117 - commit NNO files attr=-text aeol= crlf=false LF_mix_cr -expecting success of 1406.12 'for_each_reflog_ent()': - $RUN for-each-reflog-ent HEAD >actual && - head -n1 actual | grep first && - tail -n2 actual | head -n1 | grep master.to.new +expecting success of 0027.118 'commit NNO files attr=-text aeol= crlf=false CRLF_nul': + check_warning "$crlfnul" ${pfx}_CRLF_nul.err + +ok 118 - commit NNO files attr=-text aeol= crlf=false CRLF_nul -0000000000000000000000000000000000000000 50e526bb426771f6036ad3a8b0c81d511d91fc2a C O Mitter 1112911993 -700 commit (initial): first -50e526bb426771f6036ad3a8b0c81d511d91fc2a 50e526bb426771f6036ad3a8b0c81d511d91fc2a C O Mitter 1112911993 -700 checkout: moving from master to new-master -ok 12 - for_each_reflog_ent() +expecting success of 0027.119 'commit NNO files crlf=false attr=-text LF': + check_warning "$lfwarn" ${pfx}_LF.err + +ok 119 - commit NNO files crlf=false attr=-text LF -expecting success of 1406.13 'for_each_reflog_ent_reverse()': - $RUN for-each-reflog-ent-reverse HEAD >actual && - head -n1 actual | grep master.to.new && - tail -n2 actual | head -n1 | grep first +expecting success of 0027.120 'commit NNO files attr=-text aeol=lf crlf=false CRLF': + check_warning "$crlfwarn" ${pfx}_CRLF.err + +ok 120 - commit NNO files attr=-text aeol=lf crlf=false CRLF -50e526bb426771f6036ad3a8b0c81d511d91fc2a 50e526bb426771f6036ad3a8b0c81d511d91fc2a C O Mitter 1112911993 -700 checkout: moving from master to new-master -0000000000000000000000000000000000000000 50e526bb426771f6036ad3a8b0c81d511d91fc2a C O Mitter 1112911993 -700 commit (initial): first -ok 13 - for_each_reflog_ent_reverse() +expecting success of 0027.121 'commit NNO files attr=-text aeol=lf crlf=false CRLF_mix_LF': + check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err + +ok 121 - commit NNO files attr=-text aeol=lf crlf=false CRLF_mix_LF -expecting success of 1406.14 'reflog_exists(HEAD)': - $RUN reflog-exists HEAD +expecting success of 0027.122 'commit NNO files attr=-text aeol=lf crlf=false LF_mix_cr': + check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err + +ok 122 - commit NNO files attr=-text aeol=lf crlf=false LF_mix_cr -ok 14 - reflog_exists(HEAD) +expecting success of 0027.123 'commit NNO files attr=-text aeol=lf crlf=false CRLF_nul': + check_warning "$crlfnul" ${pfx}_CRLF_nul.err + +ok 123 - commit NNO files attr=-text aeol=lf crlf=false CRLF_nul -expecting success of 1406.15 'delete_reflog() not allowed': - test_must_fail $RUN delete-reflog HEAD +expecting success of 0027.124 'commit NNO files crlf=false attr=-text LF': + check_warning "$lfwarn" ${pfx}_LF.err + +ok 124 - commit NNO files crlf=false attr=-text LF -BUG: refs/files-backend.c:138: operation delete_reflog requires abilities 0x2, but only have 0x5 -ok 15 - delete_reflog() not allowed +expecting success of 0027.125 'commit NNO files attr=-text aeol=crlf crlf=false CRLF': + check_warning "$crlfwarn" ${pfx}_CRLF.err + +ok 125 - commit NNO files attr=-text aeol=crlf crlf=false CRLF -expecting success of 1406.16 'create-reflog() not allowed': - test_must_fail $RUN create-reflog HEAD 1 +expecting success of 0027.126 'commit NNO files attr=-text aeol=crlf crlf=false CRLF_mix_LF': + check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err + +ok 126 - commit NNO files attr=-text aeol=crlf crlf=false CRLF_mix_LF -BUG: refs/files-backend.c:138: operation create_reflog requires abilities 0x2, but only have 0x5 -ok 16 - create-reflog() not allowed +expecting success of 0027.127 'commit NNO files attr=-text aeol=crlf crlf=false LF_mix_cr': + check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err + +ok 127 - commit NNO files attr=-text aeol=crlf crlf=false LF_mix_cr -# passed all 16 test(s) -1..16 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1409-avoid-packing-refs.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1409-avoid-packing-refs/.git/ -expecting success of 1409.1 'setup': - git commit --allow-empty -m "Commit A" && - A=$(git rev-parse HEAD) && - git commit --allow-empty -m "Commit B" && - B=$(git rev-parse HEAD) && - git commit --allow-empty -m "Commit C" && - C=$(git rev-parse HEAD) +expecting success of 0027.128 'commit NNO files attr=-text aeol=crlf crlf=false CRLF_nul': + check_warning "$crlfnul" ${pfx}_CRLF_nul.err + +ok 128 - commit NNO files attr=-text aeol=crlf crlf=false CRLF_nul -[master (root-commit) 8d09622] Commit A - Author: A U Thor -[master 241b9d6] Commit B - Author: A U Thor -[master 8d1dbac] Commit C - Author: A U Thor -ok 1 - setup +expecting success of 0027.129 'commit NNO files crlf=false attr= LF': + check_warning "$lfwarn" ${pfx}_LF.err + +ok 129 - commit NNO files crlf=false attr= LF -expecting success of 1409.2 'do not create packed-refs file gratuitously': - test_path_is_missing .git/packed-refs && - git update-ref refs/heads/foo $A && - test_path_is_missing .git/packed-refs && - git update-ref refs/heads/foo $B && - test_path_is_missing .git/packed-refs && - git update-ref refs/heads/foo $C $B && - test_path_is_missing .git/packed-refs && - git update-ref -d refs/heads/foo && - test_path_is_missing .git/packed-refs +expecting success of 0027.130 'commit NNO files attr= aeol=lf crlf=false CRLF': + check_warning "$crlfwarn" ${pfx}_CRLF.err + +ok 130 - commit NNO files attr= aeol=lf crlf=false CRLF -ok 2 - do not create packed-refs file gratuitously +expecting success of 0027.131 'commit NNO files attr= aeol=lf crlf=false CRLF_mix_LF': + check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err + +ok 131 - commit NNO files attr= aeol=lf crlf=false CRLF_mix_LF -expecting success of 1409.3 'check that marking the packed-refs file works': - git for-each-ref >expected && - git pack-refs --all && - mark_packed_refs && - check_packed_refs_marked && - git for-each-ref >actual && - test_cmp expected actual && - git pack-refs --all && - ! check_packed_refs_marked && - git for-each-ref >actual2 && - test_cmp expected actual2 +expecting success of 0027.132 'commit NNO files attr= aeol=lf crlf=false LF_mix_cr': + check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err + +ok 132 - commit NNO files attr= aeol=lf crlf=false LF_mix_cr -ok 3 - check that marking the packed-refs file works +expecting success of 0027.133 'commit NNO files attr= aeol=lf crlf=false CRLF_nul': + check_warning "$crlfnul" ${pfx}_CRLF_nul.err + +ok 133 - commit NNO files attr= aeol=lf crlf=false CRLF_nul -expecting success of 1409.4 'leave packed-refs untouched on update of packed': - git update-ref refs/heads/packed-update $A && - git pack-refs --all && - mark_packed_refs && - git update-ref refs/heads/packed-update $B && - check_packed_refs_marked +expecting success of 0027.134 'commit NNO files crlf=false attr= LF': + check_warning "$lfwarn" ${pfx}_LF.err + +ok 134 - commit NNO files crlf=false attr= LF -ok 4 - leave packed-refs untouched on update of packed +expecting success of 0027.135 'commit NNO files attr= aeol=crlf crlf=false CRLF': + check_warning "$crlfwarn" ${pfx}_CRLF.err + +ok 135 - commit NNO files attr= aeol=crlf crlf=false CRLF -expecting success of 1409.5 'leave packed-refs untouched on checked update of packed': - git update-ref refs/heads/packed-checked-update $A && - git pack-refs --all && - mark_packed_refs && - git update-ref refs/heads/packed-checked-update $B $A && - check_packed_refs_marked +expecting success of 0027.136 'commit NNO files attr= aeol=crlf crlf=false CRLF_mix_LF': + check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err + +ok 136 - commit NNO files attr= aeol=crlf crlf=false CRLF_mix_LF -ok 5 - leave packed-refs untouched on checked update of packed +expecting success of 0027.137 'commit NNO files attr= aeol=crlf crlf=false LF_mix_cr': + check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err + +ok 137 - commit NNO files attr= aeol=crlf crlf=false LF_mix_cr -expecting success of 1409.6 'leave packed-refs untouched on verify of packed': - git update-ref refs/heads/packed-verify $A && - git pack-refs --all && - mark_packed_refs && - echo "verify refs/heads/packed-verify $A" | git update-ref --stdin && - check_packed_refs_marked +expecting success of 0027.138 'commit NNO files attr= aeol=crlf crlf=false CRLF_nul': + check_warning "$crlfnul" ${pfx}_CRLF_nul.err + +ok 138 - commit NNO files attr= aeol=crlf crlf=false CRLF_nul -ok 6 - leave packed-refs untouched on verify of packed +expecting success of 0027.139 'commit NNO files crlf=false attr=auto LF': + check_warning "$lfwarn" ${pfx}_LF.err + +ok 139 - commit NNO files crlf=false attr=auto LF -expecting success of 1409.7 'touch packed-refs on delete of packed': - git update-ref refs/heads/packed-delete $A && - git pack-refs --all && - mark_packed_refs && - git update-ref -d refs/heads/packed-delete && - ! check_packed_refs_marked +expecting success of 0027.140 'commit NNO files attr=auto aeol=lf crlf=false CRLF': + check_warning "$crlfwarn" ${pfx}_CRLF.err + +ok 140 - commit NNO files attr=auto aeol=lf crlf=false CRLF -ok 7 - touch packed-refs on delete of packed +expecting success of 0027.141 'commit NNO files attr=auto aeol=lf crlf=false CRLF_mix_LF': + check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err + +ok 141 - commit NNO files attr=auto aeol=lf crlf=false CRLF_mix_LF -expecting success of 1409.8 'leave packed-refs untouched on update of loose': - git pack-refs --all && - git update-ref refs/heads/loose-update $A && - mark_packed_refs && - git update-ref refs/heads/loose-update $B && - check_packed_refs_marked +expecting success of 0027.142 'commit NNO files attr=auto aeol=lf crlf=false LF_mix_cr': + check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err + +ok 142 - commit NNO files attr=auto aeol=lf crlf=false LF_mix_cr -ok 8 - leave packed-refs untouched on update of loose +expecting success of 0027.143 'commit NNO files attr=auto aeol=lf crlf=false CRLF_nul': + check_warning "$crlfnul" ${pfx}_CRLF_nul.err + +ok 143 - commit NNO files attr=auto aeol=lf crlf=false CRLF_nul -expecting success of 1409.9 'leave packed-refs untouched on checked update of loose': - git pack-refs --all && - git update-ref refs/heads/loose-checked-update $A && - mark_packed_refs && - git update-ref refs/heads/loose-checked-update $B $A && - check_packed_refs_marked +expecting success of 0027.144 'commit NNO files crlf=false attr=auto LF': + check_warning "$lfwarn" ${pfx}_LF.err + +ok 144 - commit NNO files crlf=false attr=auto LF -ok 9 - leave packed-refs untouched on checked update of loose +expecting success of 0027.145 'commit NNO files attr=auto aeol=crlf crlf=false CRLF': + check_warning "$crlfwarn" ${pfx}_CRLF.err + +ok 145 - commit NNO files attr=auto aeol=crlf crlf=false CRLF -expecting success of 1409.10 'leave packed-refs untouched on verify of loose': - git pack-refs --all && - git update-ref refs/heads/loose-verify $A && - mark_packed_refs && - echo "verify refs/heads/loose-verify $A" | git update-ref --stdin && - check_packed_refs_marked +expecting success of 0027.146 'commit NNO files attr=auto aeol=crlf crlf=false CRLF_mix_LF': + check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err + +ok 146 - commit NNO files attr=auto aeol=crlf crlf=false CRLF_mix_LF -ok 10 - leave packed-refs untouched on verify of loose +expecting success of 0027.147 'commit NNO files attr=auto aeol=crlf crlf=false LF_mix_cr': + check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err + +ok 147 - commit NNO files attr=auto aeol=crlf crlf=false LF_mix_cr -expecting success of 1409.11 'leave packed-refs untouched on delete of loose': - git pack-refs --all && - git update-ref refs/heads/loose-delete $A && - mark_packed_refs && - git update-ref -d refs/heads/loose-delete && - check_packed_refs_marked +expecting success of 0027.148 'commit NNO files attr=auto aeol=crlf crlf=false CRLF_nul': + check_warning "$crlfnul" ${pfx}_CRLF_nul.err + +ok 148 - commit NNO files attr=auto aeol=crlf crlf=false CRLF_nul -ok 11 - leave packed-refs untouched on delete of loose +expecting success of 0027.149 'commit NNO files crlf=false attr=text LF': + check_warning "$lfwarn" ${pfx}_LF.err + +ok 149 - commit NNO files crlf=false attr=text LF -# passed all 11 test(s) -1..11 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1411-reflog-show.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1411-reflog-show/.git/ -expecting success of 1411.1 'setup': - echo content >file && - git add file && - test_tick && - git commit -m one +expecting success of 0027.150 'commit NNO files attr=text aeol=lf crlf=false CRLF': + check_warning "$crlfwarn" ${pfx}_CRLF.err + +ok 150 - commit NNO files attr=text aeol=lf crlf=false CRLF -[master (root-commit) e46513e] one - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -ok 1 - setup +expecting success of 0027.151 'commit NNO files attr=text aeol=lf crlf=false CRLF_mix_LF': + check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err + +ok 151 - commit NNO files attr=text aeol=lf crlf=false CRLF_mix_LF -expecting success of 1411.2 'log -g shows reflog headers': - git log -g -1 >tmp && - grep ^Reflog actual && - test_cmp expect actual +expecting success of 0027.152 'commit NNO files attr=text aeol=lf crlf=false LF_mix_cr': + check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err + +ok 152 - commit NNO files attr=text aeol=lf crlf=false LF_mix_cr -ok 2 - log -g shows reflog headers +expecting success of 0027.153 'commit NNO files attr=text aeol=lf crlf=false CRLF_nul': + check_warning "$crlfnul" ${pfx}_CRLF_nul.err + +ok 153 - commit NNO files attr=text aeol=lf crlf=false CRLF_nul -expecting success of 1411.3 'oneline reflog format': - git log -g -1 --oneline >actual && - test_cmp expect actual +expecting success of 0027.154 'commit NNO files crlf=false attr=text LF': + check_warning "$lfwarn" ${pfx}_LF.err + +ok 154 - commit NNO files crlf=false attr=text LF -ok 3 - oneline reflog format +expecting success of 0027.155 'commit NNO files attr=text aeol=crlf crlf=false CRLF': + check_warning "$crlfwarn" ${pfx}_CRLF.err + +ok 155 - commit NNO files attr=text aeol=crlf crlf=false CRLF -expecting success of 1411.4 'reflog default format': - git reflog -1 >actual && - test_cmp expect actual +expecting success of 0027.156 'commit NNO files attr=text aeol=crlf crlf=false CRLF_mix_LF': + check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err + +ok 156 - commit NNO files attr=text aeol=crlf crlf=false CRLF_mix_LF -ok 4 - reflog default format +expecting success of 0027.157 'commit NNO files attr=text aeol=crlf crlf=false LF_mix_cr': + check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err + +ok 157 - commit NNO files attr=text aeol=crlf crlf=false LF_mix_cr -expecting success of 1411.5 'override reflog default format': - git reflog --format=short -1 >actual && - test_cmp expect actual +expecting success of 0027.158 'commit NNO files attr=text aeol=crlf crlf=false CRLF_nul': + check_warning "$crlfnul" ${pfx}_CRLF_nul.err + +ok 158 - commit NNO files attr=text aeol=crlf crlf=false CRLF_nul -ok 5 - override reflog default format +expecting success of 0027.159 'commit NNO files crlf=input attr=-text LF': + check_warning "$lfwarn" ${pfx}_LF.err + +ok 159 - commit NNO files crlf=input attr=-text LF -expecting success of 1411.6 'using @{now} syntax shows reflog date (multiline)': - git log -g -1 HEAD@{now} >tmp && - grep ^Reflog actual && - test_cmp expect actual +expecting success of 0027.160 'commit NNO files attr=-text aeol= crlf=input CRLF': + check_warning "$crlfwarn" ${pfx}_CRLF.err + +ok 160 - commit NNO files attr=-text aeol= crlf=input CRLF -ok 6 - using @{now} syntax shows reflog date (multiline) +expecting success of 0027.161 'commit NNO files attr=-text aeol= crlf=input CRLF_mix_LF': + check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err + +ok 161 - commit NNO files attr=-text aeol= crlf=input CRLF_mix_LF -expecting success of 1411.7 'using @{now} syntax shows reflog date (oneline)': - git log -g -1 --oneline HEAD@{now} >actual && - test_cmp expect actual +expecting success of 0027.162 'commit NNO files attr=-text aeol= crlf=input LF_mix_cr': + check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err + +ok 162 - commit NNO files attr=-text aeol= crlf=input LF_mix_cr -ok 7 - using @{now} syntax shows reflog date (oneline) +expecting success of 0027.163 'commit NNO files attr=-text aeol= crlf=input CRLF_nul': + check_warning "$crlfnul" ${pfx}_CRLF_nul.err + +ok 163 - commit NNO files attr=-text aeol= crlf=input CRLF_nul -expecting success of 1411.8 'using @{now} syntax shows reflog date (format=%gd)': - git log -g -1 --format=%gd HEAD@{now} >actual && - test_cmp expect actual +expecting success of 0027.164 'commit NNO files crlf=input attr=-text LF': + check_warning "$lfwarn" ${pfx}_LF.err + +ok 164 - commit NNO files crlf=input attr=-text LF -ok 8 - using @{now} syntax shows reflog date (format=%gd) +expecting success of 0027.165 'commit NNO files attr=-text aeol=lf crlf=input CRLF': + check_warning "$crlfwarn" ${pfx}_CRLF.err + +ok 165 - commit NNO files attr=-text aeol=lf crlf=input CRLF -expecting success of 1411.9 'using --date= shows reflog date (multiline)': - git log -g -1 --date=default >tmp && - grep ^Reflog actual && - test_cmp expect actual +expecting success of 0027.166 'commit NNO files attr=-text aeol=lf crlf=input CRLF_mix_LF': + check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err + +ok 166 - commit NNO files attr=-text aeol=lf crlf=input CRLF_mix_LF -ok 9 - using --date= shows reflog date (multiline) +expecting success of 0027.167 'commit NNO files attr=-text aeol=lf crlf=input LF_mix_cr': + check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err + +ok 167 - commit NNO files attr=-text aeol=lf crlf=input LF_mix_cr -expecting success of 1411.10 'using --date= shows reflog date (oneline)': - git log -g -1 --oneline --date=default >actual && - test_cmp expect actual +expecting success of 0027.168 'commit NNO files attr=-text aeol=lf crlf=input CRLF_nul': + check_warning "$crlfnul" ${pfx}_CRLF_nul.err + +ok 168 - commit NNO files attr=-text aeol=lf crlf=input CRLF_nul -ok 10 - using --date= shows reflog date (oneline) +expecting success of 0027.169 'commit NNO files crlf=input attr=-text LF': + check_warning "$lfwarn" ${pfx}_LF.err + +ok 169 - commit NNO files crlf=input attr=-text LF -expecting success of 1411.11 'using --date= shows reflog date (format=%gd)': - git log -g -1 --format=%gd --date=raw >actual && - test_cmp expect actual +expecting success of 0027.170 'commit NNO files attr=-text aeol=crlf crlf=input CRLF': + check_warning "$crlfwarn" ${pfx}_CRLF.err + +ok 170 - commit NNO files attr=-text aeol=crlf crlf=input CRLF -ok 11 - using --date= shows reflog date (format=%gd) +expecting success of 0027.171 'commit NNO files attr=-text aeol=crlf crlf=input CRLF_mix_LF': + check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err + +ok 171 - commit NNO files attr=-text aeol=crlf crlf=input CRLF_mix_LF -expecting success of 1411.12 'log.date does not invoke "--date" magic (multiline)': - test_config log.date raw && - git log -g -1 >tmp && - grep ^Reflog actual && - test_cmp expect actual +expecting success of 0027.172 'commit NNO files attr=-text aeol=crlf crlf=input LF_mix_cr': + check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err + +ok 172 - commit NNO files attr=-text aeol=crlf crlf=input LF_mix_cr -ok 12 - log.date does not invoke "--date" magic (multiline) +expecting success of 0027.173 'commit NNO files attr=-text aeol=crlf crlf=input CRLF_nul': + check_warning "$crlfnul" ${pfx}_CRLF_nul.err + +ok 173 - commit NNO files attr=-text aeol=crlf crlf=input CRLF_nul -expecting success of 1411.13 'log.date does not invoke "--date" magic (oneline)': - test_config log.date raw && - git log -g -1 --oneline >actual && - test_cmp expect actual +expecting success of 0027.174 'commit NNO files crlf=input attr= LF': + check_warning "$lfwarn" ${pfx}_LF.err + +ok 174 - commit NNO files crlf=input attr= LF -ok 13 - log.date does not invoke "--date" magic (oneline) +expecting success of 0027.175 'commit NNO files attr= aeol=lf crlf=input CRLF': + check_warning "$crlfwarn" ${pfx}_CRLF.err + +ok 175 - commit NNO files attr= aeol=lf crlf=input CRLF -expecting success of 1411.14 'log.date does not invoke "--date" magic (format=%gd)': - test_config log.date raw && - git log -g -1 --format=%gd >actual && - test_cmp expect actual +expecting success of 0027.176 'commit NNO files attr= aeol=lf crlf=input CRLF_mix_LF': + check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err + +ok 176 - commit NNO files attr= aeol=lf crlf=input CRLF_mix_LF -ok 14 - log.date does not invoke "--date" magic (format=%gd) +expecting success of 0027.177 'commit NNO files attr= aeol=lf crlf=input LF_mix_cr': + check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err + +ok 177 - commit NNO files attr= aeol=lf crlf=input LF_mix_cr -expecting success of 1411.15 '--date magic does not override explicit @{0} syntax': - git log -g -1 --format=%gd --date=raw HEAD@{0} >actual && - test_cmp expect actual +expecting success of 0027.178 'commit NNO files attr= aeol=lf crlf=input CRLF_nul': + check_warning "$crlfnul" ${pfx}_CRLF_nul.err + +ok 178 - commit NNO files attr= aeol=lf crlf=input CRLF_nul -ok 15 - --date magic does not override explicit @{0} syntax +expecting success of 0027.179 'commit NNO files crlf=input attr= LF': + check_warning "$lfwarn" ${pfx}_LF.err + +ok 179 - commit NNO files crlf=input attr= LF -expecting success of 1411.16 'empty reflog file': - git branch empty && - git reflog expire --expire=all refs/heads/empty && +expecting success of 0027.180 'commit NNO files attr= aeol=crlf crlf=input CRLF': + check_warning "$crlfwarn" ${pfx}_CRLF.err + +ok 180 - commit NNO files attr= aeol=crlf crlf=input CRLF - git log -g empty >actual && - test_must_be_empty actual +expecting success of 0027.181 'commit NNO files attr= aeol=crlf crlf=input CRLF_mix_LF': + check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err + +ok 181 - commit NNO files attr= aeol=crlf crlf=input CRLF_mix_LF -ok 16 - empty reflog file +expecting success of 0027.182 'commit NNO files attr= aeol=crlf crlf=input LF_mix_cr': + check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err + +ok 182 - commit NNO files attr= aeol=crlf crlf=input LF_mix_cr -expecting success of 1411.17 'git log -g -p shows diffs vs. parents': - test_commit two && - git branch flipflop && - git update-ref refs/heads/flipflop -m flip1 HEAD^ && - git update-ref refs/heads/flipflop -m flop1 HEAD && - git update-ref refs/heads/flipflop -m flip2 HEAD^ && - git log -g -p flipflop >reflog && - grep -v ^Reflog reflog >actual && - git log -1 -p HEAD^ >log.one && - git log -1 -p HEAD >log.two && - ( - cat log.one && echo && - cat log.two && echo && - cat log.one && echo && - cat log.two - ) >expect && - test_cmp expect actual +expecting success of 0027.183 'commit NNO files attr= aeol=crlf crlf=input CRLF_nul': + check_warning "$crlfnul" ${pfx}_CRLF_nul.err + +ok 183 - commit NNO files attr= aeol=crlf crlf=input CRLF_nul -[master fc3e0aa] two - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 two.t -ok 17 - git log -g -p shows diffs vs. parents +expecting success of 0027.184 'commit NNO files crlf=input attr=auto LF': + check_warning "$lfwarn" ${pfx}_LF.err + +ok 184 - commit NNO files crlf=input attr=auto LF -expecting success of 1411.18 'reflog exists works': - git reflog exists refs/heads/master && - ! git reflog exists refs/heads/nonexistent +expecting success of 0027.185 'commit NNO files attr=auto aeol=lf crlf=input CRLF': + check_warning "$crlfwarn" ${pfx}_CRLF.err + +ok 185 - commit NNO files attr=auto aeol=lf crlf=input CRLF -ok 18 - reflog exists works +expecting success of 0027.186 'commit NNO files attr=auto aeol=lf crlf=input CRLF_mix_LF': + check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err + +ok 186 - commit NNO files attr=auto aeol=lf crlf=input CRLF_mix_LF -# passed all 18 test(s) -1..18 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1412-reflog-loop.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1412-reflog-loop/.git/ -expecting success of 1412.1 'setup commits': - test_tick && - echo content >file && git add file && git commit -m one && - git tag one && - echo content >>file && git add file && git commit -m two && - git tag two +expecting success of 0027.187 'commit NNO files attr=auto aeol=lf crlf=input LF_mix_cr': + check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err + +ok 187 - commit NNO files attr=auto aeol=lf crlf=input LF_mix_cr -[master (root-commit) e46513e] one - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -[master 441e5e0] two - Author: A U Thor - 1 file changed, 1 insertion(+) -ok 1 - setup commits +expecting success of 0027.188 'commit NNO files attr=auto aeol=lf crlf=input CRLF_nul': + check_warning "$crlfnul" ${pfx}_CRLF_nul.err + +ok 188 - commit NNO files attr=auto aeol=lf crlf=input CRLF_nul -expecting success of 1412.2 'setup reflog with alternating commits': - git checkout -b topic && - git reset one && - git reset two && - git reset one && - git reset two +expecting success of 0027.189 'commit NNO files crlf=input attr=auto LF': + check_warning "$lfwarn" ${pfx}_LF.err + +ok 189 - commit NNO files crlf=input attr=auto LF -Switched to a new branch 'topic' -Unstaged changes after reset: -M file -Unstaged changes after reset: -M file -ok 2 - setup reflog with alternating commits +expecting success of 0027.190 'commit NNO files attr=auto aeol=crlf crlf=input CRLF': + check_warning "$crlfwarn" ${pfx}_CRLF.err + +ok 190 - commit NNO files attr=auto aeol=crlf crlf=input CRLF -expecting success of 1412.3 'reflog shows all entries': - cat >expect <<-\EOF && - topic@{0} reset: moving to two - topic@{1} reset: moving to one - topic@{2} reset: moving to two - topic@{3} reset: moving to one - topic@{4} branch: Created from HEAD - EOF - git log -g --format="%gd %gs" topic >actual && - test_cmp expect actual +expecting success of 0027.191 'commit NNO files attr=auto aeol=crlf crlf=input CRLF_mix_LF': + check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err + +ok 191 - commit NNO files attr=auto aeol=crlf crlf=input CRLF_mix_LF -ok 3 - reflog shows all entries +expecting success of 0027.192 'commit NNO files attr=auto aeol=crlf crlf=input LF_mix_cr': + check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err + +ok 192 - commit NNO files attr=auto aeol=crlf crlf=input LF_mix_cr -# passed all 3 test(s) -1..3 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1413-reflog-detach.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1413-reflog-detach/.git/ -expecting success of 1413.1 'setup': - test_tick && - git commit --allow-empty -m initial && - git branch side && - test_tick && - git commit --allow-empty -m second && - cat .git/logs/HEAD >saved_reflog +expecting success of 0027.193 'commit NNO files attr=auto aeol=crlf crlf=input CRLF_nul': + check_warning "$crlfnul" ${pfx}_CRLF_nul.err + +ok 193 - commit NNO files attr=auto aeol=crlf crlf=input CRLF_nul -[master (root-commit) 66fe8b3] initial - Author: A U Thor -[master 5ce2b00] second - Author: A U Thor -ok 1 - setup +expecting success of 0027.194 'commit NNO files crlf=input attr=text LF': + check_warning "$lfwarn" ${pfx}_LF.err + +ok 194 - commit NNO files crlf=input attr=text LF -expecting success of 1413.2 'baseline': - reset_state && - git rev-parse master master^ >expect && - git log -g --format=%H >actual && - test_cmp expect actual +expecting success of 0027.195 'commit NNO files attr=text aeol=lf crlf=input CRLF': + check_warning "$crlfwarn" ${pfx}_CRLF.err + +ok 195 - commit NNO files attr=text aeol=lf crlf=input CRLF -Already on 'master' -ok 2 - baseline +expecting success of 0027.196 'commit NNO files attr=text aeol=lf crlf=input CRLF_mix_LF': + check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err + +ok 196 - commit NNO files attr=text aeol=lf crlf=input CRLF_mix_LF -expecting success of 1413.3 'switch to branch': - reset_state && - git rev-parse side master master^ >expect && - git checkout side && - git log -g --format=%H >actual && - test_cmp expect actual +expecting success of 0027.197 'commit NNO files attr=text aeol=lf crlf=input LF_mix_cr': + check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err + +ok 197 - commit NNO files attr=text aeol=lf crlf=input LF_mix_cr -Already on 'master' -Switched to branch 'side' -ok 3 - switch to branch +expecting success of 0027.198 'commit NNO files attr=text aeol=lf crlf=input CRLF_nul': + check_warning "$crlfnul" ${pfx}_CRLF_nul.err + +ok 198 - commit NNO files attr=text aeol=lf crlf=input CRLF_nul -expecting success of 1413.4 'detach to other': - reset_state && - git rev-parse master side master master^ >expect && - git checkout side && - git checkout master^0 && - git log -g --format=%H >actual && - test_cmp expect actual +expecting success of 0027.199 'commit NNO files crlf=input attr=text LF': + check_warning "$lfwarn" ${pfx}_LF.err + +ok 199 - commit NNO files crlf=input attr=text LF -Switched to branch 'master' -Switched to branch 'side' -Note: switching to 'master^0'. +expecting success of 0027.200 'commit NNO files attr=text aeol=crlf crlf=input CRLF': + check_warning "$crlfwarn" ${pfx}_CRLF.err + +ok 200 - commit NNO files attr=text aeol=crlf crlf=input CRLF -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. +expecting success of 0027.201 'commit NNO files attr=text aeol=crlf crlf=input CRLF_mix_LF': + check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err + +ok 201 - commit NNO files attr=text aeol=crlf crlf=input CRLF_mix_LF -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: +expecting success of 0027.202 'commit NNO files attr=text aeol=crlf crlf=input LF_mix_cr': + check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err + +ok 202 - commit NNO files attr=text aeol=crlf crlf=input LF_mix_cr - git switch -c +expecting success of 0027.203 'commit NNO files attr=text aeol=crlf crlf=input CRLF_nul': + check_warning "$crlfnul" ${pfx}_CRLF_nul.err + +ok 203 - commit NNO files attr=text aeol=crlf crlf=input CRLF_nul -Or undo this operation with: +expecting success of 0027.204 'commit NNO files crlf=false attr=text LF': + check_warning "$lfwarn" ${pfx}_LF.err + +ok 204 - commit NNO files crlf=false attr=text LF - git switch - +expecting success of 0027.205 'commit NNO files attr=text aeol= crlf=false CRLF': + check_warning "$crlfwarn" ${pfx}_CRLF.err + +ok 205 - commit NNO files attr=text aeol= crlf=false CRLF -Turn off this advice by setting config variable advice.detachedHead to false +expecting success of 0027.206 'commit NNO files attr=text aeol= crlf=false CRLF_mix_LF': + check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err + +ok 206 - commit NNO files attr=text aeol= crlf=false CRLF_mix_LF -HEAD is now at 5ce2b00 second -ok 4 - detach to other +expecting success of 0027.207 'commit NNO files attr=text aeol= crlf=false LF_mix_cr': + check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err + +ok 207 - commit NNO files attr=text aeol= crlf=false LF_mix_cr -expecting success of 1413.5 'detach to self': - reset_state && - git rev-parse master master master^ >expect && - git checkout master^0 && - git log -g --format=%H >actual && - test_cmp expect actual +expecting success of 0027.208 'commit NNO files attr=text aeol= crlf=false CRLF_nul': + check_warning "$crlfnul" ${pfx}_CRLF_nul.err + +ok 208 - commit NNO files attr=text aeol= crlf=false CRLF_nul -Switched to branch 'master' -Note: switching to 'master^0'. +expecting success of 0027.209 'commit NNO files crlf=true attr=text LF': + check_warning "$lfwarn" ${pfx}_LF.err + +ok 209 - commit NNO files crlf=true attr=text LF -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. +expecting success of 0027.210 'commit NNO files attr=text aeol= crlf=true CRLF': + check_warning "$crlfwarn" ${pfx}_CRLF.err + +ok 210 - commit NNO files attr=text aeol= crlf=true CRLF -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: +expecting success of 0027.211 'commit NNO files attr=text aeol= crlf=true CRLF_mix_LF': + check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err + +ok 211 - commit NNO files attr=text aeol= crlf=true CRLF_mix_LF - git switch -c +expecting success of 0027.212 'commit NNO files attr=text aeol= crlf=true LF_mix_cr': + check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err + +ok 212 - commit NNO files attr=text aeol= crlf=true LF_mix_cr -Or undo this operation with: +expecting success of 0027.213 'commit NNO files attr=text aeol= crlf=true CRLF_nul': + check_warning "$crlfnul" ${pfx}_CRLF_nul.err + +ok 213 - commit NNO files attr=text aeol= crlf=true CRLF_nul - git switch - +expecting success of 0027.214 'commit NNO files crlf=input attr=text LF': + check_warning "$lfwarn" ${pfx}_LF.err + +ok 214 - commit NNO files crlf=input attr=text LF -Turn off this advice by setting config variable advice.detachedHead to false +expecting success of 0027.215 'commit NNO files attr=text aeol= crlf=input CRLF': + check_warning "$crlfwarn" ${pfx}_CRLF.err + +ok 215 - commit NNO files attr=text aeol= crlf=input CRLF -HEAD is now at 5ce2b00 second -ok 5 - detach to self +expecting success of 0027.216 'commit NNO files attr=text aeol= crlf=input CRLF_mix_LF': + check_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err + +ok 216 - commit NNO files attr=text aeol= crlf=input CRLF_mix_LF -expecting success of 1413.6 'attach to self': - reset_state && - git rev-parse master master master master^ >expect && - git checkout master^0 && - git checkout master && - git log -g --format=%H >actual && - test_cmp expect actual +expecting success of 0027.217 'commit NNO files attr=text aeol= crlf=input LF_mix_cr': + check_warning "$lfmixcr" ${pfx}_LF_mix_CR.err + +ok 217 - commit NNO files attr=text aeol= crlf=input LF_mix_cr -Switched to branch 'master' -Note: switching to 'master^0'. +expecting success of 0027.218 'commit NNO files attr=text aeol= crlf=input CRLF_nul': + check_warning "$crlfnul" ${pfx}_CRLF_nul.err + +ok 218 - commit NNO files attr=text aeol= crlf=input CRLF_nul -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. +expecting success of 0027.219 'commit NNO and cleanup': + git commit -m "commit files on top of NNO" && + rm -f *.txt && + git -c core.autocrlf=false reset --hard -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: +[master 35da0ca] commit files on top of NNO + Author: A U Thor + 210 files changed, 332 insertions(+), 362 deletions(-) +HEAD is now at 35da0ca commit files on top of NNO +ok 219 - commit NNO and cleanup - git switch -c +expecting success of 0027.220 'commit empty gitattribues': + check_files_in_repo false "" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul && + check_files_in_repo true "" LF LF LF LF_mix_CR CRLF_nul && + check_files_in_repo input "" LF LF LF LF_mix_CR CRLF_nul -Or undo this operation with: +ok 220 - commit empty gitattribues - git switch - +expecting success of 0027.221 'commit text=auto': + check_files_in_repo false "auto" LF LF LF LF_mix_CR CRLF_nul && + check_files_in_repo true "auto" LF LF LF LF_mix_CR CRLF_nul && + check_files_in_repo input "auto" LF LF LF LF_mix_CR CRLF_nul -Turn off this advice by setting config variable advice.detachedHead to false +ok 221 - commit text=auto -HEAD is now at 5ce2b00 second -Switched to branch 'master' -ok 6 - attach to self +expecting success of 0027.222 'commit text': + check_files_in_repo false "text" LF LF LF LF_mix_CR LF_nul && + check_files_in_repo true "text" LF LF LF LF_mix_CR LF_nul && + check_files_in_repo input "text" LF LF LF LF_mix_CR LF_nul -expecting success of 1413.7 'attach to other': - reset_state && - git rev-parse side master master master^ >expect && - git checkout master^0 && - git checkout side && - git log -g --format=%H >actual && - test_cmp expect actual +ok 222 - commit text -Already on 'master' -Note: switching to 'master^0'. +expecting success of 0027.223 'commit -text': + check_files_in_repo false "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul && + check_files_in_repo true "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul && + check_files_in_repo input "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. +ok 223 - commit -text -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: +expecting success of 0027.224 'compare_files LF NNO_attr__aeol__true_LF.txt': + compare_files $lfname ${pfx}_LF.txt + +ok 224 - compare_files LF NNO_attr__aeol__true_LF.txt - git switch -c +expecting success of 0027.225 'compare_files CRLF NNO_attr__aeol__true_CRLF.txt': + compare_files $crlfname ${pfx}_CRLF.txt + +ok 225 - compare_files CRLF NNO_attr__aeol__true_CRLF.txt -Or undo this operation with: +expecting success of 0027.226 'compare_files CRLF_mix_LF NNO_attr__aeol__true_CRLF_mix_LF.txt': + compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt + +ok 226 - compare_files CRLF_mix_LF NNO_attr__aeol__true_CRLF_mix_LF.txt - git switch - +expecting success of 0027.227 'compare_files LF_mix_CR NNO_attr__aeol__true_LF_mix_CR.txt': + compare_files $lfmixcr ${pfx}_LF_mix_CR.txt + +ok 227 - compare_files LF_mix_CR NNO_attr__aeol__true_LF_mix_CR.txt -Turn off this advice by setting config variable advice.detachedHead to false +expecting success of 0027.228 'compare_files CRLF_nul NNO_attr__aeol__true_CRLF_nul.txt': + compare_files $crlfnul ${pfx}_CRLF_nul.txt + +ok 228 - compare_files CRLF_nul NNO_attr__aeol__true_CRLF_nul.txt -HEAD is now at 5ce2b00 second -Previous HEAD position was 5ce2b00 second -Switched to branch 'side' -ok 7 - attach to other +expecting success of 0027.229 'compare_files LF NNO_attr_-text_aeol__true_LF.txt': + compare_files $lfname ${pfx}_LF.txt + +ok 229 - compare_files LF NNO_attr_-text_aeol__true_LF.txt -# passed all 7 test(s) -1..7 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1414-reflog-walk.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1414-reflog-walk/.git/ -expecting success of 1414.1 'set up some reflog entries': - test_commit one && - test_commit two && - git checkout -b side HEAD^ && - test_commit three && - git merge --no-commit master && - echo evil-merge-content >>one.t && - test_tick && - git commit --no-edit -a +expecting success of 0027.230 'compare_files CRLF NNO_attr_-text_aeol__true_CRLF.txt': + compare_files $crlfname ${pfx}_CRLF.txt + +ok 230 - compare_files CRLF NNO_attr_-text_aeol__true_CRLF.txt -[master (root-commit) d79ce16] one - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 one.t -[master 139b20d] two - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 two.t -Switched to a new branch 'side' -[side 897c206] three - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 three.t -Merging: -897c206 three -virtual master -found 1 common ancestor: -d79ce16 one -Automatic merge went well; stopped before committing as requested -[side 0a3eb79] Merge branch 'master' into side - Author: A U Thor -ok 1 - set up some reflog entries +expecting success of 0027.231 'compare_files CRLF_mix_LF NNO_attr_-text_aeol__true_CRLF_mix_LF.txt': + compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt + +ok 231 - compare_files CRLF_mix_LF NNO_attr_-text_aeol__true_CRLF_mix_LF.txt -expecting success of 1414.2 'set up expected reflog': - cat >expect.all <<-EOF - HEAD@{0} commit (merge): Merge branch ${SQ}master${SQ} into side - HEAD@{1} commit: three - HEAD@{2} checkout: moving from master to side - HEAD@{3} commit: two - HEAD@{4} commit (initial): one - EOF +expecting success of 0027.232 'compare_files LF_mix_CR NNO_attr_-text_aeol__true_LF_mix_CR.txt': + compare_files $lfmixcr ${pfx}_LF_mix_CR.txt + +ok 232 - compare_files LF_mix_CR NNO_attr_-text_aeol__true_LF_mix_CR.txt -ok 2 - set up expected reflog +expecting success of 0027.233 'compare_files CRLF_nul NNO_attr_-text_aeol__true_CRLF_nul.txt': + compare_files $crlfnul ${pfx}_CRLF_nul.txt + +ok 233 - compare_files CRLF_nul NNO_attr_-text_aeol__true_CRLF_nul.txt -expecting success of 1414.3 'reflog walk shows expected logs': - do_walk >actual && - test_cmp expect.all actual +expecting success of 0027.234 'compare_files LF NNO_attr_-text_aeol_lf_true_LF.txt': + compare_files $lfname ${pfx}_LF.txt + +ok 234 - compare_files LF NNO_attr_-text_aeol_lf_true_LF.txt -ok 3 - reflog walk shows expected logs +expecting success of 0027.235 'compare_files CRLF NNO_attr_-text_aeol_lf_true_CRLF.txt': + compare_files $crlfname ${pfx}_CRLF.txt + +ok 235 - compare_files CRLF NNO_attr_-text_aeol_lf_true_CRLF.txt -expecting success of 1414.4 'reflog can limit with --no-merges': - grep -v merge expect.all >expect && - do_walk --no-merges >actual && - test_cmp expect actual +expecting success of 0027.236 'compare_files CRLF_mix_LF NNO_attr_-text_aeol_lf_true_CRLF_mix_LF.txt': + compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt + +ok 236 - compare_files CRLF_mix_LF NNO_attr_-text_aeol_lf_true_CRLF_mix_LF.txt -ok 4 - reflog can limit with --no-merges +expecting success of 0027.237 'compare_files LF_mix_CR NNO_attr_-text_aeol_lf_true_LF_mix_CR.txt': + compare_files $lfmixcr ${pfx}_LF_mix_CR.txt + +ok 237 - compare_files LF_mix_CR NNO_attr_-text_aeol_lf_true_LF_mix_CR.txt -expecting success of 1414.5 'reflog can limit with pathspecs': - grep two expect.all >expect && - do_walk -- two.t >actual && - test_cmp expect actual +expecting success of 0027.238 'compare_files CRLF_nul NNO_attr_-text_aeol_lf_true_CRLF_nul.txt': + compare_files $crlfnul ${pfx}_CRLF_nul.txt + +ok 238 - compare_files CRLF_nul NNO_attr_-text_aeol_lf_true_CRLF_nul.txt -ok 5 - reflog can limit with pathspecs +expecting success of 0027.239 'compare_files LF NNO_attr_-text_aeol_crlf_true_LF.txt': + compare_files $lfname ${pfx}_LF.txt + +ok 239 - compare_files LF NNO_attr_-text_aeol_crlf_true_LF.txt -expecting success of 1414.6 'pathspec limiting handles merges': - # we pick up: - # - the initial commit of one - # - the checkout back to commit one - # - the evil merge which touched one - sed -n "1p;3p;5p" expect.all >expect && - do_walk -- one.t >actual && - test_cmp expect actual +expecting success of 0027.240 'compare_files CRLF NNO_attr_-text_aeol_crlf_true_CRLF.txt': + compare_files $crlfname ${pfx}_CRLF.txt + +ok 240 - compare_files CRLF NNO_attr_-text_aeol_crlf_true_CRLF.txt -ok 6 - pathspec limiting handles merges +expecting success of 0027.241 'compare_files CRLF_mix_LF NNO_attr_-text_aeol_crlf_true_CRLF_mix_LF.txt': + compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt + +ok 241 - compare_files CRLF_mix_LF NNO_attr_-text_aeol_crlf_true_CRLF_mix_LF.txt -expecting success of 1414.7 '--parents shows true parents': - # convert newlines to spaces - echo $(git rev-parse HEAD HEAD^1 HEAD^2) >expect && - git rev-list -g --parents -1 HEAD >actual && - test_cmp expect actual +expecting success of 0027.242 'compare_files LF_mix_CR NNO_attr_-text_aeol_crlf_true_LF_mix_CR.txt': + compare_files $lfmixcr ${pfx}_LF_mix_CR.txt + +ok 242 - compare_files LF_mix_CR NNO_attr_-text_aeol_crlf_true_LF_mix_CR.txt -ok 7 - --parents shows true parents +expecting success of 0027.243 'compare_files CRLF_nul NNO_attr_-text_aeol_crlf_true_CRLF_nul.txt': + compare_files $crlfnul ${pfx}_CRLF_nul.txt + +ok 243 - compare_files CRLF_nul NNO_attr_-text_aeol_crlf_true_CRLF_nul.txt -expecting success of 1414.8 'walking multiple reflogs shows all': - # We expect to see all entries for all reflogs, but interleaved by - # date, with order on the command line breaking ties. We - # can use "sort" on the separate lists to generate this, - # but note two tricks: - # - # 1. We use "{" as the delimiter, which lets us skip to the reflog - # date specifier as our second field, and then our "-n" numeric - # sort ignores the bits after the timestamp. - # - # 2. POSIX leaves undefined whether this is a stable sort or not. So - # we use "-k 1" to ensure that we see HEAD before master before - # side when breaking ties. - { - do_walk --date=unix HEAD && - do_walk --date=unix side && - do_walk --date=unix master - } >expect.raw && - sort -t "{" -k 2nr -k 1 expect && - do_walk --date=unix HEAD master side >actual && - test_cmp expect actual +expecting success of 0027.244 'compare_files LF NNO_attr_auto_aeol__true_LF.txt': + compare_files $lfname ${pfx}_LF.txt + +ok 244 - compare_files LF NNO_attr_auto_aeol__true_LF.txt -ok 8 - walking multiple reflogs shows all +expecting success of 0027.245 'compare_files CRLF NNO_attr_auto_aeol__true_CRLF.txt': + compare_files $crlfname ${pfx}_CRLF.txt + +ok 245 - compare_files CRLF NNO_attr_auto_aeol__true_CRLF.txt -expecting success of 1414.9 'date-limiting does not interfere with other logs': - do_walk HEAD@{1979-01-01} HEAD >actual && - test_cmp expect.all actual +expecting success of 0027.246 'compare_files CRLF_mix_LF NNO_attr_auto_aeol__true_CRLF_mix_LF.txt': + compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt + +ok 246 - compare_files CRLF_mix_LF NNO_attr_auto_aeol__true_CRLF_mix_LF.txt -warning: log for 'HEAD' only goes back to Thu, 7 Apr 2005 15:13:13 -0700 -ok 9 - date-limiting does not interfere with other logs +expecting success of 0027.247 'compare_files LF_mix_CR NNO_attr_auto_aeol__true_LF_mix_CR.txt': + compare_files $lfmixcr ${pfx}_LF_mix_CR.txt + +ok 247 - compare_files LF_mix_CR NNO_attr_auto_aeol__true_LF_mix_CR.txt -expecting success of 1414.10 'min/max age uses entry date to limit': - # Flip between commits one and two so each ref update actually - # does something (and does not get optimized out). We know - # that the timestamps of those commits will be before our "min". +expecting success of 0027.248 'compare_files CRLF_nul NNO_attr_auto_aeol__true_CRLF_nul.txt': + compare_files $crlfnul ${pfx}_CRLF_nul.txt + +ok 248 - compare_files CRLF_nul NNO_attr_auto_aeol__true_CRLF_nul.txt - git update-ref -m before refs/heads/minmax one && +expecting success of 0027.249 'compare_files LF NNO_attr_auto_aeol_lf_true_LF.txt': + compare_files $lfname ${pfx}_LF.txt + +ok 249 - compare_files LF NNO_attr_auto_aeol_lf_true_LF.txt - test_tick && - min=$test_tick && - git update-ref -m min refs/heads/minmax two && +expecting success of 0027.250 'compare_files CRLF NNO_attr_auto_aeol_lf_true_CRLF.txt': + compare_files $crlfname ${pfx}_CRLF.txt + +ok 250 - compare_files CRLF NNO_attr_auto_aeol_lf_true_CRLF.txt - test_tick && - max=$test_tick && - git update-ref -m max refs/heads/minmax one && +expecting success of 0027.251 'compare_files CRLF_mix_LF NNO_attr_auto_aeol_lf_true_CRLF_mix_LF.txt': + compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt + +ok 251 - compare_files CRLF_mix_LF NNO_attr_auto_aeol_lf_true_CRLF_mix_LF.txt - test_tick && - git update-ref -m after refs/heads/minmax two && +expecting success of 0027.252 'compare_files LF_mix_CR NNO_attr_auto_aeol_lf_true_LF_mix_CR.txt': + compare_files $lfmixcr ${pfx}_LF_mix_CR.txt + +ok 252 - compare_files LF_mix_CR NNO_attr_auto_aeol_lf_true_LF_mix_CR.txt - cat >expect <<-\EOF && - max - min - EOF - git log -g --since=$min --until=$max --format=%gs minmax >actual && - test_cmp expect actual +expecting success of 0027.253 'compare_files CRLF_nul NNO_attr_auto_aeol_lf_true_CRLF_nul.txt': + compare_files $crlfnul ${pfx}_CRLF_nul.txt + +ok 253 - compare_files CRLF_nul NNO_attr_auto_aeol_lf_true_CRLF_nul.txt -ok 10 - min/max age uses entry date to limit +expecting success of 0027.254 'compare_files LF NNO_attr_auto_aeol_crlf_true_LF.txt': + compare_files $lfname ${pfx}_LF.txt + +ok 254 - compare_files LF NNO_attr_auto_aeol_crlf_true_LF.txt -expecting success of 1414.11 'walk prefers reflog to ref tip': - head=$(git rev-parse HEAD) && - one=$(git rev-parse one) && - ident="$GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE" && - echo "$head $one $ident broken reflog entry" >>.git/logs/HEAD && +expecting success of 0027.255 'compare_files CRLF NNO_attr_auto_aeol_crlf_true_CRLF.txt': + compare_files $crlfname ${pfx}_CRLF.txt + +ok 255 - compare_files CRLF NNO_attr_auto_aeol_crlf_true_CRLF.txt - echo $one >expect && - git log -g --format=%H -1 >actual && - test_cmp expect actual +expecting success of 0027.256 'compare_files CRLF_mix_LF NNO_attr_auto_aeol_crlf_true_CRLF_mix_LF.txt': + compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt + +ok 256 - compare_files CRLF_mix_LF NNO_attr_auto_aeol_crlf_true_CRLF_mix_LF.txt -ok 11 - walk prefers reflog to ref tip +expecting success of 0027.257 'compare_files LF_mix_CR NNO_attr_auto_aeol_crlf_true_LF_mix_CR.txt': + compare_files $lfmixcr ${pfx}_LF_mix_CR.txt + +ok 257 - compare_files LF_mix_CR NNO_attr_auto_aeol_crlf_true_LF_mix_CR.txt -expecting success of 1414.12 'rev-list -g complains when there are no reflogs': - test_must_fail git rev-list -g +expecting success of 0027.258 'compare_files CRLF_nul NNO_attr_auto_aeol_crlf_true_CRLF_nul.txt': + compare_files $crlfnul ${pfx}_CRLF_nul.txt + +ok 258 - compare_files CRLF_nul NNO_attr_auto_aeol_crlf_true_CRLF_nul.txt -usage: git rev-list [OPTION] ... [ -- paths... ] - limiting output: - --max-count= - --max-age= - --min-age= - --sparse - --no-merges - --min-parents= - --no-min-parents - --max-parents= - --no-max-parents - --remove-empty - --all - --branches - --tags - --remotes - --stdin - --quiet - ordering output: - --topo-order - --date-order - --reverse - formatting output: - --parents - --children - --objects | --objects-edge - --unpacked - --header | --pretty - --[no-]object-names - --abbrev= | --no-abbrev - --abbrev-commit - --left-right - --count - special purpose: - --bisect - --bisect-vars - --bisect-all -ok 12 - rev-list -g complains when there are no reflogs +expecting success of 0027.259 'compare_files LF NNO_attr_text_aeol__true_LF.txt': + compare_files $lfname ${pfx}_LF.txt + +ok 259 - compare_files LF NNO_attr_text_aeol__true_LF.txt -# passed all 12 test(s) -1..12 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1410-reflog.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1410-reflog/.git/ -expecting success of 1410.1 'setup': - mkdir -p A/B && - echo rat >C && - echo ox >A/D && - echo tiger >A/B/E && - git add . && +expecting success of 0027.260 'compare_files LF NNO_attr_text_aeol__true_CRLF.txt': + compare_files $crlfname ${pfx}_CRLF.txt + +ok 260 - compare_files LF NNO_attr_text_aeol__true_CRLF.txt - test_tick && git commit -m rabbit && - H=$(git rev-parse --verify HEAD) && - A=$(git rev-parse --verify HEAD:A) && - B=$(git rev-parse --verify HEAD:A/B) && - C=$(git rev-parse --verify HEAD:C) && - D=$(git rev-parse --verify HEAD:A/D) && - E=$(git rev-parse --verify HEAD:A/B/E) && - check_fsck && +expecting success of 0027.261 'compare_files LF NNO_attr_text_aeol__true_CRLF_mix_LF.txt': + compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt + +ok 261 - compare_files LF NNO_attr_text_aeol__true_CRLF_mix_LF.txt - test_chmod +x C && - git add C && - test_tick && git commit -m dragon && - L=$(git rev-parse --verify HEAD) && - check_fsck && +expecting success of 0027.262 'compare_files LF_mix_CR NNO_attr_text_aeol__true_LF_mix_CR.txt': + compare_files $lfmixcr ${pfx}_LF_mix_CR.txt + +ok 262 - compare_files LF_mix_CR NNO_attr_text_aeol__true_LF_mix_CR.txt - rm -f C A/B/E && - echo snake >F && - echo horse >A/G && - git add F A/G && - test_tick && git commit -a -m sheep && - F=$(git rev-parse --verify HEAD:F) && - G=$(git rev-parse --verify HEAD:A/G) && - I=$(git rev-parse --verify HEAD:A) && - J=$(git rev-parse --verify HEAD) && - check_fsck && +expecting success of 0027.263 'compare_files LF_nul NNO_attr_text_aeol__true_CRLF_nul.txt': + compare_files $crlfnul ${pfx}_CRLF_nul.txt + +ok 263 - compare_files LF_nul NNO_attr_text_aeol__true_CRLF_nul.txt - rm -f A/G && - test_tick && git commit -a -m monkey && - K=$(git rev-parse --verify HEAD) && - check_fsck && +expecting success of 0027.264 'compare_files LF NNO_attr_text_aeol_lf_true_LF.txt': + compare_files $lfname ${pfx}_LF.txt + +ok 264 - compare_files LF NNO_attr_text_aeol_lf_true_LF.txt - check_have A B C D E F G H I J K L && +expecting success of 0027.265 'compare_files LF NNO_attr_text_aeol_lf_true_CRLF.txt': + compare_files $crlfname ${pfx}_CRLF.txt + +ok 265 - compare_files LF NNO_attr_text_aeol_lf_true_CRLF.txt - git prune && +expecting success of 0027.266 'compare_files LF NNO_attr_text_aeol_lf_true_CRLF_mix_LF.txt': + compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt + +ok 266 - compare_files LF NNO_attr_text_aeol_lf_true_CRLF_mix_LF.txt - check_have A B C D E F G H I J K L && +expecting success of 0027.267 'compare_files LF_mix_CR NNO_attr_text_aeol_lf_true_LF_mix_CR.txt': + compare_files $lfmixcr ${pfx}_LF_mix_CR.txt + +ok 267 - compare_files LF_mix_CR NNO_attr_text_aeol_lf_true_LF_mix_CR.txt - check_fsck && +expecting success of 0027.268 'compare_files LF_nul NNO_attr_text_aeol_lf_true_CRLF_nul.txt': + compare_files $crlfnul ${pfx}_CRLF_nul.txt + +ok 268 - compare_files LF_nul NNO_attr_text_aeol_lf_true_CRLF_nul.txt - git reflog refs/heads/master >output && - test_line_count = 4 output +expecting success of 0027.269 'compare_files LF NNO_attr_text_aeol_crlf_true_LF.txt': + compare_files $lfname ${pfx}_LF.txt + +ok 269 - compare_files LF NNO_attr_text_aeol_crlf_true_LF.txt -[master (root-commit) 07fcc4f] rabbit - Author: A U Thor - 3 files changed, 3 insertions(+) - create mode 100644 A/B/E - create mode 100644 A/D - create mode 100644 C -[master 7d1a0b8] dragon - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - mode change 100644 => 100755 C -[master 15ab5f0] sheep - Author: A U Thor - 4 files changed, 2 insertions(+), 2 deletions(-) - delete mode 100644 A/B/E - create mode 100644 A/G - delete mode 100755 C - create mode 100644 F -[master 3ac530f] monkey - Author: A U Thor - 1 file changed, 1 deletion(-) - delete mode 100644 A/G -tree -tree -blob -blob -blob -blob -blob -commit -tree -commit -commit -commit -tree -tree -blob -blob -blob -blob -blob -commit -tree -commit -commit -commit -ok 1 - setup +expecting success of 0027.270 'compare_files LF NNO_attr_text_aeol_crlf_true_CRLF.txt': + compare_files $crlfname ${pfx}_CRLF.txt + +ok 270 - compare_files LF NNO_attr_text_aeol_crlf_true_CRLF.txt -expecting success of 1410.2 'rewind': - test_tick && git reset --hard HEAD~2 && - test -f C && - test -f A/B/E && - ! test -f F && - ! test -f A/G && +expecting success of 0027.271 'compare_files LF NNO_attr_text_aeol_crlf_true_CRLF_mix_LF.txt': + compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt + +ok 271 - compare_files LF NNO_attr_text_aeol_crlf_true_CRLF_mix_LF.txt - check_have A B C D E F G H I J K L && +expecting success of 0027.272 'compare_files LF_mix_CR NNO_attr_text_aeol_crlf_true_LF_mix_CR.txt': + compare_files $lfmixcr ${pfx}_LF_mix_CR.txt + +ok 272 - compare_files LF_mix_CR NNO_attr_text_aeol_crlf_true_LF_mix_CR.txt - git prune && +expecting success of 0027.273 'compare_files LF_nul NNO_attr_text_aeol_crlf_true_CRLF_nul.txt': + compare_files $crlfnul ${pfx}_CRLF_nul.txt + +ok 273 - compare_files LF_nul NNO_attr_text_aeol_crlf_true_CRLF_nul.txt - check_have A B C D E F G H I J K L && +expecting success of 0027.274 'compare_files LF NNO_attr__aeol__false_LF.txt': + compare_files $lfname ${pfx}_LF.txt + +ok 274 - compare_files LF NNO_attr__aeol__false_LF.txt - git reflog refs/heads/master >output && - test_line_count = 5 output +expecting success of 0027.275 'compare_files CRLF NNO_attr__aeol__false_CRLF.txt': + compare_files $crlfname ${pfx}_CRLF.txt + +ok 275 - compare_files CRLF NNO_attr__aeol__false_CRLF.txt -HEAD is now at 7d1a0b8 dragon -tree -tree -blob -blob -blob -blob -blob -commit -tree -commit -commit -commit -tree -tree -blob -blob -blob -blob -blob -commit -tree -commit -commit -commit -ok 2 - rewind +expecting success of 0027.276 'compare_files CRLF_mix_LF NNO_attr__aeol__false_CRLF_mix_LF.txt': + compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt + +ok 276 - compare_files CRLF_mix_LF NNO_attr__aeol__false_CRLF_mix_LF.txt -expecting success of 1410.3 'corrupt and check': +expecting success of 0027.277 'compare_files LF_mix_CR NNO_attr__aeol__false_LF_mix_CR.txt': + compare_files $lfmixcr ${pfx}_LF_mix_CR.txt + +ok 277 - compare_files LF_mix_CR NNO_attr__aeol__false_LF_mix_CR.txt - corrupt $F && - check_fsck "missing blob $F" +expecting success of 0027.278 'compare_files CRLF_nul NNO_attr__aeol__false_CRLF_nul.txt': + compare_files $crlfnul ${pfx}_CRLF_nul.txt + +ok 278 - compare_files CRLF_nul NNO_attr__aeol__false_CRLF_nul.txt +expecting success of 0027.279 'compare_files LF NNO_attr_-text_aeol__false_LF.txt': + compare_files $lfname ${pfx}_LF.txt + +ok 279 - compare_files LF NNO_attr_-text_aeol__false_LF.txt -checking prerequisite: C_LOCALE_OUTPUT +expecting success of 0027.280 'compare_files CRLF NNO_attr_-text_aeol__false_CRLF.txt': + compare_files $crlfname ${pfx}_CRLF.txt + +ok 280 - compare_files CRLF NNO_attr_-text_aeol__false_CRLF.txt -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false +expecting success of 0027.281 'compare_files CRLF_mix_LF NNO_attr_-text_aeol__false_CRLF_mix_LF.txt': + compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt + +ok 281 - compare_files CRLF_mix_LF NNO_attr_-text_aeol__false_CRLF_mix_LF.txt -) -prerequisite C_LOCALE_OUTPUT ok -missing blob 9ae84adb2704cbd49549e52169b4043871e13432 -ok 3 - corrupt and check +expecting success of 0027.282 'compare_files LF_mix_CR NNO_attr_-text_aeol__false_LF_mix_CR.txt': + compare_files $lfmixcr ${pfx}_LF_mix_CR.txt + +ok 282 - compare_files LF_mix_CR NNO_attr_-text_aeol__false_LF_mix_CR.txt -expecting success of 1410.4 'reflog expire --dry-run should not touch reflog': +expecting success of 0027.283 'compare_files CRLF_nul NNO_attr_-text_aeol__false_CRLF_nul.txt': + compare_files $crlfnul ${pfx}_CRLF_nul.txt + +ok 283 - compare_files CRLF_nul NNO_attr_-text_aeol__false_CRLF_nul.txt - git reflog expire --dry-run \ - --expire=$(($test_tick - 10000)) \ - --expire-unreachable=$(($test_tick - 10000)) \ - --stale-fix \ - --all && +expecting success of 0027.284 'compare_files LF NNO_attr_-text_aeol_lf_false_LF.txt': + compare_files $lfname ${pfx}_LF.txt + +ok 284 - compare_files LF NNO_attr_-text_aeol_lf_false_LF.txt - git reflog refs/heads/master >output && - test_line_count = 5 output && +expecting success of 0027.285 'compare_files CRLF NNO_attr_-text_aeol_lf_false_CRLF.txt': + compare_files $crlfname ${pfx}_CRLF.txt + +ok 285 - compare_files CRLF NNO_attr_-text_aeol_lf_false_CRLF.txt - check_fsck "missing blob $F" +expecting success of 0027.286 'compare_files CRLF_mix_LF NNO_attr_-text_aeol_lf_false_CRLF_mix_LF.txt': + compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt + +ok 286 - compare_files CRLF_mix_LF NNO_attr_-text_aeol_lf_false_CRLF_mix_LF.txt -would prune commit: sheep -would prune commit: monkey -would prune reset: moving to HEAD~2 -would prune commit: sheep -would prune commit: monkey -would prune reset: moving to HEAD~2 -missing blob 9ae84adb2704cbd49549e52169b4043871e13432 -ok 4 - reflog expire --dry-run should not touch reflog +expecting success of 0027.287 'compare_files LF_mix_CR NNO_attr_-text_aeol_lf_false_LF_mix_CR.txt': + compare_files $lfmixcr ${pfx}_LF_mix_CR.txt + +ok 287 - compare_files LF_mix_CR NNO_attr_-text_aeol_lf_false_LF_mix_CR.txt -expecting success of 1410.5 'reflog expire': +expecting success of 0027.288 'compare_files CRLF_nul NNO_attr_-text_aeol_lf_false_CRLF_nul.txt': + compare_files $crlfnul ${pfx}_CRLF_nul.txt + +ok 288 - compare_files CRLF_nul NNO_attr_-text_aeol_lf_false_CRLF_nul.txt - git reflog expire --verbose \ - --expire=$(($test_tick - 10000)) \ - --expire-unreachable=$(($test_tick - 10000)) \ - --stale-fix \ - --all && +expecting success of 0027.289 'compare_files LF NNO_attr_-text_aeol_crlf_false_LF.txt': + compare_files $lfname ${pfx}_LF.txt + +ok 289 - compare_files LF NNO_attr_-text_aeol_crlf_false_LF.txt - git reflog refs/heads/master >output && - test_line_count = 2 output && +expecting success of 0027.290 'compare_files CRLF NNO_attr_-text_aeol_crlf_false_CRLF.txt': + compare_files $crlfname ${pfx}_CRLF.txt + +ok 290 - compare_files CRLF NNO_attr_-text_aeol_crlf_false_CRLF.txt - check_fsck "dangling commit $K" +expecting success of 0027.291 'compare_files CRLF_mix_LF NNO_attr_-text_aeol_crlf_false_CRLF_mix_LF.txt': + compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt + +ok 291 - compare_files CRLF_mix_LF NNO_attr_-text_aeol_crlf_false_CRLF_mix_LF.txt -Marking reachable objects... -keep commit (initial): rabbit -keep commit: dragon -prune commit: sheep -prune commit: monkey -prune reset: moving to HEAD~2 -keep commit (initial): rabbit -keep commit: dragon -prune commit: sheep -prune commit: monkey -prune reset: moving to HEAD~2 -dangling commit 3ac530f2f6c3a45206a6b2d455baf89d1c8f672d -ok 5 - reflog expire +expecting success of 0027.292 'compare_files LF_mix_CR NNO_attr_-text_aeol_crlf_false_LF_mix_CR.txt': + compare_files $lfmixcr ${pfx}_LF_mix_CR.txt + +ok 292 - compare_files LF_mix_CR NNO_attr_-text_aeol_crlf_false_LF_mix_CR.txt -expecting success of 1410.6 'prune and fsck': +expecting success of 0027.293 'compare_files CRLF_nul NNO_attr_-text_aeol_crlf_false_CRLF_nul.txt': + compare_files $crlfnul ${pfx}_CRLF_nul.txt + +ok 293 - compare_files CRLF_nul NNO_attr_-text_aeol_crlf_false_CRLF_nul.txt - git prune && - check_fsck && +expecting success of 0027.294 'compare_files LF NNO_attr_auto_aeol__false_LF.txt': + compare_files $lfname ${pfx}_LF.txt + +ok 294 - compare_files LF NNO_attr_auto_aeol__false_LF.txt - check_have A B C D E H L && - check_dont_have F G I J K +expecting success of 0027.295 'compare_files CRLF NNO_attr_auto_aeol__false_CRLF.txt': + compare_files $crlfname ${pfx}_CRLF.txt + +ok 295 - compare_files CRLF NNO_attr_auto_aeol__false_CRLF.txt +expecting success of 0027.296 'compare_files CRLF_mix_LF NNO_attr_auto_aeol__false_CRLF_mix_LF.txt': + compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt + +ok 296 - compare_files CRLF_mix_LF NNO_attr_auto_aeol__false_CRLF_mix_LF.txt -tree -tree -blob -blob -blob -commit -commit -fatal: git cat-file: could not get object info -fatal: git cat-file: could not get object info -fatal: git cat-file: could not get object info -fatal: git cat-file: could not get object info -fatal: git cat-file: could not get object info -ok 6 - prune and fsck +expecting success of 0027.297 'compare_files LF_mix_CR NNO_attr_auto_aeol__false_LF_mix_CR.txt': + compare_files $lfmixcr ${pfx}_LF_mix_CR.txt + +ok 297 - compare_files LF_mix_CR NNO_attr_auto_aeol__false_LF_mix_CR.txt -expecting success of 1410.7 'recover and check': +expecting success of 0027.298 'compare_files CRLF_nul NNO_attr_auto_aeol__false_CRLF_nul.txt': + compare_files $crlfnul ${pfx}_CRLF_nul.txt + +ok 298 - compare_files CRLF_nul NNO_attr_auto_aeol__false_CRLF_nul.txt - recover $F && - check_fsck "dangling blob $F" +expecting success of 0027.299 'compare_files LF NNO_attr_auto_aeol_lf_false_LF.txt': + compare_files $lfname ${pfx}_LF.txt + +ok 299 - compare_files LF NNO_attr_auto_aeol_lf_false_LF.txt +expecting success of 0027.300 'compare_files CRLF NNO_attr_auto_aeol_lf_false_CRLF.txt': + compare_files $crlfname ${pfx}_CRLF.txt + +ok 300 - compare_files CRLF NNO_attr_auto_aeol_lf_false_CRLF.txt -dangling blob 9ae84adb2704cbd49549e52169b4043871e13432 -ok 7 - recover and check +expecting success of 0027.301 'compare_files CRLF_mix_LF NNO_attr_auto_aeol_lf_false_CRLF_mix_LF.txt': + compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt + +ok 301 - compare_files CRLF_mix_LF NNO_attr_auto_aeol_lf_false_CRLF_mix_LF.txt -expecting success of 1410.8 'delete': - echo 1 > C && - test_tick && - git commit -m rat C && +expecting success of 0027.302 'compare_files LF_mix_CR NNO_attr_auto_aeol_lf_false_LF_mix_CR.txt': + compare_files $lfmixcr ${pfx}_LF_mix_CR.txt + +ok 302 - compare_files LF_mix_CR NNO_attr_auto_aeol_lf_false_LF_mix_CR.txt - echo 2 > C && - test_tick && - git commit -m ox C && +expecting success of 0027.303 'compare_files CRLF_nul NNO_attr_auto_aeol_lf_false_CRLF_nul.txt': + compare_files $crlfnul ${pfx}_CRLF_nul.txt + +ok 303 - compare_files CRLF_nul NNO_attr_auto_aeol_lf_false_CRLF_nul.txt - echo 3 > C && - test_tick && - git commit -m tiger C && +expecting success of 0027.304 'compare_files LF NNO_attr_auto_aeol_crlf_false_LF.txt': + compare_files $lfname ${pfx}_LF.txt + +ok 304 - compare_files LF NNO_attr_auto_aeol_crlf_false_LF.txt - HEAD_entry_count=$(git reflog | wc -l) && - master_entry_count=$(git reflog show master | wc -l) && +expecting success of 0027.305 'compare_files CRLF NNO_attr_auto_aeol_crlf_false_CRLF.txt': + compare_files $crlfname ${pfx}_CRLF.txt + +ok 305 - compare_files CRLF NNO_attr_auto_aeol_crlf_false_CRLF.txt - test $HEAD_entry_count = 5 && - test $master_entry_count = 5 && +expecting success of 0027.306 'compare_files CRLF_mix_LF NNO_attr_auto_aeol_crlf_false_CRLF_mix_LF.txt': + compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt + +ok 306 - compare_files CRLF_mix_LF NNO_attr_auto_aeol_crlf_false_CRLF_mix_LF.txt +expecting success of 0027.307 'compare_files LF_mix_CR NNO_attr_auto_aeol_crlf_false_LF_mix_CR.txt': + compare_files $lfmixcr ${pfx}_LF_mix_CR.txt + +ok 307 - compare_files LF_mix_CR NNO_attr_auto_aeol_crlf_false_LF_mix_CR.txt - git reflog delete master@{1} && - git reflog show master > output && - test_line_count = $(($master_entry_count - 1)) output && - test $HEAD_entry_count = $(git reflog | wc -l) && - ! grep ox < output && +expecting success of 0027.308 'compare_files CRLF_nul NNO_attr_auto_aeol_crlf_false_CRLF_nul.txt': + compare_files $crlfnul ${pfx}_CRLF_nul.txt + +ok 308 - compare_files CRLF_nul NNO_attr_auto_aeol_crlf_false_CRLF_nul.txt - master_entry_count=$(wc -l < output) && +expecting success of 0027.309 'compare_files LF NNO_attr_text_aeol__false_LF.txt': + compare_files $lfname ${pfx}_LF.txt + +ok 309 - compare_files LF NNO_attr_text_aeol__false_LF.txt - git reflog delete HEAD@{1} && - test $(($HEAD_entry_count -1)) = $(git reflog | wc -l) && - test $master_entry_count = $(git reflog show master | wc -l) && +expecting success of 0027.310 'compare_files LF NNO_attr_text_aeol__false_CRLF.txt': + compare_files $crlfname ${pfx}_CRLF.txt + +ok 310 - compare_files LF NNO_attr_text_aeol__false_CRLF.txt - HEAD_entry_count=$(git reflog | wc -l) && +expecting success of 0027.311 'compare_files LF NNO_attr_text_aeol__false_CRLF_mix_LF.txt': + compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt + +ok 311 - compare_files LF NNO_attr_text_aeol__false_CRLF_mix_LF.txt - git reflog delete master@{07.04.2005.15:15:00.-0700} && - git reflog show master > output && - test_line_count = $(($master_entry_count - 1)) output && - ! grep dragon < output +expecting success of 0027.312 'compare_files LF_mix_CR NNO_attr_text_aeol__false_LF_mix_CR.txt': + compare_files $lfmixcr ${pfx}_LF_mix_CR.txt + +ok 312 - compare_files LF_mix_CR NNO_attr_text_aeol__false_LF_mix_CR.txt +expecting success of 0027.313 'compare_files LF_nul NNO_attr_text_aeol__false_CRLF_nul.txt': + compare_files $crlfnul ${pfx}_CRLF_nul.txt + +ok 313 - compare_files LF_nul NNO_attr_text_aeol__false_CRLF_nul.txt -[master b60a214] rat - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -[master 9908ef9] ox - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -[master b93561f] tiger - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -ok 8 - delete +expecting success of 0027.314 'compare_files LF NNO_attr_text_aeol_lf_false_LF.txt': + compare_files $lfname ${pfx}_LF.txt + +ok 314 - compare_files LF NNO_attr_text_aeol_lf_false_LF.txt -expecting success of 1410.9 'rewind2': +expecting success of 0027.315 'compare_files LF NNO_attr_text_aeol_lf_false_CRLF.txt': + compare_files $crlfname ${pfx}_CRLF.txt + +ok 315 - compare_files LF NNO_attr_text_aeol_lf_false_CRLF.txt - test_tick && git reset --hard HEAD~2 && - git reflog refs/heads/master >output && - test_line_count = 4 output +expecting success of 0027.316 'compare_files LF NNO_attr_text_aeol_lf_false_CRLF_mix_LF.txt': + compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt + +ok 316 - compare_files LF NNO_attr_text_aeol_lf_false_CRLF_mix_LF.txt -HEAD is now at b60a214 rat -ok 9 - rewind2 +expecting success of 0027.317 'compare_files LF_mix_CR NNO_attr_text_aeol_lf_false_LF_mix_CR.txt': + compare_files $lfmixcr ${pfx}_LF_mix_CR.txt + +ok 317 - compare_files LF_mix_CR NNO_attr_text_aeol_lf_false_LF_mix_CR.txt -expecting success of 1410.10 '--expire=never': +expecting success of 0027.318 'compare_files LF_nul NNO_attr_text_aeol_lf_false_CRLF_nul.txt': + compare_files $crlfnul ${pfx}_CRLF_nul.txt + +ok 318 - compare_files LF_nul NNO_attr_text_aeol_lf_false_CRLF_nul.txt - git reflog expire --verbose \ - --expire=never \ - --expire-unreachable=never \ - --all && - git reflog refs/heads/master >output && - test_line_count = 4 output +expecting success of 0027.319 'compare_files LF NNO_attr_text_aeol_crlf_false_LF.txt': + compare_files $lfname ${pfx}_LF.txt + +ok 319 - compare_files LF NNO_attr_text_aeol_crlf_false_LF.txt -keep commit (initial): rabbit -keep commit: dragon -keep commit: rat -keep commit: tiger -keep reset: moving to HEAD~2 -keep commit (initial): rabbit -keep commit: rat -keep commit: tiger -keep reset: moving to HEAD~2 -ok 10 - --expire=never +expecting success of 0027.320 'compare_files LF NNO_attr_text_aeol_crlf_false_CRLF.txt': + compare_files $crlfname ${pfx}_CRLF.txt + +ok 320 - compare_files LF NNO_attr_text_aeol_crlf_false_CRLF.txt -expecting success of 1410.11 'gc.reflogexpire=never': - test_config gc.reflogexpire never && - test_config gc.reflogexpireunreachable never && +expecting success of 0027.321 'compare_files LF NNO_attr_text_aeol_crlf_false_CRLF_mix_LF.txt': + compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt + +ok 321 - compare_files LF NNO_attr_text_aeol_crlf_false_CRLF_mix_LF.txt - git reflog expire --verbose --all >output && - test_line_count = 9 output && +expecting success of 0027.322 'compare_files LF_mix_CR NNO_attr_text_aeol_crlf_false_LF_mix_CR.txt': + compare_files $lfmixcr ${pfx}_LF_mix_CR.txt + +ok 322 - compare_files LF_mix_CR NNO_attr_text_aeol_crlf_false_LF_mix_CR.txt - git reflog refs/heads/master >output && - test_line_count = 4 output +expecting success of 0027.323 'compare_files LF_nul NNO_attr_text_aeol_crlf_false_CRLF_nul.txt': + compare_files $crlfnul ${pfx}_CRLF_nul.txt + +ok 323 - compare_files LF_nul NNO_attr_text_aeol_crlf_false_CRLF_nul.txt -ok 11 - gc.reflogexpire=never +expecting success of 0027.324 'compare_files LF NNO_attr__aeol__input_LF.txt': + compare_files $lfname ${pfx}_LF.txt + +ok 324 - compare_files LF NNO_attr__aeol__input_LF.txt -expecting success of 1410.12 'gc.reflogexpire=false': - test_config gc.reflogexpire false && - test_config gc.reflogexpireunreachable false && +expecting success of 0027.325 'compare_files CRLF NNO_attr__aeol__input_CRLF.txt': + compare_files $crlfname ${pfx}_CRLF.txt + +ok 325 - compare_files CRLF NNO_attr__aeol__input_CRLF.txt - git reflog expire --verbose --all && - git reflog refs/heads/master >output && - test_line_count = 4 output +expecting success of 0027.326 'compare_files CRLF_mix_LF NNO_attr__aeol__input_CRLF_mix_LF.txt': + compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt + +ok 326 - compare_files CRLF_mix_LF NNO_attr__aeol__input_CRLF_mix_LF.txt +expecting success of 0027.327 'compare_files LF_mix_CR NNO_attr__aeol__input_LF_mix_CR.txt': + compare_files $lfmixcr ${pfx}_LF_mix_CR.txt + +ok 327 - compare_files LF_mix_CR NNO_attr__aeol__input_LF_mix_CR.txt -keep commit (initial): rabbit -keep commit: dragon -keep commit: rat -keep commit: tiger -keep reset: moving to HEAD~2 -keep commit (initial): rabbit -keep commit: rat -keep commit: tiger -keep reset: moving to HEAD~2 -ok 12 - gc.reflogexpire=false +expecting success of 0027.328 'compare_files CRLF_nul NNO_attr__aeol__input_CRLF_nul.txt': + compare_files $crlfnul ${pfx}_CRLF_nul.txt + +ok 328 - compare_files CRLF_nul NNO_attr__aeol__input_CRLF_nul.txt -expecting success of 1410.13 'git reflog expire unknown reference': - test_config gc.reflogexpire never && - test_config gc.reflogexpireunreachable never && +expecting success of 0027.329 'compare_files LF NNO_attr_-text_aeol__input_LF.txt': + compare_files $lfname ${pfx}_LF.txt + +ok 329 - compare_files LF NNO_attr_-text_aeol__input_LF.txt - test_must_fail git reflog expire master@{123} 2>stderr && - test_i18ngrep "points nowhere" stderr && - test_must_fail git reflog expire does-not-exist 2>stderr && - test_i18ngrep "points nowhere" stderr +expecting success of 0027.330 'compare_files CRLF NNO_attr_-text_aeol__input_CRLF.txt': + compare_files $crlfname ${pfx}_CRLF.txt + +ok 330 - compare_files CRLF NNO_attr_-text_aeol__input_CRLF.txt -error: master@{123} points nowhere! -error: does-not-exist points nowhere! -ok 13 - git reflog expire unknown reference +expecting success of 0027.331 'compare_files CRLF_mix_LF NNO_attr_-text_aeol__input_CRLF_mix_LF.txt': + compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt + +ok 331 - compare_files CRLF_mix_LF NNO_attr_-text_aeol__input_CRLF_mix_LF.txt -expecting success of 1410.14 'checkout should not delete log for packed ref': - test $(git reflog master | wc -l) = 4 && - git branch foo && - git pack-refs --all && - git checkout foo && - test $(git reflog master | wc -l) = 4 +expecting success of 0027.332 'compare_files LF_mix_CR NNO_attr_-text_aeol__input_LF_mix_CR.txt': + compare_files $lfmixcr ${pfx}_LF_mix_CR.txt + +ok 332 - compare_files LF_mix_CR NNO_attr_-text_aeol__input_LF_mix_CR.txt -Switched to branch 'foo' -ok 14 - checkout should not delete log for packed ref +expecting success of 0027.333 'compare_files CRLF_nul NNO_attr_-text_aeol__input_CRLF_nul.txt': + compare_files $crlfnul ${pfx}_CRLF_nul.txt + +ok 333 - compare_files CRLF_nul NNO_attr_-text_aeol__input_CRLF_nul.txt -expecting success of 1410.15 'stale dirs do not cause d/f conflicts (reflogs on)': - test_when_finished "git branch -d one || git branch -d one/two" && +expecting success of 0027.334 'compare_files LF NNO_attr_-text_aeol_lf_input_LF.txt': + compare_files $lfname ${pfx}_LF.txt + +ok 334 - compare_files LF NNO_attr_-text_aeol_lf_input_LF.txt - git branch one/two master && - echo "one/two@{0} branch: Created from master" >expect && - git log -g --format="%gd %gs" one/two >actual && - test_cmp expect actual && - git branch -d one/two && +expecting success of 0027.335 'compare_files CRLF NNO_attr_-text_aeol_lf_input_CRLF.txt': + compare_files $crlfname ${pfx}_CRLF.txt + +ok 335 - compare_files CRLF NNO_attr_-text_aeol_lf_input_CRLF.txt - # now logs/refs/heads/one is a stale directory, but - # we should move it out of the way to create "one" reflog - git branch one master && - echo "one@{0} branch: Created from master" >expect && - git log -g --format="%gd %gs" one >actual && - test_cmp expect actual +expecting success of 0027.336 'compare_files CRLF_mix_LF NNO_attr_-text_aeol_lf_input_CRLF_mix_LF.txt': + compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt + +ok 336 - compare_files CRLF_mix_LF NNO_attr_-text_aeol_lf_input_CRLF_mix_LF.txt -Deleted branch one/two (was b60a214). -Deleted branch one (was b60a214). -ok 15 - stale dirs do not cause d/f conflicts (reflogs on) +expecting success of 0027.337 'compare_files LF_mix_CR NNO_attr_-text_aeol_lf_input_LF_mix_CR.txt': + compare_files $lfmixcr ${pfx}_LF_mix_CR.txt + +ok 337 - compare_files LF_mix_CR NNO_attr_-text_aeol_lf_input_LF_mix_CR.txt -expecting success of 1410.16 'stale dirs do not cause d/f conflicts (reflogs off)': - test_when_finished "git branch -d one || git branch -d one/two" && +expecting success of 0027.338 'compare_files CRLF_nul NNO_attr_-text_aeol_lf_input_CRLF_nul.txt': + compare_files $crlfnul ${pfx}_CRLF_nul.txt + +ok 338 - compare_files CRLF_nul NNO_attr_-text_aeol_lf_input_CRLF_nul.txt - git branch one/two master && - echo "one/two@{0} branch: Created from master" >expect && - git log -g --format="%gd %gs" one/two >actual && - test_cmp expect actual && - git branch -d one/two && +expecting success of 0027.339 'compare_files LF NNO_attr_-text_aeol_crlf_input_LF.txt': + compare_files $lfname ${pfx}_LF.txt + +ok 339 - compare_files LF NNO_attr_-text_aeol_crlf_input_LF.txt - # same as before, but we only create a reflog for "one" if - # it already exists, which it does not - git -c core.logallrefupdates=false branch one master && - git log -g --format="%gd %gs" one >actual && - test_must_be_empty actual +expecting success of 0027.340 'compare_files CRLF NNO_attr_-text_aeol_crlf_input_CRLF.txt': + compare_files $crlfname ${pfx}_CRLF.txt + +ok 340 - compare_files CRLF NNO_attr_-text_aeol_crlf_input_CRLF.txt -Deleted branch one/two (was b60a214). -Deleted branch one (was b60a214). -ok 16 - stale dirs do not cause d/f conflicts (reflogs off) +expecting success of 0027.341 'compare_files CRLF_mix_LF NNO_attr_-text_aeol_crlf_input_CRLF_mix_LF.txt': + compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt + +ok 341 - compare_files CRLF_mix_LF NNO_attr_-text_aeol_crlf_input_CRLF_mix_LF.txt -checking prerequisite: SHA1 +expecting success of 0027.342 'compare_files LF_mix_CR NNO_attr_-text_aeol_crlf_input_LF_mix_CR.txt': + compare_files $lfmixcr ${pfx}_LF_mix_CR.txt + +ok 342 - compare_files LF_mix_CR NNO_attr_-text_aeol_crlf_input_LF_mix_CR.txt -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SHA1" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-SHA1" && - case "$GIT_DEFAULT_HASH" in - sha1) true ;; - "") test $(git hash-object /dev/null) = e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 ;; - *) false ;; - esac +expecting success of 0027.343 'compare_files CRLF_nul NNO_attr_-text_aeol_crlf_input_CRLF_nul.txt': + compare_files $crlfnul ${pfx}_CRLF_nul.txt + +ok 343 - compare_files CRLF_nul NNO_attr_-text_aeol_crlf_input_CRLF_nul.txt -) -prerequisite SHA1 ok -expecting success of 1410.17 'parsing reverse reflogs at BUFSIZ boundaries': - git checkout -b reflogskip && - zf=$(test_oid zero_2) && - ident="abc 0000000001 +0000" && - for i in $(test_seq 1 75); do - printf "$zf%02d $zf%02d %s\t" $i $(($i+1)) "$ident" && - if test $i = 75; then - for j in $(test_seq 1 89); do - printf X - done - else - printf X - fi && - printf "\n" - done >.git/logs/refs/heads/reflogskip && - git rev-parse reflogskip@{73} >actual && - echo ${zf}03 >expect && - test_cmp expect actual +expecting success of 0027.344 'compare_files LF NNO_attr_auto_aeol__input_LF.txt': + compare_files $lfname ${pfx}_LF.txt + +ok 344 - compare_files LF NNO_attr_auto_aeol__input_LF.txt -Switched to a new branch 'reflogskip' -ok 17 - parsing reverse reflogs at BUFSIZ boundaries +expecting success of 0027.345 'compare_files CRLF NNO_attr_auto_aeol__input_CRLF.txt': + compare_files $crlfname ${pfx}_CRLF.txt + +ok 345 - compare_files CRLF NNO_attr_auto_aeol__input_CRLF.txt -expecting success of 1410.18 'no segfaults for reflog containing non-commit sha1s': - git update-ref --create-reflog -m "Creating ref" \ - refs/tests/tree-in-reflog HEAD && - git update-ref -m "Forcing tree" refs/tests/tree-in-reflog HEAD^{tree} && - git update-ref -m "Restoring to commit" refs/tests/tree-in-reflog HEAD && - git reflog refs/tests/tree-in-reflog +expecting success of 0027.346 'compare_files CRLF_mix_LF NNO_attr_auto_aeol__input_CRLF_mix_LF.txt': + compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt + +ok 346 - compare_files CRLF_mix_LF NNO_attr_auto_aeol__input_CRLF_mix_LF.txt -b60a214 refs/tests/tree-in-reflog@{0}: Restoring to commit -b60a214 refs/tests/tree-in-reflog@{2}: Creating ref -ok 18 - no segfaults for reflog containing non-commit sha1s +expecting success of 0027.347 'compare_files LF_mix_CR NNO_attr_auto_aeol__input_LF_mix_CR.txt': + compare_files $lfmixcr ${pfx}_LF_mix_CR.txt + +ok 347 - compare_files LF_mix_CR NNO_attr_auto_aeol__input_LF_mix_CR.txt -checking known breakage of 1410.19 'reflog with non-commit entries displays all entries': - git reflog refs/tests/tree-in-reflog >actual && - test_line_count = 3 actual +expecting success of 0027.348 'compare_files CRLF_nul NNO_attr_auto_aeol__input_CRLF_nul.txt': + compare_files $crlfnul ${pfx}_CRLF_nul.txt + +ok 348 - compare_files CRLF_nul NNO_attr_auto_aeol__input_CRLF_nul.txt -test_line_count: line count for actual != 3 -b60a214 refs/tests/tree-in-reflog@{0}: Restoring to commit -b60a214 refs/tests/tree-in-reflog@{2}: Creating ref -not ok 19 - reflog with non-commit entries displays all entries # TODO known breakage +expecting success of 0027.349 'compare_files LF NNO_attr_auto_aeol_lf_input_LF.txt': + compare_files $lfname ${pfx}_LF.txt + +ok 349 - compare_files LF NNO_attr_auto_aeol_lf_input_LF.txt -expecting success of 1410.20 'reflog expire operates on symref not referrent': - git branch --create-reflog the_symref && - git branch --create-reflog referrent && - git update-ref referrent HEAD && - git symbolic-ref refs/heads/the_symref refs/heads/referrent && - test_when_finished "rm -f .git/refs/heads/referrent.lock" && - touch .git/refs/heads/referrent.lock && - git reflog expire --expire=all the_symref +expecting success of 0027.350 'compare_files CRLF NNO_attr_auto_aeol_lf_input_CRLF.txt': + compare_files $crlfname ${pfx}_CRLF.txt + +ok 350 - compare_files CRLF NNO_attr_auto_aeol_lf_input_CRLF.txt -ok 20 - reflog expire operates on symref not referrent +expecting success of 0027.351 'compare_files CRLF_mix_LF NNO_attr_auto_aeol_lf_input_CRLF_mix_LF.txt': + compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt + +ok 351 - compare_files CRLF_mix_LF NNO_attr_auto_aeol_lf_input_CRLF_mix_LF.txt -expecting success of 1410.21 'continue walking past root commits': - git init orphanage && - ( - cd orphanage && - cat >expect <<-\EOF && - HEAD@{0} commit (initial): orphan2-1 - HEAD@{1} commit: orphan1-2 - HEAD@{2} commit (initial): orphan1-1 - HEAD@{3} commit (initial): initial - EOF - test_commit initial && - git checkout --orphan orphan1 && - test_commit orphan1-1 && - test_commit orphan1-2 && - git checkout --orphan orphan2 && - test_commit orphan2-1 && - git log -g --format="%gd %gs" >actual && - test_cmp expect actual - ) +expecting success of 0027.352 'compare_files LF_mix_CR NNO_attr_auto_aeol_lf_input_LF_mix_CR.txt': + compare_files $lfmixcr ${pfx}_LF_mix_CR.txt + +ok 352 - compare_files LF_mix_CR NNO_attr_auto_aeol_lf_input_LF_mix_CR.txt -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1410-reflog/orphanage/.git/ -[master (root-commit) 2aabd22] initial - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 initial.t -Switched to a new branch 'orphan1' -[orphan1 (root-commit) e2a0da2] orphan1-1 - Author: A U Thor - 2 files changed, 2 insertions(+) - create mode 100644 initial.t - create mode 100644 orphan1-1.t -[orphan1 9bdda66] orphan1-2 - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 orphan1-2.t -Switched to a new branch 'orphan2' -[orphan2 (root-commit) b47ea8f] orphan2-1 - Author: A U Thor - 4 files changed, 4 insertions(+) - create mode 100644 initial.t - create mode 100644 orphan1-1.t - create mode 100644 orphan1-2.t - create mode 100644 orphan2-1.t -ok 21 - continue walking past root commits +expecting success of 0027.353 'compare_files CRLF_nul NNO_attr_auto_aeol_lf_input_CRLF_nul.txt': + compare_files $crlfnul ${pfx}_CRLF_nul.txt + +ok 353 - compare_files CRLF_nul NNO_attr_auto_aeol_lf_input_CRLF_nul.txt -expecting success of 1410.22 'expire with multiple worktrees': - git init main-wt && - ( - cd main-wt && - test_tick && - test_commit foo && - git worktree add link-wt && - test_tick && - test_commit -C link-wt foobar && - test_tick && - git reflog expire --verbose --all --expire=$test_tick && - test_must_be_empty .git/worktrees/link-wt/logs/HEAD - ) +expecting success of 0027.354 'compare_files LF NNO_attr_auto_aeol_crlf_input_LF.txt': + compare_files $lfname ${pfx}_LF.txt + +ok 354 - compare_files LF NNO_attr_auto_aeol_crlf_input_LF.txt -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1410-reflog/main-wt/.git/ -[master (root-commit) af4983b] foo - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 foo.t -Preparing worktree (new branch 'link-wt') -HEAD is now at af4983b foo -[link-wt 7368abb] foobar - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 foobar.t -prune commit (initial): foo -prune branch: Created from HEAD -prune commit: foobar -prune commit (initial): foo -prune -prune reset: moving to HEAD -prune commit: foobar -ok 22 - expire with multiple worktrees +expecting success of 0027.355 'compare_files CRLF NNO_attr_auto_aeol_crlf_input_CRLF.txt': + compare_files $crlfname ${pfx}_CRLF.txt + +ok 355 - compare_files CRLF NNO_attr_auto_aeol_crlf_input_CRLF.txt -# still have 1 known breakage(s) -# passed all remaining 21 test(s) -1..22 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1415-worktree-refs.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1415-worktree-refs/.git/ -expecting success of 1415.1 'setup': - test_commit initial && - test_commit wt1 && - test_commit wt2 && - git worktree add wt1 wt1 && - git worktree add wt2 wt2 && - git checkout initial && - git update-ref refs/worktree/foo HEAD && - git -C wt1 update-ref refs/worktree/foo HEAD && - git -C wt2 update-ref refs/worktree/foo HEAD +expecting success of 0027.356 'compare_files CRLF_mix_LF NNO_attr_auto_aeol_crlf_input_CRLF_mix_LF.txt': + compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt + +ok 356 - compare_files CRLF_mix_LF NNO_attr_auto_aeol_crlf_input_CRLF_mix_LF.txt -[master (root-commit) 24b24cf] initial - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 initial.t -[master 42fba42] wt1 - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 wt1.t -[master 83df652] wt2 - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 wt2.t -Preparing worktree (detached HEAD 42fba42) -HEAD is now at 42fba42 wt1 -Preparing worktree (detached HEAD 83df652) -HEAD is now at 83df652 wt2 -Note: switching to 'initial'. +expecting success of 0027.357 'compare_files LF_mix_CR NNO_attr_auto_aeol_crlf_input_LF_mix_CR.txt': + compare_files $lfmixcr ${pfx}_LF_mix_CR.txt + +ok 357 - compare_files LF_mix_CR NNO_attr_auto_aeol_crlf_input_LF_mix_CR.txt -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. +expecting success of 0027.358 'compare_files CRLF_nul NNO_attr_auto_aeol_crlf_input_CRLF_nul.txt': + compare_files $crlfnul ${pfx}_CRLF_nul.txt + +ok 358 - compare_files CRLF_nul NNO_attr_auto_aeol_crlf_input_CRLF_nul.txt -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: +expecting success of 0027.359 'compare_files LF NNO_attr_text_aeol__input_LF.txt': + compare_files $lfname ${pfx}_LF.txt + +ok 359 - compare_files LF NNO_attr_text_aeol__input_LF.txt - git switch -c +expecting success of 0027.360 'compare_files LF NNO_attr_text_aeol__input_CRLF.txt': + compare_files $crlfname ${pfx}_CRLF.txt + +ok 360 - compare_files LF NNO_attr_text_aeol__input_CRLF.txt -Or undo this operation with: +expecting success of 0027.361 'compare_files LF NNO_attr_text_aeol__input_CRLF_mix_LF.txt': + compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt + +ok 361 - compare_files LF NNO_attr_text_aeol__input_CRLF_mix_LF.txt - git switch - +expecting success of 0027.362 'compare_files LF_mix_CR NNO_attr_text_aeol__input_LF_mix_CR.txt': + compare_files $lfmixcr ${pfx}_LF_mix_CR.txt + +ok 362 - compare_files LF_mix_CR NNO_attr_text_aeol__input_LF_mix_CR.txt -Turn off this advice by setting config variable advice.detachedHead to false +expecting success of 0027.363 'compare_files LF_nul NNO_attr_text_aeol__input_CRLF_nul.txt': + compare_files $crlfnul ${pfx}_CRLF_nul.txt + +ok 363 - compare_files LF_nul NNO_attr_text_aeol__input_CRLF_nul.txt -HEAD is now at 24b24cf initial -ok 1 - setup +expecting success of 0027.364 'compare_files LF NNO_attr_text_aeol_lf_input_LF.txt': + compare_files $lfname ${pfx}_LF.txt + +ok 364 - compare_files LF NNO_attr_text_aeol_lf_input_LF.txt -expecting success of 1415.2 'refs/worktree must not be packed': - git pack-refs --all && - test_path_is_missing .git/refs/tags/wt1 && - test_path_is_file .git/refs/worktree/foo && - test_path_is_file .git/worktrees/wt1/refs/worktree/foo && - test_path_is_file .git/worktrees/wt2/refs/worktree/foo +expecting success of 0027.365 'compare_files LF NNO_attr_text_aeol_lf_input_CRLF.txt': + compare_files $crlfname ${pfx}_CRLF.txt + +ok 365 - compare_files LF NNO_attr_text_aeol_lf_input_CRLF.txt -ok 2 - refs/worktree must not be packed +expecting success of 0027.366 'compare_files LF NNO_attr_text_aeol_lf_input_CRLF_mix_LF.txt': + compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt + +ok 366 - compare_files LF NNO_attr_text_aeol_lf_input_CRLF_mix_LF.txt -expecting success of 1415.3 'refs/worktree are per-worktree': - test_cmp_rev worktree/foo initial && - ( cd wt1 && test_cmp_rev worktree/foo wt1 ) && - ( cd wt2 && test_cmp_rev worktree/foo wt2 ) +expecting success of 0027.367 'compare_files LF_mix_CR NNO_attr_text_aeol_lf_input_LF_mix_CR.txt': + compare_files $lfmixcr ${pfx}_LF_mix_CR.txt + +ok 367 - compare_files LF_mix_CR NNO_attr_text_aeol_lf_input_LF_mix_CR.txt -ok 3 - refs/worktree are per-worktree +expecting success of 0027.368 'compare_files LF_nul NNO_attr_text_aeol_lf_input_CRLF_nul.txt': + compare_files $crlfnul ${pfx}_CRLF_nul.txt + +ok 368 - compare_files LF_nul NNO_attr_text_aeol_lf_input_CRLF_nul.txt -expecting success of 1415.4 'resolve main-worktree/HEAD': - test_cmp_rev main-worktree/HEAD initial && - ( cd wt1 && test_cmp_rev main-worktree/HEAD initial ) && - ( cd wt2 && test_cmp_rev main-worktree/HEAD initial ) +expecting success of 0027.369 'compare_files LF NNO_attr_text_aeol_crlf_input_LF.txt': + compare_files $lfname ${pfx}_LF.txt + +ok 369 - compare_files LF NNO_attr_text_aeol_crlf_input_LF.txt -ok 4 - resolve main-worktree/HEAD +expecting success of 0027.370 'compare_files LF NNO_attr_text_aeol_crlf_input_CRLF.txt': + compare_files $crlfname ${pfx}_CRLF.txt + +ok 370 - compare_files LF NNO_attr_text_aeol_crlf_input_CRLF.txt -expecting success of 1415.5 'ambiguous main-worktree/HEAD': - mkdir -p .git/refs/heads/main-worktree && - test_when_finished rm -f .git/refs/heads/main-worktree/HEAD && - cp .git/HEAD .git/refs/heads/main-worktree/HEAD && - git rev-parse main-worktree/HEAD 2>warn && - grep "main-worktree/HEAD.*ambiguous" warn +expecting success of 0027.371 'compare_files LF NNO_attr_text_aeol_crlf_input_CRLF_mix_LF.txt': + compare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt + +ok 371 - compare_files LF NNO_attr_text_aeol_crlf_input_CRLF_mix_LF.txt -24b24cf8a829f5b8c30dfc018b0a459a2ccaf380 -warning: refname 'main-worktree/HEAD' is ambiguous. -ok 5 - ambiguous main-worktree/HEAD +expecting success of 0027.372 'compare_files LF_mix_CR NNO_attr_text_aeol_crlf_input_LF_mix_CR.txt': + compare_files $lfmixcr ${pfx}_LF_mix_CR.txt + +ok 372 - compare_files LF_mix_CR NNO_attr_text_aeol_crlf_input_LF_mix_CR.txt -expecting success of 1415.6 'resolve worktrees/xx/HEAD': - test_cmp_rev worktrees/wt1/HEAD wt1 && - ( cd wt1 && test_cmp_rev worktrees/wt1/HEAD wt1 ) && - ( cd wt2 && test_cmp_rev worktrees/wt1/HEAD wt1 ) +expecting success of 0027.373 'compare_files LF_nul NNO_attr_text_aeol_crlf_input_CRLF_nul.txt': + compare_files $crlfnul ${pfx}_CRLF_nul.txt + +ok 373 - compare_files LF_nul NNO_attr_text_aeol_crlf_input_CRLF_nul.txt -ok 6 - resolve worktrees/xx/HEAD +expecting success of 0027.374 'ls-files --eol attr=-text aeol= core.autocrlf=true core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 374 - ls-files --eol attr=-text aeol= core.autocrlf=true core.eol=lf -expecting success of 1415.7 'ambiguous worktrees/xx/HEAD': - mkdir -p .git/refs/heads/worktrees/wt1 && - test_when_finished rm -f .git/refs/heads/worktrees/wt1/HEAD && - cp .git/HEAD .git/refs/heads/worktrees/wt1/HEAD && - git rev-parse worktrees/wt1/HEAD 2>warn && - grep "worktrees/wt1/HEAD.*ambiguous" warn +expecting success of 0027.375 'checkout attr=-text aeol= core.autocrlf=true core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_true_attr_-text_ LF crlf_false_attr__LF.txt + +ok 375 - checkout attr=-text aeol= core.autocrlf=true core.eol=lf file=LF -42fba42569eaa325aaade18832dfa5432d54ffd1 -warning: refname 'worktrees/wt1/HEAD' is ambiguous. -ok 7 - ambiguous worktrees/xx/HEAD +expecting success of 0027.376 'checkout attr=-text aeol= core.autocrlf=true core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_true_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 376 - checkout attr=-text aeol= core.autocrlf=true core.eol=lf file=CRLF -expecting success of 1415.8 'reflog of main-worktree/HEAD': - git reflog HEAD | sed "s/HEAD/main-worktree\/HEAD/" >expected && - git reflog main-worktree/HEAD >actual && - test_cmp expected actual && - git -C wt1 reflog main-worktree/HEAD >actual.wt1 && - test_cmp expected actual.wt1 +expecting success of 0027.377 'checkout attr=-text aeol= core.autocrlf=true core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_true_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 377 - checkout attr=-text aeol= core.autocrlf=true core.eol=lf file=CRLF_mix_LF -ok 8 - reflog of main-worktree/HEAD +expecting success of 0027.378 'checkout attr=-text aeol= core.autocrlf=true core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_true_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 378 - checkout attr=-text aeol= core.autocrlf=true core.eol=lf file=LF_mix_CR -expecting success of 1415.9 'reflog of worktrees/xx/HEAD': - git -C wt2 reflog HEAD | sed "s/HEAD/worktrees\/wt2\/HEAD/" >expected && - git reflog worktrees/wt2/HEAD >actual && - test_cmp expected actual && - git -C wt1 reflog worktrees/wt2/HEAD >actual.wt1 && - test_cmp expected actual.wt1 && - git -C wt2 reflog worktrees/wt2/HEAD >actual.wt2 && - test_cmp expected actual.wt2 +expecting success of 0027.379 'checkout attr=-text aeol= core.autocrlf=true core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_true_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 379 - checkout attr=-text aeol= core.autocrlf=true core.eol=lf file=LF_nul -ok 9 - reflog of worktrees/xx/HEAD +expecting success of 0027.380 'ls-files --eol attr=-text aeol=lf core.autocrlf=true core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 380 - ls-files --eol attr=-text aeol=lf core.autocrlf=true core.eol=lf -expecting success of 1415.10 'for-each-ref from main worktree': - mkdir fer1 && - git -C fer1 init repo && - test_commit -C fer1/repo initial && - git -C fer1/repo worktree add ../second && - git -C fer1/repo update-ref refs/bisect/first HEAD && - git -C fer1/repo update-ref refs/rewritten/first HEAD && - git -C fer1/repo update-ref refs/worktree/first HEAD && - git -C fer1/repo for-each-ref --format="%(refname)" | grep first >actual && - cat >expected <<-\EOF && - refs/bisect/first - refs/rewritten/first - refs/worktree/first - EOF - test_cmp expected actual +expecting success of 0027.381 'checkout attr=-text aeol=lf core.autocrlf=true core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_true_attr_-text_ LF crlf_false_attr__LF.txt + +ok 381 - checkout attr=-text aeol=lf core.autocrlf=true core.eol=lf file=LF -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1415-worktree-refs/fer1/repo/.git/ -[master (root-commit) 1935181] initial - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 initial.t -Preparing worktree (new branch 'second') -HEAD is now at 1935181 initial -ok 10 - for-each-ref from main worktree +expecting success of 0027.382 'checkout attr=-text aeol=lf core.autocrlf=true core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_true_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 382 - checkout attr=-text aeol=lf core.autocrlf=true core.eol=lf file=CRLF -expecting success of 1415.11 'for-each-ref from linked worktree': - mkdir fer2 && - git -C fer2 init repo && - test_commit -C fer2/repo initial && - git -C fer2/repo worktree add ../second && - git -C fer2/second update-ref refs/bisect/second HEAD && - git -C fer2/second update-ref refs/rewritten/second HEAD && - git -C fer2/second update-ref refs/worktree/second HEAD && - git -C fer2/second for-each-ref --format="%(refname)" | grep second >actual && - cat >expected <<-\EOF && - refs/bisect/second - refs/heads/second - refs/rewritten/second - refs/worktree/second - EOF - test_cmp expected actual +expecting success of 0027.383 'checkout attr=-text aeol=lf core.autocrlf=true core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_true_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 383 - checkout attr=-text aeol=lf core.autocrlf=true core.eol=lf file=CRLF_mix_LF -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1415-worktree-refs/fer2/repo/.git/ -[master (root-commit) 23fa7ba] initial - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 initial.t -Preparing worktree (new branch 'second') -HEAD is now at 23fa7ba initial -ok 11 - for-each-ref from linked worktree +expecting success of 0027.384 'checkout attr=-text aeol=lf core.autocrlf=true core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_true_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 384 - checkout attr=-text aeol=lf core.autocrlf=true core.eol=lf file=LF_mix_CR -# passed all 11 test(s) -1..11 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1420-lost-found.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1420-lost-found/.git/ -expecting success of 1420.1 'setup': - git config core.logAllRefUpdates 0 && - : > file1 && - git add file1 && - test_tick && - git commit -m initial && - echo 1 > file1 && - echo 2 > file2 && - git add file1 file2 && - test_tick && - git commit -m second && - echo 3 > file3 && - git add file3 +expecting success of 0027.385 'checkout attr=-text aeol=lf core.autocrlf=true core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_true_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 385 - checkout attr=-text aeol=lf core.autocrlf=true core.eol=lf file=LF_nul -[master (root-commit) 9bb1ae9] initial - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - create mode 100644 file1 -[master 8ad33be] second - Author: A U Thor - 2 files changed, 2 insertions(+) - create mode 100644 file2 -ok 1 - setup +expecting success of 0027.386 'ls-files --eol attr=-text aeol=crlf core.autocrlf=true core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 386 - ls-files --eol attr=-text aeol=crlf core.autocrlf=true core.eol=lf -expecting success of 1420.2 'lost and found something': - git rev-parse HEAD > lost-commit && - git rev-parse :file3 > lost-other && - test_tick && - git reset --hard HEAD^ && - git fsck --lost-found && - test 2 = $(ls .git/lost-found/*/* | wc -l) && - test -f .git/lost-found/commit/$(cat lost-commit) && - test -f .git/lost-found/other/$(cat lost-other) +expecting success of 0027.387 'checkout attr=-text aeol=crlf core.autocrlf=true core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_true_attr_-text_ LF crlf_false_attr__LF.txt + +ok 387 - checkout attr=-text aeol=crlf core.autocrlf=true core.eol=lf file=LF -HEAD is now at 9bb1ae9 initial -dangling blob 00750edc07d6415dcc07ae0351e9397b0222b7ba -dangling commit 8ad33beea8de8e15812274614acd0a26d73b60f8 -ok 2 - lost and found something +expecting success of 0027.388 'checkout attr=-text aeol=crlf core.autocrlf=true core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_true_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 388 - checkout attr=-text aeol=crlf core.autocrlf=true core.eol=lf file=CRLF -# passed all 2 test(s) -1..2 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1416-ref-transaction-hooks.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1416-ref-transaction-hooks/.git/ -expecting success of 1416.1 'setup': - mkdir -p .git/hooks && - test_commit PRE && - PRE_OID=$(git rev-parse PRE) && - test_commit POST && - POST_OID=$(git rev-parse POST) +expecting success of 0027.389 'checkout attr=-text aeol=crlf core.autocrlf=true core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_true_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 389 - checkout attr=-text aeol=crlf core.autocrlf=true core.eol=lf file=CRLF_mix_LF -[master (root-commit) 63ac8e7] PRE - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 PRE.t -[master 99d5316] POST - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 POST.t -ok 1 - setup +expecting success of 0027.390 'checkout attr=-text aeol=crlf core.autocrlf=true core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_true_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 390 - checkout attr=-text aeol=crlf core.autocrlf=true core.eol=lf file=LF_mix_CR -expecting success of 1416.2 'hook allows updating ref if successful': - test_when_finished "rm .git/hooks/reference-transaction" && - git reset --hard PRE && - write_script .git/hooks/reference-transaction <<-\EOF && - echo "$*" >>actual - EOF - cat >expect <<-EOF && - prepared - committed - EOF - git update-ref HEAD POST && - test_cmp expect actual +expecting success of 0027.391 'checkout attr=-text aeol=crlf core.autocrlf=true core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_true_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 391 - checkout attr=-text aeol=crlf core.autocrlf=true core.eol=lf file=LF_nul -HEAD is now at 63ac8e7 PRE -ok 2 - hook allows updating ref if successful +expecting success of 0027.392 'ls-files --eol attr=text aeol=lf core.autocrlf=true core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 392 - ls-files --eol attr=text aeol=lf core.autocrlf=true core.eol=lf -expecting success of 1416.3 'hook aborts updating ref in prepared state': - test_when_finished "rm .git/hooks/reference-transaction" && - git reset --hard PRE && - write_script .git/hooks/reference-transaction <<-\EOF && - if test "$1" = prepared - then - exit 1 - fi - EOF - test_must_fail git update-ref HEAD POST 2>err && - test_i18ngrep "ref updates aborted by hook" err +expecting success of 0027.393 'checkout attr=text aeol=lf core.autocrlf=true core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_true_attr_text_ LF crlf_false_attr__LF.txt + +ok 393 - checkout attr=text aeol=lf core.autocrlf=true core.eol=lf file=LF -HEAD is now at 63ac8e7 PRE -checking prerequisite: C_LOCALE_OUTPUT +expecting success of 0027.394 'checkout attr=text aeol=lf core.autocrlf=true core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 394 - checkout attr=text aeol=lf core.autocrlf=true core.eol=lf file=CRLF -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false +expecting success of 0027.395 'checkout attr=text aeol=lf core.autocrlf=true core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_true_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 395 - checkout attr=text aeol=lf core.autocrlf=true core.eol=lf file=CRLF_mix_LF -) -prerequisite C_LOCALE_OUTPUT ok -fatal: ref updates aborted by hook -ok 3 - hook aborts updating ref in prepared state +expecting success of 0027.396 'checkout attr=text aeol=lf core.autocrlf=true core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_true_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 396 - checkout attr=text aeol=lf core.autocrlf=true core.eol=lf file=LF_mix_CR -expecting success of 1416.4 'hook gets all queued updates in prepared state': - test_when_finished "rm .git/hooks/reference-transaction actual" && - git reset --hard PRE && - write_script .git/hooks/reference-transaction <<-\EOF && - if test "$1" = prepared - then - while read -r line - do - printf "%s\n" "$line" - done >actual - fi - EOF - cat >expect <<-EOF && - $ZERO_OID $POST_OID HEAD - $ZERO_OID $POST_OID refs/heads/master - EOF - git update-ref HEAD POST <<-EOF && - update HEAD $ZERO_OID $POST_OID - update refs/heads/master $ZERO_OID $POST_OID - EOF - test_cmp expect actual +expecting success of 0027.397 'checkout attr=text aeol=lf core.autocrlf=true core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_true_attr_text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 397 - checkout attr=text aeol=lf core.autocrlf=true core.eol=lf file=LF_nul -HEAD is now at 63ac8e7 PRE -ok 4 - hook gets all queued updates in prepared state +expecting success of 0027.398 'ls-files --eol attr=text aeol=crlf core.autocrlf=true core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 398 - ls-files --eol attr=text aeol=crlf core.autocrlf=true core.eol=lf -expecting success of 1416.5 'hook gets all queued updates in committed state': - test_when_finished "rm .git/hooks/reference-transaction actual" && - git reset --hard PRE && - write_script .git/hooks/reference-transaction <<-\EOF && - if test "$1" = committed - then - while read -r line - do - printf "%s\n" "$line" - done >actual - fi - EOF - cat >expect <<-EOF && - $ZERO_OID $POST_OID HEAD - $ZERO_OID $POST_OID refs/heads/master - EOF - git update-ref HEAD POST && - test_cmp expect actual +expecting success of 0027.399 'checkout attr=text aeol=crlf core.autocrlf=true core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_true_attr_text_ CRLF crlf_false_attr__LF.txt + +ok 399 - checkout attr=text aeol=crlf core.autocrlf=true core.eol=lf file=LF -HEAD is now at 63ac8e7 PRE -ok 5 - hook gets all queued updates in committed state +expecting success of 0027.400 'checkout attr=text aeol=crlf core.autocrlf=true core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 400 - checkout attr=text aeol=crlf core.autocrlf=true core.eol=lf file=CRLF -expecting success of 1416.6 'hook gets all queued updates in aborted state': - test_when_finished "rm .git/hooks/reference-transaction actual" && - git reset --hard PRE && - write_script .git/hooks/reference-transaction <<-\EOF && - if test "$1" = aborted - then - while read -r line - do - printf "%s\n" "$line" - done >actual - fi - EOF - cat >expect <<-EOF && - $ZERO_OID $POST_OID HEAD - $ZERO_OID $POST_OID refs/heads/master - EOF - git update-ref --stdin <<-EOF && - start - update HEAD POST $ZERO_OID - update refs/heads/master POST $ZERO_OID - abort - EOF - test_cmp expect actual +expecting success of 0027.401 'checkout attr=text aeol=crlf core.autocrlf=true core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt + +ok 401 - checkout attr=text aeol=crlf core.autocrlf=true core.eol=lf file=CRLF_mix_LF -HEAD is now at 63ac8e7 PRE -start: ok -abort: ok -ok 6 - hook gets all queued updates in aborted state +expecting success of 0027.402 'checkout attr=text aeol=crlf core.autocrlf=true core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_true_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 402 - checkout attr=text aeol=crlf core.autocrlf=true core.eol=lf file=LF_mix_CR -expecting success of 1416.7 'interleaving hook calls succeed': - test_when_finished "rm -r target-repo.git" && +expecting success of 0027.403 'checkout attr=text aeol=crlf core.autocrlf=true core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_true_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt + +ok 403 - checkout attr=text aeol=crlf core.autocrlf=true core.eol=lf file=LF_nul - git init --bare target-repo.git && +expecting success of 0027.404 'ls-files --eol attr=auto aeol=lf core.autocrlf=true core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 404 - ls-files --eol attr=auto aeol=lf core.autocrlf=true core.eol=lf - write_script target-repo.git/hooks/reference-transaction <<-\EOF && - echo $0 "$@" >>actual - EOF +expecting success of 0027.405 'checkout attr=auto aeol=lf core.autocrlf=true core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_true_attr_auto_ LF crlf_false_attr__LF.txt + +ok 405 - checkout attr=auto aeol=lf core.autocrlf=true core.eol=lf file=LF - write_script target-repo.git/hooks/update <<-\EOF && - echo $0 "$@" >>actual - EOF +expecting success of 0027.406 'checkout attr=auto aeol=lf core.autocrlf=true core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_true_attr_auto_ CRLF crlf_false_attr__CRLF.txt + +ok 406 - checkout attr=auto aeol=lf core.autocrlf=true core.eol=lf file=CRLF - cat >expect <<-EOF && - hooks/update refs/tags/PRE $ZERO_OID $PRE_OID - hooks/reference-transaction prepared - hooks/reference-transaction committed - hooks/update refs/tags/POST $ZERO_OID $POST_OID - hooks/reference-transaction prepared - hooks/reference-transaction committed - EOF +expecting success of 0027.407 'checkout attr=auto aeol=lf core.autocrlf=true core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_true_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 407 - checkout attr=auto aeol=lf core.autocrlf=true core.eol=lf file=CRLF_mix_LF - git push ./target-repo.git PRE POST && - test_cmp expect target-repo.git/actual +expecting success of 0027.408 'checkout attr=auto aeol=lf core.autocrlf=true core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_true_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 408 - checkout attr=auto aeol=lf core.autocrlf=true core.eol=lf file=LF_mix_CR -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1416-ref-transaction-hooks/target-repo.git/ -To ./target-repo.git - * [new tag] PRE -> PRE - * [new tag] POST -> POST -ok 7 - interleaving hook calls succeed +expecting success of 0027.409 'checkout attr=auto aeol=lf core.autocrlf=true core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_true_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 409 - checkout attr=auto aeol=lf core.autocrlf=true core.eol=lf file=LF_nul -# passed all 7 test(s) -1..7 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1430-bad-ref-name.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1430-bad-ref-name/.git/ -expecting success of 1430.1 'setup': - test_commit one && - test_commit two +expecting success of 0027.410 'ls-files --eol attr=auto aeol=crlf core.autocrlf=true core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 410 - ls-files --eol attr=auto aeol=crlf core.autocrlf=true core.eol=lf -[master (root-commit) d79ce16] one - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 one.t -[master 139b20d] two - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 two.t -ok 1 - setup +expecting success of 0027.411 'checkout attr=auto aeol=crlf core.autocrlf=true core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_true_attr_auto_ CRLF crlf_false_attr__LF.txt + +ok 411 - checkout attr=auto aeol=crlf core.autocrlf=true core.eol=lf file=LF -expecting success of 1430.2 'fast-import: fail on invalid branch name ".badbranchname"': - test_when_finished "rm -f .git/objects/pack_* .git/objects/index_*" && - cat >input <<-INPUT_END && - commit .badbranchname - committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE - data <input <<-INPUT_END && - commit bad[branch]name - committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE - data <expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 416 - ls-files --eol attr=-text aeol= core.autocrlf=false core.eol=lf - from refs/heads/master +expecting success of 0027.417 'checkout attr=-text aeol= core.autocrlf=false core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_false_attr_-text_ LF crlf_false_attr__LF.txt + +ok 417 - checkout attr=-text aeol= core.autocrlf=false core.eol=lf file=LF - INPUT_END - test_must_fail git fast-import output 2>error && - test_i18ngrep -e "ignoring ref with broken name refs/heads/broken\.\.\.ref" error && - ! grep -e "broken\.\.\.ref" output +expecting success of 0027.420 'checkout attr=-text aeol= core.autocrlf=false core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_false_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 420 - checkout attr=-text aeol= core.autocrlf=false core.eol=lf file=LF_mix_CR -checking prerequisite: C_LOCALE_OUTPUT +expecting success of 0027.421 'checkout attr=-text aeol= core.autocrlf=false core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_false_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 421 - checkout attr=-text aeol= core.autocrlf=false core.eol=lf file=LF_nul -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false +expecting success of 0027.422 'ls-files --eol attr=-text aeol=lf core.autocrlf=false core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 422 - ls-files --eol attr=-text aeol=lf core.autocrlf=false core.eol=lf -) -prerequisite C_LOCALE_OUTPUT ok -warning: ignoring ref with broken name refs/heads/broken...ref -ok 4 - git branch shows badly named ref as warning +expecting success of 0027.423 'checkout attr=-text aeol=lf core.autocrlf=false core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_false_attr_-text_ LF crlf_false_attr__LF.txt + +ok 423 - checkout attr=-text aeol=lf core.autocrlf=false core.eol=lf file=LF -expecting success of 1430.5 'branch -d can delete badly named ref': - cp .git/refs/heads/master .git/refs/heads/broken...ref && - test_when_finished "rm -f .git/refs/heads/broken...ref" && - git branch -d broken...ref && - git branch >output 2>error && - ! grep -e "broken\.\.\.ref" error && - ! grep -e "broken\.\.\.ref" output +expecting success of 0027.424 'checkout attr=-text aeol=lf core.autocrlf=false core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_false_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 424 - checkout attr=-text aeol=lf core.autocrlf=false core.eol=lf file=CRLF -Deleted branch broken...ref (was broken). -ok 5 - branch -d can delete badly named ref +expecting success of 0027.425 'checkout attr=-text aeol=lf core.autocrlf=false core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_false_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 425 - checkout attr=-text aeol=lf core.autocrlf=false core.eol=lf file=CRLF_mix_LF -expecting success of 1430.6 'branch -D can delete badly named ref': - cp .git/refs/heads/master .git/refs/heads/broken...ref && - test_when_finished "rm -f .git/refs/heads/broken...ref" && - git branch -D broken...ref && - git branch >output 2>error && - ! grep -e "broken\.\.\.ref" error && - ! grep -e "broken\.\.\.ref" output +expecting success of 0027.426 'checkout attr=-text aeol=lf core.autocrlf=false core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_false_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 426 - checkout attr=-text aeol=lf core.autocrlf=false core.eol=lf file=LF_mix_CR -Deleted branch broken...ref (was broken). -ok 6 - branch -D can delete badly named ref +expecting success of 0027.427 'checkout attr=-text aeol=lf core.autocrlf=false core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_false_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 427 - checkout attr=-text aeol=lf core.autocrlf=false core.eol=lf file=LF_nul -expecting success of 1430.7 'branch -D cannot delete non-ref in .git dir': - echo precious >.git/my-private-file && - echo precious >expect && - test_must_fail git branch -D ../../my-private-file && - test_cmp expect .git/my-private-file +expecting success of 0027.428 'ls-files --eol attr=-text aeol=crlf core.autocrlf=false core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 428 - ls-files --eol attr=-text aeol=crlf core.autocrlf=false core.eol=lf -error: branch '../../my-private-file' not found. -ok 7 - branch -D cannot delete non-ref in .git dir +expecting success of 0027.429 'checkout attr=-text aeol=crlf core.autocrlf=false core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_false_attr_-text_ LF crlf_false_attr__LF.txt + +ok 429 - checkout attr=-text aeol=crlf core.autocrlf=false core.eol=lf file=LF -expecting success of 1430.8 'branch -D cannot delete ref in .git dir': - git rev-parse HEAD >.git/my-private-file && - git rev-parse HEAD >expect && - git branch foo/legit && - test_must_fail git branch -D foo////./././../../../my-private-file && - test_cmp expect .git/my-private-file +expecting success of 0027.430 'checkout attr=-text aeol=crlf core.autocrlf=false core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_false_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 430 - checkout attr=-text aeol=crlf core.autocrlf=false core.eol=lf file=CRLF -error: branch 'foo////./././../../../my-private-file' not found. -ok 8 - branch -D cannot delete ref in .git dir +expecting success of 0027.431 'checkout attr=-text aeol=crlf core.autocrlf=false core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_false_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 431 - checkout attr=-text aeol=crlf core.autocrlf=false core.eol=lf file=CRLF_mix_LF -expecting success of 1430.9 'branch -D cannot delete absolute path': - git branch -f extra && - test_must_fail git branch -D "$(pwd)/.git/refs/heads/extra" && - test_cmp_rev HEAD extra +expecting success of 0027.432 'checkout attr=-text aeol=crlf core.autocrlf=false core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_false_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 432 - checkout attr=-text aeol=crlf core.autocrlf=false core.eol=lf file=LF_mix_CR -error: branch '/build/git-2.30.2/t/trash directory.t1430-bad-ref-name/.git/refs/heads/extra' not found. -ok 9 - branch -D cannot delete absolute path +expecting success of 0027.433 'checkout attr=-text aeol=crlf core.autocrlf=false core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_false_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 433 - checkout attr=-text aeol=crlf core.autocrlf=false core.eol=lf file=LF_nul -expecting success of 1430.10 'git branch cannot create a badly named ref': - test_when_finished "rm -f .git/refs/heads/broken...ref" && - test_must_fail git branch broken...ref && - git branch >output 2>error && - ! grep -e "broken\.\.\.ref" error && - ! grep -e "broken\.\.\.ref" output +expecting success of 0027.434 'ls-files --eol attr=text aeol=lf core.autocrlf=false core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 434 - ls-files --eol attr=text aeol=lf core.autocrlf=false core.eol=lf -fatal: 'broken...ref' is not a valid branch name. -ok 10 - git branch cannot create a badly named ref +expecting success of 0027.435 'checkout attr=text aeol=lf core.autocrlf=false core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_false_attr_text_ LF crlf_false_attr__LF.txt + +ok 435 - checkout attr=text aeol=lf core.autocrlf=false core.eol=lf file=LF -expecting success of 1430.11 'branch -m cannot rename to a bad ref name': - test_when_finished "rm -f .git/refs/heads/broken...ref" && - test_might_fail git branch -D goodref && - git branch goodref && - test_must_fail git branch -m goodref broken...ref && - test_cmp_rev master goodref && - git branch >output 2>error && - ! grep -e "broken\.\.\.ref" error && - ! grep -e "broken\.\.\.ref" output +expecting success of 0027.436 'checkout attr=text aeol=lf core.autocrlf=false core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 436 - checkout attr=text aeol=lf core.autocrlf=false core.eol=lf file=CRLF -error: branch 'goodref' not found. -fatal: 'broken...ref' is not a valid branch name. -ok 11 - branch -m cannot rename to a bad ref name +expecting success of 0027.437 'checkout attr=text aeol=lf core.autocrlf=false core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_false_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 437 - checkout attr=text aeol=lf core.autocrlf=false core.eol=lf file=CRLF_mix_LF -checking known breakage of 1430.12 'branch -m can rename from a bad ref name': - cp .git/refs/heads/master .git/refs/heads/broken...ref && - test_when_finished "rm -f .git/refs/heads/broken...ref" && - git branch -m broken...ref renamed && - test_cmp_rev master renamed && - git branch >output 2>error && - ! grep -e "broken\.\.\.ref" error && - ! grep -e "broken\.\.\.ref" output +expecting success of 0027.438 'checkout attr=text aeol=lf core.autocrlf=false core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_false_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 438 - checkout attr=text aeol=lf core.autocrlf=false core.eol=lf file=LF_mix_CR -fatal: Invalid branch name: 'broken...ref' -not ok 12 - branch -m can rename from a bad ref name # TODO known breakage +expecting success of 0027.439 'checkout attr=text aeol=lf core.autocrlf=false core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_false_attr_text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 439 - checkout attr=text aeol=lf core.autocrlf=false core.eol=lf file=LF_nul -expecting success of 1430.13 'push cannot create a badly named ref': - test_when_finished "rm -f .git/refs/heads/broken...ref" && - test_must_fail git push "file://$(pwd)" HEAD:refs/heads/broken...ref && - git branch >output 2>error && - ! grep -e "broken\.\.\.ref" error && - ! grep -e "broken\.\.\.ref" output +expecting success of 0027.440 'ls-files --eol attr=text aeol=crlf core.autocrlf=false core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 440 - ls-files --eol attr=text aeol=crlf core.autocrlf=false core.eol=lf -fatal: invalid refspec 'HEAD:refs/heads/broken...ref' -ok 13 - push cannot create a badly named ref +expecting success of 0027.441 'checkout attr=text aeol=crlf core.autocrlf=false core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_false_attr_text_ CRLF crlf_false_attr__LF.txt + +ok 441 - checkout attr=text aeol=crlf core.autocrlf=false core.eol=lf file=LF -checking known breakage of 1430.14 'push --mirror can delete badly named ref': - top=$(pwd) && - git init src && - git init dest && +expecting success of 0027.442 'checkout attr=text aeol=crlf core.autocrlf=false core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 442 - checkout attr=text aeol=crlf core.autocrlf=false core.eol=lf file=CRLF - ( - cd src && - test_commit one - ) && - ( - cd dest && - test_commit two && - git checkout --detach && - cp .git/refs/heads/master .git/refs/heads/broken...ref - ) && - git -C src push --mirror "file://$top/dest" && - git -C dest branch >output 2>error && - ! grep -e "broken\.\.\.ref" error && - ! grep -e "broken\.\.\.ref" output +expecting success of 0027.443 'checkout attr=text aeol=crlf core.autocrlf=false core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt + +ok 443 - checkout attr=text aeol=crlf core.autocrlf=false core.eol=lf file=CRLF_mix_LF -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1430-bad-ref-name/src/.git/ -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1430-bad-ref-name/dest/.git/ -[master (root-commit) 4331c28] one - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 one.t -[master (root-commit) 9db02ea] two - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 two.t -HEAD is now at 9db02ea two -remote: warning: ignoring ref with broken name refs/heads/broken...ref -To file:///build/git-2.30.2/t/trash directory.t1430-bad-ref-name/dest - + 9db02ea...4331c28 master -> master (forced update) - - [deleted] two - * [new tag] one -> one -warning: ignoring ref with broken name refs/heads/broken...ref -not ok 14 - push --mirror can delete badly named ref # TODO known breakage +expecting success of 0027.444 'checkout attr=text aeol=crlf core.autocrlf=false core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_false_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 444 - checkout attr=text aeol=crlf core.autocrlf=false core.eol=lf file=LF_mix_CR -expecting success of 1430.15 'rev-parse skips symref pointing to broken name': - test_when_finished "rm -f .git/refs/heads/broken...ref" && - git branch shadow one && - cp .git/refs/heads/master .git/refs/heads/broken...ref && - printf "ref: refs/heads/broken...ref\n" >.git/refs/tags/shadow && - test_when_finished "rm -f .git/refs/tags/shadow" && - git rev-parse --verify one >expect && - git rev-parse --verify shadow >actual 2>err && - test_cmp expect actual && - test_i18ngrep "ignoring dangling symref refs/tags/shadow" err +expecting success of 0027.445 'checkout attr=text aeol=crlf core.autocrlf=false core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_false_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt + +ok 445 - checkout attr=text aeol=crlf core.autocrlf=false core.eol=lf file=LF_nul -warning: ignoring dangling symref refs/tags/shadow -ok 15 - rev-parse skips symref pointing to broken name +expecting success of 0027.446 'ls-files --eol attr=auto aeol=lf core.autocrlf=false core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 446 - ls-files --eol attr=auto aeol=lf core.autocrlf=false core.eol=lf -expecting success of 1430.16 'for-each-ref emits warnings for broken names': - cp .git/refs/heads/master .git/refs/heads/broken...ref && - test_when_finished "rm -f .git/refs/heads/broken...ref" && - printf "ref: refs/heads/broken...ref\n" >.git/refs/heads/badname && - test_when_finished "rm -f .git/refs/heads/badname" && - printf "ref: refs/heads/master\n" >.git/refs/heads/broken...symref && - test_when_finished "rm -f .git/refs/heads/broken...symref" && - git for-each-ref >output 2>error && - ! grep -e "broken\.\.\.ref" output && - ! grep -e "badname" output && - ! grep -e "broken\.\.\.symref" output && - test_i18ngrep "ignoring ref with broken name refs/heads/broken\.\.\.ref" error && - test_i18ngrep "ignoring broken ref refs/heads/badname" error && - test_i18ngrep "ignoring ref with broken name refs/heads/broken\.\.\.symref" error +expecting success of 0027.447 'checkout attr=auto aeol=lf core.autocrlf=false core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_false_attr_auto_ LF crlf_false_attr__LF.txt + +ok 447 - checkout attr=auto aeol=lf core.autocrlf=false core.eol=lf file=LF -warning: ignoring ref with broken name refs/heads/broken...ref -warning: ignoring broken ref refs/heads/badname -warning: ignoring ref with broken name refs/heads/broken...symref -ok 16 - for-each-ref emits warnings for broken names +expecting success of 0027.448 'checkout attr=auto aeol=lf core.autocrlf=false core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_false_attr_auto_ CRLF crlf_false_attr__CRLF.txt + +ok 448 - checkout attr=auto aeol=lf core.autocrlf=false core.eol=lf file=CRLF -expecting success of 1430.17 'update-ref -d can delete broken name': - cp .git/refs/heads/master .git/refs/heads/broken...ref && - test_when_finished "rm -f .git/refs/heads/broken...ref" && - git update-ref -d refs/heads/broken...ref >output 2>error && - test_must_be_empty output && - test_must_be_empty error && - git branch >output 2>error && - ! grep -e "broken\.\.\.ref" error && - ! grep -e "broken\.\.\.ref" output +expecting success of 0027.449 'checkout attr=auto aeol=lf core.autocrlf=false core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_false_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 449 - checkout attr=auto aeol=lf core.autocrlf=false core.eol=lf file=CRLF_mix_LF -ok 17 - update-ref -d can delete broken name +expecting success of 0027.450 'checkout attr=auto aeol=lf core.autocrlf=false core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_false_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 450 - checkout attr=auto aeol=lf core.autocrlf=false core.eol=lf file=LF_mix_CR -expecting success of 1430.18 'branch -d can delete broken name': - cp .git/refs/heads/master .git/refs/heads/broken...ref && - test_when_finished "rm -f .git/refs/heads/broken...ref" && - git branch -d broken...ref >output 2>error && - test_i18ngrep "Deleted branch broken...ref (was broken)" output && - test_must_be_empty error && - git branch >output 2>error && - ! grep -e "broken\.\.\.ref" error && - ! grep -e "broken\.\.\.ref" output +expecting success of 0027.451 'checkout attr=auto aeol=lf core.autocrlf=false core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_false_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 451 - checkout attr=auto aeol=lf core.autocrlf=false core.eol=lf file=LF_nul -Deleted branch broken...ref (was broken). -ok 18 - branch -d can delete broken name +expecting success of 0027.452 'ls-files --eol attr=auto aeol=crlf core.autocrlf=false core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 452 - ls-files --eol attr=auto aeol=crlf core.autocrlf=false core.eol=lf -expecting success of 1430.19 'update-ref --no-deref -d can delete symref to broken name': - cp .git/refs/heads/master .git/refs/heads/broken...ref && - test_when_finished "rm -f .git/refs/heads/broken...ref" && - printf "ref: refs/heads/broken...ref\n" >.git/refs/heads/badname && - test_when_finished "rm -f .git/refs/heads/badname" && - git update-ref --no-deref -d refs/heads/badname >output 2>error && - test_path_is_missing .git/refs/heads/badname && - test_must_be_empty output && - test_must_be_empty error +expecting success of 0027.453 'checkout attr=auto aeol=crlf core.autocrlf=false core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_false_attr_auto_ CRLF crlf_false_attr__LF.txt + +ok 453 - checkout attr=auto aeol=crlf core.autocrlf=false core.eol=lf file=LF -ok 19 - update-ref --no-deref -d can delete symref to broken name +expecting success of 0027.454 'checkout attr=auto aeol=crlf core.autocrlf=false core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_false_attr_auto_ CRLF crlf_false_attr__CRLF.txt + +ok 454 - checkout attr=auto aeol=crlf core.autocrlf=false core.eol=lf file=CRLF -expecting success of 1430.20 'branch -d can delete symref to broken name': - cp .git/refs/heads/master .git/refs/heads/broken...ref && - test_when_finished "rm -f .git/refs/heads/broken...ref" && - printf "ref: refs/heads/broken...ref\n" >.git/refs/heads/badname && - test_when_finished "rm -f .git/refs/heads/badname" && - git branch -d badname >output 2>error && - test_path_is_missing .git/refs/heads/badname && - test_i18ngrep "Deleted branch badname (was refs/heads/broken\.\.\.ref)" output && - test_must_be_empty error +expecting success of 0027.455 'checkout attr=auto aeol=crlf core.autocrlf=false core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_false_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 455 - checkout attr=auto aeol=crlf core.autocrlf=false core.eol=lf file=CRLF_mix_LF -Deleted branch badname (was refs/heads/broken...ref). -ok 20 - branch -d can delete symref to broken name +expecting success of 0027.456 'checkout attr=auto aeol=crlf core.autocrlf=false core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_false_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 456 - checkout attr=auto aeol=crlf core.autocrlf=false core.eol=lf file=LF_mix_CR -expecting success of 1430.21 'update-ref --no-deref -d can delete dangling symref to broken name': - printf "ref: refs/heads/broken...ref\n" >.git/refs/heads/badname && - test_when_finished "rm -f .git/refs/heads/badname" && - git update-ref --no-deref -d refs/heads/badname >output 2>error && - test_path_is_missing .git/refs/heads/badname && - test_must_be_empty output && - test_must_be_empty error +expecting success of 0027.457 'checkout attr=auto aeol=crlf core.autocrlf=false core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_false_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 457 - checkout attr=auto aeol=crlf core.autocrlf=false core.eol=lf file=LF_nul -ok 21 - update-ref --no-deref -d can delete dangling symref to broken name +expecting success of 0027.458 'ls-files --eol attr=-text aeol= core.autocrlf=input core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 458 - ls-files --eol attr=-text aeol= core.autocrlf=input core.eol=lf -expecting success of 1430.22 'branch -d can delete dangling symref to broken name': - printf "ref: refs/heads/broken...ref\n" >.git/refs/heads/badname && - test_when_finished "rm -f .git/refs/heads/badname" && - git branch -d badname >output 2>error && - test_path_is_missing .git/refs/heads/badname && - test_i18ngrep "Deleted branch badname (was refs/heads/broken\.\.\.ref)" output && - test_must_be_empty error +expecting success of 0027.459 'checkout attr=-text aeol= core.autocrlf=input core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_input_attr_-text_ LF crlf_false_attr__LF.txt + +ok 459 - checkout attr=-text aeol= core.autocrlf=input core.eol=lf file=LF -Deleted branch badname (was refs/heads/broken...ref). -ok 22 - branch -d can delete dangling symref to broken name +expecting success of 0027.460 'checkout attr=-text aeol= core.autocrlf=input core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_input_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 460 - checkout attr=-text aeol= core.autocrlf=input core.eol=lf file=CRLF -expecting success of 1430.23 'update-ref -d can delete broken name through symref': - cp .git/refs/heads/master .git/refs/heads/broken...ref && - test_when_finished "rm -f .git/refs/heads/broken...ref" && - printf "ref: refs/heads/broken...ref\n" >.git/refs/heads/badname && - test_when_finished "rm -f .git/refs/heads/badname" && - git update-ref -d refs/heads/badname >output 2>error && - test_path_is_missing .git/refs/heads/broken...ref && - test_must_be_empty output && - test_must_be_empty error +expecting success of 0027.461 'checkout attr=-text aeol= core.autocrlf=input core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_input_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 461 - checkout attr=-text aeol= core.autocrlf=input core.eol=lf file=CRLF_mix_LF -ok 23 - update-ref -d can delete broken name through symref +expecting success of 0027.462 'checkout attr=-text aeol= core.autocrlf=input core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_input_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 462 - checkout attr=-text aeol= core.autocrlf=input core.eol=lf file=LF_mix_CR -expecting success of 1430.24 'update-ref --no-deref -d can delete symref with broken name': - printf "ref: refs/heads/master\n" >.git/refs/heads/broken...symref && - test_when_finished "rm -f .git/refs/heads/broken...symref" && - git update-ref --no-deref -d refs/heads/broken...symref >output 2>error && - test_path_is_missing .git/refs/heads/broken...symref && - test_must_be_empty output && - test_must_be_empty error +expecting success of 0027.463 'checkout attr=-text aeol= core.autocrlf=input core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_input_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 463 - checkout attr=-text aeol= core.autocrlf=input core.eol=lf file=LF_nul -ok 24 - update-ref --no-deref -d can delete symref with broken name +expecting success of 0027.464 'ls-files --eol attr=-text aeol=lf core.autocrlf=input core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 464 - ls-files --eol attr=-text aeol=lf core.autocrlf=input core.eol=lf -expecting success of 1430.25 'branch -d can delete symref with broken name': - printf "ref: refs/heads/master\n" >.git/refs/heads/broken...symref && - test_when_finished "rm -f .git/refs/heads/broken...symref" && - git branch -d broken...symref >output 2>error && - test_path_is_missing .git/refs/heads/broken...symref && - test_i18ngrep "Deleted branch broken...symref (was refs/heads/master)" output && - test_must_be_empty error +expecting success of 0027.465 'checkout attr=-text aeol=lf core.autocrlf=input core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_input_attr_-text_ LF crlf_false_attr__LF.txt + +ok 465 - checkout attr=-text aeol=lf core.autocrlf=input core.eol=lf file=LF -Deleted branch broken...symref (was refs/heads/master). -ok 25 - branch -d can delete symref with broken name +expecting success of 0027.466 'checkout attr=-text aeol=lf core.autocrlf=input core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_input_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 466 - checkout attr=-text aeol=lf core.autocrlf=input core.eol=lf file=CRLF -expecting success of 1430.26 'update-ref --no-deref -d can delete dangling symref with broken name': - printf "ref: refs/heads/idonotexist\n" >.git/refs/heads/broken...symref && - test_when_finished "rm -f .git/refs/heads/broken...symref" && - git update-ref --no-deref -d refs/heads/broken...symref >output 2>error && - test_path_is_missing .git/refs/heads/broken...symref && - test_must_be_empty output && - test_must_be_empty error +expecting success of 0027.467 'checkout attr=-text aeol=lf core.autocrlf=input core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_input_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 467 - checkout attr=-text aeol=lf core.autocrlf=input core.eol=lf file=CRLF_mix_LF -ok 26 - update-ref --no-deref -d can delete dangling symref with broken name +expecting success of 0027.468 'checkout attr=-text aeol=lf core.autocrlf=input core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_input_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 468 - checkout attr=-text aeol=lf core.autocrlf=input core.eol=lf file=LF_mix_CR -expecting success of 1430.27 'branch -d can delete dangling symref with broken name': - printf "ref: refs/heads/idonotexist\n" >.git/refs/heads/broken...symref && - test_when_finished "rm -f .git/refs/heads/broken...symref" && - git branch -d broken...symref >output 2>error && - test_path_is_missing .git/refs/heads/broken...symref && - test_i18ngrep "Deleted branch broken...symref (was refs/heads/idonotexist)" output && - test_must_be_empty error +expecting success of 0027.469 'checkout attr=-text aeol=lf core.autocrlf=input core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_input_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 469 - checkout attr=-text aeol=lf core.autocrlf=input core.eol=lf file=LF_nul -Deleted branch broken...symref (was refs/heads/idonotexist). -ok 27 - branch -d can delete dangling symref with broken name +expecting success of 0027.470 'ls-files --eol attr=-text aeol=crlf core.autocrlf=input core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 470 - ls-files --eol attr=-text aeol=crlf core.autocrlf=input core.eol=lf -expecting success of 1430.28 'update-ref -d cannot delete non-ref in .git dir': - echo precious >.git/my-private-file && - echo precious >expect && - test_must_fail git update-ref -d my-private-file >output 2>error && - test_must_be_empty output && - test_i18ngrep -e "refusing to update ref with bad name" error && - test_cmp expect .git/my-private-file +expecting success of 0027.471 'checkout attr=-text aeol=crlf core.autocrlf=input core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_input_attr_-text_ LF crlf_false_attr__LF.txt + +ok 471 - checkout attr=-text aeol=crlf core.autocrlf=input core.eol=lf file=LF -error: refusing to update ref with bad name 'my-private-file' -ok 28 - update-ref -d cannot delete non-ref in .git dir +expecting success of 0027.472 'checkout attr=-text aeol=crlf core.autocrlf=input core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_input_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 472 - checkout attr=-text aeol=crlf core.autocrlf=input core.eol=lf file=CRLF -expecting success of 1430.29 'update-ref -d cannot delete absolute path': - git branch -f extra && - test_must_fail git update-ref -d "$(pwd)/.git/refs/heads/extra" && - test_cmp_rev HEAD extra +expecting success of 0027.473 'checkout attr=-text aeol=crlf core.autocrlf=input core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_input_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 473 - checkout attr=-text aeol=crlf core.autocrlf=input core.eol=lf file=CRLF_mix_LF -error: refusing to update ref with bad name '/build/git-2.30.2/t/trash directory.t1430-bad-ref-name/.git/refs/heads/extra' -ok 29 - update-ref -d cannot delete absolute path +expecting success of 0027.474 'checkout attr=-text aeol=crlf core.autocrlf=input core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_input_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 474 - checkout attr=-text aeol=crlf core.autocrlf=input core.eol=lf file=LF_mix_CR -expecting success of 1430.30 'update-ref --stdin fails create with bad ref name': - echo "create ~a refs/heads/master" >stdin && - test_must_fail git update-ref --stdin err && - grep "fatal: invalid ref format: ~a" err +expecting success of 0027.475 'checkout attr=-text aeol=crlf core.autocrlf=input core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_input_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 475 - checkout attr=-text aeol=crlf core.autocrlf=input core.eol=lf file=LF_nul -fatal: invalid ref format: ~a -ok 30 - update-ref --stdin fails create with bad ref name +expecting success of 0027.476 'ls-files --eol attr=text aeol=lf core.autocrlf=input core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 476 - ls-files --eol attr=text aeol=lf core.autocrlf=input core.eol=lf -expecting success of 1430.31 'update-ref --stdin fails update with bad ref name': - echo "update ~a refs/heads/master" >stdin && - test_must_fail git update-ref --stdin err && - grep "fatal: invalid ref format: ~a" err +expecting success of 0027.477 'checkout attr=text aeol=lf core.autocrlf=input core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_input_attr_text_ LF crlf_false_attr__LF.txt + +ok 477 - checkout attr=text aeol=lf core.autocrlf=input core.eol=lf file=LF -fatal: invalid ref format: ~a -ok 31 - update-ref --stdin fails update with bad ref name +expecting success of 0027.478 'checkout attr=text aeol=lf core.autocrlf=input core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 478 - checkout attr=text aeol=lf core.autocrlf=input core.eol=lf file=CRLF -expecting success of 1430.32 'update-ref --stdin fails delete with bad ref name': - echo "delete ~a refs/heads/master" >stdin && - test_must_fail git update-ref --stdin err && - grep "fatal: invalid ref format: ~a" err +expecting success of 0027.479 'checkout attr=text aeol=lf core.autocrlf=input core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_input_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 479 - checkout attr=text aeol=lf core.autocrlf=input core.eol=lf file=CRLF_mix_LF -fatal: invalid ref format: ~a -ok 32 - update-ref --stdin fails delete with bad ref name +expecting success of 0027.480 'checkout attr=text aeol=lf core.autocrlf=input core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_input_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 480 - checkout attr=text aeol=lf core.autocrlf=input core.eol=lf file=LF_mix_CR -expecting success of 1430.33 'update-ref --stdin -z fails create with bad ref name': - printf "%s\0" "create ~a " refs/heads/master >stdin && - test_must_fail git update-ref -z --stdin err && - grep "fatal: invalid ref format: ~a " err +expecting success of 0027.481 'checkout attr=text aeol=lf core.autocrlf=input core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_input_attr_text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 481 - checkout attr=text aeol=lf core.autocrlf=input core.eol=lf file=LF_nul -fatal: invalid ref format: ~a -ok 33 - update-ref --stdin -z fails create with bad ref name +expecting success of 0027.482 'ls-files --eol attr=text aeol=crlf core.autocrlf=input core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 482 - ls-files --eol attr=text aeol=crlf core.autocrlf=input core.eol=lf -expecting success of 1430.34 'update-ref --stdin -z fails update with bad ref name': - printf "%s\0" "update ~a" refs/heads/master "" >stdin && - test_must_fail git update-ref -z --stdin err && - grep "fatal: invalid ref format: ~a" err +expecting success of 0027.483 'checkout attr=text aeol=crlf core.autocrlf=input core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_input_attr_text_ CRLF crlf_false_attr__LF.txt + +ok 483 - checkout attr=text aeol=crlf core.autocrlf=input core.eol=lf file=LF -fatal: invalid ref format: ~a -ok 34 - update-ref --stdin -z fails update with bad ref name +expecting success of 0027.484 'checkout attr=text aeol=crlf core.autocrlf=input core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 484 - checkout attr=text aeol=crlf core.autocrlf=input core.eol=lf file=CRLF -expecting success of 1430.35 'update-ref --stdin -z fails delete with bad ref name': - printf "%s\0" "delete ~a" refs/heads/master >stdin && - test_must_fail git update-ref -z --stdin err && - grep "fatal: invalid ref format: ~a" err +expecting success of 0027.485 'checkout attr=text aeol=crlf core.autocrlf=input core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt + +ok 485 - checkout attr=text aeol=crlf core.autocrlf=input core.eol=lf file=CRLF_mix_LF -fatal: invalid ref format: ~a -ok 35 - update-ref --stdin -z fails delete with bad ref name +expecting success of 0027.486 'checkout attr=text aeol=crlf core.autocrlf=input core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_input_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 486 - checkout attr=text aeol=crlf core.autocrlf=input core.eol=lf file=LF_mix_CR -expecting success of 1430.36 'branch rejects HEAD as a branch name': - test_must_fail git branch HEAD HEAD^ && - test_must_fail git show-ref refs/heads/HEAD +expecting success of 0027.487 'checkout attr=text aeol=crlf core.autocrlf=input core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_input_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt + +ok 487 - checkout attr=text aeol=crlf core.autocrlf=input core.eol=lf file=LF_nul -fatal: 'HEAD' is not a valid branch name. -ok 36 - branch rejects HEAD as a branch name +expecting success of 0027.488 'ls-files --eol attr=auto aeol=lf core.autocrlf=input core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 488 - ls-files --eol attr=auto aeol=lf core.autocrlf=input core.eol=lf -expecting success of 1430.37 'checkout -b rejects HEAD as a branch name': - test_must_fail git checkout -B HEAD HEAD^ && - test_must_fail git show-ref refs/heads/HEAD +expecting success of 0027.489 'checkout attr=auto aeol=lf core.autocrlf=input core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_input_attr_auto_ LF crlf_false_attr__LF.txt + +ok 489 - checkout attr=auto aeol=lf core.autocrlf=input core.eol=lf file=LF -fatal: 'HEAD' is not a valid branch name. -ok 37 - checkout -b rejects HEAD as a branch name +expecting success of 0027.490 'checkout attr=auto aeol=lf core.autocrlf=input core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_input_attr_auto_ CRLF crlf_false_attr__CRLF.txt + +ok 490 - checkout attr=auto aeol=lf core.autocrlf=input core.eol=lf file=CRLF -expecting success of 1430.38 'update-ref can operate on refs/heads/HEAD': - git update-ref refs/heads/HEAD HEAD^ && - git show-ref refs/heads/HEAD && - git update-ref -d refs/heads/HEAD && - test_must_fail git show-ref refs/heads/HEAD +expecting success of 0027.491 'checkout attr=auto aeol=lf core.autocrlf=input core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_input_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 491 - checkout attr=auto aeol=lf core.autocrlf=input core.eol=lf file=CRLF_mix_LF -d79ce1670bdcb76e6d1da2ae095e890ccb326ae9 refs/heads/HEAD -ok 38 - update-ref can operate on refs/heads/HEAD +expecting success of 0027.492 'checkout attr=auto aeol=lf core.autocrlf=input core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_input_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 492 - checkout attr=auto aeol=lf core.autocrlf=input core.eol=lf file=LF_mix_CR -expecting success of 1430.39 'branch -d can remove refs/heads/HEAD': - git update-ref refs/heads/HEAD HEAD^ && - git branch -d HEAD && - test_must_fail git show-ref refs/heads/HEAD +expecting success of 0027.493 'checkout attr=auto aeol=lf core.autocrlf=input core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_input_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 493 - checkout attr=auto aeol=lf core.autocrlf=input core.eol=lf file=LF_nul -Deleted branch HEAD (was d79ce16). -ok 39 - branch -d can remove refs/heads/HEAD +expecting success of 0027.494 'ls-files --eol attr=auto aeol=crlf core.autocrlf=input core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 494 - ls-files --eol attr=auto aeol=crlf core.autocrlf=input core.eol=lf -expecting success of 1430.40 'branch -m can rename refs/heads/HEAD': - git update-ref refs/heads/HEAD HEAD^ && - git branch -m HEAD tail && - test_must_fail git show-ref refs/heads/HEAD && - git show-ref refs/heads/tail +expecting success of 0027.495 'checkout attr=auto aeol=crlf core.autocrlf=input core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_input_attr_auto_ CRLF crlf_false_attr__LF.txt + +ok 495 - checkout attr=auto aeol=crlf core.autocrlf=input core.eol=lf file=LF -warning: Renamed a misnamed branch 'HEAD' away -d79ce1670bdcb76e6d1da2ae095e890ccb326ae9 refs/heads/tail -ok 40 - branch -m can rename refs/heads/HEAD +expecting success of 0027.496 'checkout attr=auto aeol=crlf core.autocrlf=input core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_input_attr_auto_ CRLF crlf_false_attr__CRLF.txt + +ok 496 - checkout attr=auto aeol=crlf core.autocrlf=input core.eol=lf file=CRLF -expecting success of 1430.41 'branch -d can remove refs/heads/-dash': - git update-ref refs/heads/-dash HEAD^ && - git branch -d -- -dash && - test_must_fail git show-ref refs/heads/-dash +expecting success of 0027.497 'checkout attr=auto aeol=crlf core.autocrlf=input core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_input_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 497 - checkout attr=auto aeol=crlf core.autocrlf=input core.eol=lf file=CRLF_mix_LF -Deleted branch -dash (was d79ce16). -ok 41 - branch -d can remove refs/heads/-dash +expecting success of 0027.498 'checkout attr=auto aeol=crlf core.autocrlf=input core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_input_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 498 - checkout attr=auto aeol=crlf core.autocrlf=input core.eol=lf file=LF_mix_CR -expecting success of 1430.42 'branch -m can rename refs/heads/-dash': - git update-ref refs/heads/-dash HEAD^ && - git branch -m -- -dash dash && - test_must_fail git show-ref refs/heads/-dash && - git show-ref refs/heads/dash +expecting success of 0027.499 'checkout attr=auto aeol=crlf core.autocrlf=input core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_input_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 499 - checkout attr=auto aeol=crlf core.autocrlf=input core.eol=lf file=LF_nul -warning: Renamed a misnamed branch '-dash' away -d79ce1670bdcb76e6d1da2ae095e890ccb326ae9 refs/heads/dash -ok 42 - branch -m can rename refs/heads/-dash +expecting success of 0027.500 'ls-files --eol attr= aeol= core.autocrlf=false core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 500 - ls-files --eol attr= aeol= core.autocrlf=false core.eol=lf -# still have 2 known breakage(s) -# passed all remaining 40 test(s) -1..42 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1500-rev-parse.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1500-rev-parse/.git/ -expecting success of 1500.1 'setup': - mkdir -p sub/dir work && - cp -R .git repo.git +expecting success of 0027.501 'checkout attr= aeol= core.autocrlf=false core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_false_attr__ LF crlf_false_attr__LF.txt + +ok 501 - checkout attr= aeol= core.autocrlf=false core.eol=lf file=LF -ok 1 - setup +expecting success of 0027.502 'checkout attr= aeol= core.autocrlf=false core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_false_attr__ CRLF crlf_false_attr__CRLF.txt + +ok 502 - checkout attr= aeol= core.autocrlf=false core.eol=lf file=CRLF -expecting success of 1500.2 'toplevel: --is-bare-repository': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.503 'checkout attr= aeol= core.autocrlf=false core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_false_attr__ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 503 - checkout attr= aeol= core.autocrlf=false core.eol=lf file=CRLF_mix_LF - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.504 'checkout attr= aeol= core.autocrlf=false core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_false_attr__ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 504 - checkout attr= aeol= core.autocrlf=false core.eol=lf file=LF_mix_CR - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 2 - toplevel: --is-bare-repository +expecting success of 0027.505 'checkout attr= aeol= core.autocrlf=false core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_false_attr__ LF_nul crlf_false_attr__LF_nul.txt + +ok 505 - checkout attr= aeol= core.autocrlf=false core.eol=lf file=LF_nul -expecting success of 1500.3 'toplevel: --is-inside-git-dir': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.506 'ls-files --eol attr= aeol= core.autocrlf=true core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 506 - ls-files --eol attr= aeol= core.autocrlf=true core.eol=lf - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.507 'checkout attr= aeol= core.autocrlf=true core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_true_attr__ CRLF crlf_false_attr__LF.txt + +ok 507 - checkout attr= aeol= core.autocrlf=true core.eol=lf file=LF - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 3 - toplevel: --is-inside-git-dir +expecting success of 0027.508 'checkout attr= aeol= core.autocrlf=true core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_true_attr__ CRLF crlf_false_attr__CRLF.txt + +ok 508 - checkout attr= aeol= core.autocrlf=true core.eol=lf file=CRLF -expecting success of 1500.4 'toplevel: --is-inside-work-tree': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.509 'checkout attr= aeol= core.autocrlf=true core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_true_attr__ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 509 - checkout attr= aeol= core.autocrlf=true core.eol=lf file=CRLF_mix_LF - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.510 'checkout attr= aeol= core.autocrlf=true core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_true_attr__ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 510 - checkout attr= aeol= core.autocrlf=true core.eol=lf file=LF_mix_CR - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 4 - toplevel: --is-inside-work-tree +expecting success of 0027.511 'checkout attr= aeol= core.autocrlf=true core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_true_attr__ LF_nul crlf_false_attr__LF_nul.txt + +ok 511 - checkout attr= aeol= core.autocrlf=true core.eol=lf file=LF_nul -expecting success of 1500.5 'toplevel: --show-prefix': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.512 'ls-files --eol attr=auto aeol= core.autocrlf=true core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 512 - ls-files --eol attr=auto aeol= core.autocrlf=true core.eol=lf - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.513 'checkout attr=auto aeol= core.autocrlf=true core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_true_attr_auto_ CRLF crlf_false_attr__LF.txt + +ok 513 - checkout attr=auto aeol= core.autocrlf=true core.eol=lf file=LF - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 5 - toplevel: --show-prefix +expecting success of 0027.514 'checkout attr=auto aeol= core.autocrlf=true core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_true_attr_auto_ CRLF crlf_false_attr__CRLF.txt + +ok 514 - checkout attr=auto aeol= core.autocrlf=true core.eol=lf file=CRLF -expecting success of 1500.6 'toplevel: --git-dir': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.515 'checkout attr=auto aeol= core.autocrlf=true core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_true_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 515 - checkout attr=auto aeol= core.autocrlf=true core.eol=lf file=CRLF_mix_LF - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.516 'checkout attr=auto aeol= core.autocrlf=true core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_true_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 516 - checkout attr=auto aeol= core.autocrlf=true core.eol=lf file=LF_mix_CR - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 6 - toplevel: --git-dir +expecting success of 0027.517 'checkout attr=auto aeol= core.autocrlf=true core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_true_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 517 - checkout attr=auto aeol= core.autocrlf=true core.eol=lf file=LF_nul -expecting success of 1500.7 'toplevel: --absolute-git-dir': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.518 'ls-files --eol attr=text aeol= core.autocrlf=true core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 518 - ls-files --eol attr=text aeol= core.autocrlf=true core.eol=lf - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.519 'checkout attr=text aeol= core.autocrlf=true core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_true_attr_text_ CRLF crlf_false_attr__LF.txt + +ok 519 - checkout attr=text aeol= core.autocrlf=true core.eol=lf file=LF - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 7 - toplevel: --absolute-git-dir +expecting success of 0027.520 'checkout attr=text aeol= core.autocrlf=true core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 520 - checkout attr=text aeol= core.autocrlf=true core.eol=lf file=CRLF -expecting success of 1500.8 '.git/: --is-bare-repository': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.521 'checkout attr=text aeol= core.autocrlf=true core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt + +ok 521 - checkout attr=text aeol= core.autocrlf=true core.eol=lf file=CRLF_mix_LF - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.522 'checkout attr=text aeol= core.autocrlf=true core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_true_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 522 - checkout attr=text aeol= core.autocrlf=true core.eol=lf file=LF_mix_CR - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 8 - .git/: --is-bare-repository +expecting success of 0027.523 'checkout attr=text aeol= core.autocrlf=true core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_true_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt + +ok 523 - checkout attr=text aeol= core.autocrlf=true core.eol=lf file=LF_nul -expecting success of 1500.9 '.git/: --is-inside-git-dir': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.524 'ls-files --eol attr=text aeol= core.autocrlf=input core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 524 - ls-files --eol attr=text aeol= core.autocrlf=input core.eol=lf - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.525 'checkout attr=text aeol= core.autocrlf=input core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_input_attr_text_ LF crlf_false_attr__LF.txt + +ok 525 - checkout attr=text aeol= core.autocrlf=input core.eol=lf file=LF - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 9 - .git/: --is-inside-git-dir +expecting success of 0027.526 'checkout attr=text aeol= core.autocrlf=input core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 526 - checkout attr=text aeol= core.autocrlf=input core.eol=lf file=CRLF -expecting success of 1500.10 '.git/: --is-inside-work-tree': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && - - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.527 'checkout attr=text aeol= core.autocrlf=input core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_input_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 527 - checkout attr=text aeol= core.autocrlf=input core.eol=lf file=CRLF_mix_LF - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 10 - .git/: --is-inside-work-tree +expecting success of 0027.528 'checkout attr=text aeol= core.autocrlf=input core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_input_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 528 - checkout attr=text aeol= core.autocrlf=input core.eol=lf file=LF_mix_CR -expecting success of 1500.11 '.git/: --show-prefix': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.529 'checkout attr=text aeol= core.autocrlf=input core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_input_attr_text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 529 - checkout attr=text aeol= core.autocrlf=input core.eol=lf file=LF_nul - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.530 'ls-files --eol attr=auto aeol= core.autocrlf=input core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 530 - ls-files --eol attr=auto aeol= core.autocrlf=input core.eol=lf - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 11 - .git/: --show-prefix +expecting success of 0027.531 'checkout attr=auto aeol= core.autocrlf=input core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_input_attr_auto_ LF crlf_false_attr__LF.txt + +ok 531 - checkout attr=auto aeol= core.autocrlf=input core.eol=lf file=LF -expecting success of 1500.12 '.git/: --git-dir': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.532 'checkout attr=auto aeol= core.autocrlf=input core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_input_attr_auto_ CRLF crlf_false_attr__CRLF.txt + +ok 532 - checkout attr=auto aeol= core.autocrlf=input core.eol=lf file=CRLF - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.533 'checkout attr=auto aeol= core.autocrlf=input core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_input_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 533 - checkout attr=auto aeol= core.autocrlf=input core.eol=lf file=CRLF_mix_LF - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 12 - .git/: --git-dir +expecting success of 0027.534 'checkout attr=auto aeol= core.autocrlf=input core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_input_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 534 - checkout attr=auto aeol= core.autocrlf=input core.eol=lf file=LF_mix_CR -expecting success of 1500.13 '.git/: --absolute-git-dir': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.535 'checkout attr=auto aeol= core.autocrlf=input core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_input_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 535 - checkout attr=auto aeol= core.autocrlf=input core.eol=lf file=LF_nul - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.536 'ls-files --eol attr=-text aeol= core.autocrlf=true core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 536 - ls-files --eol attr=-text aeol= core.autocrlf=true core.eol=crlf - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 13 - .git/: --absolute-git-dir +expecting success of 0027.537 'checkout attr=-text aeol= core.autocrlf=true core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_true_attr_-text_ LF crlf_false_attr__LF.txt + +ok 537 - checkout attr=-text aeol= core.autocrlf=true core.eol=crlf file=LF -expecting success of 1500.14 '.git/objects/: --is-bare-repository': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.538 'checkout attr=-text aeol= core.autocrlf=true core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_true_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 538 - checkout attr=-text aeol= core.autocrlf=true core.eol=crlf file=CRLF - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.539 'checkout attr=-text aeol= core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_true_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 539 - checkout attr=-text aeol= core.autocrlf=true core.eol=crlf file=CRLF_mix_LF - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 14 - .git/objects/: --is-bare-repository +expecting success of 0027.540 'checkout attr=-text aeol= core.autocrlf=true core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_true_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 540 - checkout attr=-text aeol= core.autocrlf=true core.eol=crlf file=LF_mix_CR -expecting success of 1500.15 '.git/objects/: --is-inside-git-dir': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.541 'checkout attr=-text aeol= core.autocrlf=true core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_true_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 541 - checkout attr=-text aeol= core.autocrlf=true core.eol=crlf file=LF_nul - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.542 'ls-files --eol attr=-text aeol=lf core.autocrlf=true core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 542 - ls-files --eol attr=-text aeol=lf core.autocrlf=true core.eol=crlf - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 15 - .git/objects/: --is-inside-git-dir +expecting success of 0027.543 'checkout attr=-text aeol=lf core.autocrlf=true core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_true_attr_-text_ LF crlf_false_attr__LF.txt + +ok 543 - checkout attr=-text aeol=lf core.autocrlf=true core.eol=crlf file=LF -expecting success of 1500.16 '.git/objects/: --is-inside-work-tree': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.544 'checkout attr=-text aeol=lf core.autocrlf=true core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_true_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 544 - checkout attr=-text aeol=lf core.autocrlf=true core.eol=crlf file=CRLF - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.545 'checkout attr=-text aeol=lf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_true_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 545 - checkout attr=-text aeol=lf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 16 - .git/objects/: --is-inside-work-tree +expecting success of 0027.546 'checkout attr=-text aeol=lf core.autocrlf=true core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_true_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 546 - checkout attr=-text aeol=lf core.autocrlf=true core.eol=crlf file=LF_mix_CR -expecting success of 1500.17 '.git/objects/: --show-prefix': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.547 'checkout attr=-text aeol=lf core.autocrlf=true core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_true_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 547 - checkout attr=-text aeol=lf core.autocrlf=true core.eol=crlf file=LF_nul - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.548 'ls-files --eol attr=-text aeol=crlf core.autocrlf=true core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 548 - ls-files --eol attr=-text aeol=crlf core.autocrlf=true core.eol=crlf - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 17 - .git/objects/: --show-prefix +expecting success of 0027.549 'checkout attr=-text aeol=crlf core.autocrlf=true core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_true_attr_-text_ LF crlf_false_attr__LF.txt + +ok 549 - checkout attr=-text aeol=crlf core.autocrlf=true core.eol=crlf file=LF -expecting success of 1500.18 '.git/objects/: --git-dir': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.550 'checkout attr=-text aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_true_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 550 - checkout attr=-text aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.551 'checkout attr=-text aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_true_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 551 - checkout attr=-text aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 18 - .git/objects/: --git-dir +expecting success of 0027.552 'checkout attr=-text aeol=crlf core.autocrlf=true core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_true_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 552 - checkout attr=-text aeol=crlf core.autocrlf=true core.eol=crlf file=LF_mix_CR -expecting success of 1500.19 '.git/objects/: --absolute-git-dir': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.553 'checkout attr=-text aeol=crlf core.autocrlf=true core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_true_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 553 - checkout attr=-text aeol=crlf core.autocrlf=true core.eol=crlf file=LF_nul - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.554 'ls-files --eol attr=text aeol=lf core.autocrlf=true core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 554 - ls-files --eol attr=text aeol=lf core.autocrlf=true core.eol=crlf - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 19 - .git/objects/: --absolute-git-dir +expecting success of 0027.555 'checkout attr=text aeol=lf core.autocrlf=true core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_true_attr_text_ LF crlf_false_attr__LF.txt + +ok 555 - checkout attr=text aeol=lf core.autocrlf=true core.eol=crlf file=LF -expecting success of 1500.20 'subdirectory: --is-bare-repository': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.556 'checkout attr=text aeol=lf core.autocrlf=true core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 556 - checkout attr=text aeol=lf core.autocrlf=true core.eol=crlf file=CRLF - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.557 'checkout attr=text aeol=lf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 557 - checkout attr=text aeol=lf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 20 - subdirectory: --is-bare-repository +expecting success of 0027.558 'checkout attr=text aeol=lf core.autocrlf=true core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_true_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 558 - checkout attr=text aeol=lf core.autocrlf=true core.eol=crlf file=LF_mix_CR -expecting success of 1500.21 'subdirectory: --is-inside-git-dir': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.559 'checkout attr=text aeol=lf core.autocrlf=true core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_true_attr_text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 559 - checkout attr=text aeol=lf core.autocrlf=true core.eol=crlf file=LF_nul - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.560 'ls-files --eol attr=text aeol=crlf core.autocrlf=true core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 560 - ls-files --eol attr=text aeol=crlf core.autocrlf=true core.eol=crlf - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 21 - subdirectory: --is-inside-git-dir +expecting success of 0027.561 'checkout attr=text aeol=crlf core.autocrlf=true core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF crlf_false_attr__LF.txt + +ok 561 - checkout attr=text aeol=crlf core.autocrlf=true core.eol=crlf file=LF -expecting success of 1500.22 'subdirectory: --is-inside-work-tree': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.562 'checkout attr=text aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 562 - checkout attr=text aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.563 'checkout attr=text aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt + +ok 563 - checkout attr=text aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 22 - subdirectory: --is-inside-work-tree +expecting success of 0027.564 'checkout attr=text aeol=crlf core.autocrlf=true core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 564 - checkout attr=text aeol=crlf core.autocrlf=true core.eol=crlf file=LF_mix_CR -expecting success of 1500.23 'subdirectory: --show-prefix': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.565 'checkout attr=text aeol=crlf core.autocrlf=true core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt + +ok 565 - checkout attr=text aeol=crlf core.autocrlf=true core.eol=crlf file=LF_nul - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.566 'ls-files --eol attr=auto aeol=lf core.autocrlf=true core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 566 - ls-files --eol attr=auto aeol=lf core.autocrlf=true core.eol=crlf - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 23 - subdirectory: --show-prefix +expecting success of 0027.567 'checkout attr=auto aeol=lf core.autocrlf=true core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_true_attr_auto_ LF crlf_false_attr__LF.txt + +ok 567 - checkout attr=auto aeol=lf core.autocrlf=true core.eol=crlf file=LF -expecting success of 1500.24 'subdirectory: --git-dir': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.568 'checkout attr=auto aeol=lf core.autocrlf=true core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_true_attr_auto_ CRLF crlf_false_attr__CRLF.txt + +ok 568 - checkout attr=auto aeol=lf core.autocrlf=true core.eol=crlf file=CRLF - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.569 'checkout attr=auto aeol=lf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_true_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 569 - checkout attr=auto aeol=lf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 24 - subdirectory: --git-dir +expecting success of 0027.570 'checkout attr=auto aeol=lf core.autocrlf=true core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_true_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 570 - checkout attr=auto aeol=lf core.autocrlf=true core.eol=crlf file=LF_mix_CR -expecting success of 1500.25 'subdirectory: --absolute-git-dir': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.571 'checkout attr=auto aeol=lf core.autocrlf=true core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_true_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 571 - checkout attr=auto aeol=lf core.autocrlf=true core.eol=crlf file=LF_nul - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.572 'ls-files --eol attr=auto aeol=crlf core.autocrlf=true core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 572 - ls-files --eol attr=auto aeol=crlf core.autocrlf=true core.eol=crlf - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 25 - subdirectory: --absolute-git-dir +expecting success of 0027.573 'checkout attr=auto aeol=crlf core.autocrlf=true core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_true_attr_auto_ CRLF crlf_false_attr__LF.txt + +ok 573 - checkout attr=auto aeol=crlf core.autocrlf=true core.eol=crlf file=LF -expecting success of 1500.26 'core.bare = true: --is-bare-repository': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.574 'checkout attr=auto aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_true_attr_auto_ CRLF crlf_false_attr__CRLF.txt + +ok 574 - checkout attr=auto aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.575 'checkout attr=auto aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_true_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 575 - checkout attr=auto aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 26 - core.bare = true: --is-bare-repository +expecting success of 0027.576 'checkout attr=auto aeol=crlf core.autocrlf=true core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_true_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 576 - checkout attr=auto aeol=crlf core.autocrlf=true core.eol=crlf file=LF_mix_CR -expecting success of 1500.27 'core.bare = true: --is-inside-git-dir': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.577 'checkout attr=auto aeol=crlf core.autocrlf=true core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_true_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 577 - checkout attr=auto aeol=crlf core.autocrlf=true core.eol=crlf file=LF_nul - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.578 'ls-files --eol attr=-text aeol= core.autocrlf=false core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 578 - ls-files --eol attr=-text aeol= core.autocrlf=false core.eol=crlf - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 27 - core.bare = true: --is-inside-git-dir +expecting success of 0027.579 'checkout attr=-text aeol= core.autocrlf=false core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_false_attr_-text_ LF crlf_false_attr__LF.txt + +ok 579 - checkout attr=-text aeol= core.autocrlf=false core.eol=crlf file=LF -expecting success of 1500.28 'core.bare = true: --is-inside-work-tree': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.580 'checkout attr=-text aeol= core.autocrlf=false core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_false_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 580 - checkout attr=-text aeol= core.autocrlf=false core.eol=crlf file=CRLF - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.581 'checkout attr=-text aeol= core.autocrlf=false core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_false_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 581 - checkout attr=-text aeol= core.autocrlf=false core.eol=crlf file=CRLF_mix_LF - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 28 - core.bare = true: --is-inside-work-tree +expecting success of 0027.582 'checkout attr=-text aeol= core.autocrlf=false core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_false_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 582 - checkout attr=-text aeol= core.autocrlf=false core.eol=crlf file=LF_mix_CR -expecting success of 1500.29 'core.bare undefined: --is-bare-repository': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.583 'checkout attr=-text aeol= core.autocrlf=false core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_false_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 583 - checkout attr=-text aeol= core.autocrlf=false core.eol=crlf file=LF_nul - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.584 'ls-files --eol attr=-text aeol=lf core.autocrlf=false core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 584 - ls-files --eol attr=-text aeol=lf core.autocrlf=false core.eol=crlf - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 29 - core.bare undefined: --is-bare-repository +expecting success of 0027.585 'checkout attr=-text aeol=lf core.autocrlf=false core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_false_attr_-text_ LF crlf_false_attr__LF.txt + +ok 585 - checkout attr=-text aeol=lf core.autocrlf=false core.eol=crlf file=LF -expecting success of 1500.30 'core.bare undefined: --is-inside-git-dir': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.586 'checkout attr=-text aeol=lf core.autocrlf=false core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_false_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 586 - checkout attr=-text aeol=lf core.autocrlf=false core.eol=crlf file=CRLF - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.587 'checkout attr=-text aeol=lf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_false_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 587 - checkout attr=-text aeol=lf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 30 - core.bare undefined: --is-inside-git-dir +expecting success of 0027.588 'checkout attr=-text aeol=lf core.autocrlf=false core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_false_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 588 - checkout attr=-text aeol=lf core.autocrlf=false core.eol=crlf file=LF_mix_CR -expecting success of 1500.31 'core.bare undefined: --is-inside-work-tree': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.589 'checkout attr=-text aeol=lf core.autocrlf=false core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_false_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 589 - checkout attr=-text aeol=lf core.autocrlf=false core.eol=crlf file=LF_nul - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.590 'ls-files --eol attr=-text aeol=crlf core.autocrlf=false core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 590 - ls-files --eol attr=-text aeol=crlf core.autocrlf=false core.eol=crlf - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 31 - core.bare undefined: --is-inside-work-tree +expecting success of 0027.591 'checkout attr=-text aeol=crlf core.autocrlf=false core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_false_attr_-text_ LF crlf_false_attr__LF.txt + +ok 591 - checkout attr=-text aeol=crlf core.autocrlf=false core.eol=crlf file=LF -expecting success of 1500.32 'GIT_DIR=../.git, core.bare = false: --is-bare-repository': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.592 'checkout attr=-text aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_false_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 592 - checkout attr=-text aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.593 'checkout attr=-text aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_false_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 593 - checkout attr=-text aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 32 - GIT_DIR=../.git, core.bare = false: --is-bare-repository +expecting success of 0027.594 'checkout attr=-text aeol=crlf core.autocrlf=false core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_false_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 594 - checkout attr=-text aeol=crlf core.autocrlf=false core.eol=crlf file=LF_mix_CR -expecting success of 1500.33 'GIT_DIR=../.git, core.bare = false: --is-inside-git-dir': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.595 'checkout attr=-text aeol=crlf core.autocrlf=false core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_false_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 595 - checkout attr=-text aeol=crlf core.autocrlf=false core.eol=crlf file=LF_nul - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.596 'ls-files --eol attr=text aeol=lf core.autocrlf=false core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 596 - ls-files --eol attr=text aeol=lf core.autocrlf=false core.eol=crlf - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 33 - GIT_DIR=../.git, core.bare = false: --is-inside-git-dir +expecting success of 0027.597 'checkout attr=text aeol=lf core.autocrlf=false core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_false_attr_text_ LF crlf_false_attr__LF.txt + +ok 597 - checkout attr=text aeol=lf core.autocrlf=false core.eol=crlf file=LF -expecting success of 1500.34 'GIT_DIR=../.git, core.bare = false: --is-inside-work-tree': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.598 'checkout attr=text aeol=lf core.autocrlf=false core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 598 - checkout attr=text aeol=lf core.autocrlf=false core.eol=crlf file=CRLF - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.599 'checkout attr=text aeol=lf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 599 - checkout attr=text aeol=lf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 34 - GIT_DIR=../.git, core.bare = false: --is-inside-work-tree +expecting success of 0027.600 'checkout attr=text aeol=lf core.autocrlf=false core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_false_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 600 - checkout attr=text aeol=lf core.autocrlf=false core.eol=crlf file=LF_mix_CR -expecting success of 1500.35 'GIT_DIR=../.git, core.bare = false: --show-prefix': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.601 'checkout attr=text aeol=lf core.autocrlf=false core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_false_attr_text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 601 - checkout attr=text aeol=lf core.autocrlf=false core.eol=crlf file=LF_nul - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.602 'ls-files --eol attr=text aeol=crlf core.autocrlf=false core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 602 - ls-files --eol attr=text aeol=crlf core.autocrlf=false core.eol=crlf - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 35 - GIT_DIR=../.git, core.bare = false: --show-prefix +expecting success of 0027.603 'checkout attr=text aeol=crlf core.autocrlf=false core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF crlf_false_attr__LF.txt + +ok 603 - checkout attr=text aeol=crlf core.autocrlf=false core.eol=crlf file=LF -expecting success of 1500.36 'GIT_DIR=../.git, core.bare = false: --git-dir': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.604 'checkout attr=text aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 604 - checkout attr=text aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.605 'checkout attr=text aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt + +ok 605 - checkout attr=text aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 36 - GIT_DIR=../.git, core.bare = false: --git-dir +expecting success of 0027.606 'checkout attr=text aeol=crlf core.autocrlf=false core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 606 - checkout attr=text aeol=crlf core.autocrlf=false core.eol=crlf file=LF_mix_CR -expecting success of 1500.37 'GIT_DIR=../.git, core.bare = false: --absolute-git-dir': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.607 'checkout attr=text aeol=crlf core.autocrlf=false core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt + +ok 607 - checkout attr=text aeol=crlf core.autocrlf=false core.eol=crlf file=LF_nul - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.608 'ls-files --eol attr=auto aeol=lf core.autocrlf=false core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 608 - ls-files --eol attr=auto aeol=lf core.autocrlf=false core.eol=crlf - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 37 - GIT_DIR=../.git, core.bare = false: --absolute-git-dir +expecting success of 0027.609 'checkout attr=auto aeol=lf core.autocrlf=false core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_false_attr_auto_ LF crlf_false_attr__LF.txt + +ok 609 - checkout attr=auto aeol=lf core.autocrlf=false core.eol=crlf file=LF -expecting success of 1500.38 'GIT_DIR=../.git, core.bare = true: --is-bare-repository': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.610 'checkout attr=auto aeol=lf core.autocrlf=false core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_false_attr_auto_ CRLF crlf_false_attr__CRLF.txt + +ok 610 - checkout attr=auto aeol=lf core.autocrlf=false core.eol=crlf file=CRLF - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.611 'checkout attr=auto aeol=lf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_false_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 611 - checkout attr=auto aeol=lf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 38 - GIT_DIR=../.git, core.bare = true: --is-bare-repository +expecting success of 0027.612 'checkout attr=auto aeol=lf core.autocrlf=false core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_false_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 612 - checkout attr=auto aeol=lf core.autocrlf=false core.eol=crlf file=LF_mix_CR -expecting success of 1500.39 'GIT_DIR=../.git, core.bare = true: --is-inside-git-dir': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.613 'checkout attr=auto aeol=lf core.autocrlf=false core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_false_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 613 - checkout attr=auto aeol=lf core.autocrlf=false core.eol=crlf file=LF_nul - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.614 'ls-files --eol attr=auto aeol=crlf core.autocrlf=false core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 614 - ls-files --eol attr=auto aeol=crlf core.autocrlf=false core.eol=crlf - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 39 - GIT_DIR=../.git, core.bare = true: --is-inside-git-dir +expecting success of 0027.615 'checkout attr=auto aeol=crlf core.autocrlf=false core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_false_attr_auto_ CRLF crlf_false_attr__LF.txt + +ok 615 - checkout attr=auto aeol=crlf core.autocrlf=false core.eol=crlf file=LF -expecting success of 1500.40 'GIT_DIR=../.git, core.bare = true: --is-inside-work-tree': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.616 'checkout attr=auto aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_false_attr_auto_ CRLF crlf_false_attr__CRLF.txt + +ok 616 - checkout attr=auto aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.617 'checkout attr=auto aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_false_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 617 - checkout attr=auto aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 40 - GIT_DIR=../.git, core.bare = true: --is-inside-work-tree +expecting success of 0027.618 'checkout attr=auto aeol=crlf core.autocrlf=false core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_false_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 618 - checkout attr=auto aeol=crlf core.autocrlf=false core.eol=crlf file=LF_mix_CR -expecting success of 1500.41 'GIT_DIR=../.git, core.bare = true: --show-prefix': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.619 'checkout attr=auto aeol=crlf core.autocrlf=false core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_false_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 619 - checkout attr=auto aeol=crlf core.autocrlf=false core.eol=crlf file=LF_nul - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.620 'ls-files --eol attr=-text aeol= core.autocrlf=input core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 620 - ls-files --eol attr=-text aeol= core.autocrlf=input core.eol=crlf - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 41 - GIT_DIR=../.git, core.bare = true: --show-prefix +expecting success of 0027.621 'checkout attr=-text aeol= core.autocrlf=input core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_input_attr_-text_ LF crlf_false_attr__LF.txt + +ok 621 - checkout attr=-text aeol= core.autocrlf=input core.eol=crlf file=LF -expecting success of 1500.42 'GIT_DIR=../.git, core.bare undefined: --is-bare-repository': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.622 'checkout attr=-text aeol= core.autocrlf=input core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_input_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 622 - checkout attr=-text aeol= core.autocrlf=input core.eol=crlf file=CRLF - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.623 'checkout attr=-text aeol= core.autocrlf=input core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_input_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 623 - checkout attr=-text aeol= core.autocrlf=input core.eol=crlf file=CRLF_mix_LF - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 42 - GIT_DIR=../.git, core.bare undefined: --is-bare-repository +expecting success of 0027.624 'checkout attr=-text aeol= core.autocrlf=input core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_input_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 624 - checkout attr=-text aeol= core.autocrlf=input core.eol=crlf file=LF_mix_CR -expecting success of 1500.43 'GIT_DIR=../.git, core.bare undefined: --is-inside-git-dir': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.625 'checkout attr=-text aeol= core.autocrlf=input core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_input_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 625 - checkout attr=-text aeol= core.autocrlf=input core.eol=crlf file=LF_nul - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.626 'ls-files --eol attr=-text aeol=lf core.autocrlf=input core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 626 - ls-files --eol attr=-text aeol=lf core.autocrlf=input core.eol=crlf - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 43 - GIT_DIR=../.git, core.bare undefined: --is-inside-git-dir +expecting success of 0027.627 'checkout attr=-text aeol=lf core.autocrlf=input core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_input_attr_-text_ LF crlf_false_attr__LF.txt + +ok 627 - checkout attr=-text aeol=lf core.autocrlf=input core.eol=crlf file=LF -expecting success of 1500.44 'GIT_DIR=../.git, core.bare undefined: --is-inside-work-tree': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.628 'checkout attr=-text aeol=lf core.autocrlf=input core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_input_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 628 - checkout attr=-text aeol=lf core.autocrlf=input core.eol=crlf file=CRLF - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.629 'checkout attr=-text aeol=lf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_input_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 629 - checkout attr=-text aeol=lf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 44 - GIT_DIR=../.git, core.bare undefined: --is-inside-work-tree +expecting success of 0027.630 'checkout attr=-text aeol=lf core.autocrlf=input core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_input_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 630 - checkout attr=-text aeol=lf core.autocrlf=input core.eol=crlf file=LF_mix_CR -expecting success of 1500.45 'GIT_DIR=../.git, core.bare undefined: --show-prefix': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.631 'checkout attr=-text aeol=lf core.autocrlf=input core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_input_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 631 - checkout attr=-text aeol=lf core.autocrlf=input core.eol=crlf file=LF_nul - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.632 'ls-files --eol attr=-text aeol=crlf core.autocrlf=input core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 632 - ls-files --eol attr=-text aeol=crlf core.autocrlf=input core.eol=crlf - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 45 - GIT_DIR=../.git, core.bare undefined: --show-prefix +expecting success of 0027.633 'checkout attr=-text aeol=crlf core.autocrlf=input core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_input_attr_-text_ LF crlf_false_attr__LF.txt + +ok 633 - checkout attr=-text aeol=crlf core.autocrlf=input core.eol=crlf file=LF -expecting success of 1500.46 'GIT_DIR=../repo.git, core.bare = false: --is-bare-repository': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.634 'checkout attr=-text aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_input_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 634 - checkout attr=-text aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.635 'checkout attr=-text aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_input_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 635 - checkout attr=-text aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 46 - GIT_DIR=../repo.git, core.bare = false: --is-bare-repository +expecting success of 0027.636 'checkout attr=-text aeol=crlf core.autocrlf=input core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_input_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 636 - checkout attr=-text aeol=crlf core.autocrlf=input core.eol=crlf file=LF_mix_CR -expecting success of 1500.47 'GIT_DIR=../repo.git, core.bare = false: --is-inside-git-dir': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.637 'checkout attr=-text aeol=crlf core.autocrlf=input core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_input_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 637 - checkout attr=-text aeol=crlf core.autocrlf=input core.eol=crlf file=LF_nul - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.638 'ls-files --eol attr=text aeol=lf core.autocrlf=input core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 638 - ls-files --eol attr=text aeol=lf core.autocrlf=input core.eol=crlf - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 47 - GIT_DIR=../repo.git, core.bare = false: --is-inside-git-dir +expecting success of 0027.639 'checkout attr=text aeol=lf core.autocrlf=input core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_input_attr_text_ LF crlf_false_attr__LF.txt + +ok 639 - checkout attr=text aeol=lf core.autocrlf=input core.eol=crlf file=LF -expecting success of 1500.48 'GIT_DIR=../repo.git, core.bare = false: --is-inside-work-tree': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.640 'checkout attr=text aeol=lf core.autocrlf=input core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 640 - checkout attr=text aeol=lf core.autocrlf=input core.eol=crlf file=CRLF - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.641 'checkout attr=text aeol=lf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_input_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 641 - checkout attr=text aeol=lf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 48 - GIT_DIR=../repo.git, core.bare = false: --is-inside-work-tree +expecting success of 0027.642 'checkout attr=text aeol=lf core.autocrlf=input core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_input_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 642 - checkout attr=text aeol=lf core.autocrlf=input core.eol=crlf file=LF_mix_CR -expecting success of 1500.49 'GIT_DIR=../repo.git, core.bare = false: --show-prefix': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.643 'checkout attr=text aeol=lf core.autocrlf=input core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_input_attr_text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 643 - checkout attr=text aeol=lf core.autocrlf=input core.eol=crlf file=LF_nul - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.644 'ls-files --eol attr=text aeol=crlf core.autocrlf=input core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 644 - ls-files --eol attr=text aeol=crlf core.autocrlf=input core.eol=crlf - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 49 - GIT_DIR=../repo.git, core.bare = false: --show-prefix +expecting success of 0027.645 'checkout attr=text aeol=crlf core.autocrlf=input core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_input_attr_text_ CRLF crlf_false_attr__LF.txt + +ok 645 - checkout attr=text aeol=crlf core.autocrlf=input core.eol=crlf file=LF -expecting success of 1500.50 'GIT_DIR=../repo.git, core.bare = false: --git-dir': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.646 'checkout attr=text aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 646 - checkout attr=text aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.647 'checkout attr=text aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt + +ok 647 - checkout attr=text aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 50 - GIT_DIR=../repo.git, core.bare = false: --git-dir +expecting success of 0027.648 'checkout attr=text aeol=crlf core.autocrlf=input core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_input_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 648 - checkout attr=text aeol=crlf core.autocrlf=input core.eol=crlf file=LF_mix_CR -expecting success of 1500.51 'GIT_DIR=../repo.git, core.bare = false: --absolute-git-dir': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.649 'checkout attr=text aeol=crlf core.autocrlf=input core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_input_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt + +ok 649 - checkout attr=text aeol=crlf core.autocrlf=input core.eol=crlf file=LF_nul - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.650 'ls-files --eol attr=auto aeol=lf core.autocrlf=input core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 650 - ls-files --eol attr=auto aeol=lf core.autocrlf=input core.eol=crlf - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 51 - GIT_DIR=../repo.git, core.bare = false: --absolute-git-dir +expecting success of 0027.651 'checkout attr=auto aeol=lf core.autocrlf=input core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_input_attr_auto_ LF crlf_false_attr__LF.txt + +ok 651 - checkout attr=auto aeol=lf core.autocrlf=input core.eol=crlf file=LF -expecting success of 1500.52 'GIT_DIR=../repo.git, core.bare = true: --is-bare-repository': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.652 'checkout attr=auto aeol=lf core.autocrlf=input core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_input_attr_auto_ CRLF crlf_false_attr__CRLF.txt + +ok 652 - checkout attr=auto aeol=lf core.autocrlf=input core.eol=crlf file=CRLF - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.653 'checkout attr=auto aeol=lf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_input_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 653 - checkout attr=auto aeol=lf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 52 - GIT_DIR=../repo.git, core.bare = true: --is-bare-repository +expecting success of 0027.654 'checkout attr=auto aeol=lf core.autocrlf=input core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_input_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 654 - checkout attr=auto aeol=lf core.autocrlf=input core.eol=crlf file=LF_mix_CR -expecting success of 1500.53 'GIT_DIR=../repo.git, core.bare = true: --is-inside-git-dir': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.655 'checkout attr=auto aeol=lf core.autocrlf=input core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_input_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 655 - checkout attr=auto aeol=lf core.autocrlf=input core.eol=crlf file=LF_nul - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.656 'ls-files --eol attr=auto aeol=crlf core.autocrlf=input core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 656 - ls-files --eol attr=auto aeol=crlf core.autocrlf=input core.eol=crlf - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 53 - GIT_DIR=../repo.git, core.bare = true: --is-inside-git-dir +expecting success of 0027.657 'checkout attr=auto aeol=crlf core.autocrlf=input core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_input_attr_auto_ CRLF crlf_false_attr__LF.txt + +ok 657 - checkout attr=auto aeol=crlf core.autocrlf=input core.eol=crlf file=LF -expecting success of 1500.54 'GIT_DIR=../repo.git, core.bare = true: --is-inside-work-tree': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.658 'checkout attr=auto aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_input_attr_auto_ CRLF crlf_false_attr__CRLF.txt + +ok 658 - checkout attr=auto aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.659 'checkout attr=auto aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_input_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 659 - checkout attr=auto aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 54 - GIT_DIR=../repo.git, core.bare = true: --is-inside-work-tree +expecting success of 0027.660 'checkout attr=auto aeol=crlf core.autocrlf=input core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_input_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 660 - checkout attr=auto aeol=crlf core.autocrlf=input core.eol=crlf file=LF_mix_CR -expecting success of 1500.55 'GIT_DIR=../repo.git, core.bare = true: --show-prefix': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.661 'checkout attr=auto aeol=crlf core.autocrlf=input core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_input_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 661 - checkout attr=auto aeol=crlf core.autocrlf=input core.eol=crlf file=LF_nul - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.662 'ls-files --eol attr= aeol= core.autocrlf=false core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 662 - ls-files --eol attr= aeol= core.autocrlf=false core.eol=crlf - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 55 - GIT_DIR=../repo.git, core.bare = true: --show-prefix +expecting success of 0027.663 'checkout attr= aeol= core.autocrlf=false core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_false_attr__ LF crlf_false_attr__LF.txt + +ok 663 - checkout attr= aeol= core.autocrlf=false core.eol=crlf file=LF -expecting success of 1500.56 'GIT_DIR=../repo.git, core.bare undefined: --is-bare-repository': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.664 'checkout attr= aeol= core.autocrlf=false core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_false_attr__ CRLF crlf_false_attr__CRLF.txt + +ok 664 - checkout attr= aeol= core.autocrlf=false core.eol=crlf file=CRLF - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.665 'checkout attr= aeol= core.autocrlf=false core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_false_attr__ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 665 - checkout attr= aeol= core.autocrlf=false core.eol=crlf file=CRLF_mix_LF - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 56 - GIT_DIR=../repo.git, core.bare undefined: --is-bare-repository +expecting success of 0027.666 'checkout attr= aeol= core.autocrlf=false core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_false_attr__ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 666 - checkout attr= aeol= core.autocrlf=false core.eol=crlf file=LF_mix_CR -expecting success of 1500.57 'GIT_DIR=../repo.git, core.bare undefined: --is-inside-git-dir': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.667 'checkout attr= aeol= core.autocrlf=false core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_false_attr__ LF_nul crlf_false_attr__LF_nul.txt + +ok 667 - checkout attr= aeol= core.autocrlf=false core.eol=crlf file=LF_nul - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.668 'ls-files --eol attr= aeol= core.autocrlf=true core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 668 - ls-files --eol attr= aeol= core.autocrlf=true core.eol=crlf - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 57 - GIT_DIR=../repo.git, core.bare undefined: --is-inside-git-dir +expecting success of 0027.669 'checkout attr= aeol= core.autocrlf=true core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_true_attr__ CRLF crlf_false_attr__LF.txt + +ok 669 - checkout attr= aeol= core.autocrlf=true core.eol=crlf file=LF -expecting success of 1500.58 'GIT_DIR=../repo.git, core.bare undefined: --is-inside-work-tree': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.670 'checkout attr= aeol= core.autocrlf=true core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_true_attr__ CRLF crlf_false_attr__CRLF.txt + +ok 670 - checkout attr= aeol= core.autocrlf=true core.eol=crlf file=CRLF - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.671 'checkout attr= aeol= core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_true_attr__ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 671 - checkout attr= aeol= core.autocrlf=true core.eol=crlf file=CRLF_mix_LF - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 58 - GIT_DIR=../repo.git, core.bare undefined: --is-inside-work-tree +expecting success of 0027.672 'checkout attr= aeol= core.autocrlf=true core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_true_attr__ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 672 - checkout attr= aeol= core.autocrlf=true core.eol=crlf file=LF_mix_CR -expecting success of 1500.59 'GIT_DIR=../repo.git, core.bare undefined: --show-prefix': - if test -n "$gitdir" - then - test_when_finished "unset GIT_DIR" && - GIT_DIR="$gitdir" && - export GIT_DIR - fi && +expecting success of 0027.673 'checkout attr= aeol= core.autocrlf=true core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_true_attr__ LF_nul crlf_false_attr__LF_nul.txt + +ok 673 - checkout attr= aeol= core.autocrlf=true core.eol=crlf file=LF_nul - case "$bare" in - t*) test_config ${d:+-C} ${d:+"$d"} core.bare true ;; - f*) test_config ${d:+-C} ${d:+"$d"} core.bare false ;; - u*) test_unconfig ${d:+-C} ${d:+"$d"} core.bare ;; - esac && +expecting success of 0027.674 'ls-files --eol attr=auto aeol= core.autocrlf=true core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 674 - ls-files --eol attr=auto aeol= core.autocrlf=true core.eol=crlf - echo "$expect" >expect && - git ${d:+-C} ${d:+"$d"} rev-parse $o >actual && - test_cmp expect actual - -ok 59 - GIT_DIR=../repo.git, core.bare undefined: --show-prefix +expecting success of 0027.675 'checkout attr=auto aeol= core.autocrlf=true core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_true_attr_auto_ CRLF crlf_false_attr__LF.txt + +ok 675 - checkout attr=auto aeol= core.autocrlf=true core.eol=crlf file=LF -expecting success of 1500.60 'git-common-dir from worktree root': - echo .git >expect && - git rev-parse --git-common-dir >actual && - test_cmp expect actual +expecting success of 0027.676 'checkout attr=auto aeol= core.autocrlf=true core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_true_attr_auto_ CRLF crlf_false_attr__CRLF.txt + +ok 676 - checkout attr=auto aeol= core.autocrlf=true core.eol=crlf file=CRLF -ok 60 - git-common-dir from worktree root +expecting success of 0027.677 'checkout attr=auto aeol= core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_true_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 677 - checkout attr=auto aeol= core.autocrlf=true core.eol=crlf file=CRLF_mix_LF -expecting success of 1500.61 'git-common-dir inside sub-dir': - mkdir -p path/to/child && - test_when_finished "rm -rf path" && - echo "$(git -C path/to/child rev-parse --show-cdup).git" >expect && - git -C path/to/child rev-parse --git-common-dir >actual && - test_cmp expect actual +expecting success of 0027.678 'checkout attr=auto aeol= core.autocrlf=true core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_true_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 678 - checkout attr=auto aeol= core.autocrlf=true core.eol=crlf file=LF_mix_CR -ok 61 - git-common-dir inside sub-dir +expecting success of 0027.679 'checkout attr=auto aeol= core.autocrlf=true core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_true_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 679 - checkout attr=auto aeol= core.autocrlf=true core.eol=crlf file=LF_nul -expecting success of 1500.62 'git-path from worktree root': - echo .git/objects >expect && - git rev-parse --git-path objects >actual && - test_cmp expect actual +expecting success of 0027.680 'ls-files --eol attr=text aeol= core.autocrlf=true core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 680 - ls-files --eol attr=text aeol= core.autocrlf=true core.eol=crlf -ok 62 - git-path from worktree root +expecting success of 0027.681 'checkout attr=text aeol= core.autocrlf=true core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF crlf_false_attr__LF.txt + +ok 681 - checkout attr=text aeol= core.autocrlf=true core.eol=crlf file=LF -expecting success of 1500.63 'git-path inside sub-dir': - mkdir -p path/to/child && - test_when_finished "rm -rf path" && - echo "$(git -C path/to/child rev-parse --show-cdup).git/objects" >expect && - git -C path/to/child rev-parse --git-path objects >actual && - test_cmp expect actual +expecting success of 0027.682 'checkout attr=text aeol= core.autocrlf=true core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 682 - checkout attr=text aeol= core.autocrlf=true core.eol=crlf file=CRLF -ok 63 - git-path inside sub-dir +expecting success of 0027.683 'checkout attr=text aeol= core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt + +ok 683 - checkout attr=text aeol= core.autocrlf=true core.eol=crlf file=CRLF_mix_LF -expecting success of 1500.64 'rev-parse --is-shallow-repository in shallow repo': - test_commit test_commit && - echo true >expect && - git clone --depth 1 --no-local . shallow && - test_when_finished "rm -rf shallow" && - git -C shallow rev-parse --is-shallow-repository >actual && - test_cmp expect actual +expecting success of 0027.684 'checkout attr=text aeol= core.autocrlf=true core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 684 - checkout attr=text aeol= core.autocrlf=true core.eol=crlf file=LF_mix_CR -[master (root-commit) 389d16e] test_commit - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 test_commit.t -Cloning into 'shallow'... -ok 64 - rev-parse --is-shallow-repository in shallow repo +expecting success of 0027.685 'checkout attr=text aeol= core.autocrlf=true core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt + +ok 685 - checkout attr=text aeol= core.autocrlf=true core.eol=crlf file=LF_nul -expecting success of 1500.65 'rev-parse --is-shallow-repository in non-shallow repo': - echo false >expect && - git rev-parse --is-shallow-repository >actual && - test_cmp expect actual +expecting success of 0027.686 'ls-files --eol attr=text aeol= core.autocrlf=input core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 686 - ls-files --eol attr=text aeol= core.autocrlf=input core.eol=crlf -ok 65 - rev-parse --is-shallow-repository in non-shallow repo +expecting success of 0027.687 'checkout attr=text aeol= core.autocrlf=input core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_input_attr_text_ LF crlf_false_attr__LF.txt + +ok 687 - checkout attr=text aeol= core.autocrlf=input core.eol=crlf file=LF -expecting success of 1500.66 'rev-parse --show-object-format in repo': - echo "$(test_oid algo)" >expect && - git rev-parse --show-object-format >actual && - test_cmp expect actual && - git rev-parse --show-object-format=storage >actual && - test_cmp expect actual && - git rev-parse --show-object-format=input >actual && - test_cmp expect actual && - git rev-parse --show-object-format=output >actual && - test_cmp expect actual && - test_must_fail git rev-parse --show-object-format=squeamish-ossifrage 2>err && - grep "unknown mode for --show-object-format: squeamish-ossifrage" err +expecting success of 0027.688 'checkout attr=text aeol= core.autocrlf=input core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 688 - checkout attr=text aeol= core.autocrlf=input core.eol=crlf file=CRLF -fatal: unknown mode for --show-object-format: squeamish-ossifrage -ok 66 - rev-parse --show-object-format in repo +expecting success of 0027.689 'checkout attr=text aeol= core.autocrlf=input core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_input_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 689 - checkout attr=text aeol= core.autocrlf=input core.eol=crlf file=CRLF_mix_LF -expecting success of 1500.67 '--show-toplevel from subdir of working tree': - pwd >expect && - git -C sub/dir rev-parse --show-toplevel >actual && - test_cmp expect actual +expecting success of 0027.690 'checkout attr=text aeol= core.autocrlf=input core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_input_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 690 - checkout attr=text aeol= core.autocrlf=input core.eol=crlf file=LF_mix_CR -ok 67 - --show-toplevel from subdir of working tree +expecting success of 0027.691 'checkout attr=text aeol= core.autocrlf=input core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_input_attr_text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 691 - checkout attr=text aeol= core.autocrlf=input core.eol=crlf file=LF_nul -expecting success of 1500.68 '--show-toplevel from inside .git': - test_must_fail git -C .git rev-parse --show-toplevel +expecting success of 0027.692 'ls-files --eol attr=auto aeol= core.autocrlf=input core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 692 - ls-files --eol attr=auto aeol= core.autocrlf=input core.eol=crlf -fatal: this operation must be run in a work tree -ok 68 - --show-toplevel from inside .git +expecting success of 0027.693 'checkout attr=auto aeol= core.autocrlf=input core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_input_attr_auto_ LF crlf_false_attr__LF.txt + +ok 693 - checkout attr=auto aeol= core.autocrlf=input core.eol=crlf file=LF -expecting success of 1500.69 'showing the superproject correctly': - git rev-parse --show-superproject-working-tree >out && - test_must_be_empty out && +expecting success of 0027.694 'checkout attr=auto aeol= core.autocrlf=input core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_input_attr_auto_ CRLF crlf_false_attr__CRLF.txt + +ok 694 - checkout attr=auto aeol= core.autocrlf=input core.eol=crlf file=CRLF - test_create_repo super && - test_commit -C super test_commit && - test_create_repo sub && - test_commit -C sub test_commit && - git -c protocol.file.allow=always \ - -C super submodule add ../sub dir/sub && - echo $(pwd)/super >expect && - git -C super/dir/sub rev-parse --show-superproject-working-tree >out && - test_cmp expect out && +expecting success of 0027.695 'checkout attr=auto aeol= core.autocrlf=input core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_input_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 695 - checkout attr=auto aeol= core.autocrlf=input core.eol=crlf file=CRLF_mix_LF - test_commit -C super submodule_add && - git -C super checkout -b branch1 && - git -C super/dir/sub checkout -b branch1 && - test_commit -C super/dir/sub branch1_commit && - git -C super add dir/sub && - test_commit -C super branch1_commit && - git -C super checkout -b branch2 master && - git -C super/dir/sub checkout -b branch2 master && - test_commit -C super/dir/sub branch2_commit && - git -C super add dir/sub && - test_commit -C super branch2_commit && - test_must_fail git -C super merge branch1 && +expecting success of 0027.696 'checkout attr=auto aeol= core.autocrlf=input core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_input_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 696 - checkout attr=auto aeol= core.autocrlf=input core.eol=crlf file=LF_mix_CR - git -C super/dir/sub rev-parse --show-superproject-working-tree >out && - test_cmp expect out +expecting success of 0027.697 'checkout attr=auto aeol= core.autocrlf=input core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_input_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 697 - checkout attr=auto aeol= core.autocrlf=input core.eol=crlf file=LF_nul -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1500-rev-parse/super/.git/ -[master (root-commit) cbdc642] test_commit - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 test_commit.t -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1500-rev-parse/sub/.git/ -[master (root-commit) 2eb1b96] test_commit - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 test_commit.t -Cloning into '/build/git-2.30.2/t/trash directory.t1500-rev-parse/super/dir/sub'... -done. -[master 7cabc11] submodule_add - Author: A U Thor - 3 files changed, 5 insertions(+) - create mode 100644 .gitmodules - create mode 160000 dir/sub - create mode 100644 submodule_add.t -Switched to a new branch 'branch1' -Switched to a new branch 'branch1' -[branch1 2aa4ded] branch1_commit - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 branch1_commit.t -[branch1 7e8b966] branch1_commit - Author: A U Thor - 2 files changed, 2 insertions(+), 1 deletion(-) - create mode 100644 branch1_commit.t -Switched to a new branch 'branch2' -M dir/sub -Switched to a new branch 'branch2' -[branch2 10a2528] branch2_commit - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 branch2_commit.t -[branch2 8d6224f] branch2_commit - Author: A U Thor - 2 files changed, 2 insertions(+), 1 deletion(-) - create mode 100644 branch2_commit.t -Merging: -8d6224f branch2_commit -virtual branch1 -found 1 common ancestor: -7cabc11 submodule_add -Failed to merge submodule dir/sub (merge following commits not found) -Auto-merging dir/sub -CONFLICT (submodule): Merge conflict in dir/sub -Automatic merge failed; fix conflicts and then commit the result. -ok 69 - showing the superproject correctly +expecting success of 0027.698 'ls-files --eol attr=-text aeol= core.autocrlf=true core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 698 - ls-files --eol attr=-text aeol= core.autocrlf=true core.eol=native -# passed all 69 test(s) -1..69 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1501-work-tree.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1501-work-tree/.git/ -expecting success of 1501.1 'setup': - EMPTY_TREE=$(git write-tree) && - EMPTY_BLOB=$(git hash-object -t blob --stdin expected.bare && - echo $2 >expected.inside-git && - echo $3 >expected.inside-worktree && - if test $# -ge 4 - then - echo $4 >expected.prefix - fi && +expecting success of 0027.702 'checkout attr=-text aeol= core.autocrlf=true core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_true_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 702 - checkout attr=-text aeol= core.autocrlf=true core.eol=native file=LF_mix_CR - git rev-parse --is-bare-repository >actual.bare && - git rev-parse --is-inside-git-dir >actual.inside-git && - git rev-parse --is-inside-work-tree >actual.inside-worktree && - if test $# -ge 4 - then - git rev-parse --show-prefix >actual.prefix - fi && +expecting success of 0027.703 'checkout attr=-text aeol= core.autocrlf=true core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_true_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 703 - checkout attr=-text aeol= core.autocrlf=true core.eol=native file=LF_nul - test_cmp expected.bare actual.bare && - test_cmp expected.inside-git actual.inside-git && - test_cmp expected.inside-worktree actual.inside-worktree && - if test $# -ge 4 - then - # rev-parse --show-prefix should output - # a single newline when at the top of the work tree, - # but we test for that separately. - test -z "$4" && test_must_be_empty actual.prefix || - test_cmp expected.prefix actual.prefix - fi - } +expecting success of 0027.704 'ls-files --eol attr=-text aeol=lf core.autocrlf=true core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 704 - ls-files --eol attr=-text aeol=lf core.autocrlf=true core.eol=native -ok 2 - setup: helper for testing rev-parse +expecting success of 0027.705 'checkout attr=-text aeol=lf core.autocrlf=true core.eol=native file=LF': + compare_ws_file eol_native_crlf_true_attr_-text_ LF crlf_false_attr__LF.txt + +ok 705 - checkout attr=-text aeol=lf core.autocrlf=true core.eol=native file=LF -expecting success of 1501.3 'setup: core.worktree = relative path': - sane_unset GIT_WORK_TREE && - GIT_DIR=repo.git && - GIT_CONFIG="$(pwd)"/$GIT_DIR/config && - export GIT_DIR GIT_CONFIG && - git config core.worktree ../work +expecting success of 0027.706 'checkout attr=-text aeol=lf core.autocrlf=true core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_true_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 706 - checkout attr=-text aeol=lf core.autocrlf=true core.eol=native file=CRLF -ok 3 - setup: core.worktree = relative path +expecting success of 0027.707 'checkout attr=-text aeol=lf core.autocrlf=true core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_true_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 707 - checkout attr=-text aeol=lf core.autocrlf=true core.eol=native file=CRLF_mix_LF -expecting success of 1501.4 'outside': - test_rev_parse false false false +expecting success of 0027.708 'checkout attr=-text aeol=lf core.autocrlf=true core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_true_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 708 - checkout attr=-text aeol=lf core.autocrlf=true core.eol=native file=LF_mix_CR -ok 4 - outside +expecting success of 0027.709 'checkout attr=-text aeol=lf core.autocrlf=true core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_true_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 709 - checkout attr=-text aeol=lf core.autocrlf=true core.eol=native file=LF_nul -expecting success of 1501.5 'inside work tree': - ( - cd work && - GIT_DIR=../repo.git && - GIT_CONFIG="$(pwd)"/$GIT_DIR/config && - test_rev_parse false false true "" - ) +expecting success of 0027.710 'ls-files --eol attr=-text aeol=crlf core.autocrlf=true core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 710 - ls-files --eol attr=-text aeol=crlf core.autocrlf=true core.eol=native -'actual.prefix' is not empty, it contains: +expecting success of 0027.711 'checkout attr=-text aeol=crlf core.autocrlf=true core.eol=native file=LF': + compare_ws_file eol_native_crlf_true_attr_-text_ LF crlf_false_attr__LF.txt + +ok 711 - checkout attr=-text aeol=crlf core.autocrlf=true core.eol=native file=LF -ok 5 - inside work tree +expecting success of 0027.712 'checkout attr=-text aeol=crlf core.autocrlf=true core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_true_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 712 - checkout attr=-text aeol=crlf core.autocrlf=true core.eol=native file=CRLF -expecting success of 1501.6 'empty prefix is actually written out': - echo >expected && - ( - cd work && - GIT_DIR=../repo.git && - GIT_CONFIG="$(pwd)"/$GIT_DIR/config && - git rev-parse --show-prefix >../actual - ) && - test_cmp expected actual +expecting success of 0027.713 'checkout attr=-text aeol=crlf core.autocrlf=true core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_true_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 713 - checkout attr=-text aeol=crlf core.autocrlf=true core.eol=native file=CRLF_mix_LF -ok 6 - empty prefix is actually written out +expecting success of 0027.714 'checkout attr=-text aeol=crlf core.autocrlf=true core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_true_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 714 - checkout attr=-text aeol=crlf core.autocrlf=true core.eol=native file=LF_mix_CR -expecting success of 1501.7 'subdir of work tree': - ( - cd work/sub/dir && - GIT_DIR=../../../repo.git && - GIT_CONFIG="$(pwd)"/$GIT_DIR/config && - test_rev_parse false false true sub/dir/ - ) +expecting success of 0027.715 'checkout attr=-text aeol=crlf core.autocrlf=true core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_true_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 715 - checkout attr=-text aeol=crlf core.autocrlf=true core.eol=native file=LF_nul -ok 7 - subdir of work tree +expecting success of 0027.716 'ls-files --eol attr=text aeol=lf core.autocrlf=true core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 716 - ls-files --eol attr=text aeol=lf core.autocrlf=true core.eol=native -expecting success of 1501.8 'setup: core.worktree = absolute path': - sane_unset GIT_WORK_TREE && - GIT_DIR=$(pwd)/repo.git && - GIT_CONFIG=$GIT_DIR/config && - export GIT_DIR GIT_CONFIG && - git config core.worktree "$(pwd)/work" +expecting success of 0027.717 'checkout attr=text aeol=lf core.autocrlf=true core.eol=native file=LF': + compare_ws_file eol_native_crlf_true_attr_text_ LF crlf_false_attr__LF.txt + +ok 717 - checkout attr=text aeol=lf core.autocrlf=true core.eol=native file=LF -ok 8 - setup: core.worktree = absolute path +expecting success of 0027.718 'checkout attr=text aeol=lf core.autocrlf=true core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 718 - checkout attr=text aeol=lf core.autocrlf=true core.eol=native file=CRLF -expecting success of 1501.9 'outside': - test_rev_parse false false false && - ( - cd work2 && - test_rev_parse false false false - ) +expecting success of 0027.719 'checkout attr=text aeol=lf core.autocrlf=true core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_true_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 719 - checkout attr=text aeol=lf core.autocrlf=true core.eol=native file=CRLF_mix_LF -ok 9 - outside +expecting success of 0027.720 'checkout attr=text aeol=lf core.autocrlf=true core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_true_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 720 - checkout attr=text aeol=lf core.autocrlf=true core.eol=native file=LF_mix_CR -expecting success of 1501.10 'inside work tree': - ( - cd work && - test_rev_parse false false true "" - ) +expecting success of 0027.721 'checkout attr=text aeol=lf core.autocrlf=true core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_true_attr_text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 721 - checkout attr=text aeol=lf core.autocrlf=true core.eol=native file=LF_nul -'actual.prefix' is not empty, it contains: +expecting success of 0027.722 'ls-files --eol attr=text aeol=crlf core.autocrlf=true core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 722 - ls-files --eol attr=text aeol=crlf core.autocrlf=true core.eol=native -ok 10 - inside work tree +expecting success of 0027.723 'checkout attr=text aeol=crlf core.autocrlf=true core.eol=native file=LF': + compare_ws_file eol_native_crlf_true_attr_text_ CRLF crlf_false_attr__LF.txt + +ok 723 - checkout attr=text aeol=crlf core.autocrlf=true core.eol=native file=LF -expecting success of 1501.11 'subdir of work tree': - ( - cd work/sub/dir && - test_rev_parse false false true sub/dir/ - ) +expecting success of 0027.724 'checkout attr=text aeol=crlf core.autocrlf=true core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 724 - checkout attr=text aeol=crlf core.autocrlf=true core.eol=native file=CRLF -ok 11 - subdir of work tree +expecting success of 0027.725 'checkout attr=text aeol=crlf core.autocrlf=true core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt + +ok 725 - checkout attr=text aeol=crlf core.autocrlf=true core.eol=native file=CRLF_mix_LF -expecting success of 1501.12 'setup: GIT_WORK_TREE=relative (override core.worktree)': - GIT_DIR=$(pwd)/repo.git && - GIT_CONFIG=$GIT_DIR/config && - git config core.worktree non-existent && - GIT_WORK_TREE=work && - export GIT_DIR GIT_CONFIG GIT_WORK_TREE +expecting success of 0027.726 'checkout attr=text aeol=crlf core.autocrlf=true core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_true_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 726 - checkout attr=text aeol=crlf core.autocrlf=true core.eol=native file=LF_mix_CR -ok 12 - setup: GIT_WORK_TREE=relative (override core.worktree) +expecting success of 0027.727 'checkout attr=text aeol=crlf core.autocrlf=true core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_true_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt + +ok 727 - checkout attr=text aeol=crlf core.autocrlf=true core.eol=native file=LF_nul -expecting success of 1501.13 'outside': - test_rev_parse false false false && - ( - cd work2 && - test_rev_parse false false false - ) +expecting success of 0027.728 'ls-files --eol attr=auto aeol=lf core.autocrlf=true core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 728 - ls-files --eol attr=auto aeol=lf core.autocrlf=true core.eol=native -ok 13 - outside +expecting success of 0027.729 'checkout attr=auto aeol=lf core.autocrlf=true core.eol=native file=LF': + compare_ws_file eol_native_crlf_true_attr_auto_ LF crlf_false_attr__LF.txt + +ok 729 - checkout attr=auto aeol=lf core.autocrlf=true core.eol=native file=LF -expecting success of 1501.14 'inside work tree': - ( - cd work && - GIT_WORK_TREE=. && - test_rev_parse false false true "" - ) +expecting success of 0027.730 'checkout attr=auto aeol=lf core.autocrlf=true core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_true_attr_auto_ CRLF crlf_false_attr__CRLF.txt + +ok 730 - checkout attr=auto aeol=lf core.autocrlf=true core.eol=native file=CRLF -'actual.prefix' is not empty, it contains: +expecting success of 0027.731 'checkout attr=auto aeol=lf core.autocrlf=true core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_true_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 731 - checkout attr=auto aeol=lf core.autocrlf=true core.eol=native file=CRLF_mix_LF -ok 14 - inside work tree +expecting success of 0027.732 'checkout attr=auto aeol=lf core.autocrlf=true core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_true_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 732 - checkout attr=auto aeol=lf core.autocrlf=true core.eol=native file=LF_mix_CR -expecting success of 1501.15 'subdir of work tree': - ( - cd work/sub/dir && - GIT_WORK_TREE=../.. && - test_rev_parse false false true sub/dir/ - ) +expecting success of 0027.733 'checkout attr=auto aeol=lf core.autocrlf=true core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_true_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 733 - checkout attr=auto aeol=lf core.autocrlf=true core.eol=native file=LF_nul -ok 15 - subdir of work tree +expecting success of 0027.734 'ls-files --eol attr=auto aeol=crlf core.autocrlf=true core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 734 - ls-files --eol attr=auto aeol=crlf core.autocrlf=true core.eol=native -expecting success of 1501.16 'setup: GIT_WORK_TREE=absolute, below git dir': - mv work repo.git/work && - mv work2 repo.git/work2 && - GIT_DIR=$(pwd)/repo.git && - GIT_CONFIG=$GIT_DIR/config && - GIT_WORK_TREE=$(pwd)/repo.git/work && - export GIT_DIR GIT_CONFIG GIT_WORK_TREE +expecting success of 0027.735 'checkout attr=auto aeol=crlf core.autocrlf=true core.eol=native file=LF': + compare_ws_file eol_native_crlf_true_attr_auto_ CRLF crlf_false_attr__LF.txt + +ok 735 - checkout attr=auto aeol=crlf core.autocrlf=true core.eol=native file=LF -ok 16 - setup: GIT_WORK_TREE=absolute, below git dir +expecting success of 0027.736 'checkout attr=auto aeol=crlf core.autocrlf=true core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_true_attr_auto_ CRLF crlf_false_attr__CRLF.txt + +ok 736 - checkout attr=auto aeol=crlf core.autocrlf=true core.eol=native file=CRLF -expecting success of 1501.17 'outside': - echo outside && - test_rev_parse false false false +expecting success of 0027.737 'checkout attr=auto aeol=crlf core.autocrlf=true core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_true_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 737 - checkout attr=auto aeol=crlf core.autocrlf=true core.eol=native file=CRLF_mix_LF -outside -ok 17 - outside +expecting success of 0027.738 'checkout attr=auto aeol=crlf core.autocrlf=true core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_true_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 738 - checkout attr=auto aeol=crlf core.autocrlf=true core.eol=native file=LF_mix_CR -expecting success of 1501.18 'in repo.git': - ( - cd repo.git && - test_rev_parse false true false - ) && - ( - cd repo.git/objects && - test_rev_parse false true false - ) && - ( - cd repo.git/work2 && - test_rev_parse false true false - ) +expecting success of 0027.739 'checkout attr=auto aeol=crlf core.autocrlf=true core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_true_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 739 - checkout attr=auto aeol=crlf core.autocrlf=true core.eol=native file=LF_nul -ok 18 - in repo.git +expecting success of 0027.740 'ls-files --eol attr=-text aeol= core.autocrlf=false core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 740 - ls-files --eol attr=-text aeol= core.autocrlf=false core.eol=native -expecting success of 1501.19 'inside work tree': - ( - cd repo.git/work && - test_rev_parse false true true "" - ) +expecting success of 0027.741 'checkout attr=-text aeol= core.autocrlf=false core.eol=native file=LF': + compare_ws_file eol_native_crlf_false_attr_-text_ LF crlf_false_attr__LF.txt + +ok 741 - checkout attr=-text aeol= core.autocrlf=false core.eol=native file=LF -'actual.prefix' is not empty, it contains: +expecting success of 0027.742 'checkout attr=-text aeol= core.autocrlf=false core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_false_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 742 - checkout attr=-text aeol= core.autocrlf=false core.eol=native file=CRLF -ok 19 - inside work tree +expecting success of 0027.743 'checkout attr=-text aeol= core.autocrlf=false core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_false_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 743 - checkout attr=-text aeol= core.autocrlf=false core.eol=native file=CRLF_mix_LF -expecting success of 1501.20 'subdir of work tree': - ( - cd repo.git/work/sub/dir && - test_rev_parse false true true sub/dir/ - ) +expecting success of 0027.744 'checkout attr=-text aeol= core.autocrlf=false core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_false_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 744 - checkout attr=-text aeol= core.autocrlf=false core.eol=native file=LF_mix_CR -ok 20 - subdir of work tree +expecting success of 0027.745 'checkout attr=-text aeol= core.autocrlf=false core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_false_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 745 - checkout attr=-text aeol= core.autocrlf=false core.eol=native file=LF_nul -expecting success of 1501.21 'find work tree from repo': - echo sub/dir/untracked >expected && - cat <<-\EOF >repo.git/work/.gitignore && - expected.* - actual.* - .gitignore - EOF - >repo.git/work/sub/dir/untracked && - ( - cd repo.git && - git ls-files --others --exclude-standard >../actual - ) && - test_cmp expected actual +expecting success of 0027.746 'ls-files --eol attr=-text aeol=lf core.autocrlf=false core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 746 - ls-files --eol attr=-text aeol=lf core.autocrlf=false core.eol=native -ok 21 - find work tree from repo +expecting success of 0027.747 'checkout attr=-text aeol=lf core.autocrlf=false core.eol=native file=LF': + compare_ws_file eol_native_crlf_false_attr_-text_ LF crlf_false_attr__LF.txt + +ok 747 - checkout attr=-text aeol=lf core.autocrlf=false core.eol=native file=LF -expecting success of 1501.22 'find work tree from work tree': - echo sub/dir/tracked >expected && - >repo.git/work/sub/dir/tracked && - ( - cd repo.git/work/sub/dir && - git --git-dir=../../.. add tracked - ) && - ( - cd repo.git && - git ls-files >../actual - ) && - test_cmp expected actual +expecting success of 0027.748 'checkout attr=-text aeol=lf core.autocrlf=false core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_false_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 748 - checkout attr=-text aeol=lf core.autocrlf=false core.eol=native file=CRLF -ok 22 - find work tree from work tree +expecting success of 0027.749 'checkout attr=-text aeol=lf core.autocrlf=false core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_false_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 749 - checkout attr=-text aeol=lf core.autocrlf=false core.eol=native file=CRLF_mix_LF -expecting success of 1501.23 '_gently() groks relative GIT_DIR & GIT_WORK_TREE': - ( - cd repo.git/work/sub/dir && - GIT_DIR=../../.. && - GIT_WORK_TREE=../.. && - GIT_PAGER= && - export GIT_DIR GIT_WORK_TREE GIT_PAGER && +expecting success of 0027.750 'checkout attr=-text aeol=lf core.autocrlf=false core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_false_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 750 - checkout attr=-text aeol=lf core.autocrlf=false core.eol=native file=LF_mix_CR - git diff --exit-code tracked && - echo changed >tracked && - test_must_fail git diff --exit-code tracked - ) +expecting success of 0027.751 'checkout attr=-text aeol=lf core.autocrlf=false core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_false_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 751 - checkout attr=-text aeol=lf core.autocrlf=false core.eol=native file=LF_nul -diff --git a/sub/dir/tracked b/sub/dir/tracked -index e69de29..5ea2ed4 100644 ---- a/sub/dir/tracked -+++ b/sub/dir/tracked -@@ -0,0 +1 @@ -+changed -ok 23 - _gently() groks relative GIT_DIR & GIT_WORK_TREE +expecting success of 0027.752 'ls-files --eol attr=-text aeol=crlf core.autocrlf=false core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 752 - ls-files --eol attr=-text aeol=crlf core.autocrlf=false core.eol=native -expecting success of 1501.24 'diff-index respects work tree under .git dir': - cat >diff-index-cached.expected <<-EOF && - :000000 100644 $ZERO_OID $EMPTY_BLOB A sub/dir/tracked - EOF - cat >diff-index.expected <<-EOF && - :000000 100644 $ZERO_OID $ZERO_OID A sub/dir/tracked - EOF +expecting success of 0027.753 'checkout attr=-text aeol=crlf core.autocrlf=false core.eol=native file=LF': + compare_ws_file eol_native_crlf_false_attr_-text_ LF crlf_false_attr__LF.txt + +ok 753 - checkout attr=-text aeol=crlf core.autocrlf=false core.eol=native file=LF - ( - GIT_DIR=repo.git && - GIT_WORK_TREE=repo.git/work && - export GIT_DIR GIT_WORK_TREE && - git diff-index $EMPTY_TREE >diff-index.actual && - git diff-index --cached $EMPTY_TREE >diff-index-cached.actual - ) && - test_cmp diff-index.expected diff-index.actual && - test_cmp diff-index-cached.expected diff-index-cached.actual +expecting success of 0027.754 'checkout attr=-text aeol=crlf core.autocrlf=false core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_false_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 754 - checkout attr=-text aeol=crlf core.autocrlf=false core.eol=native file=CRLF -ok 24 - diff-index respects work tree under .git dir +expecting success of 0027.755 'checkout attr=-text aeol=crlf core.autocrlf=false core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_false_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 755 - checkout attr=-text aeol=crlf core.autocrlf=false core.eol=native file=CRLF_mix_LF -expecting success of 1501.25 'diff-files respects work tree under .git dir': - cat >diff-files.expected <<-EOF && - :100644 100644 $EMPTY_BLOB $ZERO_OID M sub/dir/tracked - EOF +expecting success of 0027.756 'checkout attr=-text aeol=crlf core.autocrlf=false core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_false_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 756 - checkout attr=-text aeol=crlf core.autocrlf=false core.eol=native file=LF_mix_CR - ( - GIT_DIR=repo.git && - GIT_WORK_TREE=repo.git/work && - export GIT_DIR GIT_WORK_TREE && - git diff-files >diff-files.actual - ) && - test_cmp diff-files.expected diff-files.actual +expecting success of 0027.757 'checkout attr=-text aeol=crlf core.autocrlf=false core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_false_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 757 - checkout attr=-text aeol=crlf core.autocrlf=false core.eol=native file=LF_nul -ok 25 - diff-files respects work tree under .git dir +expecting success of 0027.758 'ls-files --eol attr=text aeol=lf core.autocrlf=false core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 758 - ls-files --eol attr=text aeol=lf core.autocrlf=false core.eol=native -expecting success of 1501.26 'git diff respects work tree under .git dir': - cat >diff-TREE.expected <<-EOF && - diff --git a/sub/dir/tracked b/sub/dir/tracked - new file mode 100644 - index 0000000..$CHANGED_BLOB7 - --- /dev/null - +++ b/sub/dir/tracked - @@ -0,0 +1 @@ - +changed - EOF - cat >diff-TREE-cached.expected <<-EOF && - diff --git a/sub/dir/tracked b/sub/dir/tracked - new file mode 100644 - index 0000000..$EMPTY_BLOB7 - EOF - cat >diff-FILES.expected <<-EOF && - diff --git a/sub/dir/tracked b/sub/dir/tracked - index $EMPTY_BLOB7..$CHANGED_BLOB7 100644 - --- a/sub/dir/tracked - +++ b/sub/dir/tracked - @@ -0,0 +1 @@ - +changed - EOF +expecting success of 0027.759 'checkout attr=text aeol=lf core.autocrlf=false core.eol=native file=LF': + compare_ws_file eol_native_crlf_false_attr_text_ LF crlf_false_attr__LF.txt + +ok 759 - checkout attr=text aeol=lf core.autocrlf=false core.eol=native file=LF - ( - GIT_DIR=repo.git && - GIT_WORK_TREE=repo.git/work && - export GIT_DIR GIT_WORK_TREE && - git diff $EMPTY_TREE >diff-TREE.actual && - git diff --cached $EMPTY_TREE >diff-TREE-cached.actual && - git diff >diff-FILES.actual - ) && - test_cmp diff-TREE.expected diff-TREE.actual && - test_cmp diff-TREE-cached.expected diff-TREE-cached.actual && - test_cmp diff-FILES.expected diff-FILES.actual +expecting success of 0027.760 'checkout attr=text aeol=lf core.autocrlf=false core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 760 - checkout attr=text aeol=lf core.autocrlf=false core.eol=native file=CRLF -ok 26 - git diff respects work tree under .git dir +expecting success of 0027.761 'checkout attr=text aeol=lf core.autocrlf=false core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_false_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 761 - checkout attr=text aeol=lf core.autocrlf=false core.eol=native file=CRLF_mix_LF -expecting success of 1501.27 'git grep': - echo dir/tracked >expected.grep && - ( - cd repo.git/work/sub && - GIT_DIR=../.. && - GIT_WORK_TREE=.. && - export GIT_DIR GIT_WORK_TREE && - git grep -l changed >../../../actual.grep - ) && - test_cmp expected.grep actual.grep +expecting success of 0027.762 'checkout attr=text aeol=lf core.autocrlf=false core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_false_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 762 - checkout attr=text aeol=lf core.autocrlf=false core.eol=native file=LF_mix_CR -ok 27 - git grep +expecting success of 0027.763 'checkout attr=text aeol=lf core.autocrlf=false core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_false_attr_text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 763 - checkout attr=text aeol=lf core.autocrlf=false core.eol=native file=LF_nul -expecting success of 1501.28 'git commit': - ( - cd repo.git && - GIT_DIR=. GIT_WORK_TREE=work git commit -a -m done - ) +expecting success of 0027.764 'ls-files --eol attr=text aeol=crlf core.autocrlf=false core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 764 - ls-files --eol attr=text aeol=crlf core.autocrlf=false core.eol=native -[master (root-commit) 271ed29] done - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 sub/dir/tracked -ok 28 - git commit +expecting success of 0027.765 'checkout attr=text aeol=crlf core.autocrlf=false core.eol=native file=LF': + compare_ws_file eol_native_crlf_false_attr_text_ CRLF crlf_false_attr__LF.txt + +ok 765 - checkout attr=text aeol=crlf core.autocrlf=false core.eol=native file=LF -expecting success of 1501.29 'absolute pathspec should fail gracefully': - ( - cd repo.git && - test_might_fail git config --unset core.worktree && - test_must_fail git log HEAD -- /home - ) +expecting success of 0027.766 'checkout attr=text aeol=crlf core.autocrlf=false core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 766 - checkout attr=text aeol=crlf core.autocrlf=false core.eol=native file=CRLF -fatal: /home: '/home' is outside repository at '/build/git-2.30.2/t/trash directory.t1501-work-tree/repo.git/work' -ok 29 - absolute pathspec should fail gracefully +expecting success of 0027.767 'checkout attr=text aeol=crlf core.autocrlf=false core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt + +ok 767 - checkout attr=text aeol=crlf core.autocrlf=false core.eol=native file=CRLF_mix_LF -expecting success of 1501.30 'make_relative_path handles double slashes in GIT_DIR': - >dummy_file && - echo git --git-dir="$(pwd)//repo.git" --work-tree="$(pwd)" add dummy_file && - git --git-dir="$(pwd)//repo.git" --work-tree="$(pwd)" add dummy_file +expecting success of 0027.768 'checkout attr=text aeol=crlf core.autocrlf=false core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_false_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 768 - checkout attr=text aeol=crlf core.autocrlf=false core.eol=native file=LF_mix_CR -git --git-dir=/build/git-2.30.2/t/trash directory.t1501-work-tree//repo.git --work-tree=/build/git-2.30.2/t/trash directory.t1501-work-tree add dummy_file -ok 30 - make_relative_path handles double slashes in GIT_DIR +expecting success of 0027.769 'checkout attr=text aeol=crlf core.autocrlf=false core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_false_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt + +ok 769 - checkout attr=text aeol=crlf core.autocrlf=false core.eol=native file=LF_nul -expecting success of 1501.31 'relative $GIT_WORK_TREE and git subprocesses': - GIT_DIR=repo.git GIT_WORK_TREE=repo.git/work \ - test-tool subprocess --setup-work-tree rev-parse --show-toplevel >actual && - echo "$(pwd)/repo.git/work" >expected && - test_cmp expected actual +expecting success of 0027.770 'ls-files --eol attr=auto aeol=lf core.autocrlf=false core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 770 - ls-files --eol attr=auto aeol=lf core.autocrlf=false core.eol=native -ok 31 - relative $GIT_WORK_TREE and git subprocesses +expecting success of 0027.771 'checkout attr=auto aeol=lf core.autocrlf=false core.eol=native file=LF': + compare_ws_file eol_native_crlf_false_attr_auto_ LF crlf_false_attr__LF.txt + +ok 771 - checkout attr=auto aeol=lf core.autocrlf=false core.eol=native file=LF -expecting success of 1501.32 'Multi-worktree setup': - mkdir work && - mkdir -p repo.git/repos/foo && - cp repo.git/HEAD repo.git/index repo.git/repos/foo && - { cp repo.git/sharedindex.* repo.git/repos/foo || :; } && - sane_unset GIT_DIR GIT_CONFIG GIT_WORK_TREE +expecting success of 0027.772 'checkout attr=auto aeol=lf core.autocrlf=false core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_false_attr_auto_ CRLF crlf_false_attr__CRLF.txt + +ok 772 - checkout attr=auto aeol=lf core.autocrlf=false core.eol=native file=CRLF -cp: cannot stat 'repo.git/sharedindex.*': No such file or directory -ok 32 - Multi-worktree setup +expecting success of 0027.773 'checkout attr=auto aeol=lf core.autocrlf=false core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_false_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 773 - checkout attr=auto aeol=lf core.autocrlf=false core.eol=native file=CRLF_mix_LF -expecting success of 1501.33 'GIT_DIR set (1)': - echo "gitdir: repo.git/repos/foo" >gitfile && - echo ../.. >repo.git/repos/foo/commondir && - ( - cd work && - GIT_DIR=../gitfile git rev-parse --git-common-dir >actual && - test-tool path-utils real_path "$TRASH_DIRECTORY/repo.git" >expect && - test_cmp expect actual - ) +expecting success of 0027.774 'checkout attr=auto aeol=lf core.autocrlf=false core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_false_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 774 - checkout attr=auto aeol=lf core.autocrlf=false core.eol=native file=LF_mix_CR -ok 33 - GIT_DIR set (1) +expecting success of 0027.775 'checkout attr=auto aeol=lf core.autocrlf=false core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_false_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 775 - checkout attr=auto aeol=lf core.autocrlf=false core.eol=native file=LF_nul -expecting success of 1501.34 'GIT_DIR set (2)': - echo "gitdir: repo.git/repos/foo" >gitfile && - echo "$(pwd)/repo.git" >repo.git/repos/foo/commondir && - ( - cd work && - GIT_DIR=../gitfile git rev-parse --git-common-dir >actual && - test-tool path-utils real_path "$TRASH_DIRECTORY/repo.git" >expect && +expecting success of 0027.776 'ls-files --eol attr=auto aeol=crlf core.autocrlf=false core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && test_cmp expect actual - ) + +ok 776 - ls-files --eol attr=auto aeol=crlf core.autocrlf=false core.eol=native -ok 34 - GIT_DIR set (2) +expecting success of 0027.777 'checkout attr=auto aeol=crlf core.autocrlf=false core.eol=native file=LF': + compare_ws_file eol_native_crlf_false_attr_auto_ CRLF crlf_false_attr__LF.txt + +ok 777 - checkout attr=auto aeol=crlf core.autocrlf=false core.eol=native file=LF -expecting success of 1501.35 'Auto discovery': - echo "gitdir: repo.git/repos/foo" >.git && - echo ../.. >repo.git/repos/foo/commondir && - ( - cd work && - git rev-parse --git-common-dir >actual && - test-tool path-utils real_path "$TRASH_DIRECTORY/repo.git" >expect && - test_cmp expect actual && - echo haha >data1 && - git add data1 && - git ls-files --full-name :/ | grep data1 >actual && - echo work/data1 >expect && - test_cmp expect actual - ) +expecting success of 0027.778 'checkout attr=auto aeol=crlf core.autocrlf=false core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_false_attr_auto_ CRLF crlf_false_attr__CRLF.txt + +ok 778 - checkout attr=auto aeol=crlf core.autocrlf=false core.eol=native file=CRLF -ok 35 - Auto discovery +expecting success of 0027.779 'checkout attr=auto aeol=crlf core.autocrlf=false core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_false_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 779 - checkout attr=auto aeol=crlf core.autocrlf=false core.eol=native file=CRLF_mix_LF -expecting success of 1501.36 '$GIT_DIR/common overrides core.worktree': - mkdir elsewhere && - git --git-dir=repo.git config core.worktree "$TRASH_DIRECTORY/elsewhere" && - echo "gitdir: repo.git/repos/foo" >.git && - echo ../.. >repo.git/repos/foo/commondir && - ( - cd work && - git rev-parse --git-common-dir >actual && - test-tool path-utils real_path "$TRASH_DIRECTORY/repo.git" >expect && - test_cmp expect actual && - echo haha >data2 && - git add data2 && - git ls-files --full-name :/ | grep data2 >actual && - echo work/data2 >expect && - test_cmp expect actual - ) +expecting success of 0027.780 'checkout attr=auto aeol=crlf core.autocrlf=false core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_false_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 780 - checkout attr=auto aeol=crlf core.autocrlf=false core.eol=native file=LF_mix_CR -ok 36 - $GIT_DIR/common overrides core.worktree +expecting success of 0027.781 'checkout attr=auto aeol=crlf core.autocrlf=false core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_false_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 781 - checkout attr=auto aeol=crlf core.autocrlf=false core.eol=native file=LF_nul -expecting success of 1501.37 '$GIT_WORK_TREE overrides $GIT_DIR/common': - echo "gitdir: repo.git/repos/foo" >.git && - echo ../.. >repo.git/repos/foo/commondir && - ( - cd work && - echo haha >data3 && - git --git-dir=../.git --work-tree=. add data3 && - git ls-files --full-name -- :/ | grep data3 >actual && - echo data3 >expect && +expecting success of 0027.782 'ls-files --eol attr=-text aeol= core.autocrlf=input core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && test_cmp expect actual - ) - -ok 37 - $GIT_WORK_TREE overrides $GIT_DIR/common + +ok 782 - ls-files --eol attr=-text aeol= core.autocrlf=input core.eol=native -expecting success of 1501.38 'error out gracefully on invalid $GIT_WORK_TREE': - ( - GIT_WORK_TREE=/.invalid/work/tree && - export GIT_WORK_TREE && - test_expect_code 128 git rev-parse - ) +expecting success of 0027.783 'checkout attr=-text aeol= core.autocrlf=input core.eol=native file=LF': + compare_ws_file eol_native_crlf_input_attr_-text_ LF crlf_false_attr__LF.txt + +ok 783 - checkout attr=-text aeol= core.autocrlf=input core.eol=native file=LF -fatal: Invalid path '/.invalid': No such file or directory -ok 38 - error out gracefully on invalid $GIT_WORK_TREE +expecting success of 0027.784 'checkout attr=-text aeol= core.autocrlf=input core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_input_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 784 - checkout attr=-text aeol= core.autocrlf=input core.eol=native file=CRLF -expecting success of 1501.39 'refs work with relative gitdir and work tree': - git init relative && - git -C relative commit --allow-empty -m one && - git -C relative commit --allow-empty -m two && +expecting success of 0027.785 'checkout attr=-text aeol= core.autocrlf=input core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_input_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 785 - checkout attr=-text aeol= core.autocrlf=input core.eol=native file=CRLF_mix_LF - GIT_DIR=relative/.git GIT_WORK_TREE=relative git reset HEAD^ && +expecting success of 0027.786 'checkout attr=-text aeol= core.autocrlf=input core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_input_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 786 - checkout attr=-text aeol= core.autocrlf=input core.eol=native file=LF_mix_CR - git -C relative log -1 --format=%s >actual && - echo one >expect && - test_cmp expect actual +expecting success of 0027.787 'checkout attr=-text aeol= core.autocrlf=input core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_input_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 787 - checkout attr=-text aeol= core.autocrlf=input core.eol=native file=LF_nul -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1501-work-tree/relative/.git/ -[master (root-commit) 61ba98b] one - Author: A U Thor -[master 2b4e70d] two - Author: A U Thor -ok 39 - refs work with relative gitdir and work tree +expecting success of 0027.788 'ls-files --eol attr=-text aeol=lf core.autocrlf=input core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 788 - ls-files --eol attr=-text aeol=lf core.autocrlf=input core.eol=native -# passed all 39 test(s) -1..39 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1502-rev-parse-parseopt.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1502-rev-parse-parseopt/.git/ -expecting success of 1502.1 'setup optionspec': - sed -e "s/^|//" >optionspec <<\EOF -|some-command [options] ... -| -|some-command does foo and bar! -|-- -|h,help show the help -| -|foo some nifty option --foo -|bar= some cool option --bar with an argument -|b,baz a short and long option -| -| An option group Header -|C? option C with an optional argument -|d,data? short and long option with an optional argument -| -| Argument hints -|B=arg short option required argument -|bar2=arg long option required argument -|e,fuz=with-space short and long option required argument -|s?some short option optional argument -|long?data long option optional argument -|g,fluf?path short and long option optional argument -|longest=very-long-argument-hint a very long argument hint -|pair=key=value with an equals sign in the hint -|aswitch help te=t contains? fl*g characters!` -|bswitch=hint hint has trailing tab character -|cswitch switch has trailing tab character -|short-hint=a with a one symbol hint -| -|Extras -|extra1 line above used to cause a segfault but no longer does -EOF +expecting success of 0027.789 'checkout attr=-text aeol=lf core.autocrlf=input core.eol=native file=LF': + compare_ws_file eol_native_crlf_input_attr_-text_ LF crlf_false_attr__LF.txt + +ok 789 - checkout attr=-text aeol=lf core.autocrlf=input core.eol=native file=LF -ok 1 - setup optionspec +expecting success of 0027.790 'checkout attr=-text aeol=lf core.autocrlf=input core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_input_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 790 - checkout attr=-text aeol=lf core.autocrlf=input core.eol=native file=CRLF -expecting success of 1502.2 'setup optionspec-no-switches': - sed -e "s/^|//" >optionspec_no_switches <<\EOF -|some-command [options] ... -| -|some-command does foo and bar! -|-- -EOF +expecting success of 0027.791 'checkout attr=-text aeol=lf core.autocrlf=input core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_input_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 791 - checkout attr=-text aeol=lf core.autocrlf=input core.eol=native file=CRLF_mix_LF -ok 2 - setup optionspec-no-switches +expecting success of 0027.792 'checkout attr=-text aeol=lf core.autocrlf=input core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_input_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 792 - checkout attr=-text aeol=lf core.autocrlf=input core.eol=native file=LF_mix_CR -expecting success of 1502.3 'setup optionspec-only-hidden-switches': - sed -e "s/^|//" >optionspec_only_hidden_switches <<\EOF -|some-command [options] ... -| -|some-command does foo and bar! -|-- -|hidden1* A hidden switch -EOF +expecting success of 0027.793 'checkout attr=-text aeol=lf core.autocrlf=input core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_input_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 793 - checkout attr=-text aeol=lf core.autocrlf=input core.eol=native file=LF_nul -ok 3 - setup optionspec-only-hidden-switches +expecting success of 0027.794 'ls-files --eol attr=-text aeol=crlf core.autocrlf=input core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 794 - ls-files --eol attr=-text aeol=crlf core.autocrlf=input core.eol=native -expecting success of 1502.4 'test --parseopt help output': - sed -e "s/^|//" >expect <<\END_EXPECT && -|cat <<\EOF -|usage: some-command [options] ... -| -| some-command does foo and bar! -| -| -h, --help show the help -| --foo some nifty option --foo -| --bar ... some cool option --bar with an argument -| -b, --baz a short and long option -| -|An option group Header -| -C[...] option C with an optional argument -| -d, --data[=...] short and long option with an optional argument -| -|Argument hints -| -B short option required argument -| --bar2 long option required argument -| -e, --fuz -| short and long option required argument -| -s[] short option optional argument -| --long[=] long option optional argument -| -g, --fluf[=] short and long option optional argument -| --longest -| a very long argument hint -| --pair with an equals sign in the hint -| --aswitch help te=t contains? fl*g characters!` -| --bswitch hint has trailing tab character -| --cswitch switch has trailing tab character -| --short-hint with a one symbol hint -| -|Extras -| --extra1 line above used to cause a segfault but no longer does -| -|EOF -END_EXPECT - test_expect_code 129 git rev-parse --parseopt -- -h > output < optionspec && - test_i18ncmp expect output +expecting success of 0027.795 'checkout attr=-text aeol=crlf core.autocrlf=input core.eol=native file=LF': + compare_ws_file eol_native_crlf_input_attr_-text_ LF crlf_false_attr__LF.txt + +ok 795 - checkout attr=-text aeol=crlf core.autocrlf=input core.eol=native file=LF -checking prerequisite: C_LOCALE_OUTPUT +expecting success of 0027.796 'checkout attr=-text aeol=crlf core.autocrlf=input core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_input_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 796 - checkout attr=-text aeol=crlf core.autocrlf=input core.eol=native file=CRLF -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false +expecting success of 0027.797 'checkout attr=-text aeol=crlf core.autocrlf=input core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_input_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 797 - checkout attr=-text aeol=crlf core.autocrlf=input core.eol=native file=CRLF_mix_LF -) -prerequisite C_LOCALE_OUTPUT ok -ok 4 - test --parseopt help output +expecting success of 0027.798 'checkout attr=-text aeol=crlf core.autocrlf=input core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_input_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 798 - checkout attr=-text aeol=crlf core.autocrlf=input core.eol=native file=LF_mix_CR -expecting success of 1502.5 'test --parseopt help output no switches': - sed -e "s/^|//" >expect <<\END_EXPECT && -|cat <<\EOF -|usage: some-command [options] ... -| -| some-command does foo and bar! -| -|EOF -END_EXPECT - test_expect_code 129 git rev-parse --parseopt -- -h > output < optionspec_no_switches && - test_i18ncmp expect output +expecting success of 0027.799 'checkout attr=-text aeol=crlf core.autocrlf=input core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_input_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 799 - checkout attr=-text aeol=crlf core.autocrlf=input core.eol=native file=LF_nul -ok 5 - test --parseopt help output no switches +expecting success of 0027.800 'ls-files --eol attr=text aeol=lf core.autocrlf=input core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 800 - ls-files --eol attr=text aeol=lf core.autocrlf=input core.eol=native -expecting success of 1502.6 'test --parseopt help output hidden switches': - sed -e "s/^|//" >expect <<\END_EXPECT && -|cat <<\EOF -|usage: some-command [options] ... -| -| some-command does foo and bar! -| -|EOF -END_EXPECT - test_expect_code 129 git rev-parse --parseopt -- -h > output < optionspec_only_hidden_switches && - test_i18ncmp expect output +expecting success of 0027.801 'checkout attr=text aeol=lf core.autocrlf=input core.eol=native file=LF': + compare_ws_file eol_native_crlf_input_attr_text_ LF crlf_false_attr__LF.txt + +ok 801 - checkout attr=text aeol=lf core.autocrlf=input core.eol=native file=LF -ok 6 - test --parseopt help output hidden switches +expecting success of 0027.802 'checkout attr=text aeol=lf core.autocrlf=input core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 802 - checkout attr=text aeol=lf core.autocrlf=input core.eol=native file=CRLF -expecting success of 1502.7 'test --parseopt help-all output hidden switches': - sed -e "s/^|//" >expect <<\END_EXPECT && -|cat <<\EOF -|usage: some-command [options] ... -| -| some-command does foo and bar! -| -| --hidden1 A hidden switch -| -|EOF -END_EXPECT - test_expect_code 129 git rev-parse --parseopt -- --help-all > output < optionspec_only_hidden_switches && - test_i18ncmp expect output +expecting success of 0027.803 'checkout attr=text aeol=lf core.autocrlf=input core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_input_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 803 - checkout attr=text aeol=lf core.autocrlf=input core.eol=native file=CRLF_mix_LF -ok 7 - test --parseopt help-all output hidden switches +expecting success of 0027.804 'checkout attr=text aeol=lf core.autocrlf=input core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_input_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 804 - checkout attr=text aeol=lf core.autocrlf=input core.eol=native file=LF_mix_CR -expecting success of 1502.8 'test --parseopt invalid switch help output': - sed -e "s/^|//" >expect <<\END_EXPECT && -|error: unknown option `does-not-exist' -|usage: some-command [options] ... -| -| some-command does foo and bar! -| -| -h, --help show the help -| --foo some nifty option --foo -| --bar ... some cool option --bar with an argument -| -b, --baz a short and long option -| -|An option group Header -| -C[...] option C with an optional argument -| -d, --data[=...] short and long option with an optional argument -| -|Argument hints -| -B short option required argument -| --bar2 long option required argument -| -e, --fuz -| short and long option required argument -| -s[] short option optional argument -| --long[=] long option optional argument -| -g, --fluf[=] short and long option optional argument -| --longest -| a very long argument hint -| --pair with an equals sign in the hint -| --aswitch help te=t contains? fl*g characters!` -| --bswitch hint has trailing tab character -| --cswitch switch has trailing tab character -| --short-hint with a one symbol hint -| -|Extras -| --extra1 line above used to cause a segfault but no longer does -| -END_EXPECT - test_expect_code 129 git rev-parse --parseopt -- --does-not-exist 1>/dev/null 2>output < optionspec && - test_i18ncmp expect output +expecting success of 0027.805 'checkout attr=text aeol=lf core.autocrlf=input core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_input_attr_text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 805 - checkout attr=text aeol=lf core.autocrlf=input core.eol=native file=LF_nul -ok 8 - test --parseopt invalid switch help output +expecting success of 0027.806 'ls-files --eol attr=text aeol=crlf core.autocrlf=input core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 806 - ls-files --eol attr=text aeol=crlf core.autocrlf=input core.eol=native -expecting success of 1502.9 'setup expect.1': - cat > expect < output && - test_cmp expect output +expecting success of 0027.809 'checkout attr=text aeol=crlf core.autocrlf=input core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt + +ok 809 - checkout attr=text aeol=crlf core.autocrlf=input core.eol=native file=CRLF_mix_LF -ok 10 - test --parseopt +expecting success of 0027.810 'checkout attr=text aeol=crlf core.autocrlf=input core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_input_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 810 - checkout attr=text aeol=crlf core.autocrlf=input core.eol=native file=LF_mix_CR -expecting success of 1502.11 'test --parseopt with mixed options and arguments': - git rev-parse --parseopt -- --foo arg --bar=ham --baz --aswitch < optionspec > output && - test_cmp expect output +expecting success of 0027.811 'checkout attr=text aeol=crlf core.autocrlf=input core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_input_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt + +ok 811 - checkout attr=text aeol=crlf core.autocrlf=input core.eol=native file=LF_nul -ok 11 - test --parseopt with mixed options and arguments +expecting success of 0027.812 'ls-files --eol attr=auto aeol=lf core.autocrlf=input core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 812 - ls-files --eol attr=auto aeol=lf core.autocrlf=input core.eol=native -expecting success of 1502.12 'setup expect.2': - cat > expect < output && - test_cmp expect output +expecting success of 0027.815 'checkout attr=auto aeol=lf core.autocrlf=input core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_input_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 815 - checkout attr=auto aeol=lf core.autocrlf=input core.eol=native file=CRLF_mix_LF -ok 13 - test --parseopt with -- +expecting success of 0027.816 'checkout attr=auto aeol=lf core.autocrlf=input core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_input_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 816 - checkout attr=auto aeol=lf core.autocrlf=input core.eol=native file=LF_mix_CR -expecting success of 1502.14 'test --parseopt --stop-at-non-option': - git rev-parse --parseopt --stop-at-non-option -- --foo arg --bar=ham < optionspec > output && - test_cmp expect output +expecting success of 0027.817 'checkout attr=auto aeol=lf core.autocrlf=input core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_input_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 817 - checkout attr=auto aeol=lf core.autocrlf=input core.eol=native file=LF_nul -ok 14 - test --parseopt --stop-at-non-option +expecting success of 0027.818 'ls-files --eol attr=auto aeol=crlf core.autocrlf=input core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 818 - ls-files --eol attr=auto aeol=crlf core.autocrlf=input core.eol=native -expecting success of 1502.15 'setup expect.3': - cat > expect < output && - test_cmp expect output +expecting success of 0027.821 'checkout attr=auto aeol=crlf core.autocrlf=input core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_input_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 821 - checkout attr=auto aeol=crlf core.autocrlf=input core.eol=native file=CRLF_mix_LF -ok 16 - test --parseopt --keep-dashdash +expecting success of 0027.822 'checkout attr=auto aeol=crlf core.autocrlf=input core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_input_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 822 - checkout attr=auto aeol=crlf core.autocrlf=input core.eol=native file=LF_mix_CR -expecting success of 1502.17 'setup expect.4': - cat >expect <expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 824 - ls-files --eol attr= aeol= core.autocrlf=false core.eol=native -expecting success of 1502.18 'test --parseopt --keep-dashdash --stop-at-non-option with --': - git rev-parse --parseopt --keep-dashdash --stop-at-non-option -- --foo -- arg --spam=ham output && - test_cmp expect output +expecting success of 0027.825 'checkout attr= aeol= core.autocrlf=false core.eol=native file=LF': + compare_ws_file eol_native_crlf_false_attr__ LF crlf_false_attr__LF.txt + +ok 825 - checkout attr= aeol= core.autocrlf=false core.eol=native file=LF -ok 18 - test --parseopt --keep-dashdash --stop-at-non-option with -- +expecting success of 0027.826 'checkout attr= aeol= core.autocrlf=false core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_false_attr__ CRLF crlf_false_attr__CRLF.txt + +ok 826 - checkout attr= aeol= core.autocrlf=false core.eol=native file=CRLF -expecting success of 1502.19 'setup expect.5': - cat > expect <output && - test_cmp expect output +expecting success of 0027.829 'checkout attr= aeol= core.autocrlf=false core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_false_attr__ LF_nul crlf_false_attr__LF_nul.txt + +ok 829 - checkout attr= aeol= core.autocrlf=false core.eol=native file=LF_nul -ok 20 - test --parseopt --keep-dashdash --stop-at-non-option without -- +expecting success of 0027.830 'ls-files --eol attr= aeol= core.autocrlf=true core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 830 - ls-files --eol attr= aeol= core.autocrlf=true core.eol=native -expecting success of 1502.21 'setup expect.6': - cat > expect <output && - test_cmp expect output +expecting success of 0027.833 'checkout attr= aeol= core.autocrlf=true core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_true_attr__ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 833 - checkout attr= aeol= core.autocrlf=true core.eol=native file=CRLF_mix_LF -ok 22 - test --parseopt --stuck-long +expecting success of 0027.834 'checkout attr= aeol= core.autocrlf=true core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_true_attr__ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 834 - checkout attr= aeol= core.autocrlf=true core.eol=native file=LF_mix_CR -expecting success of 1502.23 'setup expect.7': - cat > expect <expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 836 - ls-files --eol attr=auto aeol= core.autocrlf=true core.eol=native -expecting success of 1502.24 'test --parseopt --stuck-long and empty optional argument': - git rev-parse --parseopt --stuck-long -- --data= arg -C -b output && - test_cmp expect output +expecting success of 0027.837 'checkout attr=auto aeol= core.autocrlf=true core.eol=native file=LF': + compare_ws_file eol_native_crlf_true_attr_auto_ CRLF crlf_false_attr__LF.txt + +ok 837 - checkout attr=auto aeol= core.autocrlf=true core.eol=native file=LF -ok 24 - test --parseopt --stuck-long and empty optional argument +expecting success of 0027.838 'checkout attr=auto aeol= core.autocrlf=true core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_true_attr_auto_ CRLF crlf_false_attr__CRLF.txt + +ok 838 - checkout attr=auto aeol= core.autocrlf=true core.eol=native file=CRLF -expecting success of 1502.25 'setup expect.8': - cat > expect <output && - test_cmp expect output +expecting success of 0027.841 'checkout attr=auto aeol= core.autocrlf=true core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_true_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 841 - checkout attr=auto aeol= core.autocrlf=true core.eol=native file=LF_nul -ok 26 - test --parseopt --stuck-long and long option with unset optional argument +expecting success of 0027.842 'ls-files --eol attr=text aeol= core.autocrlf=true core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 842 - ls-files --eol attr=text aeol= core.autocrlf=true core.eol=native -expecting success of 1502.27 'test --parseopt --stuck-long and short option with unset optional argument': - git rev-parse --parseopt --stuck-long -- -d arg -b output && - test_cmp expect output +expecting success of 0027.843 'checkout attr=text aeol= core.autocrlf=true core.eol=native file=LF': + compare_ws_file eol_native_crlf_true_attr_text_ CRLF crlf_false_attr__LF.txt + +ok 843 - checkout attr=text aeol= core.autocrlf=true core.eol=native file=LF -ok 27 - test --parseopt --stuck-long and short option with unset optional argument +expecting success of 0027.844 'checkout attr=text aeol= core.autocrlf=true core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 844 - checkout attr=text aeol= core.autocrlf=true core.eol=native file=CRLF -# passed all 27 test(s) -1..27 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1503-rev-parse-verify.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1503-rev-parse-verify/.git/ -expecting success of 1503.1 'set up basic repo with 1 file (hello) and 4 commits': - add_line_into_file "1: Hello World" hello && - HASH1=$(git rev-parse --verify HEAD) && - add_line_into_file "2: A new day for git" hello && - HASH2=$(git rev-parse --verify HEAD) && - add_line_into_file "3: Another new day for git" hello && - HASH3=$(git rev-parse --verify HEAD) && - add_line_into_file "4: Ciao for now" hello && - HASH4=$(git rev-parse --verify HEAD) +expecting success of 0027.845 'checkout attr=text aeol= core.autocrlf=true core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt + +ok 845 - checkout attr=text aeol= core.autocrlf=true core.eol=native file=CRLF_mix_LF -ok 1 - set up basic repo with 1 file (hello) and 4 commits +expecting success of 0027.846 'checkout attr=text aeol= core.autocrlf=true core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_true_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 846 - checkout attr=text aeol= core.autocrlf=true core.eol=native file=LF_mix_CR -expecting success of 1503.2 'works with one good rev': - rev_hash1=$(git rev-parse --verify $HASH1) && - test "$rev_hash1" = "$HASH1" && - rev_hash2=$(git rev-parse --verify $HASH2) && - test "$rev_hash2" = "$HASH2" && - rev_hash3=$(git rev-parse --verify $HASH3) && - test "$rev_hash3" = "$HASH3" && - rev_hash4=$(git rev-parse --verify $HASH4) && - test "$rev_hash4" = "$HASH4" && - rev_master=$(git rev-parse --verify master) && - test "$rev_master" = "$HASH4" && - rev_head=$(git rev-parse --verify HEAD) && - test "$rev_head" = "$HASH4" +expecting success of 0027.847 'checkout attr=text aeol= core.autocrlf=true core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_true_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt + +ok 847 - checkout attr=text aeol= core.autocrlf=true core.eol=native file=LF_nul -ok 2 - works with one good rev +expecting success of 0027.848 'ls-files --eol attr=text aeol= core.autocrlf=input core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 848 - ls-files --eol attr=text aeol= core.autocrlf=input core.eol=native -expecting success of 1503.3 'fails with any bad rev or many good revs': - test_must_fail git rev-parse --verify 2>error && - grep "single revision" error && - test_must_fail git rev-parse --verify foo 2>error && - grep "single revision" error && - test_must_fail git rev-parse --verify HEAD bar 2>error && - grep "single revision" error && - test_must_fail git rev-parse --verify baz HEAD 2>error && - grep "single revision" error && - test_must_fail git rev-parse --verify $HASH2 HEAD 2>error && - grep "single revision" error +expecting success of 0027.849 'checkout attr=text aeol= core.autocrlf=input core.eol=native file=LF': + compare_ws_file eol_native_crlf_input_attr_text_ LF crlf_false_attr__LF.txt + +ok 849 - checkout attr=text aeol= core.autocrlf=input core.eol=native file=LF -fatal: Needed a single revision -fatal: Needed a single revision -fatal: Needed a single revision -fatal: Needed a single revision -fatal: Needed a single revision -ok 3 - fails with any bad rev or many good revs +expecting success of 0027.850 'checkout attr=text aeol= core.autocrlf=input core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 850 - checkout attr=text aeol= core.autocrlf=input core.eol=native file=CRLF -expecting success of 1503.4 'fails silently when using -q': - test_must_fail git rev-parse --verify --quiet 2>error && - test_must_be_empty error && - test_must_fail git rev-parse -q --verify foo 2>error && - test_must_be_empty error && - test_must_fail git rev-parse --verify -q HEAD bar 2>error && - test_must_be_empty error && - test_must_fail git rev-parse --quiet --verify baz HEAD 2>error && - test_must_be_empty error && - test_must_fail git rev-parse -q --verify $HASH2 HEAD 2>error && - test_must_be_empty error +expecting success of 0027.851 'checkout attr=text aeol= core.autocrlf=input core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_input_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 851 - checkout attr=text aeol= core.autocrlf=input core.eol=native file=CRLF_mix_LF -ok 4 - fails silently when using -q +expecting success of 0027.852 'checkout attr=text aeol= core.autocrlf=input core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_input_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 852 - checkout attr=text aeol= core.autocrlf=input core.eol=native file=LF_mix_CR -expecting success of 1503.5 'fails silently when using -q with deleted reflogs': - ref=$(git rev-parse HEAD) && - git update-ref --create-reflog -m "message for refs/test" refs/test "$ref" && - git reflog delete --updateref --rewrite refs/test@{0} && - test_must_fail git rev-parse -q --verify refs/test@{0} >error 2>&1 && - test_must_be_empty error +expecting success of 0027.853 'checkout attr=text aeol= core.autocrlf=input core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_input_attr_text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 853 - checkout attr=text aeol= core.autocrlf=input core.eol=native file=LF_nul -ok 5 - fails silently when using -q with deleted reflogs +expecting success of 0027.854 'ls-files --eol attr=auto aeol= core.autocrlf=input core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 854 - ls-files --eol attr=auto aeol= core.autocrlf=input core.eol=native -expecting success of 1503.6 'fails silently when using -q with not enough reflogs': - ref=$(git rev-parse HEAD) && - git update-ref --create-reflog -m "message for refs/test2" refs/test2 "$ref" && - test_must_fail git rev-parse -q --verify refs/test2@{999} >error 2>&1 && - test_must_be_empty error +expecting success of 0027.855 'checkout attr=auto aeol= core.autocrlf=input core.eol=native file=LF': + compare_ws_file eol_native_crlf_input_attr_auto_ LF crlf_false_attr__LF.txt + +ok 855 - checkout attr=auto aeol= core.autocrlf=input core.eol=native file=LF -ok 6 - fails silently when using -q with not enough reflogs +expecting success of 0027.856 'checkout attr=auto aeol= core.autocrlf=input core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_input_attr_auto_ CRLF crlf_false_attr__CRLF.txt + +ok 856 - checkout attr=auto aeol= core.autocrlf=input core.eol=native file=CRLF -expecting success of 1503.7 'succeeds silently with -q and reflogs that do not go far back enough in time': - ref=$(git rev-parse HEAD) && - git update-ref --create-reflog -m "message for refs/test3" refs/test3 "$ref" && - git rev-parse -q --verify refs/test3@{1.year.ago} >actual 2>error && - test_must_be_empty error && - echo "$ref" >expect && - test_cmp expect actual +expecting success of 0027.857 'checkout attr=auto aeol= core.autocrlf=input core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_input_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 857 - checkout attr=auto aeol= core.autocrlf=input core.eol=native file=CRLF_mix_LF -ok 7 - succeeds silently with -q and reflogs that do not go far back enough in time +expecting success of 0027.858 'checkout attr=auto aeol= core.autocrlf=input core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_input_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 858 - checkout attr=auto aeol= core.autocrlf=input core.eol=native file=LF_mix_CR -expecting success of 1503.8 'no stdout output on error': - test -z "$(git rev-parse --verify)" && - test -z "$(git rev-parse --verify foo)" && - test -z "$(git rev-parse --verify baz HEAD)" && - test -z "$(git rev-parse --verify HEAD bar)" && - test -z "$(git rev-parse --verify $HASH2 HEAD)" +expecting success of 0027.859 'checkout attr=auto aeol= core.autocrlf=input core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_input_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 859 - checkout attr=auto aeol= core.autocrlf=input core.eol=native file=LF_nul -fatal: Needed a single revision -fatal: Needed a single revision -fatal: Needed a single revision -fatal: Needed a single revision -fatal: Needed a single revision -ok 8 - no stdout output on error +expecting success of 0027.860 'ls-files --eol attr=text aeol= core.autocrlf=false core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 860 - ls-files --eol attr=text aeol= core.autocrlf=false core.eol=crlf -expecting success of 1503.9 'use --default': - git rev-parse --verify --default master && - git rev-parse --verify --default master HEAD && - git rev-parse --default master --verify && - git rev-parse --default master --verify HEAD && - git rev-parse --verify HEAD --default master && - test_must_fail git rev-parse --verify foo --default master && - test_must_fail git rev-parse --default HEAD --verify bar && - test_must_fail git rev-parse --verify --default HEAD baz && - test_must_fail git rev-parse --default foo --verify && - test_must_fail git rev-parse --verify --default bar +expecting success of 0027.861 'checkout attr=text aeol= core.autocrlf=false core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF crlf_false_attr__LF.txt + +ok 861 - checkout attr=text aeol= core.autocrlf=false core.eol=crlf file=LF -32a594a3fdac2d57cf6d02987e30eec68511498c -32a594a3fdac2d57cf6d02987e30eec68511498c -32a594a3fdac2d57cf6d02987e30eec68511498c -32a594a3fdac2d57cf6d02987e30eec68511498c -32a594a3fdac2d57cf6d02987e30eec68511498c -fatal: Needed a single revision -fatal: Needed a single revision -fatal: Needed a single revision -fatal: Needed a single revision -fatal: Needed a single revision -ok 9 - use --default +expecting success of 0027.862 'checkout attr=text aeol= core.autocrlf=false core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 862 - checkout attr=text aeol= core.autocrlf=false core.eol=crlf file=CRLF -expecting success of 1503.10 'master@{n} for various n': - N=$(git reflog | wc -l) && - Nm1=$(($N-1)) && - Np1=$(($N+1)) && - git rev-parse --verify master@{0} && - git rev-parse --verify master@{1} && - git rev-parse --verify master@{$Nm1} && - test_must_fail git rev-parse --verify master@{$N} && - test_must_fail git rev-parse --verify master@{$Np1} +expecting success of 0027.863 'checkout attr=text aeol= core.autocrlf=false core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt + +ok 863 - checkout attr=text aeol= core.autocrlf=false core.eol=crlf file=CRLF_mix_LF -32a594a3fdac2d57cf6d02987e30eec68511498c -3de952f2416b6084f557ec417709eac740c6818c -88bcdc1839f0ad191ffdd65cae2a2a862d682151 -fatal: log for 'master' only has 4 entries -fatal: log for 'master' only has 4 entries -ok 10 - master@{n} for various n +expecting success of 0027.864 'checkout attr=text aeol= core.autocrlf=false core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 864 - checkout attr=text aeol= core.autocrlf=false core.eol=crlf file=LF_mix_CR -checking prerequisite: SYMLINKS +expecting success of 0027.865 'checkout attr=text aeol= core.autocrlf=false core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt + +ok 865 - checkout attr=text aeol= core.autocrlf=false core.eol=crlf file=LF_nul -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && - # test whether the filesystem supports symbolic links - ln -s x y && test -h y +expecting success of 0027.866 'ls-files --eol attr=text aeol= core.autocrlf=false core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 866 - ls-files --eol attr=text aeol= core.autocrlf=false core.eol=lf -) -prerequisite SYMLINKS ok -expecting success of 1503.11 'ref resolution not confused by broken symlinks': - ln -s does-not-exist .git/refs/heads/broken && - test_must_fail git rev-parse --verify broken +expecting success of 0027.867 'checkout attr=text aeol= core.autocrlf=false core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_false_attr_text_ LF crlf_false_attr__LF.txt + +ok 867 - checkout attr=text aeol= core.autocrlf=false core.eol=lf file=LF -fatal: Needed a single revision -ok 11 - ref resolution not confused by broken symlinks +expecting success of 0027.868 'checkout attr=text aeol= core.autocrlf=false core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 868 - checkout attr=text aeol= core.autocrlf=false core.eol=lf file=CRLF -expecting success of 1503.12 'options can appear after --verify': - git rev-parse --verify HEAD >expect && - git rev-parse --verify -q HEAD >actual && - test_cmp expect actual +expecting success of 0027.869 'checkout attr=text aeol= core.autocrlf=false core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_false_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 869 - checkout attr=text aeol= core.autocrlf=false core.eol=lf file=CRLF_mix_LF -ok 12 - options can appear after --verify +expecting success of 0027.870 'checkout attr=text aeol= core.autocrlf=false core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_false_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 870 - checkout attr=text aeol= core.autocrlf=false core.eol=lf file=LF_mix_CR -expecting success of 1503.13 'verify respects --end-of-options': - git update-ref refs/heads/-tricky HEAD && - git rev-parse --verify HEAD >expect && - git rev-parse --verify --end-of-options -tricky >actual && - test_cmp expect actual +expecting success of 0027.871 'checkout attr=text aeol= core.autocrlf=false core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_false_attr_text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 871 - checkout attr=text aeol= core.autocrlf=false core.eol=lf file=LF_nul -ok 13 - verify respects --end-of-options +expecting success of 0027.872 'ls-files --eol attr=text aeol= core.autocrlf=false core.eol=': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 872 - ls-files --eol attr=text aeol= core.autocrlf=false core.eol= -# passed all 13 test(s) -1..13 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1504-ceiling-dirs.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1504-ceiling-dirs/.git/ -expecting success of 1504.1 'no_ceil': test '' = "$(git rev-parse --show-prefix)" -ok 1 - no_ceil +expecting success of 0027.873 'checkout attr=text aeol= core.autocrlf=false core.eol= file=LF': + compare_ws_file eol__crlf_false_attr_text_ LF crlf_false_attr__LF.txt + +ok 873 - checkout attr=text aeol= core.autocrlf=false core.eol= file=LF -expecting success of 1504.2 'ceil_empty': test '' = "$(git rev-parse --show-prefix)" -ok 2 - ceil_empty +expecting success of 0027.874 'checkout attr=text aeol= core.autocrlf=false core.eol= file=CRLF': + compare_ws_file eol__crlf_false_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 874 - checkout attr=text aeol= core.autocrlf=false core.eol= file=CRLF -expecting success of 1504.3 'ceil_at_parent': test '' = "$(git rev-parse --show-prefix)" -ok 3 - ceil_at_parent +expecting success of 0027.875 'checkout attr=text aeol= core.autocrlf=false core.eol= file=CRLF_mix_LF': + compare_ws_file eol__crlf_false_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 875 - checkout attr=text aeol= core.autocrlf=false core.eol= file=CRLF_mix_LF -expecting success of 1504.4 'ceil_at_parent_slash': test '' = "$(git rev-parse --show-prefix)" -ok 4 - ceil_at_parent_slash +expecting success of 0027.876 'checkout attr=text aeol= core.autocrlf=false core.eol= file=LF_mix_CR': + compare_ws_file eol__crlf_false_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 876 - checkout attr=text aeol= core.autocrlf=false core.eol= file=LF_mix_CR -expecting success of 1504.5 'ceil_at_trash': test '' = "$(git rev-parse --show-prefix)" -ok 5 - ceil_at_trash +expecting success of 0027.877 'checkout attr=text aeol= core.autocrlf=false core.eol= file=LF_nul': + compare_ws_file eol__crlf_false_attr_text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 877 - checkout attr=text aeol= core.autocrlf=false core.eol= file=LF_nul -expecting success of 1504.6 'ceil_at_trash_slash': test '' = "$(git rev-parse --show-prefix)" -ok 6 - ceil_at_trash_slash +expecting success of 0027.878 'ls-files --eol attr=text aeol= core.autocrlf=false core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 878 - ls-files --eol attr=text aeol= core.autocrlf=false core.eol=native -expecting success of 1504.7 'ceil_at_sub': test '' = "$(git rev-parse --show-prefix)" -ok 7 - ceil_at_sub +expecting success of 0027.879 'checkout attr=text aeol= core.autocrlf=false core.eol=native file=LF': + compare_ws_file eol_native_crlf_false_attr_text_ LF crlf_false_attr__LF.txt + +ok 879 - checkout attr=text aeol= core.autocrlf=false core.eol=native file=LF -expecting success of 1504.8 'ceil_at_sub_slash': test '' = "$(git rev-parse --show-prefix)" -ok 8 - ceil_at_sub_slash +expecting success of 0027.880 'checkout attr=text aeol= core.autocrlf=false core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 880 - checkout attr=text aeol= core.autocrlf=false core.eol=native file=CRLF -checking prerequisite: SYMLINKS +expecting success of 0027.881 'checkout attr=text aeol= core.autocrlf=false core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_false_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 881 - checkout attr=text aeol= core.autocrlf=false core.eol=native file=CRLF_mix_LF -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && - # test whether the filesystem supports symbolic links - ln -s x y && test -h y +expecting success of 0027.882 'checkout attr=text aeol= core.autocrlf=false core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_false_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 882 - checkout attr=text aeol= core.autocrlf=false core.eol=native file=LF_mix_CR -) -prerequisite SYMLINKS ok -expecting success of 1504.9 'subdir_no_ceil': test 'sub/dir/' = "$(git rev-parse --show-prefix)" -ok 9 - subdir_no_ceil +expecting success of 0027.883 'checkout attr=text aeol= core.autocrlf=false core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_false_attr_text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 883 - checkout attr=text aeol= core.autocrlf=false core.eol=native file=LF_nul -expecting success of 1504.10 'subdir_ceil_empty': test 'sub/dir/' = "$(git rev-parse --show-prefix)" -ok 10 - subdir_ceil_empty +expecting success of 0027.884 'ls-files --eol attr=auto aeol= core.autocrlf=false core.eol=': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 884 - ls-files --eol attr=auto aeol= core.autocrlf=false core.eol= -expecting success of 1504.11 'subdir_ceil_at_trash: prefix': - test_expect_code 128 git rev-parse --show-prefix +expecting success of 0027.885 'checkout attr=auto aeol= core.autocrlf=false core.eol= file=LF': + compare_ws_file eol__crlf_false_attr_auto_ LF crlf_false_attr__LF.txt -fatal: not a git repository (or any of the parent directories): .git -ok 11 - subdir_ceil_at_trash: prefix +ok 885 - checkout attr=auto aeol= core.autocrlf=false core.eol= file=LF -expecting success of 1504.12 'subdir_ceil_at_trash_slash: prefix': - test_expect_code 128 git rev-parse --show-prefix +expecting success of 0027.886 'checkout attr=auto aeol= core.autocrlf=false core.eol= file=CRLF': + compare_ws_file eol__crlf_false_attr_auto_ CRLF crlf_false_attr__CRLF.txt -fatal: not a git repository (or any of the parent directories): .git -ok 12 - subdir_ceil_at_trash_slash: prefix +ok 886 - checkout attr=auto aeol= core.autocrlf=false core.eol= file=CRLF -expecting success of 1504.13 'subdir_ceil_at_sub: prefix': - test_expect_code 128 git rev-parse --show-prefix +expecting success of 0027.887 'checkout attr=auto aeol= core.autocrlf=false core.eol= file=CRLF_mix_LF': + compare_ws_file eol__crlf_false_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt -fatal: not a git repository (or any of the parent directories): .git -ok 13 - subdir_ceil_at_sub: prefix +ok 887 - checkout attr=auto aeol= core.autocrlf=false core.eol= file=CRLF_mix_LF -expecting success of 1504.14 'subdir_ceil_at_sub_slash: prefix': - test_expect_code 128 git rev-parse --show-prefix +expecting success of 0027.888 'checkout attr=auto aeol= core.autocrlf=false core.eol= file=LF_mix_CR': + compare_ws_file eol__crlf_false_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt -fatal: not a git repository (or any of the parent directories): .git -ok 14 - subdir_ceil_at_sub_slash: prefix +ok 888 - checkout attr=auto aeol= core.autocrlf=false core.eol= file=LF_mix_CR -expecting success of 1504.15 'subdir_ceil_at_top: prefix': - test_expect_code 128 git rev-parse --show-prefix +expecting success of 0027.889 'checkout attr=auto aeol= core.autocrlf=false core.eol= file=LF_nul': + compare_ws_file eol__crlf_false_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt -fatal: not a git repository (or any of the parent directories): .git -ok 15 - subdir_ceil_at_top: prefix +ok 889 - checkout attr=auto aeol= core.autocrlf=false core.eol= file=LF_nul -expecting success of 1504.16 'subdir_ceil_at_top_slash: prefix': - test_expect_code 128 git rev-parse --show-prefix +expecting success of 0027.890 'ls-files --eol attr=auto aeol= core.autocrlf=false core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual -fatal: not a git repository (or any of the parent directories): .git -ok 16 - subdir_ceil_at_top_slash: prefix +ok 890 - ls-files --eol attr=auto aeol= core.autocrlf=false core.eol=native -expecting success of 1504.17 'subdir_ceil_at_top_no_resolve': test 'sub/dir/' = "$(git rev-parse --show-prefix)" -ok 17 - subdir_ceil_at_top_no_resolve +expecting success of 0027.891 'checkout attr=auto aeol= core.autocrlf=false core.eol=native file=LF': + compare_ws_file eol_native_crlf_false_attr_auto_ LF crlf_false_attr__LF.txt + +ok 891 - checkout attr=auto aeol= core.autocrlf=false core.eol=native file=LF -expecting success of 1504.18 'subdir_ceil_at_top_slash_no_resolve': test 'sub/dir/' = "$(git rev-parse --show-prefix)" -ok 18 - subdir_ceil_at_top_slash_no_resolve +expecting success of 0027.892 'checkout attr=auto aeol= core.autocrlf=false core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_false_attr_auto_ CRLF crlf_false_attr__CRLF.txt + +ok 892 - checkout attr=auto aeol= core.autocrlf=false core.eol=native file=CRLF -expecting success of 1504.19 'subdir_ceil_at_subdir': test 'sub/dir/' = "$(git rev-parse --show-prefix)" -ok 19 - subdir_ceil_at_subdir +expecting success of 0027.893 'checkout attr=auto aeol= core.autocrlf=false core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_false_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 893 - checkout attr=auto aeol= core.autocrlf=false core.eol=native file=CRLF_mix_LF -expecting success of 1504.20 'subdir_ceil_at_subdir_slash': test 'sub/dir/' = "$(git rev-parse --show-prefix)" -ok 20 - subdir_ceil_at_subdir_slash +expecting success of 0027.894 'checkout attr=auto aeol= core.autocrlf=false core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_false_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 894 - checkout attr=auto aeol= core.autocrlf=false core.eol=native file=LF_mix_CR -expecting success of 1504.21 'subdir_ceil_at_su': test 'sub/dir/' = "$(git rev-parse --show-prefix)" -ok 21 - subdir_ceil_at_su +expecting success of 0027.895 'checkout attr=auto aeol= core.autocrlf=false core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_false_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 895 - checkout attr=auto aeol= core.autocrlf=false core.eol=native file=LF_nul -expecting success of 1504.22 'subdir_ceil_at_su_slash': test 'sub/dir/' = "$(git rev-parse --show-prefix)" -ok 22 - subdir_ceil_at_su_slash +expecting success of 0027.896 'ls-files --eol attr=-text ident aeol= core.autocrlf=true core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 896 - ls-files --eol attr=-text ident aeol= core.autocrlf=true core.eol=lf -expecting success of 1504.23 'subdir_ceil_at_sub_di': test 'sub/dir/' = "$(git rev-parse --show-prefix)" -ok 23 - subdir_ceil_at_sub_di +expecting success of 0027.897 'checkout attr=-text ident aeol= core.autocrlf=true core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_true_attr_-text_ LF crlf_false_attr__LF.txt + +ok 897 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=lf file=LF -expecting success of 1504.24 'subdir_ceil_at_sub_di_slash': test 'sub/dir/' = "$(git rev-parse --show-prefix)" -ok 24 - subdir_ceil_at_sub_di_slash +expecting success of 0027.898 'checkout attr=-text ident aeol= core.autocrlf=true core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_true_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 898 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=lf file=CRLF -expecting success of 1504.25 'subdir_ceil_at_subdi': test 'sub/dir/' = "$(git rev-parse --show-prefix)" -ok 25 - subdir_ceil_at_subdi +expecting success of 0027.899 'checkout attr=-text ident aeol= core.autocrlf=true core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_true_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 899 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=lf file=CRLF_mix_LF -expecting success of 1504.26 'subdir_ceil_at_subdi_slash': test 'sub/dir/' = "$(git rev-parse --show-prefix)" -ok 26 - subdir_ceil_at_subdi_slash +expecting success of 0027.900 'checkout attr=-text ident aeol= core.autocrlf=true core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_true_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 900 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=lf file=LF_mix_CR -expecting success of 1504.27 'second_of_two: prefix': - test_expect_code 128 git rev-parse --show-prefix +expecting success of 0027.901 'checkout attr=-text ident aeol= core.autocrlf=true core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_true_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt -fatal: not a git repository (or any of the parent directories): .git -ok 27 - second_of_two: prefix +ok 901 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=lf file=LF_nul -expecting success of 1504.28 'first_of_two: prefix': - test_expect_code 128 git rev-parse --show-prefix +expecting success of 0027.902 'ls-files --eol attr=-text ident aeol=lf core.autocrlf=true core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual -fatal: not a git repository (or any of the parent directories): .git -ok 28 - first_of_two: prefix +ok 902 - ls-files --eol attr=-text ident aeol=lf core.autocrlf=true core.eol=lf -expecting success of 1504.29 'second_of_three: prefix': - test_expect_code 128 git rev-parse --show-prefix +expecting success of 0027.903 'checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_true_attr_-text_ LF crlf_false_attr__LF.txt -fatal: not a git repository (or any of the parent directories): .git -ok 29 - second_of_three: prefix +ok 903 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=lf file=LF -expecting success of 1504.30 'git_dir_specified': test '' = "$(git rev-parse --show-prefix)" -ok 30 - git_dir_specified +expecting success of 0027.904 'checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_true_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 904 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=lf file=CRLF -expecting success of 1504.31 'sd_no_ceil': test 's/d/' = "$(git rev-parse --show-prefix)" -ok 31 - sd_no_ceil +expecting success of 0027.905 'checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_true_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 905 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=lf file=CRLF_mix_LF -expecting success of 1504.32 'sd_ceil_empty': test 's/d/' = "$(git rev-parse --show-prefix)" -ok 32 - sd_ceil_empty +expecting success of 0027.906 'checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_true_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 906 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=lf file=LF_mix_CR -expecting success of 1504.33 'sd_ceil_at_trash: prefix': - test_expect_code 128 git rev-parse --show-prefix +expecting success of 0027.907 'checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_true_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt -fatal: not a git repository (or any of the parent directories): .git -ok 33 - sd_ceil_at_trash: prefix +ok 907 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=lf file=LF_nul -expecting success of 1504.34 'sd_ceil_at_trash_slash: prefix': - test_expect_code 128 git rev-parse --show-prefix +expecting success of 0027.908 'ls-files --eol attr=-text ident aeol=crlf core.autocrlf=true core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual -fatal: not a git repository (or any of the parent directories): .git -ok 34 - sd_ceil_at_trash_slash: prefix +ok 908 - ls-files --eol attr=-text ident aeol=crlf core.autocrlf=true core.eol=lf -expecting success of 1504.35 'sd_ceil_at_s: prefix': - test_expect_code 128 git rev-parse --show-prefix +expecting success of 0027.909 'checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_true_attr_-text_ LF crlf_false_attr__LF.txt -fatal: not a git repository (or any of the parent directories): .git -ok 35 - sd_ceil_at_s: prefix +ok 909 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=lf file=LF -expecting success of 1504.36 'sd_ceil_at_s_slash: prefix': - test_expect_code 128 git rev-parse --show-prefix +expecting success of 0027.910 'checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_true_attr_-text_ CRLF crlf_false_attr__CRLF.txt -fatal: not a git repository (or any of the parent directories): .git -ok 36 - sd_ceil_at_s_slash: prefix +ok 910 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=lf file=CRLF -expecting success of 1504.37 'sd_ceil_at_sd': test 's/d/' = "$(git rev-parse --show-prefix)" -ok 37 - sd_ceil_at_sd +expecting success of 0027.911 'checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_true_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 911 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=lf file=CRLF_mix_LF -expecting success of 1504.38 'sd_ceil_at_sd_slash': test 's/d/' = "$(git rev-parse --show-prefix)" -ok 38 - sd_ceil_at_sd_slash +expecting success of 0027.912 'checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_true_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 912 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=lf file=LF_mix_CR -expecting success of 1504.39 'sd_ceil_at_su': test 's/d/' = "$(git rev-parse --show-prefix)" -ok 39 - sd_ceil_at_su +expecting success of 0027.913 'checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_true_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 913 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=lf file=LF_nul -expecting success of 1504.40 'sd_ceil_at_su_slash': test 's/d/' = "$(git rev-parse --show-prefix)" -ok 40 - sd_ceil_at_su_slash +expecting success of 0027.914 'ls-files --eol attr=text ident aeol=lf core.autocrlf=true core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 914 - ls-files --eol attr=text ident aeol=lf core.autocrlf=true core.eol=lf -expecting success of 1504.41 'sd_ceil_at_s_di': test 's/d/' = "$(git rev-parse --show-prefix)" -ok 41 - sd_ceil_at_s_di +expecting success of 0027.915 'checkout attr=text ident aeol=lf core.autocrlf=true core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_true_attr_text_ LF crlf_false_attr__LF.txt + +ok 915 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=lf file=LF -expecting success of 1504.42 'sd_ceil_at_s_di_slash': test 's/d/' = "$(git rev-parse --show-prefix)" -ok 42 - sd_ceil_at_s_di_slash +expecting success of 0027.916 'checkout attr=text ident aeol=lf core.autocrlf=true core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 916 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=lf file=CRLF -expecting success of 1504.43 'sd_ceil_at_sdi': test 's/d/' = "$(git rev-parse --show-prefix)" -ok 43 - sd_ceil_at_sdi +expecting success of 0027.917 'checkout attr=text ident aeol=lf core.autocrlf=true core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_true_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 917 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=lf file=CRLF_mix_LF -expecting success of 1504.44 'sd_ceil_at_sdi_slash': test 's/d/' = "$(git rev-parse --show-prefix)" -ok 44 - sd_ceil_at_sdi_slash +expecting success of 0027.918 'checkout attr=text ident aeol=lf core.autocrlf=true core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_true_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 918 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=lf file=LF_mix_CR -# passed all 44 test(s) -1..44 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1505-rev-parse-last.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1505-rev-parse-last/.git/ -expecting success of 1505.1 'setup': +expecting success of 0027.919 'checkout attr=text ident aeol=lf core.autocrlf=true core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_true_attr_text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 919 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=lf file=LF_nul - make_commit 1 && - git branch side && - make_commit 2 && - make_commit 3 && - git checkout side && - make_commit 4 && - git merge master && - git checkout master +expecting success of 0027.920 'ls-files --eol attr=text ident aeol=crlf core.autocrlf=true core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 920 - ls-files --eol attr=text ident aeol=crlf core.autocrlf=true core.eol=lf +expecting success of 0027.921 'checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_true_attr_text_ CRLF crlf_false_attr__LF.txt + +ok 921 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=lf file=LF -[master (root-commit) c11cd10] 1 - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 1 -[master ba98451] 2 - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 2 -[master aefd701] 3 - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 3 -Switched to branch 'side' -[side 1d4df77] 4 - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 4 -Merging: -1d4df77 4 -virtual master -found 1 common ancestor: -c11cd10 1 -Merge made by the 'recursive' strategy. - 2 | 1 + - 3 | 1 + - 2 files changed, 2 insertions(+) - create mode 100644 2 - create mode 100644 3 -Switched to branch 'master' -ok 1 - setup +expecting success of 0027.922 'checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 922 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=lf file=CRLF -expecting success of 1505.2 '@{-1} works': - test_cmp_rev side @{-1} +expecting success of 0027.923 'checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt + +ok 923 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=lf file=CRLF_mix_LF -ok 2 - @{-1} works +expecting success of 0027.924 'checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_true_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 924 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=lf file=LF_mix_CR -expecting success of 1505.3 '@{-1}~2 works': - test_cmp_rev side~2 @{-1}~2 +expecting success of 0027.925 'checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_true_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt + +ok 925 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=lf file=LF_nul -ok 3 - @{-1}~2 works +expecting success of 0027.926 'ls-files --eol attr=auto ident aeol=lf core.autocrlf=true core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 926 - ls-files --eol attr=auto ident aeol=lf core.autocrlf=true core.eol=lf -expecting success of 1505.4 '@{-1}^2 works': - test_cmp_rev side^2 @{-1}^2 +expecting success of 0027.927 'checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_true_attr_auto_ LF crlf_false_attr__LF.txt + +ok 927 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=lf file=LF -ok 4 - @{-1}^2 works +expecting success of 0027.928 'checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_true_attr_auto_ CRLF crlf_false_attr__CRLF.txt + +ok 928 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=lf file=CRLF -expecting success of 1505.5 '@{-1}@{1} works': - test_cmp_rev side@{1} @{-1}@{1} +expecting success of 0027.929 'checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_true_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 929 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=lf file=CRLF_mix_LF -ok 5 - @{-1}@{1} works +expecting success of 0027.930 'checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_true_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 930 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=lf file=LF_mix_CR -expecting success of 1505.6 '@{-2} works': - test_cmp_rev master @{-2} +expecting success of 0027.931 'checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_true_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 931 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=lf file=LF_nul -ok 6 - @{-2} works +expecting success of 0027.932 'ls-files --eol attr=auto ident aeol=crlf core.autocrlf=true core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 932 - ls-files --eol attr=auto ident aeol=crlf core.autocrlf=true core.eol=lf -expecting success of 1505.7 '@{-3} fails': - test_must_fail git rev-parse @{-3} +expecting success of 0027.933 'checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_true_attr_auto_ CRLF crlf_false_attr__LF.txt + +ok 933 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=lf file=LF -fatal: ambiguous argument '@{-3}': unknown revision or path not in the working tree. -Use '--' to separate paths from revisions, like this: -'git [...] -- [...]' -@{-3} -ok 7 - @{-3} fails +expecting success of 0027.934 'checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_true_attr_auto_ CRLF crlf_false_attr__CRLF.txt + +ok 934 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=lf file=CRLF -# passed all 7 test(s) -1..7 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1450-fsck.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/.git/ -expecting success of 1450.1 'setup': - git config gc.auto 0 && - git config i18n.commitencoding ISO-8859-1 && - test_commit A fileA one && - git config --unset i18n.commitencoding && - git checkout HEAD^0 && - test_commit B fileB two && - git tag -d A B && - git reflog expire --expire=now --all +expecting success of 0027.935 'checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_true_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 935 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=lf file=CRLF_mix_LF -[master (root-commit) 1347563] A - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 fileA -Note: switching to 'HEAD^0'. +expecting success of 0027.936 'checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_true_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 936 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=lf file=LF_mix_CR -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. +expecting success of 0027.937 'checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_true_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 937 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=lf file=LF_nul -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: +expecting success of 0027.938 'ls-files --eol attr=-text ident aeol= core.autocrlf=false core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 938 - ls-files --eol attr=-text ident aeol= core.autocrlf=false core.eol=lf - git switch -c +expecting success of 0027.939 'checkout attr=-text ident aeol= core.autocrlf=false core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_false_attr_-text_ LF crlf_false_attr__LF.txt + +ok 939 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=lf file=LF -Or undo this operation with: +expecting success of 0027.940 'checkout attr=-text ident aeol= core.autocrlf=false core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_false_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 940 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=lf file=CRLF - git switch - +expecting success of 0027.941 'checkout attr=-text ident aeol= core.autocrlf=false core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_false_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 941 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=lf file=CRLF_mix_LF -Turn off this advice by setting config variable advice.detachedHead to false +expecting success of 0027.942 'checkout attr=-text ident aeol= core.autocrlf=false core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_false_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 942 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=lf file=LF_mix_CR -HEAD is now at 1347563 A -[detached HEAD c9145d6] B - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 fileB -Deleted tag 'A' (was 1347563) -Deleted tag 'B' (was c9145d6) -ok 1 - setup +expecting success of 0027.943 'checkout attr=-text ident aeol= core.autocrlf=false core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_false_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 943 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=lf file=LF_nul -expecting success of 1450.2 'loose objects borrowed from alternate are not missing': - mkdir another && - ( - cd another && - git init && - echo ../../../.git/objects >.git/objects/info/alternates && - test_commit C fileC one && - git fsck --no-dangling >../actual 2>&1 - ) && - test_must_be_empty actual +expecting success of 0027.944 'ls-files --eol attr=-text ident aeol=lf core.autocrlf=false core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 944 - ls-files --eol attr=-text ident aeol=lf core.autocrlf=false core.eol=lf -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/another/.git/ -[master (root-commit) 1aac250] C - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 fileC -ok 2 - loose objects borrowed from alternate are not missing +expecting success of 0027.945 'checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_false_attr_-text_ LF crlf_false_attr__LF.txt + +ok 945 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=lf file=LF -expecting success of 1450.3 'HEAD is part of refs, valid objects appear valid': - git fsck >actual 2>&1 && - test_must_be_empty actual +expecting success of 0027.946 'checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_false_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 946 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=lf file=CRLF -ok 3 - HEAD is part of refs, valid objects appear valid +expecting success of 0027.947 'checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_false_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 947 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=lf file=CRLF_mix_LF -expecting success of 1450.4 'setup: helpers for corruption tests': - sha1_file() { - remainder=${1#??} && - firsttwo=${1%$remainder} && - echo ".git/objects/$firsttwo/$remainder" - } && +expecting success of 0027.948 'checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_false_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 948 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=lf file=LF_mix_CR - remove_object() { - rm "$(sha1_file "$1")" - } +expecting success of 0027.949 'checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_false_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 949 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=lf file=LF_nul -ok 4 - setup: helpers for corruption tests +expecting success of 0027.950 'ls-files --eol attr=-text ident aeol=crlf core.autocrlf=false core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 950 - ls-files --eol attr=-text ident aeol=crlf core.autocrlf=false core.eol=lf -expecting success of 1450.5 'object with bad sha1': - sha=$(echo blob | git hash-object -w --stdin) && - old=$(test_oid_to_path "$sha") && - new=$(dirname $old)/$(test_oid ff_2) && - sha="$(dirname $new)$(basename $new)" && - mv .git/objects/$old .git/objects/$new && - test_when_finished "remove_object $sha" && - git update-index --add --cacheinfo 100644 $sha foo && - test_when_finished "git read-tree -u --reset HEAD" && - tree=$(git write-tree) && - test_when_finished "remove_object $tree" && - cmt=$(echo bogus | git commit-tree $tree) && - test_when_finished "remove_object $cmt" && - git update-ref refs/heads/bogus $cmt && - test_when_finished "git update-ref -d refs/heads/bogus" && +expecting success of 0027.951 'checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_false_attr_-text_ LF crlf_false_attr__LF.txt + +ok 951 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=lf file=LF - test_must_fail git fsck 2>out && - test_i18ngrep "$sha.*corrupt" out +expecting success of 0027.952 'checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_false_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 952 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=lf file=CRLF -missing blob 63ffffffffffffffffffffffffffffffffffffff -checking prerequisite: C_LOCALE_OUTPUT +expecting success of 0027.953 'checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_false_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 953 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=lf file=CRLF_mix_LF -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false +expecting success of 0027.954 'checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_false_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 954 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=lf file=LF_mix_CR -) -prerequisite C_LOCALE_OUTPUT ok -error: 63ffffffffffffffffffffffffffffffffffffff: object corrupt or missing: .git/objects/63/ffffffffffffffffffffffffffffffffffffff -ok 5 - object with bad sha1 +expecting success of 0027.955 'checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_false_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 955 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=lf file=LF_nul -expecting success of 1450.6 'branch pointing to non-commit': - git rev-parse HEAD^{tree} >.git/refs/heads/invalid && - test_when_finished "git update-ref -d refs/heads/invalid" && - test_must_fail git fsck 2>out && - test_i18ngrep "not a commit" out +expecting success of 0027.956 'ls-files --eol attr=text ident aeol=lf core.autocrlf=false core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 956 - ls-files --eol attr=text ident aeol=lf core.autocrlf=false core.eol=lf -error: refs/heads/invalid: not a commit -ok 6 - branch pointing to non-commit +expecting success of 0027.957 'checkout attr=text ident aeol=lf core.autocrlf=false core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_false_attr_text_ LF crlf_false_attr__LF.txt + +ok 957 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=lf file=LF -expecting success of 1450.7 'HEAD link pointing at a funny object': - test_when_finished "mv .git/SAVED_HEAD .git/HEAD" && - mv .git/HEAD .git/SAVED_HEAD && - echo $ZERO_OID >.git/HEAD && - # avoid corrupt/broken HEAD from interfering with repo discovery - test_must_fail env GIT_DIR=.git git fsck 2>out && - test_i18ngrep "detached HEAD points" out +expecting success of 0027.958 'checkout attr=text ident aeol=lf core.autocrlf=false core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 958 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=lf file=CRLF -dangling commit c9145d6720f85544cc4bb6009a2e541660aa156b -error: HEAD: detached HEAD points at nothing -ok 7 - HEAD link pointing at a funny object +expecting success of 0027.959 'checkout attr=text ident aeol=lf core.autocrlf=false core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_false_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 959 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=lf file=CRLF_mix_LF -expecting success of 1450.8 'HEAD link pointing at a funny place': - test_when_finished "mv .git/SAVED_HEAD .git/HEAD" && - mv .git/HEAD .git/SAVED_HEAD && - echo "ref: refs/funny/place" >.git/HEAD && - # avoid corrupt/broken HEAD from interfering with repo discovery - test_must_fail env GIT_DIR=.git git fsck 2>out && - test_i18ngrep "HEAD points to something strange" out +expecting success of 0027.960 'checkout attr=text ident aeol=lf core.autocrlf=false core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_false_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 960 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=lf file=LF_mix_CR -dangling commit c9145d6720f85544cc4bb6009a2e541660aa156b -error: HEAD points to something strange (refs/funny/place) -ok 8 - HEAD link pointing at a funny place +expecting success of 0027.961 'checkout attr=text ident aeol=lf core.autocrlf=false core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_false_attr_text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 961 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=lf file=LF_nul -expecting success of 1450.9 'HEAD link pointing at a funny object (from different wt)': - test_when_finished "mv .git/SAVED_HEAD .git/HEAD" && - test_when_finished "rm -rf .git/worktrees wt" && - git worktree add wt && - mv .git/HEAD .git/SAVED_HEAD && - echo $ZERO_OID >.git/HEAD && - # avoid corrupt/broken HEAD from interfering with repo discovery - test_must_fail git -C wt fsck 2>out && - test_i18ngrep "main-worktree/HEAD: detached HEAD points" out +expecting success of 0027.962 'ls-files --eol attr=text ident aeol=crlf core.autocrlf=false core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 962 - ls-files --eol attr=text ident aeol=crlf core.autocrlf=false core.eol=lf -Preparing worktree (new branch 'wt') -HEAD is now at c9145d6 B -error: main-worktree/HEAD: detached HEAD points at nothing -ok 9 - HEAD link pointing at a funny object (from different wt) +expecting success of 0027.963 'checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_false_attr_text_ CRLF crlf_false_attr__LF.txt + +ok 963 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=lf file=LF -expecting success of 1450.10 'other worktree HEAD link pointing at a funny object': - test_when_finished "rm -rf .git/worktrees other" && - git worktree add other && - echo $ZERO_OID >.git/worktrees/other/HEAD && - test_must_fail git fsck 2>out && - test_i18ngrep "worktrees/other/HEAD: detached HEAD points" out +expecting success of 0027.964 'checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 964 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=lf file=CRLF -Preparing worktree (new branch 'other') -HEAD is now at c9145d6 B -error: worktrees/other/HEAD: detached HEAD points at nothing -ok 10 - other worktree HEAD link pointing at a funny object +expecting success of 0027.965 'checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt + +ok 965 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=lf file=CRLF_mix_LF -expecting success of 1450.11 'other worktree HEAD link pointing at missing object': - test_when_finished "rm -rf .git/worktrees other" && - git worktree add other && - echo "Contents missing from repo" | git hash-object --stdin >.git/worktrees/other/HEAD && - test_must_fail git fsck 2>out && - test_i18ngrep "worktrees/other/HEAD: invalid sha1 pointer" out +expecting success of 0027.966 'checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_false_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 966 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=lf file=LF_mix_CR -Preparing worktree (checking out 'other') -HEAD is now at c9145d6 B -error: worktrees/other/HEAD: invalid sha1 pointer 45ea5fdbd862b3f0e413a6c2c951347efa0bb114 -ok 11 - other worktree HEAD link pointing at missing object +expecting success of 0027.967 'checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_false_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt + +ok 967 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=lf file=LF_nul -expecting success of 1450.12 'other worktree HEAD link pointing at a funny place': - test_when_finished "rm -rf .git/worktrees other" && - git worktree add other && - echo "ref: refs/funny/place" >.git/worktrees/other/HEAD && - test_must_fail git fsck 2>out && - test_i18ngrep "worktrees/other/HEAD points to something strange" out +expecting success of 0027.968 'ls-files --eol attr=auto ident aeol=lf core.autocrlf=false core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 968 - ls-files --eol attr=auto ident aeol=lf core.autocrlf=false core.eol=lf -Preparing worktree (checking out 'other') -HEAD is now at c9145d6 B -error: worktrees/other/HEAD points to something strange (refs/funny/place) -ok 12 - other worktree HEAD link pointing at a funny place +expecting success of 0027.969 'checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_false_attr_auto_ LF crlf_false_attr__LF.txt + +ok 969 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=lf file=LF -expecting success of 1450.13 'commit with multiple signatures is okay': - git cat-file commit HEAD >basis && - cat >sigs <<-EOF && - gpgsig -----BEGIN PGP SIGNATURE----- - VGhpcyBpcyBub3QgcmVhbGx5IGEgc2lnbmF0dXJlLg== - -----END PGP SIGNATURE----- - gpgsig-sha256 -----BEGIN PGP SIGNATURE----- - VGhpcyBpcyBub3QgcmVhbGx5IGEgc2lnbmF0dXJlLg== - -----END PGP SIGNATURE----- - EOF - sed -e "/^committer/q" basis >okay && - cat sigs >>okay && - echo >>okay && - sed -e "1,/^$/d" basis >>okay && - cat okay && - new=$(git hash-object -t commit -w --stdin out && - cat out && - ! grep "commit $new" out +expecting success of 0027.970 'checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_false_attr_auto_ CRLF crlf_false_attr__CRLF.txt + +ok 970 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=lf file=CRLF -tree c9176b0dd1a95c80ad8de21784b1eeffd3681f49 -parent 134756353796a5439d93586be27999eea3807a34 -author A U Thor 1112912053 -0700 -committer C O Mitter 1112912053 -0700 -gpgsig -----BEGIN PGP SIGNATURE----- - VGhpcyBpcyBub3QgcmVhbGx5IGEgc2lnbmF0dXJlLg== - -----END PGP SIGNATURE----- -gpgsig-sha256 -----BEGIN PGP SIGNATURE----- - VGhpcyBpcyBub3QgcmVhbGx5IGEgc2lnbmF0dXJlLg== - -----END PGP SIGNATURE----- +expecting success of 0027.971 'checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_false_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 971 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=lf file=CRLF_mix_LF -B -ok 13 - commit with multiple signatures is okay +expecting success of 0027.972 'checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_false_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 972 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=lf file=LF_mix_CR -expecting success of 1450.14 'email without @ is okay': - git cat-file commit HEAD >basis && - sed "s/@/AT/" basis >okay && - new=$(git hash-object -t commit -w --stdin out && - ! grep "commit $new" out +expecting success of 0027.973 'checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_false_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 973 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=lf file=LF_nul -ok 14 - email without @ is okay +expecting success of 0027.974 'ls-files --eol attr=auto ident aeol=crlf core.autocrlf=false core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 974 - ls-files --eol attr=auto ident aeol=crlf core.autocrlf=false core.eol=lf -expecting success of 1450.15 'email with embedded > is not okay': - git cat-file commit HEAD >basis && - sed "s/@[a-z]/&>/" basis >bad-email && - new=$(git hash-object -t commit -w --stdin out && - test_i18ngrep "error in commit $new" out +expecting success of 0027.975 'checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_false_attr_auto_ CRLF crlf_false_attr__LF.txt + +ok 975 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=lf file=LF -error in commit af421232fcba11d582d625f9041afbe3fccc01d9: missingSpaceBeforeDate: invalid author/committer line - missing space before date -ok 15 - email with embedded > is not okay +expecting success of 0027.976 'checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_false_attr_auto_ CRLF crlf_false_attr__CRLF.txt + +ok 976 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=lf file=CRLF -expecting success of 1450.16 'missing < email delimiter is reported nicely': - git cat-file commit HEAD >basis && - sed "s/bad-email-2 && - new=$(git hash-object -t commit -w --stdin out && - test_i18ngrep "error in commit $new.* - bad name" out +expecting success of 0027.977 'checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_false_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 977 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=lf file=CRLF_mix_LF -error in commit c4b6d356e934be1cc10cb58c734fbcc5fa3a5285: badName: invalid author/committer line - bad name -ok 16 - missing < email delimiter is reported nicely +expecting success of 0027.978 'checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_false_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 978 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=lf file=LF_mix_CR -expecting success of 1450.17 'missing email is reported nicely': - git cat-file commit HEAD >basis && - sed "s/[a-z]* <[^>]*>//" basis >bad-email-3 && - new=$(git hash-object -t commit -w --stdin out && - test_i18ngrep "error in commit $new.* - missing email" out +expecting success of 0027.979 'checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_false_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 979 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=lf file=LF_nul -error in commit 35319efb0a67194811f8583362d460866d58b499: missingEmail: invalid author/committer line - missing email -ok 17 - missing email is reported nicely +expecting success of 0027.980 'ls-files --eol attr=-text ident aeol= core.autocrlf=input core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 980 - ls-files --eol attr=-text ident aeol= core.autocrlf=input core.eol=lf -expecting success of 1450.18 '> in name is reported': - git cat-file commit HEAD >basis && - sed "s/ bad-email-4 && - new=$(git hash-object -t commit -w --stdin out && - test_i18ngrep "error in commit $new" out +expecting success of 0027.981 'checkout attr=-text ident aeol= core.autocrlf=input core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_input_attr_-text_ LF crlf_false_attr__LF.txt + +ok 981 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=lf file=LF -error in commit 301380051321b3e224015eea93b0ebc550c88198: badName: invalid author/committer line - bad name -ok 18 - > in name is reported +expecting success of 0027.982 'checkout attr=-text ident aeol= core.autocrlf=input core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_input_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 982 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=lf file=CRLF -expecting success of 1450.19 'integer overflow in timestamps is reported': - git cat-file commit HEAD >basis && - sed "s/^\\(author .*>\\) [0-9]*/\\1 18446744073709551617/" \ - bad-timestamp && - new=$(git hash-object -t commit -w --stdin out && - test_i18ngrep "error in commit $new.*integer overflow" out +expecting success of 0027.983 'checkout attr=-text ident aeol= core.autocrlf=input core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_input_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 983 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=lf file=CRLF_mix_LF -error in commit c8453435c3587d0404f88f925c28a5944b73be1a: badDateOverflow: invalid author/committer line - date causes integer overflow -ok 19 - integer overflow in timestamps is reported +expecting success of 0027.984 'checkout attr=-text ident aeol= core.autocrlf=input core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_input_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 984 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=lf file=LF_mix_CR -expecting success of 1450.20 'commit with NUL in header': - git cat-file commit HEAD >basis && - sed "s/author ./author Q/" commit-NUL-header && - new=$(git hash-object -t commit -w --stdin out && - test_i18ngrep "error in commit $new.*unterminated header: NUL at offset" out +expecting success of 0027.985 'checkout attr=-text ident aeol= core.autocrlf=input core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_input_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 985 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=lf file=LF_nul -error in commit b70520fa0e6346c648b4013350096f65f49946eb: nulInHeader: unterminated header: NUL at offset 101 -ok 20 - commit with NUL in header +expecting success of 0027.986 'ls-files --eol attr=-text ident aeol=lf core.autocrlf=input core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 986 - ls-files --eol attr=-text ident aeol=lf core.autocrlf=input core.eol=lf -expecting success of 1450.21 'tree object with duplicate entries': - test_when_finished "for i in \$T; do remove_object \$i; done" && - T=$( - GIT_INDEX_FILE=test-index && - export GIT_INDEX_FILE && - rm -f test-index && - >x && - git add x && - git rev-parse :x && - T=$(git write-tree) && - echo $T && - ( - git cat-file tree $T && - git cat-file tree $T - ) | - git hash-object -w -t tree --stdin - ) && - test_must_fail git fsck 2>out && - test_i18ngrep "error in tree .*contains duplicate file entries" out +expecting success of 0027.987 'checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_input_attr_-text_ LF crlf_false_attr__LF.txt + +ok 987 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=lf file=LF -dangling tree 5805b676e247eb9a8046ad0c4d249cd2fb2513df -dangling tree 7997631de77b8a212b5c3e01eff5e9cf1d3c7580 -error in tree 7997631de77b8a212b5c3e01eff5e9cf1d3c7580: duplicateEntries: contains duplicate file entries -ok 21 - tree object with duplicate entries +expecting success of 0027.988 'checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_input_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 988 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=lf file=CRLF -expecting success of 1450.22 'tree object with duplicate names: x x.1 x/': - test_when_finished "remove_object \$blob" && - test_when_finished "remove_object \$tree" && - test_when_finished "remove_object \$badtree" && - blob=$(echo blob | git hash-object -w --stdin) && - printf "100644 blob %s\t%s\n" $blob x.2 >tree && - tree=$(git mktree badtree && - badtree=$(git mktree out && - test_i18ngrep "$badtree" out && - test_i18ngrep "error in tree .*contains duplicate file entries" out +expecting success of 0027.989 'checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_input_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt -dangling tree 26c966b0589aae52be2c311b1ffbdd28e9ba7d67 -error in tree 26c966b0589aae52be2c311b1ffbdd28e9ba7d67: duplicateEntries: contains duplicate file entries -error in tree 26c966b0589aae52be2c311b1ffbdd28e9ba7d67: duplicateEntries: contains duplicate file entries -ok 22 - tree object with duplicate names: x x.1 x/ +ok 989 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=lf file=CRLF_mix_LF -expecting success of 1450.23 'tree object with duplicate names: x x.1.2 x.1/ x/': - test_when_finished "remove_object \$blob" && - test_when_finished "remove_object \$tree" && - test_when_finished "remove_object \$badtree" && - blob=$(echo blob | git hash-object -w --stdin) && - printf "100644 blob %s\t%s\n" $blob x.2 >tree && - tree=$(git mktree badtree && - badtree=$(git mktree out && - test_i18ngrep "$badtree" out && - test_i18ngrep "error in tree .*contains duplicate file entries" out +expecting success of 0027.990 'checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_input_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt -dangling tree 464b70bd0f13c75cfbde739fe1ba074454b55bdb -error in tree 464b70bd0f13c75cfbde739fe1ba074454b55bdb: duplicateEntries: contains duplicate file entries -error in tree 464b70bd0f13c75cfbde739fe1ba074454b55bdb: duplicateEntries: contains duplicate file entries -ok 23 - tree object with duplicate names: x x.1.2 x.1/ x/ +ok 990 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=lf file=LF_mix_CR -expecting success of 1450.24 'tree object with duplicate names: x x.1 x.1.2 x/': - test_when_finished "remove_object \$blob" && - test_when_finished "remove_object \$tree" && - test_when_finished "remove_object \$badtree" && - blob=$(echo blob | git hash-object -w --stdin) && - printf "100644 blob %s\t%s\n" $blob x.2 >tree && - tree=$(git mktree badtree && - badtree=$(git mktree out && - test_i18ngrep "$badtree" out && - test_i18ngrep "error in tree .*contains duplicate file entries" out +expecting success of 0027.991 'checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_input_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt -dangling tree bfbeecf396ef7aaf4d8c67e3615296a445358420 -error in tree bfbeecf396ef7aaf4d8c67e3615296a445358420: duplicateEntries: contains duplicate file entries -error in tree bfbeecf396ef7aaf4d8c67e3615296a445358420: duplicateEntries: contains duplicate file entries -ok 24 - tree object with duplicate names: x x.1 x.1.2 x/ +ok 991 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=lf file=LF_nul -expecting success of 1450.25 'unparseable tree object': - test_oid_cache <<-\EOF && - junk sha1:twenty-bytes-of-junk - junk sha256:twenty-bytes-of-junk-twelve-more - EOF +expecting success of 0027.992 'ls-files --eol attr=-text ident aeol=crlf core.autocrlf=input core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 992 - ls-files --eol attr=-text ident aeol=crlf core.autocrlf=input core.eol=lf - test_when_finished "git update-ref -d refs/heads/wrong" && - test_when_finished "remove_object \$tree_sha1" && - test_when_finished "remove_object \$commit_sha1" && - junk=$(test_oid junk) && - tree_sha1=$(printf "100644 \0$junk" | git hash-object -t tree --stdin -w --literally) && - commit_sha1=$(git commit-tree $tree_sha1) && - git update-ref refs/heads/wrong $commit_sha1 && - test_must_fail git fsck 2>out && - test_i18ngrep "error: empty filename in tree entry" out && - test_i18ngrep "$tree_sha1" out && - test_i18ngrep ! "fatal: empty filename in tree entry" out +expecting success of 0027.993 'checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_input_attr_-text_ LF crlf_false_attr__LF.txt + +ok 993 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=lf file=LF -error: empty filename in tree entry -error: empty filename in tree entry -error: empty filename in tree entry -error in tree b1b45dcb979335e5f09d3b756c4639cab166c243: broken links -error in tree b1b45dcb979335e5f09d3b756c4639cab166c243: badTree: cannot be parsed as a tree -ok 25 - unparseable tree object +expecting success of 0027.994 'checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_input_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 994 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=lf file=CRLF -expecting success of 1450.26 'tree entry with type mismatch': - test_when_finished "remove_object \$blob" && - test_when_finished "remove_object \$tree" && - test_when_finished "remove_object \$commit" && - test_when_finished "git update-ref -d refs/heads/type_mismatch" && - blob=$(echo blob | git hash-object -w --stdin) && - blob_bin=$(echo $blob | hex2oct) && - tree=$( - printf "40000 dir\0${blob_bin}100644 file\0${blob_bin}" | - git hash-object -t tree --stdin -w --literally - ) && - commit=$(git commit-tree $tree) && - git update-ref refs/heads/type_mismatch $commit && - test_must_fail git fsck >out 2>&1 && - test_i18ngrep "is a blob, not a tree" out && - test_i18ngrep ! "dangling blob" out +expecting success of 0027.995 'checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_input_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 995 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=lf file=CRLF_mix_LF -error: object 63499e4ea8e096b831515ceb1d5a7593e4d87ae5 is a blob, not a tree -error: object 63499e4ea8e096b831515ceb1d5a7593e4d87ae5 is a blob, not a tree -ok 26 - tree entry with type mismatch +expecting success of 0027.996 'checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_input_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 996 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=lf file=LF_mix_CR -expecting success of 1450.27 'tag pointing to nonexistent': - badoid=$(test_oid deadbeef) && - cat >invalid-tag <<-EOF && - object $badoid - type commit - tag invalid - tagger T A Gger 1234567890 -0000 +expecting success of 0027.997 'checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_input_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 997 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=lf file=LF_nul - This is an invalid tag. - EOF +expecting success of 0027.998 'ls-files --eol attr=text ident aeol=lf core.autocrlf=input core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 998 - ls-files --eol attr=text ident aeol=lf core.autocrlf=input core.eol=lf - tag=$(git hash-object -t tag -w --stdin .git/refs/tags/invalid && - test_when_finished "git update-ref -d refs/tags/invalid" && - test_must_fail git fsck --tags >out && - test_i18ngrep "broken link" out +expecting success of 0027.999 'checkout attr=text ident aeol=lf core.autocrlf=input core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_input_attr_text_ LF crlf_false_attr__LF.txt + +ok 999 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=lf file=LF -broken link from tag 5248b3501322f3dd3ac19713bbbe83f70183da53 -ok 27 - tag pointing to nonexistent +expecting success of 0027.1000 'checkout attr=text ident aeol=lf core.autocrlf=input core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 1000 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=lf file=CRLF -expecting success of 1450.28 'tag pointing to something else than its type': - sha=$(echo blob | git hash-object -w --stdin) && - test_when_finished "remove_object $sha" && - cat >wrong-tag <<-EOF && - object $sha - type commit - tag wrong - tagger T A Gger 1234567890 -0000 +expecting success of 0027.1001 'checkout attr=text ident aeol=lf core.autocrlf=input core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_input_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1001 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=lf file=CRLF_mix_LF - This is an invalid tag. - EOF +expecting success of 0027.1002 'checkout attr=text ident aeol=lf core.autocrlf=input core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_input_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1002 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=lf file=LF_mix_CR - tag=$(git hash-object -t tag -w --stdin .git/refs/tags/wrong && - test_when_finished "git update-ref -d refs/tags/wrong" && - test_must_fail git fsck --tags +expecting success of 0027.1003 'checkout attr=text ident aeol=lf core.autocrlf=input core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_input_attr_text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1003 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=lf file=LF_nul -error: object 63499e4ea8e096b831515ceb1d5a7593e4d87ae5 is a blob, not a commit -error: bad tag pointer to 63499e4ea8e096b831515ceb1d5a7593e4d87ae5 in 66f6581d549f70e05ca586bc2df5c15a95662c36 -error: 66f6581d549f70e05ca586bc2df5c15a95662c36: object could not be parsed: .git/objects/66/f6581d549f70e05ca586bc2df5c15a95662c36 -error: object 63499e4ea8e096b831515ceb1d5a7593e4d87ae5 is a blob, not a commit -error: bad tag pointer to 63499e4ea8e096b831515ceb1d5a7593e4d87ae5 in 66f6581d549f70e05ca586bc2df5c15a95662c36 -error: refs/tags/wrong: invalid sha1 pointer 66f6581d549f70e05ca586bc2df5c15a95662c36 -dangling blob 63499e4ea8e096b831515ceb1d5a7593e4d87ae5 -ok 28 - tag pointing to something else than its type +expecting success of 0027.1004 'ls-files --eol attr=text ident aeol=crlf core.autocrlf=input core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1004 - ls-files --eol attr=text ident aeol=crlf core.autocrlf=input core.eol=lf -expecting success of 1450.29 'tag with incorrect tag name & missing tagger': - sha=$(git rev-parse HEAD) && - cat >wrong-tag <<-EOF && - object $sha - type commit - tag wrong name format +expecting success of 0027.1005 'checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_input_attr_text_ CRLF crlf_false_attr__LF.txt + +ok 1005 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=lf file=LF - This is an invalid tag. - EOF +expecting success of 0027.1006 'checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 1006 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=lf file=CRLF - tag=$(git hash-object -t tag -w --stdin .git/refs/tags/wrong && - test_when_finished "git update-ref -d refs/tags/wrong" && - git fsck --tags 2>out && +expecting success of 0027.1007 'checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt + +ok 1007 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=lf file=CRLF_mix_LF - cat >expect <<-EOF && - warning in tag $tag: badTagName: invalid 'tag' name: wrong name format - warning in tag $tag: missingTaggerEntry: invalid format - expected 'tagger' line - EOF - test_i18ncmp expect out +expecting success of 0027.1008 'checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_input_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1008 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=lf file=LF_mix_CR -tagged commit c9145d6720f85544cc4bb6009a2e541660aa156b (wrong name format) in 6d73f1b4d41e4fdac4ba717a11e7409876bb75c3 -ok 29 - tag with incorrect tag name & missing tagger +expecting success of 0027.1009 'checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_input_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt + +ok 1009 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=lf file=LF_nul -expecting success of 1450.30 'tag with bad tagger': - sha=$(git rev-parse HEAD) && - cat >wrong-tag <<-EOF && - object $sha - type commit - tag not-quite-wrong - tagger Bad Tagger Name +expecting success of 0027.1010 'ls-files --eol attr=auto ident aeol=lf core.autocrlf=input core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1010 - ls-files --eol attr=auto ident aeol=lf core.autocrlf=input core.eol=lf - This is an invalid tag. - EOF +expecting success of 0027.1011 'checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_input_attr_auto_ LF crlf_false_attr__LF.txt + +ok 1011 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=lf file=LF - tag=$(git hash-object --literally -t tag -w --stdin .git/refs/tags/wrong && - test_when_finished "git update-ref -d refs/tags/wrong" && - test_must_fail git fsck --tags 2>out && - test_i18ngrep "error in tag .*: invalid author/committer" out +expecting success of 0027.1012 'checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_input_attr_auto_ CRLF crlf_false_attr__CRLF.txt + +ok 1012 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=lf file=CRLF -error in tag d037dcc834669cc0c5d3416130c899572cb1aedd: missingEmail: invalid author/committer line - missing email -ok 30 - tag with bad tagger +expecting success of 0027.1013 'checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_input_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1013 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=lf file=CRLF_mix_LF -expecting success of 1450.31 'tag with NUL in header': - sha=$(git rev-parse HEAD) && - q_to_nul >tag-NUL-header <<-EOF && - object $sha - type commit - tag contains-Q-in-header - tagger T A Gger 1234567890 -0000 +expecting success of 0027.1014 'checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_input_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1014 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=lf file=LF_mix_CR - This is an invalid tag. - EOF +expecting success of 0027.1015 'checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_input_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1015 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=lf file=LF_nul - tag=$(git hash-object --literally -t tag -w --stdin .git/refs/tags/wrong && - test_when_finished "git update-ref -d refs/tags/wrong" && - test_must_fail git fsck --tags 2>out && - test_i18ngrep "error in tag $tag.*unterminated header: NUL at offset" out +expecting success of 0027.1016 'ls-files --eol attr=auto ident aeol=crlf core.autocrlf=input core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1016 - ls-files --eol attr=auto ident aeol=crlf core.autocrlf=input core.eol=lf -error in tag 6251166df5b0f4b7f840db1a9af555089418c925: nulInHeader: unterminated header: NUL at offset 73 -ok 31 - tag with NUL in header +expecting success of 0027.1017 'checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_input_attr_auto_ CRLF crlf_false_attr__LF.txt + +ok 1017 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=lf file=LF -expecting success of 1450.32 'cleaned up': - git fsck >actual 2>&1 && - test_must_be_empty actual +expecting success of 0027.1018 'checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_input_attr_auto_ CRLF crlf_false_attr__CRLF.txt + +ok 1018 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=lf file=CRLF -ok 32 - cleaned up +expecting success of 0027.1019 'checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_input_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1019 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=lf file=CRLF_mix_LF -expecting success of 1450.33 'rev-list --verify-objects': - git rev-list --verify-objects --all >/dev/null 2>out && - test_must_be_empty out +expecting success of 0027.1020 'checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_input_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1020 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=lf file=LF_mix_CR -ok 33 - rev-list --verify-objects +expecting success of 0027.1021 'checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_input_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1021 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=lf file=LF_nul -expecting success of 1450.34 'rev-list --verify-objects with bad sha1': - sha=$(echo blob | git hash-object -w --stdin) && - old=$(test_oid_to_path $sha) && - new=$(dirname $old)/$(test_oid ff_2) && - sha="$(dirname $new)$(basename $new)" && - mv .git/objects/$old .git/objects/$new && - test_when_finished "remove_object $sha" && - git update-index --add --cacheinfo 100644 $sha foo && - test_when_finished "git read-tree -u --reset HEAD" && - tree=$(git write-tree) && - test_when_finished "remove_object $tree" && - cmt=$(echo bogus | git commit-tree $tree) && - test_when_finished "remove_object $cmt" && - git update-ref refs/heads/bogus $cmt && - test_when_finished "git update-ref -d refs/heads/bogus" && +expecting success of 0027.1022 'ls-files --eol attr= ident aeol= core.autocrlf=false core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1022 - ls-files --eol attr= ident aeol= core.autocrlf=false core.eol=lf - test_might_fail git rev-list --verify-objects refs/heads/bogus >/dev/null 2>out && - test_i18ngrep -q "error: hash mismatch $(dirname $new)$(test_oid ff_2)" out +expecting success of 0027.1023 'checkout attr= ident aeol= core.autocrlf=false core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_false_attr__ LF crlf_false_attr__LF.txt + +ok 1023 - checkout attr= ident aeol= core.autocrlf=false core.eol=lf file=LF -ok 34 - rev-list --verify-objects with bad sha1 +expecting success of 0027.1024 'checkout attr= ident aeol= core.autocrlf=false core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_false_attr__ CRLF crlf_false_attr__CRLF.txt + +ok 1024 - checkout attr= ident aeol= core.autocrlf=false core.eol=lf file=CRLF -expecting success of 1450.35 'force fsck to ignore double author': - git cat-file commit HEAD >basis && - sed "s/^author .*/&,&/" multiple-authors && - new=$(git hash-object -t commit -w --stdin out && - test_i18ngrep "warning.*null sha1" out - ) +expecting success of 0027.1027 'checkout attr= ident aeol= core.autocrlf=false core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_false_attr__ LF_nul crlf_false_attr__LF_nul.txt + +ok 1027 - checkout attr= ident aeol= core.autocrlf=false core.eol=lf file=LF_nul -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/null-blob/.git/ -dangling tree aaf928e9279b56c88bcc8d79f881e5c820ea23e8 -warning in tree aaf928e9279b56c88bcc8d79f881e5c820ea23e8: nullSha1: contains entries pointing to null sha1 -ok 36 - fsck notices blob entry pointing to null sha1 +expecting success of 0027.1028 'ls-files --eol attr= ident aeol= core.autocrlf=true core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1028 - ls-files --eol attr= ident aeol= core.autocrlf=true core.eol=lf -expecting success of 1450.37 'fsck notices submodule entry pointing to null sha1': - (git init null-commit && - cd null-commit && - sha=$(printf "160000 submodule$_bz$_bzoid" | - git hash-object -w --stdin -t tree) && - git fsck 2>out && - test_i18ngrep "warning.*null sha1" out - ) +expecting success of 0027.1029 'checkout attr= ident aeol= core.autocrlf=true core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_true_attr__ CRLF crlf_false_attr__LF.txt + +ok 1029 - checkout attr= ident aeol= core.autocrlf=true core.eol=lf file=LF -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/null-commit/.git/ -dangling tree f87f3eabd15018382578c00e3a71a46c842e17e6 -warning in tree f87f3eabd15018382578c00e3a71a46c842e17e6: nullSha1: contains entries pointing to null sha1 -ok 37 - fsck notices submodule entry pointing to null sha1 +expecting success of 0027.1030 'checkout attr= ident aeol= core.autocrlf=true core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_true_attr__ CRLF crlf_false_attr__CRLF.txt + +ok 1030 - checkout attr= ident aeol= core.autocrlf=true core.eol=lf file=CRLF -expecting success of 1450.38 'fsck notices . as blob': - ( - git init $name-$type && - cd $name-$type && - git config core.protectNTFS false && - echo content >file && - git add file && - git commit -m base && - blob=$(git rev-parse :file) && - tree=$(git rev-parse HEAD^{tree}) && - value=$(eval "echo \$$type") && - printf "$mode $type %s\t%s" "$value" "$path" >bad && - bad_tree=$(git mktree out && - test_i18ngrep "warning.*tree $bad_tree" out - ) -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/dot-blob/.git/ -[master (root-commit) ebd6d19] base - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -dangling tree 4d6a3deda84474ed5f701962ea9bf83c5fe08185 -warning in tree 4d6a3deda84474ed5f701962ea9bf83c5fe08185: hasDot: contains '.' -ok 38 - fsck notices . as blob +expecting success of 0027.1031 'checkout attr= ident aeol= core.autocrlf=true core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_true_attr__ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1031 - checkout attr= ident aeol= core.autocrlf=true core.eol=lf file=CRLF_mix_LF -expecting success of 1450.39 'fsck notices . as tree': - ( - git init $name-$type && - cd $name-$type && - git config core.protectNTFS false && - echo content >file && - git add file && - git commit -m base && - blob=$(git rev-parse :file) && - tree=$(git rev-parse HEAD^{tree}) && - value=$(eval "echo \$$type") && - printf "$mode $type %s\t%s" "$value" "$path" >bad && - bad_tree=$(git mktree out && - test_i18ngrep "warning.*tree $bad_tree" out - ) -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/dot-tree/.git/ -[master (root-commit) ebd6d19] base - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -dangling tree 8984d55df404e56c99a9c5a2e5a168084a913e8f -warning in tree 8984d55df404e56c99a9c5a2e5a168084a913e8f: hasDot: contains '.' -ok 39 - fsck notices . as tree +expecting success of 0027.1032 'checkout attr= ident aeol= core.autocrlf=true core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_true_attr__ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1032 - checkout attr= ident aeol= core.autocrlf=true core.eol=lf file=LF_mix_CR -expecting success of 1450.40 'fsck notices .. as blob': - ( - git init $name-$type && - cd $name-$type && - git config core.protectNTFS false && - echo content >file && - git add file && - git commit -m base && - blob=$(git rev-parse :file) && - tree=$(git rev-parse HEAD^{tree}) && - value=$(eval "echo \$$type") && - printf "$mode $type %s\t%s" "$value" "$path" >bad && - bad_tree=$(git mktree out && - test_i18ngrep "warning.*tree $bad_tree" out - ) -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/dotdot-blob/.git/ -[master (root-commit) ebd6d19] base - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -dangling tree 879560d9e3297f45ca9c25d4eea563f8dd179a32 -warning in tree 879560d9e3297f45ca9c25d4eea563f8dd179a32: hasDotdot: contains '..' -ok 40 - fsck notices .. as blob +expecting success of 0027.1033 'checkout attr= ident aeol= core.autocrlf=true core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_true_attr__ LF_nul crlf_false_attr__LF_nul.txt + +ok 1033 - checkout attr= ident aeol= core.autocrlf=true core.eol=lf file=LF_nul -expecting success of 1450.41 'fsck notices .. as tree': - ( - git init $name-$type && - cd $name-$type && - git config core.protectNTFS false && - echo content >file && - git add file && - git commit -m base && - blob=$(git rev-parse :file) && - tree=$(git rev-parse HEAD^{tree}) && - value=$(eval "echo \$$type") && - printf "$mode $type %s\t%s" "$value" "$path" >bad && - bad_tree=$(git mktree out && - test_i18ngrep "warning.*tree $bad_tree" out - ) -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/dotdot-tree/.git/ -[master (root-commit) ebd6d19] base - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -dangling tree e704ff9811f799e752c8894dbc145bc74e4561fa -warning in tree e704ff9811f799e752c8894dbc145bc74e4561fa: hasDotdot: contains '..' -ok 41 - fsck notices .. as tree +expecting success of 0027.1034 'ls-files --eol attr=auto ident aeol= core.autocrlf=true core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1034 - ls-files --eol attr=auto ident aeol= core.autocrlf=true core.eol=lf -expecting success of 1450.42 'fsck notices .git as blob': - ( - git init $name-$type && - cd $name-$type && - git config core.protectNTFS false && - echo content >file && - git add file && - git commit -m base && - blob=$(git rev-parse :file) && - tree=$(git rev-parse HEAD^{tree}) && - value=$(eval "echo \$$type") && - printf "$mode $type %s\t%s" "$value" "$path" >bad && - bad_tree=$(git mktree out && - test_i18ngrep "warning.*tree $bad_tree" out - ) -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/dotgit-blob/.git/ -[master (root-commit) ebd6d19] base - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -dangling tree 8ac5f64528d35de17a03755d2f3387af1de58b5a -warning in tree 8ac5f64528d35de17a03755d2f3387af1de58b5a: hasDotgit: contains '.git' -ok 42 - fsck notices .git as blob +expecting success of 0027.1035 'checkout attr=auto ident aeol= core.autocrlf=true core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_true_attr_auto_ CRLF crlf_false_attr__LF.txt + +ok 1035 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=lf file=LF -expecting success of 1450.43 'fsck notices .git as tree': - ( - git init $name-$type && - cd $name-$type && - git config core.protectNTFS false && - echo content >file && - git add file && - git commit -m base && - blob=$(git rev-parse :file) && - tree=$(git rev-parse HEAD^{tree}) && - value=$(eval "echo \$$type") && - printf "$mode $type %s\t%s" "$value" "$path" >bad && - bad_tree=$(git mktree out && - test_i18ngrep "warning.*tree $bad_tree" out - ) -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/dotgit-tree/.git/ -[master (root-commit) ebd6d19] base - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -dangling tree 69237360529ca48e6b6c1af14e753faabe339fb7 -warning in tree 69237360529ca48e6b6c1af14e753faabe339fb7: hasDotgit: contains '.git' -ok 43 - fsck notices .git as tree +expecting success of 0027.1036 'checkout attr=auto ident aeol= core.autocrlf=true core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_true_attr_auto_ CRLF crlf_false_attr__CRLF.txt + +ok 1036 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=lf file=CRLF -expecting success of 1450.44 'fsck notices .GIT as blob': - ( - git init $name-$type && - cd $name-$type && - git config core.protectNTFS false && - echo content >file && - git add file && - git commit -m base && - blob=$(git rev-parse :file) && - tree=$(git rev-parse HEAD^{tree}) && - value=$(eval "echo \$$type") && - printf "$mode $type %s\t%s" "$value" "$path" >bad && - bad_tree=$(git mktree out && - test_i18ngrep "warning.*tree $bad_tree" out - ) -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/dotgit-case-blob/.git/ -[master (root-commit) ebd6d19] base - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -dangling tree 56bac0d7a0a3c1451521352e3d40117e5ffc602e -warning in tree 56bac0d7a0a3c1451521352e3d40117e5ffc602e: hasDotgit: contains '.git' -ok 44 - fsck notices .GIT as blob +expecting success of 0027.1037 'checkout attr=auto ident aeol= core.autocrlf=true core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_true_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1037 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=lf file=CRLF_mix_LF -expecting success of 1450.45 'fsck notices .GIT as tree': - ( - git init $name-$type && - cd $name-$type && - git config core.protectNTFS false && - echo content >file && - git add file && - git commit -m base && - blob=$(git rev-parse :file) && - tree=$(git rev-parse HEAD^{tree}) && - value=$(eval "echo \$$type") && - printf "$mode $type %s\t%s" "$value" "$path" >bad && - bad_tree=$(git mktree out && - test_i18ngrep "warning.*tree $bad_tree" out - ) -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/dotgit-case-tree/.git/ -[master (root-commit) ebd6d19] base - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -dangling tree 968a2dfde1e164e0513456c00ef656b2497434a3 -warning in tree 968a2dfde1e164e0513456c00ef656b2497434a3: hasDotgit: contains '.git' -ok 45 - fsck notices .GIT as tree +expecting success of 0027.1038 'checkout attr=auto ident aeol= core.autocrlf=true core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_true_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1038 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=lf file=LF_mix_CR -expecting success of 1450.46 'fsck notices .gI{u200c}T as blob': - ( - git init $name-$type && - cd $name-$type && - git config core.protectNTFS false && - echo content >file && - git add file && - git commit -m base && - blob=$(git rev-parse :file) && - tree=$(git rev-parse HEAD^{tree}) && - value=$(eval "echo \$$type") && - printf "$mode $type %s\t%s" "$value" "$path" >bad && - bad_tree=$(git mktree out && - test_i18ngrep "warning.*tree $bad_tree" out - ) -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/dotgit-unicode-blob/.git/ -[master (root-commit) ebd6d19] base - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -dangling tree 2b65491a1b39699fb2bffda8e997c85fcb9c7beb -warning in tree 2b65491a1b39699fb2bffda8e997c85fcb9c7beb: hasDotgit: contains '.git' -ok 46 - fsck notices .gI{u200c}T as blob +expecting success of 0027.1039 'checkout attr=auto ident aeol= core.autocrlf=true core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_true_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1039 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=lf file=LF_nul -expecting success of 1450.47 'fsck notices .gI{u200c}T as tree': - ( - git init $name-$type && - cd $name-$type && - git config core.protectNTFS false && - echo content >file && - git add file && - git commit -m base && - blob=$(git rev-parse :file) && - tree=$(git rev-parse HEAD^{tree}) && - value=$(eval "echo \$$type") && - printf "$mode $type %s\t%s" "$value" "$path" >bad && - bad_tree=$(git mktree out && - test_i18ngrep "warning.*tree $bad_tree" out - ) -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/dotgit-unicode-tree/.git/ -[master (root-commit) ebd6d19] base - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -dangling tree 6a547d921721f1cf91601a53fcc7aae232947d23 -warning in tree 6a547d921721f1cf91601a53fcc7aae232947d23: hasDotgit: contains '.git' -ok 47 - fsck notices .gI{u200c}T as tree +expecting success of 0027.1040 'ls-files --eol attr=text ident aeol= core.autocrlf=true core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1040 - ls-files --eol attr=text ident aeol= core.autocrlf=true core.eol=lf -expecting success of 1450.48 'fsck notices .Git as blob': - ( - git init $name-$type && - cd $name-$type && - git config core.protectNTFS false && - echo content >file && - git add file && - git commit -m base && - blob=$(git rev-parse :file) && - tree=$(git rev-parse HEAD^{tree}) && - value=$(eval "echo \$$type") && - printf "$mode $type %s\t%s" "$value" "$path" >bad && - bad_tree=$(git mktree out && - test_i18ngrep "warning.*tree $bad_tree" out - ) -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/dotgit-case2-blob/.git/ -[master (root-commit) ebd6d19] base - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -dangling tree 3e29dd65f814deffead951c60da749fdf8a668c8 -warning in tree 3e29dd65f814deffead951c60da749fdf8a668c8: hasDotgit: contains '.git' -ok 48 - fsck notices .Git as blob +expecting success of 0027.1041 'checkout attr=text ident aeol= core.autocrlf=true core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_true_attr_text_ CRLF crlf_false_attr__LF.txt + +ok 1041 - checkout attr=text ident aeol= core.autocrlf=true core.eol=lf file=LF -expecting success of 1450.49 'fsck notices .Git as tree': - ( - git init $name-$type && - cd $name-$type && - git config core.protectNTFS false && - echo content >file && - git add file && - git commit -m base && - blob=$(git rev-parse :file) && - tree=$(git rev-parse HEAD^{tree}) && - value=$(eval "echo \$$type") && - printf "$mode $type %s\t%s" "$value" "$path" >bad && - bad_tree=$(git mktree out && - test_i18ngrep "warning.*tree $bad_tree" out - ) -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/dotgit-case2-tree/.git/ -[master (root-commit) ebd6d19] base - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -dangling tree 50c7c9624762f2fe0d4efe5cba98835f58822ef4 -warning in tree 50c7c9624762f2fe0d4efe5cba98835f58822ef4: hasDotgit: contains '.git' -ok 49 - fsck notices .Git as tree +expecting success of 0027.1042 'checkout attr=text ident aeol= core.autocrlf=true core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 1042 - checkout attr=text ident aeol= core.autocrlf=true core.eol=lf file=CRLF -expecting success of 1450.50 'fsck notices git~1 as blob': - ( - git init $name-$type && - cd $name-$type && - git config core.protectNTFS false && - echo content >file && - git add file && - git commit -m base && - blob=$(git rev-parse :file) && - tree=$(git rev-parse HEAD^{tree}) && - value=$(eval "echo \$$type") && - printf "$mode $type %s\t%s" "$value" "$path" >bad && - bad_tree=$(git mktree out && - test_i18ngrep "warning.*tree $bad_tree" out - ) -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/git-tilde1-blob/.git/ -[master (root-commit) ebd6d19] base - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -dangling tree 1206e1b64fcedc2a9e7b8195c1c4c1a278285b20 -warning in tree 1206e1b64fcedc2a9e7b8195c1c4c1a278285b20: hasDotgit: contains '.git' -ok 50 - fsck notices git~1 as blob +expecting success of 0027.1043 'checkout attr=text ident aeol= core.autocrlf=true core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt + +ok 1043 - checkout attr=text ident aeol= core.autocrlf=true core.eol=lf file=CRLF_mix_LF -expecting success of 1450.51 'fsck notices git~1 as tree': - ( - git init $name-$type && - cd $name-$type && - git config core.protectNTFS false && - echo content >file && - git add file && - git commit -m base && - blob=$(git rev-parse :file) && - tree=$(git rev-parse HEAD^{tree}) && - value=$(eval "echo \$$type") && - printf "$mode $type %s\t%s" "$value" "$path" >bad && - bad_tree=$(git mktree out && - test_i18ngrep "warning.*tree $bad_tree" out - ) -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/git-tilde1-tree/.git/ -[master (root-commit) ebd6d19] base - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -dangling tree 06f99accfb778f3318c72f3ae1c809cca146d27c -warning in tree 06f99accfb778f3318c72f3ae1c809cca146d27c: hasDotgit: contains '.git' -ok 51 - fsck notices git~1 as tree +expecting success of 0027.1044 'checkout attr=text ident aeol= core.autocrlf=true core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_true_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1044 - checkout attr=text ident aeol= core.autocrlf=true core.eol=lf file=LF_mix_CR -expecting success of 1450.52 'fsck notices .git. as blob': - ( - git init $name-$type && - cd $name-$type && - git config core.protectNTFS false && - echo content >file && - git add file && - git commit -m base && - blob=$(git rev-parse :file) && - tree=$(git rev-parse HEAD^{tree}) && - value=$(eval "echo \$$type") && - printf "$mode $type %s\t%s" "$value" "$path" >bad && - bad_tree=$(git mktree out && - test_i18ngrep "warning.*tree $bad_tree" out - ) -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/dotgitdot-blob/.git/ -[master (root-commit) ebd6d19] base - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -dangling tree 08554698725ae2bc2c2ae0172779111c62bda7a2 -warning in tree 08554698725ae2bc2c2ae0172779111c62bda7a2: hasDotgit: contains '.git' -ok 52 - fsck notices .git. as blob +expecting success of 0027.1045 'checkout attr=text ident aeol= core.autocrlf=true core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_true_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt + +ok 1045 - checkout attr=text ident aeol= core.autocrlf=true core.eol=lf file=LF_nul -expecting success of 1450.53 'fsck notices .git. as tree': - ( - git init $name-$type && - cd $name-$type && - git config core.protectNTFS false && - echo content >file && - git add file && - git commit -m base && - blob=$(git rev-parse :file) && - tree=$(git rev-parse HEAD^{tree}) && - value=$(eval "echo \$$type") && - printf "$mode $type %s\t%s" "$value" "$path" >bad && - bad_tree=$(git mktree out && - test_i18ngrep "warning.*tree $bad_tree" out - ) -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/dotgitdot-tree/.git/ -[master (root-commit) ebd6d19] base - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -dangling tree 4d7df7e65b79aeef4640dbfba95705b94a2bc266 -warning in tree 4d7df7e65b79aeef4640dbfba95705b94a2bc266: hasDotgit: contains '.git' -ok 53 - fsck notices .git. as tree +expecting success of 0027.1046 'ls-files --eol attr=text ident aeol= core.autocrlf=input core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1046 - ls-files --eol attr=text ident aeol= core.autocrlf=input core.eol=lf -expecting success of 1450.54 'fsck notices .\.GIT\foobar as blob': - ( - git init $name-$type && - cd $name-$type && - git config core.protectNTFS false && - echo content >file && - git add file && - git commit -m base && - blob=$(git rev-parse :file) && - tree=$(git rev-parse HEAD^{tree}) && - value=$(eval "echo \$$type") && - printf "$mode $type %s\t%s" "$value" "$path" >bad && - bad_tree=$(git mktree out && - test_i18ngrep "warning.*tree $bad_tree" out - ) -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/dot-backslash-case-blob/.git/ -[master (root-commit) ebd6d19] base - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -dangling tree 4447c608c557aa9e2d0d226c7af1f06937133ea1 -warning in tree 4447c608c557aa9e2d0d226c7af1f06937133ea1: hasDotgit: contains '.git' -ok 54 - fsck notices .\.GIT\foobar as blob +expecting success of 0027.1047 'checkout attr=text ident aeol= core.autocrlf=input core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_input_attr_text_ LF crlf_false_attr__LF.txt + +ok 1047 - checkout attr=text ident aeol= core.autocrlf=input core.eol=lf file=LF -expecting success of 1450.55 'fsck notices .\.GIT\foobar as tree': - ( - git init $name-$type && - cd $name-$type && - git config core.protectNTFS false && - echo content >file && - git add file && - git commit -m base && - blob=$(git rev-parse :file) && - tree=$(git rev-parse HEAD^{tree}) && - value=$(eval "echo \$$type") && - printf "$mode $type %s\t%s" "$value" "$path" >bad && - bad_tree=$(git mktree out && - test_i18ngrep "warning.*tree $bad_tree" out - ) -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/dot-backslash-case-tree/.git/ -[master (root-commit) ebd6d19] base - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -dangling tree a8562dc6d26106f039fc8af6b2aa6fed2b1e14d4 -warning in tree a8562dc6d26106f039fc8af6b2aa6fed2b1e14d4: hasDotgit: contains '.git' -ok 55 - fsck notices .\.GIT\foobar as tree +expecting success of 0027.1048 'checkout attr=text ident aeol= core.autocrlf=input core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 1048 - checkout attr=text ident aeol= core.autocrlf=input core.eol=lf file=CRLF -expecting success of 1450.56 'fsck notices .git\foobar as blob': - ( - git init $name-$type && - cd $name-$type && - git config core.protectNTFS false && - echo content >file && - git add file && - git commit -m base && - blob=$(git rev-parse :file) && - tree=$(git rev-parse HEAD^{tree}) && - value=$(eval "echo \$$type") && - printf "$mode $type %s\t%s" "$value" "$path" >bad && - bad_tree=$(git mktree out && - test_i18ngrep "warning.*tree $bad_tree" out - ) -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/dotgit-case-backslash-blob/.git/ -[master (root-commit) ebd6d19] base - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -dangling tree 707c253cde8e3742e9f02a3cf02fdc4ca0f55652 -warning in tree 707c253cde8e3742e9f02a3cf02fdc4ca0f55652: hasDotgit: contains '.git' -ok 56 - fsck notices .git\foobar as blob +expecting success of 0027.1049 'checkout attr=text ident aeol= core.autocrlf=input core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_input_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1049 - checkout attr=text ident aeol= core.autocrlf=input core.eol=lf file=CRLF_mix_LF -expecting success of 1450.57 'fsck notices .git\foobar as tree': - ( - git init $name-$type && - cd $name-$type && - git config core.protectNTFS false && - echo content >file && - git add file && - git commit -m base && - blob=$(git rev-parse :file) && - tree=$(git rev-parse HEAD^{tree}) && - value=$(eval "echo \$$type") && - printf "$mode $type %s\t%s" "$value" "$path" >bad && - bad_tree=$(git mktree out && - test_i18ngrep "warning.*tree $bad_tree" out - ) -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/dotgit-case-backslash-tree/.git/ -[master (root-commit) ebd6d19] base - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -dangling tree caa586f8ddde64c3fc9157a3a262c9bd6a6a41ff -warning in tree caa586f8ddde64c3fc9157a3a262c9bd6a6a41ff: hasDotgit: contains '.git' -ok 57 - fsck notices .git\foobar as tree +expecting success of 0027.1050 'checkout attr=text ident aeol= core.autocrlf=input core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_input_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1050 - checkout attr=text ident aeol= core.autocrlf=input core.eol=lf file=LF_mix_CR -expecting success of 1450.58 'fsck allows .Ňit': - ( - git init not-dotgit && - cd not-dotgit && - echo content >file && - git add file && - git commit -m base && - blob=$(git rev-parse :file) && - printf "100644 blob $blob\t.\\305\\207it" >tree && - tree=$(git mktree err && - test_line_count = 0 err - ) +expecting success of 0027.1051 'checkout attr=text ident aeol= core.autocrlf=input core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_input_attr_text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1051 - checkout attr=text ident aeol= core.autocrlf=input core.eol=lf file=LF_nul -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/not-dotgit/.git/ -[master (root-commit) ebd6d19] base - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -dangling tree b6cf3d0dca284724c6c6a7005056d573f86157d7 -ok 58 - fsck allows .Ňit +expecting success of 0027.1052 'ls-files --eol attr=auto ident aeol= core.autocrlf=input core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1052 - ls-files --eol attr=auto ident aeol= core.autocrlf=input core.eol=lf -expecting success of 1450.59 'NUL in commit': - rm -fr nul-in-commit && - git init nul-in-commit && - ( - cd nul-in-commit && - git commit --allow-empty -m "initial commitQNUL after message" && - git cat-file commit HEAD >original && - q_to_nul munged && - git hash-object -w -t commit --stdin name && - git branch bad $(cat name) && +expecting success of 0027.1053 'checkout attr=auto ident aeol= core.autocrlf=input core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_input_attr_auto_ LF crlf_false_attr__LF.txt + +ok 1053 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=lf file=LF - test_must_fail git -c fsck.nulInCommit=error fsck 2>warn.1 && - test_i18ngrep nulInCommit warn.1 && - git fsck 2>warn.2 && - test_i18ngrep nulInCommit warn.2 - ) +expecting success of 0027.1054 'checkout attr=auto ident aeol= core.autocrlf=input core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_input_attr_auto_ CRLF crlf_false_attr__CRLF.txt + +ok 1054 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=lf file=CRLF -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/nul-in-commit/.git/ -[master (root-commit) c31a7f2] initial commitQNUL after message - Author: A U Thor -error in commit f2f2305a657f7e4cfa7cd358e43c37ab0394720d: nulInCommit: NUL byte in the commit object body -warning in commit f2f2305a657f7e4cfa7cd358e43c37ab0394720d: nulInCommit: NUL byte in the commit object body -ok 59 - NUL in commit +expecting success of 0027.1055 'checkout attr=auto ident aeol= core.autocrlf=input core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_input_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1055 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=lf file=CRLF_mix_LF -expecting success of 1450.60 'fsck notices missing blob': - create_repo_missing HEAD:subdir/file && - test_must_fail git -C missing fsck +expecting success of 0027.1056 'checkout attr=auto ident aeol= core.autocrlf=input core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_input_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1056 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=lf file=LF_mix_CR -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/missing/.git/ -[master (root-commit) d38f542] one - Author: A U Thor -[master ca32bda] two - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 subdir/file -missing blob d95f3ad14dee633a758d2e331151e950dd13e4ed -ok 60 - fsck notices missing blob +expecting success of 0027.1057 'checkout attr=auto ident aeol= core.autocrlf=input core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_input_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1057 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=lf file=LF_nul -expecting success of 1450.61 'fsck notices missing subtree': - create_repo_missing HEAD:subdir && - test_must_fail git -C missing fsck +expecting success of 0027.1058 'ls-files --eol attr=-text ident aeol= core.autocrlf=true core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1058 - ls-files --eol attr=-text ident aeol= core.autocrlf=true core.eol=crlf -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/missing/.git/ -[master (root-commit) d38f542] one - Author: A U Thor -[master ca32bda] two - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 subdir/file -error: 07753f428765ac1afe2020b24e40785869bd4a85: invalid sha1 pointer in cache-tree -broken link from tree 5f9d5fe4279246e5b2ddcd446efc2aed53a52304 - to tree 07753f428765ac1afe2020b24e40785869bd4a85 -missing tree 07753f428765ac1afe2020b24e40785869bd4a85 -ok 61 - fsck notices missing subtree +expecting success of 0027.1059 'checkout attr=-text ident aeol= core.autocrlf=true core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_true_attr_-text_ LF crlf_false_attr__LF.txt + +ok 1059 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=crlf file=LF -expecting success of 1450.62 'fsck notices missing root tree': - create_repo_missing HEAD^{tree} && - test_must_fail git -C missing fsck +expecting success of 0027.1060 'checkout attr=-text ident aeol= core.autocrlf=true core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_true_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 1060 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=crlf file=CRLF -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/missing/.git/ -[master (root-commit) d38f542] one - Author: A U Thor -[master ca32bda] two - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 subdir/file -error: 5f9d5fe4279246e5b2ddcd446efc2aed53a52304: invalid sha1 pointer in cache-tree -broken link from commit ca32bdaaf4ee9eab00bafa6471c9a2fa98fc42c3 - to tree 5f9d5fe4279246e5b2ddcd446efc2aed53a52304 -dangling tree 07753f428765ac1afe2020b24e40785869bd4a85 -missing tree 5f9d5fe4279246e5b2ddcd446efc2aed53a52304 -ok 62 - fsck notices missing root tree +expecting success of 0027.1061 'checkout attr=-text ident aeol= core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_true_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1061 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=crlf file=CRLF_mix_LF -expecting success of 1450.63 'fsck notices missing parent': - create_repo_missing HEAD^ && - test_must_fail git -C missing fsck +expecting success of 0027.1062 'checkout attr=-text ident aeol= core.autocrlf=true core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_true_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1062 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=crlf file=LF_mix_CR -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/missing/.git/ -[master (root-commit) d38f542] one - Author: A U Thor -[master ca32bda] two - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 subdir/file -error: HEAD: invalid reflog entry d38f542f2d868bcbbb09173528a3bb403f53a0f0 -error: HEAD: invalid reflog entry d38f542f2d868bcbbb09173528a3bb403f53a0f0 -error: refs/heads/master: invalid reflog entry d38f542f2d868bcbbb09173528a3bb403f53a0f0 -error: refs/heads/master: invalid reflog entry d38f542f2d868bcbbb09173528a3bb403f53a0f0 -broken link from commit ca32bdaaf4ee9eab00bafa6471c9a2fa98fc42c3 - to commit d38f542f2d868bcbbb09173528a3bb403f53a0f0 -dangling tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904 -missing commit d38f542f2d868bcbbb09173528a3bb403f53a0f0 -ok 63 - fsck notices missing parent +expecting success of 0027.1063 'checkout attr=-text ident aeol= core.autocrlf=true core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_true_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1063 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=crlf file=LF_nul -expecting success of 1450.64 'fsck notices missing tagged object': - create_repo_missing tag^{blob} && - test_must_fail git -C missing fsck +expecting success of 0027.1064 'ls-files --eol attr=-text ident aeol=lf core.autocrlf=true core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1064 - ls-files --eol attr=-text ident aeol=lf core.autocrlf=true core.eol=crlf -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/missing/.git/ -[master (root-commit) d38f542] one - Author: A U Thor -[master ca32bda] two - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 subdir/file -broken link from tag 7c115056e13b1f41142fe9e6f6cb98a1c077facd - to blob c21c9352f7526e9576892a6631e0e8cf1fccd34d -missing blob c21c9352f7526e9576892a6631e0e8cf1fccd34d -ok 64 - fsck notices missing tagged object +expecting success of 0027.1065 'checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_true_attr_-text_ LF crlf_false_attr__LF.txt + +ok 1065 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=crlf file=LF -expecting success of 1450.65 'fsck notices ref pointing to missing commit': - create_repo_missing HEAD && - test_must_fail git -C missing fsck +expecting success of 0027.1066 'checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_true_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 1066 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=crlf file=CRLF -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/missing/.git/ -[master (root-commit) d38f542] one - Author: A U Thor -[master ca32bda] two - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 subdir/file -error: refs/heads/master: invalid sha1 pointer ca32bdaaf4ee9eab00bafa6471c9a2fa98fc42c3 -error: HEAD: invalid sha1 pointer ca32bdaaf4ee9eab00bafa6471c9a2fa98fc42c3 -error: HEAD: invalid reflog entry ca32bdaaf4ee9eab00bafa6471c9a2fa98fc42c3 -error: refs/heads/master: invalid reflog entry ca32bdaaf4ee9eab00bafa6471c9a2fa98fc42c3 -ok 65 - fsck notices ref pointing to missing commit +expecting success of 0027.1067 'checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_true_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1067 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF -expecting success of 1450.66 'fsck notices ref pointing to missing tag': - create_repo_missing tag && - test_must_fail git -C missing fsck +expecting success of 0027.1068 'checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_true_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1068 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=crlf file=LF_mix_CR -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/missing/.git/ -[master (root-commit) d38f542] one - Author: A U Thor -[master ca32bda] two - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 subdir/file -error: refs/tags/tag: invalid sha1 pointer 7c115056e13b1f41142fe9e6f6cb98a1c077facd -dangling blob c21c9352f7526e9576892a6631e0e8cf1fccd34d -ok 66 - fsck notices ref pointing to missing tag +expecting success of 0027.1069 'checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_true_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1069 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=crlf file=LF_nul -expecting success of 1450.67 'fsck --connectivity-only': - rm -rf connectivity-only && - git init connectivity-only && - ( - cd connectivity-only && - touch empty && - git add empty && - test_commit empty && +expecting success of 0027.1070 'ls-files --eol attr=-text ident aeol=crlf core.autocrlf=true core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1070 - ls-files --eol attr=-text ident aeol=crlf core.autocrlf=true core.eol=crlf - # Drop the index now; we want to be sure that we - # recursively notice the broken objects - # because they are reachable from refs, not because - # they are in the index. - rm -f .git/index && +expecting success of 0027.1071 'checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_true_attr_-text_ LF crlf_false_attr__LF.txt + +ok 1071 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF - # corrupt the blob, but in a way that we can still identify - # its type. That lets us see that --connectivity-only is - # not actually looking at the contents, but leaves it - # free to examine the type if it chooses. - empty=.git/objects/$(test_oid_to_path $EMPTY_BLOB) && - blob=$(echo unrelated | git hash-object -w --stdin) && - mv -f $(sha1_file $blob) $empty && +expecting success of 0027.1072 'checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_true_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 1072 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF - test_must_fail git fsck --strict && - git fsck --strict --connectivity-only && - tree=$(git rev-parse HEAD:) && - suffix=${tree#??} && - tree=.git/objects/${tree%$suffix}/$suffix && - rm -f $tree && - echo invalid >$tree && - test_must_fail git fsck --strict --connectivity-only - ) +expecting success of 0027.1073 'checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_true_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1073 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/connectivity-only/.git/ -[master (root-commit) 86520b7] empty - Author: A U Thor - 2 files changed, 1 insertion(+) - create mode 100644 empty - create mode 100644 empty.t -error: hash mismatch for .git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 (expected e69de29bb2d1d6434b8b29ae775ad8c2e48c5391) -error: e69de29bb2d1d6434b8b29ae775ad8c2e48c5391: object corrupt or missing: .git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 -missing blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 -error: inflate: data stream error (incorrect header check) -error: unable to unpack 0d3d3508cb204b9201d016862e6025a49e8c01d6 header -fatal: loose object 0d3d3508cb204b9201d016862e6025a49e8c01d6 (stored in .git/objects/0d/3d3508cb204b9201d016862e6025a49e8c01d6) is corrupt -ok 67 - fsck --connectivity-only +expecting success of 0027.1074 'checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_true_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1074 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF_mix_CR -expecting success of 1450.68 'fsck --connectivity-only with explicit head': - rm -rf connectivity-only && - git init connectivity-only && - ( - cd connectivity-only && - test_commit foo && - rm -f .git/index && - tree=$(git rev-parse HEAD^{tree}) && - remove_object $(git rev-parse HEAD:foo.t) && - test_must_fail git fsck --connectivity-only $tree - ) +expecting success of 0027.1075 'checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_true_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1075 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF_nul -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/connectivity-only/.git/ -[master (root-commit) 31f3b95] foo - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 foo.t -broken link from tree 64fd3796c57084e7b8cbae358ce37970b8e954f6 - to blob 257cc5642cb1a054f08cc83f2d943e56fd3ebe99 -missing blob 257cc5642cb1a054f08cc83f2d943e56fd3ebe99 -dangling commit 31f3b953b325df75c7b6fbf854b59ac67382ac3b -ok 68 - fsck --connectivity-only with explicit head +expecting success of 0027.1076 'ls-files --eol attr=text ident aeol=lf core.autocrlf=true core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1076 - ls-files --eol attr=text ident aeol=lf core.autocrlf=true core.eol=crlf -expecting success of 1450.69 'fsck --name-objects': - rm -rf name-objects && - git init name-objects && - ( - cd name-objects && - test_commit julius caesar.t && - test_commit augustus && - test_commit caesar && - remove_object $(git rev-parse julius:caesar.t) && - test_must_fail git fsck --name-objects >out && - tree=$(git rev-parse --verify julius:) && - test_i18ngrep "$tree (refs/tags/julius:" out - ) +expecting success of 0027.1077 'checkout attr=text ident aeol=lf core.autocrlf=true core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_true_attr_text_ LF crlf_false_attr__LF.txt + +ok 1077 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=crlf file=LF -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/name-objects/.git/ -[master (root-commit) 6ab43a8] julius - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 caesar.t -[master 14a9c9c] augustus - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 augustus.t -[master 2d3dc47] caesar - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -broken link from tree c2fab98f409a47394d992eca10a20e0b22377c0c (refs/tags/julius:) -ok 69 - fsck --name-objects +expecting success of 0027.1078 'checkout attr=text ident aeol=lf core.autocrlf=true core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 1078 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=crlf file=CRLF -expecting success of 1450.70 'alternate objects are correctly blamed': - test_when_finished "rm -rf alt.git .git/objects/info/alternates" && - name=$(test_oid numeric) && - path=$(test_oid_to_path "$name") && - git init --bare alt.git && - echo "../../alt.git/objects" >.git/objects/info/alternates && - mkdir alt.git/objects/$(dirname $path) && - >alt.git/objects/$(dirname $path)/$(basename $path) && - test_must_fail git fsck >out 2>&1 && - test_i18ngrep alt.git out +expecting success of 0027.1079 'checkout attr=text ident aeol=lf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1079 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/alt.git/ -error: object file /build/git-2.30.2/t/trash directory.t1450-fsck/alt.git/objects/01/23456789012345678901234567890123456789 is empty -error: unable to mmap /build/git-2.30.2/t/trash directory.t1450-fsck/alt.git/objects/01/23456789012345678901234567890123456789: No such file or directory -error: 0123456789012345678901234567890123456789: object corrupt or missing: /build/git-2.30.2/t/trash directory.t1450-fsck/alt.git/objects/01/23456789012345678901234567890123456789 -ok 70 - alternate objects are correctly blamed +expecting success of 0027.1080 'checkout attr=text ident aeol=lf core.autocrlf=true core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_true_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1080 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=crlf file=LF_mix_CR -expecting success of 1450.71 'fsck errors in packed objects': - git cat-file commit HEAD >basis && - sed "s/one && - sed "s/two && - one=$(git hash-object -t commit -w one) && - two=$(git hash-object -t commit -w two) && - pack=$( - { - echo $one && - echo $two - } | git pack-objects .git/objects/pack/pack - ) && - test_when_finished "rm -f .git/objects/pack/pack-$pack.*" && - remove_object $one && - remove_object $two && - test_must_fail git fsck 2>out && - test_i18ngrep "error in commit $one.* - bad name" out && - test_i18ngrep "error in commit $two.* - bad name" out && - ! grep corrupt out +expecting success of 0027.1081 'checkout attr=text ident aeol=lf core.autocrlf=true core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_true_attr_text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1081 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=crlf file=LF_nul -dangling commit a55646b2b4c741ed105e2e5c54365a5b4051c7e2 -dangling commit e705fceb9d8aec1503002ea31f4f68ea707e88ef -error in commit e705fceb9d8aec1503002ea31f4f68ea707e88ef: badName: invalid author/committer line - bad name -error in commit a55646b2b4c741ed105e2e5c54365a5b4051c7e2: badName: invalid author/committer line - bad name -ok 71 - fsck errors in packed objects +expecting success of 0027.1082 'ls-files --eol attr=text ident aeol=crlf core.autocrlf=true core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1082 - ls-files --eol attr=text ident aeol=crlf core.autocrlf=true core.eol=crlf -expecting success of 1450.72 'fsck fails on corrupt packfile': - hsh=$(git commit-tree -m mycommit HEAD^{tree}) && - pack=$(echo $hsh | git pack-objects .git/objects/pack/pack) && +expecting success of 0027.1083 'checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF crlf_false_attr__LF.txt + +ok 1083 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF - # Corrupt the first byte of the first object. (It contains 3 type bits, - # at least one of which is not zero, so setting the first byte to 0 is - # sufficient.) - chmod a+w .git/objects/pack/pack-$pack.pack && - printf "\0" | dd of=.git/objects/pack/pack-$pack.pack bs=1 conv=notrunc seek=12 && +expecting success of 0027.1084 'checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 1084 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF - test_when_finished "rm -f .git/objects/pack/pack-$pack.*" && - remove_object $hsh && - test_must_fail git fsck 2>out && - test_i18ngrep "checksum mismatch" out +expecting success of 0027.1085 'checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt + +ok 1085 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF -1+0 records in -1+0 records out -1 byte copied, 0.000140166 s, 7.1 kB/s -error: .git/objects/pack/pack-8be9f6a4139bcddd74c3d2ed343bb71e87863c4b.pack pack checksum mismatch -ok 72 - fsck fails on corrupt packfile +expecting success of 0027.1086 'checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1086 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF_mix_CR -expecting success of 1450.73 'fsck finds problems in duplicate loose objects': - rm -rf broken-duplicate && - git init broken-duplicate && - ( - cd broken-duplicate && - test_commit duplicate && - # no "-d" here, so we end up with duplicates - git repack && - # now corrupt the loose copy - file=$(sha1_file "$(git rev-parse HEAD)") && - rm "$file" && - echo broken >"$file" && - test_must_fail git fsck - ) +expecting success of 0027.1087 'checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt + +ok 1087 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF_nul -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/broken-duplicate/.git/ -[master (root-commit) d19e0e2] duplicate - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 duplicate.t -error: inflate: data stream error (incorrect header check) -error: unable to unpack header of .git/objects/d1/9e0e27f1e3e1ac93ebc6183333db3c4d9b00bd -error: d19e0e27f1e3e1ac93ebc6183333db3c4d9b00bd: object corrupt or missing: .git/objects/d1/9e0e27f1e3e1ac93ebc6183333db3c4d9b00bd -ok 73 - fsck finds problems in duplicate loose objects +expecting success of 0027.1088 'ls-files --eol attr=auto ident aeol=lf core.autocrlf=true core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1088 - ls-files --eol attr=auto ident aeol=lf core.autocrlf=true core.eol=crlf -expecting success of 1450.74 'fsck detects trailing loose garbage (commit)': - git cat-file commit HEAD >basis && - echo bump-commit-sha1 >>basis && - commit=$(git hash-object -w -t commit basis) && - file=$(sha1_file $commit) && - test_when_finished "remove_object $commit" && - chmod +w "$file" && - echo garbage >>"$file" && - test_must_fail git fsck 2>out && - test_i18ngrep "garbage.*$commit" out +expecting success of 0027.1089 'checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_true_attr_auto_ LF crlf_false_attr__LF.txt + +ok 1089 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=crlf file=LF -error: garbage at end of loose object '59ac8713639e31797addb7a886b8f5f6637bda3c' -ok 74 - fsck detects trailing loose garbage (commit) +expecting success of 0027.1090 'checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_true_attr_auto_ CRLF crlf_false_attr__CRLF.txt + +ok 1090 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=crlf file=CRLF -expecting success of 1450.75 'fsck detects trailing loose garbage (large blob)': - blob=$(echo trailing | git hash-object -w --stdin) && - file=$(sha1_file $blob) && - test_when_finished "remove_object $blob" && - chmod +w "$file" && - echo garbage >>"$file" && - test_must_fail git -c core.bigfilethreshold=5 fsck 2>out && - test_i18ngrep "garbage.*$blob" out +expecting success of 0027.1091 'checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_true_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1091 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF -error: garbage at end of loose object '1e285548b47be8577f0549b6ebcecb242e692df3' -ok 75 - fsck detects trailing loose garbage (large blob) +expecting success of 0027.1092 'checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_true_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1092 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=crlf file=LF_mix_CR -expecting success of 1450.76 'fsck detects truncated loose object': - # make it big enough that we know we will truncate in the data - # portion, not the header - test-tool genrandom truncate 4096 >file && - blob=$(git hash-object -w file) && - file=$(sha1_file $blob) && - test_when_finished "remove_object $blob" && - test_copy_bytes 1024 <"$file" >tmp && - rm "$file" && - mv -f tmp "$file" && +expecting success of 0027.1093 'checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_true_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1093 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=crlf file=LF_nul - # check both regular and streaming code paths - test_must_fail git fsck 2>out && - test_i18ngrep corrupt.*$blob out && +expecting success of 0027.1094 'ls-files --eol attr=auto ident aeol=crlf core.autocrlf=true core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1094 - ls-files --eol attr=auto ident aeol=crlf core.autocrlf=true core.eol=crlf - test_must_fail git -c core.bigfilethreshold=128 fsck 2>out && - test_i18ngrep corrupt.*$blob out +expecting success of 0027.1095 'checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_true_attr_auto_ CRLF crlf_false_attr__LF.txt + +ok 1095 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF -error: corrupt loose object 'a56f9fb3e06dcfb3e5088f319ee1d4ccd1e05098' -error: corrupt loose object 'a56f9fb3e06dcfb3e5088f319ee1d4ccd1e05098' -ok 76 - fsck detects truncated loose object +expecting success of 0027.1096 'checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_true_attr_auto_ CRLF crlf_false_attr__CRLF.txt + +ok 1096 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF -expecting success of 1450.77 'create dangling-object repository': - git init dangling && - ( - cd dangling && - blob=$(echo not-dangling | git hash-object -w --stdin) && - dblob=$(echo dangling | git hash-object -w --stdin) && - tree=$(printf "100644 blob %s\t%s\n" $blob one | git mktree) && - dtree=$(printf "100644 blob %s\t%s\n" $blob two | git mktree) && - commit=$(git commit-tree $tree) && - dcommit=$(git commit-tree -p $commit $tree) && +expecting success of 0027.1097 'checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_true_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1097 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=crlf file=CRLF_mix_LF - cat >expect <<-EOF - dangling blob $dblob - dangling commit $dcommit - dangling tree $dtree - EOF - ) +expecting success of 0027.1098 'checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_true_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1098 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF_mix_CR -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1450-fsck/dangling/.git/ -ok 77 - create dangling-object repository +expecting success of 0027.1099 'checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_true_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1099 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=crlf file=LF_nul -expecting success of 1450.78 'fsck notices dangling objects': - ( - cd dangling && - git fsck >actual && - # the output order is non-deterministic, as it comes from a hash - sort actual.sorted && - test_i18ncmp expect actual.sorted - ) +expecting success of 0027.1100 'ls-files --eol attr=-text ident aeol= core.autocrlf=false core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1100 - ls-files --eol attr=-text ident aeol= core.autocrlf=false core.eol=crlf -notice: HEAD points to an unborn branch (master) -notice: No default references -ok 78 - fsck notices dangling objects +expecting success of 0027.1101 'checkout attr=-text ident aeol= core.autocrlf=false core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_false_attr_-text_ LF crlf_false_attr__LF.txt + +ok 1101 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=crlf file=LF -expecting success of 1450.79 'fsck --connectivity-only notices dangling objects': - ( - cd dangling && - git fsck --connectivity-only >actual && - # the output order is non-deterministic, as it comes from a hash - sort actual.sorted && - test_i18ncmp expect actual.sorted - ) +expecting success of 0027.1102 'checkout attr=-text ident aeol= core.autocrlf=false core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_false_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 1102 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=crlf file=CRLF -notice: HEAD points to an unborn branch (master) -notice: No default references -ok 79 - fsck --connectivity-only notices dangling objects +expecting success of 0027.1103 'checkout attr=-text ident aeol= core.autocrlf=false core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_false_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1103 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=crlf file=CRLF_mix_LF -expecting success of 1450.80 'fsck $name notices bogus $name': - test_must_fail git fsck bogus && - test_must_fail git fsck $ZERO_OID +expecting success of 0027.1104 'checkout attr=-text ident aeol= core.autocrlf=false core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_false_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1104 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=crlf file=LF_mix_CR -error: invalid parameter: expected sha1, got 'bogus' -dangling commit c9145d6720f85544cc4bb6009a2e541660aa156b -error: 0000000000000000000000000000000000000000: object missing -dangling commit c9145d6720f85544cc4bb6009a2e541660aa156b -ok 80 - fsck $name notices bogus $name +expecting success of 0027.1105 'checkout attr=-text ident aeol= core.autocrlf=false core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_false_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1105 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=crlf file=LF_nul -expecting success of 1450.81 'bogus head does not fallback to all heads': - # set up a case that will cause a reachability complaint - echo to-be-deleted >foo && - git add foo && - blob=$(git rev-parse :foo) && - test_when_finished "git rm --cached foo" && - remove_object $blob && - test_must_fail git fsck $ZERO_OID >out 2>&1 && - ! grep $blob out +expecting success of 0027.1106 'ls-files --eol attr=-text ident aeol=lf core.autocrlf=false core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1106 - ls-files --eol attr=-text ident aeol=lf core.autocrlf=false core.eol=crlf -rm 'foo' -ok 81 - bogus head does not fallback to all heads +expecting success of 0027.1107 'checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_false_attr_-text_ LF crlf_false_attr__LF.txt + +ok 1107 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=crlf file=LF -expecting success of 1450.82 'detect corrupt index file in fsck': - cp .git/index .git/index.backup && - test_when_finished "mv .git/index.backup .git/index" && - corrupt_index_checksum && - test_must_fail git fsck --cache 2>errors && - test_i18ngrep "bad index file" errors +expecting success of 0027.1108 'checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_false_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 1108 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=crlf file=CRLF -error: bad index file sha1 signature -ok 82 - detect corrupt index file in fsck +expecting success of 0027.1109 'checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_false_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1109 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF -# passed all 82 test(s) -1..82 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1506-rev-parse-diagnosis.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1506-rev-parse-diagnosis/.git/ -expecting success of 1506.1 'set up basic repo': - echo one > file.txt && - mkdir subdir && - echo two > subdir/file.txt && - echo three > subdir/file2.txt && - git add . && - git commit -m init && - echo four > index-only.txt && - git add index-only.txt && - echo five > disk-only.txt +expecting success of 0027.1110 'checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_false_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1110 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=crlf file=LF_mix_CR -[master (root-commit) 724c7fc] init - Author: A U Thor - 3 files changed, 3 insertions(+) - create mode 100644 file.txt - create mode 100644 subdir/file.txt - create mode 100644 subdir/file2.txt -ok 1 - set up basic repo +expecting success of 0027.1111 'checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_false_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1111 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=crlf file=LF_nul -expecting success of 1506.2 'correct file objects': - HASH_file=$(git rev-parse HEAD:file.txt) && - git rev-parse HEAD:subdir/file.txt && - git rev-parse :index-only.txt && - (cd subdir && - git rev-parse HEAD:subdir/file2.txt && - test $HASH_file = $(git rev-parse HEAD:file.txt) && - test $HASH_file = $(git rev-parse :file.txt) && - test $HASH_file = $(git rev-parse :0:file.txt) ) +expecting success of 0027.1112 'ls-files --eol attr=-text ident aeol=crlf core.autocrlf=false core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1112 - ls-files --eol attr=-text ident aeol=crlf core.autocrlf=false core.eol=crlf -f719efd430d52bcfc8566a43b2eb655688d38871 -8510665149157c2bc901848c3e0b746954e9cbd9 -2bdf67abb163a4ffb2d7f3f0880c9fe5068ce782 -ok 2 - correct file objects +expecting success of 0027.1113 'checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_false_attr_-text_ LF crlf_false_attr__LF.txt + +ok 1113 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF -expecting success of 1506.3 'correct relative file objects (0)': - git rev-parse :file.txt >expected && - git rev-parse :./file.txt >result && - test_cmp expected result && - git rev-parse :0:./file.txt >result && - test_cmp expected result +expecting success of 0027.1114 'checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_false_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 1114 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF -ok 3 - correct relative file objects (0) +expecting success of 0027.1115 'checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_false_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1115 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF -expecting success of 1506.4 'correct relative file objects (1)': - git rev-parse HEAD:file.txt >expected && - git rev-parse HEAD:./file.txt >result && - test_cmp expected result +expecting success of 0027.1116 'checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_false_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1116 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF_mix_CR -ok 4 - correct relative file objects (1) +expecting success of 0027.1117 'checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_false_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1117 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF_nul -expecting success of 1506.5 'correct relative file objects (2)': - ( - cd subdir && - git rev-parse HEAD:../file.txt >result && - test_cmp ../expected result - ) +expecting success of 0027.1118 'ls-files --eol attr=text ident aeol=lf core.autocrlf=false core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1118 - ls-files --eol attr=text ident aeol=lf core.autocrlf=false core.eol=crlf -ok 5 - correct relative file objects (2) +expecting success of 0027.1119 'checkout attr=text ident aeol=lf core.autocrlf=false core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_false_attr_text_ LF crlf_false_attr__LF.txt + +ok 1119 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=crlf file=LF -expecting success of 1506.6 'correct relative file objects (3)': - ( - cd subdir && - git rev-parse HEAD:../subdir/../file.txt >result && - test_cmp ../expected result - ) +expecting success of 0027.1120 'checkout attr=text ident aeol=lf core.autocrlf=false core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 1120 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=crlf file=CRLF -ok 6 - correct relative file objects (3) +expecting success of 0027.1121 'checkout attr=text ident aeol=lf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1121 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF -expecting success of 1506.7 'correct relative file objects (4)': - git rev-parse HEAD:subdir/file.txt >expected && - ( - cd subdir && - git rev-parse HEAD:./file.txt >result && - test_cmp ../expected result - ) +expecting success of 0027.1122 'checkout attr=text ident aeol=lf core.autocrlf=false core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_false_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1122 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=crlf file=LF_mix_CR -ok 7 - correct relative file objects (4) +expecting success of 0027.1123 'checkout attr=text ident aeol=lf core.autocrlf=false core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_false_attr_text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1123 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=crlf file=LF_nul -expecting success of 1506.8 'correct relative file objects (5)': - git rev-parse :subdir/file.txt >expected && - ( - cd subdir && - git rev-parse :./file.txt >result && - test_cmp ../expected result && - git rev-parse :0:./file.txt >result && - test_cmp ../expected result - ) +expecting success of 0027.1124 'ls-files --eol attr=text ident aeol=crlf core.autocrlf=false core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1124 - ls-files --eol attr=text ident aeol=crlf core.autocrlf=false core.eol=crlf -ok 8 - correct relative file objects (5) +expecting success of 0027.1125 'checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF crlf_false_attr__LF.txt + +ok 1125 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF -expecting success of 1506.9 'correct relative file objects (6)': - git rev-parse :file.txt >expected && - ( - cd subdir && - git rev-parse :../file.txt >result && - test_cmp ../expected result && - git rev-parse :0:../file.txt >result && - test_cmp ../expected result - ) +expecting success of 0027.1126 'checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 1126 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF -ok 9 - correct relative file objects (6) +expecting success of 0027.1127 'checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt + +ok 1127 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF -expecting success of 1506.10 'incorrect revision id': - test_must_fail git rev-parse foobar:file.txt 2>error && - test_i18ngrep "invalid object name .foobar." error && - test_must_fail git rev-parse foobar 2>error && - test_i18ngrep "unknown revision or path not in the working tree." error +expecting success of 0027.1128 'checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1128 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF_mix_CR -foobar:file.txt -checking prerequisite: C_LOCALE_OUTPUT +expecting success of 0027.1129 'checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt + +ok 1129 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF_nul -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false +expecting success of 0027.1130 'ls-files --eol attr=auto ident aeol=lf core.autocrlf=false core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1130 - ls-files --eol attr=auto ident aeol=lf core.autocrlf=false core.eol=crlf -) -prerequisite C_LOCALE_OUTPUT ok -fatal: invalid object name 'foobar'. -foobar -fatal: ambiguous argument 'foobar': unknown revision or path not in the working tree. -ok 10 - incorrect revision id +expecting success of 0027.1131 'checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_false_attr_auto_ LF crlf_false_attr__LF.txt + +ok 1131 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=crlf file=LF -expecting success of 1506.11 'incorrect file in sha1:path': - test_must_fail git rev-parse HEAD:nothing.txt 2>error && - test_i18ngrep "path .nothing.txt. does not exist in .HEAD." error && - test_must_fail git rev-parse HEAD:index-only.txt 2>error && - test_i18ngrep "path .index-only.txt. exists on disk, but not in .HEAD." error && - (cd subdir && - test_must_fail git rev-parse HEAD:file2.txt 2>error && - test_did_you_mean HEAD subdir/ file2.txt exists ) +expecting success of 0027.1132 'checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_false_attr_auto_ CRLF crlf_false_attr__CRLF.txt + +ok 1132 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=crlf file=CRLF -HEAD:nothing.txt -fatal: path 'nothing.txt' does not exist in 'HEAD' -HEAD:index-only.txt -fatal: path 'index-only.txt' exists on disk, but not in 'HEAD' -HEAD:file2.txt -ok 11 - incorrect file in sha1:path +expecting success of 0027.1133 'checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_false_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1133 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF -expecting success of 1506.12 'incorrect file in :path and :N:path': - test_must_fail git rev-parse :nothing.txt 2>error && - test_i18ngrep "path .nothing.txt. does not exist (neither on disk nor in the index)" error && - test_must_fail git rev-parse :1:nothing.txt 2>error && - test_i18ngrep "path .nothing.txt. does not exist (neither on disk nor in the index)" error && - test_must_fail git rev-parse :1:file.txt 2>error && - test_did_you_mean ":0" "" file.txt "is in the index" "at stage 1" && - (cd subdir && - test_must_fail git rev-parse :1:file.txt 2>error && - test_did_you_mean ":0" "" file.txt "is in the index" "at stage 1" && - test_must_fail git rev-parse :file2.txt 2>error && - test_did_you_mean ":0" subdir/ file2.txt "is in the index" && - test_must_fail git rev-parse :2:file2.txt 2>error && - test_did_you_mean :0 subdir/ file2.txt "is in the index") && - test_must_fail git rev-parse :disk-only.txt 2>error && - test_i18ngrep "path .disk-only.txt. exists on disk, but not in the index" error +expecting success of 0027.1134 'checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_false_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1134 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=crlf file=LF_mix_CR -:nothing.txt -fatal: path 'nothing.txt' does not exist (neither on disk nor in the index) -:1:nothing.txt -fatal: path 'nothing.txt' does not exist (neither on disk nor in the index) -:1:file.txt -:1:file.txt -:file2.txt -:2:file2.txt -:disk-only.txt -fatal: path 'disk-only.txt' exists on disk, but not in the index -ok 12 - incorrect file in :path and :N:path +expecting success of 0027.1135 'checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_false_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1135 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=crlf file=LF_nul -expecting success of 1506.13 'invalid @{n} reference': - test_must_fail git rev-parse master@{99999} >output 2>error && - test_must_be_empty output && - test_i18ngrep "log for [^ ]* only has [0-9][0-9]* entries" error && - test_must_fail git rev-parse --verify master@{99999} >output 2>error && - test_must_be_empty output && - test_i18ngrep "log for [^ ]* only has [0-9][0-9]* entries" error +expecting success of 0027.1136 'ls-files --eol attr=auto ident aeol=crlf core.autocrlf=false core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1136 - ls-files --eol attr=auto ident aeol=crlf core.autocrlf=false core.eol=crlf -fatal: log for 'master' only has 1 entries -fatal: log for 'master' only has 1 entries -ok 13 - invalid @{n} reference +expecting success of 0027.1137 'checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_false_attr_auto_ CRLF crlf_false_attr__LF.txt + +ok 1137 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF -expecting success of 1506.14 'relative path not found': - ( - cd subdir && - test_must_fail git rev-parse HEAD:./nonexistent.txt 2>error && - test_i18ngrep subdir/nonexistent.txt error - ) +expecting success of 0027.1138 'checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_false_attr_auto_ CRLF crlf_false_attr__CRLF.txt + +ok 1138 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF -HEAD:./nonexistent.txt -fatal: path 'subdir/nonexistent.txt' does not exist in 'HEAD' -ok 14 - relative path not found +expecting success of 0027.1139 'checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_false_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1139 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=crlf file=CRLF_mix_LF -expecting success of 1506.15 'relative path outside worktree': - test_must_fail git rev-parse HEAD:../file.txt >output 2>error && - test_must_be_empty output && - test_i18ngrep "outside repository" error +expecting success of 0027.1140 'checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_false_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1140 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF_mix_CR -fatal: '../file.txt' is outside repository at '/build/git-2.30.2/t/trash directory.t1506-rev-parse-diagnosis' -ok 15 - relative path outside worktree +expecting success of 0027.1141 'checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_false_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1141 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=crlf file=LF_nul -expecting success of 1506.16 'relative path when cwd is outside worktree': - test_must_fail git --git-dir=.git --work-tree=subdir rev-parse HEAD:./file.txt >output 2>error && - test_must_be_empty output && - test_i18ngrep "relative path syntax can.t be used outside working tree" error +expecting success of 0027.1142 'ls-files --eol attr=-text ident aeol= core.autocrlf=input core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1142 - ls-files --eol attr=-text ident aeol= core.autocrlf=input core.eol=crlf -fatal: relative path syntax can't be used outside working tree -ok 16 - relative path when cwd is outside worktree +expecting success of 0027.1143 'checkout attr=-text ident aeol= core.autocrlf=input core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_input_attr_-text_ LF crlf_false_attr__LF.txt + +ok 1143 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=crlf file=LF -expecting success of 1506.17 ':file correctly diagnosed after a pathname': - test_must_fail git rev-parse file.txt HEAD:file.txt 1>actual 2>error && - test_i18ngrep ! "exists on disk" error && - test_i18ngrep "no such path in the working tree" error && - cat >expect <<-\EOF && - file.txt - HEAD:file.txt - EOF - test_cmp expect actual +expecting success of 0027.1144 'checkout attr=-text ident aeol= core.autocrlf=input core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_input_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 1144 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=crlf file=CRLF -fatal: HEAD:file.txt: no such path in the working tree. -ok 17 - :file correctly diagnosed after a pathname +expecting success of 0027.1145 'checkout attr=-text ident aeol= core.autocrlf=input core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_input_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1145 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=crlf file=CRLF_mix_LF -expecting success of 1506.18 'dotdot is not an empty set': - ( H=$(git rev-parse HEAD) && echo $H && echo ^$H ) >expect && +expecting success of 0027.1146 'checkout attr=-text ident aeol= core.autocrlf=input core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_input_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1146 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=crlf file=LF_mix_CR - git rev-parse HEAD.. >actual && - test_cmp expect actual && +expecting success of 0027.1147 'checkout attr=-text ident aeol= core.autocrlf=input core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_input_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1147 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=crlf file=LF_nul - git rev-parse ..HEAD >actual && - test_cmp expect actual && +expecting success of 0027.1148 'ls-files --eol attr=-text ident aeol=lf core.autocrlf=input core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1148 - ls-files --eol attr=-text ident aeol=lf core.autocrlf=input core.eol=crlf - echo .. >expect && - git rev-parse .. >actual && - test_cmp expect actual +expecting success of 0027.1149 'checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_input_attr_-text_ LF crlf_false_attr__LF.txt + +ok 1149 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=crlf file=LF -ok 18 - dotdot is not an empty set +expecting success of 0027.1150 'checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_input_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 1150 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=crlf file=CRLF -expecting success of 1506.19 'dotdot does not peel endpoints': - git tag -a -m "annote" annotated HEAD && - A=$(git rev-parse annotated) && - H=$(git rev-parse annotated^0) && - { - echo $A && echo ^$A - } >expect-with-two-dots && - { - echo $A && echo $A && echo ^$H - } >expect-with-merge-base && +expecting success of 0027.1151 'checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_input_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1151 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF - git rev-parse annotated..annotated >actual-with-two-dots && - test_cmp expect-with-two-dots actual-with-two-dots && +expecting success of 0027.1152 'checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_input_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1152 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=crlf file=LF_mix_CR - git rev-parse annotated...annotated >actual-with-merge-base && - test_cmp expect-with-merge-base actual-with-merge-base +expecting success of 0027.1153 'checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_input_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1153 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=crlf file=LF_nul -ok 19 - dotdot does not peel endpoints +expecting success of 0027.1154 'ls-files --eol attr=-text ident aeol=crlf core.autocrlf=input core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1154 - ls-files --eol attr=-text ident aeol=crlf core.autocrlf=input core.eol=crlf -expecting success of 1506.20 'arg before dashdash must be a revision (missing)': - test_must_fail git rev-parse foobar -- 2>stderr && - test_i18ngrep "bad revision" stderr +expecting success of 0027.1155 'checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_input_attr_-text_ LF crlf_false_attr__LF.txt + +ok 1155 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF -fatal: bad revision 'foobar' -ok 20 - arg before dashdash must be a revision (missing) +expecting success of 0027.1156 'checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_input_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 1156 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF -expecting success of 1506.21 'arg before dashdash must be a revision (file)': - >foobar && - test_must_fail git rev-parse foobar -- 2>stderr && - test_i18ngrep "bad revision" stderr +expecting success of 0027.1157 'checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_input_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1157 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF -fatal: bad revision 'foobar' -ok 21 - arg before dashdash must be a revision (file) +expecting success of 0027.1158 'checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_input_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1158 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF_mix_CR -expecting success of 1506.22 'arg before dashdash must be a revision (ambiguous)': - >foobar && - git update-ref refs/heads/foobar HEAD && - { - # we do not want to use rev-parse here, because - # we are testing it - git show-ref -s refs/heads/foobar && - printf "%s\n" -- - } >expect && - git rev-parse foobar -- >actual && - test_cmp expect actual +expecting success of 0027.1159 'checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_input_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1159 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF_nul -ok 22 - arg before dashdash must be a revision (ambiguous) +expecting success of 0027.1160 'ls-files --eol attr=text ident aeol=lf core.autocrlf=input core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1160 - ls-files --eol attr=text ident aeol=lf core.autocrlf=input core.eol=crlf -expecting success of 1506.23 'reject Nth parent if N is too high': - test_must_fail git rev-parse HEAD^100000000000000000000000000000000 +expecting success of 0027.1161 'checkout attr=text ident aeol=lf core.autocrlf=input core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_input_attr_text_ LF crlf_false_attr__LF.txt + +ok 1161 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=crlf file=LF -fatal: ambiguous argument 'HEAD^100000000000000000000000000000000': unknown revision or path not in the working tree. -Use '--' to separate paths from revisions, like this: -'git [...] -- [...]' -HEAD^100000000000000000000000000000000 -ok 23 - reject Nth parent if N is too high +expecting success of 0027.1162 'checkout attr=text ident aeol=lf core.autocrlf=input core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 1162 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=crlf file=CRLF -expecting success of 1506.24 'reject Nth ancestor if N is too high': - test_must_fail git rev-parse HEAD~100000000000000000000000000000000 +expecting success of 0027.1163 'checkout attr=text ident aeol=lf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_input_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1163 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF -fatal: ambiguous argument 'HEAD~100000000000000000000000000000000': unknown revision or path not in the working tree. -Use '--' to separate paths from revisions, like this: -'git [...] -- [...]' -HEAD~100000000000000000000000000000000 -ok 24 - reject Nth ancestor if N is too high +expecting success of 0027.1164 'checkout attr=text ident aeol=lf core.autocrlf=input core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_input_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1164 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=crlf file=LF_mix_CR -expecting success of 1506.25 'pathspecs with wildcards are not ambiguous': - echo "*.c" >expect && - git rev-parse "*.c" >actual && - test_cmp expect actual +expecting success of 0027.1165 'checkout attr=text ident aeol=lf core.autocrlf=input core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_input_attr_text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1165 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=crlf file=LF_nul -ok 25 - pathspecs with wildcards are not ambiguous +expecting success of 0027.1166 'ls-files --eol attr=text ident aeol=crlf core.autocrlf=input core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1166 - ls-files --eol attr=text ident aeol=crlf core.autocrlf=input core.eol=crlf -expecting success of 1506.26 'backslash does not trigger wildcard rule': - test_must_fail git rev-parse "foo\\bar" +expecting success of 0027.1167 'checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_input_attr_text_ CRLF crlf_false_attr__LF.txt + +ok 1167 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF -fatal: ambiguous argument 'foo\bar': unknown revision or path not in the working tree. -Use '--' to separate paths from revisions, like this: -'git [...] -- [...]' -foo\bar -ok 26 - backslash does not trigger wildcard rule +expecting success of 0027.1168 'checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 1168 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF -expecting success of 1506.27 'escaped char does not trigger wildcard rule': - test_must_fail git rev-parse "foo\\*bar" +expecting success of 0027.1169 'checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt + +ok 1169 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF -fatal: ambiguous argument 'foo\*bar': unknown revision or path not in the working tree. -Use '--' to separate paths from revisions, like this: -'git [...] -- [...]' -foo\*bar -ok 27 - escaped char does not trigger wildcard rule +expecting success of 0027.1170 'checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_input_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1170 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF_mix_CR -expecting success of 1506.28 'arg after dashdash not interpreted as option': - cat >expect <<-\EOF && - -- - --local-env-vars - EOF - git rev-parse -- --local-env-vars >actual && - test_cmp expect actual +expecting success of 0027.1171 'checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_input_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt + +ok 1171 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF_nul -ok 28 - arg after dashdash not interpreted as option +expecting success of 0027.1172 'ls-files --eol attr=auto ident aeol=lf core.autocrlf=input core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1172 - ls-files --eol attr=auto ident aeol=lf core.autocrlf=input core.eol=crlf -expecting success of 1506.29 'arg after end-of-options not interpreted as option': - test_must_fail git rev-parse --end-of-options --not-real -- 2>err && - test_i18ngrep bad.revision.*--not-real err +expecting success of 0027.1173 'checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_input_attr_auto_ LF crlf_false_attr__LF.txt + +ok 1173 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=crlf file=LF ---end-of-options -fatal: bad revision '--not-real' -ok 29 - arg after end-of-options not interpreted as option +expecting success of 0027.1174 'checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_input_attr_auto_ CRLF crlf_false_attr__CRLF.txt + +ok 1174 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=crlf file=CRLF -expecting success of 1506.30 'end-of-options still allows --': - cat >expect <<-EOF && - --end-of-options - $(git rev-parse --verify HEAD) - -- - path - EOF - git rev-parse --end-of-options HEAD -- path >actual && - test_cmp expect actual +expecting success of 0027.1175 'checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_input_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1175 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF -ok 30 - end-of-options still allows -- +expecting success of 0027.1176 'checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_input_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1176 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=crlf file=LF_mix_CR -# passed all 30 test(s) -1..30 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1509-root-work-tree.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1509-root-work-tree/.git/ -1..0 # SKIP Test requiring writable / skipped. Read this test if you want to run it -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1507-rev-parse-upstream.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1507-rev-parse-upstream/.git/ -expecting success of 1507.1 'setup': +expecting success of 0027.1177 'checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_input_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1177 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=crlf file=LF_nul - test_commit 1 && - git checkout -b side && - test_commit 2 && - git checkout master && - git clone . clone && - test_commit 3 && - (cd clone && - test_commit 4 && - git branch --track my-side origin/side && - git branch --track local-master master && - git branch --track fun@ny origin/side && - git branch --track @funny origin/side && - git branch --track funny@ origin/side && - git remote add -t master master-only .. && - git fetch master-only && - git branch bad-upstream && - git config branch.bad-upstream.remote master-only && - git config branch.bad-upstream.merge refs/heads/side - ) +expecting success of 0027.1178 'ls-files --eol attr=auto ident aeol=crlf core.autocrlf=input core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1178 - ls-files --eol attr=auto ident aeol=crlf core.autocrlf=input core.eol=crlf -[master (root-commit) d0dcf97] 1 - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 1.t -Switched to a new branch 'side' -[side 82335b2] 2 - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 2.t -Switched to branch 'master' -Cloning into 'clone'... -done. -[master 8f489d0] 3 - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 3.t -[master 6efda21] 4 - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 4.t -Branch 'my-side' set up to track remote branch 'side' from 'origin'. -Branch 'local-master' set up to track local branch 'master'. -Branch 'fun@ny' set up to track remote branch 'side' from 'origin'. -Branch '@funny' set up to track remote branch 'side' from 'origin'. -Branch 'funny@' set up to track remote branch 'side' from 'origin'. -From .. - * [new branch] master -> master-only/master - * [new tag] 3 -> 3 -ok 1 - setup +expecting success of 0027.1179 'checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_input_attr_auto_ CRLF crlf_false_attr__LF.txt + +ok 1179 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF -expecting success of 1507.2 '@{upstream} resolves to correct full name': - echo refs/remotes/origin/master >expect && - git -C clone rev-parse --symbolic-full-name @{upstream} >actual && - test_cmp expect actual && - git -C clone rev-parse --symbolic-full-name @{UPSTREAM} >actual && - test_cmp expect actual && - git -C clone rev-parse --symbolic-full-name @{UpSTReam} >actual && - test_cmp expect actual +expecting success of 0027.1180 'checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_input_attr_auto_ CRLF crlf_false_attr__CRLF.txt + +ok 1180 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF -ok 2 - @{upstream} resolves to correct full name +expecting success of 0027.1181 'checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_input_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1181 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=crlf file=CRLF_mix_LF -expecting success of 1507.3 '@{u} resolves to correct full name': - echo refs/remotes/origin/master >expect && - git -C clone rev-parse --symbolic-full-name @{u} >actual && - test_cmp expect actual && - git -C clone rev-parse --symbolic-full-name @{U} >actual && - test_cmp expect actual +expecting success of 0027.1182 'checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_input_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1182 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF_mix_CR -ok 3 - @{u} resolves to correct full name +expecting success of 0027.1183 'checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_input_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1183 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=crlf file=LF_nul -expecting success of 1507.4 'my-side@{upstream} resolves to correct full name': - echo refs/remotes/origin/side >expect && - git -C clone rev-parse --symbolic-full-name my-side@{u} >actual && - test_cmp expect actual +expecting success of 0027.1184 'ls-files --eol attr= ident aeol= core.autocrlf=false core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1184 - ls-files --eol attr= ident aeol= core.autocrlf=false core.eol=crlf -ok 4 - my-side@{upstream} resolves to correct full name +expecting success of 0027.1185 'checkout attr= ident aeol= core.autocrlf=false core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_false_attr__ LF crlf_false_attr__LF.txt + +ok 1185 - checkout attr= ident aeol= core.autocrlf=false core.eol=crlf file=LF -expecting success of 1507.5 'upstream of branch with @ in middle': - git -C clone rev-parse --symbolic-full-name fun@ny@{u} >actual && - echo refs/remotes/origin/side >expect && - test_cmp expect actual && - git -C clone rev-parse --symbolic-full-name fun@ny@{U} >actual && - test_cmp expect actual - -ok 5 - upstream of branch with @ in middle - -expecting success of 1507.6 'upstream of branch with @ at start': - git -C clone rev-parse --symbolic-full-name @funny@{u} >actual && - echo refs/remotes/origin/side >expect && - test_cmp expect actual - -ok 6 - upstream of branch with @ at start - -expecting success of 1507.7 'upstream of branch with @ at end': - git -C clone rev-parse --symbolic-full-name funny@@{u} >actual && - echo refs/remotes/origin/side >expect && - test_cmp expect actual - -ok 7 - upstream of branch with @ at end - -expecting success of 1507.8 'refs/heads/my-side@{upstream} does not resolve to my-side{upstream}': - test_must_fail git -C clone rev-parse --symbolic-full-name refs/heads/my-side@{upstream} - -fatal: no such branch: 'refs/heads/my-side' -ok 8 - refs/heads/my-side@{upstream} does not resolve to my-side{upstream} - -expecting success of 1507.9 'my-side@{u} resolves to correct commit': - git checkout side && - test_commit 5 && - (cd clone && git fetch) && - echo 2 >expect && - commit_subject my-side >actual && - test_cmp expect actual && - echo 5 >expect && - commit_subject my-side@{u} >actual - -Switched to branch 'side' -[side e3f9627] 5 - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 5.t -From /build/git-2.30.2/t/trash directory.t1507-rev-parse-upstream/. - d0dcf97..8f489d0 master -> origin/master - 82335b2..e3f9627 side -> origin/side - * [new tag] 5 -> 5 -ok 9 - my-side@{u} resolves to correct commit - -expecting success of 1507.10 'not-tracking@{u} fails': - test_must_fail git -C clone rev-parse --symbolic-full-name non-tracking@{u} && - (cd clone && git checkout --no-track -b non-tracking) && - test_must_fail git -C clone rev-parse --symbolic-full-name non-tracking@{u} - -fatal: no such branch: 'non-tracking' -Switched to a new branch 'non-tracking' -fatal: no upstream configured for branch 'non-tracking' -ok 10 - not-tracking@{u} fails - -expecting success of 1507.11 '@{u}@{1} resolves correctly': - test_commit 6 && - (cd clone && git fetch) && - echo 5 >expect && - commit_subject my-side@{u}@{1} >actual && - test_cmp expect actual && - commit_subject my-side@{U}@{1} >actual && - test_cmp expect actual - -[side 8bf5882] 6 - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 6.t -From /build/git-2.30.2/t/trash directory.t1507-rev-parse-upstream/. - e3f9627..8bf5882 side -> origin/side - * [new tag] 6 -> 6 -ok 11 - @{u}@{1} resolves correctly - -expecting success of 1507.12 '@{u} without specifying branch fails on a detached HEAD': - git checkout HEAD^0 && - test_must_fail git rev-parse @{u} && - test_must_fail git rev-parse @{U} - -Note: switching to 'HEAD^0'. - -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. - -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: - - git switch -c - -Or undo this operation with: - - git switch - - -Turn off this advice by setting config variable advice.detachedHead to false - -HEAD is now at 8bf5882 6 -fatal: HEAD does not point to a branch -fatal: HEAD does not point to a branch -ok 12 - @{u} without specifying branch fails on a detached HEAD - -expecting success of 1507.13 'checkout -b new my-side@{u} forks from the same': -( - cd clone && - git checkout -b new my-side@{u} && - git rev-parse --symbolic-full-name my-side@{u} >expect && - git rev-parse --symbolic-full-name new@{u} >actual && - test_cmp expect actual -) - -Switched to a new branch 'new' -Branch 'new' set up to track remote branch 'side' from 'origin'. -ok 13 - checkout -b new my-side@{u} forks from the same - -expecting success of 1507.14 'merge my-side@{u} records the correct name': -( - cd clone && - git checkout master && - test_might_fail git branch -D new && - git branch -t new my-side@{u} && - git merge -s ours new@{u} && - git show -s --pretty=tformat:%s >actual && - echo "Merge remote-tracking branch ${SQ}origin/side${SQ}" >expect && - test_cmp expect actual -) - -Switched to branch 'master' -Your branch and 'origin/master' have diverged, -and have 1 and 1 different commits each, respectively. - (use "git pull" to merge the remote branch into yours) -Deleted branch new (was 8bf5882). -Branch 'new' set up to track remote branch 'side' from 'origin'. -Merge made by the 'ours' strategy. -ok 14 - merge my-side@{u} records the correct name - -expecting success of 1507.15 'branch -d other@{u}': - git checkout -t -b other master && - git branch -d @{u} && - git for-each-ref refs/heads/master >actual && - test_must_be_empty actual - -Previous HEAD position was 8bf5882 6 -Switched to a new branch 'other' -Branch 'other' set up to track local branch 'master'. -Deleted branch master (was 8f489d0). -ok 15 - branch -d other@{u} - -expecting success of 1507.16 'checkout other@{u}': - git branch -f master HEAD && - git checkout -t -b another master && - git checkout @{u} && - git symbolic-ref HEAD >actual && - echo refs/heads/master >expect && - test_cmp expect actual - -Switched to a new branch 'another' -Branch 'another' set up to track local branch 'master'. -Switched to branch 'master' -ok 16 - checkout other@{u} - -expecting success of 1507.17 'branch@{u} works when tracking a local branch': - echo refs/heads/master >expect && - git -C clone rev-parse --symbolic-full-name local-master@{u} >actual && - test_cmp expect actual - -ok 17 - branch@{u} works when tracking a local branch - -expecting success of 1507.18 'branch@{u} error message when no upstream': - cat >expect <<-EOF && - fatal: no upstream configured for branch ${SQ}non-tracking${SQ} - EOF - error_message non-tracking@{u} && - test_i18ncmp expect error - -checking prerequisite: C_LOCALE_OUTPUT - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false - -) -prerequisite C_LOCALE_OUTPUT ok -ok 18 - branch@{u} error message when no upstream - -expecting success of 1507.19 '@{u} error message when no upstream': - cat >expect <<-EOF && - fatal: no upstream configured for branch ${SQ}master${SQ} - EOF - test_must_fail git rev-parse --verify @{u} 2>actual && - test_i18ncmp expect actual - -ok 19 - @{u} error message when no upstream - -expecting success of 1507.20 'branch@{u} error message with misspelt branch': - cat >expect <<-EOF && - fatal: no such branch: ${SQ}no-such-branch${SQ} - EOF - error_message no-such-branch@{u} && - test_i18ncmp expect error - -ok 20 - branch@{u} error message with misspelt branch - -expecting success of 1507.21 '@{u} error message when not on a branch': - cat >expect <<-EOF && - fatal: HEAD does not point to a branch - EOF - git checkout HEAD^0 && - test_must_fail git rev-parse --verify @{u} 2>actual && - test_i18ncmp expect actual - -Note: switching to 'HEAD^0'. - -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. - -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: - - git switch -c - -Or undo this operation with: - - git switch - - -Turn off this advice by setting config variable advice.detachedHead to false - -HEAD is now at 8f489d0 3 -ok 21 - @{u} error message when not on a branch - -expecting success of 1507.22 'branch@{u} error message if upstream branch not fetched': - cat >expect <<-EOF && - fatal: upstream branch ${SQ}refs/heads/side${SQ} not stored as a remote-tracking branch - EOF - error_message bad-upstream@{u} && - test_i18ncmp expect error - -ok 22 - branch@{u} error message if upstream branch not fetched - -expecting success of 1507.23 'pull works when tracking a local branch': -( - cd clone && - git checkout local-master && - git pull -) - -Switched to branch 'local-master' -Your branch is behind 'master' by 4 commits, and can be fast-forwarded. - (use "git pull" to update your local branch) -hint: Pulling without specifying how to reconcile divergent branches is -hint: discouraged. You can squelch this message by running one of the following -hint: commands sometime before your next pull: -hint: -hint: git config pull.rebase false # merge (the default strategy) -hint: git config pull.rebase true # rebase -hint: git config pull.ff only # fast-forward only -hint: -hint: You can replace "git config" with "git config --global" to set a default -hint: preference for all repositories. You can also pass --rebase, --no-rebase, -hint: or --ff-only on the command line to override the configured default per -hint: invocation. -From . - * branch master -> FETCH_HEAD -Updating 6efda21..ac35135 -Fast-forward -ok 23 - pull works when tracking a local branch - -expecting success of 1507.24 '@{u} works when tracking a local branch': - echo refs/heads/master >expect && - git -C clone rev-parse --symbolic-full-name @{u} >actual && - test_cmp expect actual - -ok 24 - @{u} works when tracking a local branch - -expecting success of 1507.25 'log -g other@{u}': - commit=$(git rev-parse HEAD) && - cat >expect <<-EOF && - commit $commit - Reflog: master@{0} (C O Mitter ) - Reflog message: branch: Created from HEAD - Author: A U Thor - Date: Thu Apr 7 15:15:13 2005 -0700 - - 3 - EOF - git log -1 -g other@{u} >actual && - test_cmp expect actual - -ok 25 - log -g other@{u} - -expecting success of 1507.26 'log -g other@{u}@{now}': - commit=$(git rev-parse HEAD) && - cat >expect <<-EOF && - commit $commit - Reflog: master@{Thu Apr 7 15:17:13 2005 -0700} (C O Mitter ) - Reflog message: branch: Created from HEAD - Author: A U Thor - Date: Thu Apr 7 15:15:13 2005 -0700 - - 3 - EOF - git log -1 -g other@{u}@{now} >actual && - test_cmp expect actual - -ok 26 - log -g other@{u}@{now} - -expecting success of 1507.27 '@{reflog}-parsing does not look beyond colon': - echo content >@{yesterday} && - git add @{yesterday} && - git commit -m "funny reflog file" && - git hash-object @{yesterday} >expect && - git rev-parse HEAD:@{yesterday} >actual - -[detached HEAD eae0df2] funny reflog file - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 @{yesterday} -ok 27 - @{reflog}-parsing does not look beyond colon - -expecting success of 1507.28 '@{upstream}-parsing does not look beyond colon': - echo content >@{upstream} && - git add @{upstream} && - git commit -m "funny upstream file" && - git hash-object @{upstream} >expect && - git rev-parse HEAD:@{upstream} >actual - -[detached HEAD c358789] funny upstream file - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 @{upstream} -ok 28 - @{upstream}-parsing does not look beyond colon - -# passed all 28 test(s) -1..28 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1508-at-combinations.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1508-at-combinations/.git/ -expecting success of 1508.1 'setup': - test_commit master-one && - test_commit master-two && - git checkout -b upstream-branch && - test_commit upstream-one && - test_commit upstream-two && - if test_have_prereq !MINGW - then - git checkout -b @/at-test - fi && - git checkout -b @@/at-test && - git checkout -b @at-test && - git checkout -b old-branch && - test_commit old-one && - test_commit old-two && - git checkout -b new-branch && - test_commit new-one && - test_commit new-two && - git branch -u master old-branch && - git branch -u upstream-branch new-branch - -[master (root-commit) 8ff5a25] master-one - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 master-one.t -[master 8164ab4] master-two - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 master-two.t -Switched to a new branch 'upstream-branch' -[upstream-branch 101729d] upstream-one - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 upstream-one.t -[upstream-branch 77f4b7f] upstream-two - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 upstream-two.t -Switched to a new branch '@/at-test' -Switched to a new branch '@@/at-test' -Switched to a new branch '@at-test' -Switched to a new branch 'old-branch' -[old-branch 4e4e7fa] old-one - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 old-one.t -[old-branch 3273d4d] old-two - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 old-two.t -Switched to a new branch 'new-branch' -[new-branch e49ce93] new-one - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 new-one.t -[new-branch c493e4b] new-two - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 new-two.t -Branch 'old-branch' set up to track local branch 'master'. -Branch 'new-branch' set up to track local branch 'upstream-branch'. -ok 1 - setup +expecting success of 0027.1186 'checkout attr= ident aeol= core.autocrlf=false core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_false_attr__ CRLF crlf_false_attr__CRLF.txt + +ok 1186 - checkout attr= ident aeol= core.autocrlf=false core.eol=crlf file=CRLF -expecting success of 1508.2 'HEAD = refs/heads/new-branch': - echo 'refs/heads/new-branch' >expect && - if test 'ref' = 'commit' - then - git log -1 --format=%s 'HEAD' >actual - elif test 'ref' = 'ref' - then - git rev-parse --symbolic-full-name 'HEAD' >actual - else - git cat-file -p 'HEAD' >actual - fi && - test_cmp expect actual +expecting success of 0027.1187 'checkout attr= ident aeol= core.autocrlf=false core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_false_attr__ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt -ok 2 - HEAD = refs/heads/new-branch +ok 1187 - checkout attr= ident aeol= core.autocrlf=false core.eol=crlf file=CRLF_mix_LF -expecting success of 1508.3 '@{1} = new-one': - echo 'new-one' >expect && - if test 'commit' = 'commit' - then - git log -1 --format=%s '@{1}' >actual - elif test 'commit' = 'ref' - then - git rev-parse --symbolic-full-name '@{1}' >actual - else - git cat-file -p '@{1}' >actual - fi && - test_cmp expect actual +expecting success of 0027.1188 'checkout attr= ident aeol= core.autocrlf=false core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_false_attr__ LF_mix_CR crlf_false_attr__LF_mix_CR.txt -ok 3 - @{1} = new-one +ok 1188 - checkout attr= ident aeol= core.autocrlf=false core.eol=crlf file=LF_mix_CR -expecting success of 1508.4 'HEAD@{1} = new-one': - echo 'new-one' >expect && - if test 'commit' = 'commit' - then - git log -1 --format=%s 'HEAD@{1}' >actual - elif test 'commit' = 'ref' - then - git rev-parse --symbolic-full-name 'HEAD@{1}' >actual - else - git cat-file -p 'HEAD@{1}' >actual - fi && - test_cmp expect actual +expecting success of 0027.1189 'checkout attr= ident aeol= core.autocrlf=false core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_false_attr__ LF_nul crlf_false_attr__LF_nul.txt -ok 4 - HEAD@{1} = new-one +ok 1189 - checkout attr= ident aeol= core.autocrlf=false core.eol=crlf file=LF_nul -expecting success of 1508.5 '@{now} = new-two': - echo 'new-two' >expect && - if test 'commit' = 'commit' - then - git log -1 --format=%s '@{now}' >actual - elif test 'commit' = 'ref' - then - git rev-parse --symbolic-full-name '@{now}' >actual - else - git cat-file -p '@{now}' >actual - fi && +expecting success of 0027.1190 'ls-files --eol attr= ident aeol= core.autocrlf=true core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && test_cmp expect actual -ok 5 - @{now} = new-two +ok 1190 - ls-files --eol attr= ident aeol= core.autocrlf=true core.eol=crlf -expecting success of 1508.6 'HEAD@{now} = new-two': - echo 'new-two' >expect && - if test 'commit' = 'commit' - then - git log -1 --format=%s 'HEAD@{now}' >actual - elif test 'commit' = 'ref' - then - git rev-parse --symbolic-full-name 'HEAD@{now}' >actual - else - git cat-file -p 'HEAD@{now}' >actual - fi && - test_cmp expect actual +expecting success of 0027.1191 'checkout attr= ident aeol= core.autocrlf=true core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_true_attr__ CRLF crlf_false_attr__LF.txt -ok 6 - HEAD@{now} = new-two +ok 1191 - checkout attr= ident aeol= core.autocrlf=true core.eol=crlf file=LF -expecting success of 1508.7 '@{-1} = refs/heads/old-branch': - echo 'refs/heads/old-branch' >expect && - if test 'ref' = 'commit' - then - git log -1 --format=%s '@{-1}' >actual - elif test 'ref' = 'ref' - then - git rev-parse --symbolic-full-name '@{-1}' >actual - else - git cat-file -p '@{-1}' >actual - fi && - test_cmp expect actual +expecting success of 0027.1192 'checkout attr= ident aeol= core.autocrlf=true core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_true_attr__ CRLF crlf_false_attr__CRLF.txt -ok 7 - @{-1} = refs/heads/old-branch +ok 1192 - checkout attr= ident aeol= core.autocrlf=true core.eol=crlf file=CRLF -expecting success of 1508.8 '@{-1}@{0} = old-two': - echo 'old-two' >expect && - if test 'commit' = 'commit' - then - git log -1 --format=%s '@{-1}@{0}' >actual - elif test 'commit' = 'ref' - then - git rev-parse --symbolic-full-name '@{-1}@{0}' >actual - else - git cat-file -p '@{-1}@{0}' >actual - fi && - test_cmp expect actual +expecting success of 0027.1193 'checkout attr= ident aeol= core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_true_attr__ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt -ok 8 - @{-1}@{0} = old-two +ok 1193 - checkout attr= ident aeol= core.autocrlf=true core.eol=crlf file=CRLF_mix_LF -expecting success of 1508.9 '@{-1}@{1} = old-one': - echo 'old-one' >expect && - if test 'commit' = 'commit' - then - git log -1 --format=%s '@{-1}@{1}' >actual - elif test 'commit' = 'ref' - then - git rev-parse --symbolic-full-name '@{-1}@{1}' >actual - else - git cat-file -p '@{-1}@{1}' >actual - fi && - test_cmp expect actual +expecting success of 0027.1194 'checkout attr= ident aeol= core.autocrlf=true core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_true_attr__ LF_mix_CR crlf_false_attr__LF_mix_CR.txt -ok 9 - @{-1}@{1} = old-one +ok 1194 - checkout attr= ident aeol= core.autocrlf=true core.eol=crlf file=LF_mix_CR -expecting success of 1508.10 '@{u} = refs/heads/upstream-branch': - echo 'refs/heads/upstream-branch' >expect && - if test 'ref' = 'commit' - then - git log -1 --format=%s '@{u}' >actual - elif test 'ref' = 'ref' - then - git rev-parse --symbolic-full-name '@{u}' >actual - else - git cat-file -p '@{u}' >actual - fi && - test_cmp expect actual +expecting success of 0027.1195 'checkout attr= ident aeol= core.autocrlf=true core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_true_attr__ LF_nul crlf_false_attr__LF_nul.txt -ok 10 - @{u} = refs/heads/upstream-branch +ok 1195 - checkout attr= ident aeol= core.autocrlf=true core.eol=crlf file=LF_nul -expecting success of 1508.11 'HEAD@{u} = refs/heads/upstream-branch': - echo 'refs/heads/upstream-branch' >expect && - if test 'ref' = 'commit' - then - git log -1 --format=%s 'HEAD@{u}' >actual - elif test 'ref' = 'ref' - then - git rev-parse --symbolic-full-name 'HEAD@{u}' >actual - else - git cat-file -p 'HEAD@{u}' >actual - fi && +expecting success of 0027.1196 'ls-files --eol attr=auto ident aeol= core.autocrlf=true core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && test_cmp expect actual -ok 11 - HEAD@{u} = refs/heads/upstream-branch +ok 1196 - ls-files --eol attr=auto ident aeol= core.autocrlf=true core.eol=crlf -expecting success of 1508.12 '@{u}@{1} = upstream-one': - echo 'upstream-one' >expect && - if test 'commit' = 'commit' - then - git log -1 --format=%s '@{u}@{1}' >actual - elif test 'commit' = 'ref' - then - git rev-parse --symbolic-full-name '@{u}@{1}' >actual - else - git cat-file -p '@{u}@{1}' >actual - fi && - test_cmp expect actual +expecting success of 0027.1197 'checkout attr=auto ident aeol= core.autocrlf=true core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_true_attr_auto_ CRLF crlf_false_attr__LF.txt -ok 12 - @{u}@{1} = upstream-one +ok 1197 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=crlf file=LF -expecting success of 1508.13 '@{-1}@{u} = refs/heads/master': - echo 'refs/heads/master' >expect && - if test 'ref' = 'commit' - then - git log -1 --format=%s '@{-1}@{u}' >actual - elif test 'ref' = 'ref' - then - git rev-parse --symbolic-full-name '@{-1}@{u}' >actual - else - git cat-file -p '@{-1}@{u}' >actual - fi && - test_cmp expect actual +expecting success of 0027.1198 'checkout attr=auto ident aeol= core.autocrlf=true core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_true_attr_auto_ CRLF crlf_false_attr__CRLF.txt -ok 13 - @{-1}@{u} = refs/heads/master +ok 1198 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=crlf file=CRLF -expecting success of 1508.14 '@{-1}@{u}@{1} = master-one': - echo 'master-one' >expect && - if test 'commit' = 'commit' - then - git log -1 --format=%s '@{-1}@{u}@{1}' >actual - elif test 'commit' = 'ref' - then - git rev-parse --symbolic-full-name '@{-1}@{u}@{1}' >actual - else - git cat-file -p '@{-1}@{u}@{1}' >actual - fi && - test_cmp expect actual +expecting success of 0027.1199 'checkout attr=auto ident aeol= core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_true_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt -ok 14 - @{-1}@{u}@{1} = master-one +ok 1199 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=crlf file=CRLF_mix_LF -expecting success of 1508.15 '@ = new-two': - echo 'new-two' >expect && - if test 'commit' = 'commit' - then - git log -1 --format=%s '@' >actual - elif test 'commit' = 'ref' - then - git rev-parse --symbolic-full-name '@' >actual - else - git cat-file -p '@' >actual - fi && - test_cmp expect actual +expecting success of 0027.1200 'checkout attr=auto ident aeol= core.autocrlf=true core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_true_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt -ok 15 - @ = new-two +ok 1200 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=crlf file=LF_mix_CR -expecting success of 1508.16 '@@{u} = refs/heads/upstream-branch': - echo 'refs/heads/upstream-branch' >expect && - if test 'ref' = 'commit' - then - git log -1 --format=%s '@@{u}' >actual - elif test 'ref' = 'ref' - then - git rev-parse --symbolic-full-name '@@{u}' >actual - else - git cat-file -p '@@{u}' >actual - fi && - test_cmp expect actual +expecting success of 0027.1201 'checkout attr=auto ident aeol= core.autocrlf=true core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_true_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt -ok 16 - @@{u} = refs/heads/upstream-branch +ok 1201 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=crlf file=LF_nul -expecting success of 1508.17 '@@/at-test = refs/heads/@@/at-test': - echo 'refs/heads/@@/at-test' >expect && - if test 'ref' = 'commit' - then - git log -1 --format=%s '@@/at-test' >actual - elif test 'ref' = 'ref' - then - git rev-parse --symbolic-full-name '@@/at-test' >actual - else - git cat-file -p '@@/at-test' >actual - fi && +expecting success of 0027.1202 'ls-files --eol attr=text ident aeol= core.autocrlf=true core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && test_cmp expect actual -ok 17 - @@/at-test = refs/heads/@@/at-test +ok 1202 - ls-files --eol attr=text ident aeol= core.autocrlf=true core.eol=crlf -expecting success of 1508.18 '@/at-test = refs/heads/@/at-test': - echo 'refs/heads/@/at-test' >expect && - if test 'ref' = 'commit' - then - git log -1 --format=%s '@/at-test' >actual - elif test 'ref' = 'ref' - then - git rev-parse --symbolic-full-name '@/at-test' >actual - else - git cat-file -p '@/at-test' >actual - fi && - test_cmp expect actual +expecting success of 0027.1203 'checkout attr=text ident aeol= core.autocrlf=true core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF crlf_false_attr__LF.txt -ok 18 - @/at-test = refs/heads/@/at-test +ok 1203 - checkout attr=text ident aeol= core.autocrlf=true core.eol=crlf file=LF -expecting success of 1508.19 '@at-test = refs/heads/@at-test': - echo 'refs/heads/@at-test' >expect && - if test 'ref' = 'commit' - then - git log -1 --format=%s '@at-test' >actual - elif test 'ref' = 'ref' - then - git rev-parse --symbolic-full-name '@at-test' >actual - else - git cat-file -p '@at-test' >actual - fi && - test_cmp expect actual +expecting success of 0027.1204 'checkout attr=text ident aeol= core.autocrlf=true core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF.txt -ok 19 - @at-test = refs/heads/@at-test +ok 1204 - checkout attr=text ident aeol= core.autocrlf=true core.eol=crlf file=CRLF -expecting success of 1508.20 '@{u}@{-1} is nonsensical': - test_must_fail git rev-parse --verify '@{u}@{-1}' +expecting success of 0027.1205 'checkout attr=text ident aeol= core.autocrlf=true core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt -fatal: Needed a single revision -ok 20 - @{u}@{-1} is nonsensical +ok 1205 - checkout attr=text ident aeol= core.autocrlf=true core.eol=crlf file=CRLF_mix_LF -expecting success of 1508.21 '@{0}@{0} is nonsensical': - test_must_fail git rev-parse --verify '@{0}@{0}' +expecting success of 0027.1206 'checkout attr=text ident aeol= core.autocrlf=true core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt -fatal: Needed a single revision -ok 21 - @{0}@{0} is nonsensical +ok 1206 - checkout attr=text ident aeol= core.autocrlf=true core.eol=crlf file=LF_mix_CR -expecting success of 1508.22 '@{1}@{u} is nonsensical': - test_must_fail git rev-parse --verify '@{1}@{u}' +expecting success of 0027.1207 'checkout attr=text ident aeol= core.autocrlf=true core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_true_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt -fatal: no such branch: '@{1}' -ok 22 - @{1}@{u} is nonsensical +ok 1207 - checkout attr=text ident aeol= core.autocrlf=true core.eol=crlf file=LF_nul -expecting success of 1508.23 'HEAD@{-1} is nonsensical': - test_must_fail git rev-parse --verify 'HEAD@{-1}' +expecting success of 0027.1208 'ls-files --eol attr=text ident aeol= core.autocrlf=input core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual -fatal: Needed a single revision -ok 23 - HEAD@{-1} is nonsensical +ok 1208 - ls-files --eol attr=text ident aeol= core.autocrlf=input core.eol=crlf -expecting success of 1508.24 '@{-1}@{-1} is nonsensical': - test_must_fail git rev-parse --verify '@{-1}@{-1}' +expecting success of 0027.1209 'checkout attr=text ident aeol= core.autocrlf=input core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_input_attr_text_ LF crlf_false_attr__LF.txt -fatal: Needed a single revision -ok 24 - @{-1}@{-1} is nonsensical +ok 1209 - checkout attr=text ident aeol= core.autocrlf=input core.eol=crlf file=LF -expecting success of 1508.25 'HEAD@{3} = old-two': - echo 'old-two' >expect && - if test 'commit' = 'commit' - then - git log -1 --format=%s 'HEAD@{3}' >actual - elif test 'commit' = 'ref' - then - git rev-parse --symbolic-full-name 'HEAD@{3}' >actual - else - git cat-file -p 'HEAD@{3}' >actual - fi && - test_cmp expect actual +expecting success of 0027.1210 'checkout attr=text ident aeol= core.autocrlf=input core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF.txt -ok 25 - HEAD@{3} = old-two +ok 1210 - checkout attr=text ident aeol= core.autocrlf=input core.eol=crlf file=CRLF -expecting success of 1508.26 '@{3} is nonsensical': - test_must_fail git rev-parse --verify '@{3}' +expecting success of 0027.1211 'checkout attr=text ident aeol= core.autocrlf=input core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_input_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt -fatal: log for 'new-branch' only has 3 entries -ok 26 - @{3} is nonsensical +ok 1211 - checkout attr=text ident aeol= core.autocrlf=input core.eol=crlf file=CRLF_mix_LF -expecting success of 1508.27 'switch to old-branch': - git checkout old-branch +expecting success of 0027.1212 'checkout attr=text ident aeol= core.autocrlf=input core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_input_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1212 - checkout attr=text ident aeol= core.autocrlf=input core.eol=crlf file=LF_mix_CR -Switched to branch 'old-branch' -Your branch is ahead of 'master' by 4 commits. - (use "git push" to publish your local commits) -ok 27 - switch to old-branch +expecting success of 0027.1213 'checkout attr=text ident aeol= core.autocrlf=input core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_input_attr_text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1213 - checkout attr=text ident aeol= core.autocrlf=input core.eol=crlf file=LF_nul -expecting success of 1508.28 'HEAD = refs/heads/old-branch': - echo 'refs/heads/old-branch' >expect && - if test 'ref' = 'commit' - then - git log -1 --format=%s 'HEAD' >actual - elif test 'ref' = 'ref' - then - git rev-parse --symbolic-full-name 'HEAD' >actual - else - git cat-file -p 'HEAD' >actual - fi && +expecting success of 0027.1214 'ls-files --eol attr=auto ident aeol= core.autocrlf=input core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && test_cmp expect actual -ok 28 - HEAD = refs/heads/old-branch +ok 1214 - ls-files --eol attr=auto ident aeol= core.autocrlf=input core.eol=crlf -expecting success of 1508.29 'HEAD@{1} = new-two': - echo 'new-two' >expect && - if test 'commit' = 'commit' - then - git log -1 --format=%s 'HEAD@{1}' >actual - elif test 'commit' = 'ref' - then - git rev-parse --symbolic-full-name 'HEAD@{1}' >actual - else - git cat-file -p 'HEAD@{1}' >actual - fi && - test_cmp expect actual +expecting success of 0027.1215 'checkout attr=auto ident aeol= core.autocrlf=input core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_input_attr_auto_ LF crlf_false_attr__LF.txt -ok 29 - HEAD@{1} = new-two +ok 1215 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=crlf file=LF -expecting success of 1508.30 '@{1} = old-one': - echo 'old-one' >expect && - if test 'commit' = 'commit' - then - git log -1 --format=%s '@{1}' >actual - elif test 'commit' = 'ref' - then - git rev-parse --symbolic-full-name '@{1}' >actual - else - git cat-file -p '@{1}' >actual - fi && - test_cmp expect actual +expecting success of 0027.1216 'checkout attr=auto ident aeol= core.autocrlf=input core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_input_attr_auto_ CRLF crlf_false_attr__CRLF.txt -ok 30 - @{1} = old-one +ok 1216 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=crlf file=CRLF -expecting success of 1508.31 'create path with @': - echo content >normal && - echo content >fun@ny && - git add normal fun@ny && - git commit -m "funny path" +expecting success of 0027.1217 'checkout attr=auto ident aeol= core.autocrlf=input core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_input_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1217 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=crlf file=CRLF_mix_LF -[old-branch 9d022ac] funny path - Author: A U Thor - 2 files changed, 2 insertions(+) - create mode 100644 fun@ny - create mode 100644 normal -ok 31 - create path with @ +expecting success of 0027.1218 'checkout attr=auto ident aeol= core.autocrlf=input core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_input_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1218 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=crlf file=LF_mix_CR -expecting success of 1508.32 '@:normal = content': - echo 'content' >expect && - if test 'blob' = 'commit' - then - git log -1 --format=%s '@:normal' >actual - elif test 'blob' = 'ref' - then - git rev-parse --symbolic-full-name '@:normal' >actual - else - git cat-file -p '@:normal' >actual - fi && - test_cmp expect actual +expecting success of 0027.1219 'checkout attr=auto ident aeol= core.autocrlf=input core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_input_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt -ok 32 - @:normal = content +ok 1219 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=crlf file=LF_nul -expecting success of 1508.33 '@:fun@ny = content': - echo 'content' >expect && - if test 'blob' = 'commit' - then - git log -1 --format=%s '@:fun@ny' >actual - elif test 'blob' = 'ref' - then - git rev-parse --symbolic-full-name '@:fun@ny' >actual - else - git cat-file -p '@:fun@ny' >actual - fi && +expecting success of 0027.1220 'ls-files --eol attr=-text ident aeol= core.autocrlf=true core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && test_cmp expect actual -ok 33 - @:fun@ny = content - -# passed all 33 test(s) -1..33 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1511-rev-parse-caret.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1511-rev-parse-caret/.git/ -expecting success of 1511.1 'setup': - echo blob >a-blob && - git tag -a -m blob blob-tag $(git hash-object -w a-blob) && - mkdir a-tree && - echo moreblobs >a-tree/another-blob && - git add . && - TREE_SHA1=$(git write-tree) && - git tag -a -m tree tree-tag "$TREE_SHA1" && - git commit -m Initial && - git tag -a -m commit commit-tag && - git branch ref && - git checkout master && - echo modified >>a-blob && - git add -u && - git commit -m Modified && - git branch modref && - echo changed! >>a-blob && - git add -u && - git commit -m !Exp && - git branch expref && - echo changed >>a-blob && - git add -u && - git commit -m Changed && - echo changed-again >>a-blob && - git add -u && - git commit -m Changed-again - -[master (root-commit) 543146a] Initial - Author: A U Thor - 2 files changed, 2 insertions(+) - create mode 100644 a-blob - create mode 100644 a-tree/another-blob -Already on 'master' -[master 921b76a] Modified - Author: A U Thor - 1 file changed, 1 insertion(+) -[master e6ae3e8] !Exp - Author: A U Thor - 1 file changed, 1 insertion(+) -[master ee9e0b8] Changed - Author: A U Thor - 1 file changed, 1 insertion(+) -[master 8f5adaa] Changed-again - Author: A U Thor - 1 file changed, 1 insertion(+) -ok 1 - setup - -expecting success of 1511.2 'ref^{non-existent}': - test_must_fail git rev-parse ref^{non-existent} - -fatal: ambiguous argument 'ref^{non-existent}': unknown revision or path not in the working tree. -Use '--' to separate paths from revisions, like this: -'git [...] -- [...]' -ref^{non-existent} -ok 2 - ref^{non-existent} - -expecting success of 1511.3 'ref^{}': - git rev-parse ref >expected && - git rev-parse ref^{} >actual && - test_cmp expected actual && - git rev-parse commit-tag^{} >actual && - test_cmp expected actual - -ok 3 - ref^{} - -expecting success of 1511.4 'ref^{commit}': - git rev-parse ref >expected && - git rev-parse ref^{commit} >actual && - test_cmp expected actual && - git rev-parse commit-tag^{commit} >actual && - test_cmp expected actual && - test_must_fail git rev-parse tree-tag^{commit} && - test_must_fail git rev-parse blob-tag^{commit} - -error: tree-tag^{commit}: expected commit type, but the object dereferences to tree type -error: tree-tag^{commit}: expected commit type, but the object dereferences to tree type -fatal: ambiguous argument 'tree-tag^{commit}': unknown revision or path not in the working tree. -Use '--' to separate paths from revisions, like this: -'git [...] -- [...]' -tree-tag^{commit} -error: blob-tag^{commit}: expected commit type, but the object dereferences to blob type -error: blob-tag^{commit}: expected commit type, but the object dereferences to blob type -fatal: ambiguous argument 'blob-tag^{commit}': unknown revision or path not in the working tree. -Use '--' to separate paths from revisions, like this: -'git [...] -- [...]' -blob-tag^{commit} -ok 4 - ref^{commit} - -expecting success of 1511.5 'ref^{tree}': - echo $TREE_SHA1 >expected && - git rev-parse ref^{tree} >actual && - test_cmp expected actual && - git rev-parse commit-tag^{tree} >actual && - test_cmp expected actual && - git rev-parse tree-tag^{tree} >actual && - test_cmp expected actual && - test_must_fail git rev-parse blob-tag^{tree} - -error: blob-tag^{tree}: expected tree type, but the object dereferences to blob type -error: blob-tag^{tree}: expected tree type, but the object dereferences to blob type -fatal: ambiguous argument 'blob-tag^{tree}': unknown revision or path not in the working tree. -Use '--' to separate paths from revisions, like this: -'git [...] -- [...]' -blob-tag^{tree} -ok 5 - ref^{tree} - -expecting success of 1511.6 'ref^{tag}': - test_must_fail git rev-parse HEAD^{tag} && - git rev-parse commit-tag >expected && - git rev-parse commit-tag^{tag} >actual && - test_cmp expected actual - -error: HEAD^{tag}: expected tag type, but the object dereferences to tree type -error: HEAD^{tag}: expected tag type, but the object dereferences to tree type -fatal: ambiguous argument 'HEAD^{tag}': unknown revision or path not in the working tree. -Use '--' to separate paths from revisions, like this: -'git [...] -- [...]' -HEAD^{tag} -ok 6 - ref^{tag} - -expecting success of 1511.7 'ref^{/.}': - git rev-parse master >expected && - git rev-parse master^{/.} >actual && - test_cmp expected actual - -ok 7 - ref^{/.} - -expecting success of 1511.8 'ref^{/non-existent}': - test_must_fail git rev-parse master^{/non-existent} - -fatal: ambiguous argument 'master^{/non-existent}': unknown revision or path not in the working tree. -Use '--' to separate paths from revisions, like this: -'git [...] -- [...]' -master^{/non-existent} -ok 8 - ref^{/non-existent} - -expecting success of 1511.9 'ref^{/Initial}': - git rev-parse ref >expected && - git rev-parse master^{/Initial} >actual && - test_cmp expected actual - -ok 9 - ref^{/Initial} - -expecting success of 1511.10 'ref^{/!Exp}': - test_must_fail git rev-parse master^{/!Exp} - -fatal: ambiguous argument 'master^{/!Exp}': unknown revision or path not in the working tree. -Use '--' to separate paths from revisions, like this: -'git [...] -- [...]' -master^{/!Exp} -ok 10 - ref^{/!Exp} - -expecting success of 1511.11 'ref^{/!}': - test_must_fail git rev-parse master^{/!} - -fatal: ambiguous argument 'master^{/!}': unknown revision or path not in the working tree. -Use '--' to separate paths from revisions, like this: -'git [...] -- [...]' -master^{/!} -ok 11 - ref^{/!} - -expecting success of 1511.12 'ref^{/!!Exp}': - git rev-parse expref >expected && - git rev-parse master^{/!!Exp} >actual && - test_cmp expected actual - -ok 12 - ref^{/!!Exp} - -expecting success of 1511.13 'ref^{/!-}': - test_must_fail git rev-parse master^{/!-} - -fatal: ambiguous argument 'master^{/!-}': unknown revision or path not in the working tree. -Use '--' to separate paths from revisions, like this: -'git [...] -- [...]' -master^{/!-} -ok 13 - ref^{/!-} - -expecting success of 1511.14 'ref^{/!-.}': - test_must_fail git rev-parse master^{/!-.} - -fatal: ambiguous argument 'master^{/!-.}': unknown revision or path not in the working tree. -Use '--' to separate paths from revisions, like this: -'git [...] -- [...]' -master^{/!-.} -ok 14 - ref^{/!-.} - -expecting success of 1511.15 'ref^{/!-non-existent}': - git rev-parse master >expected && - git rev-parse master^{/!-non-existent} >actual && - test_cmp expected actual - -ok 15 - ref^{/!-non-existent} - -expecting success of 1511.16 'ref^{/!-Changed}': - git rev-parse expref >expected && - git rev-parse master^{/!-Changed} >actual && - test_cmp expected actual - -ok 16 - ref^{/!-Changed} - -expecting success of 1511.17 'ref^{/!-!Exp}': - git rev-parse modref >expected && - git rev-parse expref^{/!-!Exp} >actual && - test_cmp expected actual - -ok 17 - ref^{/!-!Exp} - -# passed all 17 test(s) -1..17 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1513-rev-parse-prefix.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1513-rev-parse-prefix/.git/ -expecting success of 1513.1 'setup': - mkdir -p sub1/sub2 && - echo top >top && - echo file1 >sub1/file1 && - echo file2 >sub1/sub2/file2 && - git add top sub1/file1 sub1/sub2/file2 && - git commit -m commit - -[master (root-commit) 2a70803] commit - Author: A U Thor - 3 files changed, 3 insertions(+) - create mode 100644 sub1/file1 - create mode 100644 sub1/sub2/file2 - create mode 100644 top -ok 1 - setup - -expecting success of 1513.2 'empty prefix -- file': - git rev-parse --prefix "" -- top sub1/file1 >actual && - cat <<-\EOF >expected && - -- - top - sub1/file1 - EOF - test_cmp expected actual - -ok 2 - empty prefix -- file - -expecting success of 1513.3 'valid prefix -- file': - git rev-parse --prefix sub1/ -- file1 sub2/file2 >actual && - cat <<-\EOF >expected && - -- - sub1/file1 - sub1/sub2/file2 - EOF - test_cmp expected actual - -ok 3 - valid prefix -- file - -expecting success of 1513.4 'valid prefix -- ../file': - git rev-parse --prefix sub1/ -- ../top sub2/file2 >actual && - cat <<-\EOF >expected && - -- - sub1/../top - sub1/sub2/file2 - EOF - test_cmp expected actual - -ok 4 - valid prefix -- ../file - -expecting success of 1513.5 'empty prefix HEAD:./path': - git rev-parse --prefix "" HEAD:./top >actual && - git rev-parse HEAD:top >expected && - test_cmp expected actual - -ok 5 - empty prefix HEAD:./path - -expecting success of 1513.6 'valid prefix HEAD:./path': - git rev-parse --prefix sub1/ HEAD:./file1 >actual && - git rev-parse HEAD:sub1/file1 >expected && - test_cmp expected actual - -ok 6 - valid prefix HEAD:./path - -expecting success of 1513.7 'valid prefix HEAD:../path': - git rev-parse --prefix sub1/ HEAD:../top >actual && - git rev-parse HEAD:top >expected && - test_cmp expected actual - -ok 7 - valid prefix HEAD:../path - -expecting success of 1513.8 'prefix ignored with HEAD:top': - git rev-parse --prefix sub1/ HEAD:top >actual && - git rev-parse HEAD:top >expected && - test_cmp expected actual - -ok 8 - prefix ignored with HEAD:top - -expecting success of 1513.9 'disambiguate path with valid prefix': - git rev-parse --prefix sub1/ file1 >actual && - cat <<-\EOF >expected && - sub1/file1 - EOF - test_cmp expected actual - -ok 9 - disambiguate path with valid prefix - -expecting success of 1513.10 'file and refs with prefix': - git rev-parse --prefix sub1/ master file1 >actual && - cat <<-EOF >expected && - $(git rev-parse master) - sub1/file1 - EOF - test_cmp expected actual - -ok 10 - file and refs with prefix - -expecting success of 1513.11 'two-levels deep': - git rev-parse --prefix sub1/sub2/ -- file2 >actual && - cat <<-\EOF >expected && - -- - sub1/sub2/file2 - EOF - test_cmp expected actual - -ok 11 - two-levels deep - -# passed all 11 test(s) -1..11 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1512-rev-parse-disambiguation.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1512-rev-parse-disambiguation/.git/ -checking prerequisite: SHA1 - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SHA1" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-SHA1" && - case "$GIT_DEFAULT_HASH" in - sha1) true ;; - "") test $(git hash-object /dev/null) = e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 ;; - *) false ;; - esac - -) -prerequisite SHA1 ok -expecting success of 1512.1 'blob and tree': - test_tick && - ( - for i in 0 1 2 3 4 5 6 7 8 9 - do - echo $i - done && - echo && - echo b1rwzyc3 - ) >a0blgqsjc && - - # create one blob 0000000000b36 - git add a0blgqsjc && - - # create one tree 0000000000cdc - git write-tree - -0000000000cdcf04beb2fab69e65622616294984 -ok 1 - blob and tree - -expecting success of 1512.2 'warn ambiguity when no candidate matches type hint': - test_must_fail git rev-parse --verify 000000000^{commit} 2>actual && - test_i18ngrep "short SHA1 000000000 is ambiguous" actual - -checking prerequisite: C_LOCALE_OUTPUT - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false - -) -prerequisite C_LOCALE_OUTPUT ok -error: short SHA1 000000000 is ambiguous -ok 2 - warn ambiguity when no candidate matches type hint - -expecting success of 1512.3 'disambiguate tree-ish': - # feed tree-ish in an unambiguous way - git rev-parse --verify 0000000000cdc:a0blgqsjc && - - # ambiguous at the object name level, but there is only one - # such tree-ish (the other is a blob) - git rev-parse --verify 000000000:a0blgqsjc - -0000000000b36b6aa7ea4b75318ed078f55505c3 -0000000000b36b6aa7ea4b75318ed078f55505c3 -ok 3 - disambiguate tree-ish - -expecting success of 1512.4 'disambiguate blob': - sed -e "s/|$//" >patch <<-EOF && - diff --git a/frotz b/frotz - index 000000000..ffffff 100644 - --- a/frotz - +++ b/frotz - @@ -10,3 +10,4 @@ - 9 - | - b1rwzyc3 - +irwry - EOF - ( - GIT_INDEX_FILE=frotz && - export GIT_INDEX_FILE && - git apply --build-fake-ancestor frotz patch && - git cat-file blob :frotz >actual - ) && - test_cmp a0blgqsjc actual - -ok 4 - disambiguate blob - -expecting success of 1512.5 'disambiguate tree': - commit=$(echo "d7xm" | git commit-tree 000000000) && - # this commit is fffff2e and not ambiguous with the 00000* objects - test $(git rev-parse $commit^{tree}) = $(git rev-parse 0000000000cdc) - -ok 5 - disambiguate tree - -expecting success of 1512.6 'first commit': - # create one commit 0000000000e4f - git commit -m a2onsxbvj - -[master (root-commit) 0000000000e] a2onsxbvj - Author: A U Thor - 1 file changed, 12 insertions(+) - create mode 100644 a0blgqsjc -ok 6 - first commit - -expecting success of 1512.7 'disambiguate commit-ish': - # feed commit-ish in an unambiguous way - git rev-parse --verify 0000000000e4f^{commit} && - - # ambiguous at the object name level, but there is only one - # such commit (the others are tree and blob) - git rev-parse --verify 000000000^{commit} && - - # likewise - git rev-parse --verify 000000000^0 - -0000000000e4f9fbd19cf1e932319e5ad0d1d00b -0000000000e4f9fbd19cf1e932319e5ad0d1d00b -0000000000e4f9fbd19cf1e932319e5ad0d1d00b -ok 7 - disambiguate commit-ish - -expecting success of 1512.8 'disambiguate commit': - commit=$(echo "hoaxj" | git commit-tree 0000000000cdc -p 000000000) && - # this commit is ffffffd8 and not ambiguous with the 00000* objects - test $(git rev-parse $commit^) = $(git rev-parse 0000000000e4f) - -ok 8 - disambiguate commit - -expecting success of 1512.9 'log name1..name2 takes only commit-ishes on both ends': - # These are underspecified from the prefix-length point of view - # to disambiguate the commit with other objects, but there is only - # one commit that has 00000* prefix at this point. - git log 000000000..000000000 && - git log ..000000000 && - git log 000000000.. && - git log 000000000...000000000 && - git log ...000000000 && - git log 000000000... - -ok 9 - log name1..name2 takes only commit-ishes on both ends - -expecting success of 1512.10 'rev-parse name1..name2 takes only commit-ishes on both ends': - # Likewise. - git rev-parse 000000000..000000000 && - git rev-parse ..000000000 && - git rev-parse 000000000.. - -0000000000e4f9fbd19cf1e932319e5ad0d1d00b -^0000000000e4f9fbd19cf1e932319e5ad0d1d00b -0000000000e4f9fbd19cf1e932319e5ad0d1d00b -^0000000000e4f9fbd19cf1e932319e5ad0d1d00b -0000000000e4f9fbd19cf1e932319e5ad0d1d00b -^0000000000e4f9fbd19cf1e932319e5ad0d1d00b -ok 10 - rev-parse name1..name2 takes only commit-ishes on both ends - -expecting success of 1512.11 'git log takes only commit-ish': - # Likewise. - git log 000000000 - -commit 0000000000e4f9fbd19cf1e932319e5ad0d1d00b -Author: A U Thor -Date: Thu Apr 7 15:13:13 2005 -0700 - - a2onsxbvj -ok 11 - git log takes only commit-ish - -expecting success of 1512.12 'git reset takes only commit-ish': - # Likewise. - git reset 000000000 - -ok 12 - git reset takes only commit-ish - -expecting success of 1512.13 'first tag': - # create one tag 0000000000f8f - git tag -a -m j7cp83um v1.0.0 - -ok 13 - first tag - -checking known breakage of 1512.14 'two semi-ambiguous commit-ish': - # At this point, we have a tag 0000000000f8f that points - # at a commit 0000000000e4f, and a tree and a blob that - # share 0000000000 prefix with these tag and commit. - # - # Once the parser becomes ultra-smart, it could notice that - # 0000000000 before ^{commit} name many different objects, but - # that only two (HEAD and v1.0.0 tag) can be peeled to commit, - # and that peeling them down to commit yield the same commit - # without ambiguity. - git rev-parse --verify 0000000000^{commit} && - - # likewise - git log 0000000000..0000000000 && - git log ..0000000000 && - git log 0000000000.. && - git log 0000000000...0000000000 && - git log ...0000000000 && - git log 0000000000... - -error: short SHA1 0000000000 is ambiguous -hint: The candidates are: -hint: 0000000000f tag v1.0.0 -hint: 0000000000e commit 2005-04-07 - a2onsxbvj -fatal: Needed a single revision -not ok 14 - two semi-ambiguous commit-ish # TODO known breakage - -checking known breakage of 1512.15 'three semi-ambiguous tree-ish': - # Likewise for tree-ish. HEAD, v1.0.0 and HEAD^{tree} share - # the prefix but peeling them to tree yields the same thing - git rev-parse --verify 0000000000^{tree} - -error: short SHA1 0000000000 is ambiguous -hint: The candidates are: -hint: 0000000000f tag v1.0.0 -hint: 0000000000e commit 2005-04-07 - a2onsxbvj -hint: 0000000000c tree -fatal: Needed a single revision -not ok 15 - three semi-ambiguous tree-ish # TODO known breakage - -expecting success of 1512.16 'parse describe name': - # feed an unambiguous describe name - git rev-parse --verify v1.0.0-0-g0000000000e4f && - - # ambiguous at the object name level, but there is only one - # such commit (others are blob, tree and tag) - git rev-parse --verify v1.0.0-0-g000000000 - -0000000000e4f9fbd19cf1e932319e5ad0d1d00b -0000000000e4f9fbd19cf1e932319e5ad0d1d00b -ok 16 - parse describe name - -expecting success of 1512.17 'more history': - # commit 0000000000043 - git mv a0blgqsjc d12cr3h8t && - echo h62xsjeu >>d12cr3h8t && - git add d12cr3h8t && - - test_tick && - git commit -m czy8f73t && - - # commit 00000000008ec - git mv d12cr3h8t j000jmpzn && - echo j08bekfvt >>j000jmpzn && - git add j000jmpzn && - - test_tick && - git commit -m ioiley5o && - - # commit 0000000005b0 - git checkout v1.0.0^0 && - git mv a0blgqsjc f5518nwu && - - for i in h62xsjeu j08bekfvt kg7xflhm - do - echo $i - done >>f5518nwu && - git add f5518nwu && - - test_tick && - git commit -m b3wettvi && - side=$(git rev-parse HEAD) && - - # commit 000000000066 - git checkout master && +ok 1220 - ls-files --eol attr=-text ident aeol= core.autocrlf=true core.eol=native - # If you use recursive, merge will fail and you will need to - # clean up a0blgqsjc as well. If you use resolve, merge will - # succeed. - test_might_fail git merge --no-commit -s recursive $side && - git rm -f f5518nwu j000jmpzn && +expecting success of 0027.1221 'checkout attr=-text ident aeol= core.autocrlf=true core.eol=native file=LF': + compare_ws_file eol_native_crlf_true_attr_-text_ LF crlf_false_attr__LF.txt + +ok 1221 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=native file=LF - test_might_fail git rm -f a0blgqsjc && - ( - git cat-file blob $side:f5518nwu && - echo j3l0i9s6 - ) >ab2gs879 && - git add ab2gs879 && +expecting success of 0027.1222 'checkout attr=-text ident aeol= core.autocrlf=true core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_true_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 1222 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=native file=CRLF - test_tick && - git commit -m ad2uee +expecting success of 0027.1223 'checkout attr=-text ident aeol= core.autocrlf=true core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_true_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1223 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=native file=CRLF_mix_LF +expecting success of 0027.1224 'checkout attr=-text ident aeol= core.autocrlf=true core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_true_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1224 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=native file=LF_mix_CR -[master 00000000000] czy8f73t - Author: A U Thor - 1 file changed, 1 insertion(+) - rename a0blgqsjc => d12cr3h8t (76%) -[master 00000000008] ioiley5o - Author: A U Thor - 1 file changed, 1 insertion(+) - rename d12cr3h8t => j000jmpzn (79%) -Note: switching to 'v1.0.0^0'. +expecting success of 0027.1225 'checkout attr=-text ident aeol= core.autocrlf=true core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_true_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1225 - checkout attr=-text ident aeol= core.autocrlf=true core.eol=native file=LF_nul -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. +expecting success of 0027.1226 'ls-files --eol attr=-text ident aeol=lf core.autocrlf=true core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1226 - ls-files --eol attr=-text ident aeol=lf core.autocrlf=true core.eol=native -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: +expecting success of 0027.1227 'checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=native file=LF': + compare_ws_file eol_native_crlf_true_attr_-text_ LF crlf_false_attr__LF.txt + +ok 1227 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=native file=LF - git switch -c +expecting success of 0027.1228 'checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_true_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 1228 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=native file=CRLF -Or undo this operation with: +expecting success of 0027.1229 'checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_true_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1229 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=native file=CRLF_mix_LF - git switch - +expecting success of 0027.1230 'checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_true_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1230 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=native file=LF_mix_CR -Turn off this advice by setting config variable advice.detachedHead to false +expecting success of 0027.1231 'checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_true_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1231 - checkout attr=-text ident aeol=lf core.autocrlf=true core.eol=native file=LF_nul -HEAD is now at 0000000000e a2onsxbvj -[detached HEAD 0000000005] b3wettvi - Author: A U Thor - 1 file changed, 3 insertions(+) - rename a0blgqsjc => f5518nwu (51%) -Warning: you are leaving 1 commit behind, not connected to -any of your branches: +expecting success of 0027.1232 'ls-files --eol attr=-text ident aeol=crlf core.autocrlf=true core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1232 - ls-files --eol attr=-text ident aeol=crlf core.autocrlf=true core.eol=native - 0000000005 b3wettvi +expecting success of 0027.1233 'checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=native file=LF': + compare_ws_file eol_native_crlf_true_attr_-text_ LF crlf_false_attr__LF.txt + +ok 1233 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=native file=LF -If you want to keep it by creating a new branch, this may be a good time -to do so with: +expecting success of 0027.1234 'checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_true_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 1234 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=native file=CRLF - git branch 0000000005 +expecting success of 0027.1235 'checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_true_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1235 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=native file=CRLF_mix_LF -Switched to branch 'master' -Merging: -00000000008 ioiley5o -virtual 0000000005b0d85f595e1a98533157ea161798da -found 1 common ancestor: -0000000000e a2onsxbvj -CONFLICT (rename/rename): Rename "a0blgqsjc"->"j000jmpzn" in branch "HEAD" rename "a0blgqsjc"->"f5518nwu" in "0000000005b0d85f595e1a98533157ea161798da" -Auto-merging j000jmpzn and f5518nwu, both renamed from a0blgqsjc -Automatic merge failed; fix conflicts and then commit the result. -rm 'f5518nwu' -rm 'j000jmpzn' -rm 'a0blgqsjc' -[master 00000000006] ad2uee - Author: A U Thor -ok 17 - more history +expecting success of 0027.1236 'checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_true_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1236 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=native file=LF_mix_CR -checking known breakage of 1512.18 'parse describe name taking advantage of generation': - # ambiguous at the object name level, but there is only one - # such commit at generation 0 - git rev-parse --verify v1.0.0-0-g000000000 && +expecting success of 0027.1237 'checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_true_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1237 - checkout attr=-text ident aeol=crlf core.autocrlf=true core.eol=native file=LF_nul - # likewise for generation 2 and 4 - git rev-parse --verify v1.0.0-2-g000000000 && - git rev-parse --verify v1.0.0-4-g000000000 +expecting success of 0027.1238 'ls-files --eol attr=text ident aeol=lf core.autocrlf=true core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1238 - ls-files --eol attr=text ident aeol=lf core.autocrlf=true core.eol=native -fatal: Needed a single revision -not ok 18 - parse describe name taking advantage of generation # TODO known breakage +expecting success of 0027.1239 'checkout attr=text ident aeol=lf core.autocrlf=true core.eol=native file=LF': + compare_ws_file eol_native_crlf_true_attr_text_ LF crlf_false_attr__LF.txt + +ok 1239 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=native file=LF -expecting success of 1512.19 'parse describe name not ignoring ambiguity': - # ambiguous at the object name level, and there are two such - # commits at generation 1 - test_must_fail git rev-parse --verify v1.0.0-1-g000000000 +expecting success of 0027.1240 'checkout attr=text ident aeol=lf core.autocrlf=true core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 1240 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=native file=CRLF -fatal: Needed a single revision -ok 19 - parse describe name not ignoring ambiguity +expecting success of 0027.1241 'checkout attr=text ident aeol=lf core.autocrlf=true core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_true_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1241 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=native file=CRLF_mix_LF -expecting success of 1512.20 'ambiguous commit-ish': - # Now there are many commits that begin with the - # common prefix, none of these should pick one at - # random. They all should result in ambiguity errors. - test_must_fail git rev-parse --verify 00000000^{commit} && +expecting success of 0027.1242 'checkout attr=text ident aeol=lf core.autocrlf=true core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_true_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1242 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=native file=LF_mix_CR - # likewise - test_must_fail git log 000000000..000000000 && - test_must_fail git log ..000000000 && - test_must_fail git log 000000000.. && - test_must_fail git log 000000000...000000000 && - test_must_fail git log ...000000000 && - test_must_fail git log 000000000... +expecting success of 0027.1243 'checkout attr=text ident aeol=lf core.autocrlf=true core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_true_attr_text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1243 - checkout attr=text ident aeol=lf core.autocrlf=true core.eol=native file=LF_nul -error: short SHA1 00000000 is ambiguous -hint: The candidates are: -hint: 0000000000f8 tag v1.0.0 -hint: 000000000004 commit 2005-04-07 - czy8f73t -hint: 00000000006 commit 2005-04-07 - ad2uee -hint: 00000000008 commit 2005-04-07 - ioiley5o -hint: 0000000000e commit 2005-04-07 - a2onsxbvj -hint: 0000000005 commit 2005-04-07 - b3wettvi -fatal: Needed a single revision -error: short SHA1 000000000 is ambiguous -hint: The candidates are: -hint: 0000000000f8 tag v1.0.0 -hint: 000000000004 commit 2005-04-07 - czy8f73t -hint: 00000000006 commit 2005-04-07 - ad2uee -hint: 00000000008 commit 2005-04-07 - ioiley5o -hint: 0000000000e commit 2005-04-07 - a2onsxbvj -hint: 0000000005 commit 2005-04-07 - b3wettvi -fatal: ambiguous argument '000000000..000000000': unknown revision or path not in the working tree. -Use '--' to separate paths from revisions, like this: -'git [...] -- [...]' -error: short SHA1 000000000 is ambiguous -hint: The candidates are: -hint: 0000000000f8 tag v1.0.0 -hint: 000000000004 commit 2005-04-07 - czy8f73t -hint: 00000000006 commit 2005-04-07 - ad2uee -hint: 00000000008 commit 2005-04-07 - ioiley5o -hint: 0000000000e commit 2005-04-07 - a2onsxbvj -hint: 0000000005 commit 2005-04-07 - b3wettvi -fatal: ambiguous argument '..000000000': unknown revision or path not in the working tree. -Use '--' to separate paths from revisions, like this: -'git [...] -- [...]' -error: short SHA1 000000000 is ambiguous -hint: The candidates are: -hint: 0000000000f8 tag v1.0.0 -hint: 000000000004 commit 2005-04-07 - czy8f73t -hint: 00000000006 commit 2005-04-07 - ad2uee -hint: 00000000008 commit 2005-04-07 - ioiley5o -hint: 0000000000e commit 2005-04-07 - a2onsxbvj -hint: 0000000005 commit 2005-04-07 - b3wettvi -fatal: ambiguous argument '000000000..': unknown revision or path not in the working tree. -Use '--' to separate paths from revisions, like this: -'git [...] -- [...]' -error: short SHA1 000000000 is ambiguous -hint: The candidates are: -hint: 0000000000f8 tag v1.0.0 -hint: 000000000004 commit 2005-04-07 - czy8f73t -hint: 00000000006 commit 2005-04-07 - ad2uee -hint: 00000000008 commit 2005-04-07 - ioiley5o -hint: 0000000000e commit 2005-04-07 - a2onsxbvj -hint: 0000000005 commit 2005-04-07 - b3wettvi -fatal: ambiguous argument '000000000...000000000': unknown revision or path not in the working tree. -Use '--' to separate paths from revisions, like this: -'git [...] -- [...]' -error: short SHA1 000000000 is ambiguous -hint: The candidates are: -hint: 0000000000f8 tag v1.0.0 -hint: 000000000004 commit 2005-04-07 - czy8f73t -hint: 00000000006 commit 2005-04-07 - ad2uee -hint: 00000000008 commit 2005-04-07 - ioiley5o -hint: 0000000000e commit 2005-04-07 - a2onsxbvj -hint: 0000000005 commit 2005-04-07 - b3wettvi -fatal: ambiguous argument '...000000000': unknown revision or path not in the working tree. -Use '--' to separate paths from revisions, like this: -'git [...] -- [...]' -error: short SHA1 000000000 is ambiguous -hint: The candidates are: -hint: 0000000000f8 tag v1.0.0 -hint: 000000000004 commit 2005-04-07 - czy8f73t -hint: 00000000006 commit 2005-04-07 - ad2uee -hint: 00000000008 commit 2005-04-07 - ioiley5o -hint: 0000000000e commit 2005-04-07 - a2onsxbvj -hint: 0000000005 commit 2005-04-07 - b3wettvi -fatal: ambiguous argument '000000000...': unknown revision or path not in the working tree. -Use '--' to separate paths from revisions, like this: -'git [...] -- [...]' -ok 20 - ambiguous commit-ish +expecting success of 0027.1244 'ls-files --eol attr=text ident aeol=crlf core.autocrlf=true core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1244 - ls-files --eol attr=text ident aeol=crlf core.autocrlf=true core.eol=native -expecting success of 1512.21 'ambiguous tags peel to treeish': - test_must_fail git rev-parse 0000000000f^{tree} +expecting success of 0027.1245 'checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=native file=LF': + compare_ws_file eol_native_crlf_true_attr_text_ CRLF crlf_false_attr__LF.txt + +ok 1245 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=native file=LF -error: short SHA1 0000000000f is ambiguous -hint: The candidates are: -hint: 0000000000f8 tag v1.0.0 -hint: 0000000000fd tree -fatal: ambiguous argument '0000000000f^{tree}': unknown revision or path not in the working tree. -Use '--' to separate paths from revisions, like this: -'git [...] -- [...]' -0000000000f^{tree} -ok 21 - ambiguous tags peel to treeish +expecting success of 0027.1246 'checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 1246 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=native file=CRLF -expecting success of 1512.22 'rev-parse --disambiguate': - # The test creates 16 objects that share the prefix and two - # commits created by commit-tree in earlier tests share a - # different prefix. - git rev-parse --disambiguate=000000000 >actual && - test_line_count = 16 actual && - test "$(sed -e "s/^\(.........\).*/\1/" actual | sort -u)" = 000000000 +expecting success of 0027.1247 'checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt + +ok 1247 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=native file=CRLF_mix_LF -ok 22 - rev-parse --disambiguate +expecting success of 0027.1248 'checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_true_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1248 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=native file=LF_mix_CR -expecting success of 1512.23 'rev-parse --disambiguate drops duplicates': - git rev-parse --disambiguate=000000000 >expect && - git pack-objects .git/objects/pack/pack actual && - test_cmp expect actual +expecting success of 0027.1249 'checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_true_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt + +ok 1249 - checkout attr=text ident aeol=crlf core.autocrlf=true core.eol=native file=LF_nul -bdfb78b16a1cd3c3b1ebf4cca29330c92a46fc43 -ok 23 - rev-parse --disambiguate drops duplicates +expecting success of 0027.1250 'ls-files --eol attr=auto ident aeol=lf core.autocrlf=true core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1250 - ls-files --eol attr=auto ident aeol=lf core.autocrlf=true core.eol=native -expecting success of 1512.24 'ambiguous 40-hex ref': - TREE=$(git mktree err) = $REF && - grep "refname.*${REF}.*ambiguous" err +expecting success of 0027.1251 'checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=native file=LF': + compare_ws_file eol_native_crlf_true_attr_auto_ LF crlf_false_attr__LF.txt + +ok 1251 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=native file=LF -warning: refname '0000000000663a70a94c2b280b575855256220fa' is ambiguous. -ok 24 - ambiguous 40-hex ref +expecting success of 0027.1252 'checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_true_attr_auto_ CRLF crlf_false_attr__CRLF.txt + +ok 1252 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=native file=CRLF -expecting success of 1512.25 'ambiguous short sha1 ref': - TREE=$(git mktree err) = $VAL && - grep "refname.*${REF}.*ambiguous" err +expecting success of 0027.1253 'checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_true_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1253 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=native file=CRLF_mix_LF -warning: refname '00000000006' is ambiguous. -ok 25 - ambiguous short sha1 ref +expecting success of 0027.1254 'checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_true_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1254 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=native file=LF_mix_CR -expecting success of 1512.26 'ambiguity errors are not repeated (raw)': - test_must_fail git rev-parse 00000 2>stderr && - grep "is ambiguous" stderr >errors && - test_line_count = 1 errors +expecting success of 0027.1255 'checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_true_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1255 - checkout attr=auto ident aeol=lf core.autocrlf=true core.eol=native file=LF_nul -00000 -ok 26 - ambiguity errors are not repeated (raw) +expecting success of 0027.1256 'ls-files --eol attr=auto ident aeol=crlf core.autocrlf=true core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1256 - ls-files --eol attr=auto ident aeol=crlf core.autocrlf=true core.eol=native -expecting success of 1512.27 'ambiguity errors are not repeated (treeish)': - test_must_fail git rev-parse 00000:foo 2>stderr && - grep "is ambiguous" stderr >errors && - test_line_count = 1 errors +expecting success of 0027.1257 'checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=native file=LF': + compare_ws_file eol_native_crlf_true_attr_auto_ CRLF crlf_false_attr__LF.txt + +ok 1257 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=native file=LF -00000:foo -ok 27 - ambiguity errors are not repeated (treeish) +expecting success of 0027.1258 'checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_true_attr_auto_ CRLF crlf_false_attr__CRLF.txt + +ok 1258 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=native file=CRLF -expecting success of 1512.28 'ambiguity errors are not repeated (peel)': - test_must_fail git rev-parse 00000^{commit} 2>stderr && - grep "is ambiguous" stderr >errors && - test_line_count = 1 errors +expecting success of 0027.1259 'checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_true_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1259 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=native file=CRLF_mix_LF -00000^{commit} -ok 28 - ambiguity errors are not repeated (peel) +expecting success of 0027.1260 'checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_true_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1260 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=native file=LF_mix_CR -expecting success of 1512.29 'ambiguity hints': - test_must_fail git rev-parse 000000000 2>stderr && - grep ^hint: stderr >hints && - # 16 candidates, plus one intro line - test_line_count = 17 hints +expecting success of 0027.1261 'checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_true_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1261 - checkout attr=auto ident aeol=crlf core.autocrlf=true core.eol=native file=LF_nul -000000000 -ok 29 - ambiguity hints +expecting success of 0027.1262 'ls-files --eol attr=-text ident aeol= core.autocrlf=false core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1262 - ls-files --eol attr=-text ident aeol= core.autocrlf=false core.eol=native -expecting success of 1512.30 'ambiguity hints respect type': - test_must_fail git rev-parse 000000000^{commit} 2>stderr && - grep ^hint: stderr >hints && - # 5 commits, 1 tag (which is a committish), plus intro line - test_line_count = 7 hints +expecting success of 0027.1263 'checkout attr=-text ident aeol= core.autocrlf=false core.eol=native file=LF': + compare_ws_file eol_native_crlf_false_attr_-text_ LF crlf_false_attr__LF.txt + +ok 1263 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=native file=LF -000000000^{commit} -ok 30 - ambiguity hints respect type +expecting success of 0027.1264 'checkout attr=-text ident aeol= core.autocrlf=false core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_false_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 1264 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=native file=CRLF -expecting success of 1512.31 'failed type-selector still shows hint': - # these two blobs share the same prefix "ee3d", but neither - # will pass for a commit - echo 851 | git hash-object --stdin -w && - echo 872 | git hash-object --stdin -w && - test_must_fail git rev-parse ee3d^{commit} 2>stderr && - grep ^hint: stderr >hints && - test_line_count = 3 hints +expecting success of 0027.1265 'checkout attr=-text ident aeol= core.autocrlf=false core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_false_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1265 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=native file=CRLF_mix_LF -ee3de9906b5e9a4a369e91cba4235487a7e10351 -ee3d8abaa95a7395b373892b2593de2f426814e2 -ee3d^{commit} -ok 31 - failed type-selector still shows hint +expecting success of 0027.1266 'checkout attr=-text ident aeol= core.autocrlf=false core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_false_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1266 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=native file=LF_mix_CR -expecting success of 1512.32 'core.disambiguate config can prefer types': - # ambiguous between tree and tag - sha1=0000000000f && - test_must_fail git rev-parse $sha1 && - git rev-parse $sha1^{commit} && - git -c core.disambiguate=committish rev-parse $sha1 +expecting success of 0027.1267 'checkout attr=-text ident aeol= core.autocrlf=false core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_false_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1267 - checkout attr=-text ident aeol= core.autocrlf=false core.eol=native file=LF_nul -error: short SHA1 0000000000f is ambiguous -hint: The candidates are: -hint: 0000000000f8 tag v1.0.0 -hint: 0000000000fd tree -hint: 0000000000f2 blob -fatal: ambiguous argument '0000000000f': unknown revision or path not in the working tree. -Use '--' to separate paths from revisions, like this: -'git [...] -- [...]' -0000000000f -0000000000e4f9fbd19cf1e932319e5ad0d1d00b -0000000000f8f5507ab27a0d7bd3c75c0f64ffe0 -ok 32 - core.disambiguate config can prefer types +expecting success of 0027.1268 'ls-files --eol attr=-text ident aeol=lf core.autocrlf=false core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1268 - ls-files --eol attr=-text ident aeol=lf core.autocrlf=false core.eol=native -expecting success of 1512.33 'core.disambiguate does not override context': - # treeish ambiguous between tag and tree - test_must_fail \ - git -c core.disambiguate=committish rev-parse $sha1^{tree} +expecting success of 0027.1269 'checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=native file=LF': + compare_ws_file eol_native_crlf_false_attr_-text_ LF crlf_false_attr__LF.txt + +ok 1269 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=native file=LF -error: short SHA1 0000000000f is ambiguous -hint: The candidates are: -hint: 0000000000f8 tag v1.0.0 -hint: 0000000000fd tree -fatal: ambiguous argument '0000000000f^{tree}': unknown revision or path not in the working tree. -Use '--' to separate paths from revisions, like this: -'git [...] -- [...]' -0000000000f^{tree} -ok 33 - core.disambiguate does not override context +expecting success of 0027.1270 'checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_false_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 1270 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=native file=CRLF -expecting success of 1512.34 'ambiguous commits are printed by type first, then hash order': - test_must_fail git rev-parse 0000 2>stderr && - grep ^hint: stderr >hints && - grep 0000 hints >objects && - cat >expected <<-\EOF && - tag - commit - tree - blob - EOF - awk "{print \$3}" objects.types && - uniq objects.types.uniq && - test_cmp expected objects.types.uniq && - for type in tag commit tree blob - do - grep $type objects >$type.objects && - sort $type.objects >$type.objects.sorted && - test_cmp $type.objects.sorted $type.objects - done +expecting success of 0027.1271 'checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_false_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1271 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=native file=CRLF_mix_LF -0000 -ok 34 - ambiguous commits are printed by type first, then hash order +expecting success of 0027.1272 'checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_false_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1272 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=native file=LF_mix_CR -expecting success of 1512.35 'cat-file --batch and --batch-check show ambiguous': - echo "0000 ambiguous" >expect && - echo 0000 | git cat-file --batch-check >actual 2>err && - test_cmp expect actual && - test_i18ngrep hint: err && - echo 0000 | git cat-file --batch >actual 2>err && - test_cmp expect actual && - test_i18ngrep hint: err +expecting success of 0027.1273 'checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_false_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1273 - checkout attr=-text ident aeol=lf core.autocrlf=false core.eol=native file=LF_nul -hint: The candidates are: -hint: 0000000000f8 tag v1.0.0 -hint: 000000000004 commit 2005-04-07 - czy8f73t -hint: 00000000006 commit 2005-04-07 - ad2uee -hint: 00000000008 commit 2005-04-07 - ioiley5o -hint: 0000000000e commit 2005-04-07 - a2onsxbvj -hint: 0000000005 commit 2005-04-07 - b3wettvi -hint: 000000000002 tree -hint: 00000000005 tree -hint: 00000000009 tree -hint: 0000000000c tree -hint: 0000000000fd tree -hint: 00000000001 blob -hint: 00000000003 blob -hint: 0000000000a blob -hint: 0000000000b blob -hint: 0000000000f2 blob -hint: The candidates are: -hint: 0000000000f8 tag v1.0.0 -hint: 000000000004 commit 2005-04-07 - czy8f73t -hint: 00000000006 commit 2005-04-07 - ad2uee -hint: 00000000008 commit 2005-04-07 - ioiley5o -hint: 0000000000e commit 2005-04-07 - a2onsxbvj -hint: 0000000005 commit 2005-04-07 - b3wettvi -hint: 000000000002 tree -hint: 00000000005 tree -hint: 00000000009 tree -hint: 0000000000c tree -hint: 0000000000fd tree -hint: 00000000001 blob -hint: 00000000003 blob -hint: 0000000000a blob -hint: 0000000000b blob -hint: 0000000000f2 blob -ok 35 - cat-file --batch and --batch-check show ambiguous +expecting success of 0027.1274 'ls-files --eol attr=-text ident aeol=crlf core.autocrlf=false core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1274 - ls-files --eol attr=-text ident aeol=crlf core.autocrlf=false core.eol=native -# still have 3 known breakage(s) -# passed all remaining 32 test(s) -1..35 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1514-rev-parse-push.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1514-rev-parse-push/.git/ -expecting success of 1514.1 'setup': - git init --bare parent.git && - git init --bare other.git && - git remote add origin parent.git && - git remote add other other.git && - test_commit base && - git push origin HEAD && - git branch --set-upstream-to=origin/master master && - git branch --track topic origin/master && - git push origin topic && - git push other topic +expecting success of 0027.1275 'checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=native file=LF': + compare_ws_file eol_native_crlf_false_attr_-text_ LF crlf_false_attr__LF.txt + +ok 1275 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=native file=LF -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1514-rev-parse-push/parent.git/ -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1514-rev-parse-push/other.git/ -[master (root-commit) d1ff1c9] base - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 base.t -To parent.git - * [new branch] HEAD -> master -Branch 'master' set up to track remote branch 'master' from 'origin'. -Branch 'topic' set up to track remote branch 'master' from 'origin'. -To parent.git - * [new branch] topic -> topic -To other.git - * [new branch] topic -> topic -ok 1 - setup +expecting success of 0027.1276 'checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_false_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 1276 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=native file=CRLF -expecting success of 1514.2 '@{push} with default=nothing': - test_config push.default nothing && - test_must_fail git rev-parse master@{push} && - test_must_fail git rev-parse master@{PUSH} && - test_must_fail git rev-parse master@{PuSH} +expecting success of 0027.1277 'checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_false_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1277 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=native file=CRLF_mix_LF -fatal: push has no destination (push.default is 'nothing') -fatal: push has no destination (push.default is 'nothing') -fatal: push has no destination (push.default is 'nothing') -ok 2 - @{push} with default=nothing +expecting success of 0027.1278 'checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_false_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1278 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=native file=LF_mix_CR -expecting success of 1514.3 '@{push} with default=simple': - test_config push.default simple && - resolve master@{push} refs/remotes/origin/master && - resolve master@{PUSH} refs/remotes/origin/master && - resolve master@{pUSh} refs/remotes/origin/master +expecting success of 0027.1279 'checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_false_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1279 - checkout attr=-text ident aeol=crlf core.autocrlf=false core.eol=native file=LF_nul -ok 3 - @{push} with default=simple +expecting success of 0027.1280 'ls-files --eol attr=text ident aeol=lf core.autocrlf=false core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1280 - ls-files --eol attr=text ident aeol=lf core.autocrlf=false core.eol=native -expecting success of 1514.4 'triangular @{push} fails with default=simple': - test_config push.default simple && - test_must_fail git rev-parse topic@{push} +expecting success of 0027.1281 'checkout attr=text ident aeol=lf core.autocrlf=false core.eol=native file=LF': + compare_ws_file eol_native_crlf_false_attr_text_ LF crlf_false_attr__LF.txt + +ok 1281 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=native file=LF -fatal: cannot resolve 'simple' push to a single destination -ok 4 - triangular @{push} fails with default=simple +expecting success of 0027.1282 'checkout attr=text ident aeol=lf core.autocrlf=false core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 1282 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=native file=CRLF -expecting success of 1514.5 '@{push} with default=current': - test_config push.default current && - resolve topic@{push} refs/remotes/origin/topic +expecting success of 0027.1283 'checkout attr=text ident aeol=lf core.autocrlf=false core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_false_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1283 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=native file=CRLF_mix_LF -ok 5 - @{push} with default=current +expecting success of 0027.1284 'checkout attr=text ident aeol=lf core.autocrlf=false core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_false_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1284 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=native file=LF_mix_CR -expecting success of 1514.6 '@{push} with default=matching': - test_config push.default matching && - resolve topic@{push} refs/remotes/origin/topic +expecting success of 0027.1285 'checkout attr=text ident aeol=lf core.autocrlf=false core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_false_attr_text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1285 - checkout attr=text ident aeol=lf core.autocrlf=false core.eol=native file=LF_nul -ok 6 - @{push} with default=matching +expecting success of 0027.1286 'ls-files --eol attr=text ident aeol=crlf core.autocrlf=false core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1286 - ls-files --eol attr=text ident aeol=crlf core.autocrlf=false core.eol=native -expecting success of 1514.7 '@{push} with pushremote defined': - test_config push.default current && - test_config branch.topic.pushremote other && - resolve topic@{push} refs/remotes/other/topic +expecting success of 0027.1287 'checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=native file=LF': + compare_ws_file eol_native_crlf_false_attr_text_ CRLF crlf_false_attr__LF.txt + +ok 1287 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=native file=LF -ok 7 - @{push} with pushremote defined +expecting success of 0027.1288 'checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 1288 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=native file=CRLF -expecting success of 1514.8 '@{push} with push refspecs': - test_config push.default nothing && - test_config remote.origin.push refs/heads/*:refs/heads/magic/* && - git push && - resolve topic@{push} refs/remotes/origin/magic/topic +expecting success of 0027.1289 'checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt + +ok 1289 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=native file=CRLF_mix_LF -To parent.git - * [new branch] master -> magic/master - * [new branch] topic -> magic/topic -ok 8 - @{push} with push refspecs +expecting success of 0027.1290 'checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_false_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1290 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=native file=LF_mix_CR -expecting success of 1514.9 'resolving @{push} fails with a detached HEAD': - git checkout HEAD^0 && - test_when_finished "git checkout -" && - test_must_fail git rev-parse @{push} +expecting success of 0027.1291 'checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_false_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt + +ok 1291 - checkout attr=text ident aeol=crlf core.autocrlf=false core.eol=native file=LF_nul -Note: switching to 'HEAD^0'. +expecting success of 0027.1292 'ls-files --eol attr=auto ident aeol=lf core.autocrlf=false core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1292 - ls-files --eol attr=auto ident aeol=lf core.autocrlf=false core.eol=native -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. +expecting success of 0027.1293 'checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=native file=LF': + compare_ws_file eol_native_crlf_false_attr_auto_ LF crlf_false_attr__LF.txt + +ok 1293 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=native file=LF -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: +expecting success of 0027.1294 'checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_false_attr_auto_ CRLF crlf_false_attr__CRLF.txt + +ok 1294 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=native file=CRLF - git switch -c +expecting success of 0027.1295 'checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_false_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1295 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=native file=CRLF_mix_LF -Or undo this operation with: +expecting success of 0027.1296 'checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_false_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1296 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=native file=LF_mix_CR - git switch - +expecting success of 0027.1297 'checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_false_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1297 - checkout attr=auto ident aeol=lf core.autocrlf=false core.eol=native file=LF_nul -Turn off this advice by setting config variable advice.detachedHead to false +expecting success of 0027.1298 'ls-files --eol attr=auto ident aeol=crlf core.autocrlf=false core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1298 - ls-files --eol attr=auto ident aeol=crlf core.autocrlf=false core.eol=native -HEAD is now at d1ff1c9 base -fatal: HEAD does not point to a branch -Switched to branch 'master' -Your branch is up to date with 'origin/master'. -ok 9 - resolving @{push} fails with a detached HEAD +expecting success of 0027.1299 'checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=native file=LF': + compare_ws_file eol_native_crlf_false_attr_auto_ CRLF crlf_false_attr__LF.txt + +ok 1299 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=native file=LF -# passed all 9 test(s) -1..9 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1515-rev-parse-outside-repo.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1515-rev-parse-outside-repo/.git/ -expecting success of 1515.1 'set up non-repo directory': - GIT_CEILING_DIRECTORIES=$(pwd) && - export GIT_CEILING_DIRECTORIES && - mkdir non-repo && - cd non-repo && - # confirm that git does not find a repo - test_must_fail git rev-parse --git-dir +expecting success of 0027.1300 'checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_false_attr_auto_ CRLF crlf_false_attr__CRLF.txt + +ok 1300 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=native file=CRLF -fatal: not a git repository (or any of the parent directories): .git -ok 1 - set up non-repo directory +expecting success of 0027.1301 'checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_false_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1301 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=native file=CRLF_mix_LF -expecting success of 1515.2 'rev-parse --sq-quote': - dump_args "$tricky" easy >expect && - eval "dump_args $(git rev-parse --sq-quote "$tricky" easy)" >actual && - test_cmp expect actual +expecting success of 0027.1302 'checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_false_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1302 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=native file=LF_mix_CR -ok 2 - rev-parse --sq-quote +expecting success of 0027.1303 'checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_false_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1303 - checkout attr=auto ident aeol=crlf core.autocrlf=false core.eol=native file=LF_nul -expecting success of 1515.3 'rev-parse --local-env-vars': - git rev-parse --local-env-vars >actual && - # we do not want to depend on the complete list here, - # so just look for something plausible - grep ^GIT_DIR actual +expecting success of 0027.1304 'ls-files --eol attr=-text ident aeol= core.autocrlf=input core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1304 - ls-files --eol attr=-text ident aeol= core.autocrlf=input core.eol=native -GIT_DIR -ok 3 - rev-parse --local-env-vars +expecting success of 0027.1305 'checkout attr=-text ident aeol= core.autocrlf=input core.eol=native file=LF': + compare_ws_file eol_native_crlf_input_attr_-text_ LF crlf_false_attr__LF.txt + +ok 1305 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=native file=LF -expecting success of 1515.4 'rev-parse --resolve-git-dir': - git init --separate-git-dir repo dir && - test_must_fail git rev-parse --resolve-git-dir . && - echo "$(pwd)/repo" >expect && - git rev-parse --resolve-git-dir dir/.git >actual && - test_cmp expect actual +expecting success of 0027.1306 'checkout attr=-text ident aeol= core.autocrlf=input core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_input_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 1306 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=native file=CRLF -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1515-rev-parse-outside-repo/non-repo/repo/ -fatal: not a gitdir '.' -ok 4 - rev-parse --resolve-git-dir +expecting success of 0027.1307 'checkout attr=-text ident aeol= core.autocrlf=input core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_input_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1307 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=native file=CRLF_mix_LF -# passed all 4 test(s) -1..4 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1601-index-bogus.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1601-index-bogus/.git/ -expecting success of 1601.1 'create tree with null sha1': - tree=$(printf "160000 commit $ZERO_OID\\tbroken\\n" | git mktree) +expecting success of 0027.1308 'checkout attr=-text ident aeol= core.autocrlf=input core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_input_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1308 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=native file=LF_mix_CR -ok 1 - create tree with null sha1 +expecting success of 0027.1309 'checkout attr=-text ident aeol= core.autocrlf=input core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_input_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1309 - checkout attr=-text ident aeol= core.autocrlf=input core.eol=native file=LF_nul -expecting success of 1601.2 'read-tree refuses to read null sha1': - test_must_fail git read-tree $tree +expecting success of 0027.1310 'ls-files --eol attr=-text ident aeol=lf core.autocrlf=input core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1310 - ls-files --eol attr=-text ident aeol=lf core.autocrlf=input core.eol=native -error: invalid object 160000 0000000000000000000000000000000000000000 for 'broken' -error: cache entry has null sha1: broken -fatal: unable to write new index file -ok 2 - read-tree refuses to read null sha1 +expecting success of 0027.1311 'checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=native file=LF': + compare_ws_file eol_native_crlf_input_attr_-text_ LF crlf_false_attr__LF.txt + +ok 1311 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=native file=LF -expecting success of 1601.3 'GIT_ALLOW_NULL_SHA1 overrides refusal': - GIT_ALLOW_NULL_SHA1=1 git read-tree $tree +expecting success of 0027.1312 'checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_input_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 1312 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=native file=CRLF -error: invalid object 160000 0000000000000000000000000000000000000000 for 'broken' -warning: cache entry has null sha1: broken -ok 3 - GIT_ALLOW_NULL_SHA1 overrides refusal +expecting success of 0027.1313 'checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_input_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1313 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=native file=CRLF_mix_LF -expecting success of 1601.4 'git write-tree refuses to write null sha1': - test_must_fail git write-tree +expecting success of 0027.1314 'checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_input_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1314 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=native file=LF_mix_CR -error: invalid object 160000 0000000000000000000000000000000000000000 for 'broken' -fatal: git-write-tree: error building trees -ok 4 - git write-tree refuses to write null sha1 +expecting success of 0027.1315 'checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_input_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1315 - checkout attr=-text ident aeol=lf core.autocrlf=input core.eol=native file=LF_nul -# passed all 4 test(s) -1..4 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1600-index.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1600-index/.git/ -expecting success of 1600.1 'setup': - echo 1 >a +expecting success of 0027.1316 'ls-files --eol attr=-text ident aeol=crlf core.autocrlf=input core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1316 - ls-files --eol attr=-text ident aeol=crlf core.autocrlf=input core.eol=native -ok 1 - setup +expecting success of 0027.1317 'checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=native file=LF': + compare_ws_file eol_native_crlf_input_attr_-text_ LF crlf_false_attr__LF.txt + +ok 1317 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=native file=LF -expecting success of 1600.2 'bogus GIT_INDEX_VERSION issues warning': - ( - rm -f .git/index && - GIT_INDEX_VERSION=2bogus && - export GIT_INDEX_VERSION && - git add a 2>&1 | sed "s/[0-9]//" >actual.err && - sed -e "s/ Z$/ /" <<-\EOF >expect.err && - warning: GIT_INDEX_VERSION set, but the value is invalid. - Using version Z - EOF - test_i18ncmp expect.err actual.err - ) +expecting success of 0027.1318 'checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_input_attr_-text_ CRLF crlf_false_attr__CRLF.txt + +ok 1318 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=native file=CRLF -checking prerequisite: C_LOCALE_OUTPUT +expecting success of 0027.1319 'checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_input_attr_-text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1319 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=native file=CRLF_mix_LF -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false +expecting success of 0027.1320 'checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_input_attr_-text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1320 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=native file=LF_mix_CR -) -prerequisite C_LOCALE_OUTPUT ok -ok 2 - bogus GIT_INDEX_VERSION issues warning +expecting success of 0027.1321 'checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_input_attr_-text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1321 - checkout attr=-text ident aeol=crlf core.autocrlf=input core.eol=native file=LF_nul -expecting success of 1600.3 'out of bounds GIT_INDEX_VERSION issues warning': - ( - rm -f .git/index && - GIT_INDEX_VERSION=1 && - export GIT_INDEX_VERSION && - git add a 2>&1 | sed "s/[0-9]//" >actual.err && - sed -e "s/ Z$/ /" <<-\EOF >expect.err && - warning: GIT_INDEX_VERSION set, but the value is invalid. - Using version Z +expecting success of 0027.1322 'ls-files --eol attr=text ident aeol=lf core.autocrlf=input core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt EOF - test_i18ncmp expect.err actual.err - ) + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1322 - ls-files --eol attr=text ident aeol=lf core.autocrlf=input core.eol=native -checking prerequisite: C_LOCALE_OUTPUT +expecting success of 0027.1323 'checkout attr=text ident aeol=lf core.autocrlf=input core.eol=native file=LF': + compare_ws_file eol_native_crlf_input_attr_text_ LF crlf_false_attr__LF.txt + +ok 1323 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=native file=LF -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false +expecting success of 0027.1324 'checkout attr=text ident aeol=lf core.autocrlf=input core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 1324 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=native file=CRLF -) -prerequisite C_LOCALE_OUTPUT ok -ok 3 - out of bounds GIT_INDEX_VERSION issues warning +expecting success of 0027.1325 'checkout attr=text ident aeol=lf core.autocrlf=input core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_input_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1325 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=native file=CRLF_mix_LF -expecting success of 1600.4 'no warning with bogus GIT_INDEX_VERSION and existing index': - ( - GIT_INDEX_VERSION=1 && - export GIT_INDEX_VERSION && - git add a 2>actual.err && - test_must_be_empty actual.err - ) +expecting success of 0027.1326 'checkout attr=text ident aeol=lf core.autocrlf=input core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_input_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1326 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=native file=LF_mix_CR -ok 4 - no warning with bogus GIT_INDEX_VERSION and existing index +expecting success of 0027.1327 'checkout attr=text ident aeol=lf core.autocrlf=input core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_input_attr_text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1327 - checkout attr=text ident aeol=lf core.autocrlf=input core.eol=native file=LF_nul -expecting success of 1600.5 'out of bounds index.version issues warning': - ( - sane_unset GIT_INDEX_VERSION && - rm -f .git/index && - git config --add index.version 1 && - git add a 2>&1 | sed "s/[0-9]//" >actual.err && - sed -e "s/ Z$/ /" <<-\EOF >expect.err && - warning: index.version set, but the value is invalid. - Using version Z +expecting success of 0027.1328 'ls-files --eol attr=text ident aeol=crlf core.autocrlf=input core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt EOF - test_i18ncmp expect.err actual.err - ) - -checking prerequisite: C_LOCALE_OUTPUT - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1328 - ls-files --eol attr=text ident aeol=crlf core.autocrlf=input core.eol=native -) -prerequisite C_LOCALE_OUTPUT ok -ok 5 - out of bounds index.version issues warning +expecting success of 0027.1329 'checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=native file=LF': + compare_ws_file eol_native_crlf_input_attr_text_ CRLF crlf_false_attr__LF.txt + +ok 1329 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=native file=LF -expecting success of 1600.6 'index version config precedence': - test_index_version 0 false 0 2 && - test_index_version 2 false 0 2 && - test_index_version 3 false 0 2 && - test_index_version 4 false 0 4 && - test_index_version 2 false 4 4 && - test_index_version 2 true 0 2 && - test_index_version 0 true 0 4 && - test_index_version 0 true 2 2 +expecting success of 0027.1330 'checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 1330 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=native file=CRLF -ok 6 - index version config precedence +expecting success of 0027.1331 'checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt + +ok 1331 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=native file=CRLF_mix_LF -# passed all 6 test(s) -1..6 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1700-split-index.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1700-split-index/.git/ -expecting success of 1700.1 'setup': - test_oid_cache <<-EOF - own_v3 sha1:8299b0bcd1ac364e5f1d7768efb62fa2da79a339 - own_v3 sha256:38a6d2925e3eceec33ad7b34cbff4e0086caa0daf28f31e51f5bd94b4a7af86b +expecting success of 0027.1332 'checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_input_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1332 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=native file=LF_mix_CR - base_v3 sha1:39d890139ee5356c7ef572216cebcd27aa41f9df - base_v3 sha256:c9baeadf905112bf6c17aefbd7d02267afd70ded613c30cafed2d40cb506e1ed +expecting success of 0027.1333 'checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_input_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt + +ok 1333 - checkout attr=text ident aeol=crlf core.autocrlf=input core.eol=native file=LF_nul - own_v4 sha1:432ef4b63f32193984f339431fd50ca796493569 - own_v4 sha256:6738ac6319c25b694afa7bcc313deb182d1a59b68bf7a47b4296de83478c0420 +expecting success of 0027.1334 'ls-files --eol attr=auto ident aeol=lf core.autocrlf=input core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1334 - ls-files --eol attr=auto ident aeol=lf core.autocrlf=input core.eol=native - base_v4 sha1:508851a7f0dfa8691e9f69c7f055865389012491 - base_v4 sha256:3177d4adfdd4b6904f7e921d91d715a471c0dde7cf6a4bba574927f02b699508 - EOF +expecting success of 0027.1335 'checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=native file=LF': + compare_ws_file eol_native_crlf_input_attr_auto_ LF crlf_false_attr__LF.txt + +ok 1335 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=native file=LF -ok 1 - setup +expecting success of 0027.1336 'checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_input_attr_auto_ CRLF crlf_false_attr__CRLF.txt + +ok 1336 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=native file=CRLF -expecting success of 1700.2 'enable split index': - git config splitIndex.maxPercentChange 100 && - git update-index --split-index && - test-tool dump-split-index .git/index >actual && - indexversion=$(test-tool index-version <.git/index) && +expecting success of 0027.1337 'checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_input_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1337 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=native file=CRLF_mix_LF - # NEEDSWORK: Stop hard-coding checksums. - if test "$indexversion" = "4" - then - own=$(test_oid own_v4) - base=$(test_oid base_v4) - else - own=$(test_oid own_v3) - base=$(test_oid base_v3) - fi && +expecting success of 0027.1338 'checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_input_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1338 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=native file=LF_mix_CR - cat >expect <<-EOF && - own $own - base $base - replacements: - deletions: - EOF - test_cmp expect actual +expecting success of 0027.1339 'checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_input_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1339 - checkout attr=auto ident aeol=lf core.autocrlf=input core.eol=native file=LF_nul -ok 2 - enable split index +expecting success of 0027.1340 'ls-files --eol attr=auto ident aeol=crlf core.autocrlf=input core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1340 - ls-files --eol attr=auto ident aeol=crlf core.autocrlf=input core.eol=native -expecting success of 1700.3 'add one file': - create_non_racy_file one && - git update-index --add one && - git ls-files --stage >ls-files.actual && - cat >ls-files.expect <<-EOF && - 100644 $EMPTY_BLOB 0 one - EOF - test_cmp ls-files.expect ls-files.actual && +expecting success of 0027.1341 'checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=native file=LF': + compare_ws_file eol_native_crlf_input_attr_auto_ CRLF crlf_false_attr__LF.txt + +ok 1341 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=native file=LF - test-tool dump-split-index .git/index | sed "/^own/d" >actual && - cat >expect <<-EOF && - base $base - 100644 $EMPTY_BLOB 0 one - replacements: - deletions: - EOF - test_cmp expect actual +expecting success of 0027.1342 'checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_input_attr_auto_ CRLF crlf_false_attr__CRLF.txt + +ok 1342 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=native file=CRLF -ok 3 - add one file +expecting success of 0027.1343 'checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_input_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1343 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=native file=CRLF_mix_LF -expecting success of 1700.4 'disable split index': - git update-index --no-split-index && - git ls-files --stage >ls-files.actual && - cat >ls-files.expect <<-EOF && - 100644 $EMPTY_BLOB 0 one - EOF - test_cmp ls-files.expect ls-files.actual && +expecting success of 0027.1344 'checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_input_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1344 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=native file=LF_mix_CR - BASE=$(test-tool dump-split-index .git/index | sed -n "s/^own/base/p") && - test-tool dump-split-index .git/index | sed "/^own/d" >actual && - cat >expect <<-EOF && - not a split index - EOF - test_cmp expect actual +expecting success of 0027.1345 'checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_input_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1345 - checkout attr=auto ident aeol=crlf core.autocrlf=input core.eol=native file=LF_nul -ok 4 - disable split index +expecting success of 0027.1346 'ls-files --eol attr= ident aeol= core.autocrlf=false core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1346 - ls-files --eol attr= ident aeol= core.autocrlf=false core.eol=native -expecting success of 1700.5 'enable split index again, "one" now belongs to base index"': - git update-index --split-index && - git ls-files --stage >ls-files.actual && - cat >ls-files.expect <<-EOF && - 100644 $EMPTY_BLOB 0 one - EOF - test_cmp ls-files.expect ls-files.actual && +expecting success of 0027.1347 'checkout attr= ident aeol= core.autocrlf=false core.eol=native file=LF': + compare_ws_file eol_native_crlf_false_attr__ LF crlf_false_attr__LF.txt + +ok 1347 - checkout attr= ident aeol= core.autocrlf=false core.eol=native file=LF - test-tool dump-split-index .git/index | sed "/^own/d" >actual && - cat >expect <<-EOF && - $BASE - replacements: - deletions: - EOF - test_cmp expect actual +expecting success of 0027.1348 'checkout attr= ident aeol= core.autocrlf=false core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_false_attr__ CRLF crlf_false_attr__CRLF.txt + +ok 1348 - checkout attr= ident aeol= core.autocrlf=false core.eol=native file=CRLF -ok 5 - enable split index again, "one" now belongs to base index" +expecting success of 0027.1349 'checkout attr= ident aeol= core.autocrlf=false core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_false_attr__ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1349 - checkout attr= ident aeol= core.autocrlf=false core.eol=native file=CRLF_mix_LF -expecting success of 1700.6 'modify original file, base index untouched': - echo modified | create_non_racy_file one && - file1_blob=$(git hash-object one) && - git update-index one && - git ls-files --stage >ls-files.actual && - cat >ls-files.expect <<-EOF && - 100644 $file1_blob 0 one - EOF - test_cmp ls-files.expect ls-files.actual && +expecting success of 0027.1350 'checkout attr= ident aeol= core.autocrlf=false core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_false_attr__ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1350 - checkout attr= ident aeol= core.autocrlf=false core.eol=native file=LF_mix_CR - test-tool dump-split-index .git/index | sed "/^own/d" >actual && - q_to_tab >expect <<-EOF && - $BASE - 100644 $file1_blob 0Q - replacements: 0 - deletions: - EOF - test_cmp expect actual +expecting success of 0027.1351 'checkout attr= ident aeol= core.autocrlf=false core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_false_attr__ LF_nul crlf_false_attr__LF_nul.txt + +ok 1351 - checkout attr= ident aeol= core.autocrlf=false core.eol=native file=LF_nul -ok 6 - modify original file, base index untouched +expecting success of 0027.1352 'ls-files --eol attr= ident aeol= core.autocrlf=true core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1352 - ls-files --eol attr= ident aeol= core.autocrlf=true core.eol=native -expecting success of 1700.7 'add another file, which stays index': - create_non_racy_file two && - git update-index --add two && - git ls-files --stage >ls-files.actual && - cat >ls-files.expect <<-EOF && - 100644 $file1_blob 0 one - 100644 $EMPTY_BLOB 0 two - EOF - test_cmp ls-files.expect ls-files.actual && +expecting success of 0027.1353 'checkout attr= ident aeol= core.autocrlf=true core.eol=native file=LF': + compare_ws_file eol_native_crlf_true_attr__ CRLF crlf_false_attr__LF.txt + +ok 1353 - checkout attr= ident aeol= core.autocrlf=true core.eol=native file=LF - test-tool dump-split-index .git/index | sed "/^own/d" >actual && - q_to_tab >expect <<-EOF && - $BASE - 100644 $file1_blob 0Q - 100644 $EMPTY_BLOB 0 two - replacements: 0 - deletions: - EOF - test_cmp expect actual +expecting success of 0027.1354 'checkout attr= ident aeol= core.autocrlf=true core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_true_attr__ CRLF crlf_false_attr__CRLF.txt + +ok 1354 - checkout attr= ident aeol= core.autocrlf=true core.eol=native file=CRLF -ok 7 - add another file, which stays index +expecting success of 0027.1355 'checkout attr= ident aeol= core.autocrlf=true core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_true_attr__ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1355 - checkout attr= ident aeol= core.autocrlf=true core.eol=native file=CRLF_mix_LF -expecting success of 1700.8 'remove file not in base index': - git update-index --force-remove two && - git ls-files --stage >ls-files.actual && - cat >ls-files.expect <<-EOF && - 100644 $file1_blob 0 one - EOF - test_cmp ls-files.expect ls-files.actual && +expecting success of 0027.1356 'checkout attr= ident aeol= core.autocrlf=true core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_true_attr__ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1356 - checkout attr= ident aeol= core.autocrlf=true core.eol=native file=LF_mix_CR - test-tool dump-split-index .git/index | sed "/^own/d" >actual && - q_to_tab >expect <<-EOF && - $BASE - 100644 $file1_blob 0Q - replacements: 0 - deletions: - EOF - test_cmp expect actual +expecting success of 0027.1357 'checkout attr= ident aeol= core.autocrlf=true core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_true_attr__ LF_nul crlf_false_attr__LF_nul.txt + +ok 1357 - checkout attr= ident aeol= core.autocrlf=true core.eol=native file=LF_nul -ok 8 - remove file not in base index +expecting success of 0027.1358 'ls-files --eol attr=auto ident aeol= core.autocrlf=true core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1358 - ls-files --eol attr=auto ident aeol= core.autocrlf=true core.eol=native -expecting success of 1700.9 'remove file in base index': - git update-index --force-remove one && - git ls-files --stage >ls-files.actual && - test_must_be_empty ls-files.actual && +expecting success of 0027.1359 'checkout attr=auto ident aeol= core.autocrlf=true core.eol=native file=LF': + compare_ws_file eol_native_crlf_true_attr_auto_ CRLF crlf_false_attr__LF.txt + +ok 1359 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=native file=LF - test-tool dump-split-index .git/index | sed "/^own/d" >actual && - cat >expect <<-EOF && - $BASE - replacements: - deletions: 0 - EOF - test_cmp expect actual +expecting success of 0027.1360 'checkout attr=auto ident aeol= core.autocrlf=true core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_true_attr_auto_ CRLF crlf_false_attr__CRLF.txt + +ok 1360 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=native file=CRLF -ok 9 - remove file in base index +expecting success of 0027.1361 'checkout attr=auto ident aeol= core.autocrlf=true core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_true_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1361 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=native file=CRLF_mix_LF -expecting success of 1700.10 'add original file back': - create_non_racy_file one && - git update-index --add one && - git ls-files --stage >ls-files.actual && - cat >ls-files.expect <<-EOF && - 100644 $EMPTY_BLOB 0 one - EOF - test_cmp ls-files.expect ls-files.actual && +expecting success of 0027.1362 'checkout attr=auto ident aeol= core.autocrlf=true core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_true_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1362 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=native file=LF_mix_CR - test-tool dump-split-index .git/index | sed "/^own/d" >actual && - cat >expect <<-EOF && - $BASE - 100644 $EMPTY_BLOB 0 one - replacements: - deletions: 0 - EOF - test_cmp expect actual +expecting success of 0027.1363 'checkout attr=auto ident aeol= core.autocrlf=true core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_true_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1363 - checkout attr=auto ident aeol= core.autocrlf=true core.eol=native file=LF_nul -ok 10 - add original file back +expecting success of 0027.1364 'ls-files --eol attr=text ident aeol= core.autocrlf=true core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1364 - ls-files --eol attr=text ident aeol= core.autocrlf=true core.eol=native -expecting success of 1700.11 'add new file': - create_non_racy_file two && - git update-index --add two && - git ls-files --stage >actual && - cat >expect <<-EOF && - 100644 $EMPTY_BLOB 0 one - 100644 $EMPTY_BLOB 0 two - EOF - test_cmp expect actual +expecting success of 0027.1365 'checkout attr=text ident aeol= core.autocrlf=true core.eol=native file=LF': + compare_ws_file eol_native_crlf_true_attr_text_ CRLF crlf_false_attr__LF.txt + +ok 1365 - checkout attr=text ident aeol= core.autocrlf=true core.eol=native file=LF -ok 11 - add new file +expecting success of 0027.1366 'checkout attr=text ident aeol= core.autocrlf=true core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 1366 - checkout attr=text ident aeol= core.autocrlf=true core.eol=native file=CRLF -expecting success of 1700.12 'unify index, two files remain': - git update-index --no-split-index && - git ls-files --stage >ls-files.actual && - cat >ls-files.expect <<-EOF && - 100644 $EMPTY_BLOB 0 one - 100644 $EMPTY_BLOB 0 two - EOF - test_cmp ls-files.expect ls-files.actual && +expecting success of 0027.1367 'checkout attr=text ident aeol= core.autocrlf=true core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_true_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt + +ok 1367 - checkout attr=text ident aeol= core.autocrlf=true core.eol=native file=CRLF_mix_LF - test-tool dump-split-index .git/index | sed "/^own/d" >actual && - cat >expect <<-EOF && - not a split index - EOF - test_cmp expect actual +expecting success of 0027.1368 'checkout attr=text ident aeol= core.autocrlf=true core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_true_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1368 - checkout attr=text ident aeol= core.autocrlf=true core.eol=native file=LF_mix_CR -ok 12 - unify index, two files remain +expecting success of 0027.1369 'checkout attr=text ident aeol= core.autocrlf=true core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_true_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt + +ok 1369 - checkout attr=text ident aeol= core.autocrlf=true core.eol=native file=LF_nul -expecting success of 1700.13 'rev-parse --shared-index-path': - test_create_repo split-index && - ( - cd split-index && - git update-index --split-index && - echo .git/sharedindex* >expect && - git rev-parse --shared-index-path >actual && - test_cmp expect actual && - mkdir subdirectory && - cd subdirectory && - echo ../.git/sharedindex* >expect && - git rev-parse --shared-index-path >actual && +expecting success of 0027.1370 'ls-files --eol attr=text ident aeol= core.autocrlf=input core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && test_cmp expect actual - ) - -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1700-split-index/split-index/.git/ -ok 13 - rev-parse --shared-index-path - -expecting success of 1700.14 'set core.splitIndex config variable to true': - git config core.splitIndex true && - create_non_racy_file three && - git update-index --add three && - git ls-files --stage >ls-files.actual && - cat >ls-files.expect <<-EOF && - 100644 $EMPTY_BLOB 0 one - 100644 $EMPTY_BLOB 0 three - 100644 $EMPTY_BLOB 0 two - EOF - test_cmp ls-files.expect ls-files.actual && - BASE=$(test-tool dump-split-index .git/index | grep "^base") && - test-tool dump-split-index .git/index | sed "/^own/d" >actual && - cat >expect <<-EOF && - $BASE - replacements: - deletions: - EOF - test_cmp expect actual + +ok 1370 - ls-files --eol attr=text ident aeol= core.autocrlf=input core.eol=native -ok 14 - set core.splitIndex config variable to true +expecting success of 0027.1371 'checkout attr=text ident aeol= core.autocrlf=input core.eol=native file=LF': + compare_ws_file eol_native_crlf_input_attr_text_ LF crlf_false_attr__LF.txt + +ok 1371 - checkout attr=text ident aeol= core.autocrlf=input core.eol=native file=LF -expecting success of 1700.15 'set core.splitIndex config variable to false': - git config core.splitIndex false && - git update-index --force-remove three && - git ls-files --stage >ls-files.actual && - cat >ls-files.expect <<-EOF && - 100644 $EMPTY_BLOB 0 one - 100644 $EMPTY_BLOB 0 two - EOF - test_cmp ls-files.expect ls-files.actual && - test-tool dump-split-index .git/index | sed "/^own/d" >actual && - cat >expect <<-EOF && - not a split index - EOF - test_cmp expect actual +expecting success of 0027.1372 'checkout attr=text ident aeol= core.autocrlf=input core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_input_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 1372 - checkout attr=text ident aeol= core.autocrlf=input core.eol=native file=CRLF -ok 15 - set core.splitIndex config variable to false +expecting success of 0027.1373 'checkout attr=text ident aeol= core.autocrlf=input core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_input_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1373 - checkout attr=text ident aeol= core.autocrlf=input core.eol=native file=CRLF_mix_LF -expecting success of 1700.16 'set core.splitIndex config variable back to true': - git config core.splitIndex true && - create_non_racy_file three && - git update-index --add three && - BASE=$(test-tool dump-split-index .git/index | grep "^base") && - test-tool dump-split-index .git/index | sed "/^own/d" >actual && - cat >expect <<-EOF && - $BASE - replacements: - deletions: - EOF - test_cmp expect actual && - create_non_racy_file four && - git update-index --add four && - test-tool dump-split-index .git/index | sed "/^own/d" >actual && - cat >expect <<-EOF && - $BASE - 100644 $EMPTY_BLOB 0 four - replacements: - deletions: - EOF - test_cmp expect actual +expecting success of 0027.1374 'checkout attr=text ident aeol= core.autocrlf=input core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_input_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1374 - checkout attr=text ident aeol= core.autocrlf=input core.eol=native file=LF_mix_CR -ok 16 - set core.splitIndex config variable back to true +expecting success of 0027.1375 'checkout attr=text ident aeol= core.autocrlf=input core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_input_attr_text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1375 - checkout attr=text ident aeol= core.autocrlf=input core.eol=native file=LF_nul -expecting success of 1700.17 'check behavior with splitIndex.maxPercentChange unset': - git config --unset splitIndex.maxPercentChange && - create_non_racy_file five && - git update-index --add five && - BASE=$(test-tool dump-split-index .git/index | grep "^base") && - test-tool dump-split-index .git/index | sed "/^own/d" >actual && - cat >expect <<-EOF && - $BASE - replacements: - deletions: - EOF - test_cmp expect actual && - create_non_racy_file six && - git update-index --add six && - test-tool dump-split-index .git/index | sed "/^own/d" >actual && - cat >expect <<-EOF && - $BASE - 100644 $EMPTY_BLOB 0 six - replacements: - deletions: - EOF - test_cmp expect actual +expecting success of 0027.1376 'ls-files --eol attr=auto ident aeol= core.autocrlf=input core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1376 - ls-files --eol attr=auto ident aeol= core.autocrlf=input core.eol=native -ok 17 - check behavior with splitIndex.maxPercentChange unset +expecting success of 0027.1377 'checkout attr=auto ident aeol= core.autocrlf=input core.eol=native file=LF': + compare_ws_file eol_native_crlf_input_attr_auto_ LF crlf_false_attr__LF.txt + +ok 1377 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=native file=LF -expecting success of 1700.18 'check splitIndex.maxPercentChange set to 0': - git config splitIndex.maxPercentChange 0 && - create_non_racy_file seven && - git update-index --add seven && - BASE=$(test-tool dump-split-index .git/index | grep "^base") && - test-tool dump-split-index .git/index | sed "/^own/d" >actual && - cat >expect <<-EOF && - $BASE - replacements: - deletions: - EOF - test_cmp expect actual && - create_non_racy_file eight && - git update-index --add eight && - BASE=$(test-tool dump-split-index .git/index | grep "^base") && - test-tool dump-split-index .git/index | sed "/^own/d" >actual && - cat >expect <<-EOF && - $BASE - replacements: - deletions: - EOF - test_cmp expect actual +expecting success of 0027.1378 'checkout attr=auto ident aeol= core.autocrlf=input core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_input_attr_auto_ CRLF crlf_false_attr__CRLF.txt + +ok 1378 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=native file=CRLF -ok 18 - check splitIndex.maxPercentChange set to 0 +expecting success of 0027.1379 'checkout attr=auto ident aeol= core.autocrlf=input core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_input_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1379 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=native file=CRLF_mix_LF -expecting success of 1700.19 'shared index files expire after 2 weeks by default': - create_non_racy_file ten && - git update-index --add ten && - test $(ls .git/sharedindex.* | wc -l) -gt 2 && - just_under_2_weeks_ago=$((5-14*86400)) && - test-tool chmtime =$just_under_2_weeks_ago .git/sharedindex.* && - create_non_racy_file eleven && - git update-index --add eleven && - test $(ls .git/sharedindex.* | wc -l) -gt 2 && - just_over_2_weeks_ago=$((-1-14*86400)) && - test-tool chmtime =$just_over_2_weeks_ago .git/sharedindex.* && - create_non_racy_file twelve && - git update-index --add twelve && - test $(ls .git/sharedindex.* | wc -l) -le 2 +expecting success of 0027.1380 'checkout attr=auto ident aeol= core.autocrlf=input core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_input_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1380 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=native file=LF_mix_CR -ok 19 - shared index files expire after 2 weeks by default +expecting success of 0027.1381 'checkout attr=auto ident aeol= core.autocrlf=input core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_input_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1381 - checkout attr=auto ident aeol= core.autocrlf=input core.eol=native file=LF_nul -expecting success of 1700.20 'check splitIndex.sharedIndexExpire set to 16 days': - git config splitIndex.sharedIndexExpire "16.days.ago" && - test-tool chmtime =$just_over_2_weeks_ago .git/sharedindex.* && - create_non_racy_file thirteen && - git update-index --add thirteen && - test $(ls .git/sharedindex.* | wc -l) -gt 2 && - just_over_16_days_ago=$((-1-16*86400)) && - test-tool chmtime =$just_over_16_days_ago .git/sharedindex.* && - create_non_racy_file fourteen && - git update-index --add fourteen && - test $(ls .git/sharedindex.* | wc -l) -le 2 +expecting success of 0027.1382 'ls-files --eol attr=text ident aeol= core.autocrlf=false core.eol=crlf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1382 - ls-files --eol attr=text ident aeol= core.autocrlf=false core.eol=crlf -ok 20 - check splitIndex.sharedIndexExpire set to 16 days +expecting success of 0027.1383 'checkout attr=text ident aeol= core.autocrlf=false core.eol=crlf file=LF': + compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF crlf_false_attr__LF.txt + +ok 1383 - checkout attr=text ident aeol= core.autocrlf=false core.eol=crlf file=LF -expecting success of 1700.21 'check splitIndex.sharedIndexExpire set to "never" and "now"': - git config splitIndex.sharedIndexExpire never && - just_10_years_ago=$((-365*10*86400)) && - test-tool chmtime =$just_10_years_ago .git/sharedindex.* && - create_non_racy_file fifteen && - git update-index --add fifteen && - test $(ls .git/sharedindex.* | wc -l) -gt 2 && - git config splitIndex.sharedIndexExpire now && - just_1_second_ago=-1 && - test-tool chmtime =$just_1_second_ago .git/sharedindex.* && - create_non_racy_file sixteen && - git update-index --add sixteen && - test $(ls .git/sharedindex.* | wc -l) -le 2 +expecting success of 0027.1384 'checkout attr=text ident aeol= core.autocrlf=false core.eol=crlf file=CRLF': + compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 1384 - checkout attr=text ident aeol= core.autocrlf=false core.eol=crlf file=CRLF -ok 21 - check splitIndex.sharedIndexExpire set to "never" and "now" +expecting success of 0027.1385 'checkout attr=text ident aeol= core.autocrlf=false core.eol=crlf file=CRLF_mix_LF': + compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF_mix_LF.txt + +ok 1385 - checkout attr=text ident aeol= core.autocrlf=false core.eol=crlf file=CRLF_mix_LF -expecting success of 1700.22 'same mode for index & split index': - git init same-mode && - ( - cd same-mode && - test_commit A && - test_modebits .git/index >index_mode && - test_must_fail git config core.sharedRepository && - git -c core.splitIndex=true status && - shared=$(ls .git/sharedindex.*) && - case "$shared" in - *" "*) - # we have more than one??? - false ;; - *) - test_modebits "$shared" >split_index_mode && - test_cmp index_mode split_index_mode ;; - esac - ) +expecting success of 0027.1386 'checkout attr=text ident aeol= core.autocrlf=false core.eol=crlf file=LF_mix_CR': + compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1386 - checkout attr=text ident aeol= core.autocrlf=false core.eol=crlf file=LF_mix_CR -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1700-split-index/same-mode/.git/ -[master (root-commit) 0ddfaf1] A - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 A.t -On branch master -Untracked files: - (use "git add ..." to include in what will be committed) - index_mode +expecting success of 0027.1387 'checkout attr=text ident aeol= core.autocrlf=false core.eol=crlf file=LF_nul': + compare_ws_file eol_crlf_crlf_false_attr_text_ CRLF_nul crlf_false_attr__LF_nul.txt + +ok 1387 - checkout attr=text ident aeol= core.autocrlf=false core.eol=crlf file=LF_nul -nothing added to commit but untracked files present (use "git add" to track) -ok 22 - same mode for index & split index +expecting success of 0027.1388 'ls-files --eol attr=text ident aeol= core.autocrlf=false core.eol=lf': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1388 - ls-files --eol attr=text ident aeol= core.autocrlf=false core.eol=lf -expecting success of 1700.23 'split index respects core.sharedrepository 0666': - # Remove existing shared index files - git config core.splitIndex false && - git update-index --force-remove one && - rm -f .git/sharedindex.* && - # Create one new shared index file - git config core.sharedrepository "$mode" && - git config core.splitIndex true && - create_non_racy_file one && - git update-index --add one && - echo "$modebits" >expect && - test_modebits .git/index >actual && - test_cmp expect actual && - shared=$(ls .git/sharedindex.*) && - case "$shared" in - *" "*) - # we have more than one??? - false ;; - *) - test_modebits "$shared" >actual && - test_cmp expect actual ;; - esac +expecting success of 0027.1389 'checkout attr=text ident aeol= core.autocrlf=false core.eol=lf file=LF': + compare_ws_file eol_lf_crlf_false_attr_text_ LF crlf_false_attr__LF.txt -ok 23 - split index respects core.sharedrepository 0666 +ok 1389 - checkout attr=text ident aeol= core.autocrlf=false core.eol=lf file=LF -expecting success of 1700.24 'split index respects core.sharedrepository 0642': - # Remove existing shared index files - git config core.splitIndex false && - git update-index --force-remove one && - rm -f .git/sharedindex.* && - # Create one new shared index file - git config core.sharedrepository "$mode" && - git config core.splitIndex true && - create_non_racy_file one && - git update-index --add one && - echo "$modebits" >expect && - test_modebits .git/index >actual && - test_cmp expect actual && - shared=$(ls .git/sharedindex.*) && - case "$shared" in - *" "*) - # we have more than one??? - false ;; - *) - test_modebits "$shared" >actual && - test_cmp expect actual ;; - esac +expecting success of 0027.1390 'checkout attr=text ident aeol= core.autocrlf=false core.eol=lf file=CRLF': + compare_ws_file eol_lf_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF.txt -ok 24 - split index respects core.sharedrepository 0642 +ok 1390 - checkout attr=text ident aeol= core.autocrlf=false core.eol=lf file=CRLF -checking prerequisite: SANITY +expecting success of 0027.1391 'checkout attr=text ident aeol= core.autocrlf=false core.eol=lf file=CRLF_mix_LF': + compare_ws_file eol_lf_crlf_false_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1391 - checkout attr=text ident aeol= core.autocrlf=false core.eol=lf file=CRLF_mix_LF -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SANITY" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-SANITY" && - mkdir SANETESTD.1 SANETESTD.2 && +expecting success of 0027.1392 'checkout attr=text ident aeol= core.autocrlf=false core.eol=lf file=LF_mix_CR': + compare_ws_file eol_lf_crlf_false_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1392 - checkout attr=text ident aeol= core.autocrlf=false core.eol=lf file=LF_mix_CR - chmod +w SANETESTD.1 SANETESTD.2 && - >SANETESTD.1/x 2>SANETESTD.2/x && - chmod -w SANETESTD.1 && - chmod -r SANETESTD.1/x && - chmod -rx SANETESTD.2 || - BUG "cannot prepare SANETESTD" +expecting success of 0027.1393 'checkout attr=text ident aeol= core.autocrlf=false core.eol=lf file=LF_nul': + compare_ws_file eol_lf_crlf_false_attr_text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1393 - checkout attr=text ident aeol= core.autocrlf=false core.eol=lf file=LF_nul - ! test -r SANETESTD.1/x && - ! rm SANETESTD.1/x && ! test -f SANETESTD.2/x - status=$? +expecting success of 0027.1394 'ls-files --eol attr=text ident aeol= core.autocrlf=false core.eol=': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1394 - ls-files --eol attr=text ident aeol= core.autocrlf=false core.eol= - chmod +rwx SANETESTD.1 SANETESTD.2 && - rm -rf SANETESTD.1 SANETESTD.2 || - BUG "cannot clean SANETESTD" - return $status +expecting success of 0027.1395 'checkout attr=text ident aeol= core.autocrlf=false core.eol= file=LF': + compare_ws_file eol__crlf_false_attr_text_ LF crlf_false_attr__LF.txt + +ok 1395 - checkout attr=text ident aeol= core.autocrlf=false core.eol= file=LF -) -rm: cannot remove 'SANETESTD.1/x': Permission denied -prerequisite SANITY ok -expecting success of 1700.25 'graceful handling when splitting index is not allowed': - test_create_repo ro && - ( - cd ro && - test_commit initial && - git update-index --split-index && - test -f .git/sharedindex.* - ) && - cp ro/.git/index new-index && - test_when_finished "chmod u+w ro/.git" && - chmod u-w ro/.git && - GIT_INDEX_FILE="$(pwd)/new-index" git -C ro update-index --split-index && - chmod u+w ro/.git && - rm ro/.git/sharedindex.* && - GIT_INDEX_FILE=new-index git ls-files >actual && - echo initial.t >expected && - test_cmp expected actual +expecting success of 0027.1396 'checkout attr=text ident aeol= core.autocrlf=false core.eol= file=CRLF': + compare_ws_file eol__crlf_false_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 1396 - checkout attr=text ident aeol= core.autocrlf=false core.eol= file=CRLF -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1700-split-index/ro/.git/ -[master (root-commit) 24b24cf] initial - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 initial.t -ok 25 - graceful handling when splitting index is not allowed +expecting success of 0027.1397 'checkout attr=text ident aeol= core.autocrlf=false core.eol= file=CRLF_mix_LF': + compare_ws_file eol__crlf_false_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1397 - checkout attr=text ident aeol= core.autocrlf=false core.eol= file=CRLF_mix_LF -expecting success of 1700.26 'writing split index with null sha1 does not write cache tree': - git config core.splitIndex true && - git config splitIndex.maxPercentChange 0 && - git commit -m "commit" && - { - git ls-tree HEAD && - printf "160000 commit $ZERO_OID\\tbroken\\n" - } >broken-tree && - echo "add broken entry" >msg && +expecting success of 0027.1398 'checkout attr=text ident aeol= core.autocrlf=false core.eol= file=LF_mix_CR': + compare_ws_file eol__crlf_false_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1398 - checkout attr=text ident aeol= core.autocrlf=false core.eol= file=LF_mix_CR - tree=$(git mktree cache-tree.out && - test_line_count = 0 cache-tree.out +expecting success of 0027.1399 'checkout attr=text ident aeol= core.autocrlf=false core.eol= file=LF_nul': + compare_ws_file eol__crlf_false_attr_text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1399 - checkout attr=text ident aeol= core.autocrlf=false core.eol= file=LF_nul -[master (root-commit) 57c62fa] commit - Author: A U Thor - 15 files changed, 0 insertions(+), 0 deletions(-) - create mode 100644 eight - create mode 100644 eleven - create mode 100644 fifteen - create mode 100644 five - create mode 100644 four - create mode 100644 fourteen - create mode 100644 one - create mode 100644 seven - create mode 100644 six - create mode 100644 sixteen - create mode 100644 ten - create mode 100644 thirteen - create mode 100644 three - create mode 100644 twelve - create mode 100644 two -error: invalid object 160000 0000000000000000000000000000000000000000 for 'broken' -warning: cache entry has null sha1: broken -HEAD is now at 57cc685 add broken entry -error: invalid object 160000 0000000000000000000000000000000000000000 for 'broken' -ok 26 - writing split index with null sha1 does not write cache tree +expecting success of 0027.1400 'ls-files --eol attr=text ident aeol= core.autocrlf=false core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1400 - ls-files --eol attr=text ident aeol= core.autocrlf=false core.eol=native -expecting success of 1700.27 'do not refresh null base index': - test_create_repo merge && - ( - cd merge && - test_commit initial && - git checkout -b side-branch && - test_commit extra && - git checkout master && - git update-index --split-index && - test_commit more && - # must not write a new shareindex, or we wont catch the problem - git -c splitIndex.maxPercentChange=100 merge --no-edit side-branch 2>err && - # i.e. do not expect warnings like - # could not freshen shared index .../shareindex.00000... - test_must_be_empty err - ) +expecting success of 0027.1401 'checkout attr=text ident aeol= core.autocrlf=false core.eol=native file=LF': + compare_ws_file eol_native_crlf_false_attr_text_ LF crlf_false_attr__LF.txt + +ok 1401 - checkout attr=text ident aeol= core.autocrlf=false core.eol=native file=LF -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1700-split-index/merge/.git/ -[master (root-commit) 5e30013] initial - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 initial.t -Switched to a new branch 'side-branch' -[side-branch 678a87c] extra - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 extra.t -Switched to branch 'master' -[master 34c8267] more - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 more.t -Merging: -34c8267 more -virtual side-branch -found 1 common ancestor: -5e30013 initial -Merge made by the 'recursive' strategy. - extra.t | 1 + - 1 file changed, 1 insertion(+) - create mode 100644 extra.t -ok 27 - do not refresh null base index +expecting success of 0027.1402 'checkout attr=text ident aeol= core.autocrlf=false core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_false_attr_text_ CRLF crlf_false_attr__CRLF.txt + +ok 1402 - checkout attr=text ident aeol= core.autocrlf=false core.eol=native file=CRLF -# passed all 27 test(s) -1..27 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t2000-conflict-when-checking-files-out.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2000-conflict-when-checking-files-out/.git/ -expecting success of 2000.1 'git update-index --add various paths.': git update-index --add path0 path1/file1 -ok 1 - git update-index --add various paths. +expecting success of 0027.1403 'checkout attr=text ident aeol= core.autocrlf=false core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_false_attr_text_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1403 - checkout attr=text ident aeol= core.autocrlf=false core.eol=native file=CRLF_mix_LF -expecting success of 2000.2 'git checkout-index without -f should fail on conflicting work tree.': test_must_fail git checkout-index -a -path0 already exists, no checkout -fatal: cannot create directory at 'path1': File exists -ok 2 - git checkout-index without -f should fail on conflicting work tree. +expecting success of 0027.1404 'checkout attr=text ident aeol= core.autocrlf=false core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_false_attr_text_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1404 - checkout attr=text ident aeol= core.autocrlf=false core.eol=native file=LF_mix_CR -expecting success of 2000.3 'git checkout-index with -f should succeed.': git checkout-index -f -a -ok 3 - git checkout-index with -f should succeed. +expecting success of 0027.1405 'checkout attr=text ident aeol= core.autocrlf=false core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_false_attr_text_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1405 - checkout attr=text ident aeol= core.autocrlf=false core.eol=native file=LF_nul -expecting success of 2000.4 'git checkout-index conflicting paths.': test -f path0 && test -d path1 && test -f path1/file1 -ok 4 - git checkout-index conflicting paths. +expecting success of 0027.1406 'ls-files --eol attr=auto ident aeol= core.autocrlf=false core.eol=': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1406 - ls-files --eol attr=auto ident aeol= core.autocrlf=false core.eol= -checking prerequisite: SYMLINKS +expecting success of 0027.1407 'checkout attr=auto ident aeol= core.autocrlf=false core.eol= file=LF': + compare_ws_file eol__crlf_false_attr_auto_ LF crlf_false_attr__LF.txt + +ok 1407 - checkout attr=auto ident aeol= core.autocrlf=false core.eol= file=LF -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && - # test whether the filesystem supports symbolic links - ln -s x y && test -h y +expecting success of 0027.1408 'checkout attr=auto ident aeol= core.autocrlf=false core.eol= file=CRLF': + compare_ws_file eol__crlf_false_attr_auto_ CRLF crlf_false_attr__CRLF.txt + +ok 1408 - checkout attr=auto ident aeol= core.autocrlf=false core.eol= file=CRLF -) -prerequisite SYMLINKS ok -expecting success of 2000.5 'checkout-index -f twice with --prefix': - mkdir -p tar/get && - ln -s tar/get there && - echo first && - git checkout-index -a -f --prefix=there/ && - echo second && - git checkout-index -a -f --prefix=there/ +expecting success of 0027.1409 'checkout attr=auto ident aeol= core.autocrlf=false core.eol= file=CRLF_mix_LF': + compare_ws_file eol__crlf_false_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1409 - checkout attr=auto ident aeol= core.autocrlf=false core.eol= file=CRLF_mix_LF -first -second -ok 5 - checkout-index -f twice with --prefix +expecting success of 0027.1410 'checkout attr=auto ident aeol= core.autocrlf=false core.eol= file=LF_mix_CR': + compare_ws_file eol__crlf_false_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1410 - checkout attr=auto ident aeol= core.autocrlf=false core.eol= file=LF_mix_CR -expecting success of 2000.6 'git update-index --add path2/file0': git update-index --add path2/file0 -ok 6 - git update-index --add path2/file0 +expecting success of 0027.1411 'checkout attr=auto ident aeol= core.autocrlf=false core.eol= file=LF_nul': + compare_ws_file eol__crlf_false_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1411 - checkout attr=auto ident aeol= core.autocrlf=false core.eol= file=LF_nul -expecting success of 2000.7 'writing tree out with git write-tree': tree1=$(git write-tree) -ok 7 - writing tree out with git write-tree +expecting success of 0027.1412 'ls-files --eol attr=auto ident aeol= core.autocrlf=false core.eol=native': + test_when_finished "rm expect actual" && + sort <<-EOF >expect && + i/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt + i/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt + i/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt + i/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt + i/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt + EOF + git ls-files --eol crlf_false_attr__* | + sed -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual + +ok 1412 - ls-files --eol attr=auto ident aeol= core.autocrlf=false core.eol=native -expecting success of 2000.8 'git update-index --add path3/file1': git update-index --add path3/file1 -ok 8 - git update-index --add path3/file1 +expecting success of 0027.1413 'checkout attr=auto ident aeol= core.autocrlf=false core.eol=native file=LF': + compare_ws_file eol_native_crlf_false_attr_auto_ LF crlf_false_attr__LF.txt + +ok 1413 - checkout attr=auto ident aeol= core.autocrlf=false core.eol=native file=LF -expecting success of 2000.9 'writing tree out with git write-tree': tree2=$(git write-tree) -ok 9 - writing tree out with git write-tree +expecting success of 0027.1414 'checkout attr=auto ident aeol= core.autocrlf=false core.eol=native file=CRLF': + compare_ws_file eol_native_crlf_false_attr_auto_ CRLF crlf_false_attr__CRLF.txt + +ok 1414 - checkout attr=auto ident aeol= core.autocrlf=false core.eol=native file=CRLF -expecting success of 2000.10 'read previously written tree and checkout.': git read-tree -m $tree1 && git checkout-index -f -a -ok 10 - read previously written tree and checkout. +expecting success of 0027.1415 'checkout attr=auto ident aeol= core.autocrlf=false core.eol=native file=CRLF_mix_LF': + compare_ws_file eol_native_crlf_false_attr_auto_ CRLF_mix_LF crlf_false_attr__CRLF_mix_LF.txt + +ok 1415 - checkout attr=auto ident aeol= core.autocrlf=false core.eol=native file=CRLF_mix_LF -expecting success of 2000.11 'add a symlink': test_ln_s_add path2 path3 -ok 11 - add a symlink +expecting success of 0027.1416 'checkout attr=auto ident aeol= core.autocrlf=false core.eol=native file=LF_mix_CR': + compare_ws_file eol_native_crlf_false_attr_auto_ LF_mix_CR crlf_false_attr__LF_mix_CR.txt + +ok 1416 - checkout attr=auto ident aeol= core.autocrlf=false core.eol=native file=LF_mix_CR -expecting success of 2000.12 'writing tree out with git write-tree': tree3=$(git write-tree) -ok 12 - writing tree out with git write-tree +expecting success of 0027.1417 'checkout attr=auto ident aeol= core.autocrlf=false core.eol=native file=LF_nul': + compare_ws_file eol_native_crlf_false_attr_auto_ LF_nul crlf_false_attr__LF_nul.txt + +ok 1417 - checkout attr=auto ident aeol= core.autocrlf=false core.eol=native file=LF_nul -expecting success of 2000.13 'read previously written tree and checkout.': git read-tree $tree2 && git checkout-index -f -a -ok 13 - read previously written tree and checkout. +expecting success of 0027.1418 'ls-files --eol -d -z': + rm crlf_false_attr__CRLF.txt crlf_false_attr__CRLF_mix_LF.txt crlf_false_attr__LF.txt .gitattributes && + cat >expect <<-\EOF && + i/crlf w/ crlf_false_attr__CRLF.txt + i/lf w/ .gitattributes + i/lf w/ crlf_false_attr__LF.txt + i/mixed w/ crlf_false_attr__CRLF_mix_LF.txt + EOF + git ls-files --eol -d | + sed -e "s!attr/[^ ]*!!g" -e "s/ / /g" -e "s/ */ /g" | + sort >actual && + test_cmp expect actual -expecting success of 2000.14 'checking out conflicting path with -f': test ! -h path2 && test -d path2 && - test ! -h path3 && test -d path3 && - test ! -h path2/file0 && test -f path2/file0 && - test ! -h path3/file1 && test -f path3/file1 -ok 14 - checking out conflicting path with -f +ok 1418 - ls-files --eol -d -z -# passed all 14 test(s) -1..14 +# passed all 1418 test(s) +1..1418 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t2002-checkout-cache-u.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2002-checkout-cache-u/.git/ -expecting success of 2002.1 'preparation': -echo frotz >path0 && -git update-index --add path0 && -t=$(git write-tree) +*** t2005-checkout-index-symlinks.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2005-checkout-index-symlinks/.git/ +expecting success of 2005.1 'preparation': +git config core.symlinks false && +l=$(printf file | git hash-object -t blob -w --stdin) && +echo "120000 $l symlink" | git update-index --index-info ok 1 - preparation -expecting success of 2002.2 'without -u, git checkout-index smudges stat information.': -rm -f path0 && -git read-tree $t && -git checkout-index -f -a && -test_must_fail git diff-files --exit-code -:100644 100644 8e4020bb5a8d8c873b25de15933e75cc0fc275df 0000000000000000000000000000000000000000 M path0 -ok 2 - without -u, git checkout-index smudges stat information. +expecting success of 2005.2 'the checked-out symlink must be a file': +git checkout-index symlink && +test -f symlink +ok 2 - the checked-out symlink must be a file -expecting success of 2002.3 'with -u, git checkout-index picks up stat information from new files.': -rm -f path0 && -git read-tree $t && -git checkout-index -u -f -a && -git diff-files --exit-code -ok 3 - with -u, git checkout-index picks up stat information from new files. +expecting success of 2005.3 'the file must be the blob we added during the setup': +test "$(git hash-object -t blob symlink)" = $l +ok 3 - the file must be the blob we added during the setup # passed all 3 test(s) 1..3 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t2003-checkout-cache-mkdir.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2003-checkout-cache-mkdir/.git/ -expecting success of 2003.1 'setup': - mkdir path1 && - echo frotz >path0 && - echo rezrov >path1/file1 && - git update-index --add path0 path1/file1 - -ok 1 - setup - -checking prerequisite: SYMLINKS - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && - # test whether the filesystem supports symbolic links - ln -s x y && test -h y - -) -prerequisite SYMLINKS ok -expecting success of 2003.2 'have symlink in place where dir is expected.': - rm -fr path0 path1 && - mkdir path2 && - ln -s path2 path1 && - git checkout-index -f -a && - test ! -h path1 && test -d path1 && - test -f path1/file1 && test ! -f path2/file1 - -ok 2 - have symlink in place where dir is expected. - -expecting success of 2003.3 'use --prefix=path2/': - rm -fr path0 path1 path2 && - mkdir path2 && - git checkout-index --prefix=path2/ -f -a && - test -f path2/path0 && - test -f path2/path1/file1 && - test ! -f path0 && - test ! -f path1/file1 - -ok 3 - use --prefix=path2/ - -expecting success of 2003.4 'use --prefix=tmp-': - rm -fr path0 path1 path2 tmp* && - git checkout-index --prefix=tmp- -f -a && - test -f tmp-path0 && - test -f tmp-path1/file1 && - test ! -f path0 && - test ! -f path1/file1 - -ok 4 - use --prefix=tmp- - -expecting success of 2003.5 'use --prefix=tmp- but with a conflicting file and dir': - rm -fr path0 path1 path2 tmp* && - echo nitfol >tmp-path1 && - mkdir tmp-path0 && - git checkout-index --prefix=tmp- -f -a && - test -f tmp-path0 && - test -f tmp-path1/file1 && - test ! -f path0 && - test ! -f path1/file1 - -ok 5 - use --prefix=tmp- but with a conflicting file and dir - -expecting success of 2003.6 'use --prefix=tmp/orary/ where tmp is a symlink': - rm -fr path0 path1 path2 tmp* && - mkdir tmp1 tmp1/orary && - ln -s tmp1 tmp && - git checkout-index --prefix=tmp/orary/ -f -a && - test -d tmp1/orary && - test -f tmp1/orary/path0 && - test -f tmp1/orary/path1/file1 && - test -h tmp - -ok 6 - use --prefix=tmp/orary/ where tmp is a symlink - -expecting success of 2003.7 'use --prefix=tmp/orary- where tmp is a symlink': - rm -fr path0 path1 path2 tmp* && - mkdir tmp1 && - ln -s tmp1 tmp && - git checkout-index --prefix=tmp/orary- -f -a && - test -f tmp1/orary-path0 && - test -f tmp1/orary-path1/file1 && - test -h tmp - -ok 7 - use --prefix=tmp/orary- where tmp is a symlink - -expecting success of 2003.8 'use --prefix=tmp- where tmp-path1 is a symlink': - rm -fr path0 path1 path2 tmp* && - mkdir tmp1 && - ln -s tmp1 tmp-path1 && - git checkout-index --prefix=tmp- -f -a && - test -f tmp-path0 && - test ! -h tmp-path1 && - test -d tmp-path1 && - test -f tmp-path1/file1 - -ok 8 - use --prefix=tmp- where tmp-path1 is a symlink - -expecting success of 2003.9 'apply filter from working tree .gitattributes with --prefix': - rm -fr path0 path1 path2 tmp* && - mkdir path1 && - mkdir tmp && - git config filter.replace-all.smudge "sed -e s/./,/g" && - git config filter.replace-all.clean cat && - git config filter.replace-all.required true && - echo "file1 filter=replace-all" >path1/.gitattributes && - git checkout-index --prefix=tmp/ -f -a && - echo frotz >expected && - test_cmp expected tmp/path0 && - echo ,,,,,, >expected && - test_cmp expected tmp/path1/file1 - -ok 9 - apply filter from working tree .gitattributes with --prefix - -expecting success of 2003.10 'apply CRLF filter from working tree .gitattributes with --prefix': - rm -fr path0 path1 path2 tmp* && - mkdir path1 && - mkdir tmp && - echo "file1 eol=crlf" >path1/.gitattributes && - git checkout-index --prefix=tmp/ -f -a && - echo rezrovQ >expected && - tr \\015 Q actual && - test_cmp expected actual - -ok 10 - apply CRLF filter from working tree .gitattributes with --prefix - -# passed all 10 test(s) -1..10 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' *** t2004-checkout-cache-temp.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2004-checkout-cache-temp/.git/ expecting success of 2004.1 'setup': @@ -66165,27 +66040,6 @@ 1..20 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t2005-checkout-index-symlinks.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2005-checkout-index-symlinks/.git/ -expecting success of 2005.1 'preparation': -git config core.symlinks false && -l=$(printf file | git hash-object -t blob -w --stdin) && -echo "120000 $l symlink" | git update-index --index-info -ok 1 - preparation - -expecting success of 2005.2 'the checked-out symlink must be a file': -git checkout-index symlink && -test -f symlink -ok 2 - the checked-out symlink must be a file - -expecting success of 2005.3 'the file must be the blob we added during the setup': -test "$(git hash-object -t blob symlink)" = $l -ok 3 - the file must be the blob we added during the setup - -# passed all 3 test(s) -1..3 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' *** t2006-checkout-index-basic.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2006-checkout-index-basic/.git/ expecting success of 2006.1 'checkout-index --gobbledegook': @@ -66460,6 +66314,878 @@ 1..9 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t1701-racy-split-index.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1701-racy-split-index/.git/ +expecting success of 1701.1 'setup': + # Only split the index when the test explicitly says so. + sane_unset GIT_TEST_SPLIT_INDEX && + git config splitIndex.maxPercentChange 100 && + + echo "cached content" >racy-file && + git add racy-file && + git commit -m initial && + + echo something >other-file && + # No raciness with this file. + test-tool chmtime =-20 other-file && + + echo "+cached content" >expect + +[master (root-commit) a4904a4] initial + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 racy-file +ok 1 - setup + +expecting success of 1701.2 'split the index while adding a racily clean file #0': + rm -f .git/index .git/sharedindex.* && + + # The next three commands must be run within the same + # second (so both writes to racy-file result in the same + # mtime) to create the interesting racy situation. + echo "cached content" >racy-file && + + # Update and split the index. The cache entry of + # racy-file will be stored only in the shared index. + git update-index --split-index --add racy-file && + + # File size must stay the same. + echo "dirty worktree" >racy-file && + + # Subsequent git commands should notice that racy-file + # and the split index have the same mtime, and check + # the content of the file to see if it is actually + # clean. + check_cached_diff + +ok 2 - split the index while adding a racily clean file #0 + +expecting success of 1701.3 'split the index while adding a racily clean file #1': + rm -f .git/index .git/sharedindex.* && + + # The next three commands must be run within the same + # second (so both writes to racy-file result in the same + # mtime) to create the interesting racy situation. + echo "cached content" >racy-file && + + # Update and split the index. The cache entry of + # racy-file will be stored only in the shared index. + git update-index --split-index --add racy-file && + + # File size must stay the same. + echo "dirty worktree" >racy-file && + + # Subsequent git commands should notice that racy-file + # and the split index have the same mtime, and check + # the content of the file to see if it is actually + # clean. + check_cached_diff + +ok 3 - split the index while adding a racily clean file #1 + +expecting success of 1701.4 'split the index while adding a racily clean file #2': + rm -f .git/index .git/sharedindex.* && + + # The next three commands must be run within the same + # second (so both writes to racy-file result in the same + # mtime) to create the interesting racy situation. + echo "cached content" >racy-file && + + # Update and split the index. The cache entry of + # racy-file will be stored only in the shared index. + git update-index --split-index --add racy-file && + + # File size must stay the same. + echo "dirty worktree" >racy-file && + + # Subsequent git commands should notice that racy-file + # and the split index have the same mtime, and check + # the content of the file to see if it is actually + # clean. + check_cached_diff + +ok 4 - split the index while adding a racily clean file #2 + +expecting success of 1701.5 'split the index while adding a racily clean file #3': + rm -f .git/index .git/sharedindex.* && + + # The next three commands must be run within the same + # second (so both writes to racy-file result in the same + # mtime) to create the interesting racy situation. + echo "cached content" >racy-file && + + # Update and split the index. The cache entry of + # racy-file will be stored only in the shared index. + git update-index --split-index --add racy-file && + + # File size must stay the same. + echo "dirty worktree" >racy-file && + + # Subsequent git commands should notice that racy-file + # and the split index have the same mtime, and check + # the content of the file to see if it is actually + # clean. + check_cached_diff + +ok 5 - split the index while adding a racily clean file #3 + +expecting success of 1701.6 'split the index while adding a racily clean file #4': + rm -f .git/index .git/sharedindex.* && + + # The next three commands must be run within the same + # second (so both writes to racy-file result in the same + # mtime) to create the interesting racy situation. + echo "cached content" >racy-file && + + # Update and split the index. The cache entry of + # racy-file will be stored only in the shared index. + git update-index --split-index --add racy-file && + + # File size must stay the same. + echo "dirty worktree" >racy-file && + + # Subsequent git commands should notice that racy-file + # and the split index have the same mtime, and check + # the content of the file to see if it is actually + # clean. + check_cached_diff + +ok 6 - split the index while adding a racily clean file #4 + +expecting success of 1701.7 'add a racily clean file to an already split index #0': + rm -f .git/index .git/sharedindex.* && + + git update-index --split-index && + + # The next three commands must be run within the same + # second. + echo "cached content" >racy-file && + + # Update the split index. The cache entry of racy-file + # will be stored only in the split index. + git update-index --add racy-file && + + # File size must stay the same. + echo "dirty worktree" >racy-file && + + # Subsequent git commands should notice that racy-file + # and the split index have the same mtime, and check + # the content of the file to see if it is actually + # clean. + check_cached_diff + +ok 7 - add a racily clean file to an already split index #0 + +expecting success of 1701.8 'add a racily clean file to an already split index #1': + rm -f .git/index .git/sharedindex.* && + + git update-index --split-index && + + # The next three commands must be run within the same + # second. + echo "cached content" >racy-file && + + # Update the split index. The cache entry of racy-file + # will be stored only in the split index. + git update-index --add racy-file && + + # File size must stay the same. + echo "dirty worktree" >racy-file && + + # Subsequent git commands should notice that racy-file + # and the split index have the same mtime, and check + # the content of the file to see if it is actually + # clean. + check_cached_diff + +ok 8 - add a racily clean file to an already split index #1 + +expecting success of 1701.9 'add a racily clean file to an already split index #2': + rm -f .git/index .git/sharedindex.* && + + git update-index --split-index && + + # The next three commands must be run within the same + # second. + echo "cached content" >racy-file && + + # Update the split index. The cache entry of racy-file + # will be stored only in the split index. + git update-index --add racy-file && + + # File size must stay the same. + echo "dirty worktree" >racy-file && + + # Subsequent git commands should notice that racy-file + # and the split index have the same mtime, and check + # the content of the file to see if it is actually + # clean. + check_cached_diff + +ok 9 - add a racily clean file to an already split index #2 + +expecting success of 1701.10 'add a racily clean file to an already split index #3': + rm -f .git/index .git/sharedindex.* && + + git update-index --split-index && + + # The next three commands must be run within the same + # second. + echo "cached content" >racy-file && + + # Update the split index. The cache entry of racy-file + # will be stored only in the split index. + git update-index --add racy-file && + + # File size must stay the same. + echo "dirty worktree" >racy-file && + + # Subsequent git commands should notice that racy-file + # and the split index have the same mtime, and check + # the content of the file to see if it is actually + # clean. + check_cached_diff + +ok 10 - add a racily clean file to an already split index #3 + +expecting success of 1701.11 'add a racily clean file to an already split index #4': + rm -f .git/index .git/sharedindex.* && + + git update-index --split-index && + + # The next three commands must be run within the same + # second. + echo "cached content" >racy-file && + + # Update the split index. The cache entry of racy-file + # will be stored only in the split index. + git update-index --add racy-file && + + # File size must stay the same. + echo "dirty worktree" >racy-file && + + # Subsequent git commands should notice that racy-file + # and the split index have the same mtime, and check + # the content of the file to see if it is actually + # clean. + check_cached_diff + +ok 11 - add a racily clean file to an already split index #4 + +expecting success of 1701.12 'split the index when the index contains a racily clean cache entry #0': + rm -f .git/index .git/sharedindex.* && + + # The next three commands must be run within the same + # second. + echo "cached content" >racy-file && + + git update-index --add racy-file && + + # File size must stay the same. + echo "dirty worktree" >racy-file && + + # Now wait a bit to ensure that the split index written + # below will get a more recent mtime than racy-file. + sleep 1 && + + # Update and split the index when the index contains + # the racily clean cache entry of racy-file. + # A corresponding replacement cache entry with smudged + # stat data should be added to the new split index. + git update-index --split-index --add other-file && + + # Subsequent git commands should notice the smudged + # stat data in the replacement cache entry and that it + # doesnt match with the file the worktree. + check_cached_diff + +ok 12 - split the index when the index contains a racily clean cache entry #0 + +expecting success of 1701.13 'split the index when the index contains a racily clean cache entry #1': + rm -f .git/index .git/sharedindex.* && + + # The next three commands must be run within the same + # second. + echo "cached content" >racy-file && + + git update-index --add racy-file && + + # File size must stay the same. + echo "dirty worktree" >racy-file && + + # Now wait a bit to ensure that the split index written + # below will get a more recent mtime than racy-file. + sleep 1 && + + # Update and split the index when the index contains + # the racily clean cache entry of racy-file. + # A corresponding replacement cache entry with smudged + # stat data should be added to the new split index. + git update-index --split-index --add other-file && + + # Subsequent git commands should notice the smudged + # stat data in the replacement cache entry and that it + # doesnt match with the file the worktree. + check_cached_diff + +ok 13 - split the index when the index contains a racily clean cache entry #1 + +expecting success of 1701.14 'split the index when the index contains a racily clean cache entry #2': + rm -f .git/index .git/sharedindex.* && + + # The next three commands must be run within the same + # second. + echo "cached content" >racy-file && + + git update-index --add racy-file && + + # File size must stay the same. + echo "dirty worktree" >racy-file && + + # Now wait a bit to ensure that the split index written + # below will get a more recent mtime than racy-file. + sleep 1 && + + # Update and split the index when the index contains + # the racily clean cache entry of racy-file. + # A corresponding replacement cache entry with smudged + # stat data should be added to the new split index. + git update-index --split-index --add other-file && + + # Subsequent git commands should notice the smudged + # stat data in the replacement cache entry and that it + # doesnt match with the file the worktree. + check_cached_diff + +ok 14 - split the index when the index contains a racily clean cache entry #2 + +expecting success of 1701.15 'split the index when the index contains a racily clean cache entry #3': + rm -f .git/index .git/sharedindex.* && + + # The next three commands must be run within the same + # second. + echo "cached content" >racy-file && + + git update-index --add racy-file && + + # File size must stay the same. + echo "dirty worktree" >racy-file && + + # Now wait a bit to ensure that the split index written + # below will get a more recent mtime than racy-file. + sleep 1 && + + # Update and split the index when the index contains + # the racily clean cache entry of racy-file. + # A corresponding replacement cache entry with smudged + # stat data should be added to the new split index. + git update-index --split-index --add other-file && + + # Subsequent git commands should notice the smudged + # stat data in the replacement cache entry and that it + # doesnt match with the file the worktree. + check_cached_diff + +ok 15 - split the index when the index contains a racily clean cache entry #3 + +expecting success of 1701.16 'split the index when the index contains a racily clean cache entry #4': + rm -f .git/index .git/sharedindex.* && + + # The next three commands must be run within the same + # second. + echo "cached content" >racy-file && + + git update-index --add racy-file && + + # File size must stay the same. + echo "dirty worktree" >racy-file && + + # Now wait a bit to ensure that the split index written + # below will get a more recent mtime than racy-file. + sleep 1 && + + # Update and split the index when the index contains + # the racily clean cache entry of racy-file. + # A corresponding replacement cache entry with smudged + # stat data should be added to the new split index. + git update-index --split-index --add other-file && + + # Subsequent git commands should notice the smudged + # stat data in the replacement cache entry and that it + # doesnt match with the file the worktree. + check_cached_diff + +ok 16 - split the index when the index contains a racily clean cache entry #4 + +expecting success of 1701.17 'update the split index when it contains a new racily clean cache entry #0': + rm -f .git/index .git/sharedindex.* && + + git update-index --split-index && + + # The next three commands must be run within the same + # second. + echo "cached content" >racy-file && + + # Update the split index. The cache entry of racy-file + # will be stored only in the split index. + git update-index --add racy-file && + + # File size must stay the same. + echo "dirty worktree" >racy-file && + + # Now wait a bit to ensure that the split index written + # below will get a more recent mtime than racy-file. + sleep 1 && + + # Update the split index when the racily clean cache + # entry of racy-file is only stored in the split index. + # An updated cache entry with smudged stat data should + # be added to the new split index. + git update-index --add other-file && + + # Subsequent git commands should notice the smudged + # stat data. + check_cached_diff + +ok 17 - update the split index when it contains a new racily clean cache entry #0 + +expecting success of 1701.18 'update the split index when it contains a new racily clean cache entry #1': + rm -f .git/index .git/sharedindex.* && + + git update-index --split-index && + + # The next three commands must be run within the same + # second. + echo "cached content" >racy-file && + + # Update the split index. The cache entry of racy-file + # will be stored only in the split index. + git update-index --add racy-file && + + # File size must stay the same. + echo "dirty worktree" >racy-file && + + # Now wait a bit to ensure that the split index written + # below will get a more recent mtime than racy-file. + sleep 1 && + + # Update the split index when the racily clean cache + # entry of racy-file is only stored in the split index. + # An updated cache entry with smudged stat data should + # be added to the new split index. + git update-index --add other-file && + + # Subsequent git commands should notice the smudged + # stat data. + check_cached_diff + +ok 18 - update the split index when it contains a new racily clean cache entry #1 + +expecting success of 1701.19 'update the split index when it contains a new racily clean cache entry #2': + rm -f .git/index .git/sharedindex.* && + + git update-index --split-index && + + # The next three commands must be run within the same + # second. + echo "cached content" >racy-file && + + # Update the split index. The cache entry of racy-file + # will be stored only in the split index. + git update-index --add racy-file && + + # File size must stay the same. + echo "dirty worktree" >racy-file && + + # Now wait a bit to ensure that the split index written + # below will get a more recent mtime than racy-file. + sleep 1 && + + # Update the split index when the racily clean cache + # entry of racy-file is only stored in the split index. + # An updated cache entry with smudged stat data should + # be added to the new split index. + git update-index --add other-file && + + # Subsequent git commands should notice the smudged + # stat data. + check_cached_diff + +ok 19 - update the split index when it contains a new racily clean cache entry #2 + +expecting success of 1701.20 'update the split index when it contains a new racily clean cache entry #3': + rm -f .git/index .git/sharedindex.* && + + git update-index --split-index && + + # The next three commands must be run within the same + # second. + echo "cached content" >racy-file && + + # Update the split index. The cache entry of racy-file + # will be stored only in the split index. + git update-index --add racy-file && + + # File size must stay the same. + echo "dirty worktree" >racy-file && + + # Now wait a bit to ensure that the split index written + # below will get a more recent mtime than racy-file. + sleep 1 && + + # Update the split index when the racily clean cache + # entry of racy-file is only stored in the split index. + # An updated cache entry with smudged stat data should + # be added to the new split index. + git update-index --add other-file && + + # Subsequent git commands should notice the smudged + # stat data. + check_cached_diff + +ok 20 - update the split index when it contains a new racily clean cache entry #3 + +expecting success of 1701.21 'update the split index when it contains a new racily clean cache entry #4': + rm -f .git/index .git/sharedindex.* && + + git update-index --split-index && + + # The next three commands must be run within the same + # second. + echo "cached content" >racy-file && + + # Update the split index. The cache entry of racy-file + # will be stored only in the split index. + git update-index --add racy-file && + + # File size must stay the same. + echo "dirty worktree" >racy-file && + + # Now wait a bit to ensure that the split index written + # below will get a more recent mtime than racy-file. + sleep 1 && + + # Update the split index when the racily clean cache + # entry of racy-file is only stored in the split index. + # An updated cache entry with smudged stat data should + # be added to the new split index. + git update-index --add other-file && + + # Subsequent git commands should notice the smudged + # stat data. + check_cached_diff + +ok 21 - update the split index when it contains a new racily clean cache entry #4 + +expecting success of 1701.22 'update the split index when a racily clean cache entry is stored only in the shared index #0': + rm -f .git/index .git/sharedindex.* && + + # The next three commands must be run within the same + # second. + echo "cached content" >racy-file && + + # Update and split the index. The cache entry of + # racy-file will be stored only in the shared index. + git update-index --split-index --add racy-file && + + # File size must stay the same. + echo "dirty worktree" >racy-file && + + # Now wait a bit to ensure that the split index written + # below will get a more recent mtime than racy-file. + sleep 1 && + + # Update the split index when the racily clean cache + # entry of racy-file is only stored in the shared index. + # A corresponding replacement cache entry with smudged + # stat data should be added to the new split index. + git update-index --add other-file && + + # Subsequent git commands should notice the smudged + # stat data. + check_cached_diff + +ok 22 - update the split index when a racily clean cache entry is stored only in the shared index #0 + +expecting success of 1701.23 'update the split index when a racily clean cache entry is stored only in the shared index #1': + rm -f .git/index .git/sharedindex.* && + + # The next three commands must be run within the same + # second. + echo "cached content" >racy-file && + + # Update and split the index. The cache entry of + # racy-file will be stored only in the shared index. + git update-index --split-index --add racy-file && + + # File size must stay the same. + echo "dirty worktree" >racy-file && + + # Now wait a bit to ensure that the split index written + # below will get a more recent mtime than racy-file. + sleep 1 && + + # Update the split index when the racily clean cache + # entry of racy-file is only stored in the shared index. + # A corresponding replacement cache entry with smudged + # stat data should be added to the new split index. + git update-index --add other-file && + + # Subsequent git commands should notice the smudged + # stat data. + check_cached_diff + +ok 23 - update the split index when a racily clean cache entry is stored only in the shared index #1 + +expecting success of 1701.24 'update the split index when a racily clean cache entry is stored only in the shared index #2': + rm -f .git/index .git/sharedindex.* && + + # The next three commands must be run within the same + # second. + echo "cached content" >racy-file && + + # Update and split the index. The cache entry of + # racy-file will be stored only in the shared index. + git update-index --split-index --add racy-file && + + # File size must stay the same. + echo "dirty worktree" >racy-file && + + # Now wait a bit to ensure that the split index written + # below will get a more recent mtime than racy-file. + sleep 1 && + + # Update the split index when the racily clean cache + # entry of racy-file is only stored in the shared index. + # A corresponding replacement cache entry with smudged + # stat data should be added to the new split index. + git update-index --add other-file && + + # Subsequent git commands should notice the smudged + # stat data. + check_cached_diff + +ok 24 - update the split index when a racily clean cache entry is stored only in the shared index #2 + +expecting success of 1701.25 'update the split index when a racily clean cache entry is stored only in the shared index #3': + rm -f .git/index .git/sharedindex.* && + + # The next three commands must be run within the same + # second. + echo "cached content" >racy-file && + + # Update and split the index. The cache entry of + # racy-file will be stored only in the shared index. + git update-index --split-index --add racy-file && + + # File size must stay the same. + echo "dirty worktree" >racy-file && + + # Now wait a bit to ensure that the split index written + # below will get a more recent mtime than racy-file. + sleep 1 && + + # Update the split index when the racily clean cache + # entry of racy-file is only stored in the shared index. + # A corresponding replacement cache entry with smudged + # stat data should be added to the new split index. + git update-index --add other-file && + + # Subsequent git commands should notice the smudged + # stat data. + check_cached_diff + +ok 25 - update the split index when a racily clean cache entry is stored only in the shared index #3 + +expecting success of 1701.26 'update the split index when a racily clean cache entry is stored only in the shared index #4': + rm -f .git/index .git/sharedindex.* && + + # The next three commands must be run within the same + # second. + echo "cached content" >racy-file && + + # Update and split the index. The cache entry of + # racy-file will be stored only in the shared index. + git update-index --split-index --add racy-file && + + # File size must stay the same. + echo "dirty worktree" >racy-file && + + # Now wait a bit to ensure that the split index written + # below will get a more recent mtime than racy-file. + sleep 1 && + + # Update the split index when the racily clean cache + # entry of racy-file is only stored in the shared index. + # A corresponding replacement cache entry with smudged + # stat data should be added to the new split index. + git update-index --add other-file && + + # Subsequent git commands should notice the smudged + # stat data. + check_cached_diff + +ok 26 - update the split index when a racily clean cache entry is stored only in the shared index #4 + +expecting success of 1701.27 'update the split index after unpack trees() copied a racily clean cache entry from the shared index #0': + rm -f .git/index .git/sharedindex.* && + + # The next three commands must be run within the same + # second. + echo "cached content" >racy-file && + + # Update and split the index. The cache entry of + # racy-file will be stored only in the shared index. + git update-index --split-index --add racy-file && + + # File size must stay the same. + echo "dirty worktree" >racy-file && + + # Now wait a bit to ensure that the split index written + # below will get a more recent mtime than racy-file. + sleep 1 && + + # Update the split index after unpack_trees() copied the + # racily clean cache entry of racy-file from the shared + # index. A corresponding replacement cache entry + # with smudged stat data should be added to the new + # split index. + git read-tree -m HEAD && + + # Subsequent git commands should notice the smudged + # stat data. + check_cached_diff + +ok 27 - update the split index after unpack trees() copied a racily clean cache entry from the shared index #0 + +expecting success of 1701.28 'update the split index after unpack trees() copied a racily clean cache entry from the shared index #1': + rm -f .git/index .git/sharedindex.* && + + # The next three commands must be run within the same + # second. + echo "cached content" >racy-file && + + # Update and split the index. The cache entry of + # racy-file will be stored only in the shared index. + git update-index --split-index --add racy-file && + + # File size must stay the same. + echo "dirty worktree" >racy-file && + + # Now wait a bit to ensure that the split index written + # below will get a more recent mtime than racy-file. + sleep 1 && + + # Update the split index after unpack_trees() copied the + # racily clean cache entry of racy-file from the shared + # index. A corresponding replacement cache entry + # with smudged stat data should be added to the new + # split index. + git read-tree -m HEAD && + + # Subsequent git commands should notice the smudged + # stat data. + check_cached_diff + +ok 28 - update the split index after unpack trees() copied a racily clean cache entry from the shared index #1 + +expecting success of 1701.29 'update the split index after unpack trees() copied a racily clean cache entry from the shared index #2': + rm -f .git/index .git/sharedindex.* && + + # The next three commands must be run within the same + # second. + echo "cached content" >racy-file && + + # Update and split the index. The cache entry of + # racy-file will be stored only in the shared index. + git update-index --split-index --add racy-file && + + # File size must stay the same. + echo "dirty worktree" >racy-file && + + # Now wait a bit to ensure that the split index written + # below will get a more recent mtime than racy-file. + sleep 1 && + + # Update the split index after unpack_trees() copied the + # racily clean cache entry of racy-file from the shared + # index. A corresponding replacement cache entry + # with smudged stat data should be added to the new + # split index. + git read-tree -m HEAD && + + # Subsequent git commands should notice the smudged + # stat data. + check_cached_diff + +ok 29 - update the split index after unpack trees() copied a racily clean cache entry from the shared index #2 + +expecting success of 1701.30 'update the split index after unpack trees() copied a racily clean cache entry from the shared index #3': + rm -f .git/index .git/sharedindex.* && + + # The next three commands must be run within the same + # second. + echo "cached content" >racy-file && + + # Update and split the index. The cache entry of + # racy-file will be stored only in the shared index. + git update-index --split-index --add racy-file && + + # File size must stay the same. + echo "dirty worktree" >racy-file && + + # Now wait a bit to ensure that the split index written + # below will get a more recent mtime than racy-file. + sleep 1 && + + # Update the split index after unpack_trees() copied the + # racily clean cache entry of racy-file from the shared + # index. A corresponding replacement cache entry + # with smudged stat data should be added to the new + # split index. + git read-tree -m HEAD && + + # Subsequent git commands should notice the smudged + # stat data. + check_cached_diff + +ok 30 - update the split index after unpack trees() copied a racily clean cache entry from the shared index #3 + +expecting success of 1701.31 'update the split index after unpack trees() copied a racily clean cache entry from the shared index #4': + rm -f .git/index .git/sharedindex.* && + + # The next three commands must be run within the same + # second. + echo "cached content" >racy-file && + + # Update and split the index. The cache entry of + # racy-file will be stored only in the shared index. + git update-index --split-index --add racy-file && + + # File size must stay the same. + echo "dirty worktree" >racy-file && + + # Now wait a bit to ensure that the split index written + # below will get a more recent mtime than racy-file. + sleep 1 && + + # Update the split index after unpack_trees() copied the + # racily clean cache entry of racy-file from the shared + # index. A corresponding replacement cache entry + # with smudged stat data should be added to the new + # split index. + git read-tree -m HEAD && + + # Subsequent git commands should notice the smudged + # stat data. + check_cached_diff + +ok 31 - update the split index after unpack trees() copied a racily clean cache entry from the shared index #4 + +# passed all 31 test(s) +1..31 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t2009-checkout-statinfo.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2009-checkout-statinfo/.git/ expecting success of 2009.1 'setup': @@ -66718,6 +67444,740 @@ 1..10 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t2014-checkout-switch.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2014-checkout-switch/.git/ +expecting success of 2014.1 'setup': + echo Hello >file && + git add file && + test_tick && + git commit -m V1 && + echo Hello world >file && + git add file && + git checkout -b other + +[master (root-commit) 68a43dc] V1 + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file +Switched to a new branch 'other' +ok 1 - setup + +expecting success of 2014.2 'check all changes are staged': + git diff --exit-code + +ok 2 - check all changes are staged + +expecting success of 2014.3 'second commit': + git commit -m V2 + +[other c55967b] V2 + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +ok 3 - second commit + +expecting success of 2014.4 'check': + git diff --cached --exit-code + +ok 4 - check + +# passed all 4 test(s) +1..4 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t2015-checkout-unborn.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2015-checkout-unborn/.git/ +expecting success of 2015.1 'setup': + mkdir parent && + (cd parent && + git init && + echo content >file && + git add file && + git commit -m base + ) && + git fetch parent master:origin + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2015-checkout-unborn/parent/.git/ +[master (root-commit) 5d770fe] base + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file +From parent + * [new branch] master -> origin +ok 1 - setup + +expecting success of 2015.2 'checkout from unborn preserves untracked files': + echo precious >expect && + echo precious >file && + test_must_fail git checkout -b new origin && + test_cmp expect file + +error: The following untracked working tree files would be overwritten by checkout: + file +Please move or remove them before you switch branches. +Aborting +ok 2 - checkout from unborn preserves untracked files + +expecting success of 2015.3 'checkout from unborn preserves index contents': + echo precious >expect && + echo precious >file && + git add file && + test_must_fail git checkout -b new origin && + test_cmp expect file && + git show :file >file && + test_cmp expect file + +error: Your local changes to the following files would be overwritten by checkout: + file +Please commit your changes or stash them before you switch branches. +Aborting +ok 3 - checkout from unborn preserves index contents + +expecting success of 2015.4 'checkout from unborn merges identical index contents': + echo content >file && + git add file && + git checkout -b new origin + +Switched to a new branch 'new' +ok 4 - checkout from unborn merges identical index contents + +expecting success of 2015.5 'checking out another branch from unborn state': + git checkout --orphan newroot && + git checkout -b anothername && + test_must_fail git show-ref --verify refs/heads/newroot && + git symbolic-ref HEAD >actual && + echo refs/heads/anothername >expect && + test_cmp expect actual + +Switched to a new branch 'newroot' +Switched to a new branch 'anothername' +fatal: 'refs/heads/newroot' - not a valid ref +ok 5 - checking out another branch from unborn state + +expecting success of 2015.6 'checking out in a newly created repo': + test_create_repo empty && + ( + cd empty && + git symbolic-ref HEAD >expect && + test_must_fail git checkout && + git symbolic-ref HEAD >actual && + test_cmp expect actual + ) + +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2015-checkout-unborn/empty/.git/ +fatal: You are on a branch yet to be born +ok 6 - checking out in a newly created repo + +# passed all 6 test(s) +1..6 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t2012-checkout-last.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2012-checkout-last/.git/ +expecting success of 2012.1 'setup': + echo hello >world && + git add world && + git commit -m initial && + git branch other && + echo "hello again" >>world && + git add world && + git commit -m second + +[master (root-commit) b8cd0f7] initial + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 world +[master 261306f] second + Author: A U Thor + 1 file changed, 1 insertion(+) +ok 1 - setup + +expecting success of 2012.2 '"checkout -" does not work initially': + test_must_fail git checkout - + +error: pathspec '-' did not match any file(s) known to git +ok 2 - "checkout -" does not work initially + +expecting success of 2012.3 'first branch switch': + git checkout other + +Switched to branch 'other' +ok 3 - first branch switch + +expecting success of 2012.4 '"checkout -" switches back': + git checkout - && + test "z$(git symbolic-ref HEAD)" = "zrefs/heads/master" + +Switched to branch 'master' +ok 4 - "checkout -" switches back + +expecting success of 2012.5 '"checkout -" switches forth': + git checkout - && + test "z$(git symbolic-ref HEAD)" = "zrefs/heads/other" + +Switched to branch 'other' +ok 5 - "checkout -" switches forth + +expecting success of 2012.6 'detach HEAD': + git checkout $(git rev-parse HEAD) + +Note: switching to 'b8cd0f7432d68cb7ccc99e41ef8985d197bfd99b'. + +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. + +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: + + git switch -c + +Or undo this operation with: + + git switch - + +Turn off this advice by setting config variable advice.detachedHead to false + +HEAD is now at b8cd0f7 initial +ok 6 - detach HEAD + +expecting success of 2012.7 '"checkout -" attaches again': + git checkout - && + test "z$(git symbolic-ref HEAD)" = "zrefs/heads/other" + +Switched to branch 'other' +ok 7 - "checkout -" attaches again + +expecting success of 2012.8 '"checkout -" detaches again': + git checkout - && + test "z$(git rev-parse HEAD)" = "z$(git rev-parse other)" && + test_must_fail git symbolic-ref HEAD + +Note: switching to 'b8cd0f7432d68cb7ccc99e41ef8985d197bfd99b'. + +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. + +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: + + git switch -c + +Or undo this operation with: + + git switch - + +Turn off this advice by setting config variable advice.detachedHead to false + +HEAD is now at b8cd0f7 initial +fatal: ref HEAD is not a symbolic ref +ok 8 - "checkout -" detaches again + +expecting success of 2012.9 'more switches': + for i in 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 + do + git checkout -b branch$i + done + +Switched to a new branch 'branch16' +Switched to a new branch 'branch15' +Switched to a new branch 'branch14' +Switched to a new branch 'branch13' +Switched to a new branch 'branch12' +Switched to a new branch 'branch11' +Switched to a new branch 'branch10' +Switched to a new branch 'branch9' +Switched to a new branch 'branch8' +Switched to a new branch 'branch7' +Switched to a new branch 'branch6' +Switched to a new branch 'branch5' +Switched to a new branch 'branch4' +Switched to a new branch 'branch3' +Switched to a new branch 'branch2' +Switched to a new branch 'branch1' +ok 9 - more switches + +expecting success of 2012.10 'switch to the last': + more_switches && + git checkout @{-1} && + test "z$(git symbolic-ref HEAD)" = "zrefs/heads/branch2" + +Switched to branch 'branch16' +Switched to branch 'branch15' +Switched to branch 'branch14' +Switched to branch 'branch13' +Switched to branch 'branch12' +Switched to branch 'branch11' +Switched to branch 'branch10' +Switched to branch 'branch9' +Switched to branch 'branch8' +Switched to branch 'branch7' +Switched to branch 'branch6' +Switched to branch 'branch5' +Switched to branch 'branch4' +Switched to branch 'branch3' +Switched to branch 'branch2' +Switched to branch 'branch1' +Switched to branch 'branch2' +ok 10 - switch to the last + +expecting success of 2012.11 'switch to second from the last': + more_switches && + git checkout @{-2} && + test "z$(git symbolic-ref HEAD)" = "zrefs/heads/branch3" + +Switched to branch 'branch16' +Switched to branch 'branch15' +Switched to branch 'branch14' +Switched to branch 'branch13' +Switched to branch 'branch12' +Switched to branch 'branch11' +Switched to branch 'branch10' +Switched to branch 'branch9' +Switched to branch 'branch8' +Switched to branch 'branch7' +Switched to branch 'branch6' +Switched to branch 'branch5' +Switched to branch 'branch4' +Switched to branch 'branch3' +Switched to branch 'branch2' +Switched to branch 'branch1' +Switched to branch 'branch3' +ok 11 - switch to second from the last + +expecting success of 2012.12 'switch to third from the last': + more_switches && + git checkout @{-3} && + test "z$(git symbolic-ref HEAD)" = "zrefs/heads/branch4" + +Switched to branch 'branch16' +Switched to branch 'branch15' +Switched to branch 'branch14' +Switched to branch 'branch13' +Switched to branch 'branch12' +Switched to branch 'branch11' +Switched to branch 'branch10' +Switched to branch 'branch9' +Switched to branch 'branch8' +Switched to branch 'branch7' +Switched to branch 'branch6' +Switched to branch 'branch5' +Switched to branch 'branch4' +Switched to branch 'branch3' +Switched to branch 'branch2' +Switched to branch 'branch1' +Switched to branch 'branch4' +ok 12 - switch to third from the last + +expecting success of 2012.13 'switch to fourth from the last': + more_switches && + git checkout @{-4} && + test "z$(git symbolic-ref HEAD)" = "zrefs/heads/branch5" + +Switched to branch 'branch16' +Switched to branch 'branch15' +Switched to branch 'branch14' +Switched to branch 'branch13' +Switched to branch 'branch12' +Switched to branch 'branch11' +Switched to branch 'branch10' +Switched to branch 'branch9' +Switched to branch 'branch8' +Switched to branch 'branch7' +Switched to branch 'branch6' +Switched to branch 'branch5' +Switched to branch 'branch4' +Switched to branch 'branch3' +Switched to branch 'branch2' +Switched to branch 'branch1' +Switched to branch 'branch5' +ok 13 - switch to fourth from the last + +expecting success of 2012.14 'switch to twelfth from the last': + more_switches && + git checkout @{-12} && + test "z$(git symbolic-ref HEAD)" = "zrefs/heads/branch13" + +Switched to branch 'branch16' +Switched to branch 'branch15' +Switched to branch 'branch14' +Switched to branch 'branch13' +Switched to branch 'branch12' +Switched to branch 'branch11' +Switched to branch 'branch10' +Switched to branch 'branch9' +Switched to branch 'branch8' +Switched to branch 'branch7' +Switched to branch 'branch6' +Switched to branch 'branch5' +Switched to branch 'branch4' +Switched to branch 'branch3' +Switched to branch 'branch2' +Switched to branch 'branch1' +Switched to branch 'branch13' +ok 14 - switch to twelfth from the last + +expecting success of 2012.15 'merge base test setup': + git checkout -b another other && + echo "hello again" >>world && + git add world && + git commit -m third + +Switched to a new branch 'another' +[another 7bc4f0b] third + Author: A U Thor + 1 file changed, 1 insertion(+) +ok 15 - merge base test setup + +expecting success of 2012.16 'another...master': + git checkout another && + git checkout another...master && + test "z$(git rev-parse --verify HEAD)" = "z$(git rev-parse --verify master^)" + +Already on 'another' +Note: switching to 'another...master'. + +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. + +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: + + git switch -c + +Or undo this operation with: + + git switch - + +Turn off this advice by setting config variable advice.detachedHead to false + +HEAD is now at b8cd0f7 initial +ok 16 - another...master + +expecting success of 2012.17 '...master': + git checkout another && + git checkout ...master && + test "z$(git rev-parse --verify HEAD)" = "z$(git rev-parse --verify master^)" + +Previous HEAD position was b8cd0f7 initial +Switched to branch 'another' +Note: switching to '...master'. + +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. + +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: + + git switch -c + +Or undo this operation with: + + git switch - + +Turn off this advice by setting config variable advice.detachedHead to false + +HEAD is now at b8cd0f7 initial +ok 17 - ...master + +expecting success of 2012.18 'master...': + git checkout another && + git checkout master... && + test "z$(git rev-parse --verify HEAD)" = "z$(git rev-parse --verify master^)" + +Previous HEAD position was b8cd0f7 initial +Switched to branch 'another' +Note: switching to 'master...'. + +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. + +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: + + git switch -c + +Or undo this operation with: + + git switch - + +Turn off this advice by setting config variable advice.detachedHead to false + +HEAD is now at b8cd0f7 initial +ok 18 - master... + +expecting success of 2012.19 '"checkout -" works after a rebase A': + git checkout master && + git checkout other && + git rebase master && + git checkout - && + test "z$(git symbolic-ref HEAD)" = "zrefs/heads/master" + +Previous HEAD position was b8cd0f7 initial +Switched to branch 'master' +Switched to branch 'other' + Successfully rebased and updated refs/heads/other. +Switched to branch 'master' +ok 19 - "checkout -" works after a rebase A + +expecting success of 2012.20 '"checkout -" works after a rebase A B': + git branch moodle master~1 && + git checkout master && + git checkout other && + git rebase master moodle && + git checkout - && + test "z$(git symbolic-ref HEAD)" = "zrefs/heads/master" + +Already on 'master' +Switched to branch 'other' + Successfully rebased and updated refs/heads/moodle. +Switched to branch 'master' +ok 20 - "checkout -" works after a rebase A B + +expecting success of 2012.21 '"checkout -" works after a rebase -i A': + git checkout master && + git checkout other && + git rebase -i master && + git checkout - && + test "z$(git symbolic-ref HEAD)" = "zrefs/heads/master" + +Already on 'master' +Switched to branch 'other' + Successfully rebased and updated refs/heads/other. +Switched to branch 'master' +ok 21 - "checkout -" works after a rebase -i A + +expecting success of 2012.22 '"checkout -" works after a rebase -i A B': + git branch foodle master~1 && + git checkout master && + git checkout other && + git rebase master foodle && + git checkout - && + test "z$(git symbolic-ref HEAD)" = "zrefs/heads/master" + +Already on 'master' +Switched to branch 'other' + Successfully rebased and updated refs/heads/foodle. +Switched to branch 'master' +ok 22 - "checkout -" works after a rebase -i A B + +# passed all 22 test(s) +1..22 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t2017-checkout-orphan.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2017-checkout-orphan/.git/ +expecting success of 2017.1 'Setup': + echo "Initial" >"$TEST_FILE" && + git add "$TEST_FILE" && + git commit -m "First Commit" && + test_tick && + echo "State 1" >>"$TEST_FILE" && + git add "$TEST_FILE" && + test_tick && + git commit -m "Second Commit" + +[master (root-commit) df316c6] First Commit + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 foo +[master 8c3f362] Second Commit + Author: A U Thor + 1 file changed, 1 insertion(+) +ok 1 - Setup + +expecting success of 2017.2 '--orphan creates a new orphan branch from HEAD': + git checkout --orphan alpha && + test_must_fail git rev-parse --verify HEAD && + test "refs/heads/alpha" = "$(git symbolic-ref HEAD)" && + test_tick && + git commit -m "Third Commit" && + test_must_fail git rev-parse --verify HEAD^ && + git diff-tree --quiet master alpha + +Switched to a new branch 'alpha' +fatal: Needed a single revision +[alpha (root-commit) 6f20c32] Third Commit + Author: A U Thor + 1 file changed, 2 insertions(+) + create mode 100644 foo +fatal: Needed a single revision +ok 2 - --orphan creates a new orphan branch from HEAD + +expecting success of 2017.3 '--orphan creates a new orphan branch from ': + git checkout master && + git checkout --orphan beta master^ && + test_must_fail git rev-parse --verify HEAD && + test "refs/heads/beta" = "$(git symbolic-ref HEAD)" && + test_tick && + git commit -m "Fourth Commit" && + test_must_fail git rev-parse --verify HEAD^ && + git diff-tree --quiet master^ beta + +Switched to branch 'master' +Switched to a new branch 'beta' +fatal: Needed a single revision +[beta (root-commit) 530edda] Fourth Commit + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 foo +fatal: Needed a single revision +ok 3 - --orphan creates a new orphan branch from + +expecting success of 2017.4 '--orphan must be rejected with -b': + git checkout master && + test_must_fail git checkout --orphan new -b newer && + test refs/heads/master = "$(git symbolic-ref HEAD)" + +Switched to branch 'master' +fatal: -b, -B and --orphan are mutually exclusive +ok 4 - --orphan must be rejected with -b + +expecting success of 2017.5 '--orphan must be rejected with -t': + git checkout master && + test_must_fail git checkout --orphan new -t master && + test refs/heads/master = "$(git symbolic-ref HEAD)" + +Already on 'master' +fatal: '--orphan' cannot be used with '-t' +ok 5 - --orphan must be rejected with -t + +expecting success of 2017.6 '--orphan ignores branch.autosetupmerge': + git checkout master && + git config branch.autosetupmerge always && + git checkout --orphan gamma && + test -z "$(git config branch.gamma.merge)" && + test refs/heads/gamma = "$(git symbolic-ref HEAD)" && + test_must_fail git rev-parse --verify HEAD^ + +Already on 'master' +Switched to a new branch 'gamma' +fatal: Needed a single revision +ok 6 - --orphan ignores branch.autosetupmerge + +expecting success of 2017.7 '--orphan makes reflog by default': + git checkout master && + git config --unset core.logAllRefUpdates && + git checkout --orphan delta && + test_must_fail git rev-parse --verify delta@{0} && + git commit -m Delta && + git rev-parse --verify delta@{0} + +Switched to branch 'master' +Switched to a new branch 'delta' +fatal: Needed a single revision +[delta (root-commit) 9beee35] Delta + Author: A U Thor + 1 file changed, 2 insertions(+) + create mode 100644 foo +9beee35744aee191f8186ef0a6ab78f710cdd57c +ok 7 - --orphan makes reflog by default + +expecting success of 2017.8 '--orphan does not make reflog when core.logAllRefUpdates = false': + git checkout master && + git config core.logAllRefUpdates false && + git checkout --orphan epsilon && + test_must_fail git rev-parse --verify epsilon@{0} && + git commit -m Epsilon && + test_must_fail git rev-parse --verify epsilon@{0} + +Switched to branch 'master' +Switched to a new branch 'epsilon' +fatal: Needed a single revision +[epsilon (root-commit) c5e7701] Epsilon + Author: A U Thor + 1 file changed, 2 insertions(+) + create mode 100644 foo +fatal: Needed a single revision +ok 8 - --orphan does not make reflog when core.logAllRefUpdates = false + +expecting success of 2017.9 '--orphan with -l makes reflog when core.logAllRefUpdates = false': + git checkout master && + git checkout -l --orphan zeta && + test_must_fail git rev-parse --verify zeta@{0} && + git commit -m Zeta && + git rev-parse --verify zeta@{0} + +Switched to branch 'master' +Switched to a new branch 'zeta' +fatal: Needed a single revision +[zeta (root-commit) 1b23595] Zeta + Author: A U Thor + 1 file changed, 2 insertions(+) + create mode 100644 foo +1b235958474dccc5c8f228713c620d22e7d1825d +ok 9 - --orphan with -l makes reflog when core.logAllRefUpdates = false + +expecting success of 2017.10 'giving up --orphan not committed when -l and core.logAllRefUpdates = false deletes reflog': + git checkout master && + git checkout -l --orphan eta && + test_must_fail git rev-parse --verify eta@{0} && + git checkout master && + test_must_fail git rev-parse --verify eta@{0} + +Switched to branch 'master' +Switched to a new branch 'eta' +fatal: Needed a single revision +Switched to branch 'master' +fatal: Needed a single revision +ok 10 - giving up --orphan not committed when -l and core.logAllRefUpdates = false deletes reflog + +expecting success of 2017.11 '--orphan is rejected with an existing name': + git checkout master && + test_must_fail git checkout --orphan master && + test refs/heads/master = "$(git symbolic-ref HEAD)" + +Already on 'master' +fatal: A branch named 'master' already exists. +ok 11 - --orphan is rejected with an existing name + +expecting success of 2017.12 '--orphan refuses to switch if a merge is needed': + git checkout master && + git reset --hard && + echo local >>"$TEST_FILE" && + cat "$TEST_FILE" >"$TEST_FILE.saved" && + test_must_fail git checkout --orphan new master^ && + test refs/heads/master = "$(git symbolic-ref HEAD)" && + test_cmp "$TEST_FILE" "$TEST_FILE.saved" && + git diff-index --quiet --cached HEAD && + git reset --hard + +Already on 'master' +HEAD is now at 8c3f362 Second Commit +error: Your local changes to the following files would be overwritten by checkout: + foo +Please commit your changes or stash them before you switch branches. +Aborting +HEAD is now at 8c3f362 Second Commit +ok 12 - --orphan refuses to switch if a merge is needed + +expecting success of 2017.13 'cannot --detach on an unborn branch': + git checkout master && + git checkout --orphan new && + test_must_fail git checkout --detach + +Already on 'master' +Switched to a new branch 'new' +fatal: You are on a branch yet to be born +ok 13 - cannot --detach on an unborn branch + +# passed all 13 test(s) +1..13 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t1510-repo-setup.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1510-repo-setup/.git/ expecting success of 1510.1 '#0: nonbare repo, no explicit configuration': @@ -68118,271 +69578,269 @@ 1..109 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t2012-checkout-last.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2012-checkout-last/.git/ -expecting success of 2012.1 'setup': - echo hello >world && - git add world && - git commit -m initial && - git branch other && - echo "hello again" >>world && - git add world && - git commit -m second +*** t2019-checkout-ambiguous-ref.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2019-checkout-ambiguous-ref/.git/ +expecting success of 2019.1 'setup ambiguous refs': + test_commit branch file && + git branch ambiguity && + git branch vagueness && + test_commit tag file && + git tag ambiguity && + git tag vagueness HEAD:file && + test_commit other file -[master (root-commit) b8cd0f7] initial +[master (root-commit) c291a6e] branch Author: A U Thor 1 file changed, 1 insertion(+) - create mode 100644 world -[master 261306f] second + create mode 100644 file +[master a40f7cf] tag Author: A U Thor - 1 file changed, 1 insertion(+) -ok 1 - setup + 1 file changed, 1 insertion(+), 1 deletion(-) +[master 3b61e26] other + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +ok 1 - setup ambiguous refs -expecting success of 2012.2 '"checkout -" does not work initially': - test_must_fail git checkout - +expecting success of 2019.2 'checkout ambiguous ref succeeds': + git checkout ambiguity >stdout 2>stderr -error: pathspec '-' did not match any file(s) known to git -ok 2 - "checkout -" does not work initially +ok 2 - checkout ambiguous ref succeeds -expecting success of 2012.3 'first branch switch': - git checkout other +expecting success of 2019.3 'checkout produces ambiguity warning': + grep "warning.*ambiguous" stderr -Switched to branch 'other' -ok 3 - first branch switch +warning: refname 'ambiguity' is ambiguous. +ok 3 - checkout produces ambiguity warning -expecting success of 2012.4 '"checkout -" switches back': - git checkout - && - test "z$(git symbolic-ref HEAD)" = "zrefs/heads/master" +expecting success of 2019.4 'checkout chooses branch over tag': + echo refs/heads/ambiguity >expect && + git symbolic-ref HEAD >actual && + test_cmp expect actual && + echo branch >expect && + test_cmp expect file -Switched to branch 'master' -ok 4 - "checkout -" switches back +ok 4 - checkout chooses branch over tag -expecting success of 2012.5 '"checkout -" switches forth': - git checkout - && - test "z$(git symbolic-ref HEAD)" = "zrefs/heads/other" +expecting success of 2019.5 'checkout reports switch to branch': + test_i18ngrep "Switched to branch" stderr && + test_i18ngrep ! "^HEAD is now at" stderr -Switched to branch 'other' -ok 5 - "checkout -" switches forth +checking prerequisite: C_LOCALE_OUTPUT -expecting success of 2012.6 'detach HEAD': - git checkout $(git rev-parse HEAD) +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false -Note: switching to 'b8cd0f7432d68cb7ccc99e41ef8985d197bfd99b'. +) +prerequisite C_LOCALE_OUTPUT ok +Switched to branch 'ambiguity' +ok 5 - checkout reports switch to branch -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. +expecting success of 2019.6 'checkout vague ref succeeds': + git checkout vagueness >stdout 2>stderr && + test_set_prereq VAGUENESS_SUCCESS -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: +ok 6 - checkout vague ref succeeds - git switch -c +expecting success of 2019.7 'checkout produces ambiguity warning': + grep "warning.*ambiguous" stderr -Or undo this operation with: +warning: refname 'vagueness' is ambiguous. +ok 7 - checkout produces ambiguity warning - git switch - +expecting success of 2019.8 'checkout chooses branch over tag': + echo refs/heads/vagueness >expect && + git symbolic-ref HEAD >actual && + test_cmp expect actual && + echo branch >expect && + test_cmp expect file -Turn off this advice by setting config variable advice.detachedHead to false +ok 8 - checkout chooses branch over tag -HEAD is now at b8cd0f7 initial -ok 6 - detach HEAD +expecting success of 2019.9 'checkout reports switch to branch': + test_i18ngrep "Switched to branch" stderr && + test_i18ngrep ! "^HEAD is now at" stderr -expecting success of 2012.7 '"checkout -" attaches again': - git checkout - && - test "z$(git symbolic-ref HEAD)" = "zrefs/heads/other" +Switched to branch 'vagueness' +ok 9 - checkout reports switch to branch -Switched to branch 'other' -ok 7 - "checkout -" attaches again +# passed all 9 test(s) +1..9 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t2018-checkout-branch.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2018-checkout-branch/.git/ +expecting success of 2018.1 'setup': + test_commit initial file1 && + HEAD1=$(git rev-parse --verify HEAD) && -expecting success of 2012.8 '"checkout -" detaches again': - git checkout - && - test "z$(git rev-parse HEAD)" = "z$(git rev-parse other)" && - test_must_fail git symbolic-ref HEAD + test_commit change1 file1 && + HEAD2=$(git rev-parse --verify HEAD) && -Note: switching to 'b8cd0f7432d68cb7ccc99e41ef8985d197bfd99b'. + git branch -m branch1 -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. +[master (root-commit) ee02a18] initial + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file1 +[master 5be17a9] change1 + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +ok 1 - setup -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: +expecting success of 2018.2 'checkout -b to a new branch, set to HEAD': + test_when_finished " + git checkout branch1 && + test_might_fail git branch -D branch2" && + do_checkout branch2 - git switch -c +Switched to a new branch 'branch2' +Switched to branch 'branch1' +Deleted branch branch2 (was 5be17a9). +ok 2 - checkout -b to a new branch, set to HEAD -Or undo this operation with: +expecting success of 2018.3 'checkout -b to a merge base': + test_when_finished " + git checkout branch1 && + test_might_fail git branch -D branch2" && + git checkout -b branch2 branch1... - git switch - +Switched to a new branch 'branch2' +Switched to branch 'branch1' +Deleted branch branch2 (was 5be17a9). +ok 3 - checkout -b to a merge base -Turn off this advice by setting config variable advice.detachedHead to false +expecting success of 2018.4 'checkout -b to a new branch, set to an explicit ref': + test_when_finished " + git checkout branch1 && + test_might_fail git branch -D branch2" && + do_checkout branch2 $HEAD1 -HEAD is now at b8cd0f7 initial -fatal: ref HEAD is not a symbolic ref -ok 8 - "checkout -" detaches again +Switched to a new branch 'branch2' +Switched to branch 'branch1' +Deleted branch branch2 (was ee02a18). +ok 4 - checkout -b to a new branch, set to an explicit ref -expecting success of 2012.9 'more switches': - for i in 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 - do - git checkout -b branch$i - done +expecting success of 2018.5 'checkout -b to a new branch with unmergeable changes fails': + setup_dirty_unmergeable && + do_checkout ! branch2 $HEAD1 && + test_dirty_unmergeable -Switched to a new branch 'branch16' -Switched to a new branch 'branch15' -Switched to a new branch 'branch14' -Switched to a new branch 'branch13' -Switched to a new branch 'branch12' -Switched to a new branch 'branch11' -Switched to a new branch 'branch10' -Switched to a new branch 'branch9' -Switched to a new branch 'branch8' -Switched to a new branch 'branch7' -Switched to a new branch 'branch6' -Switched to a new branch 'branch5' -Switched to a new branch 'branch4' -Switched to a new branch 'branch3' -Switched to a new branch 'branch2' -Switched to a new branch 'branch1' -ok 9 - more switches +error: Your local changes to the following files would be overwritten by checkout: + file1 +Please commit your changes or stash them before you switch branches. +Aborting +diff --git a/file1 b/file1 +index 5be4a41..1725fe9 100644 +--- a/file1 ++++ b/file1 +@@ -1 +1,2 @@ + change1 ++change2 +ok 5 - checkout -b to a new branch with unmergeable changes fails -expecting success of 2012.10 'switch to the last': - more_switches && - git checkout @{-1} && - test "z$(git symbolic-ref HEAD)" = "zrefs/heads/branch2" +expecting success of 2018.6 'checkout -f -b to a new branch with unmergeable changes discards changes': + test_when_finished " + git checkout branch1 && + test_might_fail git branch -D branch2" && -Switched to branch 'branch16' -Switched to branch 'branch15' -Switched to branch 'branch14' -Switched to branch 'branch13' -Switched to branch 'branch12' -Switched to branch 'branch11' -Switched to branch 'branch10' -Switched to branch 'branch9' -Switched to branch 'branch8' -Switched to branch 'branch7' -Switched to branch 'branch6' -Switched to branch 'branch5' -Switched to branch 'branch4' -Switched to branch 'branch3' -Switched to branch 'branch2' + # still dirty and on branch1 + do_checkout branch2 $HEAD1 "-f -b" && + test_dirty_unmergeable_discards_changes + +Switched to a new branch 'branch2' Switched to branch 'branch1' -Switched to branch 'branch2' -ok 10 - switch to the last +Deleted branch branch2 (was ee02a18). +ok 6 - checkout -f -b to a new branch with unmergeable changes discards changes -expecting success of 2012.11 'switch to second from the last': - more_switches && - git checkout @{-2} && - test "z$(git symbolic-ref HEAD)" = "zrefs/heads/branch3" +expecting success of 2018.7 'checkout -b to a new branch preserves mergeable changes': + test_when_finished " + git reset --hard && + git checkout branch1 && + test_might_fail git branch -D branch2" && -Switched to branch 'branch16' -Switched to branch 'branch15' -Switched to branch 'branch14' -Switched to branch 'branch13' -Switched to branch 'branch12' -Switched to branch 'branch11' -Switched to branch 'branch10' -Switched to branch 'branch9' -Switched to branch 'branch8' -Switched to branch 'branch7' -Switched to branch 'branch6' -Switched to branch 'branch5' -Switched to branch 'branch4' -Switched to branch 'branch3' -Switched to branch 'branch2' + setup_dirty_mergeable && + do_checkout branch2 $HEAD1 && + test_dirty_mergeable + +Switched to a new branch 'branch2' +A file2 +diff --git a/file2 b/file2 +new file mode 100644 +index 0000000..6c493ff +--- /dev/null ++++ b/file2 +@@ -0,0 +1 @@ ++file2 +HEAD is now at ee02a18 initial Switched to branch 'branch1' -Switched to branch 'branch3' -ok 11 - switch to second from the last +Deleted branch branch2 (was ee02a18). +ok 7 - checkout -b to a new branch preserves mergeable changes -expecting success of 2012.12 'switch to third from the last': - more_switches && - git checkout @{-3} && - test "z$(git symbolic-ref HEAD)" = "zrefs/heads/branch4" +expecting success of 2018.8 'checkout -f -b to a new branch with mergeable changes discards changes': + test_when_finished git reset --hard HEAD && + setup_dirty_mergeable && + do_checkout branch2 $HEAD1 "-f -b" && + test_dirty_mergeable_discards_changes -Switched to branch 'branch16' -Switched to branch 'branch15' -Switched to branch 'branch14' -Switched to branch 'branch13' -Switched to branch 'branch12' -Switched to branch 'branch11' -Switched to branch 'branch10' -Switched to branch 'branch9' -Switched to branch 'branch8' -Switched to branch 'branch7' -Switched to branch 'branch6' -Switched to branch 'branch5' -Switched to branch 'branch4' -Switched to branch 'branch3' -Switched to branch 'branch2' -Switched to branch 'branch1' -Switched to branch 'branch4' -ok 12 - switch to third from the last +Switched to a new branch 'branch2' +HEAD is now at ee02a18 initial +ok 8 - checkout -f -b to a new branch with mergeable changes discards changes -expecting success of 2012.13 'switch to fourth from the last': - more_switches && - git checkout @{-4} && - test "z$(git symbolic-ref HEAD)" = "zrefs/heads/branch5" +expecting success of 2018.9 'checkout -b to an existing branch fails': + test_when_finished git reset --hard HEAD && + do_checkout ! branch2 $HEAD2 -Switched to branch 'branch16' -Switched to branch 'branch15' -Switched to branch 'branch14' -Switched to branch 'branch13' -Switched to branch 'branch12' -Switched to branch 'branch11' -Switched to branch 'branch10' -Switched to branch 'branch9' -Switched to branch 'branch8' -Switched to branch 'branch7' -Switched to branch 'branch6' -Switched to branch 'branch5' -Switched to branch 'branch4' -Switched to branch 'branch3' -Switched to branch 'branch2' -Switched to branch 'branch1' -Switched to branch 'branch5' -ok 13 - switch to fourth from the last +fatal: A branch named 'branch2' already exists. +HEAD is now at ee02a18 initial +ok 9 - checkout -b to an existing branch fails -expecting success of 2012.14 'switch to twelfth from the last': - more_switches && - git checkout @{-12} && - test "z$(git symbolic-ref HEAD)" = "zrefs/heads/branch13" +expecting success of 2018.10 'checkout -b to @{-1} fails with the right branch name': + git checkout branch1 && + git checkout branch2 && + echo >expect "fatal: A branch named 'branch1' already exists." && + test_must_fail git checkout -b @{-1} 2>actual && + test_i18ncmp expect actual -Switched to branch 'branch16' -Switched to branch 'branch15' -Switched to branch 'branch14' -Switched to branch 'branch13' -Switched to branch 'branch12' -Switched to branch 'branch11' -Switched to branch 'branch10' -Switched to branch 'branch9' -Switched to branch 'branch8' -Switched to branch 'branch7' -Switched to branch 'branch6' -Switched to branch 'branch5' -Switched to branch 'branch4' -Switched to branch 'branch3' +Switched to branch 'branch1' Switched to branch 'branch2' +checking prerequisite: C_LOCALE_OUTPUT + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false + +) +prerequisite C_LOCALE_OUTPUT ok +ok 10 - checkout -b to @{-1} fails with the right branch name + +expecting success of 2018.11 'checkout -B to an existing branch resets branch to HEAD': + git checkout branch1 && + + do_checkout branch2 "" -B + Switched to branch 'branch1' -Switched to branch 'branch13' -ok 14 - switch to twelfth from the last +Switched to and reset branch 'branch2' +ok 11 - checkout -B to an existing branch resets branch to HEAD -expecting success of 2012.15 'merge base test setup': - git checkout -b another other && - echo "hello again" >>world && - git add world && - git commit -m third +expecting success of 2018.12 'checkout -B to a merge base': + git checkout branch1 && -Switched to a new branch 'another' -[another 7bc4f0b] third - Author: A U Thor - 1 file changed, 1 insertion(+) -ok 15 - merge base test setup + git checkout -B branch2 branch1... -expecting success of 2012.16 'another...master': - git checkout another && - git checkout another...master && - test "z$(git rev-parse --verify HEAD)" = "z$(git rev-parse --verify master^)" +Switched to branch 'branch1' +Switched to and reset branch 'branch2' +ok 12 - checkout -B to a merge base -Already on 'another' -Note: switching to 'another...master'. +expecting success of 2018.13 'checkout -B to an existing branch from detached HEAD resets branch to HEAD': + head=$(git rev-parse --verify HEAD) && + git checkout "$head" && + + do_checkout branch2 "" -B + +Note: switching to '5be17a9503605cbff49376bccdc74acb1ebd9160'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this @@ -68399,44 +69857,92 @@ Turn off this advice by setting config variable advice.detachedHead to false -HEAD is now at b8cd0f7 initial -ok 16 - another...master +HEAD is now at 5be17a9 change1 +Switched to and reset branch 'branch2' +ok 13 - checkout -B to an existing branch from detached HEAD resets branch to HEAD -expecting success of 2012.17 '...master': - git checkout another && - git checkout ...master && - test "z$(git rev-parse --verify HEAD)" = "z$(git rev-parse --verify master^)" +expecting success of 2018.14 'checkout -B to an existing branch with an explicit ref resets branch to that ref': + git checkout branch1 && -Previous HEAD position was b8cd0f7 initial -Switched to branch 'another' -Note: switching to '...master'. + do_checkout branch2 $HEAD1 -B -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. +Switched to branch 'branch1' +Switched to and reset branch 'branch2' +ok 14 - checkout -B to an existing branch with an explicit ref resets branch to that ref -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: +expecting success of 2018.15 'checkout -B to an existing branch with unmergeable changes fails': + git checkout branch1 && - git switch -c + setup_dirty_unmergeable && + do_checkout ! branch2 $HEAD1 -B && + test_dirty_unmergeable -Or undo this operation with: +Switched to branch 'branch1' +error: Your local changes to the following files would be overwritten by checkout: + file1 +Please commit your changes or stash them before you switch branches. +Aborting +diff --git a/file1 b/file1 +index 5be4a41..1725fe9 100644 +--- a/file1 ++++ b/file1 +@@ -1 +1,2 @@ + change1 ++change2 +ok 15 - checkout -B to an existing branch with unmergeable changes fails - git switch - +expecting success of 2018.16 'checkout -f -B to an existing branch with unmergeable changes discards changes': + # still dirty and on branch1 + do_checkout branch2 $HEAD1 "-f -B" && + test_dirty_unmergeable_discards_changes -Turn off this advice by setting config variable advice.detachedHead to false +Switched to and reset branch 'branch2' +ok 16 - checkout -f -B to an existing branch with unmergeable changes discards changes -HEAD is now at b8cd0f7 initial -ok 17 - ...master +expecting success of 2018.17 'checkout -B to an existing branch preserves mergeable changes': + test_when_finished git reset --hard && + git checkout branch1 && -expecting success of 2012.18 'master...': - git checkout another && - git checkout master... && - test "z$(git rev-parse --verify HEAD)" = "z$(git rev-parse --verify master^)" + setup_dirty_mergeable && + do_checkout branch2 $HEAD1 -B && + test_dirty_mergeable -Previous HEAD position was b8cd0f7 initial -Switched to branch 'another' -Note: switching to 'master...'. +Switched to branch 'branch1' +Switched to and reset branch 'branch2' +A file2 +diff --git a/file2 b/file2 +new file mode 100644 +index 0000000..6c493ff +--- /dev/null ++++ b/file2 +@@ -0,0 +1 @@ ++file2 +HEAD is now at ee02a18 initial +ok 17 - checkout -B to an existing branch preserves mergeable changes + +expecting success of 2018.18 'checkout -f -B to an existing branch with mergeable changes discards changes': + git checkout branch1 && + + setup_dirty_mergeable && + do_checkout branch2 $HEAD1 "-f -B" && + test_dirty_mergeable_discards_changes + +Switched to branch 'branch1' +Switched to and reset branch 'branch2' +ok 18 - checkout -f -B to an existing branch with mergeable changes discards changes + +expecting success of 2018.19 'checkout -b ': + git tag -f -m "First commit" initial initial && + git checkout -f change1 && + name=$(git describe) && + git checkout -b $name && + git diff --exit-code change1 && + echo "refs/heads/$name" >expect && + git symbolic-ref HEAD >actual && + test_cmp expect actual + +Updated tag 'initial' (was ee02a18) +Note: switching to 'change1'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this @@ -68453,200 +69959,212 @@ Turn off this advice by setting config variable advice.detachedHead to false -HEAD is now at b8cd0f7 initial -ok 18 - master... +HEAD is now at 5be17a9 change1 +Switched to a new branch 'initial-1-g5be17a9' +ok 19 - checkout -b -expecting success of 2012.19 '"checkout -" works after a rebase A': - git checkout master && - git checkout other && - git rebase master && - git checkout - && - test "z$(git symbolic-ref HEAD)" = "zrefs/heads/master" +expecting success of 2018.20 'checkout -B to the current branch works': + git checkout branch1 && + git checkout -B branch1-scratch && -Previous HEAD position was b8cd0f7 initial -Switched to branch 'master' -Switched to branch 'other' - Successfully rebased and updated refs/heads/other. -Switched to branch 'master' -ok 19 - "checkout -" works after a rebase A + setup_dirty_mergeable && + git checkout -B branch1-scratch initial && + test_dirty_mergeable -expecting success of 2012.20 '"checkout -" works after a rebase A B': - git branch moodle master~1 && - git checkout master && - git checkout other && - git rebase master moodle && - git checkout - && - test "z$(git symbolic-ref HEAD)" = "zrefs/heads/master" +Switched to branch 'branch1' +Switched to a new branch 'branch1-scratch' +Reset branch 'branch1-scratch' +A file2 +diff --git a/file2 b/file2 +new file mode 100644 +index 0000000..6c493ff +--- /dev/null ++++ b/file2 +@@ -0,0 +1 @@ ++file2 +ok 20 - checkout -B to the current branch works -Already on 'master' -Switched to branch 'other' - Successfully rebased and updated refs/heads/moodle. -Switched to branch 'master' -ok 20 - "checkout -" works after a rebase A B +expecting success of 2018.21 'checkout -b after clone --no-checkout does a checkout of HEAD': + git init src && + test_commit -C src a && + rev="$(git -C src rev-parse HEAD)" && + git clone --no-checkout src dest && + git -C dest checkout "$rev" -b branch && + test_path_is_file dest/a.t -expecting success of 2012.21 '"checkout -" works after a rebase -i A': - git checkout master && - git checkout other && - git rebase -i master && - git checkout - && - test "z$(git symbolic-ref HEAD)" = "zrefs/heads/master" +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2018-checkout-branch/src/.git/ +[master (root-commit) 7f0b538] a + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 a.t +Cloning into 'dest'... +done. +Switched to a new branch 'branch' +ok 21 - checkout -b after clone --no-checkout does a checkout of HEAD -Already on 'master' -Switched to branch 'other' - Successfully rebased and updated refs/heads/other. -Switched to branch 'master' -ok 21 - "checkout -" works after a rebase -i A +expecting success of 2018.22 'checkout -b to a new branch preserves mergeable changes despite sparse-checkout': + test_when_finished " + git reset --hard && + git checkout branch1-scratch && + test_might_fail git branch -D branch3 && + git config core.sparseCheckout false && + rm .git/info/sparse-checkout" && -expecting success of 2012.22 '"checkout -" works after a rebase -i A B': - git branch foodle master~1 && - git checkout master && - git checkout other && - git rebase master foodle && - git checkout - && - test "z$(git symbolic-ref HEAD)" = "zrefs/heads/master" + test_commit file2 && -Already on 'master' -Switched to branch 'other' - Successfully rebased and updated refs/heads/foodle. -Switched to branch 'master' -ok 22 - "checkout -" works after a rebase -i A B + echo stuff >>file1 && + echo file2 >.git/info/sparse-checkout && + git config core.sparseCheckout true && -# passed all 22 test(s) -1..22 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t2014-checkout-switch.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2014-checkout-switch/.git/ -expecting success of 2014.1 'setup': - echo Hello >file && - git add file && - test_tick && - git commit -m V1 && - echo Hello world >file && - git add file && - git checkout -b other + CURHEAD=$(git rev-parse HEAD) && + do_checkout branch3 $CURHEAD && -[master (root-commit) 68a43dc] V1 - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -Switched to a new branch 'other' -ok 1 - setup + echo file1 >expect && + git diff --name-only >actual && + test_cmp expect actual -expecting success of 2014.2 'check all changes are staged': - git diff --exit-code +[branch1-scratch b9d73e8] file2 + Author: A U Thor + 2 files changed, 2 insertions(+) + create mode 100644 file2 + create mode 100644 file2.t +warning: The following paths are not up to date and were left despite sparse patterns: + file1 -ok 2 - check all changes are staged +After fixing the above paths, you may want to run `git sparse-checkout reapply`. +Switched to a new branch 'branch3' +M file1 +HEAD is now at b9d73e8 file2 +Switched to branch 'branch1-scratch' +Deleted branch branch3 (was b9d73e8). +ok 22 - checkout -b to a new branch preserves mergeable changes despite sparse-checkout -expecting success of 2014.3 'second commit': - git commit -m V2 +expecting success of 2018.23 'checkout -b rejects an invalid start point': + test_must_fail git checkout -b branch4 file1 2>err && + test_i18ngrep "is not a commit" err -[other c55967b] V2 - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -ok 3 - second commit +fatal: 'file1' is not a commit and a branch 'branch4' cannot be created from it +ok 23 - checkout -b rejects an invalid start point -expecting success of 2014.4 'check': - git diff --cached --exit-code +expecting success of 2018.24 'checkout -b rejects an extra path argument': + test_must_fail git checkout -b branch5 branch1 file1 2>err && + test_i18ngrep "Cannot update paths and switch to branch" err -ok 4 - check +fatal: Cannot update paths and switch to branch 'branch5' at the same time. +ok 24 - checkout -b rejects an extra path argument -# passed all 4 test(s) -1..4 +# passed all 24 test(s) +1..24 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t2015-checkout-unborn.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2015-checkout-unborn/.git/ -expecting success of 2015.1 'setup': - mkdir parent && - (cd parent && - git init && - echo content >file && - git add file && - git commit -m base - ) && - git fetch parent master:origin +*** t2021-checkout-overwrite.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2021-checkout-overwrite/.git/ +expecting success of 2021.1 'setup': -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2015-checkout-unborn/parent/.git/ -[master (root-commit) 5d770fe] base + mkdir -p a/b/c && + >a/b/c/d && + git add -A && + git commit -m base && + git tag start + +[master (root-commit) 6ef9cb1] base Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -From parent - * [new branch] master -> origin + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 a/b/c/d ok 1 - setup -expecting success of 2015.2 'checkout from unborn preserves untracked files': - echo precious >expect && - echo precious >file && - test_must_fail git checkout -b new origin && - test_cmp expect file +expecting success of 2021.2 'create a commit where dir a/b changed to file': + + git checkout -b file && + rm -rf a/b && + >a/b && + git add -A && + git commit -m "dir to file" + +Switched to a new branch 'file' +[file ef05f50] dir to file + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + rename a/{b/c/d => b} (100%) +ok 2 - create a commit where dir a/b changed to file + +expecting success of 2021.3 'checkout commit with dir must not remove untracked a/b': + git rm --cached a/b && + git commit -m "un-track the file" && + test_must_fail git checkout start && + test -f a/b + +rm 'a/b' +[file 1d595a3] un-track the file + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + delete mode 100644 a/b error: The following untracked working tree files would be overwritten by checkout: - file + a/b Please move or remove them before you switch branches. Aborting -ok 2 - checkout from unborn preserves untracked files +ok 3 - checkout commit with dir must not remove untracked a/b -expecting success of 2015.3 'checkout from unborn preserves index contents': - echo precious >expect && - echo precious >file && - git add file && - test_must_fail git checkout -b new origin && - test_cmp expect file && - git show :file >file && - test_cmp expect file +expecting success of 2021.4 'create a commit where dir a/b changed to symlink': -error: Your local changes to the following files would be overwritten by checkout: - file -Please commit your changes or stash them before you switch branches. -Aborting -ok 3 - checkout from unborn preserves index contents + rm -rf a/b && # cleanup if previous test failed + git checkout -f -b symlink start && + rm -rf a/b && + git add -A && + test_ln_s_add foo a/b && + git commit -m "dir to symlink" -expecting success of 2015.4 'checkout from unborn merges identical index contents': - echo content >file && - git add file && - git checkout -b new origin +Switched to a new branch 'symlink' +checking prerequisite: SYMLINKS -Switched to a new branch 'new' -ok 4 - checkout from unborn merges identical index contents +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && + # test whether the filesystem supports symbolic links + ln -s x y && test -h y -expecting success of 2015.5 'checking out another branch from unborn state': - git checkout --orphan newroot && - git checkout -b anothername && - test_must_fail git show-ref --verify refs/heads/newroot && - git symbolic-ref HEAD >actual && - echo refs/heads/anothername >expect && - test_cmp expect actual +) +prerequisite SYMLINKS ok +[symlink 6de6f3e] dir to symlink + Author: A U Thor + 2 files changed, 1 insertion(+) + create mode 120000 a/b + delete mode 100644 a/b/c/d +ok 4 - create a commit where dir a/b changed to symlink -Switched to a new branch 'newroot' -Switched to a new branch 'anothername' -fatal: 'refs/heads/newroot' - not a valid ref -ok 5 - checking out another branch from unborn state +expecting success of 2021.5 'checkout commit with dir must not remove untracked a/b': -expecting success of 2015.6 'checking out in a newly created repo': - test_create_repo empty && - ( - cd empty && - git symbolic-ref HEAD >expect && - test_must_fail git checkout && - git symbolic-ref HEAD >actual && - test_cmp expect actual - ) + git rm --cached a/b && + git commit -m "un-track the symlink" && + test_must_fail git checkout start -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2015-checkout-unborn/empty/.git/ -fatal: You are on a branch yet to be born -ok 6 - checking out in a newly created repo +rm 'a/b' +[symlink 43da882] un-track the symlink + Author: A U Thor + 1 file changed, 1 deletion(-) + delete mode 120000 a/b +error: The following untracked working tree files would be overwritten by checkout: + a/b +Please move or remove them before you switch branches. +Aborting +ok 5 - checkout commit with dir must not remove untracked a/b + +expecting success of 2021.6 'the symlink remained': + + test -h a/b + +ok 6 - the symlink remained # passed all 6 test(s) 1..6 @@ -68987,693 +70505,138 @@ 1..16 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t2017-checkout-orphan.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2017-checkout-orphan/.git/ -expecting success of 2017.1 'Setup': - echo "Initial" >"$TEST_FILE" && - git add "$TEST_FILE" && - git commit -m "First Commit" && - test_tick && - echo "State 1" >>"$TEST_FILE" && - git add "$TEST_FILE" && - test_tick && - git commit -m "Second Commit" - -[master (root-commit) df316c6] First Commit - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 foo -[master 8c3f362] Second Commit - Author: A U Thor - 1 file changed, 1 insertion(+) -ok 1 - Setup - -expecting success of 2017.2 '--orphan creates a new orphan branch from HEAD': - git checkout --orphan alpha && - test_must_fail git rev-parse --verify HEAD && - test "refs/heads/alpha" = "$(git symbolic-ref HEAD)" && - test_tick && - git commit -m "Third Commit" && - test_must_fail git rev-parse --verify HEAD^ && - git diff-tree --quiet master alpha - -Switched to a new branch 'alpha' -fatal: Needed a single revision -[alpha (root-commit) 6f20c32] Third Commit - Author: A U Thor - 1 file changed, 2 insertions(+) - create mode 100644 foo -fatal: Needed a single revision -ok 2 - --orphan creates a new orphan branch from HEAD - -expecting success of 2017.3 '--orphan creates a new orphan branch from ': - git checkout master && - git checkout --orphan beta master^ && - test_must_fail git rev-parse --verify HEAD && - test "refs/heads/beta" = "$(git symbolic-ref HEAD)" && - test_tick && - git commit -m "Fourth Commit" && - test_must_fail git rev-parse --verify HEAD^ && - git diff-tree --quiet master^ beta - -Switched to branch 'master' -Switched to a new branch 'beta' -fatal: Needed a single revision -[beta (root-commit) 530edda] Fourth Commit - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 foo -fatal: Needed a single revision -ok 3 - --orphan creates a new orphan branch from - -expecting success of 2017.4 '--orphan must be rejected with -b': - git checkout master && - test_must_fail git checkout --orphan new -b newer && - test refs/heads/master = "$(git symbolic-ref HEAD)" - -Switched to branch 'master' -fatal: -b, -B and --orphan are mutually exclusive -ok 4 - --orphan must be rejected with -b - -expecting success of 2017.5 '--orphan must be rejected with -t': - git checkout master && - test_must_fail git checkout --orphan new -t master && - test refs/heads/master = "$(git symbolic-ref HEAD)" - -Already on 'master' -fatal: '--orphan' cannot be used with '-t' -ok 5 - --orphan must be rejected with -t - -expecting success of 2017.6 '--orphan ignores branch.autosetupmerge': - git checkout master && - git config branch.autosetupmerge always && - git checkout --orphan gamma && - test -z "$(git config branch.gamma.merge)" && - test refs/heads/gamma = "$(git symbolic-ref HEAD)" && - test_must_fail git rev-parse --verify HEAD^ - -Already on 'master' -Switched to a new branch 'gamma' -fatal: Needed a single revision -ok 6 - --orphan ignores branch.autosetupmerge - -expecting success of 2017.7 '--orphan makes reflog by default': - git checkout master && - git config --unset core.logAllRefUpdates && - git checkout --orphan delta && - test_must_fail git rev-parse --verify delta@{0} && - git commit -m Delta && - git rev-parse --verify delta@{0} - -Switched to branch 'master' -Switched to a new branch 'delta' -fatal: Needed a single revision -[delta (root-commit) 9beee35] Delta - Author: A U Thor - 1 file changed, 2 insertions(+) - create mode 100644 foo -9beee35744aee191f8186ef0a6ab78f710cdd57c -ok 7 - --orphan makes reflog by default - -expecting success of 2017.8 '--orphan does not make reflog when core.logAllRefUpdates = false': - git checkout master && - git config core.logAllRefUpdates false && - git checkout --orphan epsilon && - test_must_fail git rev-parse --verify epsilon@{0} && - git commit -m Epsilon && - test_must_fail git rev-parse --verify epsilon@{0} - -Switched to branch 'master' -Switched to a new branch 'epsilon' -fatal: Needed a single revision -[epsilon (root-commit) c5e7701] Epsilon - Author: A U Thor - 1 file changed, 2 insertions(+) - create mode 100644 foo -fatal: Needed a single revision -ok 8 - --orphan does not make reflog when core.logAllRefUpdates = false - -expecting success of 2017.9 '--orphan with -l makes reflog when core.logAllRefUpdates = false': - git checkout master && - git checkout -l --orphan zeta && - test_must_fail git rev-parse --verify zeta@{0} && - git commit -m Zeta && - git rev-parse --verify zeta@{0} - -Switched to branch 'master' -Switched to a new branch 'zeta' -fatal: Needed a single revision -[zeta (root-commit) 1b23595] Zeta - Author: A U Thor - 1 file changed, 2 insertions(+) - create mode 100644 foo -1b235958474dccc5c8f228713c620d22e7d1825d -ok 9 - --orphan with -l makes reflog when core.logAllRefUpdates = false - -expecting success of 2017.10 'giving up --orphan not committed when -l and core.logAllRefUpdates = false deletes reflog': - git checkout master && - git checkout -l --orphan eta && - test_must_fail git rev-parse --verify eta@{0} && - git checkout master && - test_must_fail git rev-parse --verify eta@{0} - -Switched to branch 'master' -Switched to a new branch 'eta' -fatal: Needed a single revision -Switched to branch 'master' -fatal: Needed a single revision -ok 10 - giving up --orphan not committed when -l and core.logAllRefUpdates = false deletes reflog - -expecting success of 2017.11 '--orphan is rejected with an existing name': - git checkout master && - test_must_fail git checkout --orphan master && - test refs/heads/master = "$(git symbolic-ref HEAD)" - -Already on 'master' -fatal: A branch named 'master' already exists. -ok 11 - --orphan is rejected with an existing name - -expecting success of 2017.12 '--orphan refuses to switch if a merge is needed': - git checkout master && - git reset --hard && - echo local >>"$TEST_FILE" && - cat "$TEST_FILE" >"$TEST_FILE.saved" && - test_must_fail git checkout --orphan new master^ && - test refs/heads/master = "$(git symbolic-ref HEAD)" && - test_cmp "$TEST_FILE" "$TEST_FILE.saved" && - git diff-index --quiet --cached HEAD && - git reset --hard - -Already on 'master' -HEAD is now at 8c3f362 Second Commit -error: Your local changes to the following files would be overwritten by checkout: - foo -Please commit your changes or stash them before you switch branches. -Aborting -HEAD is now at 8c3f362 Second Commit -ok 12 - --orphan refuses to switch if a merge is needed - -expecting success of 2017.13 'cannot --detach on an unborn branch': - git checkout master && - git checkout --orphan new && - test_must_fail git checkout --detach - -Already on 'master' -Switched to a new branch 'new' -fatal: You are on a branch yet to be born -ok 13 - cannot --detach on an unborn branch - -# passed all 13 test(s) -1..13 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t2018-checkout-branch.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2018-checkout-branch/.git/ -expecting success of 2018.1 'setup': - test_commit initial file1 && - HEAD1=$(git rev-parse --verify HEAD) && - - test_commit change1 file1 && - HEAD2=$(git rev-parse --verify HEAD) && - - git branch -m branch1 +*** t2022-checkout-paths.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2022-checkout-paths/.git/ +expecting success of 2022.1 'setup': + mkdir dir && + >dir/master && + echo common >dir/common && + git add dir/master dir/common && + test_tick && git commit -m "master has dir/master" && + git checkout -b next && + git mv dir/master dir/next0 && + echo next >dir/next1 && + git add dir && + test_tick && git commit -m "next has dir/next but not dir/master" -[master (root-commit) ee02a18] initial +[master (root-commit) de06282] master has dir/master Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file1 -[master 5be17a9] change1 + 2 files changed, 1 insertion(+) + create mode 100644 dir/common + create mode 100644 dir/master +Switched to a new branch 'next' +[next 65d8465] next has dir/next but not dir/master Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) + 2 files changed, 1 insertion(+) + rename dir/{master => next0} (100%) + create mode 100644 dir/next1 ok 1 - setup -expecting success of 2018.2 'checkout -b to a new branch, set to HEAD': - test_when_finished " - git checkout branch1 && - test_might_fail git branch -D branch2" && - do_checkout branch2 - -Switched to a new branch 'branch2' -Switched to branch 'branch1' -Deleted branch branch2 (was 5be17a9). -ok 2 - checkout -b to a new branch, set to HEAD - -expecting success of 2018.3 'checkout -b to a merge base': - test_when_finished " - git checkout branch1 && - test_might_fail git branch -D branch2" && - git checkout -b branch2 branch1... - -Switched to a new branch 'branch2' -Switched to branch 'branch1' -Deleted branch branch2 (was 5be17a9). -ok 3 - checkout -b to a merge base - -expecting success of 2018.4 'checkout -b to a new branch, set to an explicit ref': - test_when_finished " - git checkout branch1 && - test_might_fail git branch -D branch2" && - do_checkout branch2 $HEAD1 - -Switched to a new branch 'branch2' -Switched to branch 'branch1' -Deleted branch branch2 (was ee02a18). -ok 4 - checkout -b to a new branch, set to an explicit ref - -expecting success of 2018.5 'checkout -b to a new branch with unmergeable changes fails': - setup_dirty_unmergeable && - do_checkout ! branch2 $HEAD1 && - test_dirty_unmergeable - -error: Your local changes to the following files would be overwritten by checkout: - file1 -Please commit your changes or stash them before you switch branches. -Aborting -diff --git a/file1 b/file1 -index 5be4a41..1725fe9 100644 ---- a/file1 -+++ b/file1 -@@ -1 +1,2 @@ - change1 -+change2 -ok 5 - checkout -b to a new branch with unmergeable changes fails - -expecting success of 2018.6 'checkout -f -b to a new branch with unmergeable changes discards changes': - test_when_finished " - git checkout branch1 && - test_might_fail git branch -D branch2" && - - # still dirty and on branch1 - do_checkout branch2 $HEAD1 "-f -b" && - test_dirty_unmergeable_discards_changes - -Switched to a new branch 'branch2' -Switched to branch 'branch1' -Deleted branch branch2 (was ee02a18). -ok 6 - checkout -f -b to a new branch with unmergeable changes discards changes - -expecting success of 2018.7 'checkout -b to a new branch preserves mergeable changes': - test_when_finished " - git reset --hard && - git checkout branch1 && - test_might_fail git branch -D branch2" && - - setup_dirty_mergeable && - do_checkout branch2 $HEAD1 && - test_dirty_mergeable - -Switched to a new branch 'branch2' -A file2 -diff --git a/file2 b/file2 -new file mode 100644 -index 0000000..6c493ff ---- /dev/null -+++ b/file2 -@@ -0,0 +1 @@ -+file2 -HEAD is now at ee02a18 initial -Switched to branch 'branch1' -Deleted branch branch2 (was ee02a18). -ok 7 - checkout -b to a new branch preserves mergeable changes - -expecting success of 2018.8 'checkout -f -b to a new branch with mergeable changes discards changes': - test_when_finished git reset --hard HEAD && - setup_dirty_mergeable && - do_checkout branch2 $HEAD1 "-f -b" && - test_dirty_mergeable_discards_changes - -Switched to a new branch 'branch2' -HEAD is now at ee02a18 initial -ok 8 - checkout -f -b to a new branch with mergeable changes discards changes - -expecting success of 2018.9 'checkout -b to an existing branch fails': - test_when_finished git reset --hard HEAD && - do_checkout ! branch2 $HEAD2 - -fatal: A branch named 'branch2' already exists. -HEAD is now at ee02a18 initial -ok 9 - checkout -b to an existing branch fails - -expecting success of 2018.10 'checkout -b to @{-1} fails with the right branch name': - git checkout branch1 && - git checkout branch2 && - echo >expect "fatal: A branch named 'branch1' already exists." && - test_must_fail git checkout -b @{-1} 2>actual && - test_i18ncmp expect actual - -Switched to branch 'branch1' -Switched to branch 'branch2' -checking prerequisite: C_LOCALE_OUTPUT - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false - -) -prerequisite C_LOCALE_OUTPUT ok -ok 10 - checkout -b to @{-1} fails with the right branch name - -expecting success of 2018.11 'checkout -B to an existing branch resets branch to HEAD': - git checkout branch1 && - - do_checkout branch2 "" -B - -Switched to branch 'branch1' -Switched to and reset branch 'branch2' -ok 11 - checkout -B to an existing branch resets branch to HEAD - -expecting success of 2018.12 'checkout -B to a merge base': - git checkout branch1 && - - git checkout -B branch2 branch1... - -Switched to branch 'branch1' -Switched to and reset branch 'branch2' -ok 12 - checkout -B to a merge base - -expecting success of 2018.13 'checkout -B to an existing branch from detached HEAD resets branch to HEAD': - head=$(git rev-parse --verify HEAD) && - git checkout "$head" && - - do_checkout branch2 "" -B - -Note: switching to '5be17a9503605cbff49376bccdc74acb1ebd9160'. - -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. - -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: - - git switch -c - -Or undo this operation with: - - git switch - - -Turn off this advice by setting config variable advice.detachedHead to false - -HEAD is now at 5be17a9 change1 -Switched to and reset branch 'branch2' -ok 13 - checkout -B to an existing branch from detached HEAD resets branch to HEAD - -expecting success of 2018.14 'checkout -B to an existing branch with an explicit ref resets branch to that ref': - git checkout branch1 && - - do_checkout branch2 $HEAD1 -B - -Switched to branch 'branch1' -Switched to and reset branch 'branch2' -ok 14 - checkout -B to an existing branch with an explicit ref resets branch to that ref - -expecting success of 2018.15 'checkout -B to an existing branch with unmergeable changes fails': - git checkout branch1 && - - setup_dirty_unmergeable && - do_checkout ! branch2 $HEAD1 -B && - test_dirty_unmergeable - -Switched to branch 'branch1' -error: Your local changes to the following files would be overwritten by checkout: - file1 -Please commit your changes or stash them before you switch branches. -Aborting -diff --git a/file1 b/file1 -index 5be4a41..1725fe9 100644 ---- a/file1 -+++ b/file1 -@@ -1 +1,2 @@ - change1 -+change2 -ok 15 - checkout -B to an existing branch with unmergeable changes fails - -expecting success of 2018.16 'checkout -f -B to an existing branch with unmergeable changes discards changes': - # still dirty and on branch1 - do_checkout branch2 $HEAD1 "-f -B" && - test_dirty_unmergeable_discards_changes - -Switched to and reset branch 'branch2' -ok 16 - checkout -f -B to an existing branch with unmergeable changes discards changes - -expecting success of 2018.17 'checkout -B to an existing branch preserves mergeable changes': - test_when_finished git reset --hard && - git checkout branch1 && - - setup_dirty_mergeable && - do_checkout branch2 $HEAD1 -B && - test_dirty_mergeable - -Switched to branch 'branch1' -Switched to and reset branch 'branch2' -A file2 -diff --git a/file2 b/file2 -new file mode 100644 -index 0000000..6c493ff ---- /dev/null -+++ b/file2 -@@ -0,0 +1 @@ -+file2 -HEAD is now at ee02a18 initial -ok 17 - checkout -B to an existing branch preserves mergeable changes - -expecting success of 2018.18 'checkout -f -B to an existing branch with mergeable changes discards changes': - git checkout branch1 && - - setup_dirty_mergeable && - do_checkout branch2 $HEAD1 "-f -B" && - test_dirty_mergeable_discards_changes - -Switched to branch 'branch1' -Switched to and reset branch 'branch2' -ok 18 - checkout -f -B to an existing branch with mergeable changes discards changes - -expecting success of 2018.19 'checkout -b ': - git tag -f -m "First commit" initial initial && - git checkout -f change1 && - name=$(git describe) && - git checkout -b $name && - git diff --exit-code change1 && - echo "refs/heads/$name" >expect && - git symbolic-ref HEAD >actual && - test_cmp expect actual - -Updated tag 'initial' (was ee02a18) -Note: switching to 'change1'. - -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. - -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: - - git switch -c - -Or undo this operation with: - - git switch - - -Turn off this advice by setting config variable advice.detachedHead to false - -HEAD is now at 5be17a9 change1 -Switched to a new branch 'initial-1-g5be17a9' -ok 19 - checkout -b +expecting success of 2022.2 'checking out paths out of a tree does not clobber unrelated paths': + git checkout next && + git reset --hard && + rm dir/next0 && + cat dir/common >expect.common && + echo modified >expect.next1 && + cat expect.next1 >dir/next1 && + echo untracked >expect.next2 && + cat expect.next2 >dir/next2 && -expecting success of 2018.20 'checkout -B to the current branch works': - git checkout branch1 && - git checkout -B branch1-scratch && + git checkout master dir && - setup_dirty_mergeable && - git checkout -B branch1-scratch initial && - test_dirty_mergeable + test_cmp expect.common dir/common && + test_path_is_file dir/master && + git diff --exit-code master dir/master && -Switched to branch 'branch1' -Switched to a new branch 'branch1-scratch' -Reset branch 'branch1-scratch' -A file2 -diff --git a/file2 b/file2 -new file mode 100644 -index 0000000..6c493ff ---- /dev/null -+++ b/file2 -@@ -0,0 +1 @@ -+file2 -ok 20 - checkout -B to the current branch works + test_path_is_missing dir/next0 && + test_cmp expect.next1 dir/next1 && + test_path_is_file dir/next2 && + test_must_fail git ls-files --error-unmatch dir/next2 && + test_cmp expect.next2 dir/next2 -expecting success of 2018.21 'checkout -b after clone --no-checkout does a checkout of HEAD': - git init src && - test_commit -C src a && - rev="$(git -C src rev-parse HEAD)" && - git clone --no-checkout src dest && - git -C dest checkout "$rev" -b branch && - test_path_is_file dest/a.t +Already on 'next' +HEAD is now at 65d8465 next has dir/next but not dir/master +Updated 1 path from 848cb0d +error: pathspec 'dir/next2' did not match any file(s) known to git +Did you forget to 'git add'? +ok 2 - checking out paths out of a tree does not clobber unrelated paths -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2018-checkout-branch/src/.git/ -[master (root-commit) 7f0b538] a - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 a.t -Cloning into 'dest'... -done. -Switched to a new branch 'branch' -ok 21 - checkout -b after clone --no-checkout does a checkout of HEAD +expecting success of 2022.3 'do not touch unmerged entries matching $path but not in $tree': + git checkout next && + git reset --hard && -expecting success of 2018.22 'checkout -b to a new branch preserves mergeable changes despite sparse-checkout': - test_when_finished " - git reset --hard && - git checkout branch1-scratch && - test_might_fail git branch -D branch3 && - git config core.sparseCheckout false && - rm .git/info/sparse-checkout" && + cat dir/common >expect.common && + EMPTY_SHA1=$(git hash-object -w --stdin expect.next0 <<-EOF && + 100644 $EMPTY_SHA1 1 dir/next0 + 100644 $EMPTY_SHA1 2 dir/next0 + EOF + git update-index --index-info >file1 && - echo file2 >.git/info/sparse-checkout && - git config core.sparseCheckout true && + test_cmp expect.common dir/common && + test_path_is_file dir/master && + git diff --exit-code master dir/master && + git ls-files -s dir/next0 >actual.next0 && + test_cmp expect.next0 actual.next0 - CURHEAD=$(git rev-parse HEAD) && - do_checkout branch3 $CURHEAD && +Already on 'next' +A dir/master +D dir/next0 +M dir/next1 +HEAD is now at 65d8465 next has dir/next but not dir/master +rm 'dir/next0' +Updated 1 path from 848cb0d +ok 3 - do not touch unmerged entries matching $path but not in $tree - echo file1 >expect && - git diff --name-only >actual && +expecting success of 2022.4 'do not touch files that are already up-to-date': + git reset --hard && + echo one >file1 && + echo two >file2 && + git add file1 file2 && + git commit -m base && + echo modified >file1 && + test-tool chmtime =1000000000 file2 && + git update-index -q --refresh && + git checkout HEAD -- file1 file2 && + echo one >expect && + test_cmp expect file1 && + echo "1000000000" >expect && + test-tool chmtime --get file2 >actual && test_cmp expect actual -[branch1-scratch b9d73e8] file2 +HEAD is now at 65d8465 next has dir/next but not dir/master +[next 709a6c8] base Author: A U Thor 2 files changed, 2 insertions(+) + create mode 100644 file1 create mode 100644 file2 - create mode 100644 file2.t -warning: The following paths are not up to date and were left despite sparse patterns: - file1 - -After fixing the above paths, you may want to run `git sparse-checkout reapply`. -Switched to a new branch 'branch3' -M file1 -HEAD is now at b9d73e8 file2 -Switched to branch 'branch1-scratch' -Deleted branch branch3 (was b9d73e8). -ok 22 - checkout -b to a new branch preserves mergeable changes despite sparse-checkout - -expecting success of 2018.23 'checkout -b rejects an invalid start point': - test_must_fail git checkout -b branch4 file1 2>err && - test_i18ngrep "is not a commit" err - -fatal: 'file1' is not a commit and a branch 'branch4' cannot be created from it -ok 23 - checkout -b rejects an invalid start point - -expecting success of 2018.24 'checkout -b rejects an extra path argument': - test_must_fail git checkout -b branch5 branch1 file1 2>err && - test_i18ngrep "Cannot update paths and switch to branch" err - -fatal: Cannot update paths and switch to branch 'branch5' at the same time. -ok 24 - checkout -b rejects an extra path argument +ok 4 - do not touch files that are already up-to-date -# passed all 24 test(s) -1..24 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t2019-checkout-ambiguous-ref.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2019-checkout-ambiguous-ref/.git/ -expecting success of 2019.1 'setup ambiguous refs': - test_commit branch file && - git branch ambiguity && - git branch vagueness && - test_commit tag file && - git tag ambiguity && - git tag vagueness HEAD:file && - test_commit other file +expecting success of 2022.5 'checkout HEAD adds deleted intent-to-add file back to index': + echo "nonempty" >nonempty && + >empty && + git add nonempty empty && + git commit -m "create files to be deleted" && + git rm --cached nonempty empty && + git add -N nonempty empty && + git checkout HEAD nonempty empty && + git diff --cached --exit-code -[master (root-commit) c291a6e] branch - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -[master a40f7cf] tag - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -[master 3b61e26] other +[next 5786e75] create files to be deleted Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -ok 1 - setup ambiguous refs - -expecting success of 2019.2 'checkout ambiguous ref succeeds': - git checkout ambiguity >stdout 2>stderr - -ok 2 - checkout ambiguous ref succeeds - -expecting success of 2019.3 'checkout produces ambiguity warning': - grep "warning.*ambiguous" stderr - -warning: refname 'ambiguity' is ambiguous. -ok 3 - checkout produces ambiguity warning - -expecting success of 2019.4 'checkout chooses branch over tag': - echo refs/heads/ambiguity >expect && - git symbolic-ref HEAD >actual && - test_cmp expect actual && - echo branch >expect && - test_cmp expect file - -ok 4 - checkout chooses branch over tag - -expecting success of 2019.5 'checkout reports switch to branch': - test_i18ngrep "Switched to branch" stderr && - test_i18ngrep ! "^HEAD is now at" stderr - -checking prerequisite: C_LOCALE_OUTPUT - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false - -) -prerequisite C_LOCALE_OUTPUT ok -Switched to branch 'ambiguity' -ok 5 - checkout reports switch to branch - -expecting success of 2019.6 'checkout vague ref succeeds': - git checkout vagueness >stdout 2>stderr && - test_set_prereq VAGUENESS_SUCCESS - -ok 6 - checkout vague ref succeeds - -expecting success of 2019.7 'checkout produces ambiguity warning': - grep "warning.*ambiguous" stderr - -warning: refname 'vagueness' is ambiguous. -ok 7 - checkout produces ambiguity warning - -expecting success of 2019.8 'checkout chooses branch over tag': - echo refs/heads/vagueness >expect && - git symbolic-ref HEAD >actual && - test_cmp expect actual && - echo branch >expect && - test_cmp expect file - -ok 8 - checkout chooses branch over tag - -expecting success of 2019.9 'checkout reports switch to branch': - test_i18ngrep "Switched to branch" stderr && - test_i18ngrep ! "^HEAD is now at" stderr - -Switched to branch 'vagueness' -ok 9 - checkout reports switch to branch + 2 files changed, 1 insertion(+) + create mode 100644 empty + create mode 100644 nonempty +rm 'empty' +rm 'nonempty' +Updated 2 paths from cb321d9 +ok 5 - checkout HEAD adds deleted intent-to-add file back to index -# passed all 9 test(s) -1..9 +# passed all 5 test(s) +1..5 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' *** t2020-checkout-detach.sh *** @@ -70229,241 +71192,98 @@ 1..24 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t2021-checkout-overwrite.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2021-checkout-overwrite/.git/ -expecting success of 2021.1 'setup': - - mkdir -p a/b/c && - >a/b/c/d && - git add -A && - git commit -m base && - git tag start +*** t2025-checkout-no-overlay.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2025-checkout-no-overlay/.git/ +expecting success of 2025.1 'setup': + git commit --allow-empty -m "initial" -[master (root-commit) 6ef9cb1] base +[master (root-commit) 8b2b4f6] initial Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - create mode 100644 a/b/c/d ok 1 - setup -expecting success of 2021.2 'create a commit where dir a/b changed to file': - - git checkout -b file && - rm -rf a/b && - >a/b && - git add -A && - git commit -m "dir to file" - -Switched to a new branch 'file' -[file ef05f50] dir to file - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - rename a/{b/c/d => b} (100%) -ok 2 - create a commit where dir a/b changed to file - -expecting success of 2021.3 'checkout commit with dir must not remove untracked a/b': +expecting success of 2025.2 'checkout --no-overlay deletes files not in ': + >file && + mkdir dir && + >dir/file1 && + git add file dir/file1 && + git checkout --no-overlay HEAD -- file && + test_path_is_missing file && + test_path_is_file dir/file1 - git rm --cached a/b && - git commit -m "un-track the file" && - test_must_fail git checkout start && - test -f a/b +ok 2 - checkout --no-overlay deletes files not in -rm 'a/b' -[file 1d595a3] un-track the file - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - delete mode 100644 a/b -error: The following untracked working tree files would be overwritten by checkout: - a/b -Please move or remove them before you switch branches. -Aborting -ok 3 - checkout commit with dir must not remove untracked a/b +expecting success of 2025.3 'checkout --no-overlay removing last file from directory': + git checkout --no-overlay HEAD -- dir/file1 && + test_path_is_missing dir -expecting success of 2021.4 'create a commit where dir a/b changed to symlink': +ok 3 - checkout --no-overlay removing last file from directory - rm -rf a/b && # cleanup if previous test failed - git checkout -f -b symlink start && - rm -rf a/b && - git add -A && - test_ln_s_add foo a/b && - git commit -m "dir to symlink" +expecting success of 2025.4 'checkout -p --overlay is disallowed': + test_must_fail git checkout -p --overlay HEAD 2>actual && + test_i18ngrep "fatal: -p and --overlay are mutually exclusive" actual -Switched to a new branch 'symlink' -checking prerequisite: SYMLINKS +checking prerequisite: C_LOCALE_OUTPUT -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && ( - cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && - # test whether the filesystem supports symbolic links - ln -s x y && test -h y + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false ) -prerequisite SYMLINKS ok -[symlink 6de6f3e] dir to symlink - Author: A U Thor - 2 files changed, 1 insertion(+) - create mode 120000 a/b - delete mode 100644 a/b/c/d -ok 4 - create a commit where dir a/b changed to symlink - -expecting success of 2021.5 'checkout commit with dir must not remove untracked a/b': - - git rm --cached a/b && - git commit -m "un-track the symlink" && - test_must_fail git checkout start - -rm 'a/b' -[symlink 43da882] un-track the symlink - Author: A U Thor - 1 file changed, 1 deletion(-) - delete mode 120000 a/b -error: The following untracked working tree files would be overwritten by checkout: - a/b -Please move or remove them before you switch branches. -Aborting -ok 5 - checkout commit with dir must not remove untracked a/b - -expecting success of 2021.6 'the symlink remained': - - test -h a/b - -ok 6 - the symlink remained +prerequisite C_LOCALE_OUTPUT ok +fatal: -p and --overlay are mutually exclusive +ok 4 - checkout -p --overlay is disallowed -# passed all 6 test(s) -1..6 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t2022-checkout-paths.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2022-checkout-paths/.git/ -expecting success of 2022.1 'setup': - mkdir dir && - >dir/master && - echo common >dir/common && - git add dir/master dir/common && - test_tick && git commit -m "master has dir/master" && - git checkout -b next && - git mv dir/master dir/next0 && - echo next >dir/next1 && - git add dir && - test_tick && git commit -m "next has dir/next but not dir/master" +expecting success of 2025.5 '--no-overlay --theirs with D/F conflict deletes file': + test_commit file1 file1 && + test_commit file2 file2 && + git rm --cached file1 && + echo 1234 >file1 && + F1=$(git rev-parse HEAD:file1) && + F2=$(git rev-parse HEAD:file2) && + { + echo "100644 $F1 1 file1" && + echo "100644 $F2 2 file1" + } | git update-index --index-info && + test_path_is_file file1 && + git checkout --theirs --no-overlay -- file1 && + test_path_is_missing file1 -[master (root-commit) de06282] master has dir/master +[master a11d2b7] file1 Author: A U Thor - 2 files changed, 1 insertion(+) - create mode 100644 dir/common - create mode 100644 dir/master -Switched to a new branch 'next' -[next 65d8465] next has dir/next but not dir/master + 1 file changed, 1 insertion(+) + create mode 100644 file1 +[master 1c03fe1] file2 Author: A U Thor - 2 files changed, 1 insertion(+) - rename dir/{master => next0} (100%) - create mode 100644 dir/next1 -ok 1 - setup - -expecting success of 2022.2 'checking out paths out of a tree does not clobber unrelated paths': - git checkout next && - git reset --hard && - rm dir/next0 && - cat dir/common >expect.common && - echo modified >expect.next1 && - cat expect.next1 >dir/next1 && - echo untracked >expect.next2 && - cat expect.next2 >dir/next2 && - - git checkout master dir && - - test_cmp expect.common dir/common && - test_path_is_file dir/master && - git diff --exit-code master dir/master && - - test_path_is_missing dir/next0 && - test_cmp expect.next1 dir/next1 && - test_path_is_file dir/next2 && - test_must_fail git ls-files --error-unmatch dir/next2 && - test_cmp expect.next2 dir/next2 - -Already on 'next' -HEAD is now at 65d8465 next has dir/next but not dir/master -Updated 1 path from 848cb0d -error: pathspec 'dir/next2' did not match any file(s) known to git -Did you forget to 'git add'? -ok 2 - checking out paths out of a tree does not clobber unrelated paths + 1 file changed, 1 insertion(+) + create mode 100644 file2 +rm 'file1' +ok 5 - --no-overlay --theirs with D/F conflict deletes file -expecting success of 2022.3 'do not touch unmerged entries matching $path but not in $tree': - git checkout next && +expecting success of 2025.6 'wildcard pathspec matches file in subdirectory': git reset --hard && + mkdir subdir && + test_commit file3-1 subdir/file3 && + test_commit file3-2 subdir/file3 && - cat dir/common >expect.common && - EMPTY_SHA1=$(git hash-object -w --stdin expect.next0 <<-EOF && - 100644 $EMPTY_SHA1 1 dir/next0 - 100644 $EMPTY_SHA1 2 dir/next0 - EOF - git update-index --index-info actual.next0 && - test_cmp expect.next0 actual.next0 - -Already on 'next' -A dir/master -D dir/next0 -M dir/next1 -HEAD is now at 65d8465 next has dir/next but not dir/master -rm 'dir/next0' -Updated 1 path from 848cb0d -ok 3 - do not touch unmerged entries matching $path but not in $tree - -expecting success of 2022.4 'do not touch files that are already up-to-date': - git reset --hard && - echo one >file1 && - echo two >file2 && - git add file1 file2 && - git commit -m base && - echo modified >file1 && - test-tool chmtime =1000000000 file2 && - git update-index -q --refresh && - git checkout HEAD -- file1 file2 && - echo one >expect && - test_cmp expect file1 && - echo "1000000000" >expect && - test-tool chmtime --get file2 >actual && - test_cmp expect actual + git checkout --no-overlay file3-1 "*file3" && + echo file3-1 >expect && + test_path_is_file subdir/file3 && + test_cmp expect subdir/file3 -HEAD is now at 65d8465 next has dir/next but not dir/master -[next 709a6c8] base +HEAD is now at 1c03fe1 file2 +[master 78da8bb] file3-1 Author: A U Thor - 2 files changed, 2 insertions(+) - create mode 100644 file1 - create mode 100644 file2 -ok 4 - do not touch files that are already up-to-date - -expecting success of 2022.5 'checkout HEAD adds deleted intent-to-add file back to index': - echo "nonempty" >nonempty && - >empty && - git add nonempty empty && - git commit -m "create files to be deleted" && - git rm --cached nonempty empty && - git add -N nonempty empty && - git checkout HEAD nonempty empty && - git diff --cached --exit-code - -[next 5786e75] create files to be deleted + 1 file changed, 1 insertion(+) + create mode 100644 subdir/file3 +[master cac8ac6] file3-2 Author: A U Thor - 2 files changed, 1 insertion(+) - create mode 100644 empty - create mode 100644 nonempty -rm 'empty' -rm 'nonempty' -Updated 2 paths from cb321d9 -ok 5 - checkout HEAD adds deleted intent-to-add file back to index + 1 file changed, 1 insertion(+), 1 deletion(-) +Updated 1 path from e1fb72e +ok 6 - wildcard pathspec matches file in subdirectory -# passed all 5 test(s) -1..5 +# passed all 6 test(s) +1..6 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' *** t2023-checkout-m.sh *** @@ -70587,186 +71407,36 @@ 1..5 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t2024-checkout-dwim.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2024-checkout-dwim/.git/ -expecting success of 2024.1 'setup': - test_commit my_master && - git init repo_a && - ( - cd repo_a && - test_commit a_master && - git checkout -b foo && - test_commit a_foo && - git checkout -b bar && - test_commit a_bar && - git checkout -b ambiguous_branch_and_file && - test_commit a_ambiguous_branch_and_file - ) && - git init repo_b && - ( - cd repo_b && - test_commit b_master && - git checkout -b foo && - test_commit b_foo && - git checkout -b baz && - test_commit b_baz && - git checkout -b ambiguous_branch_and_file && - test_commit b_ambiguous_branch_and_file - ) && - git remote add repo_a repo_a && - git remote add repo_b repo_b && - git config remote.repo_b.fetch \ - "+refs/heads/*:refs/remotes/other_b/*" && - git fetch --all +*** t2027-checkout-track.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2027-checkout-track/.git/ +expecting success of 2027.1 'setup': + test_commit one && + test_commit two -[master (root-commit) 93159a7] my_master - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 my_master.t -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2024-checkout-dwim/repo_a/.git/ -[master (root-commit) 9480204] a_master - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 a_master.t -Switched to a new branch 'foo' -[foo ba3a763] a_foo - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 a_foo.t -Switched to a new branch 'bar' -[bar 1901e7e] a_bar - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 a_bar.t -Switched to a new branch 'ambiguous_branch_and_file' -[ambiguous_branch_and_file 62502cc] a_ambiguous_branch_and_file - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 a_ambiguous_branch_and_file.t -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2024-checkout-dwim/repo_b/.git/ -[master (root-commit) eb1360a] b_master - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 b_master.t -Switched to a new branch 'foo' -[foo 73c9fcf] b_foo - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 b_foo.t -Switched to a new branch 'baz' -[baz a4f4a16] b_baz +[master (root-commit) d79ce16] one Author: A U Thor 1 file changed, 1 insertion(+) - create mode 100644 b_baz.t -Switched to a new branch 'ambiguous_branch_and_file' -[ambiguous_branch_and_file 85d6512] b_ambiguous_branch_and_file + create mode 100644 one.t +[master 139b20d] two Author: A U Thor 1 file changed, 1 insertion(+) - create mode 100644 b_ambiguous_branch_and_file.t -Fetching repo_a -From repo_a - * [new branch] ambiguous_branch_and_file -> repo_a/ambiguous_branch_and_file - * [new branch] bar -> repo_a/bar - * [new branch] foo -> repo_a/foo - * [new branch] master -> repo_a/master - * [new tag] a_ambiguous_branch_and_file -> a_ambiguous_branch_and_file - * [new tag] a_bar -> a_bar - * [new tag] a_foo -> a_foo - * [new tag] a_master -> a_master -Fetching repo_b -From repo_b - * [new branch] ambiguous_branch_and_file -> other_b/ambiguous_branch_and_file - * [new branch] baz -> other_b/baz - * [new branch] foo -> other_b/foo - * [new branch] master -> other_b/master - * [new tag] b_ambiguous_branch_and_file -> b_ambiguous_branch_and_file - * [new tag] b_baz -> b_baz - * [new tag] b_foo -> b_foo - * [new tag] b_master -> b_master + create mode 100644 two.t ok 1 - setup -expecting success of 2024.2 'checkout of non-existing branch fails': - git checkout -B master && - test_might_fail git branch -D xyzzy && - - test_must_fail git checkout xyzzy && - status_uno_is_clean && - test_must_fail git rev-parse --verify refs/heads/xyzzy && - test_branch master - -Reset branch 'master' -error: branch 'xyzzy' not found. -error: pathspec 'xyzzy' did not match any file(s) known to git -fatal: Needed a single revision -ok 2 - checkout of non-existing branch fails - -expecting success of 2024.3 'checkout of branch from multiple remotes fails #1': - git checkout -B master && - test_might_fail git branch -D foo && - - test_must_fail git checkout foo && - status_uno_is_clean && - test_must_fail git rev-parse --verify refs/heads/foo && - test_branch master - -Reset branch 'master' -error: branch 'foo' not found. -hint: If you meant to check out a remote tracking branch on, e.g. 'origin', -hint: you can do so by fully qualifying the name with the --track option: -hint: -hint: git checkout --track origin/ -hint: -hint: If you'd like to always have checkouts of an ambiguous prefer -hint: one remote, e.g. the 'origin' remote, consider setting -hint: checkout.defaultRemote=origin in your config. -fatal: 'foo' matched multiple (2) remote tracking branches -fatal: Needed a single revision -ok 3 - checkout of branch from multiple remotes fails #1 - -expecting success of 2024.4 'when arg matches multiple remotes, do not fallback to interpreting as pathspec': - # create a file with name matching remote branch name - git checkout -b t_ambiguous_branch_and_file && - >ambiguous_branch_and_file && - git add ambiguous_branch_and_file && - git commit -m "ambiguous_branch_and_file" && - - # modify file to verify that it will not be touched by checkout - test_when_finished "git checkout -- ambiguous_branch_and_file" && - echo "file contents" >ambiguous_branch_and_file && - cp ambiguous_branch_and_file expect && - - test_must_fail git checkout ambiguous_branch_and_file 2>err && +expecting success of 2027.2 'checkout --track -b creates a new tracking branch': + git checkout --track -b branch1 master && + test $(git rev-parse --abbrev-ref HEAD) = branch1 && + test $(git config --get branch.branch1.remote) = . && + test $(git config --get branch.branch1.merge) = refs/heads/master - test_i18ngrep "matched multiple (2) remote tracking branches" err && +Switched to a new branch 'branch1' +Branch 'branch1' set up to track local branch 'master'. +ok 2 - checkout --track -b creates a new tracking branch - # file must not be altered - test_cmp expect ambiguous_branch_and_file +expecting success of 2027.3 'checkout --track -b rejects an extra path argument': + test_must_fail git checkout --track -b branch2 master one.t 2>err && + test_i18ngrep "cannot be used with updating paths" err -Switched to a new branch 't_ambiguous_branch_and_file' -[t_ambiguous_branch_and_file 314694c] ambiguous_branch_and_file - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - create mode 100644 ambiguous_branch_and_file checking prerequisite: C_LOCALE_OUTPUT mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && @@ -70776,671 +71446,147 @@ ) prerequisite C_LOCALE_OUTPUT ok -fatal: 'ambiguous_branch_and_file' matched multiple (2) remote tracking branches -ok 4 - when arg matches multiple remotes, do not fallback to interpreting as pathspec - -expecting success of 2024.5 'checkout of branch from multiple remotes fails with advice': - git checkout -B master && - test_might_fail git branch -D foo && - test_must_fail git checkout foo 2>stderr && - test_branch master && - status_uno_is_clean && - test_i18ngrep "^hint: " stderr && - test_must_fail git -c advice.checkoutAmbiguousRemoteBranchName=false \ - checkout foo 2>stderr && - test_branch master && - status_uno_is_clean && - test_i18ngrep ! "^hint: " stderr +fatal: '--track' cannot be used with updating paths +ok 3 - checkout --track -b rejects an extra path argument -Switched to and reset branch 'master' -error: branch 'foo' not found. -hint: If you meant to check out a remote tracking branch on, e.g. 'origin', -hint: you can do so by fully qualifying the name with the --track option: -hint: -hint: git checkout --track origin/ -hint: -hint: If you'd like to always have checkouts of an ambiguous prefer -hint: one remote, e.g. the 'origin' remote, consider setting -hint: checkout.defaultRemote=origin in your config. -ok 5 - checkout of branch from multiple remotes fails with advice +# passed all 3 test(s) +1..3 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t2026-checkout-pathspec-file.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2026-checkout-pathspec-file/.git/ +expecting success of 2026.1 'setup': + test_commit file0 && -expecting success of 2024.6 'checkout -p with multiple remotes does not print advice': - git checkout -B master && - test_might_fail git branch -D foo && + echo 1 >fileA.t && + echo 1 >fileB.t && + echo 1 >fileC.t && + echo 1 >fileD.t && + git add fileA.t fileB.t fileC.t fileD.t && + git commit -m "files 1" && - git checkout -p foo 2>stderr && - test_i18ngrep ! "^hint: " stderr && - status_uno_is_clean + echo 2 >fileA.t && + echo 2 >fileB.t && + echo 2 >fileC.t && + echo 2 >fileD.t && + git add fileA.t fileB.t fileC.t fileD.t && + git commit -m "files 2" && -Reset branch 'master' -error: branch 'foo' not found. -ok 6 - checkout -p with multiple remotes does not print advice + git tag checkpoint -expecting success of 2024.7 'checkout of branch from multiple remotes succeeds with checkout.defaultRemote #1': - git checkout -B master && - status_uno_is_clean && - test_might_fail git branch -D foo && +[master (root-commit) ad2e047] file0 + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file0.t +[master 46ee160] files 1 + Author: A U Thor + 4 files changed, 4 insertions(+) + create mode 100644 fileA.t + create mode 100644 fileB.t + create mode 100644 fileC.t + create mode 100644 fileD.t +[master 774eb8e] files 2 + Author: A U Thor + 4 files changed, 4 insertions(+), 4 deletions(-) +ok 1 - setup - git -c checkout.defaultRemote=repo_a checkout foo && - status_uno_is_clean && - test_branch foo && - test_cmp_rev remotes/repo_a/foo HEAD && - test_branch_upstream foo repo_a foo +expecting success of 2026.2 '--pathspec-from-file from stdin': + restore_checkpoint && -Reset branch 'master' -error: branch 'foo' not found. -Switched to a new branch 'foo' -Branch 'foo' set up to track remote branch 'foo' from 'repo_a'. -ok 7 - checkout of branch from multiple remotes succeeds with checkout.defaultRemote #1 + echo fileA.t | git checkout --pathspec-from-file=- HEAD^1 && -expecting success of 2024.8 'checkout of branch from a single remote succeeds #1': - git checkout -B master && - test_might_fail git branch -D bar && + cat >expect <<-\EOF && + M fileA.t + EOF + verify_expect - git checkout bar && - status_uno_is_clean && - test_branch bar && - test_cmp_rev remotes/repo_a/bar HEAD && - test_branch_upstream bar repo_a bar +HEAD is now at 774eb8e files 2 +Updated 1 path from 0465292 +ok 2 - --pathspec-from-file from stdin -Switched to and reset branch 'master' -error: branch 'bar' not found. -Switched to a new branch 'bar' -Branch 'bar' set up to track remote branch 'bar' from 'repo_a'. -ok 8 - checkout of branch from a single remote succeeds #1 +expecting success of 2026.3 '--pathspec-from-file from file': + restore_checkpoint && -expecting success of 2024.9 'checkout of branch from a single remote succeeds #2': - git checkout -B master && - test_might_fail git branch -D baz && + echo fileA.t >list && + git checkout --pathspec-from-file=list HEAD^1 && - git checkout baz && - status_uno_is_clean && - test_branch baz && - test_cmp_rev remotes/other_b/baz HEAD && - test_branch_upstream baz repo_b baz + cat >expect <<-\EOF && + M fileA.t + EOF + verify_expect -Switched to and reset branch 'master' -error: branch 'baz' not found. -Switched to a new branch 'baz' -Branch 'baz' set up to track remote branch 'baz' from 'repo_b'. -ok 9 - checkout of branch from a single remote succeeds #2 +HEAD is now at 774eb8e files 2 +Updated 1 path from 0465292 +ok 3 - --pathspec-from-file from file -expecting success of 2024.10 '--no-guess suppresses branch auto-vivification': - git checkout -B master && - status_uno_is_clean && - test_might_fail git branch -D bar && +expecting success of 2026.4 'NUL delimiters': + restore_checkpoint && - test_must_fail git checkout --no-guess bar && - test_must_fail git rev-parse --verify refs/heads/bar && - test_branch master + printf "fileA.t\0fileB.t\0" | git checkout --pathspec-from-file=- --pathspec-file-nul HEAD^1 && -Switched to and reset branch 'master' -Deleted branch bar (was 1901e7e). -error: pathspec 'bar' did not match any file(s) known to git -fatal: Needed a single revision -ok 10 - --no-guess suppresses branch auto-vivification + cat >expect <<-\EOF && + M fileA.t + M fileB.t + EOF + verify_expect -expecting success of 2024.11 'checkout.guess = false suppresses branch auto-vivification': - git checkout -B master && - status_uno_is_clean && - test_might_fail git branch -D bar && +HEAD is now at 774eb8e files 2 +Updated 2 paths from 0465292 +ok 4 - NUL delimiters - test_config checkout.guess false && - test_must_fail git checkout bar && - test_must_fail git rev-parse --verify refs/heads/bar && - test_branch master +expecting success of 2026.5 'LF delimiters': + restore_checkpoint && -Reset branch 'master' -error: branch 'bar' not found. -error: pathspec 'bar' did not match any file(s) known to git -fatal: Needed a single revision -ok 11 - checkout.guess = false suppresses branch auto-vivification + printf "fileA.t\nfileB.t\n" | git checkout --pathspec-from-file=- HEAD^1 && -expecting success of 2024.12 'setup more remotes with unconventional refspecs': - git checkout -B master && - status_uno_is_clean && - git init repo_c && - ( - cd repo_c && - test_commit c_master && - git checkout -b bar && - test_commit c_bar && - git checkout -b spam && - test_commit c_spam - ) && - git init repo_d && - ( - cd repo_d && - test_commit d_master && - git checkout -b baz && - test_commit d_baz && - git checkout -b eggs && - test_commit d_eggs - ) && - git remote add repo_c repo_c && - git config remote.repo_c.fetch \ - "+refs/heads/*:refs/remotes/extra_dir/repo_c/extra_dir/*" && - git remote add repo_d repo_d && - git config remote.repo_d.fetch \ - "+refs/heads/*:refs/repo_d/*" && - git fetch --all + cat >expect <<-\EOF && + M fileA.t + M fileB.t + EOF + verify_expect -Reset branch 'master' -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2024-checkout-dwim/repo_c/.git/ -[master (root-commit) dc015ba] c_master - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 c_master.t -Switched to a new branch 'bar' -[bar a433ad7] c_bar - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 c_bar.t -Switched to a new branch 'spam' -[spam 1702b85] c_spam - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 c_spam.t -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2024-checkout-dwim/repo_d/.git/ -[master (root-commit) f130d8f] d_master - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 d_master.t -Switched to a new branch 'baz' -[baz aff1e77] d_baz - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 d_baz.t -Switched to a new branch 'eggs' -[eggs fea4556] d_eggs - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 d_eggs.t -Fetching repo_a -Fetching repo_b -Fetching repo_c -From repo_c - * [new branch] bar -> extra_dir/repo_c/extra_dir/bar - * [new branch] master -> extra_dir/repo_c/extra_dir/master - * [new branch] spam -> extra_dir/repo_c/extra_dir/spam - * [new tag] c_bar -> c_bar - * [new tag] c_master -> c_master - * [new tag] c_spam -> c_spam -Fetching repo_d -From repo_d - * [new branch] baz -> refs/repo_d/baz - * [new branch] eggs -> refs/repo_d/eggs - * [new branch] master -> refs/repo_d/master - * [new tag] d_baz -> d_baz - * [new tag] d_eggs -> d_eggs - * [new tag] d_master -> d_master -ok 12 - setup more remotes with unconventional refspecs +HEAD is now at 774eb8e files 2 +Updated 2 paths from 0465292 +ok 5 - LF delimiters -expecting success of 2024.13 'checkout of branch from multiple remotes fails #2': - git checkout -B master && - status_uno_is_clean && - test_might_fail git branch -D bar && +expecting success of 2026.6 'no trailing delimiter': + restore_checkpoint && - test_must_fail git checkout bar && - status_uno_is_clean && - test_must_fail git rev-parse --verify refs/heads/bar && - test_branch master + printf "fileA.t\nfileB.t" | git checkout --pathspec-from-file=- HEAD^1 && -Reset branch 'master' -error: branch 'bar' not found. -hint: If you meant to check out a remote tracking branch on, e.g. 'origin', -hint: you can do so by fully qualifying the name with the --track option: -hint: -hint: git checkout --track origin/ -hint: -hint: If you'd like to always have checkouts of an ambiguous prefer -hint: one remote, e.g. the 'origin' remote, consider setting -hint: checkout.defaultRemote=origin in your config. -fatal: 'bar' matched multiple (2) remote tracking branches -fatal: Needed a single revision -ok 13 - checkout of branch from multiple remotes fails #2 + cat >expect <<-\EOF && + M fileA.t + M fileB.t + EOF + verify_expect -expecting success of 2024.14 'checkout of branch from multiple remotes fails #3': - git checkout -B master && - status_uno_is_clean && - test_might_fail git branch -D baz && +HEAD is now at 774eb8e files 2 +Updated 2 paths from 0465292 +ok 6 - no trailing delimiter - test_must_fail git checkout baz && - status_uno_is_clean && - test_must_fail git rev-parse --verify refs/heads/baz && - test_branch master +expecting success of 2026.7 'CRLF delimiters': + restore_checkpoint && -Reset branch 'master' -Deleted branch baz (was a4f4a16). -hint: If you meant to check out a remote tracking branch on, e.g. 'origin', -hint: you can do so by fully qualifying the name with the --track option: -hint: -hint: git checkout --track origin/ -hint: -hint: If you'd like to always have checkouts of an ambiguous prefer -hint: one remote, e.g. the 'origin' remote, consider setting -hint: checkout.defaultRemote=origin in your config. -fatal: 'baz' matched multiple (2) remote tracking branches -fatal: Needed a single revision -ok 14 - checkout of branch from multiple remotes fails #3 + printf "fileA.t\r\nfileB.t\r\n" | git checkout --pathspec-from-file=- HEAD^1 && -expecting success of 2024.15 'checkout of branch from a single remote succeeds #3': - git checkout -B master && - status_uno_is_clean && - test_might_fail git branch -D spam && + cat >expect <<-\EOF && + M fileA.t + M fileB.t + EOF + verify_expect - git checkout spam && - status_uno_is_clean && - test_branch spam && - test_cmp_rev refs/remotes/extra_dir/repo_c/extra_dir/spam HEAD && - test_branch_upstream spam repo_c spam +HEAD is now at 774eb8e files 2 +Updated 2 paths from 0465292 +ok 7 - CRLF delimiters -Reset branch 'master' -error: branch 'spam' not found. -Switched to a new branch 'spam' -Branch 'spam' set up to track remote branch 'spam' from 'repo_c'. -ok 15 - checkout of branch from a single remote succeeds #3 +expecting success of 2026.8 'quotes': + restore_checkpoint && -expecting success of 2024.16 'checkout of branch from a single remote succeeds #4': - git checkout -B master && - status_uno_is_clean && - test_might_fail git branch -D eggs && + cat >list <<-\EOF && + "file\101.t" + EOF - git checkout eggs && - status_uno_is_clean && - test_branch eggs && - test_cmp_rev refs/repo_d/eggs HEAD && - test_branch_upstream eggs repo_d eggs - -Switched to and reset branch 'master' -error: branch 'eggs' not found. -Switched to a new branch 'eggs' -Branch 'eggs' set up to track remote branch 'eggs' from 'repo_d'. -ok 16 - checkout of branch from a single remote succeeds #4 - -expecting success of 2024.17 'checkout of branch with a file having the same name fails': - git checkout -B master && - status_uno_is_clean && - test_might_fail git branch -D spam && - - >spam && - test_must_fail git checkout spam && - status_uno_is_clean && - test_must_fail git rev-parse --verify refs/heads/spam && - test_branch master - -Switched to and reset branch 'master' -Deleted branch spam (was 1702b85). -fatal: 'spam' could be both a local file and a tracking branch. -Please use -- (and optionally --no-guess) to disambiguate -fatal: Needed a single revision -ok 17 - checkout of branch with a file having the same name fails - -expecting success of 2024.18 'checkout of branch with a file in subdir having the same name fails': - git checkout -B master && - status_uno_is_clean && - test_might_fail git branch -D spam && - - >spam && - mkdir sub && - mv spam sub/spam && - test_must_fail git -C sub checkout spam && - status_uno_is_clean && - test_must_fail git rev-parse --verify refs/heads/spam && - test_branch master - -Reset branch 'master' -error: branch 'spam' not found. -fatal: 'spam' could be both a local file and a tracking branch. -Please use -- (and optionally --no-guess) to disambiguate -fatal: Needed a single revision -ok 18 - checkout of branch with a file in subdir having the same name fails - -expecting success of 2024.19 'checkout -- succeeds, even if a file with the same name exists': - git checkout -B master && - status_uno_is_clean && - test_might_fail git branch -D spam && - - >spam && - git checkout spam -- && - status_uno_is_clean && - test_branch spam && - test_cmp_rev refs/remotes/extra_dir/repo_c/extra_dir/spam HEAD && - test_branch_upstream spam repo_c spam - -Reset branch 'master' -error: branch 'spam' not found. -Switched to a new branch 'spam' -Branch 'spam' set up to track remote branch 'spam' from 'repo_c'. -ok 19 - checkout -- succeeds, even if a file with the same name exists - -expecting success of 2024.20 'loosely defined local base branch is reported correctly': - - git checkout master && - status_uno_is_clean && - git branch strict && - git branch loose && - git commit --allow-empty -m "a bit more" && - - test_config branch.strict.remote . && - test_config branch.loose.remote . && - test_config branch.strict.merge refs/heads/master && - test_config branch.loose.merge master && - - git checkout strict | sed -e "s/strict/BRANCHNAME/g" >expect && - status_uno_is_clean && - git checkout loose | sed -e "s/loose/BRANCHNAME/g" >actual && - status_uno_is_clean && - - test_cmp expect actual - -Switched to branch 'master' -[master b3a488e] a bit more - Author: A U Thor -Switched to branch 'strict' -Switched to branch 'loose' -ok 20 - loosely defined local base branch is reported correctly - -expecting success of 2024.21 'reject when arg could be part of dwim branch': - git remote add foo file://non-existent-place && - git update-ref refs/remotes/foo/dwim-arg HEAD && - echo foo >dwim-arg && - git add dwim-arg && - echo bar >dwim-arg && - test_must_fail git checkout dwim-arg && - test_must_fail git rev-parse refs/heads/dwim-arg -- && - grep bar dwim-arg - -fatal: 'dwim-arg' could be both a local file and a tracking branch. -Please use -- (and optionally --no-guess) to disambiguate -fatal: bad revision 'refs/heads/dwim-arg' -bar -ok 21 - reject when arg could be part of dwim branch - -expecting success of 2024.22 'disambiguate dwim branch and checkout path (1)': - git update-ref refs/remotes/foo/dwim-arg1 HEAD && - echo foo >dwim-arg1 && - git add dwim-arg1 && - echo bar >dwim-arg1 && - git checkout -- dwim-arg1 && - test_must_fail git rev-parse refs/heads/dwim-arg1 -- && - grep foo dwim-arg1 - -fatal: bad revision 'refs/heads/dwim-arg1' -foo -ok 22 - disambiguate dwim branch and checkout path (1) - -expecting success of 2024.23 'disambiguate dwim branch and checkout path (2)': - git update-ref refs/remotes/foo/dwim-arg2 HEAD && - echo foo >dwim-arg2 && - git add dwim-arg2 && - echo bar >dwim-arg2 && - git checkout dwim-arg2 -- && - git rev-parse refs/heads/dwim-arg2 -- && - grep bar dwim-arg2 - -Switched to a new branch 'dwim-arg2' -A dwim-arg -A dwim-arg1 -A dwim-arg2 -Branch 'dwim-arg2' set up to track remote branch 'dwim-arg2' from 'foo'. -fea4556a03c9ebfd8846a6e5b9d34170eeb7706d --- -bar -ok 23 - disambiguate dwim branch and checkout path (2) - -# passed all 23 test(s) -1..23 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t2025-checkout-no-overlay.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2025-checkout-no-overlay/.git/ -expecting success of 2025.1 'setup': - git commit --allow-empty -m "initial" - -[master (root-commit) 8b2b4f6] initial - Author: A U Thor -ok 1 - setup - -expecting success of 2025.2 'checkout --no-overlay deletes files not in ': - >file && - mkdir dir && - >dir/file1 && - git add file dir/file1 && - git checkout --no-overlay HEAD -- file && - test_path_is_missing file && - test_path_is_file dir/file1 - -ok 2 - checkout --no-overlay deletes files not in - -expecting success of 2025.3 'checkout --no-overlay removing last file from directory': - git checkout --no-overlay HEAD -- dir/file1 && - test_path_is_missing dir - -ok 3 - checkout --no-overlay removing last file from directory - -expecting success of 2025.4 'checkout -p --overlay is disallowed': - test_must_fail git checkout -p --overlay HEAD 2>actual && - test_i18ngrep "fatal: -p and --overlay are mutually exclusive" actual - -checking prerequisite: C_LOCALE_OUTPUT - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false - -) -prerequisite C_LOCALE_OUTPUT ok -fatal: -p and --overlay are mutually exclusive -ok 4 - checkout -p --overlay is disallowed - -expecting success of 2025.5 '--no-overlay --theirs with D/F conflict deletes file': - test_commit file1 file1 && - test_commit file2 file2 && - git rm --cached file1 && - echo 1234 >file1 && - F1=$(git rev-parse HEAD:file1) && - F2=$(git rev-parse HEAD:file2) && - { - echo "100644 $F1 1 file1" && - echo "100644 $F2 2 file1" - } | git update-index --index-info && - test_path_is_file file1 && - git checkout --theirs --no-overlay -- file1 && - test_path_is_missing file1 - -[master a11d2b7] file1 - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file1 -[master 1c03fe1] file2 - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file2 -rm 'file1' -ok 5 - --no-overlay --theirs with D/F conflict deletes file - -expecting success of 2025.6 'wildcard pathspec matches file in subdirectory': - git reset --hard && - mkdir subdir && - test_commit file3-1 subdir/file3 && - test_commit file3-2 subdir/file3 && - - git checkout --no-overlay file3-1 "*file3" && - echo file3-1 >expect && - test_path_is_file subdir/file3 && - test_cmp expect subdir/file3 - -HEAD is now at 1c03fe1 file2 -[master 78da8bb] file3-1 - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 subdir/file3 -[master cac8ac6] file3-2 - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -Updated 1 path from e1fb72e -ok 6 - wildcard pathspec matches file in subdirectory - -# passed all 6 test(s) -1..6 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t2026-checkout-pathspec-file.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2026-checkout-pathspec-file/.git/ -expecting success of 2026.1 'setup': - test_commit file0 && - - echo 1 >fileA.t && - echo 1 >fileB.t && - echo 1 >fileC.t && - echo 1 >fileD.t && - git add fileA.t fileB.t fileC.t fileD.t && - git commit -m "files 1" && - - echo 2 >fileA.t && - echo 2 >fileB.t && - echo 2 >fileC.t && - echo 2 >fileD.t && - git add fileA.t fileB.t fileC.t fileD.t && - git commit -m "files 2" && - - git tag checkpoint - -[master (root-commit) ad2e047] file0 - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file0.t -[master 46ee160] files 1 - Author: A U Thor - 4 files changed, 4 insertions(+) - create mode 100644 fileA.t - create mode 100644 fileB.t - create mode 100644 fileC.t - create mode 100644 fileD.t -[master 774eb8e] files 2 - Author: A U Thor - 4 files changed, 4 insertions(+), 4 deletions(-) -ok 1 - setup - -expecting success of 2026.2 '--pathspec-from-file from stdin': - restore_checkpoint && - - echo fileA.t | git checkout --pathspec-from-file=- HEAD^1 && - - cat >expect <<-\EOF && - M fileA.t - EOF - verify_expect - -HEAD is now at 774eb8e files 2 -Updated 1 path from 0465292 -ok 2 - --pathspec-from-file from stdin - -expecting success of 2026.3 '--pathspec-from-file from file': - restore_checkpoint && - - echo fileA.t >list && - git checkout --pathspec-from-file=list HEAD^1 && - - cat >expect <<-\EOF && - M fileA.t - EOF - verify_expect - -HEAD is now at 774eb8e files 2 -Updated 1 path from 0465292 -ok 3 - --pathspec-from-file from file - -expecting success of 2026.4 'NUL delimiters': - restore_checkpoint && - - printf "fileA.t\0fileB.t\0" | git checkout --pathspec-from-file=- --pathspec-file-nul HEAD^1 && - - cat >expect <<-\EOF && - M fileA.t - M fileB.t - EOF - verify_expect - -HEAD is now at 774eb8e files 2 -Updated 2 paths from 0465292 -ok 4 - NUL delimiters - -expecting success of 2026.5 'LF delimiters': - restore_checkpoint && - - printf "fileA.t\nfileB.t\n" | git checkout --pathspec-from-file=- HEAD^1 && - - cat >expect <<-\EOF && - M fileA.t - M fileB.t - EOF - verify_expect - -HEAD is now at 774eb8e files 2 -Updated 2 paths from 0465292 -ok 5 - LF delimiters - -expecting success of 2026.6 'no trailing delimiter': - restore_checkpoint && - - printf "fileA.t\nfileB.t" | git checkout --pathspec-from-file=- HEAD^1 && - - cat >expect <<-\EOF && - M fileA.t - M fileB.t - EOF - verify_expect - -HEAD is now at 774eb8e files 2 -Updated 2 paths from 0465292 -ok 6 - no trailing delimiter - -expecting success of 2026.7 'CRLF delimiters': - restore_checkpoint && - - printf "fileA.t\r\nfileB.t\r\n" | git checkout --pathspec-from-file=- HEAD^1 && - - cat >expect <<-\EOF && - M fileA.t - M fileB.t - EOF - verify_expect - -HEAD is now at 774eb8e files 2 -Updated 2 paths from 0465292 -ok 7 - CRLF delimiters - -expecting success of 2026.8 'quotes': - restore_checkpoint && - - cat >list <<-\EOF && - "file\101.t" - EOF - - git checkout --pathspec-from-file=list HEAD^1 && + git checkout --pathspec-from-file=list HEAD^1 && cat >expect <<-\EOF && M fileA.t @@ -71516,924 +71662,6 @@ 1..11 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t2027-checkout-track.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2027-checkout-track/.git/ -expecting success of 2027.1 'setup': - test_commit one && - test_commit two - -[master (root-commit) d79ce16] one - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 one.t -[master 139b20d] two - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 two.t -ok 1 - setup - -expecting success of 2027.2 'checkout --track -b creates a new tracking branch': - git checkout --track -b branch1 master && - test $(git rev-parse --abbrev-ref HEAD) = branch1 && - test $(git config --get branch.branch1.remote) = . && - test $(git config --get branch.branch1.merge) = refs/heads/master - -Switched to a new branch 'branch1' -Branch 'branch1' set up to track local branch 'master'. -ok 2 - checkout --track -b creates a new tracking branch - -expecting success of 2027.3 'checkout --track -b rejects an extra path argument': - test_must_fail git checkout --track -b branch2 master one.t 2>err && - test_i18ngrep "cannot be used with updating paths" err - -checking prerequisite: C_LOCALE_OUTPUT - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false - -) -prerequisite C_LOCALE_OUTPUT ok -fatal: '--track' cannot be used with updating paths -ok 3 - checkout --track -b rejects an extra path argument - -# passed all 3 test(s) -1..3 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t1701-racy-split-index.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t1701-racy-split-index/.git/ -expecting success of 1701.1 'setup': - # Only split the index when the test explicitly says so. - sane_unset GIT_TEST_SPLIT_INDEX && - git config splitIndex.maxPercentChange 100 && - - echo "cached content" >racy-file && - git add racy-file && - git commit -m initial && - - echo something >other-file && - # No raciness with this file. - test-tool chmtime =-20 other-file && - - echo "+cached content" >expect - -[master (root-commit) a4904a4] initial - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 racy-file -ok 1 - setup - -expecting success of 1701.2 'split the index while adding a racily clean file #0': - rm -f .git/index .git/sharedindex.* && - - # The next three commands must be run within the same - # second (so both writes to racy-file result in the same - # mtime) to create the interesting racy situation. - echo "cached content" >racy-file && - - # Update and split the index. The cache entry of - # racy-file will be stored only in the shared index. - git update-index --split-index --add racy-file && - - # File size must stay the same. - echo "dirty worktree" >racy-file && - - # Subsequent git commands should notice that racy-file - # and the split index have the same mtime, and check - # the content of the file to see if it is actually - # clean. - check_cached_diff - -ok 2 - split the index while adding a racily clean file #0 - -expecting success of 1701.3 'split the index while adding a racily clean file #1': - rm -f .git/index .git/sharedindex.* && - - # The next three commands must be run within the same - # second (so both writes to racy-file result in the same - # mtime) to create the interesting racy situation. - echo "cached content" >racy-file && - - # Update and split the index. The cache entry of - # racy-file will be stored only in the shared index. - git update-index --split-index --add racy-file && - - # File size must stay the same. - echo "dirty worktree" >racy-file && - - # Subsequent git commands should notice that racy-file - # and the split index have the same mtime, and check - # the content of the file to see if it is actually - # clean. - check_cached_diff - -ok 3 - split the index while adding a racily clean file #1 - -expecting success of 1701.4 'split the index while adding a racily clean file #2': - rm -f .git/index .git/sharedindex.* && - - # The next three commands must be run within the same - # second (so both writes to racy-file result in the same - # mtime) to create the interesting racy situation. - echo "cached content" >racy-file && - - # Update and split the index. The cache entry of - # racy-file will be stored only in the shared index. - git update-index --split-index --add racy-file && - - # File size must stay the same. - echo "dirty worktree" >racy-file && - - # Subsequent git commands should notice that racy-file - # and the split index have the same mtime, and check - # the content of the file to see if it is actually - # clean. - check_cached_diff - -ok 4 - split the index while adding a racily clean file #2 - -expecting success of 1701.5 'split the index while adding a racily clean file #3': - rm -f .git/index .git/sharedindex.* && - - # The next three commands must be run within the same - # second (so both writes to racy-file result in the same - # mtime) to create the interesting racy situation. - echo "cached content" >racy-file && - - # Update and split the index. The cache entry of - # racy-file will be stored only in the shared index. - git update-index --split-index --add racy-file && - - # File size must stay the same. - echo "dirty worktree" >racy-file && - - # Subsequent git commands should notice that racy-file - # and the split index have the same mtime, and check - # the content of the file to see if it is actually - # clean. - check_cached_diff - -ok 5 - split the index while adding a racily clean file #3 - -expecting success of 1701.6 'split the index while adding a racily clean file #4': - rm -f .git/index .git/sharedindex.* && - - # The next three commands must be run within the same - # second (so both writes to racy-file result in the same - # mtime) to create the interesting racy situation. - echo "cached content" >racy-file && - - # Update and split the index. The cache entry of - # racy-file will be stored only in the shared index. - git update-index --split-index --add racy-file && - - # File size must stay the same. - echo "dirty worktree" >racy-file && - - # Subsequent git commands should notice that racy-file - # and the split index have the same mtime, and check - # the content of the file to see if it is actually - # clean. - check_cached_diff - -ok 6 - split the index while adding a racily clean file #4 - -expecting success of 1701.7 'add a racily clean file to an already split index #0': - rm -f .git/index .git/sharedindex.* && - - git update-index --split-index && - - # The next three commands must be run within the same - # second. - echo "cached content" >racy-file && - - # Update the split index. The cache entry of racy-file - # will be stored only in the split index. - git update-index --add racy-file && - - # File size must stay the same. - echo "dirty worktree" >racy-file && - - # Subsequent git commands should notice that racy-file - # and the split index have the same mtime, and check - # the content of the file to see if it is actually - # clean. - check_cached_diff - -ok 7 - add a racily clean file to an already split index #0 - -expecting success of 1701.8 'add a racily clean file to an already split index #1': - rm -f .git/index .git/sharedindex.* && - - git update-index --split-index && - - # The next three commands must be run within the same - # second. - echo "cached content" >racy-file && - - # Update the split index. The cache entry of racy-file - # will be stored only in the split index. - git update-index --add racy-file && - - # File size must stay the same. - echo "dirty worktree" >racy-file && - - # Subsequent git commands should notice that racy-file - # and the split index have the same mtime, and check - # the content of the file to see if it is actually - # clean. - check_cached_diff - -ok 8 - add a racily clean file to an already split index #1 - -expecting success of 1701.9 'add a racily clean file to an already split index #2': - rm -f .git/index .git/sharedindex.* && - - git update-index --split-index && - - # The next three commands must be run within the same - # second. - echo "cached content" >racy-file && - - # Update the split index. The cache entry of racy-file - # will be stored only in the split index. - git update-index --add racy-file && - - # File size must stay the same. - echo "dirty worktree" >racy-file && - - # Subsequent git commands should notice that racy-file - # and the split index have the same mtime, and check - # the content of the file to see if it is actually - # clean. - check_cached_diff - -ok 9 - add a racily clean file to an already split index #2 - -expecting success of 1701.10 'add a racily clean file to an already split index #3': - rm -f .git/index .git/sharedindex.* && - - git update-index --split-index && - - # The next three commands must be run within the same - # second. - echo "cached content" >racy-file && - - # Update the split index. The cache entry of racy-file - # will be stored only in the split index. - git update-index --add racy-file && - - # File size must stay the same. - echo "dirty worktree" >racy-file && - - # Subsequent git commands should notice that racy-file - # and the split index have the same mtime, and check - # the content of the file to see if it is actually - # clean. - check_cached_diff - -ok 10 - add a racily clean file to an already split index #3 - -expecting success of 1701.11 'add a racily clean file to an already split index #4': - rm -f .git/index .git/sharedindex.* && - - git update-index --split-index && - - # The next three commands must be run within the same - # second. - echo "cached content" >racy-file && - - # Update the split index. The cache entry of racy-file - # will be stored only in the split index. - git update-index --add racy-file && - - # File size must stay the same. - echo "dirty worktree" >racy-file && - - # Subsequent git commands should notice that racy-file - # and the split index have the same mtime, and check - # the content of the file to see if it is actually - # clean. - check_cached_diff - -ok 11 - add a racily clean file to an already split index #4 - -expecting success of 1701.12 'split the index when the index contains a racily clean cache entry #0': - rm -f .git/index .git/sharedindex.* && - - # The next three commands must be run within the same - # second. - echo "cached content" >racy-file && - - git update-index --add racy-file && - - # File size must stay the same. - echo "dirty worktree" >racy-file && - - # Now wait a bit to ensure that the split index written - # below will get a more recent mtime than racy-file. - sleep 1 && - - # Update and split the index when the index contains - # the racily clean cache entry of racy-file. - # A corresponding replacement cache entry with smudged - # stat data should be added to the new split index. - git update-index --split-index --add other-file && - - # Subsequent git commands should notice the smudged - # stat data in the replacement cache entry and that it - # doesnt match with the file the worktree. - check_cached_diff - -ok 12 - split the index when the index contains a racily clean cache entry #0 - -expecting success of 1701.13 'split the index when the index contains a racily clean cache entry #1': - rm -f .git/index .git/sharedindex.* && - - # The next three commands must be run within the same - # second. - echo "cached content" >racy-file && - - git update-index --add racy-file && - - # File size must stay the same. - echo "dirty worktree" >racy-file && - - # Now wait a bit to ensure that the split index written - # below will get a more recent mtime than racy-file. - sleep 1 && - - # Update and split the index when the index contains - # the racily clean cache entry of racy-file. - # A corresponding replacement cache entry with smudged - # stat data should be added to the new split index. - git update-index --split-index --add other-file && - - # Subsequent git commands should notice the smudged - # stat data in the replacement cache entry and that it - # doesnt match with the file the worktree. - check_cached_diff - -ok 13 - split the index when the index contains a racily clean cache entry #1 - -expecting success of 1701.14 'split the index when the index contains a racily clean cache entry #2': - rm -f .git/index .git/sharedindex.* && - - # The next three commands must be run within the same - # second. - echo "cached content" >racy-file && - - git update-index --add racy-file && - - # File size must stay the same. - echo "dirty worktree" >racy-file && - - # Now wait a bit to ensure that the split index written - # below will get a more recent mtime than racy-file. - sleep 1 && - - # Update and split the index when the index contains - # the racily clean cache entry of racy-file. - # A corresponding replacement cache entry with smudged - # stat data should be added to the new split index. - git update-index --split-index --add other-file && - - # Subsequent git commands should notice the smudged - # stat data in the replacement cache entry and that it - # doesnt match with the file the worktree. - check_cached_diff - -ok 14 - split the index when the index contains a racily clean cache entry #2 - -expecting success of 1701.15 'split the index when the index contains a racily clean cache entry #3': - rm -f .git/index .git/sharedindex.* && - - # The next three commands must be run within the same - # second. - echo "cached content" >racy-file && - - git update-index --add racy-file && - - # File size must stay the same. - echo "dirty worktree" >racy-file && - - # Now wait a bit to ensure that the split index written - # below will get a more recent mtime than racy-file. - sleep 1 && - - # Update and split the index when the index contains - # the racily clean cache entry of racy-file. - # A corresponding replacement cache entry with smudged - # stat data should be added to the new split index. - git update-index --split-index --add other-file && - - # Subsequent git commands should notice the smudged - # stat data in the replacement cache entry and that it - # doesnt match with the file the worktree. - check_cached_diff - -ok 15 - split the index when the index contains a racily clean cache entry #3 - -expecting success of 1701.16 'split the index when the index contains a racily clean cache entry #4': - rm -f .git/index .git/sharedindex.* && - - # The next three commands must be run within the same - # second. - echo "cached content" >racy-file && - - git update-index --add racy-file && - - # File size must stay the same. - echo "dirty worktree" >racy-file && - - # Now wait a bit to ensure that the split index written - # below will get a more recent mtime than racy-file. - sleep 1 && - - # Update and split the index when the index contains - # the racily clean cache entry of racy-file. - # A corresponding replacement cache entry with smudged - # stat data should be added to the new split index. - git update-index --split-index --add other-file && - - # Subsequent git commands should notice the smudged - # stat data in the replacement cache entry and that it - # doesnt match with the file the worktree. - check_cached_diff - -ok 16 - split the index when the index contains a racily clean cache entry #4 - -expecting success of 1701.17 'update the split index when it contains a new racily clean cache entry #0': - rm -f .git/index .git/sharedindex.* && - - git update-index --split-index && - - # The next three commands must be run within the same - # second. - echo "cached content" >racy-file && - - # Update the split index. The cache entry of racy-file - # will be stored only in the split index. - git update-index --add racy-file && - - # File size must stay the same. - echo "dirty worktree" >racy-file && - - # Now wait a bit to ensure that the split index written - # below will get a more recent mtime than racy-file. - sleep 1 && - - # Update the split index when the racily clean cache - # entry of racy-file is only stored in the split index. - # An updated cache entry with smudged stat data should - # be added to the new split index. - git update-index --add other-file && - - # Subsequent git commands should notice the smudged - # stat data. - check_cached_diff - -ok 17 - update the split index when it contains a new racily clean cache entry #0 - -expecting success of 1701.18 'update the split index when it contains a new racily clean cache entry #1': - rm -f .git/index .git/sharedindex.* && - - git update-index --split-index && - - # The next three commands must be run within the same - # second. - echo "cached content" >racy-file && - - # Update the split index. The cache entry of racy-file - # will be stored only in the split index. - git update-index --add racy-file && - - # File size must stay the same. - echo "dirty worktree" >racy-file && - - # Now wait a bit to ensure that the split index written - # below will get a more recent mtime than racy-file. - sleep 1 && - - # Update the split index when the racily clean cache - # entry of racy-file is only stored in the split index. - # An updated cache entry with smudged stat data should - # be added to the new split index. - git update-index --add other-file && - - # Subsequent git commands should notice the smudged - # stat data. - check_cached_diff - -ok 18 - update the split index when it contains a new racily clean cache entry #1 - -expecting success of 1701.19 'update the split index when it contains a new racily clean cache entry #2': - rm -f .git/index .git/sharedindex.* && - - git update-index --split-index && - - # The next three commands must be run within the same - # second. - echo "cached content" >racy-file && - - # Update the split index. The cache entry of racy-file - # will be stored only in the split index. - git update-index --add racy-file && - - # File size must stay the same. - echo "dirty worktree" >racy-file && - - # Now wait a bit to ensure that the split index written - # below will get a more recent mtime than racy-file. - sleep 1 && - - # Update the split index when the racily clean cache - # entry of racy-file is only stored in the split index. - # An updated cache entry with smudged stat data should - # be added to the new split index. - git update-index --add other-file && - - # Subsequent git commands should notice the smudged - # stat data. - check_cached_diff - -ok 19 - update the split index when it contains a new racily clean cache entry #2 - -expecting success of 1701.20 'update the split index when it contains a new racily clean cache entry #3': - rm -f .git/index .git/sharedindex.* && - - git update-index --split-index && - - # The next three commands must be run within the same - # second. - echo "cached content" >racy-file && - - # Update the split index. The cache entry of racy-file - # will be stored only in the split index. - git update-index --add racy-file && - - # File size must stay the same. - echo "dirty worktree" >racy-file && - - # Now wait a bit to ensure that the split index written - # below will get a more recent mtime than racy-file. - sleep 1 && - - # Update the split index when the racily clean cache - # entry of racy-file is only stored in the split index. - # An updated cache entry with smudged stat data should - # be added to the new split index. - git update-index --add other-file && - - # Subsequent git commands should notice the smudged - # stat data. - check_cached_diff - -ok 20 - update the split index when it contains a new racily clean cache entry #3 - -expecting success of 1701.21 'update the split index when it contains a new racily clean cache entry #4': - rm -f .git/index .git/sharedindex.* && - - git update-index --split-index && - - # The next three commands must be run within the same - # second. - echo "cached content" >racy-file && - - # Update the split index. The cache entry of racy-file - # will be stored only in the split index. - git update-index --add racy-file && - - # File size must stay the same. - echo "dirty worktree" >racy-file && - - # Now wait a bit to ensure that the split index written - # below will get a more recent mtime than racy-file. - sleep 1 && - - # Update the split index when the racily clean cache - # entry of racy-file is only stored in the split index. - # An updated cache entry with smudged stat data should - # be added to the new split index. - git update-index --add other-file && - - # Subsequent git commands should notice the smudged - # stat data. - check_cached_diff - -ok 21 - update the split index when it contains a new racily clean cache entry #4 - -expecting success of 1701.22 'update the split index when a racily clean cache entry is stored only in the shared index #0': - rm -f .git/index .git/sharedindex.* && - - # The next three commands must be run within the same - # second. - echo "cached content" >racy-file && - - # Update and split the index. The cache entry of - # racy-file will be stored only in the shared index. - git update-index --split-index --add racy-file && - - # File size must stay the same. - echo "dirty worktree" >racy-file && - - # Now wait a bit to ensure that the split index written - # below will get a more recent mtime than racy-file. - sleep 1 && - - # Update the split index when the racily clean cache - # entry of racy-file is only stored in the shared index. - # A corresponding replacement cache entry with smudged - # stat data should be added to the new split index. - git update-index --add other-file && - - # Subsequent git commands should notice the smudged - # stat data. - check_cached_diff - -ok 22 - update the split index when a racily clean cache entry is stored only in the shared index #0 - -expecting success of 1701.23 'update the split index when a racily clean cache entry is stored only in the shared index #1': - rm -f .git/index .git/sharedindex.* && - - # The next three commands must be run within the same - # second. - echo "cached content" >racy-file && - - # Update and split the index. The cache entry of - # racy-file will be stored only in the shared index. - git update-index --split-index --add racy-file && - - # File size must stay the same. - echo "dirty worktree" >racy-file && - - # Now wait a bit to ensure that the split index written - # below will get a more recent mtime than racy-file. - sleep 1 && - - # Update the split index when the racily clean cache - # entry of racy-file is only stored in the shared index. - # A corresponding replacement cache entry with smudged - # stat data should be added to the new split index. - git update-index --add other-file && - - # Subsequent git commands should notice the smudged - # stat data. - check_cached_diff - -ok 23 - update the split index when a racily clean cache entry is stored only in the shared index #1 - -expecting success of 1701.24 'update the split index when a racily clean cache entry is stored only in the shared index #2': - rm -f .git/index .git/sharedindex.* && - - # The next three commands must be run within the same - # second. - echo "cached content" >racy-file && - - # Update and split the index. The cache entry of - # racy-file will be stored only in the shared index. - git update-index --split-index --add racy-file && - - # File size must stay the same. - echo "dirty worktree" >racy-file && - - # Now wait a bit to ensure that the split index written - # below will get a more recent mtime than racy-file. - sleep 1 && - - # Update the split index when the racily clean cache - # entry of racy-file is only stored in the shared index. - # A corresponding replacement cache entry with smudged - # stat data should be added to the new split index. - git update-index --add other-file && - - # Subsequent git commands should notice the smudged - # stat data. - check_cached_diff - -ok 24 - update the split index when a racily clean cache entry is stored only in the shared index #2 - -expecting success of 1701.25 'update the split index when a racily clean cache entry is stored only in the shared index #3': - rm -f .git/index .git/sharedindex.* && - - # The next three commands must be run within the same - # second. - echo "cached content" >racy-file && - - # Update and split the index. The cache entry of - # racy-file will be stored only in the shared index. - git update-index --split-index --add racy-file && - - # File size must stay the same. - echo "dirty worktree" >racy-file && - - # Now wait a bit to ensure that the split index written - # below will get a more recent mtime than racy-file. - sleep 1 && - - # Update the split index when the racily clean cache - # entry of racy-file is only stored in the shared index. - # A corresponding replacement cache entry with smudged - # stat data should be added to the new split index. - git update-index --add other-file && - - # Subsequent git commands should notice the smudged - # stat data. - check_cached_diff - -ok 25 - update the split index when a racily clean cache entry is stored only in the shared index #3 - -expecting success of 1701.26 'update the split index when a racily clean cache entry is stored only in the shared index #4': - rm -f .git/index .git/sharedindex.* && - - # The next three commands must be run within the same - # second. - echo "cached content" >racy-file && - - # Update and split the index. The cache entry of - # racy-file will be stored only in the shared index. - git update-index --split-index --add racy-file && - - # File size must stay the same. - echo "dirty worktree" >racy-file && - - # Now wait a bit to ensure that the split index written - # below will get a more recent mtime than racy-file. - sleep 1 && - - # Update the split index when the racily clean cache - # entry of racy-file is only stored in the shared index. - # A corresponding replacement cache entry with smudged - # stat data should be added to the new split index. - git update-index --add other-file && - - # Subsequent git commands should notice the smudged - # stat data. - check_cached_diff - -ok 26 - update the split index when a racily clean cache entry is stored only in the shared index #4 - -expecting success of 1701.27 'update the split index after unpack trees() copied a racily clean cache entry from the shared index #0': - rm -f .git/index .git/sharedindex.* && - - # The next three commands must be run within the same - # second. - echo "cached content" >racy-file && - - # Update and split the index. The cache entry of - # racy-file will be stored only in the shared index. - git update-index --split-index --add racy-file && - - # File size must stay the same. - echo "dirty worktree" >racy-file && - - # Now wait a bit to ensure that the split index written - # below will get a more recent mtime than racy-file. - sleep 1 && - - # Update the split index after unpack_trees() copied the - # racily clean cache entry of racy-file from the shared - # index. A corresponding replacement cache entry - # with smudged stat data should be added to the new - # split index. - git read-tree -m HEAD && - - # Subsequent git commands should notice the smudged - # stat data. - check_cached_diff - -ok 27 - update the split index after unpack trees() copied a racily clean cache entry from the shared index #0 - -expecting success of 1701.28 'update the split index after unpack trees() copied a racily clean cache entry from the shared index #1': - rm -f .git/index .git/sharedindex.* && - - # The next three commands must be run within the same - # second. - echo "cached content" >racy-file && - - # Update and split the index. The cache entry of - # racy-file will be stored only in the shared index. - git update-index --split-index --add racy-file && - - # File size must stay the same. - echo "dirty worktree" >racy-file && - - # Now wait a bit to ensure that the split index written - # below will get a more recent mtime than racy-file. - sleep 1 && - - # Update the split index after unpack_trees() copied the - # racily clean cache entry of racy-file from the shared - # index. A corresponding replacement cache entry - # with smudged stat data should be added to the new - # split index. - git read-tree -m HEAD && - - # Subsequent git commands should notice the smudged - # stat data. - check_cached_diff - -ok 28 - update the split index after unpack trees() copied a racily clean cache entry from the shared index #1 - -expecting success of 1701.29 'update the split index after unpack trees() copied a racily clean cache entry from the shared index #2': - rm -f .git/index .git/sharedindex.* && - - # The next three commands must be run within the same - # second. - echo "cached content" >racy-file && - - # Update and split the index. The cache entry of - # racy-file will be stored only in the shared index. - git update-index --split-index --add racy-file && - - # File size must stay the same. - echo "dirty worktree" >racy-file && - - # Now wait a bit to ensure that the split index written - # below will get a more recent mtime than racy-file. - sleep 1 && - - # Update the split index after unpack_trees() copied the - # racily clean cache entry of racy-file from the shared - # index. A corresponding replacement cache entry - # with smudged stat data should be added to the new - # split index. - git read-tree -m HEAD && - - # Subsequent git commands should notice the smudged - # stat data. - check_cached_diff - -ok 29 - update the split index after unpack trees() copied a racily clean cache entry from the shared index #2 - -expecting success of 1701.30 'update the split index after unpack trees() copied a racily clean cache entry from the shared index #3': - rm -f .git/index .git/sharedindex.* && - - # The next three commands must be run within the same - # second. - echo "cached content" >racy-file && - - # Update and split the index. The cache entry of - # racy-file will be stored only in the shared index. - git update-index --split-index --add racy-file && - - # File size must stay the same. - echo "dirty worktree" >racy-file && - - # Now wait a bit to ensure that the split index written - # below will get a more recent mtime than racy-file. - sleep 1 && - - # Update the split index after unpack_trees() copied the - # racily clean cache entry of racy-file from the shared - # index. A corresponding replacement cache entry - # with smudged stat data should be added to the new - # split index. - git read-tree -m HEAD && - - # Subsequent git commands should notice the smudged - # stat data. - check_cached_diff - -ok 30 - update the split index after unpack trees() copied a racily clean cache entry from the shared index #3 - -expecting success of 1701.31 'update the split index after unpack trees() copied a racily clean cache entry from the shared index #4': - rm -f .git/index .git/sharedindex.* && - - # The next three commands must be run within the same - # second. - echo "cached content" >racy-file && - - # Update and split the index. The cache entry of - # racy-file will be stored only in the shared index. - git update-index --split-index --add racy-file && - - # File size must stay the same. - echo "dirty worktree" >racy-file && - - # Now wait a bit to ensure that the split index written - # below will get a more recent mtime than racy-file. - sleep 1 && - - # Update the split index after unpack_trees() copied the - # racily clean cache entry of racy-file from the shared - # index. A corresponding replacement cache entry - # with smudged stat data should be added to the new - # split index. - git read-tree -m HEAD && - - # Subsequent git commands should notice the smudged - # stat data. - check_cached_diff - -ok 31 - update the split index after unpack trees() copied a racily clean cache entry from the shared index #4 - -# passed all 31 test(s) -1..31 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' *** t2050-git-dir-relative.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2050-git-dir-relative/.git/ expecting success of 2050.1 'Setting up post-commit hook': @@ -73073,6 +72301,632 @@ 1..10 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t2024-checkout-dwim.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2024-checkout-dwim/.git/ +expecting success of 2024.1 'setup': + test_commit my_master && + git init repo_a && + ( + cd repo_a && + test_commit a_master && + git checkout -b foo && + test_commit a_foo && + git checkout -b bar && + test_commit a_bar && + git checkout -b ambiguous_branch_and_file && + test_commit a_ambiguous_branch_and_file + ) && + git init repo_b && + ( + cd repo_b && + test_commit b_master && + git checkout -b foo && + test_commit b_foo && + git checkout -b baz && + test_commit b_baz && + git checkout -b ambiguous_branch_and_file && + test_commit b_ambiguous_branch_and_file + ) && + git remote add repo_a repo_a && + git remote add repo_b repo_b && + git config remote.repo_b.fetch \ + "+refs/heads/*:refs/remotes/other_b/*" && + git fetch --all + +[master (root-commit) 93159a7] my_master + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 my_master.t +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2024-checkout-dwim/repo_a/.git/ +[master (root-commit) 9480204] a_master + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 a_master.t +Switched to a new branch 'foo' +[foo ba3a763] a_foo + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 a_foo.t +Switched to a new branch 'bar' +[bar 1901e7e] a_bar + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 a_bar.t +Switched to a new branch 'ambiguous_branch_and_file' +[ambiguous_branch_and_file 62502cc] a_ambiguous_branch_and_file + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 a_ambiguous_branch_and_file.t +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2024-checkout-dwim/repo_b/.git/ +[master (root-commit) eb1360a] b_master + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 b_master.t +Switched to a new branch 'foo' +[foo 73c9fcf] b_foo + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 b_foo.t +Switched to a new branch 'baz' +[baz a4f4a16] b_baz + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 b_baz.t +Switched to a new branch 'ambiguous_branch_and_file' +[ambiguous_branch_and_file 85d6512] b_ambiguous_branch_and_file + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 b_ambiguous_branch_and_file.t +Fetching repo_a +From repo_a + * [new branch] ambiguous_branch_and_file -> repo_a/ambiguous_branch_and_file + * [new branch] bar -> repo_a/bar + * [new branch] foo -> repo_a/foo + * [new branch] master -> repo_a/master + * [new tag] a_ambiguous_branch_and_file -> a_ambiguous_branch_and_file + * [new tag] a_bar -> a_bar + * [new tag] a_foo -> a_foo + * [new tag] a_master -> a_master +Fetching repo_b +From repo_b + * [new branch] ambiguous_branch_and_file -> other_b/ambiguous_branch_and_file + * [new branch] baz -> other_b/baz + * [new branch] foo -> other_b/foo + * [new branch] master -> other_b/master + * [new tag] b_ambiguous_branch_and_file -> b_ambiguous_branch_and_file + * [new tag] b_baz -> b_baz + * [new tag] b_foo -> b_foo + * [new tag] b_master -> b_master +ok 1 - setup + +expecting success of 2024.2 'checkout of non-existing branch fails': + git checkout -B master && + test_might_fail git branch -D xyzzy && + + test_must_fail git checkout xyzzy && + status_uno_is_clean && + test_must_fail git rev-parse --verify refs/heads/xyzzy && + test_branch master + +Reset branch 'master' +error: branch 'xyzzy' not found. +error: pathspec 'xyzzy' did not match any file(s) known to git +fatal: Needed a single revision +ok 2 - checkout of non-existing branch fails + +expecting success of 2024.3 'checkout of branch from multiple remotes fails #1': + git checkout -B master && + test_might_fail git branch -D foo && + + test_must_fail git checkout foo && + status_uno_is_clean && + test_must_fail git rev-parse --verify refs/heads/foo && + test_branch master + +Reset branch 'master' +error: branch 'foo' not found. +hint: If you meant to check out a remote tracking branch on, e.g. 'origin', +hint: you can do so by fully qualifying the name with the --track option: +hint: +hint: git checkout --track origin/ +hint: +hint: If you'd like to always have checkouts of an ambiguous prefer +hint: one remote, e.g. the 'origin' remote, consider setting +hint: checkout.defaultRemote=origin in your config. +fatal: 'foo' matched multiple (2) remote tracking branches +fatal: Needed a single revision +ok 3 - checkout of branch from multiple remotes fails #1 + +expecting success of 2024.4 'when arg matches multiple remotes, do not fallback to interpreting as pathspec': + # create a file with name matching remote branch name + git checkout -b t_ambiguous_branch_and_file && + >ambiguous_branch_and_file && + git add ambiguous_branch_and_file && + git commit -m "ambiguous_branch_and_file" && + + # modify file to verify that it will not be touched by checkout + test_when_finished "git checkout -- ambiguous_branch_and_file" && + echo "file contents" >ambiguous_branch_and_file && + cp ambiguous_branch_and_file expect && + + test_must_fail git checkout ambiguous_branch_and_file 2>err && + + test_i18ngrep "matched multiple (2) remote tracking branches" err && + + # file must not be altered + test_cmp expect ambiguous_branch_and_file + +Switched to a new branch 't_ambiguous_branch_and_file' +[t_ambiguous_branch_and_file 314694c] ambiguous_branch_and_file + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 ambiguous_branch_and_file +checking prerequisite: C_LOCALE_OUTPUT + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false + +) +prerequisite C_LOCALE_OUTPUT ok +fatal: 'ambiguous_branch_and_file' matched multiple (2) remote tracking branches +ok 4 - when arg matches multiple remotes, do not fallback to interpreting as pathspec + +expecting success of 2024.5 'checkout of branch from multiple remotes fails with advice': + git checkout -B master && + test_might_fail git branch -D foo && + test_must_fail git checkout foo 2>stderr && + test_branch master && + status_uno_is_clean && + test_i18ngrep "^hint: " stderr && + test_must_fail git -c advice.checkoutAmbiguousRemoteBranchName=false \ + checkout foo 2>stderr && + test_branch master && + status_uno_is_clean && + test_i18ngrep ! "^hint: " stderr + +Switched to and reset branch 'master' +error: branch 'foo' not found. +hint: If you meant to check out a remote tracking branch on, e.g. 'origin', +hint: you can do so by fully qualifying the name with the --track option: +hint: +hint: git checkout --track origin/ +hint: +hint: If you'd like to always have checkouts of an ambiguous prefer +hint: one remote, e.g. the 'origin' remote, consider setting +hint: checkout.defaultRemote=origin in your config. +ok 5 - checkout of branch from multiple remotes fails with advice + +expecting success of 2024.6 'checkout -p with multiple remotes does not print advice': + git checkout -B master && + test_might_fail git branch -D foo && + + git checkout -p foo 2>stderr && + test_i18ngrep ! "^hint: " stderr && + status_uno_is_clean + +Reset branch 'master' +error: branch 'foo' not found. +ok 6 - checkout -p with multiple remotes does not print advice + +expecting success of 2024.7 'checkout of branch from multiple remotes succeeds with checkout.defaultRemote #1': + git checkout -B master && + status_uno_is_clean && + test_might_fail git branch -D foo && + + git -c checkout.defaultRemote=repo_a checkout foo && + status_uno_is_clean && + test_branch foo && + test_cmp_rev remotes/repo_a/foo HEAD && + test_branch_upstream foo repo_a foo + +Reset branch 'master' +error: branch 'foo' not found. +Switched to a new branch 'foo' +Branch 'foo' set up to track remote branch 'foo' from 'repo_a'. +ok 7 - checkout of branch from multiple remotes succeeds with checkout.defaultRemote #1 + +expecting success of 2024.8 'checkout of branch from a single remote succeeds #1': + git checkout -B master && + test_might_fail git branch -D bar && + + git checkout bar && + status_uno_is_clean && + test_branch bar && + test_cmp_rev remotes/repo_a/bar HEAD && + test_branch_upstream bar repo_a bar + +Switched to and reset branch 'master' +error: branch 'bar' not found. +Switched to a new branch 'bar' +Branch 'bar' set up to track remote branch 'bar' from 'repo_a'. +ok 8 - checkout of branch from a single remote succeeds #1 + +expecting success of 2024.9 'checkout of branch from a single remote succeeds #2': + git checkout -B master && + test_might_fail git branch -D baz && + + git checkout baz && + status_uno_is_clean && + test_branch baz && + test_cmp_rev remotes/other_b/baz HEAD && + test_branch_upstream baz repo_b baz + +Switched to and reset branch 'master' +error: branch 'baz' not found. +Switched to a new branch 'baz' +Branch 'baz' set up to track remote branch 'baz' from 'repo_b'. +ok 9 - checkout of branch from a single remote succeeds #2 + +expecting success of 2024.10 '--no-guess suppresses branch auto-vivification': + git checkout -B master && + status_uno_is_clean && + test_might_fail git branch -D bar && + + test_must_fail git checkout --no-guess bar && + test_must_fail git rev-parse --verify refs/heads/bar && + test_branch master + +Switched to and reset branch 'master' +Deleted branch bar (was 1901e7e). +error: pathspec 'bar' did not match any file(s) known to git +fatal: Needed a single revision +ok 10 - --no-guess suppresses branch auto-vivification + +expecting success of 2024.11 'checkout.guess = false suppresses branch auto-vivification': + git checkout -B master && + status_uno_is_clean && + test_might_fail git branch -D bar && + + test_config checkout.guess false && + test_must_fail git checkout bar && + test_must_fail git rev-parse --verify refs/heads/bar && + test_branch master + +Reset branch 'master' +error: branch 'bar' not found. +error: pathspec 'bar' did not match any file(s) known to git +fatal: Needed a single revision +ok 11 - checkout.guess = false suppresses branch auto-vivification + +expecting success of 2024.12 'setup more remotes with unconventional refspecs': + git checkout -B master && + status_uno_is_clean && + git init repo_c && + ( + cd repo_c && + test_commit c_master && + git checkout -b bar && + test_commit c_bar && + git checkout -b spam && + test_commit c_spam + ) && + git init repo_d && + ( + cd repo_d && + test_commit d_master && + git checkout -b baz && + test_commit d_baz && + git checkout -b eggs && + test_commit d_eggs + ) && + git remote add repo_c repo_c && + git config remote.repo_c.fetch \ + "+refs/heads/*:refs/remotes/extra_dir/repo_c/extra_dir/*" && + git remote add repo_d repo_d && + git config remote.repo_d.fetch \ + "+refs/heads/*:refs/repo_d/*" && + git fetch --all + +Reset branch 'master' +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2024-checkout-dwim/repo_c/.git/ +[master (root-commit) dc015ba] c_master + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 c_master.t +Switched to a new branch 'bar' +[bar a433ad7] c_bar + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 c_bar.t +Switched to a new branch 'spam' +[spam 1702b85] c_spam + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 c_spam.t +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2024-checkout-dwim/repo_d/.git/ +[master (root-commit) f130d8f] d_master + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 d_master.t +Switched to a new branch 'baz' +[baz aff1e77] d_baz + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 d_baz.t +Switched to a new branch 'eggs' +[eggs fea4556] d_eggs + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 d_eggs.t +Fetching repo_a +Fetching repo_b +Fetching repo_c +From repo_c + * [new branch] bar -> extra_dir/repo_c/extra_dir/bar + * [new branch] master -> extra_dir/repo_c/extra_dir/master + * [new branch] spam -> extra_dir/repo_c/extra_dir/spam + * [new tag] c_bar -> c_bar + * [new tag] c_master -> c_master + * [new tag] c_spam -> c_spam +Fetching repo_d +From repo_d + * [new branch] baz -> refs/repo_d/baz + * [new branch] eggs -> refs/repo_d/eggs + * [new branch] master -> refs/repo_d/master + * [new tag] d_baz -> d_baz + * [new tag] d_eggs -> d_eggs + * [new tag] d_master -> d_master +ok 12 - setup more remotes with unconventional refspecs + +expecting success of 2024.13 'checkout of branch from multiple remotes fails #2': + git checkout -B master && + status_uno_is_clean && + test_might_fail git branch -D bar && + + test_must_fail git checkout bar && + status_uno_is_clean && + test_must_fail git rev-parse --verify refs/heads/bar && + test_branch master + +Reset branch 'master' +error: branch 'bar' not found. +hint: If you meant to check out a remote tracking branch on, e.g. 'origin', +hint: you can do so by fully qualifying the name with the --track option: +hint: +hint: git checkout --track origin/ +hint: +hint: If you'd like to always have checkouts of an ambiguous prefer +hint: one remote, e.g. the 'origin' remote, consider setting +hint: checkout.defaultRemote=origin in your config. +fatal: 'bar' matched multiple (2) remote tracking branches +fatal: Needed a single revision +ok 13 - checkout of branch from multiple remotes fails #2 + +expecting success of 2024.14 'checkout of branch from multiple remotes fails #3': + git checkout -B master && + status_uno_is_clean && + test_might_fail git branch -D baz && + + test_must_fail git checkout baz && + status_uno_is_clean && + test_must_fail git rev-parse --verify refs/heads/baz && + test_branch master + +Reset branch 'master' +Deleted branch baz (was a4f4a16). +hint: If you meant to check out a remote tracking branch on, e.g. 'origin', +hint: you can do so by fully qualifying the name with the --track option: +hint: +hint: git checkout --track origin/ +hint: +hint: If you'd like to always have checkouts of an ambiguous prefer +hint: one remote, e.g. the 'origin' remote, consider setting +hint: checkout.defaultRemote=origin in your config. +fatal: 'baz' matched multiple (2) remote tracking branches +fatal: Needed a single revision +ok 14 - checkout of branch from multiple remotes fails #3 + +expecting success of 2024.15 'checkout of branch from a single remote succeeds #3': + git checkout -B master && + status_uno_is_clean && + test_might_fail git branch -D spam && + + git checkout spam && + status_uno_is_clean && + test_branch spam && + test_cmp_rev refs/remotes/extra_dir/repo_c/extra_dir/spam HEAD && + test_branch_upstream spam repo_c spam + +Reset branch 'master' +error: branch 'spam' not found. +Switched to a new branch 'spam' +Branch 'spam' set up to track remote branch 'spam' from 'repo_c'. +ok 15 - checkout of branch from a single remote succeeds #3 + +expecting success of 2024.16 'checkout of branch from a single remote succeeds #4': + git checkout -B master && + status_uno_is_clean && + test_might_fail git branch -D eggs && + + git checkout eggs && + status_uno_is_clean && + test_branch eggs && + test_cmp_rev refs/repo_d/eggs HEAD && + test_branch_upstream eggs repo_d eggs + +Switched to and reset branch 'master' +error: branch 'eggs' not found. +Switched to a new branch 'eggs' +Branch 'eggs' set up to track remote branch 'eggs' from 'repo_d'. +ok 16 - checkout of branch from a single remote succeeds #4 + +expecting success of 2024.17 'checkout of branch with a file having the same name fails': + git checkout -B master && + status_uno_is_clean && + test_might_fail git branch -D spam && + + >spam && + test_must_fail git checkout spam && + status_uno_is_clean && + test_must_fail git rev-parse --verify refs/heads/spam && + test_branch master + +Switched to and reset branch 'master' +Deleted branch spam (was 1702b85). +fatal: 'spam' could be both a local file and a tracking branch. +Please use -- (and optionally --no-guess) to disambiguate +fatal: Needed a single revision +ok 17 - checkout of branch with a file having the same name fails + +expecting success of 2024.18 'checkout of branch with a file in subdir having the same name fails': + git checkout -B master && + status_uno_is_clean && + test_might_fail git branch -D spam && + + >spam && + mkdir sub && + mv spam sub/spam && + test_must_fail git -C sub checkout spam && + status_uno_is_clean && + test_must_fail git rev-parse --verify refs/heads/spam && + test_branch master + +Reset branch 'master' +error: branch 'spam' not found. +fatal: 'spam' could be both a local file and a tracking branch. +Please use -- (and optionally --no-guess) to disambiguate +fatal: Needed a single revision +ok 18 - checkout of branch with a file in subdir having the same name fails + +expecting success of 2024.19 'checkout -- succeeds, even if a file with the same name exists': + git checkout -B master && + status_uno_is_clean && + test_might_fail git branch -D spam && + + >spam && + git checkout spam -- && + status_uno_is_clean && + test_branch spam && + test_cmp_rev refs/remotes/extra_dir/repo_c/extra_dir/spam HEAD && + test_branch_upstream spam repo_c spam + +Reset branch 'master' +error: branch 'spam' not found. +Switched to a new branch 'spam' +Branch 'spam' set up to track remote branch 'spam' from 'repo_c'. +ok 19 - checkout -- succeeds, even if a file with the same name exists + +expecting success of 2024.20 'loosely defined local base branch is reported correctly': + + git checkout master && + status_uno_is_clean && + git branch strict && + git branch loose && + git commit --allow-empty -m "a bit more" && + + test_config branch.strict.remote . && + test_config branch.loose.remote . && + test_config branch.strict.merge refs/heads/master && + test_config branch.loose.merge master && + + git checkout strict | sed -e "s/strict/BRANCHNAME/g" >expect && + status_uno_is_clean && + git checkout loose | sed -e "s/loose/BRANCHNAME/g" >actual && + status_uno_is_clean && + + test_cmp expect actual + +Switched to branch 'master' +[master b3a488e] a bit more + Author: A U Thor +Switched to branch 'strict' +Switched to branch 'loose' +ok 20 - loosely defined local base branch is reported correctly + +expecting success of 2024.21 'reject when arg could be part of dwim branch': + git remote add foo file://non-existent-place && + git update-ref refs/remotes/foo/dwim-arg HEAD && + echo foo >dwim-arg && + git add dwim-arg && + echo bar >dwim-arg && + test_must_fail git checkout dwim-arg && + test_must_fail git rev-parse refs/heads/dwim-arg -- && + grep bar dwim-arg + +fatal: 'dwim-arg' could be both a local file and a tracking branch. +Please use -- (and optionally --no-guess) to disambiguate +fatal: bad revision 'refs/heads/dwim-arg' +bar +ok 21 - reject when arg could be part of dwim branch + +expecting success of 2024.22 'disambiguate dwim branch and checkout path (1)': + git update-ref refs/remotes/foo/dwim-arg1 HEAD && + echo foo >dwim-arg1 && + git add dwim-arg1 && + echo bar >dwim-arg1 && + git checkout -- dwim-arg1 && + test_must_fail git rev-parse refs/heads/dwim-arg1 -- && + grep foo dwim-arg1 + +fatal: bad revision 'refs/heads/dwim-arg1' +foo +ok 22 - disambiguate dwim branch and checkout path (1) + +expecting success of 2024.23 'disambiguate dwim branch and checkout path (2)': + git update-ref refs/remotes/foo/dwim-arg2 HEAD && + echo foo >dwim-arg2 && + git add dwim-arg2 && + echo bar >dwim-arg2 && + git checkout dwim-arg2 -- && + git rev-parse refs/heads/dwim-arg2 -- && + grep bar dwim-arg2 + +Switched to a new branch 'dwim-arg2' +A dwim-arg +A dwim-arg1 +A dwim-arg2 +Branch 'dwim-arg2' set up to track remote branch 'dwim-arg2' from 'foo'. +fea4556a03c9ebfd8846a6e5b9d34170eeb7706d +-- +bar +ok 23 - disambiguate dwim branch and checkout path (2) + +# passed all 23 test(s) +1..23 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t2070-restore.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2070-restore/.git/ expecting success of 2070.1 'setup': @@ -73673,6 +73527,52 @@ 1..3 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t2104-update-index-skip-worktree.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2104-update-index-skip-worktree/.git/ +expecting success of 2104.1 'setup': + mkdir sub && + touch ./1 ./2 sub/1 sub/2 && + git add 1 2 sub/1 sub/2 && + git ls-files -t | test_cmp expect.full - + +ok 1 - setup + +expecting success of 2104.2 'index is at version 2': + test "$(test-tool index-version < .git/index)" = 2 + +ok 2 - index is at version 2 + +expecting success of 2104.3 'update-index --skip-worktree': + git update-index --skip-worktree 1 sub/1 && + git ls-files -t | test_cmp expect.skip - + +ok 3 - update-index --skip-worktree + +expecting success of 2104.4 'index is at version 3 after having some skip-worktree entries': + test "$(test-tool index-version < .git/index)" = 3 + +ok 4 - index is at version 3 after having some skip-worktree entries + +expecting success of 2104.5 'ls-files -t': + git ls-files -t | test_cmp expect.skip - + +ok 5 - ls-files -t + +expecting success of 2104.6 'update-index --no-skip-worktree': + git update-index --no-skip-worktree 1 sub/1 && + git ls-files -t | test_cmp expect.full - + +ok 6 - update-index --no-skip-worktree + +expecting success of 2104.7 'index version is back to 2 when there is no skip-worktree entry': + test "$(test-tool index-version < .git/index)" = 2 + +ok 7 - index version is back to 2 when there is no skip-worktree entry + +# passed all 7 test(s) +1..7 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t2103-update-index-ignore-missing.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2103-update-index-ignore-missing/.git/ expecting success of 2103.1 'basics': @@ -73810,52 +73710,6 @@ 1..5 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t2104-update-index-skip-worktree.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2104-update-index-skip-worktree/.git/ -expecting success of 2104.1 'setup': - mkdir sub && - touch ./1 ./2 sub/1 sub/2 && - git add 1 2 sub/1 sub/2 && - git ls-files -t | test_cmp expect.full - - -ok 1 - setup - -expecting success of 2104.2 'index is at version 2': - test "$(test-tool index-version < .git/index)" = 2 - -ok 2 - index is at version 2 - -expecting success of 2104.3 'update-index --skip-worktree': - git update-index --skip-worktree 1 sub/1 && - git ls-files -t | test_cmp expect.skip - - -ok 3 - update-index --skip-worktree - -expecting success of 2104.4 'index is at version 3 after having some skip-worktree entries': - test "$(test-tool index-version < .git/index)" = 3 - -ok 4 - index is at version 3 after having some skip-worktree entries - -expecting success of 2104.5 'ls-files -t': - git ls-files -t | test_cmp expect.skip - - -ok 5 - ls-files -t - -expecting success of 2104.6 'update-index --no-skip-worktree': - git update-index --no-skip-worktree 1 sub/1 && - git ls-files -t | test_cmp expect.full - - -ok 6 - update-index --no-skip-worktree - -expecting success of 2104.7 'index version is back to 2 when there is no skip-worktree entry': - test "$(test-tool index-version < .git/index)" = 2 - -ok 7 - index version is back to 2 when there is no skip-worktree entry - -# passed all 7 test(s) -1..7 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' *** t2105-update-index-gitfile.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2105-update-index-gitfile/.git/ expecting success of 2105.1 'submodule with absolute .git file': @@ -74136,6 +73990,228 @@ 1..9 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t2200-add-update.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2200-add-update/.git/ +expecting success of 2200.1 'setup': + echo initial >check && + echo initial >top && + echo initial >foo && + mkdir dir1 dir2 && + echo initial >dir1/sub1 && + echo initial >dir1/sub2 && + echo initial >dir2/sub3 && + git add check dir1 dir2 top foo && + test_tick && + git commit -m initial && + + echo changed >check && + echo changed >top && + echo changed >dir2/sub3 && + rm -f dir1/sub1 && + echo other >dir2/other + +[master (root-commit) ec46c19] initial + Author: A U Thor + 6 files changed, 6 insertions(+) + create mode 100644 check + create mode 100644 dir1/sub1 + create mode 100644 dir1/sub2 + create mode 100644 dir2/sub3 + create mode 100644 foo + create mode 100644 top +ok 1 - setup + +expecting success of 2200.2 'update': + git add -u dir1 dir2 + +ok 2 - update + +expecting success of 2200.3 'update noticed a removal': + test "$(git ls-files dir1/sub1)" = "" + +ok 3 - update noticed a removal + +expecting success of 2200.4 'update touched correct path': + test "$(git diff-files --name-status dir2/sub3)" = "" + +ok 4 - update touched correct path + +expecting success of 2200.5 'update did not touch other tracked files': + test "$(git diff-files --name-status check)" = "M check" && + test "$(git diff-files --name-status top)" = "M top" + +ok 5 - update did not touch other tracked files + +expecting success of 2200.6 'update did not touch untracked files': + test "$(git ls-files dir2/other)" = "" + +ok 6 - update did not touch untracked files + +expecting success of 2200.7 'cache tree has not been corrupted': + + git ls-files -s | + sed -e "s/ 0 / /" >expect && + git ls-tree -r $(git write-tree) | + sed -e "s/ blob / /" >current && + test_cmp expect current + + +ok 7 - cache tree has not been corrupted + +expecting success of 2200.8 'update from a subdirectory': + ( + cd dir1 && + echo more >sub2 && + git add -u sub2 + ) + +ok 8 - update from a subdirectory + +expecting success of 2200.9 'change gets noticed': + + test "$(git diff-files --name-status dir1)" = "" + + +ok 9 - change gets noticed + +expecting success of 2200.10 'non-qualified update in subdir updates from the root': + ( + cd dir1 && + echo even more >>sub2 && + git --literal-pathspecs add -u && + echo even more >>sub2 && + git add -u + ) && + git diff-files --name-only >actual && + test_must_be_empty actual + +ok 10 - non-qualified update in subdir updates from the root + +expecting success of 2200.11 'replace a file with a symlink': + + rm foo && + test_ln_s_add top foo + + +checking prerequisite: SYMLINKS + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && + # test whether the filesystem supports symbolic links + ln -s x y && test -h y + +) +prerequisite SYMLINKS ok +ok 11 - replace a file with a symlink + +expecting success of 2200.12 'add everything changed': + + git add -u && + test -z "$(git diff-files)" + + +ok 12 - add everything changed + +expecting success of 2200.13 'touch and then add -u': + + touch check && + git add -u && + test -z "$(git diff-files)" + + +ok 13 - touch and then add -u + +expecting success of 2200.14 'touch and then add explicitly': + + touch check && + git add check && + test -z "$(git diff-files)" + + +ok 14 - touch and then add explicitly + +expecting success of 2200.15 'add -n -u should not add but just report': + + ( + echo "add 'check'" && + echo "remove 'top'" + ) >expect && + before=$(git ls-files -s check top) && + echo changed >>check && + rm -f top && + git add -n -u >actual && + after=$(git ls-files -s check top) && + + test "$before" = "$after" && + test_i18ncmp expect actual + + +checking prerequisite: C_LOCALE_OUTPUT + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false + +) +prerequisite C_LOCALE_OUTPUT ok +ok 15 - add -n -u should not add but just report + +expecting success of 2200.16 'add -u resolves unmerged paths': + git reset --hard && + one=$(echo 1 | git hash-object -w --stdin) && + two=$(echo 2 | git hash-object -w --stdin) && + three=$(echo 3 | git hash-object -w --stdin) && + { + for path in path1 path2 + do + echo "100644 $one 1 $path" + echo "100644 $two 2 $path" + echo "100644 $three 3 $path" + done + echo "100644 $one 1 path3" + echo "100644 $one 1 path4" + echo "100644 $one 3 path5" + echo "100644 $one 3 path6" + } | + git update-index --index-info && + echo 3 >path1 && + echo 2 >path3 && + echo 2 >path5 && + + # Fail to explicitly resolve removed paths with "git add" + test_must_fail git add --no-all path4 && + test_must_fail git add --no-all path6 && + + # "add -u" should notice removals no matter what stages + # the index entries are in. + git add -u && + git ls-files -s path1 path2 path3 path4 path5 path6 >actual && + { + echo "100644 $three 0 path1" + echo "100644 $two 0 path3" + echo "100644 $two 0 path5" + } >expect && + test_cmp expect actual + +HEAD is now at ec46c19 initial +fatal: unable to stat 'path4': No such file or directory +fatal: unable to stat 'path6': No such file or directory +ok 16 - add -u resolves unmerged paths + +expecting success of 2200.17 '"add -u non-existent" should fail': + test_must_fail git add -u non-existent && + git ls-files >actual && + ! grep "non-existent" actual + +fatal: pathspec 'non-existent' did not match any files +ok 17 - "add -u non-existent" should fail + +# passed all 17 test(s) +1..17 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t2071-restore-patch.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2071-restore-patch/.git/ expecting success of 2071.1 'setup': @@ -74420,294 +74496,6 @@ 1..14 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t2200-add-update.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2200-add-update/.git/ -expecting success of 2200.1 'setup': - echo initial >check && - echo initial >top && - echo initial >foo && - mkdir dir1 dir2 && - echo initial >dir1/sub1 && - echo initial >dir1/sub2 && - echo initial >dir2/sub3 && - git add check dir1 dir2 top foo && - test_tick && - git commit -m initial && - - echo changed >check && - echo changed >top && - echo changed >dir2/sub3 && - rm -f dir1/sub1 && - echo other >dir2/other - -[master (root-commit) ec46c19] initial - Author: A U Thor - 6 files changed, 6 insertions(+) - create mode 100644 check - create mode 100644 dir1/sub1 - create mode 100644 dir1/sub2 - create mode 100644 dir2/sub3 - create mode 100644 foo - create mode 100644 top -ok 1 - setup - -expecting success of 2200.2 'update': - git add -u dir1 dir2 - -ok 2 - update - -expecting success of 2200.3 'update noticed a removal': - test "$(git ls-files dir1/sub1)" = "" - -ok 3 - update noticed a removal - -expecting success of 2200.4 'update touched correct path': - test "$(git diff-files --name-status dir2/sub3)" = "" - -ok 4 - update touched correct path - -expecting success of 2200.5 'update did not touch other tracked files': - test "$(git diff-files --name-status check)" = "M check" && - test "$(git diff-files --name-status top)" = "M top" - -ok 5 - update did not touch other tracked files - -expecting success of 2200.6 'update did not touch untracked files': - test "$(git ls-files dir2/other)" = "" - -ok 6 - update did not touch untracked files - -expecting success of 2200.7 'cache tree has not been corrupted': - - git ls-files -s | - sed -e "s/ 0 / /" >expect && - git ls-tree -r $(git write-tree) | - sed -e "s/ blob / /" >current && - test_cmp expect current - - -ok 7 - cache tree has not been corrupted - -expecting success of 2200.8 'update from a subdirectory': - ( - cd dir1 && - echo more >sub2 && - git add -u sub2 - ) - -ok 8 - update from a subdirectory - -expecting success of 2200.9 'change gets noticed': - - test "$(git diff-files --name-status dir1)" = "" - - -ok 9 - change gets noticed - -expecting success of 2200.10 'non-qualified update in subdir updates from the root': - ( - cd dir1 && - echo even more >>sub2 && - git --literal-pathspecs add -u && - echo even more >>sub2 && - git add -u - ) && - git diff-files --name-only >actual && - test_must_be_empty actual - -ok 10 - non-qualified update in subdir updates from the root - -expecting success of 2200.11 'replace a file with a symlink': - - rm foo && - test_ln_s_add top foo - - -checking prerequisite: SYMLINKS - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && - # test whether the filesystem supports symbolic links - ln -s x y && test -h y - -) -prerequisite SYMLINKS ok -ok 11 - replace a file with a symlink - -expecting success of 2200.12 'add everything changed': - - git add -u && - test -z "$(git diff-files)" - - -ok 12 - add everything changed - -expecting success of 2200.13 'touch and then add -u': - - touch check && - git add -u && - test -z "$(git diff-files)" - - -ok 13 - touch and then add -u - -expecting success of 2200.14 'touch and then add explicitly': - - touch check && - git add check && - test -z "$(git diff-files)" - - -ok 14 - touch and then add explicitly - -expecting success of 2200.15 'add -n -u should not add but just report': - - ( - echo "add 'check'" && - echo "remove 'top'" - ) >expect && - before=$(git ls-files -s check top) && - echo changed >>check && - rm -f top && - git add -n -u >actual && - after=$(git ls-files -s check top) && - - test "$before" = "$after" && - test_i18ncmp expect actual - - -checking prerequisite: C_LOCALE_OUTPUT - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false - -) -prerequisite C_LOCALE_OUTPUT ok -ok 15 - add -n -u should not add but just report - -expecting success of 2200.16 'add -u resolves unmerged paths': - git reset --hard && - one=$(echo 1 | git hash-object -w --stdin) && - two=$(echo 2 | git hash-object -w --stdin) && - three=$(echo 3 | git hash-object -w --stdin) && - { - for path in path1 path2 - do - echo "100644 $one 1 $path" - echo "100644 $two 2 $path" - echo "100644 $three 3 $path" - done - echo "100644 $one 1 path3" - echo "100644 $one 1 path4" - echo "100644 $one 3 path5" - echo "100644 $one 3 path6" - } | - git update-index --index-info && - echo 3 >path1 && - echo 2 >path3 && - echo 2 >path5 && - - # Fail to explicitly resolve removed paths with "git add" - test_must_fail git add --no-all path4 && - test_must_fail git add --no-all path6 && - - # "add -u" should notice removals no matter what stages - # the index entries are in. - git add -u && - git ls-files -s path1 path2 path3 path4 path5 path6 >actual && - { - echo "100644 $three 0 path1" - echo "100644 $two 0 path3" - echo "100644 $two 0 path5" - } >expect && - test_cmp expect actual - -HEAD is now at ec46c19 initial -fatal: unable to stat 'path4': No such file or directory -fatal: unable to stat 'path6': No such file or directory -ok 16 - add -u resolves unmerged paths - -expecting success of 2200.17 '"add -u non-existent" should fail': - test_must_fail git add -u non-existent && - git ls-files >actual && - ! grep "non-existent" actual - -fatal: pathspec 'non-existent' did not match any files -ok 17 - "add -u non-existent" should fail - -# passed all 17 test(s) -1..17 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t2202-add-addremove.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2202-add-addremove/.git/ -expecting success of 2202.1 'setup': - ( - echo .gitignore && - echo will-remove - ) >expect && - ( - echo actual && - echo expect && - echo ignored - ) >.gitignore && - git --literal-pathspecs add --all && - >will-remove && - git add --all && - test_tick && - git commit -m initial && - git ls-files >actual && - test_cmp expect actual - -[master (root-commit) 50dd5d8] initial - Author: A U Thor - 2 files changed, 3 insertions(+) - create mode 100644 .gitignore - create mode 100644 will-remove -ok 1 - setup - -expecting success of 2202.2 'git add --all': - ( - echo .gitignore && - echo not-ignored && - echo "M .gitignore" && - echo "A not-ignored" && - echo "D will-remove" - ) >expect && - >ignored && - >not-ignored && - echo modification >>.gitignore && - rm -f will-remove && - git add --all && - git update-index --refresh && - git ls-files >actual && - git diff-index --name-status --cached HEAD >>actual && - test_cmp expect actual - -ok 2 - git add --all - -expecting success of 2202.3 'Just "git add" is a no-op': - git reset --hard && - echo >will-remove && - >will-not-be-added && - git add && - git diff-index --name-status --cached HEAD >actual && - test_must_be_empty actual - -HEAD is now at 50dd5d8 initial -Nothing specified, nothing added. -hint: Maybe you wanted to say 'git add .'? -hint: Turn this message off by running -hint: "git config advice.addEmptyPathspec false" -ok 3 - Just "git add" is a no-op - -# passed all 3 test(s) -1..3 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' *** t2201-add-update-typechange.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2201-add-update-typechange/.git/ expecting success of 2201.1 'setup': @@ -74917,6 +74705,143 @@ 1..6 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t2202-add-addremove.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2202-add-addremove/.git/ +expecting success of 2202.1 'setup': + ( + echo .gitignore && + echo will-remove + ) >expect && + ( + echo actual && + echo expect && + echo ignored + ) >.gitignore && + git --literal-pathspecs add --all && + >will-remove && + git add --all && + test_tick && + git commit -m initial && + git ls-files >actual && + test_cmp expect actual + +[master (root-commit) 50dd5d8] initial + Author: A U Thor + 2 files changed, 3 insertions(+) + create mode 100644 .gitignore + create mode 100644 will-remove +ok 1 - setup + +expecting success of 2202.2 'git add --all': + ( + echo .gitignore && + echo not-ignored && + echo "M .gitignore" && + echo "A not-ignored" && + echo "D will-remove" + ) >expect && + >ignored && + >not-ignored && + echo modification >>.gitignore && + rm -f will-remove && + git add --all && + git update-index --refresh && + git ls-files >actual && + git diff-index --name-status --cached HEAD >>actual && + test_cmp expect actual + +ok 2 - git add --all + +expecting success of 2202.3 'Just "git add" is a no-op': + git reset --hard && + echo >will-remove && + >will-not-be-added && + git add && + git diff-index --name-status --cached HEAD >actual && + test_must_be_empty actual + +HEAD is now at 50dd5d8 initial +Nothing specified, nothing added. +hint: Maybe you wanted to say 'git add .'? +hint: Turn this message off by running +hint: "git config advice.addEmptyPathspec false" +ok 3 - Just "git add" is a no-op + +# passed all 3 test(s) +1..3 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t2300-cd-to-toplevel.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2300-cd-to-toplevel/.git/ +expecting success of 2300.1 'at physical root': + ( + cd 'repo' && + PATH="$EXEC_PATH:$PATH" && + . git-sh-setup && + cd_to_toplevel && + [ "$(pwd -P)" = "$TOPLEVEL" ] + ) + +ok 1 - at physical root + +expecting success of 2300.2 'at physical subdir': + ( + cd 'repo/sub/dir' && + PATH="$EXEC_PATH:$PATH" && + . git-sh-setup && + cd_to_toplevel && + [ "$(pwd -P)" = "$TOPLEVEL" ] + ) + +ok 2 - at physical subdir + +checking prerequisite: SYMLINKS + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && + # test whether the filesystem supports symbolic links + ln -s x y && test -h y + +) +prerequisite SYMLINKS ok +expecting success of 2300.3 'at symbolic root': + ( + cd 'symrepo' && + PATH="$EXEC_PATH:$PATH" && + . git-sh-setup && + cd_to_toplevel && + [ "$(pwd -P)" = "$TOPLEVEL" ] + ) + +ok 3 - at symbolic root + +expecting success of 2300.4 'at symbolic subdir': + ( + cd 'subdir-link' && + PATH="$EXEC_PATH:$PATH" && + . git-sh-setup && + cd_to_toplevel && + [ "$(pwd -P)" = "$TOPLEVEL" ] + ) + +ok 4 - at symbolic subdir + +expecting success of 2300.5 'at internal symbolic subdir': + ( + cd 'internal-link' && + PATH="$EXEC_PATH:$PATH" && + . git-sh-setup && + cd_to_toplevel && + [ "$(pwd -P)" = "$TOPLEVEL" ] + ) + +ok 5 - at internal symbolic subdir + +# passed all 5 test(s) +1..5 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t2204-add-ignored.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2204-add-ignored/.git/ expecting success of 2204.1 'setup': @@ -75789,77 +75714,6 @@ 1..19 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t2300-cd-to-toplevel.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2300-cd-to-toplevel/.git/ -expecting success of 2300.1 'at physical root': - ( - cd 'repo' && - PATH="$EXEC_PATH:$PATH" && - . git-sh-setup && - cd_to_toplevel && - [ "$(pwd -P)" = "$TOPLEVEL" ] - ) - -ok 1 - at physical root - -expecting success of 2300.2 'at physical subdir': - ( - cd 'repo/sub/dir' && - PATH="$EXEC_PATH:$PATH" && - . git-sh-setup && - cd_to_toplevel && - [ "$(pwd -P)" = "$TOPLEVEL" ] - ) - -ok 2 - at physical subdir - -checking prerequisite: SYMLINKS - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && - # test whether the filesystem supports symbolic links - ln -s x y && test -h y - -) -prerequisite SYMLINKS ok -expecting success of 2300.3 'at symbolic root': - ( - cd 'symrepo' && - PATH="$EXEC_PATH:$PATH" && - . git-sh-setup && - cd_to_toplevel && - [ "$(pwd -P)" = "$TOPLEVEL" ] - ) - -ok 3 - at symbolic root - -expecting success of 2300.4 'at symbolic subdir': - ( - cd 'subdir-link' && - PATH="$EXEC_PATH:$PATH" && - . git-sh-setup && - cd_to_toplevel && - [ "$(pwd -P)" = "$TOPLEVEL" ] - ) - -ok 4 - at symbolic subdir - -expecting success of 2300.5 'at internal symbolic subdir': - ( - cd 'internal-link' && - PATH="$EXEC_PATH:$PATH" && - . git-sh-setup && - cd_to_toplevel && - [ "$(pwd -P)" = "$TOPLEVEL" ] - ) - -ok 5 - at internal symbolic subdir - -# passed all 5 test(s) -1..5 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' *** t2401-worktree-prune.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2401-worktree-prune/.git/ expecting success of 2401.1 'initialize': @@ -76322,6 +76176,109 @@ 1..15 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t2404-worktree-config.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2404-worktree-config/.git/ +expecting success of 2404.1 'setup': + test_commit start + +[master (root-commit) bb4ab09] start + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 start.t +ok 1 - setup + +expecting success of 2404.2 'config --worktree in single worktree': + git config --worktree foo.bar true && + test_cmp_config true foo.bar + +ok 2 - config --worktree in single worktree + +expecting success of 2404.3 'add worktrees': + git worktree add wt1 && + git worktree add wt2 + +Preparing worktree (new branch 'wt1') +HEAD is now at bb4ab09 start +Preparing worktree (new branch 'wt2') +HEAD is now at bb4ab09 start +ok 3 - add worktrees + +expecting success of 2404.4 'config --worktree without extension': + test_must_fail git config --worktree foo.bar false + +fatal: --worktree cannot be used with multiple working trees unless the config +extension worktreeConfig is enabled. Please read "CONFIGURATION FILE" +section in "git help worktree" for details +ok 4 - config --worktree without extension + +expecting success of 2404.5 'enable worktreeConfig extension': + git config core.repositoryformatversion 1 && + git config extensions.worktreeConfig true && + test_cmp_config true extensions.worktreeConfig && + test_cmp_config 1 core.repositoryformatversion + +ok 5 - enable worktreeConfig extension + +expecting success of 2404.6 'config is shared as before': + git config this.is shared && + test_cmp_config shared this.is && + test_cmp_config -C wt1 shared this.is && + test_cmp_config -C wt2 shared this.is + +ok 6 - config is shared as before + +expecting success of 2404.7 'config is shared (set from another worktree)': + git -C wt1 config that.is also-shared && + test_cmp_config also-shared that.is && + test_cmp_config -C wt1 also-shared that.is && + test_cmp_config -C wt2 also-shared that.is + +ok 7 - config is shared (set from another worktree) + +expecting success of 2404.8 'config private to main worktree': + git config --worktree this.is for-main && + test_cmp_config for-main this.is && + test_cmp_config -C wt1 shared this.is && + test_cmp_config -C wt2 shared this.is + +ok 8 - config private to main worktree + +expecting success of 2404.9 'config private to linked worktree': + git -C wt1 config --worktree this.is for-wt1 && + test_cmp_config for-main this.is && + test_cmp_config -C wt1 for-wt1 this.is && + test_cmp_config -C wt2 shared this.is + +ok 9 - config private to linked worktree + +expecting success of 2404.10 'core.bare no longer for main only': + test_config core.bare true && + test "$(git rev-parse --is-bare-repository)" = true && + test "$(git -C wt1 rev-parse --is-bare-repository)" = true && + test "$(git -C wt2 rev-parse --is-bare-repository)" = true + +ok 10 - core.bare no longer for main only + +expecting success of 2404.11 'per-worktree core.bare is picked up': + git -C wt1 config --worktree core.bare true && + test "$(git rev-parse --is-bare-repository)" = false && + test "$(git -C wt1 rev-parse --is-bare-repository)" = true && + test "$(git -C wt2 rev-parse --is-bare-repository)" = false + +ok 11 - per-worktree core.bare is picked up + +expecting success of 2404.12 'config.worktree no longer read without extension': + git config --unset extensions.worktreeConfig && + test_cmp_config shared this.is && + test_cmp_config -C wt1 shared this.is && + test_cmp_config -C wt2 shared this.is + +ok 12 - config.worktree no longer read without extension + +# passed all 12 test(s) +1..12 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t2403-worktree-move.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2403-worktree-move/.git/ expecting success of 2403.1 'setup': @@ -76731,230 +76688,540 @@ 1..31 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t2404-worktree-config.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2404-worktree-config/.git/ -expecting success of 2404.1 'setup': - test_commit start +*** t2405-worktree-submodule.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2405-worktree-submodule/.git/ +expecting success of 2405.1 'setup: create origin repos': + git config --global protocol.file.allow always && + git init origin/sub && + test_commit -C origin/sub file1 && + git init origin/main && + test_commit -C origin/main first && + git -C origin/main submodule add ../sub && + git -C origin/main commit -m "add sub" && + test_commit -C origin/sub "file1 updated" file1 file1updated file1updated && + git -C origin/main/sub pull && + git -C origin/main add sub && + git -C origin/main commit -m "sub updated" -[master (root-commit) bb4ab09] start +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2405-worktree-submodule/origin/sub/.git/ +[master (root-commit) 69af168] file1 Author: A U Thor 1 file changed, 1 insertion(+) - create mode 100644 start.t -ok 1 - setup - -expecting success of 2404.2 'config --worktree in single worktree': - git config --worktree foo.bar true && - test_cmp_config true foo.bar + create mode 100644 file1.t +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2405-worktree-submodule/origin/main/.git/ +[master (root-commit) 1e96f59] first + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 first.t +Cloning into '/build/git-2.30.2/t/trash directory.t2405-worktree-submodule/origin/main/sub'... +done. +[master 322c452] add sub + Author: A U Thor + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 sub +[master 7829796] file1 updated + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file1 +hint: Pulling without specifying how to reconcile divergent branches is +hint: discouraged. You can squelch this message by running one of the following +hint: commands sometime before your next pull: +hint: +hint: git config pull.rebase false # merge (the default strategy) +hint: git config pull.rebase true # rebase +hint: git config pull.ff only # fast-forward only +hint: +hint: You can replace "git config" with "git config --global" to set a default +hint: preference for all repositories. You can also pass --rebase, --no-rebase, +hint: or --ff-only on the command line to override the configured default per +hint: invocation. +From /build/git-2.30.2/t/trash directory.t2405-worktree-submodule/origin/sub + 69af168..7829796 master -> origin/master + * [new tag] file1updated -> file1updated +Updating 69af168..7829796 +Fast-forward + file1 | 1 + + 1 file changed, 1 insertion(+) + create mode 100644 file1 +[master d717f19] sub updated + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +ok 1 - setup: create origin repos -ok 2 - config --worktree in single worktree +expecting success of 2405.2 'setup: clone superproject to create main worktree': + git clone --recursive "$base_path/origin/main" main -expecting success of 2404.3 'add worktrees': - git worktree add wt1 && - git worktree add wt2 +Cloning into 'main'... +done. +Submodule 'sub' (/build/git-2.30.2/t/trash directory.t2405-worktree-submodule/origin/sub) registered for path 'sub' +Cloning into '/build/git-2.30.2/t/trash directory.t2405-worktree-submodule/main/sub'... +done. +Submodule path 'sub': checked out '782979677c1932d3806e9adc80194f805c02f4f3' +ok 2 - setup: clone superproject to create main worktree -Preparing worktree (new branch 'wt1') -HEAD is now at bb4ab09 start -Preparing worktree (new branch 'wt2') -HEAD is now at bb4ab09 start -ok 3 - add worktrees +expecting success of 2405.3 'add superproject worktree': + git -C main worktree add "$base_path/worktree" "$rev1_hash_main" -expecting success of 2404.4 'config --worktree without extension': - test_must_fail git config --worktree foo.bar false +Preparing worktree (detached HEAD 322c452) +HEAD is now at 322c452 add sub +ok 3 - add superproject worktree -fatal: --worktree cannot be used with multiple working trees unless the config -extension worktreeConfig is enabled. Please read "CONFIGURATION FILE" -section in "git help worktree" for details -ok 4 - config --worktree without extension +checking known breakage of 2405.4 'submodule is checked out just after worktree add': + git -C worktree diff --submodule master"^!" >out && + grep "file1 updated" out -expecting success of 2404.5 'enable worktreeConfig extension': - git config core.repositoryformatversion 1 && - git config extensions.worktreeConfig true && - test_cmp_config true extensions.worktreeConfig && - test_cmp_config 1 core.repositoryformatversion +not ok 4 - submodule is checked out just after worktree add # TODO known breakage -ok 5 - enable worktreeConfig extension +expecting success of 2405.5 'add superproject worktree and initialize submodules': + git -C main worktree add "$base_path/worktree-submodule-update" "$rev1_hash_main" && + git -C worktree-submodule-update submodule update -expecting success of 2404.6 'config is shared as before': - git config this.is shared && - test_cmp_config shared this.is && - test_cmp_config -C wt1 shared this.is && - test_cmp_config -C wt2 shared this.is +Preparing worktree (detached HEAD 322c452) +HEAD is now at 322c452 add sub +Cloning into '/build/git-2.30.2/t/trash directory.t2405-worktree-submodule/worktree-submodule-update/sub'... +done. +Submodule path 'sub': checked out '69af1687b671131ed0cfa61b7fcdc907a4c21f2c' +ok 5 - add superproject worktree and initialize submodules -ok 6 - config is shared as before +expecting success of 2405.6 'submodule is checked out just after submodule update in linked worktree': + git -C worktree-submodule-update diff --submodule master"^!" >out && + grep "file1 updated" out -expecting success of 2404.7 'config is shared (set from another worktree)': - git -C wt1 config that.is also-shared && - test_cmp_config also-shared that.is && - test_cmp_config -C wt1 also-shared that.is && - test_cmp_config -C wt2 also-shared that.is + > file1 updated +ok 6 - submodule is checked out just after submodule update in linked worktree -ok 7 - config is shared (set from another worktree) +expecting success of 2405.7 'add superproject worktree and manually add submodule worktree': + git -C main worktree add "$base_path/linked_submodule" "$rev1_hash_main" && + git -C main/sub worktree add "$base_path/linked_submodule/sub" "$rev1_hash_sub" -expecting success of 2404.8 'config private to main worktree': - git config --worktree this.is for-main && - test_cmp_config for-main this.is && - test_cmp_config -C wt1 shared this.is && - test_cmp_config -C wt2 shared this.is +Preparing worktree (detached HEAD 322c452) +HEAD is now at 322c452 add sub +Preparing worktree (detached HEAD 69af168) +HEAD is now at 69af168 file1 +ok 7 - add superproject worktree and manually add submodule worktree -ok 8 - config private to main worktree +expecting success of 2405.8 'submodule is checked out after manually adding submodule worktree': + git -C linked_submodule diff --submodule master"^!" >out && + grep "file1 updated" out -expecting success of 2404.9 'config private to linked worktree': - git -C wt1 config --worktree this.is for-wt1 && - test_cmp_config for-main this.is && - test_cmp_config -C wt1 for-wt1 this.is && - test_cmp_config -C wt2 shared this.is + > file1 updated +ok 8 - submodule is checked out after manually adding submodule worktree -ok 9 - config private to linked worktree +expecting success of 2405.9 'checkout --recurse-submodules uses $GIT_DIR for submodules in a linked worktree': + git -C main worktree add "$base_path/checkout-recurse" --detach && + git -C checkout-recurse submodule update --init && + echo "gitdir: ../../main/.git/worktrees/checkout-recurse/modules/sub" >expect-gitfile && + cat checkout-recurse/sub/.git >actual-gitfile && + test_cmp expect-gitfile actual-gitfile && + git -C main/sub rev-parse HEAD >expect-head-main && + git -C checkout-recurse checkout --recurse-submodules HEAD~1 && + cat checkout-recurse/sub/.git >actual-gitfile && + git -C main/sub rev-parse HEAD >actual-head-main && + test_cmp expect-gitfile actual-gitfile && + test_cmp expect-head-main actual-head-main -expecting success of 2404.10 'core.bare no longer for main only': - test_config core.bare true && - test "$(git rev-parse --is-bare-repository)" = true && - test "$(git -C wt1 rev-parse --is-bare-repository)" = true && - test "$(git -C wt2 rev-parse --is-bare-repository)" = true +Preparing worktree (detached HEAD d717f19) +HEAD is now at d717f19 sub updated +Cloning into '/build/git-2.30.2/t/trash directory.t2405-worktree-submodule/checkout-recurse/sub'... +done. +Submodule path 'sub': checked out '782979677c1932d3806e9adc80194f805c02f4f3' +Previous HEAD position was d717f19 sub updated +HEAD is now at 322c452 add sub +ok 9 - checkout --recurse-submodules uses $GIT_DIR for submodules in a linked worktree -ok 10 - core.bare no longer for main only +expecting success of 2405.10 'core.worktree is removed in $GIT_DIR/modules//config, not in $GIT_COMMON_DIR/modules//config': + echo "../../../sub" >expect-main && + git -C main/sub config --get core.worktree >actual-main && + test_cmp expect-main actual-main && + echo "../../../../../../checkout-recurse/sub" >expect-linked && + git -C checkout-recurse/sub config --get core.worktree >actual-linked && + test_cmp expect-linked actual-linked && + git -C checkout-recurse checkout --recurse-submodules first && + test_expect_code 1 git -C main/.git/worktrees/checkout-recurse/modules/sub config --get core.worktree >linked-config && + test_must_be_empty linked-config && + git -C main/sub config --get core.worktree >actual-main && + test_cmp expect-main actual-main -expecting success of 2404.11 'per-worktree core.bare is picked up': - git -C wt1 config --worktree core.bare true && - test "$(git rev-parse --is-bare-repository)" = false && - test "$(git -C wt1 rev-parse --is-bare-repository)" = true && - test "$(git -C wt2 rev-parse --is-bare-repository)" = false +Previous HEAD position was 322c452 add sub +HEAD is now at 1e96f59 first +ok 10 - core.worktree is removed in $GIT_DIR/modules//config, not in $GIT_COMMON_DIR/modules//config -ok 11 - per-worktree core.bare is picked up +expecting success of 2405.11 'unsetting core.worktree does not prevent running commands directly against the submodule repository': + git -C main/.git/worktrees/checkout-recurse/modules/sub log -expecting success of 2404.12 'config.worktree no longer read without extension': - git config --unset extensions.worktreeConfig && - test_cmp_config shared this.is && - test_cmp_config -C wt1 shared this.is && - test_cmp_config -C wt2 shared this.is +commit 69af1687b671131ed0cfa61b7fcdc907a4c21f2c +Author: A U Thor +Date: Thu Apr 7 15:13:13 2005 -0700 -ok 12 - config.worktree no longer read without extension + file1 +ok 11 - unsetting core.worktree does not prevent running commands directly against the submodule repository -# passed all 12 test(s) -1..12 +# still have 1 known breakage(s) +# passed all remaining 10 test(s) +1..11 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t2013-checkout-submodule.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2013-checkout-submodule/.git/ -expecting success of 2013.1 'setup': - mkdir submodule && - (cd submodule && - git init && - test_commit first) && - git add submodule && - test_tick && - git commit -m superproject && - (cd submodule && - test_commit second) && - git add submodule && - test_tick && - git commit -m updated.superproject +*** t2406-worktree-repair.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2406-worktree-repair/.git/ +expecting success of 2406.1 'setup': + test_commit init -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule/.git/ -[master (root-commit) 50e526b] first - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 first.t -warning: adding embedded git repository: submodule -hint: You've added another git repository inside your current repository. -hint: Clones of the outer repository will not contain the contents of -hint: the embedded repository and will not know how to obtain it. -hint: If you meant to add a submodule, use: -hint: -hint: git submodule add submodule -hint: -hint: If you added this path by mistake, you can remove it from the -hint: index with: -hint: -hint: git rm --cached submodule -hint: -hint: See "git help submodule" for more information. -[master (root-commit) 1844aa5] superproject - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 160000 submodule -[master d662100] second +[master (root-commit) 2519212] init Author: A U Thor 1 file changed, 1 insertion(+) - create mode 100644 second.t -[master 14e674f] updated.superproject - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) + create mode 100644 init.t ok 1 - setup -expecting success of 2013.2 '"reset " updates the index': - git update-index --refresh && - git diff-files --quiet && - git diff-index --quiet --cached HEAD && - git reset HEAD^ submodule && - test_must_fail git diff-files --quiet && - git reset submodule && - git diff-files --quiet +expecting success of 2406.2 'skip missing worktree': + test_when_finished "git worktree prune" && + git worktree add --detach missing && + rm -rf missing && + git worktree repair >out 2>err && + test_must_be_empty out && + test_must_be_empty err -Unstaged changes after reset: -M submodule -ok 2 - "reset " updates the index +Preparing worktree (detached HEAD 2519212) +HEAD is now at 2519212 init +ok 2 - skip missing worktree -expecting success of 2013.3 '"checkout " updates the index only': - git update-index --refresh && - git diff-files --quiet && - git diff-index --quiet --cached HEAD && - git checkout HEAD^ submodule && - test_must_fail git diff-files --quiet && - git checkout HEAD submodule && - git diff-files --quiet +expecting success of 2406.3 'worktree path not directory': + test_when_finished "git worktree prune" && + git worktree add --detach notdir && + rm -rf notdir && + >notdir && + test_must_fail git worktree repair >out 2>err && + test_must_be_empty out && + test_i18ngrep "not a directory" err -Updated 0 paths from f0404a9 -Updated 0 paths from 29aef3d -ok 3 - "checkout " updates the index only +Preparing worktree (detached HEAD 2519212) +HEAD is now at 2519212 init +checking prerequisite: C_LOCALE_OUTPUT -expecting success of 2013.4 '"checkout " honors diff.ignoreSubmodules': - git config diff.ignoreSubmodules dirty && - echo x> submodule/untracked && - git checkout HEAD >actual 2>&1 && - test_must_be_empty actual +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false -ok 4 - "checkout " honors diff.ignoreSubmodules +) +prerequisite C_LOCALE_OUTPUT ok +error: not a directory: /build/git-2.30.2/t/trash directory.t2406-worktree-repair/notdir +ok 3 - worktree path not directory -expecting success of 2013.5 '"checkout " honors submodule.*.ignore from .gitmodules': - git config diff.ignoreSubmodules none && - git config -f .gitmodules submodule.submodule.path submodule && - git config -f .gitmodules submodule.submodule.ignore untracked && - git checkout HEAD >actual 2>&1 && - test_must_be_empty actual +expecting success of 2406.4 'don't clobber .git repo': + test_when_finished "rm -rf repo && git worktree prune" && + git worktree add --detach repo && + rm -rf repo && + test_create_repo repo && + test_must_fail git worktree repair >out 2>err && + test_must_be_empty out && + test_i18ngrep ".git is not a file" err -ok 5 - "checkout " honors submodule.*.ignore from .gitmodules +Preparing worktree (detached HEAD 2519212) +HEAD is now at 2519212 init +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2406-worktree-repair/repo/.git/ +error: .git is not a file: /build/git-2.30.2/t/trash directory.t2406-worktree-repair/repo +ok 4 - don't clobber .git repo -expecting success of 2013.6 '"checkout " honors submodule.*.ignore from .git/config': - git config -f .gitmodules submodule.submodule.ignore none && - git config submodule.submodule.path submodule && - git config submodule.submodule.ignore all && - git checkout HEAD >actual 2>&1 && - test_must_be_empty actual +expecting success of 2406.5 'repair missing .git file': + test_corrupt_gitfile "rm -f corrupt/.git" ".git file broken" -ok 6 - "checkout " honors submodule.*.ignore from .git/config +Preparing worktree (detached HEAD 2519212) +HEAD is now at 2519212 init +repair: .git file broken: /build/git-2.30.2/t/trash directory.t2406-worktree-repair/corrupt +ok 5 - repair missing .git file + +expecting success of 2406.6 'repair bogus .git file': + test_corrupt_gitfile "echo \"gitdir: /nowhere\" >corrupt/.git" \ + ".git file broken" + +Preparing worktree (detached HEAD 2519212) +HEAD is now at 2519212 init +repair: .git file broken: /build/git-2.30.2/t/trash directory.t2406-worktree-repair/corrupt +ok 6 - repair bogus .git file + +expecting success of 2406.7 'repair incorrect .git file': + test_when_finished "rm -rf other && git worktree prune" && + test_create_repo other && + other=$(git -C other rev-parse --absolute-git-dir) && + test_corrupt_gitfile "echo \"gitdir: $other\" >corrupt/.git" \ + ".git file incorrect" + +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2406-worktree-repair/other/.git/ +Preparing worktree (detached HEAD 2519212) +HEAD is now at 2519212 init +repair: .git file incorrect: /build/git-2.30.2/t/trash directory.t2406-worktree-repair/corrupt +ok 7 - repair incorrect .git file + +expecting success of 2406.8 'repair .git file from main/.git': + test_corrupt_gitfile "rm -f corrupt/.git" ".git file broken" .git + +Preparing worktree (detached HEAD 2519212) +HEAD is now at 2519212 init +repair: .git file broken: /build/git-2.30.2/t/trash directory.t2406-worktree-repair/corrupt +ok 8 - repair .git file from main/.git + +expecting success of 2406.9 'repair .git file from linked worktree': + test_when_finished "rm -rf other && git worktree prune" && + git worktree add --detach other && + test_corrupt_gitfile "rm -f corrupt/.git" ".git file broken" other + +Preparing worktree (detached HEAD 2519212) +HEAD is now at 2519212 init +Preparing worktree (detached HEAD 2519212) +HEAD is now at 2519212 init +repair: .git file broken: /build/git-2.30.2/t/trash directory.t2406-worktree-repair/corrupt +ok 9 - repair .git file from linked worktree + +expecting success of 2406.10 'repair .git file from bare.git': + test_when_finished "rm -rf bare.git corrupt && git worktree prune" && + git clone --bare . bare.git && + git -C bare.git worktree add --detach ../corrupt && + git -C corrupt rev-parse --absolute-git-dir >expect && + rm -f corrupt/.git && + git -C bare.git worktree repair && + git -C corrupt rev-parse --absolute-git-dir >actual && + test_cmp expect actual + +Cloning into bare repository 'bare.git'... +done. +Preparing worktree (detached HEAD 2519212) +HEAD is now at 2519212 init +repair: .git file broken: /build/git-2.30.2/t/trash directory.t2406-worktree-repair/corrupt +ok 10 - repair .git file from bare.git + +expecting success of 2406.11 'invalid worktree path': + test_must_fail git worktree repair /notvalid >out 2>err && + test_must_be_empty out && + test_i18ngrep "not a valid path" err + +error: not a valid path: /notvalid +ok 11 - invalid worktree path + +expecting success of 2406.12 'repo not found; .git not file': + test_when_finished "rm -rf not-a-worktree" && + test_create_repo not-a-worktree && + test_must_fail git worktree repair not-a-worktree >out 2>err && + test_must_be_empty out && + test_i18ngrep ".git is not a file" err + +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2406-worktree-repair/not-a-worktree/.git/ +error: unable to locate repository; .git is not a file: /build/git-2.30.2/t/trash directory.t2406-worktree-repair/not-a-worktree/.git +ok 12 - repo not found; .git not file + +expecting success of 2406.13 'repo not found; .git file broken': + test_when_finished "rm -rf orig moved && git worktree prune" && + git worktree add --detach orig && + echo /invalid >orig/.git && + mv orig moved && + test_must_fail git worktree repair moved >out 2>err && + test_must_be_empty out && + test_i18ngrep ".git file broken" err + +Preparing worktree (detached HEAD 2519212) +HEAD is now at 2519212 init +error: unable to locate repository; .git file broken: /build/git-2.30.2/t/trash directory.t2406-worktree-repair/moved/.git +ok 13 - repo not found; .git file broken + +expecting success of 2406.14 'repair broken gitdir': + test_when_finished "rm -rf orig moved && git worktree prune" && + git worktree add --detach orig && + sed s,orig/\.git$,moved/.git, .git/worktrees/orig/gitdir >expect && + rm .git/worktrees/orig/gitdir && + mv orig moved && + git worktree repair moved >out 2>err && + test_cmp expect .git/worktrees/orig/gitdir && + test_i18ngrep "gitdir unreadable" out && + test_must_be_empty err + +Preparing worktree (detached HEAD 2519212) +HEAD is now at 2519212 init +repair: gitdir unreadable: /build/git-2.30.2/t/trash directory.t2406-worktree-repair/.git/worktrees/orig/gitdir +ok 14 - repair broken gitdir + +expecting success of 2406.15 'repair incorrect gitdir': + test_when_finished "rm -rf orig moved && git worktree prune" && + git worktree add --detach orig && + sed s,orig/\.git$,moved/.git, .git/worktrees/orig/gitdir >expect && + mv orig moved && + git worktree repair moved >out 2>err && + test_cmp expect .git/worktrees/orig/gitdir && + test_i18ngrep "gitdir incorrect" out && + test_must_be_empty err + +Preparing worktree (detached HEAD 2519212) +HEAD is now at 2519212 init +repair: gitdir incorrect: /build/git-2.30.2/t/trash directory.t2406-worktree-repair/.git/worktrees/orig/gitdir +ok 15 - repair incorrect gitdir + +expecting success of 2406.16 'repair gitdir (implicit) from linked worktree': + test_when_finished "rm -rf orig moved && git worktree prune" && + git worktree add --detach orig && + sed s,orig/\.git$,moved/.git, .git/worktrees/orig/gitdir >expect && + mv orig moved && + git -C moved worktree repair >out 2>err && + test_cmp expect .git/worktrees/orig/gitdir && + test_i18ngrep "gitdir incorrect" out && + test_must_be_empty err + +Preparing worktree (detached HEAD 2519212) +HEAD is now at 2519212 init +repair: gitdir incorrect: /build/git-2.30.2/t/trash directory.t2406-worktree-repair/.git/worktrees/orig/gitdir +ok 16 - repair gitdir (implicit) from linked worktree + +expecting success of 2406.17 'unable to repair gitdir (implicit) from main worktree': + test_when_finished "rm -rf orig moved && git worktree prune" && + git worktree add --detach orig && + cat .git/worktrees/orig/gitdir >expect && + mv orig moved && + git worktree repair >out 2>err && + test_cmp expect .git/worktrees/orig/gitdir && + test_must_be_empty out && + test_must_be_empty err + +Preparing worktree (detached HEAD 2519212) +HEAD is now at 2519212 init +ok 17 - unable to repair gitdir (implicit) from main worktree + +expecting success of 2406.18 'repair multiple gitdir files': + test_when_finished "rm -rf orig1 orig2 moved1 moved2 && + git worktree prune" && + git worktree add --detach orig1 && + git worktree add --detach orig2 && + sed s,orig1/\.git$,moved1/.git, .git/worktrees/orig1/gitdir >expect1 && + sed s,orig2/\.git$,moved2/.git, .git/worktrees/orig2/gitdir >expect2 && + mv orig1 moved1 && + mv orig2 moved2 && + git worktree repair moved1 moved2 >out 2>err && + test_cmp expect1 .git/worktrees/orig1/gitdir && + test_cmp expect2 .git/worktrees/orig2/gitdir && + test_i18ngrep "gitdir incorrect:.*orig1/gitdir$" out && + test_i18ngrep "gitdir incorrect:.*orig2/gitdir$" out && + test_must_be_empty err + +Preparing worktree (detached HEAD 2519212) +HEAD is now at 2519212 init +Preparing worktree (detached HEAD 2519212) +HEAD is now at 2519212 init +repair: gitdir incorrect: /build/git-2.30.2/t/trash directory.t2406-worktree-repair/.git/worktrees/orig1/gitdir +repair: gitdir incorrect: /build/git-2.30.2/t/trash directory.t2406-worktree-repair/.git/worktrees/orig2/gitdir +ok 18 - repair multiple gitdir files + +# passed all 18 test(s) +1..18 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t3000-ls-files-others.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3000-ls-files-others/.git/ +expecting success of 3000.1 'setup ': + date >path0 && + if test_have_prereq SYMLINKS + then + ln -s xyzzy path1 + else + date >path1 + fi && + mkdir path2 path3 path4 && + date >path2/file2 && + date >path2-junk && + date >path3/file3 && + date >path3-junk && + git update-index --add path3-junk path3/file3 + +checking prerequisite: SYMLINKS + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && + # test whether the filesystem supports symbolic links + ln -s x y && test -h y + +) +prerequisite SYMLINKS ok +ok 1 - setup + +expecting success of 3000.2 'setup: expected output': + cat >expected1 <<-\EOF && + expected1 + expected2 + expected3 + output + path0 + path1 + path2-junk + path2/file2 + EOF + + sed -e "s|path2/file2|path2/|" expected2 && + cp expected2 expected3 && + echo path4/ >>expected2 + +ok 2 - setup: expected output + +expecting success of 3000.3 'ls-files --others': + git ls-files --others >output && + test_cmp expected1 output + +ok 3 - ls-files --others + +expecting success of 3000.4 'ls-files --others --directory': + git ls-files --others --directory >output && + test_cmp expected2 output + +ok 4 - ls-files --others --directory + +expecting success of 3000.5 '--no-empty-directory hides empty directory': + git ls-files --others --directory --no-empty-directory >output && + test_cmp expected3 output + +ok 5 - --no-empty-directory hides empty directory + +expecting success of 3000.6 'ls-files --others handles non-submodule .git': + mkdir not-a-submodule && + echo foo >not-a-submodule/.git && + git ls-files -o >output && + test_cmp expected1 output + +ok 6 - ls-files --others handles non-submodule .git + +expecting success of 3000.7 'ls-files --others with symlinked submodule': + git init super && + git init sub && + ( + cd sub && + >a && + git add a && + git commit -m sub && + git pack-refs --all + ) && + ( + cd super && + "$SHELL_PATH" "$TEST_DIRECTORY/../contrib/workdir/git-new-workdir" ../sub sub && + git ls-files --others --exclude-standard >../actual + ) && + echo sub/ >expect && + test_cmp expect actual -expecting success of 2013.7 'git checkout --recurse-submodules: added submodule is checked out': - prolog && - reset_work_tree_to_interested no_submodule && - ( - cd submodule_update && - git branch -t add_sub1 origin/add_sub1 && - $command add_sub1 && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all hint: of your new repositories, which will suppress this warning, call: @@ -76965,13 +77232,7 @@ hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1/.git/ -[master (root-commit) f401f36] Base inside first submodule - Author: A U Thor - 3 files changed, 4 insertions(+) - create mode 100644 .gitignore - create mode 100644 file1 - create mode 100644 file2 +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3000-ls-files-others/super/.git/ hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all hint: of your new repositories, which will suppress this warning, call: @@ -76982,13 +77243,158 @@ hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub2/.git/ -[master (root-commit) f2c1bb9] nested submodule base +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3000-ls-files-others/sub/.git/ +[master (root-commit) 8c0a349] sub Author: A U Thor - 3 files changed, 4 insertions(+) - create mode 100644 .gitignore - create mode 100644 file1 - create mode 100644 file2 + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 a +ok 7 - ls-files --others with symlinked submodule + +expecting success of 3000.8 'setup nested pathspec search': + test_create_repo nested && + ( + cd nested && + + mkdir -p partially_tracked/untracked_dir && + > partially_tracked/content && + > partially_tracked/untracked_dir/file && + + mkdir -p untracked/deep && + > untracked/deep/path && + > untracked/deep/foo.c && + + git add partially_tracked/content + ) + +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3000-ls-files-others/nested/.git/ +ok 8 - setup nested pathspec search + +expecting success of 3000.9 'ls-files -o --directory with single deep dir pathspec': + ( + cd nested && + + git ls-files -o --directory untracked/deep/ >actual && + + cat <<-EOF >expect && + untracked/deep/ + EOF + + test_cmp expect actual + ) + +ok 9 - ls-files -o --directory with single deep dir pathspec + +expecting success of 3000.10 'ls-files -o --directory with multiple dir pathspecs': + ( + cd nested && + + git ls-files -o --directory partially_tracked/ untracked/ >actual && + + cat <<-EOF >expect && + partially_tracked/untracked_dir/ + untracked/ + EOF + + test_cmp expect actual + ) + +ok 10 - ls-files -o --directory with multiple dir pathspecs + +expecting success of 3000.11 'ls-files -o --directory with mix dir/file pathspecs': + ( + cd nested && + + git ls-files -o --directory partially_tracked/ untracked/deep/path >actual && + + cat <<-EOF >expect && + partially_tracked/untracked_dir/ + untracked/deep/path + EOF + + test_cmp expect actual + ) + +ok 11 - ls-files -o --directory with mix dir/file pathspecs + +expecting success of 3000.12 'ls-files -o --directory with glob filetype match': + ( + cd nested && + + # globs kinda defeat --directory, but only for that pathspec + git ls-files --others --directory partially_tracked "untracked/*.c" >actual && + + cat <<-EOF >expect && + partially_tracked/untracked_dir/ + untracked/deep/foo.c + EOF + + test_cmp expect actual + ) + +ok 12 - ls-files -o --directory with glob filetype match + +expecting success of 3000.13 'ls-files -o --directory with mix of tracked states': + ( + cd nested && + + # globs kinda defeat --directory, but only for that pathspec + git ls-files --others --directory partially_tracked/ "untracked/?*" >actual && + + cat <<-EOF >expect && + partially_tracked/untracked_dir/ + untracked/deep/ + EOF + + test_cmp expect actual + ) + +ok 13 - ls-files -o --directory with mix of tracked states + +expecting success of 3000.14 'ls-files -o --directory with glob filetype match only': + ( + cd nested && + + git ls-files --others --directory "untracked/*.c" >actual && + + cat <<-EOF >expect && + untracked/deep/foo.c + EOF + + test_cmp expect actual + ) + +ok 14 - ls-files -o --directory with glob filetype match only + +expecting success of 3000.15 'ls-files -o --directory to get immediate paths under one dir only': + ( + cd nested && + + git ls-files --others --directory "untracked/?*" >actual && + + cat <<-EOF >expect && + untracked/deep/ + EOF + + test_cmp expect actual + ) + +ok 15 - ls-files -o --directory to get immediate paths under one dir only + +expecting success of 3000.16 'ls-files -o avoids listing untracked non-matching gitdir': + test_when_finished "rm -rf nested/untracked/deep/empty" && + ( + cd nested && + + git init untracked/deep/empty && + git ls-files --others "untracked/*.c" >actual && + + cat <<-EOF >expect && + untracked/deep/foo.c + EOF + + test_cmp expect actual + ) + hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all hint: of your new repositories, which will suppress this warning, call: @@ -76999,1901 +77405,373 @@ hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_repo/.git/ -[master (root-commit) 3950f7e] Base - Author: A U Thor - 3 files changed, 4 insertions(+) - create mode 100644 .gitignore - create mode 100644 file1 - create mode 100644 file2 -Switched to a new branch 'add_sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_repo/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_repo/uninitialized_sub'... -done. -[add_sub1 30024d7] Add sub1 - Author: A U Thor - 2 files changed, 8 insertions(+) - create mode 100644 .gitmodules - create mode 160000 uninitialized_sub -Switched to a new branch 'remove_sub1' -Removing uninitialized_sub -Removing sub1 -Removing .gitmodules -[remove_sub1 d6f9aa6] Revert "Add sub1" - Author: A U Thor - Date: Thu Apr 7 15:14:13 2005 -0700 - 3 files changed, 9 deletions(-) - delete mode 100644 .gitmodules - delete mode 160000 sub1 - delete mode 160000 uninitialized_sub -Switched to a new branch 'modify_sub1' -Switched to a new branch 'modifications' -[modifications e6d8148] modified file2 and added file3 - Author: A U Thor - 2 files changed, 2 insertions(+), 1 deletion(-) - create mode 100644 file3 -To /build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1 - * [new branch] modifications -> modifications -[modify_sub1 1f84fbc] Modify sub1 - Author: A U Thor -Switched to a new branch 'add_nested_sub' -Switched to a new branch 'add_nested_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_repo/sub1/sub2'... -done. -[add_nested_sub 50491a1] add a nested submodule - Author: A U Thor - 2 files changed, 5 insertions(+) - create mode 100644 .gitmodules - create mode 160000 sub2 -[add_nested_sub 6797720] update submodule, that updates a nested submodule - Author: A U Thor -Switched to a new branch 'modify_sub1_recursively' -Switched to a new branch 'modify_sub1_recursively' -Switched to a new branch 'modify_sub1_recursively' -[modify_sub1_recursively 6788ca3] make a change in nested sub - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file3 -[modify_sub1_recursively 6cc4170] update nested sub - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -[modify_sub1_recursively 934e1af] update sub1, that updates nested sub - Author: A U Thor -To /build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1 - * [new branch] modify_sub1_recursively -> modify_sub1_recursively -To /build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub2 - * [new branch] modify_sub1_recursively -> modify_sub1_recursively -Cleared directory 'sub2' -Submodule 'sub2' (../submodule_update_sub2) unregistered for path 'sub2' -Switched to a new branch 'replace_sub1_with_directory' -Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -Previous HEAD position was f401f36 Base inside first submodule -Switched to branch 'modifications' -rm 'sub1' -[replace_sub1_with_directory 43c94e1] Replace sub1 with directory - Author: A U Thor - 5 files changed, 3 insertions(+), 5 deletions(-) - delete mode 160000 sub1 - create mode 100644 sub1/file1 - create mode 100644 sub1/file2 - create mode 100644 sub1/file3 -Switched to a new branch 'replace_directory_with_sub1' -Removing sub1/file3 -Removing sub1/file2 -Removing sub1/file1 -Adding sub1 -[replace_directory_with_sub1 2061bb3] Revert "Replace sub1 with directory" - Author: A U Thor - Date: Thu Apr 7 15:14:13 2005 -0700 - 4 files changed, 4 insertions(+), 3 deletions(-) - delete mode 100644 sub1/file1 - delete mode 100644 sub1/file2 - delete mode 100644 sub1/file3 -Switched to a new branch 'replace_sub1_with_file' -rm 'sub1' -[replace_sub1_with_file d4861a4] Replace sub1 with file - Author: A U Thor - 2 files changed, 1 insertion(+), 5 deletions(-) - mode change 160000 => 100644 sub1 -Switched to a new branch 'replace_file_with_sub1' -[replace_file_with_sub1 cf98843] Revert "Replace sub1 with file" - Author: A U Thor - Date: Thu Apr 7 15:14:13 2005 -0700 - 2 files changed, 5 insertions(+), 1 deletion(-) - mode change 100644 => 160000 sub1 -Switched to a new branch 'invalid_sub1' -[invalid_sub1 cea73c0] Invalid sub1 commit - Author: A U Thor -Switched to a new branch 'valid_sub1' -[valid_sub1 f248045] Revert "Invalid sub1 commit" - Author: A U Thor - Date: Thu Apr 7 15:14:13 2005 -0700 -warning: unable to rmdir 'uninitialized_sub': Directory not empty -Switched to branch 'master' -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Switched to branch 'add_sub1' -Your branch is up to date with 'origin/add_sub1'. -ok 7 - git checkout --recurse-submodules: added submodule is checked out +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3000-ls-files-others/nested/untracked/deep/empty/.git/ +ok 16 - ls-files -o avoids listing untracked non-matching gitdir -expecting success of 2013.8 'git checkout --recurse-submodules: added submodule is checked out in empty dir': - prolog && - reset_work_tree_to_interested no_submodule && - ( - cd submodule_update && - mkdir sub1 && - git branch -t add_sub1 origin/add_sub1 && - $command add_sub1 && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Switched to branch 'add_sub1' -Your branch is up to date with 'origin/add_sub1'. -ok 8 - git checkout --recurse-submodules: added submodule is checked out in empty dir +# passed all 16 test(s) +1..16 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t3001-ls-files-others-exclude.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3001-ls-files-others-exclude/.git/ +expecting success of 3001.1 'git ls-files --others with various exclude options.': git ls-files --others \ + --exclude=\*.6 \ + --exclude-per-directory=.gitignore \ + --exclude-from=.git/ignore \ + >output && + test_cmp expect output +ok 1 - git ls-files --others with various exclude options. -expecting success of 2013.9 'git checkout --recurse-submodules: replace tracked file with submodule checks out submodule': - prolog && - reset_work_tree_to_interested replace_sub1_with_file && - ( - cd submodule_update && - git branch -t replace_file_with_sub1 origin/replace_file_with_sub1 && - $command replace_file_with_sub1 && - test_superproject_content origin/replace_file_with_sub1 && - test_submodule_content sub1 origin/replace_file_with_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'replace_sub1_with_file' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -fatal: Needed a single revision -Branch 'replace_file_with_sub1' set up to track remote branch 'replace_file_with_sub1' from 'origin'. -Switched to branch 'replace_file_with_sub1' -Your branch is up to date with 'origin/replace_file_with_sub1'. -ok 9 - git checkout --recurse-submodules: replace tracked file with submodule checks out submodule +expecting success of 3001.2 'git ls-files --others with \r\n line endings.': git ls-files --others \ + --exclude=\*.6 \ + --exclude-per-directory=.gitignore \ + --exclude-from=.git/ignore \ + >output && + test_cmp expect output +ok 2 - git ls-files --others with \r\n line endings. -expecting success of 2013.10 'git checkout --recurse-submodules: replace directory with submodule': - prolog && - reset_work_tree_to_interested replace_sub1_with_directory && - ( - cd submodule_update && - git branch -t replace_directory_with_sub1 origin/replace_directory_with_sub1 && - $command replace_directory_with_sub1 && - test_superproject_content origin/replace_directory_with_sub1 && - test_submodule_content sub1 origin/replace_directory_with_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'replace_sub1_with_directory' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -fatal: Needed a single revision -Branch 'replace_directory_with_sub1' set up to track remote branch 'replace_directory_with_sub1' from 'origin'. -Switched to branch 'replace_directory_with_sub1' -Your branch is up to date with 'origin/replace_directory_with_sub1'. -ok 10 - git checkout --recurse-submodules: replace directory with submodule +expecting success of 3001.3 'setup skip-worktree gitignore': + git add $allignores && + git update-index --skip-worktree $allignores && + rm $allignores -expecting success of 2013.11 'git checkout --recurse-submodules: nested submodules are checked out': - prolog && - reset_work_tree_to_interested no_submodule && - ( - cd submodule_update && - git branch -t modify_sub1_recursively origin/modify_sub1_recursively && - $command modify_sub1_recursively && - test_superproject_content origin/modify_sub1_recursively && - test_submodule_content sub1 origin/modify_sub1_recursively && - test_submodule_content -C sub1 sub2 origin/modify_sub1_recursively - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'modify_sub1_recursively' set up to track remote branch 'modify_sub1_recursively' from 'origin'. -Switched to branch 'modify_sub1_recursively' -Your branch is up to date with 'origin/modify_sub1_recursively'. -ok 11 - git checkout --recurse-submodules: nested submodules are checked out +ok 3 - setup skip-worktree gitignore -expecting success of 2013.12 'git checkout --recurse-submodules: removed submodule removes submodules working tree': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t remove_sub1 origin/remove_sub1 && - $command remove_sub1 && - test_superproject_content origin/remove_sub1 && - ! test -e sub1 && - test_must_fail git config -f .git/modules/sub1/config core.worktree - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. -Switched to branch 'remove_sub1' -Your branch is up to date with 'origin/remove_sub1'. -ok 12 - git checkout --recurse-submodules: removed submodule removes submodules working tree +expecting success of 3001.4 'git ls-files --others with various exclude options.': git ls-files --others \ + --exclude=\*.6 \ + --exclude-per-directory=.gitignore \ + --exclude-from=.git/ignore \ + >output && + test_cmp expect output +ok 4 - git ls-files --others with various exclude options. -expecting success of 2013.13 'git checkout --recurse-submodules: removed submodule absorbs submodules .git directory': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t remove_sub1 origin/remove_sub1 && - replace_gitfile_with_git_dir sub1 && - rm -rf .git/modules && - $command remove_sub1 && - test_superproject_content origin/remove_sub1 && - ! test -e sub1 && - test_git_directory_exists sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. -Migrating git directory of 'sub1' from -'/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1/.git' to -'/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/.git/modules/sub1' -Switched to branch 'remove_sub1' -Your branch is up to date with 'origin/remove_sub1'. -ok 13 - git checkout --recurse-submodules: removed submodule absorbs submodules .git directory +expecting success of 3001.5 'restore gitignore': + git checkout --ignore-skip-worktree-bits $allignores && + rm .git/index -expecting success of 2013.14 'git checkout --recurse-submodules: replace submodule with a file': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_file origin/replace_sub1_with_file && - $command replace_sub1_with_file && - test_superproject_content origin/replace_sub1_with_file && - test -f sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -Switched to branch 'replace_sub1_with_file' -Your branch is up to date with 'origin/replace_sub1_with_file'. -ok 14 - git checkout --recurse-submodules: replace submodule with a file +Updated 3 paths from the index +ok 5 - restore gitignore -checking known breakage of 2013.15 'git checkout --recurse-submodules: replace submodule with a file must fail with untracked files': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_file origin/replace_sub1_with_file && - : >sub1/untrackedfile && - test_must_fail $command replace_sub1_with_file && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 && - test -f sub1/untracked_file - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -Switched to branch 'replace_sub1_with_file' -Your branch is up to date with 'origin/replace_sub1_with_file'. -test_must_fail: command succeeded: git checkout --recurse-submodules replace_sub1_with_file -not ok 15 - git checkout --recurse-submodules: replace submodule with a file must fail with untracked files # TODO known breakage +expecting success of 3001.6 'git status honors core.excludesfile': test_cmp expect output +ok 6 - git status honors core.excludesfile -expecting success of 2013.16 'git checkout --recurse-submodules: worktrees of nested submodules are removed': - prolog && - reset_work_tree_to_interested add_nested_sub && - ( - cd submodule_update && - git branch -t no_submodule origin/no_submodule && - $command no_submodule && - test_superproject_content origin/no_submodule && - ! test_path_is_dir sub1 && - test_must_fail git config -f .git/modules/sub1/config core.worktree && - test_must_fail git config -f .git/modules/sub1/modules/sub2/config core.worktree - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_nested_sub' -Branch 'add_nested_sub' set up to track remote branch 'add_nested_sub' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '50491a1d91d7be663c2f0e01632adafaa8ad1784' -Submodule 'sub2' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub2) registered for path 'sub1/sub2' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1/sub2'... -done. -Submodule path 'sub1/sub2': checked out 'f2c1bb97d8342b3950c464bac1b708b05cb363c0' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Switched to branch 'no_submodule' -Your branch is up to date with 'origin/no_submodule'. -Directory sub1 doesn't exist. -ok 16 - git checkout --recurse-submodules: worktrees of nested submodules are removed +expecting success of 3001.7 'trailing slash in exclude allows directory match(1)': -expecting success of 2013.17 'git checkout --recurse-submodules: modified submodule updates submodule work tree': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t modify_sub1 origin/modify_sub1 && - $command modify_sub1 && - test_superproject_content origin/modify_sub1 && - test_submodule_content sub1 origin/modify_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. -Switched to branch 'modify_sub1' -Your branch is up to date with 'origin/modify_sub1'. -ok 17 - git checkout --recurse-submodules: modified submodule updates submodule work tree + git ls-files --others --exclude=one/ >output && + if grep "^one/" output + then + echo Ooops + false + else + : happy + fi -expecting success of 2013.18 'git checkout --recurse-submodules: updating to a missing submodule commit fails': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t invalid_sub1 origin/invalid_sub1 && - test_must_fail $command invalid_sub1 2>err && - test_i18ngrep sub1 err && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. -checking prerequisite: C_LOCALE_OUTPUT -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false +ok 7 - trailing slash in exclude allows directory match(1) -) -prerequisite C_LOCALE_OUTPUT ok -error: Submodule 'sub1' could not be updated. - sub1 -ok 18 - git checkout --recurse-submodules: updating to a missing submodule commit fails +expecting success of 3001.8 'trailing slash in exclude allows directory match (2)': -expecting success of 2013.19 'git checkout --recurse-submodules: submodule branch is not changed, detach HEAD instead': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git -C sub1 checkout -b keep_branch && - git -C sub1 rev-parse HEAD >expect && - git branch -t modify_sub1 origin/modify_sub1 && - $command modify_sub1 && - test_superproject_content origin/modify_sub1 && - test_submodule_content sub1 origin/modify_sub1 && - git -C sub1 rev-parse keep_branch >actual && - test_cmp expect actual && - test_must_fail git -C sub1 symbolic-ref HEAD - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -Switched to a new branch 'keep_branch' -Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. -Switched to branch 'modify_sub1' -Your branch is up to date with 'origin/modify_sub1'. -fatal: ref HEAD is not a symbolic ref -ok 19 - git checkout --recurse-submodules: submodule branch is not changed, detach HEAD instead + git ls-files --others --exclude=one/two/ >output && + if grep "^one/two/" output + then + echo Ooops + false + else + : happy + fi -expecting success of 2013.20 'git checkout --recurse-submodules: added submodule doesn't remove untracked file with same name': - prolog && - reset_work_tree_to_interested no_submodule && - ( - cd submodule_update && - git branch -t add_sub1 origin/add_sub1 && - : >sub1 && - test_must_fail $command add_sub1 && - test_superproject_content origin/no_submodule && - test_must_be_empty sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -error: The following untracked working tree files would be overwritten by checkout: - sub1 -Please move or remove them before you switch branches. -Aborting -ok 20 - git checkout --recurse-submodules: added submodule doesn't remove untracked file with same name -expecting success of 2013.21 'git checkout --recurse-submodules: added submodule removes an untracked ignored file': - test_when_finished "rm submodule_update/.git/info/exclude" && - prolog && - reset_work_tree_to_interested no_submodule && - ( - cd submodule_update && - git branch -t add_sub1 origin/add_sub1 && - : >sub1 && - echo sub1 >.git/info/exclude && - $command add_sub1 && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Switched to branch 'add_sub1' -Your branch is up to date with 'origin/add_sub1'. -ok 21 - git checkout --recurse-submodules: added submodule removes an untracked ignored file +ok 8 - trailing slash in exclude allows directory match (2) -checking known breakage of 2013.22 'git checkout --recurse-submodules: replace submodule with a directory': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && - $command replace_sub1_with_directory && - test_superproject_content origin/replace_sub1_with_directory && - test_submodule_content sub1 origin/replace_sub1_with_directory - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -error: The following untracked working tree files would be overwritten by checkout: - sub1/file1 - sub1/file2 -Please move or remove them before you switch branches. -Aborting -not ok 22 - git checkout --recurse-submodules: replace submodule with a directory # TODO known breakage +expecting success of 3001.9 'trailing slash in exclude forces directory match (1)': -checking known breakage of 2013.23 'git checkout --recurse-submodules: replace submodule containing a .git directory with a directory must absorb the git dir': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && - replace_gitfile_with_git_dir sub1 && - rm -rf .git/modules && - $command replace_sub1_with_directory && - test_superproject_content origin/replace_sub1_with_directory && - test_git_directory_exists sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -error: The following untracked working tree files would be overwritten by checkout: - sub1/file1 - sub1/file2 -Please move or remove them before you switch branches. -Aborting -not ok 23 - git checkout --recurse-submodules: replace submodule containing a .git directory with a directory must absorb the git dir # TODO known breakage + >two && + git ls-files --others --exclude=two/ >output && + grep "^two" output -expecting success of 2013.24 'git checkout --recurse-submodules: replace submodule with a file works ignores ignored files in submodule': - test_when_finished "rm submodule_update/.git/modules/sub1/info/exclude" && - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_file origin/replace_sub1_with_file && - echo ignored >.git/modules/sub1/info/exclude && - : >sub1/ignored && - $command replace_sub1_with_file && - test_superproject_content origin/replace_sub1_with_file && - test -f sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -Switched to branch 'replace_sub1_with_file' -Your branch is up to date with 'origin/replace_sub1_with_file'. -ok 24 - git checkout --recurse-submodules: replace submodule with a file works ignores ignored files in submodule -expecting success of 2013.25 'git -c submodule.recurse=true checkout: modified submodule updates submodule work tree': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t modify_sub1 origin/modify_sub1 && - git -c submodule.recurse=true $cmd_args modify_sub1 && - test_superproject_content origin/modify_sub1 && - test_submodule_content sub1 origin/modify_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. -Switched to branch 'modify_sub1' -Your branch is up to date with 'origin/modify_sub1'. -ok 25 - git -c submodule.recurse=true checkout: modified submodule updates submodule work tree +two +ok 9 - trailing slash in exclude forces directory match (1) -expecting success of 2013.26 'git checkout --recurse-submodules: modified submodule updates submodule recursively': - prolog && - reset_work_tree_to_interested add_nested_sub && - ( - cd submodule_update && - git branch -t modify_sub1_recursively origin/modify_sub1_recursively && - $command modify_sub1_recursively && - test_superproject_content origin/modify_sub1_recursively && - test_submodule_content sub1 origin/modify_sub1_recursively && - test_submodule_content -C sub1 sub2 origin/modify_sub1_recursively - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_nested_sub' -Branch 'add_nested_sub' set up to track remote branch 'add_nested_sub' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '50491a1d91d7be663c2f0e01632adafaa8ad1784' -Submodule 'sub2' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub2) registered for path 'sub1/sub2' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1/sub2'... -done. -Submodule path 'sub1/sub2': checked out 'f2c1bb97d8342b3950c464bac1b708b05cb363c0' -Branch 'modify_sub1_recursively' set up to track remote branch 'modify_sub1_recursively' from 'origin'. -Switched to branch 'modify_sub1_recursively' -Your branch is up to date with 'origin/modify_sub1_recursively'. -ok 26 - git checkout --recurse-submodules: modified submodule updates submodule recursively +expecting success of 3001.10 'trailing slash in exclude forces directory match (2)': -expecting success of 2013.27 'git checkout -f --recurse-submodules: added submodule is checked out': - prolog && - reset_work_tree_to_interested no_submodule && - ( - cd submodule_update && - git branch -t add_sub1 origin/add_sub1 && - $command add_sub1 && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Switched to branch 'add_sub1' -Your branch is up to date with 'origin/add_sub1'. -ok 27 - git checkout -f --recurse-submodules: added submodule is checked out + git ls-files --others --exclude=one/a.1/ >output && + grep "^one/a.1" output -expecting success of 2013.28 'git checkout -f --recurse-submodules: added submodule is checked out in empty dir': - prolog && - reset_work_tree_to_interested no_submodule && - ( - cd submodule_update && - mkdir sub1 && - git branch -t add_sub1 origin/add_sub1 && - $command add_sub1 && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Switched to branch 'add_sub1' -Your branch is up to date with 'origin/add_sub1'. -ok 28 - git checkout -f --recurse-submodules: added submodule is checked out in empty dir -expecting success of 2013.29 'git checkout -f --recurse-submodules: replace tracked file with submodule checks out submodule': - prolog && - reset_work_tree_to_interested replace_sub1_with_file && - ( - cd submodule_update && - git branch -t replace_file_with_sub1 origin/replace_file_with_sub1 && - $command replace_file_with_sub1 && - test_superproject_content origin/replace_file_with_sub1 && - test_submodule_content sub1 origin/replace_file_with_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'replace_sub1_with_file' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -fatal: Needed a single revision -Branch 'replace_file_with_sub1' set up to track remote branch 'replace_file_with_sub1' from 'origin'. -Switched to branch 'replace_file_with_sub1' -Your branch is up to date with 'origin/replace_file_with_sub1'. -ok 29 - git checkout -f --recurse-submodules: replace tracked file with submodule checks out submodule +one/a.1 +ok 10 - trailing slash in exclude forces directory match (2) -expecting success of 2013.30 'git checkout -f --recurse-submodules: replace directory with submodule': - prolog && - reset_work_tree_to_interested replace_sub1_with_directory && - ( - cd submodule_update && - git branch -t replace_directory_with_sub1 origin/replace_directory_with_sub1 && - $command replace_directory_with_sub1 && - test_superproject_content origin/replace_directory_with_sub1 && - test_submodule_content sub1 origin/replace_directory_with_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'replace_sub1_with_directory' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -fatal: Needed a single revision -Branch 'replace_directory_with_sub1' set up to track remote branch 'replace_directory_with_sub1' from 'origin'. -Switched to branch 'replace_directory_with_sub1' -Your branch is up to date with 'origin/replace_directory_with_sub1'. -ok 30 - git checkout -f --recurse-submodules: replace directory with submodule +expecting success of 3001.11 'negated exclude matches can override previous ones': -expecting success of 2013.31 'git checkout -f --recurse-submodules: nested submodules are checked out': - prolog && - reset_work_tree_to_interested no_submodule && - ( - cd submodule_update && - git branch -t modify_sub1_recursively origin/modify_sub1_recursively && - $command modify_sub1_recursively && - test_superproject_content origin/modify_sub1_recursively && - test_submodule_content sub1 origin/modify_sub1_recursively && - test_submodule_content -C sub1 sub2 origin/modify_sub1_recursively - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'modify_sub1_recursively' set up to track remote branch 'modify_sub1_recursively' from 'origin'. -Switched to branch 'modify_sub1_recursively' -Your branch is up to date with 'origin/modify_sub1_recursively'. -ok 31 - git checkout -f --recurse-submodules: nested submodules are checked out + git ls-files --others --exclude="a.*" --exclude="!a.1" >output && + grep "^a.1" output -expecting success of 2013.32 'git checkout -f --recurse-submodules: removed submodule removes submodules working tree': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t remove_sub1 origin/remove_sub1 && - $command remove_sub1 && - test_superproject_content origin/remove_sub1 && - ! test -e sub1 && - test_must_fail git config -f .git/modules/sub1/config core.worktree - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. -Switched to branch 'remove_sub1' -Your branch is up to date with 'origin/remove_sub1'. -ok 32 - git checkout -f --recurse-submodules: removed submodule removes submodules working tree +a.1 +ok 11 - negated exclude matches can override previous ones -expecting success of 2013.33 'git checkout -f --recurse-submodules: removed submodule absorbs submodules .git directory': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t remove_sub1 origin/remove_sub1 && - replace_gitfile_with_git_dir sub1 && - rm -rf .git/modules && - $command remove_sub1 && - test_superproject_content origin/remove_sub1 && - ! test -e sub1 && - test_git_directory_exists sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. -Migrating git directory of 'sub1' from -'/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1/.git' to -'/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/.git/modules/sub1' -Switched to branch 'remove_sub1' -Your branch is up to date with 'origin/remove_sub1'. -ok 33 - git checkout -f --recurse-submodules: removed submodule absorbs submodules .git directory +expecting success of 3001.12 'excluded directory overrides content patterns': -expecting success of 2013.34 'git checkout -f --recurse-submodules: replace submodule with a file': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_file origin/replace_sub1_with_file && - $command replace_sub1_with_file && - test_superproject_content origin/replace_sub1_with_file && - test -f sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -Switched to branch 'replace_sub1_with_file' -Your branch is up to date with 'origin/replace_sub1_with_file'. -ok 34 - git checkout -f --recurse-submodules: replace submodule with a file + git ls-files --others --exclude="one" --exclude="!one/a.1" >output && + if grep "^one/a.1" output + then + false + fi -checking known breakage of 2013.35 'git checkout -f --recurse-submodules: replace submodule with a file must fail with untracked files': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_file origin/replace_sub1_with_file && - : >sub1/untrackedfile && - test_must_fail $command replace_sub1_with_file && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 && - test -f sub1/untracked_file - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -Switched to branch 'replace_sub1_with_file' -Your branch is up to date with 'origin/replace_sub1_with_file'. -test_must_fail: command succeeded: git checkout -f --recurse-submodules replace_sub1_with_file -not ok 35 - git checkout -f --recurse-submodules: replace submodule with a file must fail with untracked files # TODO known breakage +ok 12 - excluded directory overrides content patterns -expecting success of 2013.36 'git checkout -f --recurse-submodules: worktrees of nested submodules are removed': - prolog && - reset_work_tree_to_interested add_nested_sub && - ( - cd submodule_update && - git branch -t no_submodule origin/no_submodule && - $command no_submodule && - test_superproject_content origin/no_submodule && - ! test_path_is_dir sub1 && - test_must_fail git config -f .git/modules/sub1/config core.worktree && - test_must_fail git config -f .git/modules/sub1/modules/sub2/config core.worktree - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_nested_sub' -Branch 'add_nested_sub' set up to track remote branch 'add_nested_sub' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '50491a1d91d7be663c2f0e01632adafaa8ad1784' -Submodule 'sub2' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub2) registered for path 'sub1/sub2' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1/sub2'... -done. -Submodule path 'sub1/sub2': checked out 'f2c1bb97d8342b3950c464bac1b708b05cb363c0' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Switched to branch 'no_submodule' -Your branch is up to date with 'origin/no_submodule'. -Directory sub1 doesn't exist. -ok 36 - git checkout -f --recurse-submodules: worktrees of nested submodules are removed +expecting success of 3001.13 'negated directory doesn't affect content patterns': -expecting success of 2013.37 'git checkout -f --recurse-submodules: modified submodule updates submodule work tree': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t modify_sub1 origin/modify_sub1 && - $command modify_sub1 && - test_superproject_content origin/modify_sub1 && - test_submodule_content sub1 origin/modify_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. -Switched to branch 'modify_sub1' -Your branch is up to date with 'origin/modify_sub1'. -ok 37 - git checkout -f --recurse-submodules: modified submodule updates submodule work tree + git ls-files --others --exclude="!one" --exclude="one/a.1" >output && + if grep "^one/a.1" output + then + false + fi -expecting success of 2013.38 'git checkout -f --recurse-submodules: updating to a missing submodule commit fails': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t invalid_sub1 origin/invalid_sub1 && - test_must_fail $command invalid_sub1 2>err && - test_i18ngrep sub1 err && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. -checking prerequisite: C_LOCALE_OUTPUT +ok 13 - negated directory doesn't affect content patterns -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false +expecting success of 3001.14 'subdirectory ignore (setup)': + mkdir -p top/l1/l2 && + ( + cd top && + git init && + echo /.gitignore >.gitignore && + echo l1 >>.gitignore && + echo l2 >l1/.gitignore && + >l1/l2/l1 + ) -) -prerequisite C_LOCALE_OUTPUT ok -error: Submodule 'sub1' could not be updated. -error: Submodule 'sub1' cannot checkout new HEAD. -ok 38 - git checkout -f --recurse-submodules: updating to a missing submodule commit fails +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3001-ls-files-others-exclude/top/.git/ +ok 14 - subdirectory ignore (setup) -expecting success of 2013.39 'git checkout -f --recurse-submodules: submodule branch is not changed, detach HEAD instead': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git -C sub1 checkout -b keep_branch && - git -C sub1 rev-parse HEAD >expect && - git branch -t modify_sub1 origin/modify_sub1 && - $command modify_sub1 && - test_superproject_content origin/modify_sub1 && - test_submodule_content sub1 origin/modify_sub1 && - git -C sub1 rev-parse keep_branch >actual && - test_cmp expect actual && - test_must_fail git -C sub1 symbolic-ref HEAD - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -Switched to a new branch 'keep_branch' -Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. -Switched to branch 'modify_sub1' -Your branch is up to date with 'origin/modify_sub1'. -fatal: ref HEAD is not a symbolic ref -ok 39 - git checkout -f --recurse-submodules: submodule branch is not changed, detach HEAD instead +expecting success of 3001.15 'subdirectory ignore (toplevel)': + ( + cd top && + git ls-files -o --exclude-standard + ) >actual && + test_must_be_empty actual -expecting success of 2013.40 'git checkout -f --recurse-submodules: added submodule does remove untracked unignored file with same name when forced': - prolog && - reset_work_tree_to_interested no_submodule && - ( - cd submodule_update && - git branch -t add_sub1 origin/add_sub1 && - >sub1 && - $command add_sub1 && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Switched to branch 'add_sub1' -Your branch is up to date with 'origin/add_sub1'. -ok 40 - git checkout -f --recurse-submodules: added submodule does remove untracked unignored file with same name when forced +ok 15 - subdirectory ignore (toplevel) -expecting success of 2013.41 'git checkout -f --recurse-submodules: replace submodule with a directory': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && - $command replace_sub1_with_directory && - test_superproject_content origin/replace_sub1_with_directory - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -Switched to branch 'replace_sub1_with_directory' -Your branch is up to date with 'origin/replace_sub1_with_directory'. -ok 41 - git checkout -f --recurse-submodules: replace submodule with a directory +expecting success of 3001.16 'subdirectory ignore (l1/l2)': + ( + cd top/l1/l2 && + git ls-files -o --exclude-standard + ) >actual && + test_must_be_empty actual -expecting success of 2013.42 'git checkout -f --recurse-submodules: replace submodule containing a .git directory with a directory must fail': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && - replace_gitfile_with_git_dir sub1 && - rm -rf .git/modules/sub1 && - $command replace_sub1_with_directory && - test_superproject_content origin/replace_sub1_with_directory && - test_git_directory_exists sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -Migrating git directory of 'sub1' from -'/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1/.git' to -'/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/.git/modules/sub1' -Switched to branch 'replace_sub1_with_directory' -Your branch is up to date with 'origin/replace_sub1_with_directory'. -ok 42 - git checkout -f --recurse-submodules: replace submodule containing a .git directory with a directory must fail +ok 16 - subdirectory ignore (l1/l2) -expecting success of 2013.43 'git checkout -f --recurse-submodules: replace submodule with a file ignoring ignored files': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_file origin/replace_sub1_with_file && - : >sub1/expect && - $command replace_sub1_with_file && - test_superproject_content origin/replace_sub1_with_file - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -Switched to branch 'replace_sub1_with_file' -Your branch is up to date with 'origin/replace_sub1_with_file'. -ok 43 - git checkout -f --recurse-submodules: replace submodule with a file ignoring ignored files +expecting success of 3001.17 'subdirectory ignore (l1)': + ( + cd top/l1 && + git ls-files -o --exclude-standard + ) >actual && + test_must_be_empty actual -expecting success of 2013.44 'git checkout -f --recurse-submodules: modified submodule does update submodule work tree from invalid commit': - prolog && - reset_work_tree_to_interested invalid_sub1 && - ( - cd submodule_update && - git branch -t valid_sub1 origin/valid_sub1 && - $command valid_sub1 && - test_superproject_content origin/valid_sub1 && - test_submodule_content sub1 origin/valid_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'invalid_sub1' -Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. -fatal: Needed a single revision -Branch 'valid_sub1' set up to track remote branch 'valid_sub1' from 'origin'. -Switched to branch 'valid_sub1' -Your branch is up to date with 'origin/valid_sub1'. -ok 44 - git checkout -f --recurse-submodules: modified submodule does update submodule work tree from invalid commit +ok 17 - subdirectory ignore (l1) -expecting success of 2013.45 'git checkout -f --recurse-submodules: updating submodules fixes .git links': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t modify_sub1 origin/modify_sub1 && - echo "gitdir: bogus/path" >sub1/.git && - $command modify_sub1 && - test_superproject_content origin/modify_sub1 && - test_submodule_content sub1 origin/modify_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. -Switched to branch 'modify_sub1' -Your branch is up to date with 'origin/modify_sub1'. -ok 45 - git checkout -f --recurse-submodules: updating submodules fixes .git links +expecting success of 3001.18 'show/hide empty ignored directory (setup)': + rm top/l1/l2/l1 && + rm top/l1/.gitignore -expecting success of 2013.46 'git checkout -f --recurse-submodules: changed submodule worktree is reset': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - rm sub1/file1 && - : >sub1/new_file && - git -C sub1 add new_file && - $command HEAD && - test_path_is_file sub1/file1 && - test_path_is_missing sub1/new_file - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -Your branch is up to date with 'origin/add_sub1'. -ok 46 - git checkout -f --recurse-submodules: changed submodule worktree is reset +ok 18 - show/hide empty ignored directory (setup) -expecting success of 2013.47 'git_test_func: added submodule creates empty directory': - prolog && - reset_work_tree_to no_submodule && - ( - cd submodule_update && - git branch -t add_sub1 origin/add_sub1 && - $command add_sub1 && - test_superproject_content origin/add_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Switched to branch 'add_sub1' -Your branch is up to date with 'origin/add_sub1'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -Submodule path 'uninitialized_sub': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -ok 47 - git_test_func: added submodule creates empty directory +expecting success of 3001.19 'show empty ignored directory with --directory': + ( + cd top && + git ls-files -o -i --exclude l1 --directory + ) >actual && + echo l1/ >expect && + test_cmp expect actual -expecting success of 2013.48 'git_test_func: added submodule leaves existing empty directory alone': - prolog && - reset_work_tree_to no_submodule && - ( - cd submodule_update && - mkdir sub1 && - git branch -t add_sub1 origin/add_sub1 && - $command add_sub1 && - test_superproject_content origin/add_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Switched to branch 'add_sub1' -Your branch is up to date with 'origin/add_sub1'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -Submodule path 'uninitialized_sub': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -ok 48 - git_test_func: added submodule leaves existing empty directory alone +ok 19 - show empty ignored directory with --directory -expecting success of 2013.49 'git_test_func: replace tracked file with submodule creates empty directory': - prolog && - reset_work_tree_to replace_sub1_with_file && - ( - cd submodule_update && - git branch -t replace_file_with_sub1 origin/replace_file_with_sub1 && - $command replace_file_with_sub1 && - test_superproject_content origin/replace_file_with_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/replace_file_with_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'replace_sub1_with_file' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -fatal: Needed a single revision -Branch 'replace_file_with_sub1' set up to track remote branch 'replace_file_with_sub1' from 'origin'. -Switched to branch 'replace_file_with_sub1' -Your branch is up to date with 'origin/replace_file_with_sub1'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -Submodule path 'uninitialized_sub': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -ok 49 - git_test_func: replace tracked file with submodule creates empty directory +expecting success of 3001.20 'hide empty ignored directory with --no-empty-directory': + ( + cd top && + git ls-files -o -i --exclude l1 --directory --no-empty-directory + ) >actual && + test_must_be_empty actual -expecting success of 2013.50 'git_test_func: replace directory with submodule': - prolog && - reset_work_tree_to replace_sub1_with_directory && - ( - cd submodule_update && - git branch -t replace_directory_with_sub1 origin/replace_directory_with_sub1 && - $command replace_directory_with_sub1 && - test_superproject_content origin/replace_directory_with_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/replace_directory_with_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'replace_sub1_with_directory' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -fatal: Needed a single revision -Branch 'replace_directory_with_sub1' set up to track remote branch 'replace_directory_with_sub1' from 'origin'. -Switched to branch 'replace_directory_with_sub1' -Your branch is up to date with 'origin/replace_directory_with_sub1'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -Submodule path 'uninitialized_sub': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -ok 50 - git_test_func: replace directory with submodule +ok 20 - hide empty ignored directory with --no-empty-directory -expecting success of 2013.51 'git_test_func: removed submodule leaves submodule directory and its contents in place': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t remove_sub1 origin/remove_sub1 && - $command remove_sub1 && - test_superproject_content origin/remove_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. -warning: unable to rmdir 'sub1': Directory not empty -Switched to branch 'remove_sub1' -Your branch is up to date with 'origin/remove_sub1'. -ok 51 - git_test_func: removed submodule leaves submodule directory and its contents in place +expecting success of 3001.21 'show/hide empty ignored sub-directory (setup)': + > top/l1/tracked && + ( + cd top && + git add -f l1/tracked + ) -expecting success of 2013.52 'git_test_func: removed submodule leaves submodule containing a .git directory alone': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t remove_sub1 origin/remove_sub1 && - replace_gitfile_with_git_dir sub1 && - $command remove_sub1 && - test_superproject_content origin/remove_sub1 && - test_git_directory_is_unchanged sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. -warning: unable to rmdir 'sub1': Directory not empty -Switched to branch 'remove_sub1' -Your branch is up to date with 'origin/remove_sub1'. -ok 52 - git_test_func: removed submodule leaves submodule containing a .git directory alone +ok 21 - show/hide empty ignored sub-directory (setup) -expecting success of 2013.53 'git_test_func: replace submodule with a directory must fail': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && - $command replace_sub1_with_directory test_must_fail && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -error: The following untracked working tree files would be overwritten by checkout: - sub1/file1 - sub1/file2 -Please move or remove them before you switch branches. -Aborting -ok 53 - git_test_func: replace submodule with a directory must fail +expecting success of 3001.22 'show empty ignored sub-directory with --directory': + ( + cd top && + git ls-files -o -i --exclude l1 --directory + ) >actual && + echo l1/l2/ >expect && + test_cmp expect actual -expecting success of 2013.54 'git_test_func: replace submodule containing a .git directory with a directory must fail': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && - replace_gitfile_with_git_dir sub1 && - $command replace_sub1_with_directory test_must_fail && - test_superproject_content origin/add_sub1 && - test_git_directory_is_unchanged sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -error: The following untracked working tree files would be overwritten by checkout: - sub1/file1 - sub1/file2 -Please move or remove them before you switch branches. -Aborting -ok 54 - git_test_func: replace submodule containing a .git directory with a directory must fail +ok 22 - show empty ignored sub-directory with --directory -checking known breakage of 2013.55 'git_test_func: replace submodule with a file must fail': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_file origin/replace_sub1_with_file && - $command replace_sub1_with_file test_must_fail && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -Switched to branch 'replace_sub1_with_file' -Your branch is up to date with 'origin/replace_sub1_with_file'. -test_must_fail: command succeeded: git checkout replace_sub1_with_file -not ok 55 - git_test_func: replace submodule with a file must fail # TODO known breakage +expecting success of 3001.23 'hide empty ignored sub-directory with --no-empty-directory': + ( + cd top && + git ls-files -o -i --exclude l1 --directory --no-empty-directory + ) >actual && + test_must_be_empty actual -checking known breakage of 2013.56 'git_test_func: replace submodule containing a .git directory with a file must fail': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_file origin/replace_sub1_with_file && - replace_gitfile_with_git_dir sub1 && - $command replace_sub1_with_file test_must_fail && - test_superproject_content origin/add_sub1 && - test_git_directory_is_unchanged sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -Switched to branch 'replace_sub1_with_file' -Your branch is up to date with 'origin/replace_sub1_with_file'. -test_must_fail: command succeeded: git checkout replace_sub1_with_file -not ok 56 - git_test_func: replace submodule containing a .git directory with a file must fail # TODO known breakage +ok 23 - hide empty ignored sub-directory with --no-empty-directory -expecting success of 2013.57 'git_test_func: modified submodule does not update submodule work tree': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t modify_sub1 origin/modify_sub1 && - $command modify_sub1 && - test_superproject_content origin/modify_sub1 && - test_submodule_content sub1 origin/add_sub1 && - git submodule update && - test_submodule_content sub1 origin/modify_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. -Switched to branch 'modify_sub1' -Your branch is up to date with 'origin/modify_sub1'. -Submodule path 'sub1': checked out 'e6d8148a306c904a34344fac267f4613e698d228' -ok 57 - git_test_func: modified submodule does not update submodule work tree +expecting success of 3001.24 'pattern matches prefix completely': + git ls-files -i -o --exclude "/three/a.3[abc]" >actual && + test_must_be_empty actual -expecting success of 2013.58 'git_test_func: modified submodule does not update submodule work tree to invalid commit': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t invalid_sub1 origin/invalid_sub1 && - $command invalid_sub1 && - test_superproject_content origin/invalid_sub1 && - test_submodule_content sub1 origin/add_sub1 && - test_must_fail git submodule update && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. -Switched to branch 'invalid_sub1' -Your branch is up to date with 'origin/invalid_sub1'. -fatal: git upload-pack: not our ref 0123456789012345678901234567890123456789 -fatal: remote error: upload-pack: not our ref 0123456789012345678901234567890123456789 -Fetched in submodule path 'sub1', but it did not contain 0123456789012345678901234567890123456789. Direct fetching of that commit failed. -ok 58 - git_test_func: modified submodule does not update submodule work tree to invalid commit +ok 24 - pattern matches prefix completely -expecting success of 2013.59 'git_test_func: modified submodule does not update submodule work tree from invalid commit': - prolog && - reset_work_tree_to invalid_sub1 && - ( - cd submodule_update && - git branch -t valid_sub1 origin/valid_sub1 && - $command valid_sub1 && - test_superproject_content origin/valid_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/valid_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'invalid_sub1' -Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. -fatal: Needed a single revision -Branch 'valid_sub1' set up to track remote branch 'valid_sub1' from 'origin'. -Switched to branch 'valid_sub1' -Your branch is up to date with 'origin/valid_sub1'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -Submodule path 'uninitialized_sub': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -ok 59 - git_test_func: modified submodule does not update submodule work tree from invalid commit +expecting success of 3001.25 'ls-files with "**" patterns': + cat <<\EOF >expect && +a.1 +one/a.1 +one/two/a.1 +three/a.1 +EOF + git ls-files -o -i --exclude "**/a.1" >actual && + test_cmp expect actual -expecting success of 2013.60 'git_test_func: added submodule doesn't remove untracked unignored file with same name': - prolog && - reset_work_tree_to no_submodule && - ( - cd submodule_update && - git branch -t add_sub1 origin/add_sub1 && - >sub1 && - $command add_sub1 test_must_fail && - test_superproject_content origin/no_submodule && - test_must_be_empty sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -error: The following untracked working tree files would be overwritten by checkout: - sub1 -Please move or remove them before you switch branches. -Aborting -ok 60 - git_test_func: added submodule doesn't remove untracked unignored file with same name +ok 25 - ls-files with "**" patterns -expecting success of 2013.61 'git_test_func: added submodule creates empty directory': - prolog && - reset_work_tree_to no_submodule && - ( - cd submodule_update && - git branch -t add_sub1 origin/add_sub1 && - $command add_sub1 && - test_superproject_content origin/add_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Switched to branch 'add_sub1' -Your branch is up to date with 'origin/add_sub1'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -Submodule path 'uninitialized_sub': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -ok 61 - git_test_func: added submodule creates empty directory +expecting success of 3001.26 'ls-files with "**" patterns and no slashes': + git ls-files -o -i --exclude "one**a.1" >actual && + test_must_be_empty actual -expecting success of 2013.62 'git_test_func: added submodule leaves existing empty directory alone': - prolog && - reset_work_tree_to no_submodule && - ( - cd submodule_update && - mkdir sub1 && - git branch -t add_sub1 origin/add_sub1 && - $command add_sub1 && - test_superproject_content origin/add_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Switched to branch 'add_sub1' -Your branch is up to date with 'origin/add_sub1'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -Submodule path 'uninitialized_sub': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -ok 62 - git_test_func: added submodule leaves existing empty directory alone +ok 26 - ls-files with "**" patterns and no slashes -expecting success of 2013.63 'git_test_func: replace tracked file with submodule creates empty directory': - prolog && - reset_work_tree_to replace_sub1_with_file && - ( - cd submodule_update && - git branch -t replace_file_with_sub1 origin/replace_file_with_sub1 && - $command replace_file_with_sub1 && - test_superproject_content origin/replace_file_with_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/replace_file_with_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'replace_sub1_with_file' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -fatal: Needed a single revision -Branch 'replace_file_with_sub1' set up to track remote branch 'replace_file_with_sub1' from 'origin'. -Switched to branch 'replace_file_with_sub1' -Your branch is up to date with 'origin/replace_file_with_sub1'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -Submodule path 'uninitialized_sub': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -ok 63 - git_test_func: replace tracked file with submodule creates empty directory +# passed all 26 test(s) +1..26 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t3002-ls-files-dashpath.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3002-ls-files-dashpath/.git/ +expecting success of 3002.1 'setup': echo frotz >path0 && + echo frotz >./-foo && + echo frotz >./-- +ok 1 - setup -expecting success of 2013.64 'git_test_func: replace directory with submodule': - prolog && - reset_work_tree_to replace_sub1_with_directory && - ( - cd submodule_update && - git branch -t replace_directory_with_sub1 origin/replace_directory_with_sub1 && - $command replace_directory_with_sub1 && - test_superproject_content origin/replace_directory_with_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/replace_directory_with_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'replace_sub1_with_directory' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -fatal: Needed a single revision -Branch 'replace_directory_with_sub1' set up to track remote branch 'replace_directory_with_sub1' from 'origin'. -Switched to branch 'replace_directory_with_sub1' -Your branch is up to date with 'origin/replace_directory_with_sub1'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -Submodule path 'uninitialized_sub': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' -ok 64 - git_test_func: replace directory with submodule +expecting success of 3002.2 'git ls-files without path restriction.': git ls-files --others >output && + test_cmp output - <output && + test_cmp output - <output && + test_cmp output - <output && + test_cmp output - <output && + test_cmp output - <sub1 && - $command add_sub1 && - test_superproject_content origin/add_sub1 && - test_dir_is_empty sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Switched to branch 'add_sub1' -Your branch is up to date with 'origin/add_sub1'. -ok 74 - git_test_func: added submodule does remove untracked unignored file with same name when forced +# passed all 6 test(s) +1..6 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t3003-ls-files-exclude.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3003-ls-files-exclude/.git/ +expecting success of 3003.1 'create repo with file': + echo content >file && + git add file && + git commit -m file && + echo modification >file -# still have 10 known breakage(s) -# passed all remaining 64 test(s) -1..74 +[master (root-commit) 39caa03] file + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file +ok 1 - create repo with file + +expecting success of 3003.2 'ls-files output contains file (cached)': + echo 'file' >expect && + git ls-files --exclude-standard --cached >output && + test_cmp expect output + +ok 2 - ls-files output contains file (cached) + +expecting success of 3003.3 'ls-files output contains file (modified)': + echo 'file' >expect && + git ls-files --exclude-standard --modified >output && + test_cmp expect output + +ok 3 - ls-files output contains file (modified) + +expecting success of 3003.4 'add file to gitignore': + echo file >.gitignore + +ok 4 - add file to gitignore + +expecting success of 3003.5 'ls-files output contains file (cached)': + echo 'file' >expect && + git ls-files --exclude-standard --cached >output && + test_cmp expect output + +ok 5 - ls-files output contains file (cached) + +expecting success of 3003.6 'ls-files output contains file (modified)': + echo 'file' >expect && + git ls-files --exclude-standard --modified >output && + test_cmp expect output + +ok 6 - ls-files output contains file (modified) + +expecting success of 3003.7 'ls-files -i lists only tracked-but-ignored files': + echo content >other-file && + git add other-file && + echo file >expect && + git ls-files -i --exclude-standard >output && + test_cmp expect output + +ok 7 - ls-files -i lists only tracked-but-ignored files + +# passed all 7 test(s) +1..7 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' *** t2400-worktree-add.sh *** @@ -80171,234 +79049,24 @@ 1..69 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t2405-worktree-submodule.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2405-worktree-submodule/.git/ -expecting success of 2405.1 'setup: create origin repos': - git config --global protocol.file.allow always && - git init origin/sub && - test_commit -C origin/sub file1 && - git init origin/main && - test_commit -C origin/main first && - git -C origin/main submodule add ../sub && - git -C origin/main commit -m "add sub" && - test_commit -C origin/sub "file1 updated" file1 file1updated file1updated && - git -C origin/main/sub pull && - git -C origin/main add sub && - git -C origin/main commit -m "sub updated" - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2405-worktree-submodule/origin/sub/.git/ -[master (root-commit) 69af168] file1 - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file1.t -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2405-worktree-submodule/origin/main/.git/ -[master (root-commit) 1e96f59] first - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 first.t -Cloning into '/build/git-2.30.2/t/trash directory.t2405-worktree-submodule/origin/main/sub'... -done. -[master 322c452] add sub - Author: A U Thor - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 sub -[master 7829796] file1 updated - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file1 -hint: Pulling without specifying how to reconcile divergent branches is -hint: discouraged. You can squelch this message by running one of the following -hint: commands sometime before your next pull: -hint: -hint: git config pull.rebase false # merge (the default strategy) -hint: git config pull.rebase true # rebase -hint: git config pull.ff only # fast-forward only -hint: -hint: You can replace "git config" with "git config --global" to set a default -hint: preference for all repositories. You can also pass --rebase, --no-rebase, -hint: or --ff-only on the command line to override the configured default per -hint: invocation. -From /build/git-2.30.2/t/trash directory.t2405-worktree-submodule/origin/sub - 69af168..7829796 master -> origin/master - * [new tag] file1updated -> file1updated -Updating 69af168..7829796 -Fast-forward - file1 | 1 + - 1 file changed, 1 insertion(+) - create mode 100644 file1 -[master d717f19] sub updated - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -ok 1 - setup: create origin repos - -expecting success of 2405.2 'setup: clone superproject to create main worktree': - git clone --recursive "$base_path/origin/main" main - -Cloning into 'main'... -done. -Submodule 'sub' (/build/git-2.30.2/t/trash directory.t2405-worktree-submodule/origin/sub) registered for path 'sub' -Cloning into '/build/git-2.30.2/t/trash directory.t2405-worktree-submodule/main/sub'... -done. -Submodule path 'sub': checked out '782979677c1932d3806e9adc80194f805c02f4f3' -ok 2 - setup: clone superproject to create main worktree - -expecting success of 2405.3 'add superproject worktree': - git -C main worktree add "$base_path/worktree" "$rev1_hash_main" - -Preparing worktree (detached HEAD 322c452) -HEAD is now at 322c452 add sub -ok 3 - add superproject worktree - -checking known breakage of 2405.4 'submodule is checked out just after worktree add': - git -C worktree diff --submodule master"^!" >out && - grep "file1 updated" out - -not ok 4 - submodule is checked out just after worktree add # TODO known breakage - -expecting success of 2405.5 'add superproject worktree and initialize submodules': - git -C main worktree add "$base_path/worktree-submodule-update" "$rev1_hash_main" && - git -C worktree-submodule-update submodule update - -Preparing worktree (detached HEAD 322c452) -HEAD is now at 322c452 add sub -Cloning into '/build/git-2.30.2/t/trash directory.t2405-worktree-submodule/worktree-submodule-update/sub'... -done. -Submodule path 'sub': checked out '69af1687b671131ed0cfa61b7fcdc907a4c21f2c' -ok 5 - add superproject worktree and initialize submodules - -expecting success of 2405.6 'submodule is checked out just after submodule update in linked worktree': - git -C worktree-submodule-update diff --submodule master"^!" >out && - grep "file1 updated" out - - > file1 updated -ok 6 - submodule is checked out just after submodule update in linked worktree - -expecting success of 2405.7 'add superproject worktree and manually add submodule worktree': - git -C main worktree add "$base_path/linked_submodule" "$rev1_hash_main" && - git -C main/sub worktree add "$base_path/linked_submodule/sub" "$rev1_hash_sub" - -Preparing worktree (detached HEAD 322c452) -HEAD is now at 322c452 add sub -Preparing worktree (detached HEAD 69af168) -HEAD is now at 69af168 file1 -ok 7 - add superproject worktree and manually add submodule worktree - -expecting success of 2405.8 'submodule is checked out after manually adding submodule worktree': - git -C linked_submodule diff --submodule master"^!" >out && - grep "file1 updated" out - - > file1 updated -ok 8 - submodule is checked out after manually adding submodule worktree - -expecting success of 2405.9 'checkout --recurse-submodules uses $GIT_DIR for submodules in a linked worktree': - git -C main worktree add "$base_path/checkout-recurse" --detach && - git -C checkout-recurse submodule update --init && - echo "gitdir: ../../main/.git/worktrees/checkout-recurse/modules/sub" >expect-gitfile && - cat checkout-recurse/sub/.git >actual-gitfile && - test_cmp expect-gitfile actual-gitfile && - git -C main/sub rev-parse HEAD >expect-head-main && - git -C checkout-recurse checkout --recurse-submodules HEAD~1 && - cat checkout-recurse/sub/.git >actual-gitfile && - git -C main/sub rev-parse HEAD >actual-head-main && - test_cmp expect-gitfile actual-gitfile && - test_cmp expect-head-main actual-head-main - -Preparing worktree (detached HEAD d717f19) -HEAD is now at d717f19 sub updated -Cloning into '/build/git-2.30.2/t/trash directory.t2405-worktree-submodule/checkout-recurse/sub'... -done. -Submodule path 'sub': checked out '782979677c1932d3806e9adc80194f805c02f4f3' -Previous HEAD position was d717f19 sub updated -HEAD is now at 322c452 add sub -ok 9 - checkout --recurse-submodules uses $GIT_DIR for submodules in a linked worktree - -expecting success of 2405.10 'core.worktree is removed in $GIT_DIR/modules//config, not in $GIT_COMMON_DIR/modules//config': - echo "../../../sub" >expect-main && - git -C main/sub config --get core.worktree >actual-main && - test_cmp expect-main actual-main && - echo "../../../../../../checkout-recurse/sub" >expect-linked && - git -C checkout-recurse/sub config --get core.worktree >actual-linked && - test_cmp expect-linked actual-linked && - git -C checkout-recurse checkout --recurse-submodules first && - test_expect_code 1 git -C main/.git/worktrees/checkout-recurse/modules/sub config --get core.worktree >linked-config && - test_must_be_empty linked-config && - git -C main/sub config --get core.worktree >actual-main && - test_cmp expect-main actual-main - -Previous HEAD position was 322c452 add sub -HEAD is now at 1e96f59 first -ok 10 - core.worktree is removed in $GIT_DIR/modules//config, not in $GIT_COMMON_DIR/modules//config - -expecting success of 2405.11 'unsetting core.worktree does not prevent running commands directly against the submodule repository': - git -C main/.git/worktrees/checkout-recurse/modules/sub log - -commit 69af1687b671131ed0cfa61b7fcdc907a4c21f2c -Author: A U Thor -Date: Thu Apr 7 15:13:13 2005 -0700 - - file1 -ok 11 - unsetting core.worktree does not prevent running commands directly against the submodule repository - -# still have 1 known breakage(s) -# passed all remaining 10 test(s) -1..11 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t2406-worktree-repair.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2406-worktree-repair/.git/ -expecting success of 2406.1 'setup': - test_commit init +*** t3004-ls-files-basic.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3004-ls-files-basic/.git/ +expecting success of 3004.1 'ls-files in empty repository': + git ls-files >actual && + test_must_be_empty actual -[master (root-commit) 2519212] init - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 init.t -ok 1 - setup +ok 1 - ls-files in empty repository -expecting success of 2406.2 'skip missing worktree': - test_when_finished "git worktree prune" && - git worktree add --detach missing && - rm -rf missing && - git worktree repair >out 2>err && - test_must_be_empty out && - test_must_be_empty err +expecting success of 3004.2 'ls-files with nonexistent path': + git ls-files doesnotexist >actual && + test_must_be_empty actual -Preparing worktree (detached HEAD 2519212) -HEAD is now at 2519212 init -ok 2 - skip missing worktree +ok 2 - ls-files with nonexistent path -expecting success of 2406.3 'worktree path not directory': - test_when_finished "git worktree prune" && - git worktree add --detach notdir && - rm -rf notdir && - >notdir && - test_must_fail git worktree repair >out 2>err && - test_must_be_empty out && - test_i18ngrep "not a directory" err +expecting success of 3004.3 'ls-files with nonsense option': + test_expect_code 129 git ls-files --nonsense 2>actual && + test_i18ngrep "[Uu]sage: git ls-files" actual -Preparing worktree (detached HEAD 2519212) -HEAD is now at 2519212 init checking prerequisite: C_LOCALE_OUTPUT mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && @@ -80408,302 +79076,18 @@ ) prerequisite C_LOCALE_OUTPUT ok -error: not a directory: /build/git-2.30.2/t/trash directory.t2406-worktree-repair/notdir -ok 3 - worktree path not directory - -expecting success of 2406.4 'don't clobber .git repo': - test_when_finished "rm -rf repo && git worktree prune" && - git worktree add --detach repo && - rm -rf repo && - test_create_repo repo && - test_must_fail git worktree repair >out 2>err && - test_must_be_empty out && - test_i18ngrep ".git is not a file" err - -Preparing worktree (detached HEAD 2519212) -HEAD is now at 2519212 init -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2406-worktree-repair/repo/.git/ -error: .git is not a file: /build/git-2.30.2/t/trash directory.t2406-worktree-repair/repo -ok 4 - don't clobber .git repo - -expecting success of 2406.5 'repair missing .git file': - test_corrupt_gitfile "rm -f corrupt/.git" ".git file broken" - -Preparing worktree (detached HEAD 2519212) -HEAD is now at 2519212 init -repair: .git file broken: /build/git-2.30.2/t/trash directory.t2406-worktree-repair/corrupt -ok 5 - repair missing .git file - -expecting success of 2406.6 'repair bogus .git file': - test_corrupt_gitfile "echo \"gitdir: /nowhere\" >corrupt/.git" \ - ".git file broken" - -Preparing worktree (detached HEAD 2519212) -HEAD is now at 2519212 init -repair: .git file broken: /build/git-2.30.2/t/trash directory.t2406-worktree-repair/corrupt -ok 6 - repair bogus .git file - -expecting success of 2406.7 'repair incorrect .git file': - test_when_finished "rm -rf other && git worktree prune" && - test_create_repo other && - other=$(git -C other rev-parse --absolute-git-dir) && - test_corrupt_gitfile "echo \"gitdir: $other\" >corrupt/.git" \ - ".git file incorrect" - -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2406-worktree-repair/other/.git/ -Preparing worktree (detached HEAD 2519212) -HEAD is now at 2519212 init -repair: .git file incorrect: /build/git-2.30.2/t/trash directory.t2406-worktree-repair/corrupt -ok 7 - repair incorrect .git file - -expecting success of 2406.8 'repair .git file from main/.git': - test_corrupt_gitfile "rm -f corrupt/.git" ".git file broken" .git - -Preparing worktree (detached HEAD 2519212) -HEAD is now at 2519212 init -repair: .git file broken: /build/git-2.30.2/t/trash directory.t2406-worktree-repair/corrupt -ok 8 - repair .git file from main/.git - -expecting success of 2406.9 'repair .git file from linked worktree': - test_when_finished "rm -rf other && git worktree prune" && - git worktree add --detach other && - test_corrupt_gitfile "rm -f corrupt/.git" ".git file broken" other - -Preparing worktree (detached HEAD 2519212) -HEAD is now at 2519212 init -Preparing worktree (detached HEAD 2519212) -HEAD is now at 2519212 init -repair: .git file broken: /build/git-2.30.2/t/trash directory.t2406-worktree-repair/corrupt -ok 9 - repair .git file from linked worktree - -expecting success of 2406.10 'repair .git file from bare.git': - test_when_finished "rm -rf bare.git corrupt && git worktree prune" && - git clone --bare . bare.git && - git -C bare.git worktree add --detach ../corrupt && - git -C corrupt rev-parse --absolute-git-dir >expect && - rm -f corrupt/.git && - git -C bare.git worktree repair && - git -C corrupt rev-parse --absolute-git-dir >actual && - test_cmp expect actual - -Cloning into bare repository 'bare.git'... -done. -Preparing worktree (detached HEAD 2519212) -HEAD is now at 2519212 init -repair: .git file broken: /build/git-2.30.2/t/trash directory.t2406-worktree-repair/corrupt -ok 10 - repair .git file from bare.git - -expecting success of 2406.11 'invalid worktree path': - test_must_fail git worktree repair /notvalid >out 2>err && - test_must_be_empty out && - test_i18ngrep "not a valid path" err - -error: not a valid path: /notvalid -ok 11 - invalid worktree path - -expecting success of 2406.12 'repo not found; .git not file': - test_when_finished "rm -rf not-a-worktree" && - test_create_repo not-a-worktree && - test_must_fail git worktree repair not-a-worktree >out 2>err && - test_must_be_empty out && - test_i18ngrep ".git is not a file" err - -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2406-worktree-repair/not-a-worktree/.git/ -error: unable to locate repository; .git is not a file: /build/git-2.30.2/t/trash directory.t2406-worktree-repair/not-a-worktree/.git -ok 12 - repo not found; .git not file - -expecting success of 2406.13 'repo not found; .git file broken': - test_when_finished "rm -rf orig moved && git worktree prune" && - git worktree add --detach orig && - echo /invalid >orig/.git && - mv orig moved && - test_must_fail git worktree repair moved >out 2>err && - test_must_be_empty out && - test_i18ngrep ".git file broken" err - -Preparing worktree (detached HEAD 2519212) -HEAD is now at 2519212 init -error: unable to locate repository; .git file broken: /build/git-2.30.2/t/trash directory.t2406-worktree-repair/moved/.git -ok 13 - repo not found; .git file broken - -expecting success of 2406.14 'repair broken gitdir': - test_when_finished "rm -rf orig moved && git worktree prune" && - git worktree add --detach orig && - sed s,orig/\.git$,moved/.git, .git/worktrees/orig/gitdir >expect && - rm .git/worktrees/orig/gitdir && - mv orig moved && - git worktree repair moved >out 2>err && - test_cmp expect .git/worktrees/orig/gitdir && - test_i18ngrep "gitdir unreadable" out && - test_must_be_empty err - -Preparing worktree (detached HEAD 2519212) -HEAD is now at 2519212 init -repair: gitdir unreadable: /build/git-2.30.2/t/trash directory.t2406-worktree-repair/.git/worktrees/orig/gitdir -ok 14 - repair broken gitdir - -expecting success of 2406.15 'repair incorrect gitdir': - test_when_finished "rm -rf orig moved && git worktree prune" && - git worktree add --detach orig && - sed s,orig/\.git$,moved/.git, .git/worktrees/orig/gitdir >expect && - mv orig moved && - git worktree repair moved >out 2>err && - test_cmp expect .git/worktrees/orig/gitdir && - test_i18ngrep "gitdir incorrect" out && - test_must_be_empty err - -Preparing worktree (detached HEAD 2519212) -HEAD is now at 2519212 init -repair: gitdir incorrect: /build/git-2.30.2/t/trash directory.t2406-worktree-repair/.git/worktrees/orig/gitdir -ok 15 - repair incorrect gitdir - -expecting success of 2406.16 'repair gitdir (implicit) from linked worktree': - test_when_finished "rm -rf orig moved && git worktree prune" && - git worktree add --detach orig && - sed s,orig/\.git$,moved/.git, .git/worktrees/orig/gitdir >expect && - mv orig moved && - git -C moved worktree repair >out 2>err && - test_cmp expect .git/worktrees/orig/gitdir && - test_i18ngrep "gitdir incorrect" out && - test_must_be_empty err - -Preparing worktree (detached HEAD 2519212) -HEAD is now at 2519212 init -repair: gitdir incorrect: /build/git-2.30.2/t/trash directory.t2406-worktree-repair/.git/worktrees/orig/gitdir -ok 16 - repair gitdir (implicit) from linked worktree - -expecting success of 2406.17 'unable to repair gitdir (implicit) from main worktree': - test_when_finished "rm -rf orig moved && git worktree prune" && - git worktree add --detach orig && - cat .git/worktrees/orig/gitdir >expect && - mv orig moved && - git worktree repair >out 2>err && - test_cmp expect .git/worktrees/orig/gitdir && - test_must_be_empty out && - test_must_be_empty err - -Preparing worktree (detached HEAD 2519212) -HEAD is now at 2519212 init -ok 17 - unable to repair gitdir (implicit) from main worktree - -expecting success of 2406.18 'repair multiple gitdir files': - test_when_finished "rm -rf orig1 orig2 moved1 moved2 && - git worktree prune" && - git worktree add --detach orig1 && - git worktree add --detach orig2 && - sed s,orig1/\.git$,moved1/.git, .git/worktrees/orig1/gitdir >expect1 && - sed s,orig2/\.git$,moved2/.git, .git/worktrees/orig2/gitdir >expect2 && - mv orig1 moved1 && - mv orig2 moved2 && - git worktree repair moved1 moved2 >out 2>err && - test_cmp expect1 .git/worktrees/orig1/gitdir && - test_cmp expect2 .git/worktrees/orig2/gitdir && - test_i18ngrep "gitdir incorrect:.*orig1/gitdir$" out && - test_i18ngrep "gitdir incorrect:.*orig2/gitdir$" out && - test_must_be_empty err - -Preparing worktree (detached HEAD 2519212) -HEAD is now at 2519212 init -Preparing worktree (detached HEAD 2519212) -HEAD is now at 2519212 init -repair: gitdir incorrect: /build/git-2.30.2/t/trash directory.t2406-worktree-repair/.git/worktrees/orig1/gitdir -repair: gitdir incorrect: /build/git-2.30.2/t/trash directory.t2406-worktree-repair/.git/worktrees/orig2/gitdir -ok 18 - repair multiple gitdir files - -# passed all 18 test(s) -1..18 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t3000-ls-files-others.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3000-ls-files-others/.git/ -expecting success of 3000.1 'setup ': - date >path0 && - if test_have_prereq SYMLINKS - then - ln -s xyzzy path1 - else - date >path1 - fi && - mkdir path2 path3 path4 && - date >path2/file2 && - date >path2-junk && - date >path3/file3 && - date >path3-junk && - git update-index --add path3-junk path3/file3 - -checking prerequisite: SYMLINKS - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && - # test whether the filesystem supports symbolic links - ln -s x y && test -h y - -) -prerequisite SYMLINKS ok -ok 1 - setup - -expecting success of 3000.2 'setup: expected output': - cat >expected1 <<-\EOF && - expected1 - expected2 - expected3 - output - path0 - path1 - path2-junk - path2/file2 - EOF - - sed -e "s|path2/file2|path2/|" expected2 && - cp expected2 expected3 && - echo path4/ >>expected2 - -ok 2 - setup: expected output - -expecting success of 3000.3 'ls-files --others': - git ls-files --others >output && - test_cmp expected1 output - -ok 3 - ls-files --others - -expecting success of 3000.4 'ls-files --others --directory': - git ls-files --others --directory >output && - test_cmp expected2 output - -ok 4 - ls-files --others --directory - -expecting success of 3000.5 '--no-empty-directory hides empty directory': - git ls-files --others --directory --no-empty-directory >output && - test_cmp expected3 output - -ok 5 - --no-empty-directory hides empty directory - -expecting success of 3000.6 'ls-files --others handles non-submodule .git': - mkdir not-a-submodule && - echo foo >not-a-submodule/.git && - git ls-files -o >output && - test_cmp expected1 output - -ok 6 - ls-files --others handles non-submodule .git +usage: git ls-files [] [...] +ok 3 - ls-files with nonsense option -expecting success of 3000.7 'ls-files --others with symlinked submodule': - git init super && - git init sub && - ( - cd sub && - >a && - git add a && - git commit -m sub && - git pack-refs --all - ) && +expecting success of 3004.4 'ls-files -h in corrupt repository': + mkdir broken && ( - cd super && - "$SHELL_PATH" "$TEST_DIRECTORY/../contrib/workdir/git-new-workdir" ../sub sub && - git ls-files --others --exclude-standard >../actual + cd broken && + git init && + >.git/index && + test_expect_code 129 git ls-files -h >usage 2>&1 ) && - echo sub/ >expect && - test_cmp expect actual + test_i18ngrep "[Uu]sage: git ls-files " broken/usage hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all @@ -80715,546 +79099,82 @@ hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3000-ls-files-others/super/.git/ -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3000-ls-files-others/sub/.git/ -[master (root-commit) 8c0a349] sub - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - create mode 100644 a -ok 7 - ls-files --others with symlinked submodule - -expecting success of 3000.8 'setup nested pathspec search': - test_create_repo nested && - ( - cd nested && - - mkdir -p partially_tracked/untracked_dir && - > partially_tracked/content && - > partially_tracked/untracked_dir/file && - - mkdir -p untracked/deep && - > untracked/deep/path && - > untracked/deep/foo.c && - - git add partially_tracked/content - ) - -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3000-ls-files-others/nested/.git/ -ok 8 - setup nested pathspec search - -expecting success of 3000.9 'ls-files -o --directory with single deep dir pathspec': - ( - cd nested && - - git ls-files -o --directory untracked/deep/ >actual && - - cat <<-EOF >expect && - untracked/deep/ - EOF - - test_cmp expect actual - ) - -ok 9 - ls-files -o --directory with single deep dir pathspec - -expecting success of 3000.10 'ls-files -o --directory with multiple dir pathspecs': - ( - cd nested && - - git ls-files -o --directory partially_tracked/ untracked/ >actual && - - cat <<-EOF >expect && - partially_tracked/untracked_dir/ - untracked/ - EOF - - test_cmp expect actual - ) - -ok 10 - ls-files -o --directory with multiple dir pathspecs - -expecting success of 3000.11 'ls-files -o --directory with mix dir/file pathspecs': - ( - cd nested && - - git ls-files -o --directory partially_tracked/ untracked/deep/path >actual && - - cat <<-EOF >expect && - partially_tracked/untracked_dir/ - untracked/deep/path - EOF - - test_cmp expect actual - ) - -ok 11 - ls-files -o --directory with mix dir/file pathspecs - -expecting success of 3000.12 'ls-files -o --directory with glob filetype match': - ( - cd nested && - - # globs kinda defeat --directory, but only for that pathspec - git ls-files --others --directory partially_tracked "untracked/*.c" >actual && - - cat <<-EOF >expect && - partially_tracked/untracked_dir/ - untracked/deep/foo.c - EOF - - test_cmp expect actual - ) - -ok 12 - ls-files -o --directory with glob filetype match - -expecting success of 3000.13 'ls-files -o --directory with mix of tracked states': - ( - cd nested && - - # globs kinda defeat --directory, but only for that pathspec - git ls-files --others --directory partially_tracked/ "untracked/?*" >actual && - - cat <<-EOF >expect && - partially_tracked/untracked_dir/ - untracked/deep/ - EOF - - test_cmp expect actual - ) - -ok 13 - ls-files -o --directory with mix of tracked states - -expecting success of 3000.14 'ls-files -o --directory with glob filetype match only': - ( - cd nested && - - git ls-files --others --directory "untracked/*.c" >actual && - - cat <<-EOF >expect && - untracked/deep/foo.c - EOF - - test_cmp expect actual - ) - -ok 14 - ls-files -o --directory with glob filetype match only - -expecting success of 3000.15 'ls-files -o --directory to get immediate paths under one dir only': - ( - cd nested && - - git ls-files --others --directory "untracked/?*" >actual && +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3004-ls-files-basic/broken/.git/ +usage: git ls-files [] [...] +ok 4 - ls-files -h in corrupt repository - cat <<-EOF >expect && - untracked/deep/ - EOF +checking prerequisite: SYMLINKS - test_cmp expect actual - ) +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && + # test whether the filesystem supports symbolic links + ln -s x y && test -h y -ok 15 - ls-files -o --directory to get immediate paths under one dir only +) +prerequisite SYMLINKS ok +expecting success of 3004.5 'ls-files with absolute paths to symlinks': + mkdir subs && + ln -s nosuch link && + ln -s ../nosuch subs/link && + git add link subs/link && + git ls-files -s link subs/link >expect && + git ls-files -s "$(pwd)/link" "$(pwd)/subs/link" >actual && + test_cmp expect actual && -expecting success of 3000.16 'ls-files -o avoids listing untracked non-matching gitdir': - test_when_finished "rm -rf nested/untracked/deep/empty" && ( - cd nested && - - git init untracked/deep/empty && - git ls-files --others "untracked/*.c" >actual && - - cat <<-EOF >expect && - untracked/deep/foo.c - EOF - - test_cmp expect actual - ) + cd subs && + git ls-files -s link >../expect && + git ls-files -s "$(pwd)/link" >../actual + ) && + test_cmp expect actual -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3000-ls-files-others/nested/untracked/deep/empty/.git/ -ok 16 - ls-files -o avoids listing untracked non-matching gitdir +ok 5 - ls-files with absolute paths to symlinks -# passed all 16 test(s) -1..16 +# passed all 5 test(s) +1..5 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t3001-ls-files-others-exclude.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3001-ls-files-others-exclude/.git/ -expecting success of 3001.1 'git ls-files --others with various exclude options.': git ls-files --others \ - --exclude=\*.6 \ - --exclude-per-directory=.gitignore \ - --exclude-from=.git/ignore \ - >output && - test_cmp expect output -ok 1 - git ls-files --others with various exclude options. - -expecting success of 3001.2 'git ls-files --others with \r\n line endings.': git ls-files --others \ - --exclude=\*.6 \ - --exclude-per-directory=.gitignore \ - --exclude-from=.git/ignore \ - >output && - test_cmp expect output -ok 2 - git ls-files --others with \r\n line endings. - -expecting success of 3001.3 'setup skip-worktree gitignore': - git add $allignores && - git update-index --skip-worktree $allignores && - rm $allignores - -ok 3 - setup skip-worktree gitignore - -expecting success of 3001.4 'git ls-files --others with various exclude options.': git ls-files --others \ - --exclude=\*.6 \ - --exclude-per-directory=.gitignore \ - --exclude-from=.git/ignore \ - >output && - test_cmp expect output -ok 4 - git ls-files --others with various exclude options. - -expecting success of 3001.5 'restore gitignore': - git checkout --ignore-skip-worktree-bits $allignores && - rm .git/index - -Updated 3 paths from the index -ok 5 - restore gitignore - -expecting success of 3001.6 'git status honors core.excludesfile': test_cmp expect output -ok 6 - git status honors core.excludesfile - -expecting success of 3001.7 'trailing slash in exclude allows directory match(1)': - - git ls-files --others --exclude=one/ >output && - if grep "^one/" output - then - echo Ooops - false - else - : happy - fi - - -ok 7 - trailing slash in exclude allows directory match(1) - -expecting success of 3001.8 'trailing slash in exclude allows directory match (2)': - - git ls-files --others --exclude=one/two/ >output && - if grep "^one/two/" output - then - echo Ooops - false - else - : happy - fi - - -ok 8 - trailing slash in exclude allows directory match (2) - -expecting success of 3001.9 'trailing slash in exclude forces directory match (1)': - - >two && - git ls-files --others --exclude=two/ >output && - grep "^two" output - - -two -ok 9 - trailing slash in exclude forces directory match (1) - -expecting success of 3001.10 'trailing slash in exclude forces directory match (2)': - - git ls-files --others --exclude=one/a.1/ >output && - grep "^one/a.1" output - - -one/a.1 -ok 10 - trailing slash in exclude forces directory match (2) - -expecting success of 3001.11 'negated exclude matches can override previous ones': - - git ls-files --others --exclude="a.*" --exclude="!a.1" >output && - grep "^a.1" output - -a.1 -ok 11 - negated exclude matches can override previous ones - -expecting success of 3001.12 'excluded directory overrides content patterns': - - git ls-files --others --exclude="one" --exclude="!one/a.1" >output && - if grep "^one/a.1" output - then - false - fi - -ok 12 - excluded directory overrides content patterns - -expecting success of 3001.13 'negated directory doesn't affect content patterns': - - git ls-files --others --exclude="!one" --exclude="one/a.1" >output && - if grep "^one/a.1" output - then - false - fi - -ok 13 - negated directory doesn't affect content patterns - -expecting success of 3001.14 'subdirectory ignore (setup)': - mkdir -p top/l1/l2 && - ( - cd top && - git init && - echo /.gitignore >.gitignore && - echo l1 >>.gitignore && - echo l2 >l1/.gitignore && - >l1/l2/l1 - ) - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3001-ls-files-others-exclude/top/.git/ -ok 14 - subdirectory ignore (setup) - -expecting success of 3001.15 'subdirectory ignore (toplevel)': - ( - cd top && - git ls-files -o --exclude-standard - ) >actual && - test_must_be_empty actual - -ok 15 - subdirectory ignore (toplevel) - -expecting success of 3001.16 'subdirectory ignore (l1/l2)': - ( - cd top/l1/l2 && - git ls-files -o --exclude-standard - ) >actual && - test_must_be_empty actual - -ok 16 - subdirectory ignore (l1/l2) - -expecting success of 3001.17 'subdirectory ignore (l1)': - ( - cd top/l1 && - git ls-files -o --exclude-standard - ) >actual && - test_must_be_empty actual - -ok 17 - subdirectory ignore (l1) - -expecting success of 3001.18 'show/hide empty ignored directory (setup)': - rm top/l1/l2/l1 && - rm top/l1/.gitignore - -ok 18 - show/hide empty ignored directory (setup) - -expecting success of 3001.19 'show empty ignored directory with --directory': - ( - cd top && - git ls-files -o -i --exclude l1 --directory - ) >actual && - echo l1/ >expect && - test_cmp expect actual - -ok 19 - show empty ignored directory with --directory +*** t3006-ls-files-long.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3006-ls-files-long/.git/ +expecting success of 3006.1 'setup': + p=filefilefilefilefilefilefilefile && + p=$p$p$p$p$p$p$p$p$p$p$p$p$p$p$p$p && + p=$p$p$p$p$p$p$p$p$p$p$p$p$p$p$p$p && -expecting success of 3001.20 'hide empty ignored directory with --no-empty-directory': - ( - cd top && - git ls-files -o -i --exclude l1 --directory --no-empty-directory - ) >actual && - test_must_be_empty actual + path_a=${p}_a && + path_z=${p}_z && -ok 20 - hide empty ignored directory with --no-empty-directory + blob_a=$(echo frotz | git hash-object -w --stdin) && + blob_z=$(echo nitfol | git hash-object -w --stdin) && -expecting success of 3001.21 'show/hide empty ignored sub-directory (setup)': - > top/l1/tracked && - ( - cd top && - git add -f l1/tracked - ) + pat="100644 %s 0\t%s\n" -ok 21 - show/hide empty ignored sub-directory (setup) +ok 1 - setup -expecting success of 3001.22 'show empty ignored sub-directory with --directory': - ( - cd top && - git ls-files -o -i --exclude l1 --directory - ) >actual && - echo l1/l2/ >expect && +expecting success of 3006.2 'overly-long path by itself is not a problem': + printf "$pat" "$blob_a" "$path_a" | + git update-index --add --index-info && + echo "$path_a" >expect && + git ls-files >actual && test_cmp expect actual -ok 22 - show empty ignored sub-directory with --directory +ok 2 - overly-long path by itself is not a problem -expecting success of 3001.23 'hide empty ignored sub-directory with --no-empty-directory': +expecting success of 3006.3 'overly-long path does not replace another by mistake': + printf "$pat" "$blob_a" "$path_a" "$blob_z" "$path_z" | + git update-index --add --index-info && ( - cd top && - git ls-files -o -i --exclude l1 --directory --no-empty-directory - ) >actual && - test_must_be_empty actual - -ok 23 - hide empty ignored sub-directory with --no-empty-directory - -expecting success of 3001.24 'pattern matches prefix completely': - git ls-files -i -o --exclude "/three/a.3[abc]" >actual && - test_must_be_empty actual - -ok 24 - pattern matches prefix completely - -expecting success of 3001.25 'ls-files with "**" patterns': - cat <<\EOF >expect && -a.1 -one/a.1 -one/two/a.1 -three/a.1 -EOF - git ls-files -o -i --exclude "**/a.1" >actual && + echo "$path_a" && + echo "$path_z" + ) >expect && + git ls-files >actual && test_cmp expect actual -ok 25 - ls-files with "**" patterns - -expecting success of 3001.26 'ls-files with "**" patterns and no slashes': - git ls-files -o -i --exclude "one**a.1" >actual && - test_must_be_empty actual - -ok 26 - ls-files with "**" patterns and no slashes - -# passed all 26 test(s) -1..26 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t3002-ls-files-dashpath.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3002-ls-files-dashpath/.git/ -expecting success of 3002.1 'setup': echo frotz >path0 && - echo frotz >./-foo && - echo frotz >./-- -ok 1 - setup - -expecting success of 3002.2 'git ls-files without path restriction.': git ls-files --others >output && - test_cmp output - <output && - test_cmp output - <output && - test_cmp output - <output && - test_cmp output - <output && - test_cmp output - <file && - git add file && - git commit -m file && - echo modification >file - -[master (root-commit) 39caa03] file - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -ok 1 - create repo with file - -expecting success of 3003.2 'ls-files output contains file (cached)': - echo 'file' >expect && - git ls-files --exclude-standard --cached >output && - test_cmp expect output - -ok 2 - ls-files output contains file (cached) - -expecting success of 3003.3 'ls-files output contains file (modified)': - echo 'file' >expect && - git ls-files --exclude-standard --modified >output && - test_cmp expect output - -ok 3 - ls-files output contains file (modified) - -expecting success of 3003.4 'add file to gitignore': - echo file >.gitignore - -ok 4 - add file to gitignore - -expecting success of 3003.5 'ls-files output contains file (cached)': - echo 'file' >expect && - git ls-files --exclude-standard --cached >output && - test_cmp expect output - -ok 5 - ls-files output contains file (cached) - -expecting success of 3003.6 'ls-files output contains file (modified)': - echo 'file' >expect && - git ls-files --exclude-standard --modified >output && - test_cmp expect output - -ok 6 - ls-files output contains file (modified) - -expecting success of 3003.7 'ls-files -i lists only tracked-but-ignored files': - echo content >other-file && - git add other-file && - echo file >expect && - git ls-files -i --exclude-standard >output && - test_cmp expect output - -ok 7 - ls-files -i lists only tracked-but-ignored files +ok 3 - overly-long path does not replace another by mistake -# passed all 7 test(s) -1..7 +# passed all 3 test(s) +1..3 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' *** t3005-ls-files-relative.sh *** @@ -81343,132 +79263,24 @@ 1..4 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t3004-ls-files-basic.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3004-ls-files-basic/.git/ -expecting success of 3004.1 'ls-files in empty repository': - git ls-files >actual && - test_must_be_empty actual - -ok 1 - ls-files in empty repository - -expecting success of 3004.2 'ls-files with nonexistent path': - git ls-files doesnotexist >actual && - test_must_be_empty actual - -ok 2 - ls-files with nonexistent path - -expecting success of 3004.3 'ls-files with nonsense option': - test_expect_code 129 git ls-files --nonsense 2>actual && - test_i18ngrep "[Uu]sage: git ls-files" actual - -checking prerequisite: C_LOCALE_OUTPUT - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false - -) -prerequisite C_LOCALE_OUTPUT ok -usage: git ls-files [] [...] -ok 3 - ls-files with nonsense option - -expecting success of 3004.4 'ls-files -h in corrupt repository': - mkdir broken && - ( - cd broken && - git init && - >.git/index && - test_expect_code 129 git ls-files -h >usage 2>&1 - ) && - test_i18ngrep "[Uu]sage: git ls-files " broken/usage - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3004-ls-files-basic/broken/.git/ -usage: git ls-files [] [...] -ok 4 - ls-files -h in corrupt repository - -checking prerequisite: SYMLINKS - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && - # test whether the filesystem supports symbolic links - ln -s x y && test -h y - -) -prerequisite SYMLINKS ok -expecting success of 3004.5 'ls-files with absolute paths to symlinks': - mkdir subs && - ln -s nosuch link && - ln -s ../nosuch subs/link && - git add link subs/link && - git ls-files -s link subs/link >expect && - git ls-files -s "$(pwd)/link" "$(pwd)/subs/link" >actual && - test_cmp expect actual && - - ( - cd subs && - git ls-files -s link >../expect && - git ls-files -s "$(pwd)/link" >../actual - ) && - test_cmp expect actual - -ok 5 - ls-files with absolute paths to symlinks - -# passed all 5 test(s) -1..5 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t3006-ls-files-long.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3006-ls-files-long/.git/ -expecting success of 3006.1 'setup': - p=filefilefilefilefilefilefilefile && - p=$p$p$p$p$p$p$p$p$p$p$p$p$p$p$p$p && - p=$p$p$p$p$p$p$p$p$p$p$p$p$p$p$p$p && - - path_a=${p}_a && - path_z=${p}_z && - - blob_a=$(echo frotz | git hash-object -w --stdin) && - blob_z=$(echo nitfol | git hash-object -w --stdin) && - - pat="100644 %s 0\t%s\n" - -ok 1 - setup - -expecting success of 3006.2 'overly-long path by itself is not a problem': - printf "$pat" "$blob_a" "$path_a" | - git update-index --add --index-info && - echo "$path_a" >expect && - git ls-files >actual && - test_cmp expect actual - -ok 2 - overly-long path by itself is not a problem - -expecting success of 3006.3 'overly-long path does not replace another by mistake': - printf "$pat" "$blob_a" "$path_a" "$blob_z" "$path_z" | - git update-index --add --index-info && +*** t3008-ls-files-lazy-init-name-hash.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3008-ls-files-lazy-init-name-hash/.git/ +expecting success of 3008.1 'no buffer overflow in lazy_init_name_hash': ( - echo "$path_a" && - echo "$path_z" - ) >expect && - git ls-files >actual && - test_cmp expect actual + test_seq $LAZY_THREAD_COST | sed "s/^/a_/" && + echo b/b/b && + test_seq $LAZY_THREAD_COST | sed "s/^/c_/" && + test_seq 50 | sed "s/^/d_/" | tr "\n" "/" && echo d + ) | + sed "s/^/100644 $EMPTY_BLOB /" | + git update-index --index-info && + test-tool lazy-init-name-hash -m -ok 3 - overly-long path does not replace another by mistake +0.002547 0.042044 4002 multi 2 +ok 1 - no buffer overflow in lazy_init_name_hash -# passed all 3 test(s) -1..3 +# passed all 1 test(s) +1..1 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' *** t3009-ls-files-others-nonsubmodule.sh *** @@ -81556,26 +79368,6 @@ 1..2 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t3008-ls-files-lazy-init-name-hash.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3008-ls-files-lazy-init-name-hash/.git/ -expecting success of 3008.1 'no buffer overflow in lazy_init_name_hash': - ( - test_seq $LAZY_THREAD_COST | sed "s/^/a_/" && - echo b/b/b && - test_seq $LAZY_THREAD_COST | sed "s/^/c_/" && - test_seq 50 | sed "s/^/d_/" | tr "\n" "/" && echo d - ) | - sed "s/^/100644 $EMPTY_BLOB /" | - git update-index --index-info && - test-tool lazy-init-name-hash -m - -0.001648 0.001473 4002 multi 2 -ok 1 - no buffer overflow in lazy_init_name_hash - -# passed all 1 test(s) -1..1 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' *** t3010-ls-files-killed-modified.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3010-ls-files-killed-modified/.git/ expecting success of 3010.1 'git update-index --add to add various paths.': @@ -81943,8 +79735,8 @@ git ls-files -o "untracked_*/" >actual && test_cmp expect actual ---- expect 2023-04-29 16:19:46.431546297 +0000 -+++ actual 2023-04-29 16:19:46.435545900 +0000 +--- expect 2023-04-29 17:50:53.820378457 +0000 ++++ actual 2023-04-29 17:50:53.856375042 +0000 @@ -1,3 +1,2 @@ untracked_*/empty -untracked_dir/empty @@ -81998,123 +79790,6 @@ 1..21 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t3050-subprojects-fetch.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3050-subprojects-fetch/.git/ -expecting success of 3050.1 'setup': - test_tick && - mkdir -p sub && ( - cd sub && - git init && - >subfile && - git add subfile && - git commit -m "subproject commit #1" - ) && - >mainfile && - git add sub mainfile && - test_tick && - git commit -m "superproject commit #1" - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3050-subprojects-fetch/sub/.git/ -[master (root-commit) 4c0c877] subproject commit #1 - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - create mode 100644 subfile -warning: adding embedded git repository: sub -hint: You've added another git repository inside your current repository. -hint: Clones of the outer repository will not contain the contents of -hint: the embedded repository and will not know how to obtain it. -hint: If you meant to add a submodule, use: -hint: -hint: git submodule add sub -hint: -hint: If you added this path by mistake, you can remove it from the -hint: index with: -hint: -hint: git rm --cached sub -hint: -hint: See "git help submodule" for more information. -[master (root-commit) 1226c2e] superproject commit #1 - Author: A U Thor - 2 files changed, 1 insertion(+) - create mode 100644 mainfile - create mode 160000 sub -ok 1 - setup - -expecting success of 3050.2 'clone': - git clone "file://$(pwd)/.git" cloned && - (git rev-parse HEAD && git ls-files -s) >expected && - ( - cd cloned && - (git rev-parse HEAD && git ls-files -s) >../actual - ) && - test_cmp expected actual - -Cloning into 'cloned'... -ok 2 - clone - -expecting success of 3050.3 'advance': - echo more >mainfile && - git update-index --force-remove sub && - mv sub/.git sub/.git-disabled && - git add sub/subfile mainfile && - mv sub/.git-disabled sub/.git && - test_tick && - git commit -m "superproject commit #2" - -[master 1548ecd] superproject commit #2 - Author: A U Thor - 3 files changed, 1 insertion(+), 1 deletion(-) - delete mode 160000 sub - create mode 100644 sub/subfile -ok 3 - advance - -expecting success of 3050.4 'fetch': - (git rev-parse HEAD && git ls-files -s) >expected && - ( - cd cloned && - git pull && - (git rev-parse HEAD && git ls-files -s) >../actual - ) && - test_cmp expected actual - -hint: Pulling without specifying how to reconcile divergent branches is -hint: discouraged. You can squelch this message by running one of the following -hint: commands sometime before your next pull: -hint: -hint: git config pull.rebase false # merge (the default strategy) -hint: git config pull.rebase true # rebase -hint: git config pull.ff only # fast-forward only -hint: -hint: You can replace "git config" with "git config --global" to set a default -hint: preference for all repositories. You can also pass --rebase, --no-rebase, -hint: or --ff-only on the command line to override the configured default per -hint: invocation. -From file:///build/git-2.30.2/t/trash directory.t3050-subprojects-fetch/ - 1226c2e..1548ecd master -> origin/master -Updating 1226c2e..1548ecd -Fast-forward - mainfile | 1 + - sub | 1 - - sub/subfile | 0 - 3 files changed, 1 insertion(+), 1 deletion(-) - delete mode 160000 sub - create mode 100644 sub/subfile -ok 4 - fetch - -# passed all 4 test(s) -1..4 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' *** t3007-ls-files-recurse-submodules.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3007-ls-files-recurse-submodules/.git/ expecting success of 3007.1 'setup directory structure and submodules': @@ -82549,6 +80224,123 @@ 1..21 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t3050-subprojects-fetch.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3050-subprojects-fetch/.git/ +expecting success of 3050.1 'setup': + test_tick && + mkdir -p sub && ( + cd sub && + git init && + >subfile && + git add subfile && + git commit -m "subproject commit #1" + ) && + >mainfile && + git add sub mainfile && + test_tick && + git commit -m "superproject commit #1" + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3050-subprojects-fetch/sub/.git/ +[master (root-commit) 4c0c877] subproject commit #1 + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 subfile +warning: adding embedded git repository: sub +hint: You've added another git repository inside your current repository. +hint: Clones of the outer repository will not contain the contents of +hint: the embedded repository and will not know how to obtain it. +hint: If you meant to add a submodule, use: +hint: +hint: git submodule add sub +hint: +hint: If you added this path by mistake, you can remove it from the +hint: index with: +hint: +hint: git rm --cached sub +hint: +hint: See "git help submodule" for more information. +[master (root-commit) 1226c2e] superproject commit #1 + Author: A U Thor + 2 files changed, 1 insertion(+) + create mode 100644 mainfile + create mode 160000 sub +ok 1 - setup + +expecting success of 3050.2 'clone': + git clone "file://$(pwd)/.git" cloned && + (git rev-parse HEAD && git ls-files -s) >expected && + ( + cd cloned && + (git rev-parse HEAD && git ls-files -s) >../actual + ) && + test_cmp expected actual + +Cloning into 'cloned'... +ok 2 - clone + +expecting success of 3050.3 'advance': + echo more >mainfile && + git update-index --force-remove sub && + mv sub/.git sub/.git-disabled && + git add sub/subfile mainfile && + mv sub/.git-disabled sub/.git && + test_tick && + git commit -m "superproject commit #2" + +[master 1548ecd] superproject commit #2 + Author: A U Thor + 3 files changed, 1 insertion(+), 1 deletion(-) + delete mode 160000 sub + create mode 100644 sub/subfile +ok 3 - advance + +expecting success of 3050.4 'fetch': + (git rev-parse HEAD && git ls-files -s) >expected && + ( + cd cloned && + git pull && + (git rev-parse HEAD && git ls-files -s) >../actual + ) && + test_cmp expected actual + +hint: Pulling without specifying how to reconcile divergent branches is +hint: discouraged. You can squelch this message by running one of the following +hint: commands sometime before your next pull: +hint: +hint: git config pull.rebase false # merge (the default strategy) +hint: git config pull.rebase true # rebase +hint: git config pull.ff only # fast-forward only +hint: +hint: You can replace "git config" with "git config --global" to set a default +hint: preference for all repositories. You can also pass --rebase, --no-rebase, +hint: or --ff-only on the command line to override the configured default per +hint: invocation. +From file:///build/git-2.30.2/t/trash directory.t3050-subprojects-fetch/ + 1226c2e..1548ecd master -> origin/master +Updating 1226c2e..1548ecd +Fast-forward + mainfile | 1 + + sub | 1 - + sub/subfile | 0 + 3 files changed, 1 insertion(+), 1 deletion(-) + delete mode 160000 sub + create mode 100644 sub/subfile +ok 4 - fetch + +# passed all 4 test(s) +1..4 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t3040-subprojects-basic.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3040-subprojects-basic/.git/ expecting success of 3040.1 'setup: create superproject': @@ -84397,6 +82189,7 @@ sh -c "test -t 1 && test -t 2" ) +died of signal 15 at /build/git-2.30.2/t/test-terminal.perl line 35. prerequisite TTY ok expecting success of 3203.33 '%(color) present with tty': test_terminal git branch $color_args >actual.raw && @@ -87732,230 +85525,6 @@ 1..8 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t3300-funny-names.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3300-funny-names/.git/ -expecting success of 3300.1 'setup': - cat >"$p0" <<-\EOF && - 1. A quick brown fox jumps over the lazy cat, oops dog. - 2. A quick brown fox jumps over the lazy cat, oops dog. - 3. A quick brown fox jumps over the lazy cat, oops dog. - EOF - - { cat "$p0" >"$p1" || :; } && - { echo "Foo Bar Baz" >"$p2" || :; } - -ok 1 - setup - -expecting success of 3300.2 'setup: populate index and tree': - git update-index --add "$p0" "$p2" && - t0=$(git write-tree) - -ok 2 - setup: populate index and tree - -expecting success of 3300.3 'ls-files prints space in filename verbatim': - printf "%s\n" "just space" no-funny >expected && - git ls-files >current && - test_cmp expected current - -ok 3 - ls-files prints space in filename verbatim - -expecting success of 3300.4 'setup: add funny filename': - git update-index --add "$p1" && - t1=$(git write-tree) - -ok 4 - setup: add funny filename - -expecting success of 3300.5 'ls-files quotes funny filename': - cat >expected <<-\EOF && - just space - no-funny - "tabs\t,\" (dq) and spaces" - EOF - git ls-files >current && - test_cmp expected current - -ok 5 - ls-files quotes funny filename - -expecting success of 3300.6 'ls-files -z does not quote funny filename': - cat >expected <<-\EOF && - just space - no-funny - tabs ," (dq) and spaces - EOF - git ls-files -z >ls-files.z && - perl -pe "y/\000/\012/" current && - test_cmp expected current - -ok 6 - ls-files -z does not quote funny filename - -expecting success of 3300.7 'ls-tree quotes funny filename': - cat >expected <<-\EOF && - just space - no-funny - "tabs\t,\" (dq) and spaces" - EOF - git ls-tree -r $t1 >ls-tree && - sed -e "s/^[^ ]* //" current && - test_cmp expected current - -ok 7 - ls-tree quotes funny filename - -expecting success of 3300.8 'diff-index --name-status quotes funny filename': - cat >expected <<-\EOF && - A "tabs\t,\" (dq) and spaces" - EOF - git diff-index --name-status $t0 >current && - test_cmp expected current - -ok 8 - diff-index --name-status quotes funny filename - -expecting success of 3300.9 'diff-tree --name-status quotes funny filename': - cat >expected <<-\EOF && - A "tabs\t,\" (dq) and spaces" - EOF - git diff-tree --name-status $t0 $t1 >current && - test_cmp expected current - -ok 9 - diff-tree --name-status quotes funny filename - -expecting success of 3300.10 'diff-index -z does not quote funny filename': - cat >expected <<-\EOF && - A - tabs ," (dq) and spaces - EOF - git diff-index -z --name-status $t0 >diff-index.z && - perl -pe "y/\000/\012/" current && - test_cmp expected current - -ok 10 - diff-index -z does not quote funny filename - -expecting success of 3300.11 'diff-tree -z does not quote funny filename': - cat >expected <<-\EOF && - A - tabs ," (dq) and spaces - EOF - git diff-tree -z --name-status $t0 $t1 >diff-tree.z && - perl -pe y/\\000/\\012/ current && - test_cmp expected current - -ok 11 - diff-tree -z does not quote funny filename - -expecting success of 3300.12 'diff-tree --find-copies-harder quotes funny filename': - cat >expected <<-\EOF && - CNUM no-funny "tabs\t,\" (dq) and spaces" - EOF - git diff-tree -C --find-copies-harder --name-status $t0 $t1 >out && - sed -e "s/^C[0-9]*/CNUM/" current && - test_cmp expected current - -ok 12 - diff-tree --find-copies-harder quotes funny filename - -expecting success of 3300.13 'setup: remove unfunny index entry': - git update-index --force-remove "$p0" - -ok 13 - setup: remove unfunny index entry - -expecting success of 3300.14 'diff-tree -M quotes funny filename': - cat >expected <<-\EOF && - RNUM no-funny "tabs\t,\" (dq) and spaces" - EOF - git diff-index -M --name-status $t0 >out && - sed -e "s/^R[0-9]*/RNUM/" current && - test_cmp expected current - -ok 14 - diff-tree -M quotes funny filename - -expecting success of 3300.15 'diff-index -M -p quotes funny filename': - cat >expected <<-\EOF && - diff --git a/no-funny "b/tabs\t,\" (dq) and spaces" - similarity index NUM% - rename from no-funny - rename to "tabs\t,\" (dq) and spaces" - EOF - git diff-index -M -p $t0 >diff && - sed -e "s/index [0-9]*%/index NUM%/" current && - test_cmp expected current - -ok 15 - diff-index -M -p quotes funny filename - -expecting success of 3300.16 'setup: mode change': - chmod +x "$p1" - -ok 16 - setup: mode change - -expecting success of 3300.17 'diff-index -M -p with mode change quotes funny filename': - cat >expected <<-\EOF && - diff --git a/no-funny "b/tabs\t,\" (dq) and spaces" - old mode 100644 - new mode 100755 - similarity index NUM% - rename from no-funny - rename to "tabs\t,\" (dq) and spaces" - EOF - git diff-index -M -p $t0 >diff && - sed -e "s/index [0-9]*%/index NUM%/" current && - test_cmp expected current - -ok 17 - diff-index -M -p with mode change quotes funny filename - -expecting success of 3300.18 'diffstat for rename quotes funny filename': - cat >expected <<-\EOF && - "tabs\t,\" (dq) and spaces" - 1 file changed, 0 insertions(+), 0 deletions(-) - EOF - git diff-index -M -p $t0 >diff && - git apply --stat diffstat && - sed -e "s/|.*//" -e "s/ *\$//" current && - test_i18ncmp expected current - -checking prerequisite: C_LOCALE_OUTPUT - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false - -) -prerequisite C_LOCALE_OUTPUT ok -ok 18 - diffstat for rename quotes funny filename - -expecting success of 3300.19 'numstat for rename quotes funny filename': - cat >expected <<-\EOF && - 0 0 "tabs\t,\" (dq) and spaces" - EOF - git diff-index -M -p $t0 >diff && - git apply --numstat current && - test_cmp expected current - -ok 19 - numstat for rename quotes funny filename - -expecting success of 3300.20 'numstat without -M quotes funny filename': - cat >expected <<-\EOF && - 0 3 no-funny - 3 0 "tabs\t,\" (dq) and spaces" - EOF - git diff-index -p $t0 >diff && - git apply --numstat current && - test_cmp expected current - -ok 20 - numstat without -M quotes funny filename - -expecting success of 3300.21 'numstat for non-git rename diff quotes funny filename': - cat >expected <<-\EOF && - 0 3 no-funny - 3 0 "tabs\t,\" (dq) and spaces" - EOF - git diff-index -p $t0 >git-diff && - sed -ne "/^[-+@]/p" diff && - git apply --numstat current && - test_cmp expected current - -ok 21 - numstat for non-git rename diff quotes funny filename - -# passed all 21 test(s) -1..21 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' *** t3210-pack-refs.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3210-pack-refs/.git/ expecting success of 3210.1 'enable reflogs': @@ -88275,6 +85844,230 @@ 1..30 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t3300-funny-names.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3300-funny-names/.git/ +expecting success of 3300.1 'setup': + cat >"$p0" <<-\EOF && + 1. A quick brown fox jumps over the lazy cat, oops dog. + 2. A quick brown fox jumps over the lazy cat, oops dog. + 3. A quick brown fox jumps over the lazy cat, oops dog. + EOF + + { cat "$p0" >"$p1" || :; } && + { echo "Foo Bar Baz" >"$p2" || :; } + +ok 1 - setup + +expecting success of 3300.2 'setup: populate index and tree': + git update-index --add "$p0" "$p2" && + t0=$(git write-tree) + +ok 2 - setup: populate index and tree + +expecting success of 3300.3 'ls-files prints space in filename verbatim': + printf "%s\n" "just space" no-funny >expected && + git ls-files >current && + test_cmp expected current + +ok 3 - ls-files prints space in filename verbatim + +expecting success of 3300.4 'setup: add funny filename': + git update-index --add "$p1" && + t1=$(git write-tree) + +ok 4 - setup: add funny filename + +expecting success of 3300.5 'ls-files quotes funny filename': + cat >expected <<-\EOF && + just space + no-funny + "tabs\t,\" (dq) and spaces" + EOF + git ls-files >current && + test_cmp expected current + +ok 5 - ls-files quotes funny filename + +expecting success of 3300.6 'ls-files -z does not quote funny filename': + cat >expected <<-\EOF && + just space + no-funny + tabs ," (dq) and spaces + EOF + git ls-files -z >ls-files.z && + perl -pe "y/\000/\012/" current && + test_cmp expected current + +ok 6 - ls-files -z does not quote funny filename + +expecting success of 3300.7 'ls-tree quotes funny filename': + cat >expected <<-\EOF && + just space + no-funny + "tabs\t,\" (dq) and spaces" + EOF + git ls-tree -r $t1 >ls-tree && + sed -e "s/^[^ ]* //" current && + test_cmp expected current + +ok 7 - ls-tree quotes funny filename + +expecting success of 3300.8 'diff-index --name-status quotes funny filename': + cat >expected <<-\EOF && + A "tabs\t,\" (dq) and spaces" + EOF + git diff-index --name-status $t0 >current && + test_cmp expected current + +ok 8 - diff-index --name-status quotes funny filename + +expecting success of 3300.9 'diff-tree --name-status quotes funny filename': + cat >expected <<-\EOF && + A "tabs\t,\" (dq) and spaces" + EOF + git diff-tree --name-status $t0 $t1 >current && + test_cmp expected current + +ok 9 - diff-tree --name-status quotes funny filename + +expecting success of 3300.10 'diff-index -z does not quote funny filename': + cat >expected <<-\EOF && + A + tabs ," (dq) and spaces + EOF + git diff-index -z --name-status $t0 >diff-index.z && + perl -pe "y/\000/\012/" current && + test_cmp expected current + +ok 10 - diff-index -z does not quote funny filename + +expecting success of 3300.11 'diff-tree -z does not quote funny filename': + cat >expected <<-\EOF && + A + tabs ," (dq) and spaces + EOF + git diff-tree -z --name-status $t0 $t1 >diff-tree.z && + perl -pe y/\\000/\\012/ current && + test_cmp expected current + +ok 11 - diff-tree -z does not quote funny filename + +expecting success of 3300.12 'diff-tree --find-copies-harder quotes funny filename': + cat >expected <<-\EOF && + CNUM no-funny "tabs\t,\" (dq) and spaces" + EOF + git diff-tree -C --find-copies-harder --name-status $t0 $t1 >out && + sed -e "s/^C[0-9]*/CNUM/" current && + test_cmp expected current + +ok 12 - diff-tree --find-copies-harder quotes funny filename + +expecting success of 3300.13 'setup: remove unfunny index entry': + git update-index --force-remove "$p0" + +ok 13 - setup: remove unfunny index entry + +expecting success of 3300.14 'diff-tree -M quotes funny filename': + cat >expected <<-\EOF && + RNUM no-funny "tabs\t,\" (dq) and spaces" + EOF + git diff-index -M --name-status $t0 >out && + sed -e "s/^R[0-9]*/RNUM/" current && + test_cmp expected current + +ok 14 - diff-tree -M quotes funny filename + +expecting success of 3300.15 'diff-index -M -p quotes funny filename': + cat >expected <<-\EOF && + diff --git a/no-funny "b/tabs\t,\" (dq) and spaces" + similarity index NUM% + rename from no-funny + rename to "tabs\t,\" (dq) and spaces" + EOF + git diff-index -M -p $t0 >diff && + sed -e "s/index [0-9]*%/index NUM%/" current && + test_cmp expected current + +ok 15 - diff-index -M -p quotes funny filename + +expecting success of 3300.16 'setup: mode change': + chmod +x "$p1" + +ok 16 - setup: mode change + +expecting success of 3300.17 'diff-index -M -p with mode change quotes funny filename': + cat >expected <<-\EOF && + diff --git a/no-funny "b/tabs\t,\" (dq) and spaces" + old mode 100644 + new mode 100755 + similarity index NUM% + rename from no-funny + rename to "tabs\t,\" (dq) and spaces" + EOF + git diff-index -M -p $t0 >diff && + sed -e "s/index [0-9]*%/index NUM%/" current && + test_cmp expected current + +ok 17 - diff-index -M -p with mode change quotes funny filename + +expecting success of 3300.18 'diffstat for rename quotes funny filename': + cat >expected <<-\EOF && + "tabs\t,\" (dq) and spaces" + 1 file changed, 0 insertions(+), 0 deletions(-) + EOF + git diff-index -M -p $t0 >diff && + git apply --stat diffstat && + sed -e "s/|.*//" -e "s/ *\$//" current && + test_i18ncmp expected current + +checking prerequisite: C_LOCALE_OUTPUT + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false + +) +prerequisite C_LOCALE_OUTPUT ok +ok 18 - diffstat for rename quotes funny filename + +expecting success of 3300.19 'numstat for rename quotes funny filename': + cat >expected <<-\EOF && + 0 0 "tabs\t,\" (dq) and spaces" + EOF + git diff-index -M -p $t0 >diff && + git apply --numstat current && + test_cmp expected current + +ok 19 - numstat for rename quotes funny filename + +expecting success of 3300.20 'numstat without -M quotes funny filename': + cat >expected <<-\EOF && + 0 3 no-funny + 3 0 "tabs\t,\" (dq) and spaces" + EOF + git diff-index -p $t0 >diff && + git apply --numstat current && + test_cmp expected current + +ok 20 - numstat without -M quotes funny filename + +expecting success of 3300.21 'numstat for non-git rename diff quotes funny filename': + cat >expected <<-\EOF && + 0 3 no-funny + 3 0 "tabs\t,\" (dq) and spaces" + EOF + git diff-index -p $t0 >git-diff && + sed -ne "/^[-+@]/p" diff && + git apply --numstat current && + test_cmp expected current + +ok 21 - numstat for non-git rename diff quotes funny filename + +# passed all 21 test(s) +1..21 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t3302-notes-index-expensive.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3302-notes-index-expensive/.git/ expecting success of 3302.1 'setup 10': @@ -88347,114 +86140,2340 @@ 1..12 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t3301-notes.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3301-notes/.git/ -expecting success of 3301.1 'cannot annotate non-existing HEAD': - test_must_fail env MSG=3 git notes add - -fatal: failed to resolve 'HEAD' as a valid ref. -ok 1 - cannot annotate non-existing HEAD - -expecting success of 3301.2 'setup': - test_commit 1st && - test_commit 2nd +*** t2013-checkout-submodule.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2013-checkout-submodule/.git/ +expecting success of 2013.1 'setup': + mkdir submodule && + (cd submodule && + git init && + test_commit first) && + git add submodule && + test_tick && + git commit -m superproject && + (cd submodule && + test_commit second) && + git add submodule && + test_tick && + git commit -m updated.superproject -[master (root-commit) 04ed9a0] 1st +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule/.git/ +[master (root-commit) 50e526b] first Author: A U Thor 1 file changed, 1 insertion(+) - create mode 100644 1st.t -[master 7a4ca6e] 2nd + create mode 100644 first.t +warning: adding embedded git repository: submodule +hint: You've added another git repository inside your current repository. +hint: Clones of the outer repository will not contain the contents of +hint: the embedded repository and will not know how to obtain it. +hint: If you meant to add a submodule, use: +hint: +hint: git submodule add submodule +hint: +hint: If you added this path by mistake, you can remove it from the +hint: index with: +hint: +hint: git rm --cached submodule +hint: +hint: See "git help submodule" for more information. +[master (root-commit) 1844aa5] superproject Author: A U Thor 1 file changed, 1 insertion(+) - create mode 100644 2nd.t -ok 2 - setup - -expecting success of 3301.3 'need valid notes ref': - test_must_fail env MSG=1 GIT_NOTES_REF=/ git notes show && - test_must_fail env MSG=2 GIT_NOTES_REF=/ git notes show - -fatal: refusing to show notes in / (outside of refs/notes/) -fatal: refusing to show notes in / (outside of refs/notes/) -ok 3 - need valid notes ref + create mode 160000 submodule +[master d662100] second + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 second.t +[master 14e674f] updated.superproject + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +ok 1 - setup -expecting success of 3301.4 'refusing to add notes in refs/heads/': - test_must_fail env MSG=1 GIT_NOTES_REF=refs/heads/bogus git notes add +expecting success of 2013.2 '"reset " updates the index': + git update-index --refresh && + git diff-files --quiet && + git diff-index --quiet --cached HEAD && + git reset HEAD^ submodule && + test_must_fail git diff-files --quiet && + git reset submodule && + git diff-files --quiet -fatal: refusing to add notes in refs/heads/bogus (outside of refs/notes/) -ok 4 - refusing to add notes in refs/heads/ +Unstaged changes after reset: +M submodule +ok 2 - "reset " updates the index -expecting success of 3301.5 'refusing to edit notes in refs/remotes/': - test_must_fail env MSG=1 GIT_NOTES_REF=refs/heads/bogus git notes edit +expecting success of 2013.3 '"checkout " updates the index only': + git update-index --refresh && + git diff-files --quiet && + git diff-index --quiet --cached HEAD && + git checkout HEAD^ submodule && + test_must_fail git diff-files --quiet && + git checkout HEAD submodule && + git diff-files --quiet -fatal: refusing to edit notes in refs/heads/bogus (outside of refs/notes/) -ok 5 - refusing to edit notes in refs/remotes/ +Updated 0 paths from f0404a9 +Updated 0 paths from 29aef3d +ok 3 - "checkout " updates the index only -expecting success of 3301.6 'handle empty notes gracefully': - test_expect_code 1 git notes show +expecting success of 2013.4 '"checkout " honors diff.ignoreSubmodules': + git config diff.ignoreSubmodules dirty && + echo x> submodule/untracked && + git checkout HEAD >actual 2>&1 && + test_must_be_empty actual -error: no note found for object 7a4ca6ee52a974a66cbaa78e33214535dff1d691. -ok 6 - handle empty notes gracefully +ok 4 - "checkout " honors diff.ignoreSubmodules -expecting success of 3301.7 'show non-existent notes entry with %N': - test_write_lines A B >expect && - git show -s --format="A%n%NB" >actual && - test_cmp expect actual +expecting success of 2013.5 '"checkout " honors submodule.*.ignore from .gitmodules': + git config diff.ignoreSubmodules none && + git config -f .gitmodules submodule.submodule.path submodule && + git config -f .gitmodules submodule.submodule.ignore untracked && + git checkout HEAD >actual 2>&1 && + test_must_be_empty actual -ok 7 - show non-existent notes entry with %N +ok 5 - "checkout " honors submodule.*.ignore from .gitmodules -expecting success of 3301.8 'create notes': - MSG=b4 git notes add && - test_path_is_missing .git/NOTES_EDITMSG && - git ls-tree -r refs/notes/commits >actual && - test_line_count = 1 actual && - echo b4 >expect && - git notes show >actual && - test_cmp expect actual && - git show HEAD^ && - test_must_fail git notes show HEAD^ +expecting success of 2013.6 '"checkout " honors submodule.*.ignore from .git/config': + git config -f .gitmodules submodule.submodule.ignore none && + git config submodule.submodule.path submodule && + git config submodule.submodule.ignore all && + git checkout HEAD >actual 2>&1 && + test_must_be_empty actual -b4 -commit 04ed9a0bbe0285f41c913e2002cb09ef8449d4a6 -Author: A U Thor -Date: Thu Apr 7 15:13:13 2005 -0700 +ok 6 - "checkout " honors submodule.*.ignore from .git/config - 1st +expecting success of 2013.7 'git checkout --recurse-submodules: added submodule is checked out': + prolog && + reset_work_tree_to_interested no_submodule && + ( + cd submodule_update && + git branch -t add_sub1 origin/add_sub1 && + $command add_sub1 && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1/.git/ +[master (root-commit) f401f36] Base inside first submodule + Author: A U Thor + 3 files changed, 4 insertions(+) + create mode 100644 .gitignore + create mode 100644 file1 + create mode 100644 file2 +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub2/.git/ +[master (root-commit) f2c1bb9] nested submodule base + Author: A U Thor + 3 files changed, 4 insertions(+) + create mode 100644 .gitignore + create mode 100644 file1 + create mode 100644 file2 +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_repo/.git/ +[master (root-commit) 3950f7e] Base + Author: A U Thor + 3 files changed, 4 insertions(+) + create mode 100644 .gitignore + create mode 100644 file1 + create mode 100644 file2 +Switched to a new branch 'add_sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_repo/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_repo/uninitialized_sub'... +done. +[add_sub1 30024d7] Add sub1 + Author: A U Thor + 2 files changed, 8 insertions(+) + create mode 100644 .gitmodules + create mode 160000 uninitialized_sub +Switched to a new branch 'remove_sub1' +Removing uninitialized_sub +Removing sub1 +Removing .gitmodules +[remove_sub1 d6f9aa6] Revert "Add sub1" + Author: A U Thor + Date: Thu Apr 7 15:14:13 2005 -0700 + 3 files changed, 9 deletions(-) + delete mode 100644 .gitmodules + delete mode 160000 sub1 + delete mode 160000 uninitialized_sub +Switched to a new branch 'modify_sub1' +Switched to a new branch 'modifications' +[modifications e6d8148] modified file2 and added file3 + Author: A U Thor + 2 files changed, 2 insertions(+), 1 deletion(-) + create mode 100644 file3 +To /build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1 + * [new branch] modifications -> modifications +[modify_sub1 1f84fbc] Modify sub1 + Author: A U Thor +Switched to a new branch 'add_nested_sub' +Switched to a new branch 'add_nested_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_repo/sub1/sub2'... +done. +[add_nested_sub 50491a1] add a nested submodule + Author: A U Thor + 2 files changed, 5 insertions(+) + create mode 100644 .gitmodules + create mode 160000 sub2 +[add_nested_sub 6797720] update submodule, that updates a nested submodule + Author: A U Thor +Switched to a new branch 'modify_sub1_recursively' +Switched to a new branch 'modify_sub1_recursively' +Switched to a new branch 'modify_sub1_recursively' +[modify_sub1_recursively 6788ca3] make a change in nested sub + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file3 +[modify_sub1_recursively 6cc4170] update nested sub + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +[modify_sub1_recursively 934e1af] update sub1, that updates nested sub + Author: A U Thor +To /build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1 + * [new branch] modify_sub1_recursively -> modify_sub1_recursively +To /build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub2 + * [new branch] modify_sub1_recursively -> modify_sub1_recursively +Cleared directory 'sub2' +Submodule 'sub2' (../submodule_update_sub2) unregistered for path 'sub2' +Switched to a new branch 'replace_sub1_with_directory' +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Previous HEAD position was f401f36 Base inside first submodule +Switched to branch 'modifications' +rm 'sub1' +[replace_sub1_with_directory 43c94e1] Replace sub1 with directory + Author: A U Thor + 5 files changed, 3 insertions(+), 5 deletions(-) + delete mode 160000 sub1 + create mode 100644 sub1/file1 + create mode 100644 sub1/file2 + create mode 100644 sub1/file3 +Switched to a new branch 'replace_directory_with_sub1' +Removing sub1/file3 +Removing sub1/file2 +Removing sub1/file1 +Adding sub1 +[replace_directory_with_sub1 2061bb3] Revert "Replace sub1 with directory" + Author: A U Thor + Date: Thu Apr 7 15:14:13 2005 -0700 + 4 files changed, 4 insertions(+), 3 deletions(-) + delete mode 100644 sub1/file1 + delete mode 100644 sub1/file2 + delete mode 100644 sub1/file3 +Switched to a new branch 'replace_sub1_with_file' +rm 'sub1' +[replace_sub1_with_file d4861a4] Replace sub1 with file + Author: A U Thor + 2 files changed, 1 insertion(+), 5 deletions(-) + mode change 160000 => 100644 sub1 +Switched to a new branch 'replace_file_with_sub1' +[replace_file_with_sub1 cf98843] Revert "Replace sub1 with file" + Author: A U Thor + Date: Thu Apr 7 15:14:13 2005 -0700 + 2 files changed, 5 insertions(+), 1 deletion(-) + mode change 100644 => 160000 sub1 +Switched to a new branch 'invalid_sub1' +[invalid_sub1 cea73c0] Invalid sub1 commit + Author: A U Thor +Switched to a new branch 'valid_sub1' +[valid_sub1 f248045] Revert "Invalid sub1 commit" + Author: A U Thor + Date: Thu Apr 7 15:14:13 2005 -0700 +warning: unable to rmdir 'uninitialized_sub': Directory not empty +Switched to branch 'master' +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Switched to branch 'add_sub1' +Your branch is up to date with 'origin/add_sub1'. +ok 7 - git checkout --recurse-submodules: added submodule is checked out -diff --git a/1st.t b/1st.t -new file mode 100644 -index 0000000..2a5d015 ---- /dev/null -+++ b/1st.t -@@ -0,0 +1 @@ -+1st -error: no note found for object 04ed9a0bbe0285f41c913e2002cb09ef8449d4a6. -ok 8 - create notes +expecting success of 2013.8 'git checkout --recurse-submodules: added submodule is checked out in empty dir': + prolog && + reset_work_tree_to_interested no_submodule && + ( + cd submodule_update && + mkdir sub1 && + git branch -t add_sub1 origin/add_sub1 && + $command add_sub1 && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Switched to branch 'add_sub1' +Your branch is up to date with 'origin/add_sub1'. +ok 8 - git checkout --recurse-submodules: added submodule is checked out in empty dir -expecting success of 3301.9 'show notes entry with %N': - test_write_lines A b4 B >expect && - git show -s --format="A%n%NB" >actual && - test_cmp expect actual +expecting success of 2013.9 'git checkout --recurse-submodules: replace tracked file with submodule checks out submodule': + prolog && + reset_work_tree_to_interested replace_sub1_with_file && + ( + cd submodule_update && + git branch -t replace_file_with_sub1 origin/replace_file_with_sub1 && + $command replace_file_with_sub1 && + test_superproject_content origin/replace_file_with_sub1 && + test_submodule_content sub1 origin/replace_file_with_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'replace_sub1_with_file' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +fatal: Needed a single revision +Branch 'replace_file_with_sub1' set up to track remote branch 'replace_file_with_sub1' from 'origin'. +Switched to branch 'replace_file_with_sub1' +Your branch is up to date with 'origin/replace_file_with_sub1'. +ok 9 - git checkout --recurse-submodules: replace tracked file with submodule checks out submodule -ok 9 - show notes entry with %N +expecting success of 2013.10 'git checkout --recurse-submodules: replace directory with submodule': + prolog && + reset_work_tree_to_interested replace_sub1_with_directory && + ( + cd submodule_update && + git branch -t replace_directory_with_sub1 origin/replace_directory_with_sub1 && + $command replace_directory_with_sub1 && + test_superproject_content origin/replace_directory_with_sub1 && + test_submodule_content sub1 origin/replace_directory_with_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'replace_sub1_with_directory' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +fatal: Needed a single revision +Branch 'replace_directory_with_sub1' set up to track remote branch 'replace_directory_with_sub1' from 'origin'. +Switched to branch 'replace_directory_with_sub1' +Your branch is up to date with 'origin/replace_directory_with_sub1'. +ok 10 - git checkout --recurse-submodules: replace directory with submodule -expecting success of 3301.10 'create reflog entry': - ref=$(git rev-parse --short refs/notes/commits) && - cat <<-EOF >expect && - $ref refs/notes/commits@{0}: notes: Notes added by 'git notes add' - EOF - git reflog show refs/notes/commits >actual && - test_cmp expect actual +expecting success of 2013.11 'git checkout --recurse-submodules: nested submodules are checked out': + prolog && + reset_work_tree_to_interested no_submodule && + ( + cd submodule_update && + git branch -t modify_sub1_recursively origin/modify_sub1_recursively && + $command modify_sub1_recursively && + test_superproject_content origin/modify_sub1_recursively && + test_submodule_content sub1 origin/modify_sub1_recursively && + test_submodule_content -C sub1 sub2 origin/modify_sub1_recursively + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'modify_sub1_recursively' set up to track remote branch 'modify_sub1_recursively' from 'origin'. +Switched to branch 'modify_sub1_recursively' +Your branch is up to date with 'origin/modify_sub1_recursively'. +ok 11 - git checkout --recurse-submodules: nested submodules are checked out -ok 10 - create reflog entry +expecting success of 2013.12 'git checkout --recurse-submodules: removed submodule removes submodules working tree': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t remove_sub1 origin/remove_sub1 && + $command remove_sub1 && + test_superproject_content origin/remove_sub1 && + ! test -e sub1 && + test_must_fail git config -f .git/modules/sub1/config core.worktree + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. +Switched to branch 'remove_sub1' +Your branch is up to date with 'origin/remove_sub1'. +ok 12 - git checkout --recurse-submodules: removed submodule removes submodules working tree -expecting success of 3301.11 'edit existing notes': - MSG=b3 git notes edit && - test_path_is_missing .git/NOTES_EDITMSG && - git ls-tree -r refs/notes/commits >actual && - test_line_count = 1 actual && - echo b3 >expect && - git notes show >actual && - test_cmp expect actual && +expecting success of 2013.13 'git checkout --recurse-submodules: removed submodule absorbs submodules .git directory': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t remove_sub1 origin/remove_sub1 && + replace_gitfile_with_git_dir sub1 && + rm -rf .git/modules && + $command remove_sub1 && + test_superproject_content origin/remove_sub1 && + ! test -e sub1 && + test_git_directory_exists sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. +Migrating git directory of 'sub1' from +'/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1/.git' to +'/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/.git/modules/sub1' +Switched to branch 'remove_sub1' +Your branch is up to date with 'origin/remove_sub1'. +ok 13 - git checkout --recurse-submodules: removed submodule absorbs submodules .git directory + +expecting success of 2013.14 'git checkout --recurse-submodules: replace submodule with a file': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_file origin/replace_sub1_with_file && + $command replace_sub1_with_file && + test_superproject_content origin/replace_sub1_with_file && + test -f sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +Switched to branch 'replace_sub1_with_file' +Your branch is up to date with 'origin/replace_sub1_with_file'. +ok 14 - git checkout --recurse-submodules: replace submodule with a file + +checking known breakage of 2013.15 'git checkout --recurse-submodules: replace submodule with a file must fail with untracked files': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_file origin/replace_sub1_with_file && + : >sub1/untrackedfile && + test_must_fail $command replace_sub1_with_file && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 && + test -f sub1/untracked_file + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +Switched to branch 'replace_sub1_with_file' +Your branch is up to date with 'origin/replace_sub1_with_file'. +test_must_fail: command succeeded: git checkout --recurse-submodules replace_sub1_with_file +not ok 15 - git checkout --recurse-submodules: replace submodule with a file must fail with untracked files # TODO known breakage + +expecting success of 2013.16 'git checkout --recurse-submodules: worktrees of nested submodules are removed': + prolog && + reset_work_tree_to_interested add_nested_sub && + ( + cd submodule_update && + git branch -t no_submodule origin/no_submodule && + $command no_submodule && + test_superproject_content origin/no_submodule && + ! test_path_is_dir sub1 && + test_must_fail git config -f .git/modules/sub1/config core.worktree && + test_must_fail git config -f .git/modules/sub1/modules/sub2/config core.worktree + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_nested_sub' +Branch 'add_nested_sub' set up to track remote branch 'add_nested_sub' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '50491a1d91d7be663c2f0e01632adafaa8ad1784' +Submodule 'sub2' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub2) registered for path 'sub1/sub2' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1/sub2'... +done. +Submodule path 'sub1/sub2': checked out 'f2c1bb97d8342b3950c464bac1b708b05cb363c0' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Switched to branch 'no_submodule' +Your branch is up to date with 'origin/no_submodule'. +Directory sub1 doesn't exist. +ok 16 - git checkout --recurse-submodules: worktrees of nested submodules are removed + +expecting success of 2013.17 'git checkout --recurse-submodules: modified submodule updates submodule work tree': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t modify_sub1 origin/modify_sub1 && + $command modify_sub1 && + test_superproject_content origin/modify_sub1 && + test_submodule_content sub1 origin/modify_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. +Switched to branch 'modify_sub1' +Your branch is up to date with 'origin/modify_sub1'. +ok 17 - git checkout --recurse-submodules: modified submodule updates submodule work tree + +expecting success of 2013.18 'git checkout --recurse-submodules: updating to a missing submodule commit fails': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t invalid_sub1 origin/invalid_sub1 && + test_must_fail $command invalid_sub1 2>err && + test_i18ngrep sub1 err && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. +checking prerequisite: C_LOCALE_OUTPUT + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false + +) +prerequisite C_LOCALE_OUTPUT ok +error: Submodule 'sub1' could not be updated. + sub1 +ok 18 - git checkout --recurse-submodules: updating to a missing submodule commit fails + +expecting success of 2013.19 'git checkout --recurse-submodules: submodule branch is not changed, detach HEAD instead': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git -C sub1 checkout -b keep_branch && + git -C sub1 rev-parse HEAD >expect && + git branch -t modify_sub1 origin/modify_sub1 && + $command modify_sub1 && + test_superproject_content origin/modify_sub1 && + test_submodule_content sub1 origin/modify_sub1 && + git -C sub1 rev-parse keep_branch >actual && + test_cmp expect actual && + test_must_fail git -C sub1 symbolic-ref HEAD + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Switched to a new branch 'keep_branch' +Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. +Switched to branch 'modify_sub1' +Your branch is up to date with 'origin/modify_sub1'. +fatal: ref HEAD is not a symbolic ref +ok 19 - git checkout --recurse-submodules: submodule branch is not changed, detach HEAD instead + +expecting success of 2013.20 'git checkout --recurse-submodules: added submodule doesn't remove untracked file with same name': + prolog && + reset_work_tree_to_interested no_submodule && + ( + cd submodule_update && + git branch -t add_sub1 origin/add_sub1 && + : >sub1 && + test_must_fail $command add_sub1 && + test_superproject_content origin/no_submodule && + test_must_be_empty sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +error: The following untracked working tree files would be overwritten by checkout: + sub1 +Please move or remove them before you switch branches. +Aborting +ok 20 - git checkout --recurse-submodules: added submodule doesn't remove untracked file with same name + +expecting success of 2013.21 'git checkout --recurse-submodules: added submodule removes an untracked ignored file': + test_when_finished "rm submodule_update/.git/info/exclude" && + prolog && + reset_work_tree_to_interested no_submodule && + ( + cd submodule_update && + git branch -t add_sub1 origin/add_sub1 && + : >sub1 && + echo sub1 >.git/info/exclude && + $command add_sub1 && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Switched to branch 'add_sub1' +Your branch is up to date with 'origin/add_sub1'. +ok 21 - git checkout --recurse-submodules: added submodule removes an untracked ignored file + +checking known breakage of 2013.22 'git checkout --recurse-submodules: replace submodule with a directory': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && + $command replace_sub1_with_directory && + test_superproject_content origin/replace_sub1_with_directory && + test_submodule_content sub1 origin/replace_sub1_with_directory + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +error: The following untracked working tree files would be overwritten by checkout: + sub1/file1 + sub1/file2 +Please move or remove them before you switch branches. +Aborting +not ok 22 - git checkout --recurse-submodules: replace submodule with a directory # TODO known breakage + +checking known breakage of 2013.23 'git checkout --recurse-submodules: replace submodule containing a .git directory with a directory must absorb the git dir': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && + replace_gitfile_with_git_dir sub1 && + rm -rf .git/modules && + $command replace_sub1_with_directory && + test_superproject_content origin/replace_sub1_with_directory && + test_git_directory_exists sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +error: The following untracked working tree files would be overwritten by checkout: + sub1/file1 + sub1/file2 +Please move or remove them before you switch branches. +Aborting +not ok 23 - git checkout --recurse-submodules: replace submodule containing a .git directory with a directory must absorb the git dir # TODO known breakage + +expecting success of 2013.24 'git checkout --recurse-submodules: replace submodule with a file works ignores ignored files in submodule': + test_when_finished "rm submodule_update/.git/modules/sub1/info/exclude" && + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_file origin/replace_sub1_with_file && + echo ignored >.git/modules/sub1/info/exclude && + : >sub1/ignored && + $command replace_sub1_with_file && + test_superproject_content origin/replace_sub1_with_file && + test -f sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +Switched to branch 'replace_sub1_with_file' +Your branch is up to date with 'origin/replace_sub1_with_file'. +ok 24 - git checkout --recurse-submodules: replace submodule with a file works ignores ignored files in submodule + +expecting success of 2013.25 'git -c submodule.recurse=true checkout: modified submodule updates submodule work tree': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t modify_sub1 origin/modify_sub1 && + git -c submodule.recurse=true $cmd_args modify_sub1 && + test_superproject_content origin/modify_sub1 && + test_submodule_content sub1 origin/modify_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. +Switched to branch 'modify_sub1' +Your branch is up to date with 'origin/modify_sub1'. +ok 25 - git -c submodule.recurse=true checkout: modified submodule updates submodule work tree + +expecting success of 2013.26 'git checkout --recurse-submodules: modified submodule updates submodule recursively': + prolog && + reset_work_tree_to_interested add_nested_sub && + ( + cd submodule_update && + git branch -t modify_sub1_recursively origin/modify_sub1_recursively && + $command modify_sub1_recursively && + test_superproject_content origin/modify_sub1_recursively && + test_submodule_content sub1 origin/modify_sub1_recursively && + test_submodule_content -C sub1 sub2 origin/modify_sub1_recursively + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_nested_sub' +Branch 'add_nested_sub' set up to track remote branch 'add_nested_sub' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '50491a1d91d7be663c2f0e01632adafaa8ad1784' +Submodule 'sub2' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub2) registered for path 'sub1/sub2' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1/sub2'... +done. +Submodule path 'sub1/sub2': checked out 'f2c1bb97d8342b3950c464bac1b708b05cb363c0' +Branch 'modify_sub1_recursively' set up to track remote branch 'modify_sub1_recursively' from 'origin'. +Switched to branch 'modify_sub1_recursively' +Your branch is up to date with 'origin/modify_sub1_recursively'. +ok 26 - git checkout --recurse-submodules: modified submodule updates submodule recursively + +expecting success of 2013.27 'git checkout -f --recurse-submodules: added submodule is checked out': + prolog && + reset_work_tree_to_interested no_submodule && + ( + cd submodule_update && + git branch -t add_sub1 origin/add_sub1 && + $command add_sub1 && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Switched to branch 'add_sub1' +Your branch is up to date with 'origin/add_sub1'. +ok 27 - git checkout -f --recurse-submodules: added submodule is checked out + +expecting success of 2013.28 'git checkout -f --recurse-submodules: added submodule is checked out in empty dir': + prolog && + reset_work_tree_to_interested no_submodule && + ( + cd submodule_update && + mkdir sub1 && + git branch -t add_sub1 origin/add_sub1 && + $command add_sub1 && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Switched to branch 'add_sub1' +Your branch is up to date with 'origin/add_sub1'. +ok 28 - git checkout -f --recurse-submodules: added submodule is checked out in empty dir + +expecting success of 2013.29 'git checkout -f --recurse-submodules: replace tracked file with submodule checks out submodule': + prolog && + reset_work_tree_to_interested replace_sub1_with_file && + ( + cd submodule_update && + git branch -t replace_file_with_sub1 origin/replace_file_with_sub1 && + $command replace_file_with_sub1 && + test_superproject_content origin/replace_file_with_sub1 && + test_submodule_content sub1 origin/replace_file_with_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'replace_sub1_with_file' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +fatal: Needed a single revision +Branch 'replace_file_with_sub1' set up to track remote branch 'replace_file_with_sub1' from 'origin'. +Switched to branch 'replace_file_with_sub1' +Your branch is up to date with 'origin/replace_file_with_sub1'. +ok 29 - git checkout -f --recurse-submodules: replace tracked file with submodule checks out submodule + +expecting success of 2013.30 'git checkout -f --recurse-submodules: replace directory with submodule': + prolog && + reset_work_tree_to_interested replace_sub1_with_directory && + ( + cd submodule_update && + git branch -t replace_directory_with_sub1 origin/replace_directory_with_sub1 && + $command replace_directory_with_sub1 && + test_superproject_content origin/replace_directory_with_sub1 && + test_submodule_content sub1 origin/replace_directory_with_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'replace_sub1_with_directory' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +fatal: Needed a single revision +Branch 'replace_directory_with_sub1' set up to track remote branch 'replace_directory_with_sub1' from 'origin'. +Switched to branch 'replace_directory_with_sub1' +Your branch is up to date with 'origin/replace_directory_with_sub1'. +ok 30 - git checkout -f --recurse-submodules: replace directory with submodule + +expecting success of 2013.31 'git checkout -f --recurse-submodules: nested submodules are checked out': + prolog && + reset_work_tree_to_interested no_submodule && + ( + cd submodule_update && + git branch -t modify_sub1_recursively origin/modify_sub1_recursively && + $command modify_sub1_recursively && + test_superproject_content origin/modify_sub1_recursively && + test_submodule_content sub1 origin/modify_sub1_recursively && + test_submodule_content -C sub1 sub2 origin/modify_sub1_recursively + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'modify_sub1_recursively' set up to track remote branch 'modify_sub1_recursively' from 'origin'. +Switched to branch 'modify_sub1_recursively' +Your branch is up to date with 'origin/modify_sub1_recursively'. +ok 31 - git checkout -f --recurse-submodules: nested submodules are checked out + +expecting success of 2013.32 'git checkout -f --recurse-submodules: removed submodule removes submodules working tree': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t remove_sub1 origin/remove_sub1 && + $command remove_sub1 && + test_superproject_content origin/remove_sub1 && + ! test -e sub1 && + test_must_fail git config -f .git/modules/sub1/config core.worktree + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. +Switched to branch 'remove_sub1' +Your branch is up to date with 'origin/remove_sub1'. +ok 32 - git checkout -f --recurse-submodules: removed submodule removes submodules working tree + +expecting success of 2013.33 'git checkout -f --recurse-submodules: removed submodule absorbs submodules .git directory': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t remove_sub1 origin/remove_sub1 && + replace_gitfile_with_git_dir sub1 && + rm -rf .git/modules && + $command remove_sub1 && + test_superproject_content origin/remove_sub1 && + ! test -e sub1 && + test_git_directory_exists sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. +Migrating git directory of 'sub1' from +'/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1/.git' to +'/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/.git/modules/sub1' +Switched to branch 'remove_sub1' +Your branch is up to date with 'origin/remove_sub1'. +ok 33 - git checkout -f --recurse-submodules: removed submodule absorbs submodules .git directory + +expecting success of 2013.34 'git checkout -f --recurse-submodules: replace submodule with a file': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_file origin/replace_sub1_with_file && + $command replace_sub1_with_file && + test_superproject_content origin/replace_sub1_with_file && + test -f sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +Switched to branch 'replace_sub1_with_file' +Your branch is up to date with 'origin/replace_sub1_with_file'. +ok 34 - git checkout -f --recurse-submodules: replace submodule with a file + +checking known breakage of 2013.35 'git checkout -f --recurse-submodules: replace submodule with a file must fail with untracked files': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_file origin/replace_sub1_with_file && + : >sub1/untrackedfile && + test_must_fail $command replace_sub1_with_file && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 && + test -f sub1/untracked_file + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +Switched to branch 'replace_sub1_with_file' +Your branch is up to date with 'origin/replace_sub1_with_file'. +test_must_fail: command succeeded: git checkout -f --recurse-submodules replace_sub1_with_file +not ok 35 - git checkout -f --recurse-submodules: replace submodule with a file must fail with untracked files # TODO known breakage + +expecting success of 2013.36 'git checkout -f --recurse-submodules: worktrees of nested submodules are removed': + prolog && + reset_work_tree_to_interested add_nested_sub && + ( + cd submodule_update && + git branch -t no_submodule origin/no_submodule && + $command no_submodule && + test_superproject_content origin/no_submodule && + ! test_path_is_dir sub1 && + test_must_fail git config -f .git/modules/sub1/config core.worktree && + test_must_fail git config -f .git/modules/sub1/modules/sub2/config core.worktree + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_nested_sub' +Branch 'add_nested_sub' set up to track remote branch 'add_nested_sub' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '50491a1d91d7be663c2f0e01632adafaa8ad1784' +Submodule 'sub2' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub2) registered for path 'sub1/sub2' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1/sub2'... +done. +Submodule path 'sub1/sub2': checked out 'f2c1bb97d8342b3950c464bac1b708b05cb363c0' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Switched to branch 'no_submodule' +Your branch is up to date with 'origin/no_submodule'. +Directory sub1 doesn't exist. +ok 36 - git checkout -f --recurse-submodules: worktrees of nested submodules are removed + +expecting success of 2013.37 'git checkout -f --recurse-submodules: modified submodule updates submodule work tree': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t modify_sub1 origin/modify_sub1 && + $command modify_sub1 && + test_superproject_content origin/modify_sub1 && + test_submodule_content sub1 origin/modify_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. +Switched to branch 'modify_sub1' +Your branch is up to date with 'origin/modify_sub1'. +ok 37 - git checkout -f --recurse-submodules: modified submodule updates submodule work tree + +expecting success of 2013.38 'git checkout -f --recurse-submodules: updating to a missing submodule commit fails': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t invalid_sub1 origin/invalid_sub1 && + test_must_fail $command invalid_sub1 2>err && + test_i18ngrep sub1 err && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. +checking prerequisite: C_LOCALE_OUTPUT + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false + +) +prerequisite C_LOCALE_OUTPUT ok +error: Submodule 'sub1' could not be updated. +error: Submodule 'sub1' cannot checkout new HEAD. +ok 38 - git checkout -f --recurse-submodules: updating to a missing submodule commit fails + +expecting success of 2013.39 'git checkout -f --recurse-submodules: submodule branch is not changed, detach HEAD instead': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git -C sub1 checkout -b keep_branch && + git -C sub1 rev-parse HEAD >expect && + git branch -t modify_sub1 origin/modify_sub1 && + $command modify_sub1 && + test_superproject_content origin/modify_sub1 && + test_submodule_content sub1 origin/modify_sub1 && + git -C sub1 rev-parse keep_branch >actual && + test_cmp expect actual && + test_must_fail git -C sub1 symbolic-ref HEAD + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Switched to a new branch 'keep_branch' +Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. +Switched to branch 'modify_sub1' +Your branch is up to date with 'origin/modify_sub1'. +fatal: ref HEAD is not a symbolic ref +ok 39 - git checkout -f --recurse-submodules: submodule branch is not changed, detach HEAD instead + +expecting success of 2013.40 'git checkout -f --recurse-submodules: added submodule does remove untracked unignored file with same name when forced': + prolog && + reset_work_tree_to_interested no_submodule && + ( + cd submodule_update && + git branch -t add_sub1 origin/add_sub1 && + >sub1 && + $command add_sub1 && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Switched to branch 'add_sub1' +Your branch is up to date with 'origin/add_sub1'. +ok 40 - git checkout -f --recurse-submodules: added submodule does remove untracked unignored file with same name when forced + +expecting success of 2013.41 'git checkout -f --recurse-submodules: replace submodule with a directory': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && + $command replace_sub1_with_directory && + test_superproject_content origin/replace_sub1_with_directory + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +Switched to branch 'replace_sub1_with_directory' +Your branch is up to date with 'origin/replace_sub1_with_directory'. +ok 41 - git checkout -f --recurse-submodules: replace submodule with a directory + +expecting success of 2013.42 'git checkout -f --recurse-submodules: replace submodule containing a .git directory with a directory must fail': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && + replace_gitfile_with_git_dir sub1 && + rm -rf .git/modules/sub1 && + $command replace_sub1_with_directory && + test_superproject_content origin/replace_sub1_with_directory && + test_git_directory_exists sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +Migrating git directory of 'sub1' from +'/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1/.git' to +'/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/.git/modules/sub1' +Switched to branch 'replace_sub1_with_directory' +Your branch is up to date with 'origin/replace_sub1_with_directory'. +ok 42 - git checkout -f --recurse-submodules: replace submodule containing a .git directory with a directory must fail + +expecting success of 2013.43 'git checkout -f --recurse-submodules: replace submodule with a file ignoring ignored files': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_file origin/replace_sub1_with_file && + : >sub1/expect && + $command replace_sub1_with_file && + test_superproject_content origin/replace_sub1_with_file + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +Switched to branch 'replace_sub1_with_file' +Your branch is up to date with 'origin/replace_sub1_with_file'. +ok 43 - git checkout -f --recurse-submodules: replace submodule with a file ignoring ignored files + +expecting success of 2013.44 'git checkout -f --recurse-submodules: modified submodule does update submodule work tree from invalid commit': + prolog && + reset_work_tree_to_interested invalid_sub1 && + ( + cd submodule_update && + git branch -t valid_sub1 origin/valid_sub1 && + $command valid_sub1 && + test_superproject_content origin/valid_sub1 && + test_submodule_content sub1 origin/valid_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'invalid_sub1' +Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. +fatal: Needed a single revision +Branch 'valid_sub1' set up to track remote branch 'valid_sub1' from 'origin'. +Switched to branch 'valid_sub1' +Your branch is up to date with 'origin/valid_sub1'. +ok 44 - git checkout -f --recurse-submodules: modified submodule does update submodule work tree from invalid commit + +expecting success of 2013.45 'git checkout -f --recurse-submodules: updating submodules fixes .git links': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t modify_sub1 origin/modify_sub1 && + echo "gitdir: bogus/path" >sub1/.git && + $command modify_sub1 && + test_superproject_content origin/modify_sub1 && + test_submodule_content sub1 origin/modify_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. +Switched to branch 'modify_sub1' +Your branch is up to date with 'origin/modify_sub1'. +ok 45 - git checkout -f --recurse-submodules: updating submodules fixes .git links + +expecting success of 2013.46 'git checkout -f --recurse-submodules: changed submodule worktree is reset': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + rm sub1/file1 && + : >sub1/new_file && + git -C sub1 add new_file && + $command HEAD && + test_path_is_file sub1/file1 && + test_path_is_missing sub1/new_file + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Your branch is up to date with 'origin/add_sub1'. +ok 46 - git checkout -f --recurse-submodules: changed submodule worktree is reset + +expecting success of 2013.47 'git_test_func: added submodule creates empty directory': + prolog && + reset_work_tree_to no_submodule && + ( + cd submodule_update && + git branch -t add_sub1 origin/add_sub1 && + $command add_sub1 && + test_superproject_content origin/add_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Switched to branch 'add_sub1' +Your branch is up to date with 'origin/add_sub1'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Submodule path 'uninitialized_sub': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +ok 47 - git_test_func: added submodule creates empty directory + +expecting success of 2013.48 'git_test_func: added submodule leaves existing empty directory alone': + prolog && + reset_work_tree_to no_submodule && + ( + cd submodule_update && + mkdir sub1 && + git branch -t add_sub1 origin/add_sub1 && + $command add_sub1 && + test_superproject_content origin/add_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Switched to branch 'add_sub1' +Your branch is up to date with 'origin/add_sub1'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Submodule path 'uninitialized_sub': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +ok 48 - git_test_func: added submodule leaves existing empty directory alone + +expecting success of 2013.49 'git_test_func: replace tracked file with submodule creates empty directory': + prolog && + reset_work_tree_to replace_sub1_with_file && + ( + cd submodule_update && + git branch -t replace_file_with_sub1 origin/replace_file_with_sub1 && + $command replace_file_with_sub1 && + test_superproject_content origin/replace_file_with_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/replace_file_with_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'replace_sub1_with_file' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +fatal: Needed a single revision +Branch 'replace_file_with_sub1' set up to track remote branch 'replace_file_with_sub1' from 'origin'. +Switched to branch 'replace_file_with_sub1' +Your branch is up to date with 'origin/replace_file_with_sub1'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Submodule path 'uninitialized_sub': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +ok 49 - git_test_func: replace tracked file with submodule creates empty directory + +expecting success of 2013.50 'git_test_func: replace directory with submodule': + prolog && + reset_work_tree_to replace_sub1_with_directory && + ( + cd submodule_update && + git branch -t replace_directory_with_sub1 origin/replace_directory_with_sub1 && + $command replace_directory_with_sub1 && + test_superproject_content origin/replace_directory_with_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/replace_directory_with_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'replace_sub1_with_directory' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +fatal: Needed a single revision +Branch 'replace_directory_with_sub1' set up to track remote branch 'replace_directory_with_sub1' from 'origin'. +Switched to branch 'replace_directory_with_sub1' +Your branch is up to date with 'origin/replace_directory_with_sub1'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Submodule path 'uninitialized_sub': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +ok 50 - git_test_func: replace directory with submodule + +expecting success of 2013.51 'git_test_func: removed submodule leaves submodule directory and its contents in place': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t remove_sub1 origin/remove_sub1 && + $command remove_sub1 && + test_superproject_content origin/remove_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. +warning: unable to rmdir 'sub1': Directory not empty +Switched to branch 'remove_sub1' +Your branch is up to date with 'origin/remove_sub1'. +ok 51 - git_test_func: removed submodule leaves submodule directory and its contents in place + +expecting success of 2013.52 'git_test_func: removed submodule leaves submodule containing a .git directory alone': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t remove_sub1 origin/remove_sub1 && + replace_gitfile_with_git_dir sub1 && + $command remove_sub1 && + test_superproject_content origin/remove_sub1 && + test_git_directory_is_unchanged sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. +warning: unable to rmdir 'sub1': Directory not empty +Switched to branch 'remove_sub1' +Your branch is up to date with 'origin/remove_sub1'. +ok 52 - git_test_func: removed submodule leaves submodule containing a .git directory alone + +expecting success of 2013.53 'git_test_func: replace submodule with a directory must fail': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && + $command replace_sub1_with_directory test_must_fail && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +error: The following untracked working tree files would be overwritten by checkout: + sub1/file1 + sub1/file2 +Please move or remove them before you switch branches. +Aborting +ok 53 - git_test_func: replace submodule with a directory must fail + +expecting success of 2013.54 'git_test_func: replace submodule containing a .git directory with a directory must fail': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && + replace_gitfile_with_git_dir sub1 && + $command replace_sub1_with_directory test_must_fail && + test_superproject_content origin/add_sub1 && + test_git_directory_is_unchanged sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +error: The following untracked working tree files would be overwritten by checkout: + sub1/file1 + sub1/file2 +Please move or remove them before you switch branches. +Aborting +ok 54 - git_test_func: replace submodule containing a .git directory with a directory must fail + +checking known breakage of 2013.55 'git_test_func: replace submodule with a file must fail': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_file origin/replace_sub1_with_file && + $command replace_sub1_with_file test_must_fail && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +Switched to branch 'replace_sub1_with_file' +Your branch is up to date with 'origin/replace_sub1_with_file'. +test_must_fail: command succeeded: git checkout replace_sub1_with_file +not ok 55 - git_test_func: replace submodule with a file must fail # TODO known breakage + +checking known breakage of 2013.56 'git_test_func: replace submodule containing a .git directory with a file must fail': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_file origin/replace_sub1_with_file && + replace_gitfile_with_git_dir sub1 && + $command replace_sub1_with_file test_must_fail && + test_superproject_content origin/add_sub1 && + test_git_directory_is_unchanged sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +Switched to branch 'replace_sub1_with_file' +Your branch is up to date with 'origin/replace_sub1_with_file'. +test_must_fail: command succeeded: git checkout replace_sub1_with_file +not ok 56 - git_test_func: replace submodule containing a .git directory with a file must fail # TODO known breakage + +expecting success of 2013.57 'git_test_func: modified submodule does not update submodule work tree': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t modify_sub1 origin/modify_sub1 && + $command modify_sub1 && + test_superproject_content origin/modify_sub1 && + test_submodule_content sub1 origin/add_sub1 && + git submodule update && + test_submodule_content sub1 origin/modify_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. +Switched to branch 'modify_sub1' +Your branch is up to date with 'origin/modify_sub1'. +Submodule path 'sub1': checked out 'e6d8148a306c904a34344fac267f4613e698d228' +ok 57 - git_test_func: modified submodule does not update submodule work tree + +expecting success of 2013.58 'git_test_func: modified submodule does not update submodule work tree to invalid commit': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t invalid_sub1 origin/invalid_sub1 && + $command invalid_sub1 && + test_superproject_content origin/invalid_sub1 && + test_submodule_content sub1 origin/add_sub1 && + test_must_fail git submodule update && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. +Switched to branch 'invalid_sub1' +Your branch is up to date with 'origin/invalid_sub1'. +fatal: git upload-pack: not our ref 0123456789012345678901234567890123456789 +fatal: remote error: upload-pack: not our ref 0123456789012345678901234567890123456789 +Fetched in submodule path 'sub1', but it did not contain 0123456789012345678901234567890123456789. Direct fetching of that commit failed. +ok 58 - git_test_func: modified submodule does not update submodule work tree to invalid commit + +expecting success of 2013.59 'git_test_func: modified submodule does not update submodule work tree from invalid commit': + prolog && + reset_work_tree_to invalid_sub1 && + ( + cd submodule_update && + git branch -t valid_sub1 origin/valid_sub1 && + $command valid_sub1 && + test_superproject_content origin/valid_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/valid_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'invalid_sub1' +Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. +fatal: Needed a single revision +Branch 'valid_sub1' set up to track remote branch 'valid_sub1' from 'origin'. +Switched to branch 'valid_sub1' +Your branch is up to date with 'origin/valid_sub1'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Submodule path 'uninitialized_sub': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +ok 59 - git_test_func: modified submodule does not update submodule work tree from invalid commit + +expecting success of 2013.60 'git_test_func: added submodule doesn't remove untracked unignored file with same name': + prolog && + reset_work_tree_to no_submodule && + ( + cd submodule_update && + git branch -t add_sub1 origin/add_sub1 && + >sub1 && + $command add_sub1 test_must_fail && + test_superproject_content origin/no_submodule && + test_must_be_empty sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +error: The following untracked working tree files would be overwritten by checkout: + sub1 +Please move or remove them before you switch branches. +Aborting +ok 60 - git_test_func: added submodule doesn't remove untracked unignored file with same name + +expecting success of 2013.61 'git_test_func: added submodule creates empty directory': + prolog && + reset_work_tree_to no_submodule && + ( + cd submodule_update && + git branch -t add_sub1 origin/add_sub1 && + $command add_sub1 && + test_superproject_content origin/add_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Switched to branch 'add_sub1' +Your branch is up to date with 'origin/add_sub1'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Submodule path 'uninitialized_sub': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +ok 61 - git_test_func: added submodule creates empty directory + +expecting success of 2013.62 'git_test_func: added submodule leaves existing empty directory alone': + prolog && + reset_work_tree_to no_submodule && + ( + cd submodule_update && + mkdir sub1 && + git branch -t add_sub1 origin/add_sub1 && + $command add_sub1 && + test_superproject_content origin/add_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Switched to branch 'add_sub1' +Your branch is up to date with 'origin/add_sub1'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Submodule path 'uninitialized_sub': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +ok 62 - git_test_func: added submodule leaves existing empty directory alone + +expecting success of 2013.63 'git_test_func: replace tracked file with submodule creates empty directory': + prolog && + reset_work_tree_to replace_sub1_with_file && + ( + cd submodule_update && + git branch -t replace_file_with_sub1 origin/replace_file_with_sub1 && + $command replace_file_with_sub1 && + test_superproject_content origin/replace_file_with_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/replace_file_with_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'replace_sub1_with_file' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +fatal: Needed a single revision +Branch 'replace_file_with_sub1' set up to track remote branch 'replace_file_with_sub1' from 'origin'. +Switched to branch 'replace_file_with_sub1' +Your branch is up to date with 'origin/replace_file_with_sub1'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Submodule path 'uninitialized_sub': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +ok 63 - git_test_func: replace tracked file with submodule creates empty directory + +expecting success of 2013.64 'git_test_func: replace directory with submodule': + prolog && + reset_work_tree_to replace_sub1_with_directory && + ( + cd submodule_update && + git branch -t replace_directory_with_sub1 origin/replace_directory_with_sub1 && + $command replace_directory_with_sub1 && + test_superproject_content origin/replace_directory_with_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/replace_directory_with_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'replace_sub1_with_directory' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +fatal: Needed a single revision +Branch 'replace_directory_with_sub1' set up to track remote branch 'replace_directory_with_sub1' from 'origin'. +Switched to branch 'replace_directory_with_sub1' +Your branch is up to date with 'origin/replace_directory_with_sub1'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Submodule path 'uninitialized_sub': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +ok 64 - git_test_func: replace directory with submodule + +expecting success of 2013.65 'git_test_func: removed submodule leaves submodule directory and its contents in place': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t remove_sub1 origin/remove_sub1 && + $command remove_sub1 && + test_superproject_content origin/remove_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. +warning: unable to rmdir 'sub1': Directory not empty +Switched to branch 'remove_sub1' +Your branch is up to date with 'origin/remove_sub1'. +ok 65 - git_test_func: removed submodule leaves submodule directory and its contents in place + +expecting success of 2013.66 'git_test_func: removed submodule leaves submodule containing a .git directory alone': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t remove_sub1 origin/remove_sub1 && + replace_gitfile_with_git_dir sub1 && + $command remove_sub1 && + test_superproject_content origin/remove_sub1 && + test_git_directory_is_unchanged sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. +warning: unable to rmdir 'sub1': Directory not empty +Switched to branch 'remove_sub1' +Your branch is up to date with 'origin/remove_sub1'. +ok 66 - git_test_func: removed submodule leaves submodule containing a .git directory alone + +checking known breakage of 2013.67 'git_test_func: replace submodule with a directory must fail': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && + $command replace_sub1_with_directory test_must_fail && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +warning: unable to rmdir 'sub1': Directory not empty +Switched to branch 'replace_sub1_with_directory' +Your branch is up to date with 'origin/replace_sub1_with_directory'. +test_must_fail: command succeeded: git checkout -f replace_sub1_with_directory +not ok 67 - git_test_func: replace submodule with a directory must fail # TODO known breakage + +checking known breakage of 2013.68 'git_test_func: replace submodule containing a .git directory with a directory must fail': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && + replace_gitfile_with_git_dir sub1 && + $command replace_sub1_with_directory test_must_fail && + test_superproject_content origin/add_sub1 && + test_git_directory_is_unchanged sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +warning: unable to rmdir 'sub1': Directory not empty +Switched to branch 'replace_sub1_with_directory' +Your branch is up to date with 'origin/replace_sub1_with_directory'. +test_must_fail: command succeeded: git checkout -f replace_sub1_with_directory +not ok 68 - git_test_func: replace submodule containing a .git directory with a directory must fail # TODO known breakage + +checking known breakage of 2013.69 'git_test_func: replace submodule with a file must fail': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_file origin/replace_sub1_with_file && + $command replace_sub1_with_file test_must_fail && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +Switched to branch 'replace_sub1_with_file' +Your branch is up to date with 'origin/replace_sub1_with_file'. +test_must_fail: command succeeded: git checkout -f replace_sub1_with_file +not ok 69 - git_test_func: replace submodule with a file must fail # TODO known breakage + +checking known breakage of 2013.70 'git_test_func: replace submodule containing a .git directory with a file must fail': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_file origin/replace_sub1_with_file && + replace_gitfile_with_git_dir sub1 && + $command replace_sub1_with_file test_must_fail && + test_superproject_content origin/add_sub1 && + test_git_directory_is_unchanged sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +Switched to branch 'replace_sub1_with_file' +Your branch is up to date with 'origin/replace_sub1_with_file'. +test_must_fail: command succeeded: git checkout -f replace_sub1_with_file +not ok 70 - git_test_func: replace submodule containing a .git directory with a file must fail # TODO known breakage + +expecting success of 2013.71 'git_test_func: modified submodule does not update submodule work tree': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t modify_sub1 origin/modify_sub1 && + $command modify_sub1 && + test_superproject_content origin/modify_sub1 && + test_submodule_content sub1 origin/add_sub1 && + git submodule update && + test_submodule_content sub1 origin/modify_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. +Switched to branch 'modify_sub1' +Your branch is up to date with 'origin/modify_sub1'. +Submodule path 'sub1': checked out 'e6d8148a306c904a34344fac267f4613e698d228' +ok 71 - git_test_func: modified submodule does not update submodule work tree + +expecting success of 2013.72 'git_test_func: modified submodule does not update submodule work tree to invalid commit': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t invalid_sub1 origin/invalid_sub1 && + $command invalid_sub1 && + test_superproject_content origin/invalid_sub1 && + test_submodule_content sub1 origin/add_sub1 && + test_must_fail git submodule update && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. +Switched to branch 'invalid_sub1' +Your branch is up to date with 'origin/invalid_sub1'. +fatal: git upload-pack: not our ref 0123456789012345678901234567890123456789 +fatal: remote error: upload-pack: not our ref 0123456789012345678901234567890123456789 +Fetched in submodule path 'sub1', but it did not contain 0123456789012345678901234567890123456789. Direct fetching of that commit failed. +ok 72 - git_test_func: modified submodule does not update submodule work tree to invalid commit + +expecting success of 2013.73 'git_test_func: modified submodule does not update submodule work tree from invalid commit': + prolog && + reset_work_tree_to invalid_sub1 && + ( + cd submodule_update && + git branch -t valid_sub1 origin/valid_sub1 && + $command valid_sub1 && + test_superproject_content origin/valid_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/valid_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'invalid_sub1' +Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. +fatal: Needed a single revision +Branch 'valid_sub1' set up to track remote branch 'valid_sub1' from 'origin'. +Switched to branch 'valid_sub1' +Your branch is up to date with 'origin/valid_sub1'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t2013-checkout-submodule/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +Submodule path 'uninitialized_sub': checked out 'f401f36f47a708c55a44c7f28d8948e9f8abac9f' +ok 73 - git_test_func: modified submodule does not update submodule work tree from invalid commit + +expecting success of 2013.74 'git_test_func: added submodule does remove untracked unignored file with same name when forced': + prolog && + reset_work_tree_to no_submodule && + ( + cd submodule_update && + git branch -t add_sub1 origin/add_sub1 && + >sub1 && + $command add_sub1 && + test_superproject_content origin/add_sub1 && + test_dir_is_empty sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Switched to branch 'add_sub1' +Your branch is up to date with 'origin/add_sub1'. +ok 74 - git_test_func: added submodule does remove untracked unignored file with same name when forced + +# still have 10 known breakage(s) +# passed all remaining 64 test(s) +1..74 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t3304-notes-mixed.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3304-notes-mixed/.git/ +expecting success of 3304.1 'setup: create a couple of commits': + + test_tick && + cat <input && +commit refs/heads/master +committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE +data <>input && +commit refs/heads/master +committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE +data <input && +commit refs/notes/commits +committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE +data <>input && +commit refs/notes/commits +committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE +data <>input && +commit refs/notes/commits +committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE +data < actual && + test_cmp expect actual + +ok 3 - verify contents of notes + +expecting success of 3304.4 'verify contents of non-notes': + + git cat-file -p refs/notes/commits:foobar/non-note.txt > actual_nn1 && + test_cmp expect_nn1 actual_nn1 && + git cat-file -p refs/notes/commits:deadbeef > actual_nn2 && + test_cmp expect_nn2 actual_nn2 && + git cat-file -p refs/notes/commits:de/adbeef > actual_nn3 && + test_cmp expect_nn3 actual_nn3 && + git cat-file -p refs/notes/commits:dead/beef > actual_nn4 && + test_cmp expect_nn4 actual_nn4 + +ok 4 - verify contents of non-notes + +expecting success of 3304.5 'git-notes preserves non-notes': + + test_tick && + git notes add -f -m "foo bar" + +Overwriting existing notes for object 5f8b8322f6a2c6d36eb6d42312d2393900ab7b81 +ok 5 - git-notes preserves non-notes + +expecting success of 3304.6 'verify contents of non-notes after git-notes': + + git cat-file -p refs/notes/commits:foobar/non-note.txt > actual_nn1 && + test_cmp expect_nn1 actual_nn1 && + git cat-file -p refs/notes/commits:deadbeef > actual_nn2 && + test_cmp expect_nn2 actual_nn2 && + git cat-file -p refs/notes/commits:de/adbeef > actual_nn3 && + test_cmp expect_nn3 actual_nn3 && + git cat-file -p refs/notes/commits:dead/beef > actual_nn4 && + test_cmp expect_nn4 actual_nn4 + +ok 6 - verify contents of non-notes after git-notes + +# passed all 6 test(s) +1..6 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t3301-notes.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3301-notes/.git/ +expecting success of 3301.1 'cannot annotate non-existing HEAD': + test_must_fail env MSG=3 git notes add + +fatal: failed to resolve 'HEAD' as a valid ref. +ok 1 - cannot annotate non-existing HEAD + +expecting success of 3301.2 'setup': + test_commit 1st && + test_commit 2nd + +[master (root-commit) 04ed9a0] 1st + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 1st.t +[master 7a4ca6e] 2nd + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 2nd.t +ok 2 - setup + +expecting success of 3301.3 'need valid notes ref': + test_must_fail env MSG=1 GIT_NOTES_REF=/ git notes show && + test_must_fail env MSG=2 GIT_NOTES_REF=/ git notes show + +fatal: refusing to show notes in / (outside of refs/notes/) +fatal: refusing to show notes in / (outside of refs/notes/) +ok 3 - need valid notes ref + +expecting success of 3301.4 'refusing to add notes in refs/heads/': + test_must_fail env MSG=1 GIT_NOTES_REF=refs/heads/bogus git notes add + +fatal: refusing to add notes in refs/heads/bogus (outside of refs/notes/) +ok 4 - refusing to add notes in refs/heads/ + +expecting success of 3301.5 'refusing to edit notes in refs/remotes/': + test_must_fail env MSG=1 GIT_NOTES_REF=refs/heads/bogus git notes edit + +fatal: refusing to edit notes in refs/heads/bogus (outside of refs/notes/) +ok 5 - refusing to edit notes in refs/remotes/ + +expecting success of 3301.6 'handle empty notes gracefully': + test_expect_code 1 git notes show + +error: no note found for object 7a4ca6ee52a974a66cbaa78e33214535dff1d691. +ok 6 - handle empty notes gracefully + +expecting success of 3301.7 'show non-existent notes entry with %N': + test_write_lines A B >expect && + git show -s --format="A%n%NB" >actual && + test_cmp expect actual + +ok 7 - show non-existent notes entry with %N + +expecting success of 3301.8 'create notes': + MSG=b4 git notes add && + test_path_is_missing .git/NOTES_EDITMSG && + git ls-tree -r refs/notes/commits >actual && + test_line_count = 1 actual && + echo b4 >expect && + git notes show >actual && + test_cmp expect actual && + git show HEAD^ && + test_must_fail git notes show HEAD^ + +b4 +commit 04ed9a0bbe0285f41c913e2002cb09ef8449d4a6 +Author: A U Thor +Date: Thu Apr 7 15:13:13 2005 -0700 + + 1st + +diff --git a/1st.t b/1st.t +new file mode 100644 +index 0000000..2a5d015 +--- /dev/null ++++ b/1st.t +@@ -0,0 +1 @@ ++1st +error: no note found for object 04ed9a0bbe0285f41c913e2002cb09ef8449d4a6. +ok 8 - create notes + +expecting success of 3301.9 'show notes entry with %N': + test_write_lines A b4 B >expect && + git show -s --format="A%n%NB" >actual && + test_cmp expect actual + +ok 9 - show notes entry with %N + +expecting success of 3301.10 'create reflog entry': + ref=$(git rev-parse --short refs/notes/commits) && + cat <<-EOF >expect && + $ref refs/notes/commits@{0}: notes: Notes added by 'git notes add' + EOF + git reflog show refs/notes/commits >actual && + test_cmp expect actual + +ok 10 - create reflog entry + +expecting success of 3301.11 'edit existing notes': + MSG=b3 git notes edit && + test_path_is_missing .git/NOTES_EDITMSG && + git ls-tree -r refs/notes/commits >actual && + test_line_count = 1 actual && + echo b3 >expect && + git notes show >actual && + test_cmp expect actual && git show HEAD^ && test_must_fail git notes show HEAD^ @@ -90309,282 +90328,6 @@ 1..137 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t3304-notes-mixed.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3304-notes-mixed/.git/ -expecting success of 3304.1 'setup: create a couple of commits': - - test_tick && - cat <input && -commit refs/heads/master -committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE -data <>input && -commit refs/heads/master -committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE -data <input && -commit refs/notes/commits -committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE -data <>input && -commit refs/notes/commits -committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE -data <>input && -commit refs/notes/commits -committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE -data < actual && - test_cmp expect actual - -ok 3 - verify contents of notes - -expecting success of 3304.4 'verify contents of non-notes': - - git cat-file -p refs/notes/commits:foobar/non-note.txt > actual_nn1 && - test_cmp expect_nn1 actual_nn1 && - git cat-file -p refs/notes/commits:deadbeef > actual_nn2 && - test_cmp expect_nn2 actual_nn2 && - git cat-file -p refs/notes/commits:de/adbeef > actual_nn3 && - test_cmp expect_nn3 actual_nn3 && - git cat-file -p refs/notes/commits:dead/beef > actual_nn4 && - test_cmp expect_nn4 actual_nn4 - -ok 4 - verify contents of non-notes - -expecting success of 3304.5 'git-notes preserves non-notes': - - test_tick && - git notes add -f -m "foo bar" - -Overwriting existing notes for object 5f8b8322f6a2c6d36eb6d42312d2393900ab7b81 -ok 5 - git-notes preserves non-notes - -expecting success of 3304.6 'verify contents of non-notes after git-notes': - - git cat-file -p refs/notes/commits:foobar/non-note.txt > actual_nn1 && - test_cmp expect_nn1 actual_nn1 && - git cat-file -p refs/notes/commits:deadbeef > actual_nn2 && - test_cmp expect_nn2 actual_nn2 && - git cat-file -p refs/notes/commits:de/adbeef > actual_nn3 && - test_cmp expect_nn3 actual_nn3 && - git cat-file -p refs/notes/commits:dead/beef > actual_nn4 && - test_cmp expect_nn4 actual_nn4 - -ok 6 - verify contents of non-notes after git-notes - -# passed all 6 test(s) -1..6 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t3303-notes-subtrees.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3303-notes-subtrees/.git/ -expecting success of 3303.1 'setup: create 100 commits': - - ( - nr=0 && - while [ $nr -lt $number_of_commits ]; do - nr=$(($nr+1)) && - test_tick && - cat < $GIT_COMMITTER_DATE -data < $GIT_COMMITTER_DATE -data < $GIT_COMMITTER_DATE +data < $GIT_COMMITTER_DATE +data <.git/created_test_file - elif test -e .git/created_test_file - then - rm .git/created_test_file - fi - -ok 2 - setup match file test for foo +deleteall -expecting success of 3070.3 'wildmatch: match 'foo' 'foo'': - test-tool wildmatch wildmatch 'foo' 'foo' - -ok 3 - wildmatch: match 'foo' 'foo' +INPUT_END -expecting success of 3070.4 'wildmatch (via ls-files): match 'foo' 'foo'': - printf '%s' 'foo' >expect && - git --glob-pathspecs ls-files -z -- 'foo' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 4 - wildmatch (via ls-files): match 'foo' 'foo' + ) | + git fast-import --quiet && + git config core.notesRef refs/notes/commits -expecting success of 3070.5 'iwildmatch: match 'foo' 'foo'': - test-tool wildmatch iwildmatch 'foo' 'foo' - -ok 5 - iwildmatch: match 'foo' 'foo' +ok 1 - setup: create 100 commits -expecting success of 3070.6 'iwildmatch (via ls-files): match 'foo' 'foo'': - printf '%s' 'foo' >expect && - git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 6 - iwildmatch (via ls-files): match 'foo' 'foo' +expecting success of 3303.2 'test notes in 2/38-fanout': test_sha1_based "s|^..|&/|" +ok 2 - test notes in 2/38-fanout -expecting success of 3070.7 'pathmatch: match 'foo' 'foo'': - test-tool wildmatch pathmatch 'foo' 'foo' - -ok 7 - pathmatch: match 'foo' 'foo' +expecting success of 3303.3 'verify notes in 2/38-fanout': verify_notes +ok 3 - verify notes in 2/38-fanout -expecting success of 3070.8 'pathmatch (via ls-files): match 'foo' 'foo'': - printf '%s' 'foo' >expect && - git ls-files -z -- 'foo' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 8 - pathmatch (via ls-files): match 'foo' 'foo' +expecting success of 3303.4 'test notes in 2/2/36-fanout': test_sha1_based "s|^\(..\)\(..\)|\1/\2/|" +ok 4 - test notes in 2/2/36-fanout -expecting success of 3070.9 'ipathmatch: match 'foo' 'foo'': - test-tool wildmatch ipathmatch 'foo' 'foo' - -ok 9 - ipathmatch: match 'foo' 'foo' +expecting success of 3303.5 'verify notes in 2/2/36-fanout': verify_notes +ok 5 - verify notes in 2/2/36-fanout -expecting success of 3070.10 'ipathmatch (via ls-files): match 'foo' 'foo'': - printf '%s' 'foo' >expect && - git --icase-pathspecs ls-files -z -- 'foo' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 10 - ipathmatch (via ls-files): match 'foo' 'foo' +expecting success of 3303.6 'test notes in 2/2/2/34-fanout': test_sha1_based "s|^\(..\)\(..\)\(..\)|\1/\2/\3/|" +ok 6 - test notes in 2/2/2/34-fanout -expecting success of 3070.11 'cleanup after previous file test': - if test -e .git/created_test_file - then - git reset && - git clean -df - fi - -Removing actual -Removing actual.err -Removing actual.raw -Removing expect -Removing foo -ok 11 - cleanup after previous file test +expecting success of 3303.7 'verify notes in 2/2/2/34-fanout': verify_notes +ok 7 - verify notes in 2/2/2/34-fanout -expecting success of 3070.12 'setup match file test for foo': - file=$(cat .git/expected_test_file) && - if should_create_test_file "$file" - then - dirs=${file%/*} - if test "$file" != "$dirs" - then - mkdir -p -- "$dirs" && - touch -- "./$text" - else - touch -- "./$file" - fi && - git add -A && - printf "%s" "$file" >.git/created_test_file - elif test -e .git/created_test_file - then - rm .git/created_test_file - fi - -ok 12 - setup match file test for foo +expecting success of 3303.8 'test same notes in no fanout and 2/38-fanout': test_same_notes "s|^..|&/|" "" +ok 8 - test same notes in no fanout and 2/38-fanout -expecting success of 3070.13 'wildmatch: no match 'foo' 'bar'': - test_must_fail test-tool wildmatch wildmatch 'foo' 'bar' - -ok 13 - wildmatch: no match 'foo' 'bar' +expecting success of 3303.9 'verify same notes in no fanout and 2/38-fanout': verify_notes +ok 9 - verify same notes in no fanout and 2/38-fanout -expecting success of 3070.14 'wildmatch (via ls-files): no match 'bar' 'foo'': - >expect && - git --glob-pathspecs ls-files -z -- 'bar' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 14 - wildmatch (via ls-files): no match 'bar' 'foo' +expecting success of 3303.10 'test same notes in no fanout and 2/2/36-fanout': test_same_notes "s|^\(..\)\(..\)|\1/\2/|" "" +ok 10 - test same notes in no fanout and 2/2/36-fanout -expecting success of 3070.15 'iwildmatch: no match 'foo' 'bar'': - test_must_fail test-tool wildmatch iwildmatch 'foo' 'bar' - -ok 15 - iwildmatch: no match 'foo' 'bar' +expecting success of 3303.11 'verify same notes in no fanout and 2/2/36-fanout': verify_notes +ok 11 - verify same notes in no fanout and 2/2/36-fanout -expecting success of 3070.16 'iwildmatch (via ls-files): no match 'bar' 'foo'': - >expect && - git --glob-pathspecs --icase-pathspecs ls-files -z -- 'bar' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 16 - iwildmatch (via ls-files): no match 'bar' 'foo' +expecting success of 3303.12 'test same notes in 2/38-fanout and 2/2/36-fanout': test_same_notes "s|^\(..\)\(..\)|\1/\2/|" "s|^..|&/|" +ok 12 - test same notes in 2/38-fanout and 2/2/36-fanout -expecting success of 3070.17 'pathmatch: no match 'foo' 'bar'': - test_must_fail test-tool wildmatch pathmatch 'foo' 'bar' - -ok 17 - pathmatch: no match 'foo' 'bar' +expecting success of 3303.13 'verify same notes in 2/38-fanout and 2/2/36-fanout': verify_notes +ok 13 - verify same notes in 2/38-fanout and 2/2/36-fanout -expecting success of 3070.18 'pathmatch (via ls-files): no match 'bar' 'foo'': - >expect && - git ls-files -z -- 'bar' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 18 - pathmatch (via ls-files): no match 'bar' 'foo' +expecting success of 3303.14 'test same notes in 2/2/2/34-fanout and 2/2/36-fanout': test_same_notes "s|^\(..\)\(..\)|\1/\2/|" "s|^\(..\)\(..\)\(..\)|\1/\2/\3/|" +ok 14 - test same notes in 2/2/2/34-fanout and 2/2/36-fanout -expecting success of 3070.19 'ipathmatch: no match 'foo' 'bar'': - test_must_fail test-tool wildmatch ipathmatch 'foo' 'bar' - -ok 19 - ipathmatch: no match 'foo' 'bar' +expecting success of 3303.15 'verify same notes in 2/2/2/34-fanout and 2/2/36-fanout': verify_notes +ok 15 - verify same notes in 2/2/2/34-fanout and 2/2/36-fanout -expecting success of 3070.20 'ipathmatch (via ls-files): no match 'bar' 'foo'': - >expect && - git --icase-pathspecs ls-files -z -- 'bar' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 20 - ipathmatch (via ls-files): no match 'bar' 'foo' +expecting success of 3303.16 'test notes in no fanout concatenated with 2/38-fanout': test_concatenated_notes "s|^..|&/|" "" +ok 16 - test notes in no fanout concatenated with 2/38-fanout -expecting success of 3070.21 'cleanup after previous file test': - if test -e .git/created_test_file - then - git reset && - git clean -df - fi - -Removing actual -Removing actual.err -Removing actual.raw -Removing expect -Removing foo -ok 21 - cleanup after previous file test +expecting success of 3303.17 'verify notes in no fanout concatenated with 2/38-fanout': verify_concatenated_notes +ok 17 - verify notes in no fanout concatenated with 2/38-fanout -expecting success of 3070.22 'setup match file test for ': - file=$(cat .git/expected_test_file) && - if should_create_test_file "$file" - then - dirs=${file%/*} - if test "$file" != "$dirs" - then - mkdir -p -- "$dirs" && - touch -- "./$text" - else - touch -- "./$file" - fi && - git add -A && - printf "%s" "$file" >.git/created_test_file - elif test -e .git/created_test_file - then - rm .git/created_test_file - fi - -ok 22 - setup match file test for +expecting success of 3303.18 'test notes in no fanout concatenated with 2/2/36-fanout': test_concatenated_notes "s|^\(..\)\(..\)|\1/\2/|" "" +ok 18 - test notes in no fanout concatenated with 2/2/36-fanout -expecting success of 3070.23 'wildmatch: match '' ''': - test-tool wildmatch wildmatch '' '' - -ok 23 - wildmatch: match '' '' +expecting success of 3303.19 'verify notes in no fanout concatenated with 2/2/36-fanout': verify_concatenated_notes +ok 19 - verify notes in no fanout concatenated with 2/2/36-fanout -checking known breakage of 3070.24 'wildmatch (via ls-files): match skip '' ''': false -not ok 24 - wildmatch (via ls-files): match skip '' '' # TODO known breakage +expecting success of 3303.20 'test notes in 2/38-fanout concatenated with 2/2/36-fanout': test_concatenated_notes "s|^\(..\)\(..\)|\1/\2/|" "s|^..|&/|" +ok 20 - test notes in 2/38-fanout concatenated with 2/2/36-fanout -expecting success of 3070.25 'iwildmatch: match '' ''': - test-tool wildmatch iwildmatch '' '' - -ok 25 - iwildmatch: match '' '' +expecting success of 3303.21 'verify notes in 2/38-fanout concatenated with 2/2/36-fanout': verify_concatenated_notes +ok 21 - verify notes in 2/38-fanout concatenated with 2/2/36-fanout -checking known breakage of 3070.26 'iwildmatch (via ls-files): match skip '' ''': false -not ok 26 - iwildmatch (via ls-files): match skip '' '' # TODO known breakage +expecting success of 3303.22 'test notes in 2/2/36-fanout concatenated with 2/2/2/34-fanout': test_concatenated_notes "s|^\(..\)\(..\)\(..\)|\1/\2/\3/|" "s|^\(..\)\(..\)|\1/\2/|" +ok 22 - test notes in 2/2/36-fanout concatenated with 2/2/2/34-fanout -expecting success of 3070.27 'pathmatch: match '' ''': - test-tool wildmatch pathmatch '' '' - -ok 27 - pathmatch: match '' '' +expecting success of 3303.23 'verify notes in 2/2/36-fanout concatenated with 2/2/2/34-fanout': verify_concatenated_notes +ok 23 - verify notes in 2/2/36-fanout concatenated with 2/2/2/34-fanout -checking known breakage of 3070.28 'pathmatch (via ls-files): match skip '' ''': false -not ok 28 - pathmatch (via ls-files): match skip '' '' # TODO known breakage +# passed all 23 test(s) +1..23 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t3320-notes-merge-worktrees.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3320-notes-merge-worktrees/.git/ +expecting success of 3320.1 'setup commit': + test_commit tantrum -expecting success of 3070.29 'ipathmatch: match '' ''': - test-tool wildmatch ipathmatch '' '' - -ok 29 - ipathmatch: match '' '' +[master (root-commit) 02f8a63] tantrum + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 tantrum.t +ok 1 - setup commit -checking known breakage of 3070.30 'ipathmatch (via ls-files): match skip '' ''': false -not ok 30 - ipathmatch (via ls-files): match skip '' '' # TODO known breakage +expecting success of 3320.2 'setup notes ref (x)': + git config core.notesRef refs/notes/x && + git notes add -m "x notes on tantrum" tantrum -expecting success of 3070.31 'cleanup after previous file test': - if test -e .git/created_test_file - then - git reset && - git clean -df - fi - -ok 31 - cleanup after previous file test +ok 2 - setup notes ref (x) -expecting success of 3070.32 'setup match file test for foo': - file=$(cat .git/expected_test_file) && - if should_create_test_file "$file" - then - dirs=${file%/*} - if test "$file" != "$dirs" - then - mkdir -p -- "$dirs" && - touch -- "./$text" - else - touch -- "./$file" - fi && - git add -A && - printf "%s" "$file" >.git/created_test_file - elif test -e .git/created_test_file - then - rm .git/created_test_file - fi - -ok 32 - setup match file test for foo +expecting success of 3320.3 'setup local branch (y)': + git update-ref refs/notes/y refs/notes/x && + git config core.notesRef refs/notes/y && + git notes remove tantrum -expecting success of 3070.33 'wildmatch: match 'foo' '???'': - test-tool wildmatch wildmatch 'foo' '???' - -ok 33 - wildmatch: match 'foo' '???' +Removing note for object tantrum +ok 3 - setup local branch (y) -expecting success of 3070.34 'wildmatch (via ls-files): match '???' 'foo'': - printf '%s' 'foo' >expect && - git --glob-pathspecs ls-files -z -- '???' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 34 - wildmatch (via ls-files): match '???' 'foo' +expecting success of 3320.4 'setup remote branch (z)': + git update-ref refs/notes/z refs/notes/x && + git config core.notesRef refs/notes/z && + git notes add -f -m "conflicting notes on tantrum" tantrum -expecting success of 3070.35 'iwildmatch: match 'foo' '???'': - test-tool wildmatch iwildmatch 'foo' '???' - -ok 35 - iwildmatch: match 'foo' '???' +Overwriting existing notes for object 02f8a63df5a5eb7863e18dffcbc422a31a01d39e +ok 4 - setup remote branch (z) -expecting success of 3070.36 'iwildmatch (via ls-files): match '???' 'foo'': - printf '%s' 'foo' >expect && - git --glob-pathspecs --icase-pathspecs ls-files -z -- '???' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 36 - iwildmatch (via ls-files): match '???' 'foo' +expecting success of 3320.5 'modify notes ref ourselves (x)': + git config core.notesRef refs/notes/x && + git notes add -f -m "more conflicting notes on tantrum" tantrum -expecting success of 3070.37 'pathmatch: match 'foo' '???'': - test-tool wildmatch pathmatch 'foo' '???' - -ok 37 - pathmatch: match 'foo' '???' +Overwriting existing notes for object 02f8a63df5a5eb7863e18dffcbc422a31a01d39e +ok 5 - modify notes ref ourselves (x) -expecting success of 3070.38 'pathmatch (via ls-files): match '???' 'foo'': - printf '%s' 'foo' >expect && - git ls-files -z -- '???' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 38 - pathmatch (via ls-files): match '???' 'foo' +expecting success of 3320.6 'create some new worktrees': + git worktree add -b newbranch worktree master && + git worktree add -b newbranch2 worktree2 master -expecting success of 3070.39 'ipathmatch: match 'foo' '???'': - test-tool wildmatch ipathmatch 'foo' '???' - -ok 39 - ipathmatch: match 'foo' '???' +Preparing worktree (new branch 'newbranch') +HEAD is now at 02f8a63 tantrum +Preparing worktree (new branch 'newbranch2') +HEAD is now at 02f8a63 tantrum +ok 6 - create some new worktrees -expecting success of 3070.40 'ipathmatch (via ls-files): match '???' 'foo'': - printf '%s' 'foo' >expect && - git --icase-pathspecs ls-files -z -- '???' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 40 - ipathmatch (via ls-files): match '???' 'foo' +expecting success of 3320.7 'merge z into y fails and sets NOTES_MERGE_REF': + git config core.notesRef refs/notes/y && + test_must_fail git notes merge z && + echo "ref: refs/notes/y" >expect && + test_cmp expect .git/NOTES_MERGE_REF -expecting success of 3070.41 'cleanup after previous file test': - if test -e .git/created_test_file - then - git reset && - git clean -df - fi - -Removing actual -Removing actual.err -Removing actual.raw -Removing expect -Removing foo -ok 41 - cleanup after previous file test +Automatic notes merge failed. Fix conflicts in .git/NOTES_MERGE_WORKTREE and commit the result with 'git notes merge --commit', or abort the merge with 'git notes merge --abort'. +Auto-merging notes for 02f8a63df5a5eb7863e18dffcbc422a31a01d39e +CONFLICT (delete/modify): Notes for object 02f8a63df5a5eb7863e18dffcbc422a31a01d39e deleted in refs/notes/y and modified in refs/notes/z. Version from refs/notes/z left in tree. +ok 7 - merge z into y fails and sets NOTES_MERGE_REF -expecting success of 3070.42 'setup match file test for foo': - file=$(cat .git/expected_test_file) && - if should_create_test_file "$file" - then - dirs=${file%/*} - if test "$file" != "$dirs" - then - mkdir -p -- "$dirs" && - touch -- "./$text" - else - touch -- "./$file" - fi && - git add -A && - printf "%s" "$file" >.git/created_test_file - elif test -e .git/created_test_file - then - rm .git/created_test_file - fi - -ok 42 - setup match file test for foo +expecting success of 3320.8 'merge z into y while mid-merge in another workdir fails': + ( + cd worktree && + git config core.notesRef refs/notes/y && + test_must_fail git notes merge z 2>err && + test_i18ngrep "a notes merge into refs/notes/y is already in-progress at" err + ) && + test_path_is_missing .git/worktrees/worktree/NOTES_MERGE_REF -expecting success of 3070.43 'wildmatch: no match 'foo' '??'': - test_must_fail test-tool wildmatch wildmatch 'foo' '??' - -ok 43 - wildmatch: no match 'foo' '??' +Auto-merging notes for 02f8a63df5a5eb7863e18dffcbc422a31a01d39e +CONFLICT (delete/modify): Notes for object 02f8a63df5a5eb7863e18dffcbc422a31a01d39e deleted in refs/notes/y and modified in refs/notes/z. Version from refs/notes/z left in tree. +checking prerequisite: C_LOCALE_OUTPUT -expecting success of 3070.44 'wildmatch (via ls-files): no match '??' 'foo'': - >expect && - git --glob-pathspecs ls-files -z -- '??' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 44 - wildmatch (via ls-files): no match '??' 'foo' +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false -expecting success of 3070.45 'iwildmatch: no match 'foo' '??'': - test_must_fail test-tool wildmatch iwildmatch 'foo' '??' - -ok 45 - iwildmatch: no match 'foo' '??' +) +prerequisite C_LOCALE_OUTPUT ok +fatal: a notes merge into refs/notes/y is already in-progress at /build/git-2.30.2/t/trash directory.t3320-notes-merge-worktrees +ok 8 - merge z into y while mid-merge in another workdir fails -expecting success of 3070.46 'iwildmatch (via ls-files): no match '??' 'foo'': - >expect && - git --glob-pathspecs --icase-pathspecs ls-files -z -- '??' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 46 - iwildmatch (via ls-files): no match '??' 'foo' +expecting success of 3320.9 'merge z into x while mid-merge on y succeeds': + ( + cd worktree2 && + git config core.notesRef refs/notes/x && + test_must_fail git notes merge z >out 2>&1 && + test_i18ngrep "Automatic notes merge failed" out && + grep -v "A notes merge into refs/notes/x is already in-progress in" out + ) && + echo "ref: refs/notes/x" >expect && + test_cmp expect .git/worktrees/worktree2/NOTES_MERGE_REF -expecting success of 3070.47 'pathmatch: no match 'foo' '??'': - test_must_fail test-tool wildmatch pathmatch 'foo' '??' - -ok 47 - pathmatch: no match 'foo' '??' +checking prerequisite: C_LOCALE_OUTPUT -expecting success of 3070.48 'pathmatch (via ls-files): no match '??' 'foo'': - >expect && - git ls-files -z -- '??' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 48 - pathmatch (via ls-files): no match '??' 'foo' +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false -expecting success of 3070.49 'ipathmatch: no match 'foo' '??'': - test_must_fail test-tool wildmatch ipathmatch 'foo' '??' - -ok 49 - ipathmatch: no match 'foo' '??' +) +prerequisite C_LOCALE_OUTPUT ok +Automatic notes merge failed. Fix conflicts in /build/git-2.30.2/t/trash directory.t3320-notes-merge-worktrees/.git/worktrees/worktree2/NOTES_MERGE_WORKTREE and commit the result with 'git notes merge --commit', or abort the merge with 'git notes merge --abort'. +Automatic notes merge failed. Fix conflicts in /build/git-2.30.2/t/trash directory.t3320-notes-merge-worktrees/.git/worktrees/worktree2/NOTES_MERGE_WORKTREE and commit the result with 'git notes merge --commit', or abort the merge with 'git notes merge --abort'. +Auto-merging notes for 02f8a63df5a5eb7863e18dffcbc422a31a01d39e +CONFLICT (content): Merge conflict in notes for object 02f8a63df5a5eb7863e18dffcbc422a31a01d39e +ok 9 - merge z into x while mid-merge on y succeeds -expecting success of 3070.50 'ipathmatch (via ls-files): no match '??' 'foo'': - >expect && - git --icase-pathspecs ls-files -z -- '??' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 50 - ipathmatch (via ls-files): no match '??' 'foo' +# passed all 9 test(s) +1..9 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t3400-rebase.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3400-rebase/.git/ +expecting success of 3400.1 'prepare repository with topic branches': + git config core.logAllRefUpdates true && + echo First >A && + git update-index --add A && + git commit -m "Add A." && + git checkout -b force-3way && + echo Dummy >Y && + git update-index --add Y && + git commit -m "Add Y." && + git checkout -b filemove && + git reset --soft master && + mkdir D && + git mv A D/A && + git commit -m "Move A." && + git checkout -b my-topic-branch master && + echo Second >B && + git update-index --add B && + git commit -m "Add B." && + git checkout -f master && + echo Third >>A && + git update-index A && + git commit -m "Modify A." && + git checkout -b side my-topic-branch && + echo Side >>C && + git add C && + git commit -m "Add C" && + git checkout -f my-topic-branch && + git tag topic -expecting success of 3070.51 'cleanup after previous file test': - if test -e .git/created_test_file - then - git reset && - git clean -df - fi - -Removing actual -Removing actual.err -Removing actual.raw -Removing expect -Removing foo -ok 51 - cleanup after previous file test +[master (root-commit) d07698a] Add A. + Author: author@name + 1 file changed, 1 insertion(+) + create mode 100644 A +Switched to a new branch 'force-3way' +[force-3way ab367b0] Add Y. + Author: author@name + 1 file changed, 1 insertion(+) + create mode 100644 Y +Switched to a new branch 'filemove' +[filemove a191279] Move A. + Author: author@name + 2 files changed, 1 insertion(+) + rename A => D/A (100%) + create mode 100644 Y +Switched to a new branch 'my-topic-branch' +[my-topic-branch 6153d68] Add B. + Author: author@name + 1 file changed, 1 insertion(+) + create mode 100644 B +Switched to branch 'master' +[master aee1561] Modify A. + Author: author@name + 1 file changed, 1 insertion(+) +Switched to a new branch 'side' +[side 6463402] Add C + Author: author@name + 1 file changed, 1 insertion(+) + create mode 100644 C +Switched to branch 'my-topic-branch' +ok 1 - prepare repository with topic branches -expecting success of 3070.52 'setup match file test for foo': - file=$(cat .git/expected_test_file) && - if should_create_test_file "$file" - then - dirs=${file%/*} - if test "$file" != "$dirs" - then - mkdir -p -- "$dirs" && - touch -- "./$text" - else - touch -- "./$file" - fi && - git add -A && - printf "%s" "$file" >.git/created_test_file - elif test -e .git/created_test_file - then - rm .git/created_test_file - fi - -ok 52 - setup match file test for foo +expecting success of 3400.2 'rebase on dirty worktree': + echo dirty >>A && + test_must_fail git rebase master -expecting success of 3070.53 'wildmatch: match 'foo' '*'': - test-tool wildmatch wildmatch 'foo' '*' - -ok 53 - wildmatch: match 'foo' '*' +error: cannot rebase: You have unstaged changes. +error: Please commit or stash them. +ok 2 - rebase on dirty worktree -expecting success of 3070.54 'wildmatch (via ls-files): match '*' 'foo'': - printf '%s' 'foo' >expect && - git --glob-pathspecs ls-files -z -- '*' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 54 - wildmatch (via ls-files): match '*' 'foo' +expecting success of 3400.3 'rebase on dirty cache': + git add A && + test_must_fail git rebase master -expecting success of 3070.55 'iwildmatch: match 'foo' '*'': - test-tool wildmatch iwildmatch 'foo' '*' - -ok 55 - iwildmatch: match 'foo' '*' +error: cannot rebase: Your index contains uncommitted changes. +error: Please commit or stash them. +ok 3 - rebase on dirty cache -expecting success of 3070.56 'iwildmatch (via ls-files): match '*' 'foo'': - printf '%s' 'foo' >expect && - git --glob-pathspecs --icase-pathspecs ls-files -z -- '*' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 56 - iwildmatch (via ls-files): match '*' 'foo' +expecting success of 3400.4 'rebase against master': + git reset --hard HEAD && + git rebase master -expecting success of 3070.57 'pathmatch: match 'foo' '*'': - test-tool wildmatch pathmatch 'foo' '*' - -ok 57 - pathmatch: match 'foo' '*' +HEAD is now at 6153d68 Add B. +Rebasing (1/1) Successfully rebased and updated refs/heads/my-topic-branch. +ok 4 - rebase against master -expecting success of 3070.58 'pathmatch (via ls-files): match '*' 'foo'': - printf '%s' 'foo' >expect && - git ls-files -z -- '*' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 58 - pathmatch (via ls-files): match '*' 'foo' +expecting success of 3400.5 'rebase sets ORIG_HEAD to pre-rebase state': + git checkout -b orig-head topic && + pre="$(git rev-parse --verify HEAD)" && + git rebase master && + test_cmp_rev "$pre" ORIG_HEAD && + test_cmp_rev ! "$pre" HEAD -expecting success of 3070.59 'ipathmatch: match 'foo' '*'': - test-tool wildmatch ipathmatch 'foo' '*' - -ok 59 - ipathmatch: match 'foo' '*' +Switched to a new branch 'orig-head' +Rebasing (1/1) Successfully rebased and updated refs/heads/orig-head. +ok 5 - rebase sets ORIG_HEAD to pre-rebase state -expecting success of 3070.60 'ipathmatch (via ls-files): match '*' 'foo'': - printf '%s' 'foo' >expect && - git --icase-pathspecs ls-files -z -- '*' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 60 - ipathmatch (via ls-files): match '*' 'foo' +expecting success of 3400.6 'rebase, with and specified as :/quuxery': + test_when_finished "git branch -D torebase" && + git checkout -b torebase my-topic-branch^ && + upstream=$(git rev-parse ":/Add B") && + onto=$(git rev-parse ":/Add A") && + git rebase --onto $onto $upstream && + git reset --hard my-topic-branch^ && + git rebase --onto ":/Add A" ":/Add B" && + git checkout my-topic-branch -expecting success of 3070.61 'cleanup after previous file test': - if test -e .git/created_test_file - then - git reset && - git clean -df - fi - -Removing actual -Removing actual.err -Removing actual.raw -Removing expect -Removing foo -ok 61 - cleanup after previous file test +Switched to a new branch 'torebase' +Current branch torebase is up to date. +HEAD is now at aee1561 Modify A. +Current branch torebase is up to date. +Switched to branch 'my-topic-branch' +Deleted branch torebase (was aee1561). +ok 6 - rebase, with and specified as :/quuxery -expecting success of 3070.62 'setup match file test for foo': - file=$(cat .git/expected_test_file) && - if should_create_test_file "$file" - then - dirs=${file%/*} - if test "$file" != "$dirs" - then - mkdir -p -- "$dirs" && - touch -- "./$text" - else - touch -- "./$file" - fi && - git add -A && - printf "%s" "$file" >.git/created_test_file - elif test -e .git/created_test_file - then - rm .git/created_test_file - fi - -ok 62 - setup match file test for foo +expecting success of 3400.7 'the rebase operation should not have destroyed author information': + ! (git log | grep "Author:" | grep "<>") -expecting success of 3070.63 'wildmatch: match 'foo' 'f*'': - test-tool wildmatch wildmatch 'foo' 'f*' - -ok 63 - wildmatch: match 'foo' 'f*' +ok 7 - the rebase operation should not have destroyed author information -expecting success of 3070.64 'wildmatch (via ls-files): match 'f*' 'foo'': - printf '%s' 'foo' >expect && - git --glob-pathspecs ls-files -z -- 'f*' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 64 - wildmatch (via ls-files): match 'f*' 'foo' +expecting success of 3400.8 'the rebase operation should not have destroyed author information (2)': + git log -1 | + grep 'Author: author@name ' -expecting success of 3070.65 'iwildmatch: match 'foo' 'f*'': - test-tool wildmatch iwildmatch 'foo' 'f*' - -ok 65 - iwildmatch: match 'foo' 'f*' +Author: author@name +ok 8 - the rebase operation should not have destroyed author information (2) -expecting success of 3070.66 'iwildmatch (via ls-files): match 'f*' 'foo'': - printf '%s' 'foo' >expect && - git --glob-pathspecs --icase-pathspecs ls-files -z -- 'f*' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 66 - iwildmatch (via ls-files): match 'f*' 'foo' +expecting success of 3400.9 'HEAD was detached during rebase': + test $(git rev-parse HEAD@{1}) != $(git rev-parse my-topic-branch@{1}) -expecting success of 3070.67 'pathmatch: match 'foo' 'f*'': - test-tool wildmatch pathmatch 'foo' 'f*' - -ok 67 - pathmatch: match 'foo' 'f*' +ok 9 - HEAD was detached during rebase -expecting success of 3070.68 'pathmatch (via ls-files): match 'f*' 'foo'': - printf '%s' 'foo' >expect && - git ls-files -z -- 'f*' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 68 - pathmatch (via ls-files): match 'f*' 'foo' +expecting success of 3400.10 'rebase from ambiguous branch name': + git checkout -b topic side && + git rebase master -expecting success of 3070.69 'ipathmatch: match 'foo' 'f*'': - test-tool wildmatch ipathmatch 'foo' 'f*' - -ok 69 - ipathmatch: match 'foo' 'f*' +Switched to a new branch 'topic' +Rebasing (1/2) Rebasing (2/2) Successfully rebased and updated refs/heads/topic. +ok 10 - rebase from ambiguous branch name -expecting success of 3070.70 'ipathmatch (via ls-files): match 'f*' 'foo'': - printf '%s' 'foo' >expect && - git --icase-pathspecs ls-files -z -- 'f*' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 70 - ipathmatch (via ls-files): match 'f*' 'foo' +expecting success of 3400.11 'rebase off of the previous branch using "-"': + git checkout master && + git checkout HEAD^ && + git rebase @{-1} >expect.messages && + git merge-base master HEAD >expect.forkpoint && -expecting success of 3070.71 'cleanup after previous file test': - if test -e .git/created_test_file - then - git reset && - git clean -df - fi - -Removing actual -Removing actual.err -Removing actual.raw -Removing expect -Removing foo -ok 71 - cleanup after previous file test + git checkout master && + git checkout HEAD^ && + git rebase - >actual.messages && + git merge-base master HEAD >actual.forkpoint && -expecting success of 3070.72 'setup match file test for foo': - file=$(cat .git/expected_test_file) && - if should_create_test_file "$file" - then - dirs=${file%/*} - if test "$file" != "$dirs" - then - mkdir -p -- "$dirs" && - touch -- "./$text" - else - touch -- "./$file" - fi && - git add -A && - printf "%s" "$file" >.git/created_test_file - elif test -e .git/created_test_file - then - rm .git/created_test_file - fi - -ok 72 - setup match file test for foo + test_cmp expect.forkpoint actual.forkpoint && + # the next one is dubious---we may want to say "-", + # instead of @{-1}, in the message + test_i18ncmp expect.messages actual.messages -expecting success of 3070.73 'wildmatch: no match 'foo' '*f'': - test_must_fail test-tool wildmatch wildmatch 'foo' '*f' - -ok 73 - wildmatch: no match 'foo' '*f' +Switched to branch 'master' +Note: switching to 'HEAD^'. -expecting success of 3070.74 'wildmatch (via ls-files): no match '*f' 'foo'': - >expect && - git --glob-pathspecs ls-files -z -- '*f' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 74 - wildmatch (via ls-files): no match '*f' 'foo' +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. -expecting success of 3070.75 'iwildmatch: no match 'foo' '*f'': - test_must_fail test-tool wildmatch iwildmatch 'foo' '*f' - -ok 75 - iwildmatch: no match 'foo' '*f' +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: -expecting success of 3070.76 'iwildmatch (via ls-files): no match '*f' 'foo'': - >expect && - git --glob-pathspecs --icase-pathspecs ls-files -z -- '*f' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 76 - iwildmatch (via ls-files): no match '*f' 'foo' + git switch -c -expecting success of 3070.77 'pathmatch: no match 'foo' '*f'': - test_must_fail test-tool wildmatch pathmatch 'foo' '*f' - -ok 77 - pathmatch: no match 'foo' '*f' +Or undo this operation with: -expecting success of 3070.78 'pathmatch (via ls-files): no match '*f' 'foo'': - >expect && - git ls-files -z -- '*f' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 78 - pathmatch (via ls-files): no match '*f' 'foo' + git switch - -expecting success of 3070.79 'ipathmatch: no match 'foo' '*f'': - test_must_fail test-tool wildmatch ipathmatch 'foo' '*f' - -ok 79 - ipathmatch: no match 'foo' '*f' +Turn off this advice by setting config variable advice.detachedHead to false -expecting success of 3070.80 'ipathmatch (via ls-files): no match '*f' 'foo'': - >expect && - git --icase-pathspecs ls-files -z -- '*f' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 80 - ipathmatch (via ls-files): no match '*f' 'foo' +HEAD is now at d07698a Add A. + Successfully rebased and updated detached HEAD. +Switched to branch 'master' +Note: switching to 'HEAD^'. -expecting success of 3070.81 'cleanup after previous file test': - if test -e .git/created_test_file - then - git reset && - git clean -df - fi - -Removing actual -Removing actual.err -Removing actual.raw -Removing expect -Removing foo -ok 81 - cleanup after previous file test +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. -expecting success of 3070.82 'setup match file test for foo': - file=$(cat .git/expected_test_file) && - if should_create_test_file "$file" - then - dirs=${file%/*} - if test "$file" != "$dirs" - then - mkdir -p -- "$dirs" && - touch -- "./$text" - else - touch -- "./$file" - fi && - git add -A && - printf "%s" "$file" >.git/created_test_file - elif test -e .git/created_test_file - then - rm .git/created_test_file - fi - -ok 82 - setup match file test for foo +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: -expecting success of 3070.83 'wildmatch: match 'foo' '*foo*'': - test-tool wildmatch wildmatch 'foo' '*foo*' - -ok 83 - wildmatch: match 'foo' '*foo*' + git switch -c -expecting success of 3070.84 'wildmatch (via ls-files): match '*foo*' 'foo'': - printf '%s' 'foo' >expect && - git --glob-pathspecs ls-files -z -- '*foo*' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 84 - wildmatch (via ls-files): match '*foo*' 'foo' +Or undo this operation with: -expecting success of 3070.85 'iwildmatch: match 'foo' '*foo*'': - test-tool wildmatch iwildmatch 'foo' '*foo*' - -ok 85 - iwildmatch: match 'foo' '*foo*' + git switch - -expecting success of 3070.86 'iwildmatch (via ls-files): match '*foo*' 'foo'': - printf '%s' 'foo' >expect && - git --glob-pathspecs --icase-pathspecs ls-files -z -- '*foo*' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 86 - iwildmatch (via ls-files): match '*foo*' 'foo' +Turn off this advice by setting config variable advice.detachedHead to false -expecting success of 3070.87 'pathmatch: match 'foo' '*foo*'': - test-tool wildmatch pathmatch 'foo' '*foo*' - -ok 87 - pathmatch: match 'foo' '*foo*' +HEAD is now at d07698a Add A. + Successfully rebased and updated detached HEAD. +checking prerequisite: C_LOCALE_OUTPUT -expecting success of 3070.88 'pathmatch (via ls-files): match '*foo*' 'foo'': - printf '%s' 'foo' >expect && - git ls-files -z -- '*foo*' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 88 - pathmatch (via ls-files): match '*foo*' 'foo' +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false -expecting success of 3070.89 'ipathmatch: match 'foo' '*foo*'': - test-tool wildmatch ipathmatch 'foo' '*foo*' - -ok 89 - ipathmatch: match 'foo' '*foo*' +) +prerequisite C_LOCALE_OUTPUT ok +ok 11 - rebase off of the previous branch using "-" -expecting success of 3070.90 'ipathmatch (via ls-files): match '*foo*' 'foo'': - printf '%s' 'foo' >expect && - git --icase-pathspecs ls-files -z -- '*foo*' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 90 - ipathmatch (via ls-files): match '*foo*' 'foo' +expecting success of 3400.12 'rebase a single mode change': + git checkout master && + git branch -D topic && + echo 1 >X && + git add X && + test_tick && + git commit -m prepare && + git checkout -b modechange HEAD^ && + echo 1 >X && + git add X && + test_chmod +x A && + test_tick && + git commit -m modechange && + GIT_TRACE=1 git rebase master -expecting success of 3070.91 'cleanup after previous file test': - if test -e .git/created_test_file - then - git reset && - git clean -df - fi - -Removing actual -Removing actual.err -Removing actual.raw -Removing expect -Removing foo -ok 91 - cleanup after previous file test +Switched to branch 'master' +Deleted branch topic (was 37cf2dd). +[master 639dadf] prepare + Author: author@name + 1 file changed, 1 insertion(+) + create mode 100644 X +Switched to a new branch 'modechange' +[modechange 4d828e1] modechange + Author: author@name + 2 files changed, 1 insertion(+) + mode change 100644 => 100755 A + create mode 100644 X +trace: built-in: git rebase master +trace: run_command: GIT_REFLOG_ACTION='rebase (start): checkout master' git checkout 639dadfdc5b9b40b10f31dcac247b1fa6d513421 +Rebasing (1/1) trace: run_command: git notes copy --for-rewrite=rebase +trace: built-in: git notes copy --for-rewrite=rebase + Successfully rebased and updated refs/heads/modechange. +ok 12 - rebase a single mode change -expecting success of 3070.92 'setup match file test for foobar': - file=$(cat .git/expected_test_file) && - if should_create_test_file "$file" - then - dirs=${file%/*} - if test "$file" != "$dirs" - then - mkdir -p -- "$dirs" && - touch -- "./$text" - else - touch -- "./$file" - fi && - git add -A && - printf "%s" "$file" >.git/created_test_file - elif test -e .git/created_test_file - then - rm .git/created_test_file - fi - -ok 92 - setup match file test for foobar +expecting success of 3400.13 'rebase is not broken by diff.renames': + test_config diff.renames copies && + git checkout filemove && + GIT_TRACE=1 git rebase force-3way -expecting success of 3070.93 'wildmatch: match 'foobar' '*ob*a*r*'': - test-tool wildmatch wildmatch 'foobar' '*ob*a*r*' - -ok 93 - wildmatch: match 'foobar' '*ob*a*r*' +Switched to branch 'filemove' +trace: built-in: git rebase force-3way +trace: run_command: GIT_REFLOG_ACTION='rebase (start): checkout force-3way' git checkout ab367b07f2be5bc989e9fa8311413a427aa42241 +Rebasing (1/1) trace: run_command: git notes copy --for-rewrite=rebase +trace: built-in: git notes copy --for-rewrite=rebase + Successfully rebased and updated refs/heads/filemove. +ok 13 - rebase is not broken by diff.renames -expecting success of 3070.94 'wildmatch (via ls-files): match '*ob*a*r*' 'foobar'': - printf '%s' 'foobar' >expect && - git --glob-pathspecs ls-files -z -- '*ob*a*r*' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 94 - wildmatch (via ls-files): match '*ob*a*r*' 'foobar' +expecting success of 3400.14 'setup: recover': + test_might_fail git rebase --abort && + git reset --hard && + git checkout modechange -expecting success of 3070.95 'iwildmatch: match 'foobar' '*ob*a*r*'': - test-tool wildmatch iwildmatch 'foobar' '*ob*a*r*' - -ok 95 - iwildmatch: match 'foobar' '*ob*a*r*' +fatal: No rebase in progress? +HEAD is now at 2a8cc4d Move A. +Switched to branch 'modechange' +ok 14 - setup: recover -expecting success of 3070.96 'iwildmatch (via ls-files): match '*ob*a*r*' 'foobar'': - printf '%s' 'foobar' >expect && - git --glob-pathspecs --icase-pathspecs ls-files -z -- '*ob*a*r*' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 96 - iwildmatch (via ls-files): match '*ob*a*r*' 'foobar' +expecting success of 3400.15 'Show verbose error when HEAD could not be detached': + >B && + test_when_finished "rm -f B" && + test_must_fail git rebase topic 2>output.err >output.out && + test_i18ngrep "The following untracked working tree files would be overwritten by checkout:" output.err && + test_i18ngrep B output.err -expecting success of 3070.97 'pathmatch: match 'foobar' '*ob*a*r*'': - test-tool wildmatch pathmatch 'foobar' '*ob*a*r*' - -ok 97 - pathmatch: match 'foobar' '*ob*a*r*' +error: The following untracked working tree files would be overwritten by checkout: + B +ok 15 - Show verbose error when HEAD could not be detached -expecting success of 3070.98 'pathmatch (via ls-files): match '*ob*a*r*' 'foobar'': - printf '%s' 'foobar' >expect && - git ls-files -z -- '*ob*a*r*' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 98 - pathmatch (via ls-files): match '*ob*a*r*' 'foobar' +expecting success of 3400.16 'fail when upstream arg is missing and not on branch': + git checkout topic && + test_must_fail git rebase -expecting success of 3070.99 'ipathmatch: match 'foobar' '*ob*a*r*'': - test-tool wildmatch ipathmatch 'foobar' '*ob*a*r*' - -ok 99 - ipathmatch: match 'foobar' '*ob*a*r*' +Note: switching to 'topic'. -expecting success of 3070.100 'ipathmatch (via ls-files): match '*ob*a*r*' 'foobar'': - printf '%s' 'foobar' >expect && - git --icase-pathspecs ls-files -z -- '*ob*a*r*' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 100 - ipathmatch (via ls-files): match '*ob*a*r*' 'foobar' +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. -expecting success of 3070.101 'cleanup after previous file test': - if test -e .git/created_test_file - then - git reset && - git clean -df - fi - -Removing actual -Removing actual.err -Removing actual.raw -Removing expect -Removing foobar -ok 101 - cleanup after previous file test +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: -expecting success of 3070.102 'setup match file test for aaaaaaabababab': - file=$(cat .git/expected_test_file) && - if should_create_test_file "$file" - then - dirs=${file%/*} - if test "$file" != "$dirs" - then - mkdir -p -- "$dirs" && - touch -- "./$text" - else - touch -- "./$file" - fi && - git add -A && - printf "%s" "$file" >.git/created_test_file - elif test -e .git/created_test_file - then - rm .git/created_test_file - fi - -ok 102 - setup match file test for aaaaaaabababab + git switch -c -expecting success of 3070.103 'wildmatch: match 'aaaaaaabababab' '*ab'': - test-tool wildmatch wildmatch 'aaaaaaabababab' '*ab' - -ok 103 - wildmatch: match 'aaaaaaabababab' '*ab' +Or undo this operation with: -expecting success of 3070.104 'wildmatch (via ls-files): match '*ab' 'aaaaaaabababab'': - printf '%s' 'aaaaaaabababab' >expect && - git --glob-pathspecs ls-files -z -- '*ab' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 104 - wildmatch (via ls-files): match '*ab' 'aaaaaaabababab' + git switch - -expecting success of 3070.105 'iwildmatch: match 'aaaaaaabababab' '*ab'': - test-tool wildmatch iwildmatch 'aaaaaaabababab' '*ab' - -ok 105 - iwildmatch: match 'aaaaaaabababab' '*ab' +Turn off this advice by setting config variable advice.detachedHead to false -expecting success of 3070.106 'iwildmatch (via ls-files): match '*ab' 'aaaaaaabababab'': - printf '%s' 'aaaaaaabababab' >expect && - git --glob-pathspecs --icase-pathspecs ls-files -z -- '*ab' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 106 - iwildmatch (via ls-files): match '*ab' 'aaaaaaabababab' +HEAD is now at 6153d68 Add B. +You are not currently on a branch. +Please specify which branch you want to rebase against. +See git-rebase(1) for details. -expecting success of 3070.107 'pathmatch: match 'aaaaaaabababab' '*ab'': - test-tool wildmatch pathmatch 'aaaaaaabababab' '*ab' - -ok 107 - pathmatch: match 'aaaaaaabababab' '*ab' + git rebase '' -expecting success of 3070.108 'pathmatch (via ls-files): match '*ab' 'aaaaaaabababab'': - printf '%s' 'aaaaaaabababab' >expect && - git ls-files -z -- '*ab' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 108 - pathmatch (via ls-files): match '*ab' 'aaaaaaabababab' +ok 16 - fail when upstream arg is missing and not on branch -expecting success of 3070.109 'ipathmatch: match 'aaaaaaabababab' '*ab'': - test-tool wildmatch ipathmatch 'aaaaaaabababab' '*ab' - -ok 109 - ipathmatch: match 'aaaaaaabababab' '*ab' +expecting success of 3400.17 'fail when upstream arg is missing and not configured': + git checkout -b no-config topic && + test_must_fail git rebase -expecting success of 3070.110 'ipathmatch (via ls-files): match '*ab' 'aaaaaaabababab'': - printf '%s' 'aaaaaaabababab' >expect && - git --icase-pathspecs ls-files -z -- '*ab' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 110 - ipathmatch (via ls-files): match '*ab' 'aaaaaaabababab' +Switched to a new branch 'no-config' +There is no tracking information for the current branch. +Please specify which branch you want to rebase against. +See git-rebase(1) for details. -expecting success of 3070.111 'cleanup after previous file test': - if test -e .git/created_test_file - then - git reset && - git clean -df - fi - -Removing aaaaaaabababab -Removing actual -Removing actual.err -Removing actual.raw -Removing expect -ok 111 - cleanup after previous file test + git rebase '' -expecting success of 3070.112 'setup match file test for foo*': - file=$(cat .git/expected_test_file) && - if should_create_test_file "$file" - then - dirs=${file%/*} - if test "$file" != "$dirs" - then - mkdir -p -- "$dirs" && - touch -- "./$text" - else - touch -- "./$file" - fi && - git add -A && - printf "%s" "$file" >.git/created_test_file - elif test -e .git/created_test_file - then - rm .git/created_test_file - fi - -ok 112 - setup match file test for foo* +If you wish to set tracking information for this branch you can do so with: -expecting success of 3070.113 'wildmatch: match 'foo*' 'foo\*'': - test-tool wildmatch wildmatch 'foo*' 'foo\*' - -ok 113 - wildmatch: match 'foo*' 'foo\*' + git branch --set-upstream-to=/ no-config -expecting success of 3070.114 'wildmatch (via ls-files): match 'foo\*' 'foo*'': - printf '%s' 'foo*' >expect && - git --glob-pathspecs ls-files -z -- 'foo\*' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 114 - wildmatch (via ls-files): match 'foo\*' 'foo*' +ok 17 - fail when upstream arg is missing and not configured -expecting success of 3070.115 'iwildmatch: match 'foo*' 'foo\*'': - test-tool wildmatch iwildmatch 'foo*' 'foo\*' - -ok 115 - iwildmatch: match 'foo*' 'foo\*' +expecting success of 3400.18 'rebase works with format.useAutoBase': + test_config format.useAutoBase true && + git checkout topic && + git rebase master -expecting success of 3070.116 'iwildmatch (via ls-files): match 'foo\*' 'foo*'': - printf '%s' 'foo*' >expect && - git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo\*' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 116 - iwildmatch (via ls-files): match 'foo\*' 'foo*' +Note: switching to 'topic'. -expecting success of 3070.117 'pathmatch: match 'foo*' 'foo\*'': - test-tool wildmatch pathmatch 'foo*' 'foo\*' - -ok 117 - pathmatch: match 'foo*' 'foo\*' +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. -expecting success of 3070.118 'pathmatch (via ls-files): match 'foo\*' 'foo*'': - printf '%s' 'foo*' >expect && - git ls-files -z -- 'foo\*' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 118 - pathmatch (via ls-files): match 'foo\*' 'foo*' +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: -expecting success of 3070.119 'ipathmatch: match 'foo*' 'foo\*'': - test-tool wildmatch ipathmatch 'foo*' 'foo\*' - -ok 119 - ipathmatch: match 'foo*' 'foo\*' + git switch -c -expecting success of 3070.120 'ipathmatch (via ls-files): match 'foo\*' 'foo*'': - printf '%s' 'foo*' >expect && - git --icase-pathspecs ls-files -z -- 'foo\*' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 120 - ipathmatch (via ls-files): match 'foo\*' 'foo*' +Or undo this operation with: -expecting success of 3070.121 'cleanup after previous file test': - if test -e .git/created_test_file - then - git reset && - git clean -df - fi - -Removing actual -Removing actual.err -Removing actual.raw -Removing expect -Removing foo* -ok 121 - cleanup after previous file test + git switch - -expecting success of 3070.122 'setup match file test for foobar': - file=$(cat .git/expected_test_file) && - if should_create_test_file "$file" - then - dirs=${file%/*} - if test "$file" != "$dirs" - then - mkdir -p -- "$dirs" && - touch -- "./$text" - else - touch -- "./$file" - fi && - git add -A && - printf "%s" "$file" >.git/created_test_file - elif test -e .git/created_test_file - then - rm .git/created_test_file - fi - -ok 122 - setup match file test for foobar +Turn off this advice by setting config variable advice.detachedHead to false -expecting success of 3070.123 'wildmatch: no match 'foobar' 'foo\*bar'': - test_must_fail test-tool wildmatch wildmatch 'foobar' 'foo\*bar' - -ok 123 - wildmatch: no match 'foobar' 'foo\*bar' +HEAD is now at 6153d68 Add B. +Rebasing (1/1) Successfully rebased and updated detached HEAD. +ok 18 - rebase works with format.useAutoBase -expecting success of 3070.124 'wildmatch (via ls-files): no match 'foo\*bar' 'foobar'': - >expect && - git --glob-pathspecs ls-files -z -- 'foo\*bar' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 124 - wildmatch (via ls-files): no match 'foo\*bar' 'foobar' +expecting success of 3400.19 'default to common base in @{upstream}s reflog if no upstream arg (--merge)': + git checkout -b default-base master && + git checkout -b default topic && + git config branch.default.remote . && + git config branch.default.merge refs/heads/default-base && + git rebase --merge && + git rev-parse --verify default-base >expect && + git rev-parse default~1 >actual && + test_cmp expect actual && + git checkout default-base && + git reset --hard HEAD^ && + git checkout default && + git rebase --merge && + git rev-parse --verify default-base >expect && + git rev-parse default~1 >actual && + test_cmp expect actual -expecting success of 3070.125 'iwildmatch: no match 'foobar' 'foo\*bar'': - test_must_fail test-tool wildmatch iwildmatch 'foobar' 'foo\*bar' - -ok 125 - iwildmatch: no match 'foobar' 'foo\*bar' +Warning: you are leaving 1 commit behind, not connected to +any of your branches: -expecting success of 3070.126 'iwildmatch (via ls-files): no match 'foo\*bar' 'foobar'': - >expect && - git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo\*bar' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 126 - iwildmatch (via ls-files): no match 'foo\*bar' 'foobar' + a6867f5 Add B. -expecting success of 3070.127 'pathmatch: no match 'foobar' 'foo\*bar'': - test_must_fail test-tool wildmatch pathmatch 'foobar' 'foo\*bar' - -ok 127 - pathmatch: no match 'foobar' 'foo\*bar' +If you want to keep it by creating a new branch, this may be a good time +to do so with: -expecting success of 3070.128 'pathmatch (via ls-files): no match 'foo\*bar' 'foobar'': - >expect && - git ls-files -z -- 'foo\*bar' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 128 - pathmatch (via ls-files): no match 'foo\*bar' 'foobar' + git branch a6867f5 -expecting success of 3070.129 'ipathmatch: no match 'foobar' 'foo\*bar'': - test_must_fail test-tool wildmatch ipathmatch 'foobar' 'foo\*bar' - -ok 129 - ipathmatch: no match 'foobar' 'foo\*bar' +Switched to a new branch 'default-base' +Switched to a new branch 'default' +Rebasing (1/1) Successfully rebased and updated refs/heads/default. +Switched to branch 'default-base' +HEAD is now at aee1561 Modify A. +Switched to branch 'default' +Your branch is ahead of 'default-base' by 2 commits. + (use "git push" to publish your local commits) +Rebasing (1/1) Successfully rebased and updated refs/heads/default. +ok 19 - default to common base in @{upstream}s reflog if no upstream arg (--merge) -expecting success of 3070.130 'ipathmatch (via ls-files): no match 'foo\*bar' 'foobar'': - >expect && - git --icase-pathspecs ls-files -z -- 'foo\*bar' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 130 - ipathmatch (via ls-files): no match 'foo\*bar' 'foobar' +expecting success of 3400.20 'default to common base in @{upstream}s reflog if no upstream arg (--apply)': + git checkout -B default-base master && + git checkout -B default topic && + git config branch.default.remote . && + git config branch.default.merge refs/heads/default-base && + git rebase --apply && + git rev-parse --verify default-base >expect && + git rev-parse default~1 >actual && + test_cmp expect actual && + git checkout default-base && + git reset --hard HEAD^ && + git checkout default && + git rebase --apply && + git rev-parse --verify default-base >expect && + git rev-parse default~1 >actual && + test_cmp expect actual -expecting success of 3070.131 'cleanup after previous file test': - if test -e .git/created_test_file - then - git reset && - git clean -df - fi - -Removing actual -Removing actual.err -Removing actual.raw -Removing expect -Removing foobar -ok 131 - cleanup after previous file test +Switched to and reset branch 'default-base' +Switched to and reset branch 'default' +Your branch and 'default-base' have diverged, +and have 1 and 2 different commits each, respectively. + (use "git pull" to merge the remote branch into yours) +First, rewinding head to replay your work on top of it... +Applying: Add B. +Switched to branch 'default-base' +HEAD is now at aee1561 Modify A. +Switched to branch 'default' +Your branch is ahead of 'default-base' by 2 commits. + (use "git push" to publish your local commits) +First, rewinding head to replay your work on top of it... +Applying: Add B. +ok 20 - default to common base in @{upstream}s reflog if no upstream arg (--apply) -expecting success of 3070.132 'setup match file test for f\oo': - file=$(cat .git/expected_test_file) && - if should_create_test_file "$file" - then - dirs=${file%/*} - if test "$file" != "$dirs" - then - mkdir -p -- "$dirs" && - touch -- "./$text" - else - touch -- "./$file" - fi && - git add -A && - printf "%s" "$file" >.git/created_test_file - elif test -e .git/created_test_file - then - rm .git/created_test_file - fi - -ok 132 - setup match file test for f\oo +expecting success of 3400.21 'cherry-picked commits and fork-point work together': + git checkout default-base && + echo Amended >A && + git commit -a --no-edit --amend && + test_commit B B && + test_commit new_B B "New B" && + test_commit C C && + git checkout default && + git reset --hard default-base@{4} && + test_commit D D && + git cherry-pick -2 default-base^ && + test_commit final_B B "Final B" && + git rebase && + echo Amended >expect && + test_cmp expect A && + echo "Final B" >expect && + test_cmp expect B && + echo C >expect && + test_cmp expect C && + echo D >expect && + test_cmp expect D -expecting success of 3070.133 'wildmatch: match 'f\oo' 'f\\oo'': - test-tool wildmatch wildmatch 'f\oo' 'f\\oo' - -ok 133 - wildmatch: match 'f\oo' 'f\\oo' +Switched to branch 'default-base' +[default-base e6d3cc3] Modify A. + Author: author@name + Date: Fri Apr 1 13:14:15 2005 +0200 + 1 file changed, 1 insertion(+), 1 deletion(-) +[default-base 8f4ff15] B + Author: author@name + 1 file changed, 1 insertion(+) + create mode 100644 B +[default-base 0f217d2] new_B + Author: author@name + 1 file changed, 1 insertion(+), 1 deletion(-) +[default-base 9f8bf15] C + Author: author@name + 1 file changed, 1 insertion(+) + create mode 100644 C +Switched to branch 'default' +Your branch and 'default-base' have diverged, +and have 2 and 4 different commits each, respectively. + (use "git pull" to merge the remote branch into yours) +HEAD is now at aee1561 Modify A. +[default 0072707] D + Author: author@name + 1 file changed, 1 insertion(+) + create mode 100644 D +[default c4297c4] B + Author: author@name + Date: Thu Apr 7 15:15:13 2005 -0700 + 1 file changed, 1 insertion(+) + create mode 100644 B +[default 8f6b6ad] new_B + Author: author@name + Date: Thu Apr 7 15:16:13 2005 -0700 + 1 file changed, 1 insertion(+), 1 deletion(-) +[default 06af578] final_B + Author: author@name + 1 file changed, 1 insertion(+), 1 deletion(-) +Rebasing (1/2) Rebasing (2/2) Successfully rebased and updated refs/heads/default. +ok 21 - cherry-picked commits and fork-point work together -expecting success of 3070.134 'wildmatch (via ls-files): match 'f\\oo' 'f\oo'': - printf '%s' 'f\oo' >expect && - git --glob-pathspecs ls-files -z -- 'f\\oo' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 134 - wildmatch (via ls-files): match 'f\\oo' 'f\oo' +expecting success of 3400.22 'rebase --apply -q is quiet': + git checkout -b quiet topic && + git rebase --apply -q master >output.out 2>&1 && + test_must_be_empty output.out -expecting success of 3070.135 'iwildmatch: match 'f\oo' 'f\\oo'': - test-tool wildmatch iwildmatch 'f\oo' 'f\\oo' - -ok 135 - iwildmatch: match 'f\oo' 'f\\oo' +Switched to a new branch 'quiet' +ok 22 - rebase --apply -q is quiet -expecting success of 3070.136 'iwildmatch (via ls-files): match 'f\\oo' 'f\oo'': - printf '%s' 'f\oo' >expect && - git --glob-pathspecs --icase-pathspecs ls-files -z -- 'f\\oo' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 136 - iwildmatch (via ls-files): match 'f\\oo' 'f\oo' +expecting success of 3400.23 'rebase --merge -q is quiet': + git checkout -B quiet topic && + git rebase --merge -q master >output.out 2>&1 && + test_must_be_empty output.out -expecting success of 3070.137 'pathmatch: match 'f\oo' 'f\\oo'': - test-tool wildmatch pathmatch 'f\oo' 'f\\oo' - -ok 137 - pathmatch: match 'f\oo' 'f\\oo' +Reset branch 'quiet' +ok 23 - rebase --merge -q is quiet -expecting success of 3070.138 'pathmatch (via ls-files): match 'f\\oo' 'f\oo'': - printf '%s' 'f\oo' >expect && - git ls-files -z -- 'f\\oo' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 138 - pathmatch (via ls-files): match 'f\\oo' 'f\oo' +expecting success of 3400.24 'Rebase a commit that sprinkles CRs in': + ( + echo "One" && + echo "TwoQ" && + echo "Three" && + echo "FQur" && + echo "Five" + ) | q_to_cr >CR && + git add CR && + test_tick && + git commit -a -m "A file with a line with CR" && + git tag file-with-cr && + git checkout HEAD^0 && + git rebase --onto HEAD^^ HEAD^ && + git diff --exit-code file-with-cr:CR HEAD:CR -expecting success of 3070.139 'ipathmatch: match 'f\oo' 'f\\oo'': - test-tool wildmatch ipathmatch 'f\oo' 'f\\oo' - -ok 139 - ipathmatch: match 'f\oo' 'f\\oo' +[quiet 517897f] A file with a line with CR + Author: author@name + 1 file changed, 5 insertions(+) + create mode 100644 CR +Note: switching to 'HEAD^0'. -expecting success of 3070.140 'ipathmatch (via ls-files): match 'f\\oo' 'f\oo'': - printf '%s' 'f\oo' >expect && - git --icase-pathspecs ls-files -z -- 'f\\oo' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 140 - ipathmatch (via ls-files): match 'f\\oo' 'f\oo' +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. -expecting success of 3070.141 'cleanup after previous file test': - if test -e .git/created_test_file - then - git reset && - git clean -df - fi - -Removing actual -Removing actual.err -Removing actual.raw -Removing expect -Removing "f\\oo" -ok 141 - cleanup after previous file test +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: -expecting success of 3070.142 'setup match file test for ball': - file=$(cat .git/expected_test_file) && - if should_create_test_file "$file" - then - dirs=${file%/*} - if test "$file" != "$dirs" - then - mkdir -p -- "$dirs" && - touch -- "./$text" - else - touch -- "./$file" - fi && - git add -A && - printf "%s" "$file" >.git/created_test_file - elif test -e .git/created_test_file - then - rm .git/created_test_file - fi - -ok 142 - setup match file test for ball + git switch -c -expecting success of 3070.143 'wildmatch: match 'ball' '*[al]?'': - test-tool wildmatch wildmatch 'ball' '*[al]?' - -ok 143 - wildmatch: match 'ball' '*[al]?' +Or undo this operation with: -expecting success of 3070.144 'wildmatch (via ls-files): match '*[al]?' 'ball'': - printf '%s' 'ball' >expect && - git --glob-pathspecs ls-files -z -- '*[al]?' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 144 - wildmatch (via ls-files): match '*[al]?' 'ball' + git switch - -expecting success of 3070.145 'iwildmatch: match 'ball' '*[al]?'': - test-tool wildmatch iwildmatch 'ball' '*[al]?' - -ok 145 - iwildmatch: match 'ball' '*[al]?' +Turn off this advice by setting config variable advice.detachedHead to false -expecting success of 3070.146 'iwildmatch (via ls-files): match '*[al]?' 'ball'': - printf '%s' 'ball' >expect && - git --glob-pathspecs --icase-pathspecs ls-files -z -- '*[al]?' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 146 - iwildmatch (via ls-files): match '*[al]?' 'ball' +HEAD is now at 517897f A file with a line with CR +Rebasing (1/1) Successfully rebased and updated detached HEAD. +ok 24 - Rebase a commit that sprinkles CRs in -expecting success of 3070.147 'pathmatch: match 'ball' '*[al]?'': - test-tool wildmatch pathmatch 'ball' '*[al]?' - -ok 147 - pathmatch: match 'ball' '*[al]?' +expecting success of 3400.25 'rebase can copy notes': + git config notes.rewrite.rebase true && + git config notes.rewriteRef "refs/notes/*" && + test_commit n1 && + test_commit n2 && + test_commit n3 && + git notes add -m"a note" n3 && + git rebase --onto n1 n2 && + test "a note" = "$(git notes show HEAD)" -expecting success of 3070.148 'pathmatch (via ls-files): match '*[al]?' 'ball'': - printf '%s' 'ball' >expect && - git ls-files -z -- '*[al]?' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 148 - pathmatch (via ls-files): match '*[al]?' 'ball' +[detached HEAD c1465a7] n1 + Author: author@name + 1 file changed, 1 insertion(+) + create mode 100644 n1.t +[detached HEAD 59772a5] n2 + Author: author@name + 1 file changed, 1 insertion(+) + create mode 100644 n2.t +[detached HEAD f3a64f5] n3 + Author: author@name + 1 file changed, 1 insertion(+) + create mode 100644 n3.t +Rebasing (1/1) Successfully rebased and updated detached HEAD. +ok 25 - rebase can copy notes -expecting success of 3070.149 'ipathmatch: match 'ball' '*[al]?'': - test-tool wildmatch ipathmatch 'ball' '*[al]?' - -ok 149 - ipathmatch: match 'ball' '*[al]?' +expecting success of 3400.26 'rebase -m can copy notes': + git reset --hard n3 && + git rebase -m --onto n1 n2 && + test "a note" = "$(git notes show HEAD)" -expecting success of 3070.150 'ipathmatch (via ls-files): match '*[al]?' 'ball'': - printf '%s' 'ball' >expect && - git --icase-pathspecs ls-files -z -- '*[al]?' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 150 - ipathmatch (via ls-files): match '*[al]?' 'ball' +HEAD is now at f3a64f5 n3 +Rebasing (1/1) Successfully rebased and updated detached HEAD. +ok 26 - rebase -m can copy notes -expecting success of 3070.151 'cleanup after previous file test': - if test -e .git/created_test_file - then - git reset && - git clean -df - fi - -Removing actual -Removing actual.err -Removing actual.raw -Removing ball -Removing expect -ok 151 - cleanup after previous file test +expecting success of 3400.27 'rebase commit with an ancient timestamp': + git reset --hard && -expecting success of 3070.152 'setup match file test for ten': - file=$(cat .git/expected_test_file) && - if should_create_test_file "$file" - then - dirs=${file%/*} - if test "$file" != "$dirs" - then - mkdir -p -- "$dirs" && - touch -- "./$text" - else - touch -- "./$file" - fi && - git add -A && - printf "%s" "$file" >.git/created_test_file - elif test -e .git/created_test_file - then - rm .git/created_test_file - fi - -ok 152 - setup match file test for ten + >old.one && git add old.one && test_tick && + git commit --date="@12345 +0400" -m "Old one" && + >old.two && git add old.two && test_tick && + git commit --date="@23456 +0500" -m "Old two" && + >old.three && git add old.three && test_tick && + git commit --date="@34567 +0600" -m "Old three" && -expecting success of 3070.153 'wildmatch: no match 'ten' '[ten]'': - test_must_fail test-tool wildmatch wildmatch 'ten' '[ten]' - -ok 153 - wildmatch: no match 'ten' '[ten]' + git cat-file commit HEAD^^ >actual && + grep "author .* 12345 +0400$" actual && + git cat-file commit HEAD^ >actual && + grep "author .* 23456 +0500$" actual && + git cat-file commit HEAD >actual && + grep "author .* 34567 +0600$" actual && -expecting success of 3070.154 'wildmatch (via ls-files): no match '[ten]' 'ten'': - >expect && - git --glob-pathspecs ls-files -z -- '[ten]' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 154 - wildmatch (via ls-files): no match '[ten]' 'ten' + git rebase --onto HEAD^^ HEAD^ && -expecting success of 3070.155 'iwildmatch: no match 'ten' '[ten]'': - test_must_fail test-tool wildmatch iwildmatch 'ten' '[ten]' - -ok 155 - iwildmatch: no match 'ten' '[ten]' + git cat-file commit HEAD >actual && + grep "author .* 34567 +0600$" actual -expecting success of 3070.156 'iwildmatch (via ls-files): no match '[ten]' 'ten'': - >expect && - git --glob-pathspecs --icase-pathspecs ls-files -z -- '[ten]' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 156 - iwildmatch (via ls-files): no match '[ten]' 'ten' +HEAD is now at d606871 n3 +[detached HEAD f2d8ed2] Old one + Author: author@name + Date: Thu Jan 1 07:25:45 1970 +0400 + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 old.one +[detached HEAD 1b0d9de] Old two + Author: author@name + Date: Thu Jan 1 11:30:56 1970 +0500 + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 old.two +[detached HEAD 348fbc5] Old three + Author: author@name + Date: Thu Jan 1 15:36:07 1970 +0600 + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 old.three +author author@name 12345 +0400 +author author@name 23456 +0500 +author author@name 34567 +0600 +Rebasing (1/1) Successfully rebased and updated detached HEAD. +author author@name 34567 +0600 +ok 27 - rebase commit with an ancient timestamp -expecting success of 3070.157 'pathmatch: no match 'ten' '[ten]'': - test_must_fail test-tool wildmatch pathmatch 'ten' '[ten]' - -ok 157 - pathmatch: no match 'ten' '[ten]' +expecting success of 3400.28 'rebase with "From " line in commit message': + git checkout -b preserve-from master~1 && + cat >From_.msg <expect && - git ls-files -z -- '[ten]' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 158 - pathmatch (via ls-files): no match '[ten]' 'ten' +This is from so-and-so: -expecting success of 3070.159 'ipathmatch: no match 'ten' '[ten]'': - test_must_fail test-tool wildmatch ipathmatch 'ten' '[ten]' - -ok 159 - ipathmatch: no match 'ten' '[ten]' +From a@b Mon Sep 17 00:00:00 2001 +From: John Doe +Date: Sat, 11 Nov 2017 00:00:00 +0000 +Subject: not this message -expecting success of 3070.160 'ipathmatch (via ls-files): no match '[ten]' 'ten'': - >expect && - git --icase-pathspecs ls-files -z -- '[ten]' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 160 - ipathmatch (via ls-files): no match '[ten]' 'ten' +something +EOF + >From_ && + git add From_ && + git commit -F From_.msg && + git rebase master && + git log -1 --pretty=format:%B >out && + test_cmp From_.msg out -expecting success of 3070.161 'cleanup after previous file test': - if test -e .git/created_test_file - then - git reset && - git clean -df - fi - -Removing actual -Removing actual.err -Removing actual.raw -Removing expect -Removing ten -ok 161 - cleanup after previous file test +Warning: you are leaving 3 commits behind, not connected to +any of your branches: -expecting success of 3070.162 'setup match file test for ten': - file=$(cat .git/expected_test_file) && - if should_create_test_file "$file" - then - dirs=${file%/*} - if test "$file" != "$dirs" - then - mkdir -p -- "$dirs" && - touch -- "./$text" - else - touch -- "./$file" - fi && - git add -A && - printf "%s" "$file" >.git/created_test_file - elif test -e .git/created_test_file - then - rm .git/created_test_file - fi - -ok 162 - setup match file test for ten + 80e57ef Old three + f2d8ed2 Old one + d606871 n3 -expecting success of 3070.163 'wildmatch: match 'ten' '**[!te]'': - test-tool wildmatch wildmatch 'ten' '**[!te]' - -ok 163 - wildmatch: match 'ten' '**[!te]' +If you want to keep them by creating a new branch, this may be a good time +to do so with: -expecting success of 3070.164 'wildmatch (via ls-files): match '**[!te]' 'ten'': - printf '%s' 'ten' >expect && - git --glob-pathspecs ls-files -z -- '**[!te]' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 164 - wildmatch (via ls-files): match '**[!te]' 'ten' + git branch 80e57ef -expecting success of 3070.165 'iwildmatch: match 'ten' '**[!te]'': - test-tool wildmatch iwildmatch 'ten' '**[!te]' - -ok 165 - iwildmatch: match 'ten' '**[!te]' +Switched to a new branch 'preserve-from' +[preserve-from 8cc2bfd] Somebody embedded an mbox in a commit message + Author: author@name + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 From_ +Rebasing (1/1) Successfully rebased and updated refs/heads/preserve-from. +ok 28 - rebase with "From " line in commit message -expecting success of 3070.166 'iwildmatch (via ls-files): match '**[!te]' 'ten'': - printf '%s' 'ten' >expect && - git --glob-pathspecs --icase-pathspecs ls-files -z -- '**[!te]' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 166 - iwildmatch (via ls-files): match '**[!te]' 'ten' +expecting success of 3400.29 'rebase --apply and --show-current-patch': + test_create_repo conflict-apply && + ( + cd conflict-apply && + test_commit init && + echo one >>init.t && + git commit -a -m one && + echo two >>init.t && + git commit -a -m two && + git tag two && + test_must_fail git rebase --apply -f --onto init HEAD^ && + GIT_TRACE=1 git rebase --show-current-patch >/dev/null 2>stderr && + grep "show.*$(git rev-parse two)" stderr + ) -expecting success of 3070.167 'pathmatch: match 'ten' '**[!te]'': - test-tool wildmatch pathmatch 'ten' '**[!te]' - -ok 167 - pathmatch: match 'ten' '**[!te]' +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3400-rebase/conflict-apply/.git/ +[master (root-commit) 080fbe0] init + Author: author@name + 1 file changed, 1 insertion(+) + create mode 100644 init.t +[master 61e26c1] one + Author: author@name + 1 file changed, 1 insertion(+) +[master 1bf3d8f] two + Author: author@name + 1 file changed, 1 insertion(+) +First, rewinding head to replay your work on top of it... +Applying: two +Using index info to reconstruct a base tree... +M init.t +Falling back to patching base and 3-way merge... +Merging: +080fbe0 init +virtual two +found 1 common ancestor: +virtual 24619c19508a6b9b476e2c46f4889f730a371ef0 +Auto-merging init.t +CONFLICT (content): Merge conflict in init.t +error: Failed to merge in the changes. +hint: Use 'git am --show-current-patch=diff' to see the failed patch +Patch failed at 0001 two +Resolve all conflicts manually, mark them as resolved with +"git add/rm ", then run "git rebase --continue". +You can instead skip this commit: run "git rebase --skip". +To abort and get back to the state before "git rebase", run "git rebase --abort". +trace: run_command: git show 1bf3d8fe33fb3e440d4f72b014f1eae094a4ac2c -- +trace: built-in: git show 1bf3d8fe33fb3e440d4f72b014f1eae094a4ac2c -- +ok 29 - rebase --apply and --show-current-patch -expecting success of 3070.168 'pathmatch (via ls-files): match '**[!te]' 'ten'': - printf '%s' 'ten' >expect && - git ls-files -z -- '**[!te]' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 168 - pathmatch (via ls-files): match '**[!te]' 'ten' +expecting success of 3400.30 'rebase --apply and .gitattributes': + test_create_repo attributes && + ( + cd attributes && + test_commit init && + git config filter.test.clean "sed -e 's/smudged/clean/g'" && + git config filter.test.smudge "sed -e 's/clean/smudged/g'" && -expecting success of 3070.169 'ipathmatch: match 'ten' '**[!te]'': - test-tool wildmatch ipathmatch 'ten' '**[!te]' - -ok 169 - ipathmatch: match 'ten' '**[!te]' + test_commit second && + git checkout -b test HEAD^ && -expecting success of 3070.170 'ipathmatch (via ls-files): match '**[!te]' 'ten'': - printf '%s' 'ten' >expect && - git --icase-pathspecs ls-files -z -- '**[!te]' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 170 - ipathmatch (via ls-files): match '**[!te]' 'ten' + echo "*.txt filter=test" >.gitattributes && + git add .gitattributes && + test_commit third && -expecting success of 3070.171 'cleanup after previous file test': - if test -e .git/created_test_file - then - git reset && - git clean -df - fi - -Removing actual -Removing actual.err -Removing actual.raw -Removing expect -Removing ten -ok 171 - cleanup after previous file test + echo "This text is smudged." >a.txt && + git add a.txt && + test_commit fourth && -expecting success of 3070.172 'setup match file test for ten': - file=$(cat .git/expected_test_file) && - if should_create_test_file "$file" - then - dirs=${file%/*} - if test "$file" != "$dirs" - then - mkdir -p -- "$dirs" && - touch -- "./$text" - else - touch -- "./$file" - fi && - git add -A && - printf "%s" "$file" >.git/created_test_file - elif test -e .git/created_test_file - then - rm .git/created_test_file - fi - -ok 172 - setup match file test for ten + git checkout -b removal HEAD^ && + git rm .gitattributes && + git add -u && + test_commit fifth && + git cherry-pick test && -expecting success of 3070.173 'wildmatch: no match 'ten' '**[!ten]'': - test_must_fail test-tool wildmatch wildmatch 'ten' '**[!ten]' - -ok 173 - wildmatch: no match 'ten' '**[!ten]' + git checkout test && + git rebase master && + grep "smudged" a.txt && -expecting success of 3070.174 'wildmatch (via ls-files): no match '**[!ten]' 'ten'': - >expect && - git --glob-pathspecs ls-files -z -- '**[!ten]' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 174 - wildmatch (via ls-files): no match '**[!ten]' 'ten' + git checkout removal && + git reset --hard && + git rebase master && + grep "clean" a.txt + ) -expecting success of 3070.175 'iwildmatch: no match 'ten' '**[!ten]'': - test_must_fail test-tool wildmatch iwildmatch 'ten' '**[!ten]' - -ok 175 - iwildmatch: no match 'ten' '**[!ten]' +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3400-rebase/attributes/.git/ +[master (root-commit) 080fbe0] init + Author: author@name + 1 file changed, 1 insertion(+) + create mode 100644 init.t +[master 109cf52] second + Author: author@name + 1 file changed, 1 insertion(+) + create mode 100644 second.t +Switched to a new branch 'test' +[test 84bb12e] third + Author: author@name + 2 files changed, 2 insertions(+) + create mode 100644 .gitattributes + create mode 100644 third.t +[test 4a9c602] fourth + Author: author@name + 2 files changed, 2 insertions(+) + create mode 100644 a.txt + create mode 100644 fourth.t +Switched to a new branch 'removal' +rm '.gitattributes' +[removal 12a3f98] fifth + Author: author@name + 2 files changed, 1 insertion(+), 1 deletion(-) + delete mode 100644 .gitattributes + create mode 100644 fifth.t +[removal 511bf4f] fourth + Author: author@name + Date: Thu Apr 7 15:30:13 2005 -0700 + 2 files changed, 2 insertions(+) + create mode 100644 a.txt + create mode 100644 fourth.t +Switched to branch 'test' +Rebasing (1/2) Rebasing (2/2) Successfully rebased and updated refs/heads/test. +This text is smudged. +Switched to branch 'removal' +HEAD is now at 511bf4f fourth +Rebasing (1/3) Rebasing (2/3) Rebasing (3/3) Successfully rebased and updated refs/heads/removal. +This text is clean. +ok 30 - rebase --apply and .gitattributes -expecting success of 3070.176 'iwildmatch (via ls-files): no match '**[!ten]' 'ten'': - >expect && - git --glob-pathspecs --icase-pathspecs ls-files -z -- '**[!ten]' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 176 - iwildmatch (via ls-files): no match '**[!ten]' 'ten' +expecting success of 3400.31 'rebase--merge.sh and --show-current-patch': + test_create_repo conflict-merge && + ( + cd conflict-merge && + test_commit init && + echo one >>init.t && + git commit -a -m one && + echo two >>init.t && + git commit -a -m two && + git tag two && + test_must_fail git rebase --merge --onto init HEAD^ && + git rebase --show-current-patch >actual.patch && + GIT_TRACE=1 git rebase --show-current-patch >/dev/null 2>stderr && + grep "show.*REBASE_HEAD" stderr && + test "$(git rev-parse REBASE_HEAD)" = "$(git rev-parse two)" + ) -expecting success of 3070.177 'pathmatch: no match 'ten' '**[!ten]'': - test_must_fail test-tool wildmatch pathmatch 'ten' '**[!ten]' - -ok 177 - pathmatch: no match 'ten' '**[!ten]' +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3400-rebase/conflict-merge/.git/ +[master (root-commit) 080fbe0] init + Author: author@name + 1 file changed, 1 insertion(+) + create mode 100644 init.t +[master 61e26c1] one + Author: author@name + 1 file changed, 1 insertion(+) +[master 1bf3d8f] two + Author: author@name + 1 file changed, 1 insertion(+) +Rebasing (1/1) error: could not apply 1bf3d8f... two +Resolve all conflicts manually, mark them as resolved with +"git add/rm ", then run "git rebase --continue". +You can instead skip this commit: run "git rebase --skip". +To abort and get back to the state before "git rebase", run "git rebase --abort". +Could not apply 1bf3d8f... two +Auto-merging init.t +CONFLICT (content): Merge conflict in init.t +trace: run_command: git show REBASE_HEAD -- +trace: built-in: git show REBASE_HEAD -- +ok 31 - rebase--merge.sh and --show-current-patch -expecting success of 3070.178 'pathmatch (via ls-files): no match '**[!ten]' 'ten'': - >expect && - git ls-files -z -- '**[!ten]' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 178 - pathmatch (via ls-files): no match '**[!ten]' 'ten' +expecting success of 3400.32 'rebase -c rebase.useBuiltin=false warning': + expected="rebase.useBuiltin support has been removed" && -expecting success of 3070.179 'ipathmatch: no match 'ten' '**[!ten]'': - test_must_fail test-tool wildmatch ipathmatch 'ten' '**[!ten]' - -ok 179 - ipathmatch: no match 'ten' '**[!ten]' + # Only warn when the legacy rebase is requested... + test_must_fail git -c rebase.useBuiltin=false rebase 2>err && + test_i18ngrep "$expected" err && + test_must_fail env GIT_TEST_REBASE_USE_BUILTIN=false git rebase 2>err && + test_i18ngrep "$expected" err && -expecting success of 3070.180 'ipathmatch (via ls-files): no match '**[!ten]' 'ten'': - >expect && - git --icase-pathspecs ls-files -z -- '**[!ten]' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 180 - ipathmatch (via ls-files): no match '**[!ten]' 'ten' + # ...not when we would have used the built-in anyway + test_must_fail git -c rebase.useBuiltin=true rebase 2>err && + test_must_be_empty err && + test_must_fail env GIT_TEST_REBASE_USE_BUILTIN=true git rebase 2>err && + test_must_be_empty err -expecting success of 3070.181 'cleanup after previous file test': - if test -e .git/created_test_file - then - git reset && - git clean -df - fi - -Removing actual -Removing actual.err -Removing actual.raw -Removing expect -Removing ten -ok 181 - cleanup after previous file test +There is no tracking information for the current branch. +Please specify which branch you want to rebase against. +See git-rebase(1) for details. -expecting success of 3070.182 'setup match file test for ten': - file=$(cat .git/expected_test_file) && - if should_create_test_file "$file" - then - dirs=${file%/*} - if test "$file" != "$dirs" - then - mkdir -p -- "$dirs" && - touch -- "./$text" - else - touch -- "./$file" - fi && - git add -A && - printf "%s" "$file" >.git/created_test_file - elif test -e .git/created_test_file - then - rm .git/created_test_file - fi - -ok 182 - setup match file test for ten + git rebase '' -expecting success of 3070.183 'wildmatch: match 'ten' 't[a-g]n'': - test-tool wildmatch wildmatch 'ten' 't[a-g]n' - -ok 183 - wildmatch: match 'ten' 't[a-g]n' +If you wish to set tracking information for this branch you can do so with: -expecting success of 3070.184 'wildmatch (via ls-files): match 't[a-g]n' 'ten'': - printf '%s' 'ten' >expect && - git --glob-pathspecs ls-files -z -- 't[a-g]n' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 184 - wildmatch (via ls-files): match 't[a-g]n' 'ten' + git branch --set-upstream-to=/ preserve-from -expecting success of 3070.185 'iwildmatch: match 'ten' 't[a-g]n'': - test-tool wildmatch iwildmatch 'ten' 't[a-g]n' - -ok 185 - iwildmatch: match 'ten' 't[a-g]n' +warning: the rebase.useBuiltin support has been removed! +There is no tracking information for the current branch. +Please specify which branch you want to rebase against. +See git-rebase(1) for details. -expecting success of 3070.186 'iwildmatch (via ls-files): match 't[a-g]n' 'ten'': - printf '%s' 'ten' >expect && - git --glob-pathspecs --icase-pathspecs ls-files -z -- 't[a-g]n' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 186 - iwildmatch (via ls-files): match 't[a-g]n' 'ten' + git rebase '' -expecting success of 3070.187 'pathmatch: match 'ten' 't[a-g]n'': - test-tool wildmatch pathmatch 'ten' 't[a-g]n' - -ok 187 - pathmatch: match 'ten' 't[a-g]n' +If you wish to set tracking information for this branch you can do so with: -expecting success of 3070.188 'pathmatch (via ls-files): match 't[a-g]n' 'ten'': - printf '%s' 'ten' >expect && - git ls-files -z -- 't[a-g]n' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 188 - pathmatch (via ls-files): match 't[a-g]n' 'ten' + git branch --set-upstream-to=/ preserve-from -expecting success of 3070.189 'ipathmatch: match 'ten' 't[a-g]n'': - test-tool wildmatch ipathmatch 'ten' 't[a-g]n' - -ok 189 - ipathmatch: match 'ten' 't[a-g]n' +warning: the rebase.useBuiltin support has been removed! +There is no tracking information for the current branch. +Please specify which branch you want to rebase against. +See git-rebase(1) for details. -expecting success of 3070.190 'ipathmatch (via ls-files): match 't[a-g]n' 'ten'': - printf '%s' 'ten' >expect && - git --icase-pathspecs ls-files -z -- 't[a-g]n' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 190 - ipathmatch (via ls-files): match 't[a-g]n' 'ten' + git rebase '' -expecting success of 3070.191 'cleanup after previous file test': - if test -e .git/created_test_file - then - git reset && - git clean -df - fi - -Removing actual -Removing actual.err -Removing actual.raw -Removing expect -Removing ten -ok 191 - cleanup after previous file test +If you wish to set tracking information for this branch you can do so with: -expecting success of 3070.192 'setup match file test for ten': - file=$(cat .git/expected_test_file) && - if should_create_test_file "$file" - then - dirs=${file%/*} - if test "$file" != "$dirs" - then - mkdir -p -- "$dirs" && - touch -- "./$text" - else - touch -- "./$file" - fi && - git add -A && - printf "%s" "$file" >.git/created_test_file - elif test -e .git/created_test_file - then - rm .git/created_test_file - fi - -ok 192 - setup match file test for ten + git branch --set-upstream-to=/ preserve-from -expecting success of 3070.193 'wildmatch: no match 'ten' 't[!a-g]n'': - test_must_fail test-tool wildmatch wildmatch 'ten' 't[!a-g]n' - -ok 193 - wildmatch: no match 'ten' 't[!a-g]n' +There is no tracking information for the current branch. +Please specify which branch you want to rebase against. +See git-rebase(1) for details. -expecting success of 3070.194 'wildmatch (via ls-files): no match 't[!a-g]n' 'ten'': - >expect && - git --glob-pathspecs ls-files -z -- 't[!a-g]n' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 194 - wildmatch (via ls-files): no match 't[!a-g]n' 'ten' + git rebase '' -expecting success of 3070.195 'iwildmatch: no match 'ten' 't[!a-g]n'': - test_must_fail test-tool wildmatch iwildmatch 'ten' 't[!a-g]n' - -ok 195 - iwildmatch: no match 'ten' 't[!a-g]n' +If you wish to set tracking information for this branch you can do so with: -expecting success of 3070.196 'iwildmatch (via ls-files): no match 't[!a-g]n' 'ten'': - >expect && - git --glob-pathspecs --icase-pathspecs ls-files -z -- 't[!a-g]n' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 196 - iwildmatch (via ls-files): no match 't[!a-g]n' 'ten' + git branch --set-upstream-to=/ preserve-from -expecting success of 3070.197 'pathmatch: no match 'ten' 't[!a-g]n'': - test_must_fail test-tool wildmatch pathmatch 'ten' 't[!a-g]n' - -ok 197 - pathmatch: no match 'ten' 't[!a-g]n' +ok 32 - rebase -c rebase.useBuiltin=false warning -expecting success of 3070.198 'pathmatch (via ls-files): no match 't[!a-g]n' 'ten'': - >expect && - git ls-files -z -- 't[!a-g]n' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 198 - pathmatch (via ls-files): no match 't[!a-g]n' 'ten' +expecting success of 3400.33 'switch to branch checked out here': + git checkout master && + git rebase master master -expecting success of 3070.199 'ipathmatch: no match 'ten' 't[!a-g]n'': - test_must_fail test-tool wildmatch ipathmatch 'ten' 't[!a-g]n' - -ok 199 - ipathmatch: no match 'ten' 't[!a-g]n' +Switched to branch 'master' +Current branch master is up to date. +ok 33 - switch to branch checked out here -expecting success of 3070.200 'ipathmatch (via ls-files): no match 't[!a-g]n' 'ten'': - >expect && - git --icase-pathspecs ls-files -z -- 't[!a-g]n' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 200 - ipathmatch (via ls-files): no match 't[!a-g]n' 'ten' +expecting success of 3400.34 'switch to branch not checked out': + git checkout master && + git branch other && + git rebase master other -expecting success of 3070.201 'cleanup after previous file test': - if test -e .git/created_test_file - then - git reset && - git clean -df - fi - -Removing actual -Removing actual.err -Removing actual.raw -Removing expect -Removing ten -ok 201 - cleanup after previous file test +Already on 'master' +Current branch other is up to date. +ok 34 - switch to branch not checked out -expecting success of 3070.202 'setup match file test for ton': - file=$(cat .git/expected_test_file) && - if should_create_test_file "$file" - then - dirs=${file%/*} - if test "$file" != "$dirs" - then - mkdir -p -- "$dirs" && - touch -- "./$text" - else - touch -- "./$file" - fi && - git add -A && - printf "%s" "$file" >.git/created_test_file - elif test -e .git/created_test_file - then - rm .git/created_test_file - fi - -ok 202 - setup match file test for ton +expecting success of 3400.35 'refuse to switch to branch checked out elsewhere': + git checkout master && + git worktree add wt && + test_must_fail git -C wt rebase master master 2>err && + test_i18ngrep "already checked out" err -expecting success of 3070.203 'wildmatch: match 'ton' 't[!a-g]n'': - test-tool wildmatch wildmatch 'ton' 't[!a-g]n' - -ok 203 - wildmatch: match 'ton' 't[!a-g]n' +Switched to branch 'master' +Preparing worktree (new branch 'wt') +HEAD is now at 639dadf prepare +fatal: 'master' is already checked out at '/build/git-2.30.2/t/trash directory.t3400-rebase' +ok 35 - refuse to switch to branch checked out elsewhere -expecting success of 3070.204 'wildmatch (via ls-files): match 't[!a-g]n' 'ton'': - printf '%s' 'ton' >expect && - git --glob-pathspecs ls-files -z -- 't[!a-g]n' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 204 - wildmatch (via ls-files): match 't[!a-g]n' 'ton' +# passed all 35 test(s) +1..35 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t3401-rebase-and-am-rename.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3401-rebase-and-am-rename/.git/ +expecting success of 3401.1 'setup testcase where directory rename should be detected': + test_create_repo dir-rename && + ( + cd dir-rename && -expecting success of 3070.205 'iwildmatch: match 'ton' 't[!a-g]n'': - test-tool wildmatch iwildmatch 'ton' 't[!a-g]n' - -ok 205 - iwildmatch: match 'ton' 't[!a-g]n' + mkdir x && + test_seq 1 10 >x/a && + test_seq 11 20 >x/b && + test_seq 21 30 >x/c && + test_write_lines a b c d e f g h i >l && + git add x l && + git commit -m "Initial" && -expecting success of 3070.206 'iwildmatch (via ls-files): match 't[!a-g]n' 'ton'': - printf '%s' 'ton' >expect && - git --glob-pathspecs --icase-pathspecs ls-files -z -- 't[!a-g]n' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 206 - iwildmatch (via ls-files): match 't[!a-g]n' 'ton' + git branch O && + git branch A && + git branch B && -expecting success of 3070.207 'pathmatch: match 'ton' 't[!a-g]n'': - test-tool wildmatch pathmatch 'ton' 't[!a-g]n' - -ok 207 - pathmatch: match 'ton' 't[!a-g]n' + git checkout A && + git mv x y && + git mv l letters && + git commit -m "Rename x to y, l to letters" && -expecting success of 3070.208 'pathmatch (via ls-files): match 't[!a-g]n' 'ton'': - printf '%s' 'ton' >expect && - git ls-files -z -- 't[!a-g]n' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 208 - pathmatch (via ls-files): match 't[!a-g]n' 'ton' + git checkout B && + echo j >>l && + test_seq 31 40 >x/d && + git add l x/d && + git commit -m "Modify l, add x/d" + ) -expecting success of 3070.209 'ipathmatch: match 'ton' 't[!a-g]n'': - test-tool wildmatch ipathmatch 'ton' 't[!a-g]n' - -ok 209 - ipathmatch: match 'ton' 't[!a-g]n' +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3401-rebase-and-am-rename/dir-rename/.git/ +[master (root-commit) 79c153a] Initial + Author: A U Thor + 4 files changed, 39 insertions(+) + create mode 100644 l + create mode 100644 x/a + create mode 100644 x/b + create mode 100644 x/c +Switched to branch 'A' +[A cc01e42] Rename x to y, l to letters + Author: A U Thor + 4 files changed, 0 insertions(+), 0 deletions(-) + rename l => letters (100%) + rename {x => y}/a (100%) + rename {x => y}/b (100%) + rename {x => y}/c (100%) +Switched to branch 'B' +[B 6c5e67f] Modify l, add x/d + Author: A U Thor + 2 files changed, 11 insertions(+) + create mode 100644 x/d +ok 1 - setup testcase where directory rename should be detected -expecting success of 3070.210 'ipathmatch (via ls-files): match 't[!a-g]n' 'ton'': - printf '%s' 'ton' >expect && - git --icase-pathspecs ls-files -z -- 't[!a-g]n' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 210 - ipathmatch (via ls-files): match 't[!a-g]n' 'ton' +expecting success of 3401.2 'rebase --interactive: directory rename detected': + ( + cd dir-rename && -expecting success of 3070.211 'cleanup after previous file test': - if test -e .git/created_test_file - then - git reset && - git clean -df - fi - -Removing actual -Removing actual.err -Removing actual.raw -Removing expect -Removing ton -ok 211 - cleanup after previous file test + git checkout B^0 && -expecting success of 3070.212 'setup match file test for ton': - file=$(cat .git/expected_test_file) && - if should_create_test_file "$file" - then - dirs=${file%/*} - if test "$file" != "$dirs" - then - mkdir -p -- "$dirs" && - touch -- "./$text" - else - touch -- "./$file" - fi && - git add -A && - printf "%s" "$file" >.git/created_test_file - elif test -e .git/created_test_file - then - rm .git/created_test_file - fi - -ok 212 - setup match file test for ton + set_fake_editor && + FAKE_LINES="1" git -c merge.directoryRenames=true rebase --interactive A && -expecting success of 3070.213 'wildmatch: match 'ton' 't[^a-g]n'': - test-tool wildmatch wildmatch 'ton' 't[^a-g]n' - -ok 213 - wildmatch: match 'ton' 't[^a-g]n' + git ls-files -s >out && + test_line_count = 5 out && -expecting success of 3070.214 'wildmatch (via ls-files): match 't[^a-g]n' 'ton'': - printf '%s' 'ton' >expect && - git --glob-pathspecs ls-files -z -- 't[^a-g]n' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 214 - wildmatch (via ls-files): match 't[^a-g]n' 'ton' + test_path_is_file y/d && + test_path_is_missing x/d + ) -expecting success of 3070.215 'iwildmatch: match 'ton' 't[^a-g]n'': - test-tool wildmatch iwildmatch 'ton' 't[^a-g]n' - -ok 215 - iwildmatch: match 'ton' 't[^a-g]n' +Note: switching to 'B^0'. -expecting success of 3070.216 'iwildmatch (via ls-files): match 't[^a-g]n' 'ton'': - printf '%s' 'ton' >expect && - git --glob-pathspecs --icase-pathspecs ls-files -z -- 't[^a-g]n' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 216 - iwildmatch (via ls-files): match 't[^a-g]n' 'ton' +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. -expecting success of 3070.217 'pathmatch: match 'ton' 't[^a-g]n'': - test-tool wildmatch pathmatch 'ton' 't[^a-g]n' - -ok 217 - pathmatch: match 'ton' 't[^a-g]n' +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: -expecting success of 3070.218 'pathmatch (via ls-files): match 't[^a-g]n' 'ton'': - printf '%s' 'ton' >expect && - git ls-files -z -- 't[^a-g]n' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 218 - pathmatch (via ls-files): match 't[^a-g]n' 'ton' + git switch -c -expecting success of 3070.219 'ipathmatch: match 'ton' 't[^a-g]n'': - test-tool wildmatch ipathmatch 'ton' 't[^a-g]n' - -ok 219 - ipathmatch: match 'ton' 't[^a-g]n' +Or undo this operation with: -expecting success of 3070.220 'ipathmatch (via ls-files): match 't[^a-g]n' 'ton'': - printf '%s' 'ton' >expect && - git --icase-pathspecs ls-files -z -- 't[^a-g]n' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 220 - ipathmatch (via ls-files): match 't[^a-g]n' 'ton' + git switch - -expecting success of 3070.221 'cleanup after previous file test': - if test -e .git/created_test_file - then - git reset && - git clean -df - fi - -Removing actual -Removing actual.err -Removing actual.raw -Removing expect -Removing ton -ok 221 - cleanup after previous file test +Turn off this advice by setting config variable advice.detachedHead to false -expecting success of 3070.222 'setup match file test for a]b': - file=$(cat .git/expected_test_file) && - if should_create_test_file "$file" - then - dirs=${file%/*} - if test "$file" != "$dirs" - then - mkdir -p -- "$dirs" && - touch -- "./$text" - else - touch -- "./$file" - fi && - git add -A && - printf "%s" "$file" >.git/created_test_file - elif test -e .git/created_test_file - then - rm .git/created_test_file - fi - -ok 222 - setup match file test for a]b +HEAD is now at 6c5e67f Modify l, add x/d +rebase -i script before editing: +pick 6c5e67f Modify l, add x/d -expecting success of 3070.223 'wildmatch: match 'a]b' 'a[]]b'': - test-tool wildmatch wildmatch 'a]b' 'a[]]b' - -ok 223 - wildmatch: match 'a]b' 'a[]]b' +rebase -i script after editing: +pick 6c5e67f Modify l, add x/d +Rebasing (1/1) Successfully rebased and updated detached HEAD. +ok 2 - rebase --interactive: directory rename detected -expecting success of 3070.224 'wildmatch (via ls-files): match 'a[]]b' 'a]b'': - printf '%s' 'a]b' >expect && - git --glob-pathspecs ls-files -z -- 'a[]]b' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 224 - wildmatch (via ls-files): match 'a[]]b' 'a]b' +checking known breakage of 3401.3 'rebase --apply: directory rename detected': + ( + cd dir-rename && -expecting success of 3070.225 'iwildmatch: match 'a]b' 'a[]]b'': - test-tool wildmatch iwildmatch 'a]b' 'a[]]b' - -ok 225 - iwildmatch: match 'a]b' 'a[]]b' + git checkout B^0 && -expecting success of 3070.226 'iwildmatch (via ls-files): match 'a[]]b' 'a]b'': - printf '%s' 'a]b' >expect && - git --glob-pathspecs --icase-pathspecs ls-files -z -- 'a[]]b' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 226 - iwildmatch (via ls-files): match 'a[]]b' 'a]b' + git -c merge.directoryRenames=true rebase --apply A && -expecting success of 3070.227 'pathmatch: match 'a]b' 'a[]]b'': - test-tool wildmatch pathmatch 'a]b' 'a[]]b' - -ok 227 - pathmatch: match 'a]b' 'a[]]b' + git ls-files -s >out && + test_line_count = 5 out && -expecting success of 3070.228 'pathmatch (via ls-files): match 'a[]]b' 'a]b'': - printf '%s' 'a]b' >expect && - git ls-files -z -- 'a[]]b' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 228 - pathmatch (via ls-files): match 'a[]]b' 'a]b' + test_path_is_file y/d && + test_path_is_missing x/d + ) -expecting success of 3070.229 'ipathmatch: match 'a]b' 'a[]]b'': - test-tool wildmatch ipathmatch 'a]b' 'a[]]b' - -ok 229 - ipathmatch: match 'a]b' 'a[]]b' +Warning: you are leaving 1 commit behind, not connected to +any of your branches: -expecting success of 3070.230 'ipathmatch (via ls-files): match 'a[]]b' 'a]b'': - printf '%s' 'a]b' >expect && - git --icase-pathspecs ls-files -z -- 'a[]]b' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 230 - ipathmatch (via ls-files): match 'a[]]b' 'a]b' + 2e986bc Modify l, add x/d -expecting success of 3070.231 'cleanup after previous file test': - if test -e .git/created_test_file - then - git reset && - git clean -df - fi - -Removing a]b -Removing actual -Removing actual.err -Removing actual.raw -Removing expect -ok 231 - cleanup after previous file test +If you want to keep it by creating a new branch, this may be a good time +to do so with: -expecting success of 3070.232 'setup match file test for a-b': - file=$(cat .git/expected_test_file) && - if should_create_test_file "$file" - then - dirs=${file%/*} - if test "$file" != "$dirs" - then - mkdir -p -- "$dirs" && - touch -- "./$text" - else - touch -- "./$file" - fi && - git add -A && - printf "%s" "$file" >.git/created_test_file - elif test -e .git/created_test_file - then - rm .git/created_test_file - fi - -ok 232 - setup match file test for a-b + git branch 2e986bc -expecting success of 3070.233 'wildmatch: match 'a-b' 'a[]-]b'': - test-tool wildmatch wildmatch 'a-b' 'a[]-]b' - -ok 233 - wildmatch: match 'a-b' 'a[]-]b' +HEAD is now at 6c5e67f Modify l, add x/d +First, rewinding head to replay your work on top of it... +Applying: Modify l, add x/d +Using index info to reconstruct a base tree... +A l +Falling back to patching base and 3-way merge... +Merging: +cc01e42 Rename x to y, l to letters +virtual Modify l, add x/d +found 1 common ancestor: +virtual 4f45812d96b9febe1d7595b91de345b0a05fb0d4 +File y/d doesn't exist. +not ok 3 - rebase --apply: directory rename detected # TODO known breakage -expecting success of 3070.234 'wildmatch (via ls-files): match 'a[]-]b' 'a-b'': - printf '%s' 'a-b' >expect && - git --glob-pathspecs ls-files -z -- 'a[]-]b' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 234 - wildmatch (via ls-files): match 'a[]-]b' 'a-b' +expecting success of 3401.4 'rebase --merge: directory rename detected': + ( + cd dir-rename && -expecting success of 3070.235 'iwildmatch: match 'a-b' 'a[]-]b'': - test-tool wildmatch iwildmatch 'a-b' 'a[]-]b' - -ok 235 - iwildmatch: match 'a-b' 'a[]-]b' + git checkout B^0 && -expecting success of 3070.236 'iwildmatch (via ls-files): match 'a[]-]b' 'a-b'': - printf '%s' 'a-b' >expect && - git --glob-pathspecs --icase-pathspecs ls-files -z -- 'a[]-]b' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 236 - iwildmatch (via ls-files): match 'a[]-]b' 'a-b' + git -c merge.directoryRenames=true rebase --merge A && -expecting success of 3070.237 'pathmatch: match 'a-b' 'a[]-]b'': - test-tool wildmatch pathmatch 'a-b' 'a[]-]b' - -ok 237 - pathmatch: match 'a-b' 'a[]-]b' + git ls-files -s >out && + test_line_count = 5 out && -expecting success of 3070.238 'pathmatch (via ls-files): match 'a[]-]b' 'a-b'': - printf '%s' 'a-b' >expect && - git ls-files -z -- 'a[]-]b' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 238 - pathmatch (via ls-files): match 'a[]-]b' 'a-b' + test_path_is_file y/d && + test_path_is_missing x/d + ) -expecting success of 3070.239 'ipathmatch: match 'a-b' 'a[]-]b'': - test-tool wildmatch ipathmatch 'a-b' 'a[]-]b' - -ok 239 - ipathmatch: match 'a-b' 'a[]-]b' +Warning: you are leaving 1 commit behind, not connected to +any of your branches: -expecting success of 3070.240 'ipathmatch (via ls-files): match 'a[]-]b' 'a-b'': - printf '%s' 'a-b' >expect && - git --icase-pathspecs ls-files -z -- 'a[]-]b' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 240 - ipathmatch (via ls-files): match 'a[]-]b' 'a-b' + 7f699cd Modify l, add x/d -expecting success of 3070.241 'cleanup after previous file test': - if test -e .git/created_test_file - then - git reset && - git clean -df - fi - -Removing a-b -Removing actual -Removing actual.err -Removing actual.raw -Removing expect -ok 241 - cleanup after previous file test +If you want to keep it by creating a new branch, this may be a good time +to do so with: -expecting success of 3070.242 'setup match file test for a]b': - file=$(cat .git/expected_test_file) && - if should_create_test_file "$file" - then - dirs=${file%/*} - if test "$file" != "$dirs" - then - mkdir -p -- "$dirs" && - touch -- "./$text" - else - touch -- "./$file" - fi && - git add -A && - printf "%s" "$file" >.git/created_test_file - elif test -e .git/created_test_file - then - rm .git/created_test_file - fi - -ok 242 - setup match file test for a]b + git branch 7f699cd -expecting success of 3070.243 'wildmatch: match 'a]b' 'a[]-]b'': - test-tool wildmatch wildmatch 'a]b' 'a[]-]b' - -ok 243 - wildmatch: match 'a]b' 'a[]-]b' +HEAD is now at 6c5e67f Modify l, add x/d +Rebasing (1/1) Successfully rebased and updated detached HEAD. +ok 4 - rebase --merge: directory rename detected -expecting success of 3070.244 'wildmatch (via ls-files): match 'a[]-]b' 'a]b'': - printf '%s' 'a]b' >expect && - git --glob-pathspecs ls-files -z -- 'a[]-]b' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 244 - wildmatch (via ls-files): match 'a[]-]b' 'a]b' +checking known breakage of 3401.5 'am: directory rename detected': + ( + cd dir-rename && -expecting success of 3070.245 'iwildmatch: match 'a]b' 'a[]-]b'': - test-tool wildmatch iwildmatch 'a]b' 'a[]-]b' - -ok 245 - iwildmatch: match 'a]b' 'a[]-]b' + git checkout A^0 && -expecting success of 3070.246 'iwildmatch (via ls-files): match 'a[]-]b' 'a]b'': - printf '%s' 'a]b' >expect && - git --glob-pathspecs --icase-pathspecs ls-files -z -- 'a[]-]b' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 246 - iwildmatch (via ls-files): match 'a[]-]b' 'a]b' + git format-patch -1 B && -expecting success of 3070.247 'pathmatch: match 'a]b' 'a[]-]b'': - test-tool wildmatch pathmatch 'a]b' 'a[]-]b' - -ok 247 - pathmatch: match 'a]b' 'a[]-]b' + git -c merge.directoryRenames=true am --3way 0001*.patch && -expecting success of 3070.248 'pathmatch (via ls-files): match 'a[]-]b' 'a]b'': - printf '%s' 'a]b' >expect && - git ls-files -z -- 'a[]-]b' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 248 - pathmatch (via ls-files): match 'a[]-]b' 'a]b' + git ls-files -s >out && + test_line_count = 5 out && -expecting success of 3070.249 'ipathmatch: match 'a]b' 'a[]-]b'': - test-tool wildmatch ipathmatch 'a]b' 'a[]-]b' - -ok 249 - ipathmatch: match 'a]b' 'a[]-]b' + test_path_is_file y/d && + test_path_is_missing x/d + ) -expecting success of 3070.250 'ipathmatch (via ls-files): match 'a[]-]b' 'a]b'': - printf '%s' 'a]b' >expect && - git --icase-pathspecs ls-files -z -- 'a[]-]b' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 250 - ipathmatch (via ls-files): match 'a[]-]b' 'a]b' +Warning: you are leaving 1 commit behind, not connected to +any of your branches: -expecting success of 3070.251 'cleanup after previous file test': - if test -e .git/created_test_file - then - git reset && - git clean -df - fi - -Removing a]b -Removing actual -Removing actual.err -Removing actual.raw -Removing expect -ok 251 - cleanup after previous file test + 2e986bc Modify l, add x/d -expecting success of 3070.252 'setup match file test for aab': - file=$(cat .git/expected_test_file) && - if should_create_test_file "$file" - then - dirs=${file%/*} - if test "$file" != "$dirs" - then - mkdir -p -- "$dirs" && - touch -- "./$text" - else - touch -- "./$file" - fi && - git add -A && - printf "%s" "$file" >.git/created_test_file - elif test -e .git/created_test_file - then - rm .git/created_test_file - fi - -ok 252 - setup match file test for aab +If you want to keep it by creating a new branch, this may be a good time +to do so with: -expecting success of 3070.253 'wildmatch: no match 'aab' 'a[]-]b'': - test_must_fail test-tool wildmatch wildmatch 'aab' 'a[]-]b' - -ok 253 - wildmatch: no match 'aab' 'a[]-]b' + git branch 2e986bc -expecting success of 3070.254 'wildmatch (via ls-files): no match 'a[]-]b' 'aab'': - >expect && - git --glob-pathspecs ls-files -z -- 'a[]-]b' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 254 - wildmatch (via ls-files): no match 'a[]-]b' 'aab' +HEAD is now at cc01e42 Rename x to y, l to letters +0001-Modify-l-add-x-d.patch +Applying: Modify l, add x/d +Using index info to reconstruct a base tree... +A l +Falling back to patching base and 3-way merge... +Merging: +cc01e42 Rename x to y, l to letters +virtual Modify l, add x/d +found 1 common ancestor: +virtual 4f45812d96b9febe1d7595b91de345b0a05fb0d4 +File y/d doesn't exist. +not ok 5 - am: directory rename detected # TODO known breakage -expecting success of 3070.255 'iwildmatch: no match 'aab' 'a[]-]b'': - test_must_fail test-tool wildmatch iwildmatch 'aab' 'a[]-]b' - -ok 255 - iwildmatch: no match 'aab' 'a[]-]b' +expecting success of 3401.6 'setup testcase where directory rename should NOT be detected': + test_create_repo no-dir-rename && + ( + cd no-dir-rename && -expecting success of 3070.256 'iwildmatch (via ls-files): no match 'a[]-]b' 'aab'': - >expect && - git --glob-pathspecs --icase-pathspecs ls-files -z -- 'a[]-]b' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 256 - iwildmatch (via ls-files): no match 'a[]-]b' 'aab' + mkdir x && + test_seq 1 10 >x/a && + test_seq 11 20 >x/b && + test_seq 21 30 >x/c && + echo original >project_info && + git add x project_info && + git commit -m "Initial" && -expecting success of 3070.257 'pathmatch: no match 'aab' 'a[]-]b'': - test_must_fail test-tool wildmatch pathmatch 'aab' 'a[]-]b' - -ok 257 - pathmatch: no match 'aab' 'a[]-]b' + git branch O && + git branch A && + git branch B && -expecting success of 3070.258 'pathmatch (via ls-files): no match 'a[]-]b' 'aab'': - >expect && - git ls-files -z -- 'a[]-]b' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 258 - pathmatch (via ls-files): no match 'a[]-]b' 'aab' + git checkout A && + echo v2 >project_info && + git add project_info && + git commit -m "Modify project_info" && -expecting success of 3070.259 'ipathmatch: no match 'aab' 'a[]-]b'': - test_must_fail test-tool wildmatch ipathmatch 'aab' 'a[]-]b' - -ok 259 - ipathmatch: no match 'aab' 'a[]-]b' + git checkout B && + mkdir y && + git mv x/c y/c && + echo v1 >project_info && + git add project_info && + git commit -m "Rename x/c to y/c, modify project_info" + ) -expecting success of 3070.260 'ipathmatch (via ls-files): no match 'a[]-]b' 'aab'': - >expect && - git --icase-pathspecs ls-files -z -- 'a[]-]b' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 260 - ipathmatch (via ls-files): no match 'a[]-]b' 'aab' +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3401-rebase-and-am-rename/no-dir-rename/.git/ +[master (root-commit) 229b7b2] Initial + Author: A U Thor + 4 files changed, 31 insertions(+) + create mode 100644 project_info + create mode 100644 x/a + create mode 100644 x/b + create mode 100644 x/c +Switched to branch 'A' +[A 5e95ce3] Modify project_info + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +Switched to branch 'B' +[B 1f2a3f5] Rename x/c to y/c, modify project_info + Author: A U Thor + 2 files changed, 1 insertion(+), 1 deletion(-) + rename {x => y}/c (100%) +ok 6 - setup testcase where directory rename should NOT be detected -expecting success of 3070.261 'cleanup after previous file test': - if test -e .git/created_test_file - then - git reset && - git clean -df - fi - -Removing aab -Removing actual -Removing actual.err -Removing actual.raw -Removing expect -ok 261 - cleanup after previous file test +expecting success of 3401.7 'rebase --interactive: NO directory rename': + test_when_finished "git -C no-dir-rename rebase --abort" && + ( + cd no-dir-rename && -expecting success of 3070.262 'setup match file test for aab': - file=$(cat .git/expected_test_file) && - if should_create_test_file "$file" - then - dirs=${file%/*} - if test "$file" != "$dirs" - then - mkdir -p -- "$dirs" && - touch -- "./$text" - else - touch -- "./$file" - fi && - git add -A && - printf "%s" "$file" >.git/created_test_file - elif test -e .git/created_test_file - then - rm .git/created_test_file - fi - -ok 262 - setup match file test for aab + git checkout B^0 && -expecting success of 3070.263 'wildmatch: match 'aab' 'a[]a-]b'': - test-tool wildmatch wildmatch 'aab' 'a[]a-]b' - -ok 263 - wildmatch: match 'aab' 'a[]a-]b' + set_fake_editor && + test_must_fail env FAKE_LINES="1" git rebase --interactive A && -expecting success of 3070.264 'wildmatch (via ls-files): match 'a[]a-]b' 'aab'': - printf '%s' 'aab' >expect && - git --glob-pathspecs ls-files -z -- 'a[]a-]b' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 264 - wildmatch (via ls-files): match 'a[]a-]b' 'aab' + git ls-files -s >out && + test_line_count = 6 out && -expecting success of 3070.265 'iwildmatch: match 'aab' 'a[]a-]b'': - test-tool wildmatch iwildmatch 'aab' 'a[]a-]b' - -ok 265 - iwildmatch: match 'aab' 'a[]a-]b' + test_path_is_file x/a && + test_path_is_file x/b && + test_path_is_missing x/c + ) -expecting success of 3070.266 'iwildmatch (via ls-files): match 'a[]a-]b' 'aab'': - printf '%s' 'aab' >expect && - git --glob-pathspecs --icase-pathspecs ls-files -z -- 'a[]a-]b' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 266 - iwildmatch (via ls-files): match 'a[]a-]b' 'aab' +Note: switching to 'B^0'. -expecting success of 3070.267 'pathmatch: match 'aab' 'a[]a-]b'': - test-tool wildmatch pathmatch 'aab' 'a[]a-]b' - -ok 267 - pathmatch: match 'aab' 'a[]a-]b' +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. -expecting success of 3070.268 'pathmatch (via ls-files): match 'a[]a-]b' 'aab'': - printf '%s' 'aab' >expect && - git ls-files -z -- 'a[]a-]b' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 268 - pathmatch (via ls-files): match 'a[]a-]b' 'aab' +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: -expecting success of 3070.269 'ipathmatch: match 'aab' 'a[]a-]b'': - test-tool wildmatch ipathmatch 'aab' 'a[]a-]b' - -ok 269 - ipathmatch: match 'aab' 'a[]a-]b' + git switch -c -expecting success of 3070.270 'ipathmatch (via ls-files): match 'a[]a-]b' 'aab'': - printf '%s' 'aab' >expect && - git --icase-pathspecs ls-files -z -- 'a[]a-]b' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 270 - ipathmatch (via ls-files): match 'a[]a-]b' 'aab' +Or undo this operation with: -expecting success of 3070.271 'cleanup after previous file test': - if test -e .git/created_test_file - then - git reset && - git clean -df - fi - -Removing aab -Removing actual -Removing actual.err -Removing actual.raw -Removing expect -ok 271 - cleanup after previous file test + git switch - -expecting success of 3070.272 'setup match file test for ]': - file=$(cat .git/expected_test_file) && - if should_create_test_file "$file" - then - dirs=${file%/*} - if test "$file" != "$dirs" - then - mkdir -p -- "$dirs" && - touch -- "./$text" - else - touch -- "./$file" - fi && - git add -A && - printf "%s" "$file" >.git/created_test_file - elif test -e .git/created_test_file - then - rm .git/created_test_file - fi - -ok 272 - setup match file test for ] +Turn off this advice by setting config variable advice.detachedHead to false -expecting success of 3070.273 'wildmatch: match ']' ']'': - test-tool wildmatch wildmatch ']' ']' - -ok 273 - wildmatch: match ']' ']' +HEAD is now at 1f2a3f5 Rename x/c to y/c, modify project_info +rebase -i script before editing: +pick 1f2a3f5 Rename x/c to y/c, modify project_info -expecting success of 3070.274 'wildmatch (via ls-files): match ']' ']'': - printf '%s' ']' >expect && - git --glob-pathspecs ls-files -z -- ']' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 274 - wildmatch (via ls-files): match ']' ']' +rebase -i script after editing: +pick 1f2a3f5 Rename x/c to y/c, modify project_info +Rebasing (1/1) error: could not apply 1f2a3f5... Rename x/c to y/c, modify project_info +Resolve all conflicts manually, mark them as resolved with +"git add/rm ", then run "git rebase --continue". +You can instead skip this commit: run "git rebase --skip". +To abort and get back to the state before "git rebase", run "git rebase --abort". +Could not apply 1f2a3f5... Rename x/c to y/c, modify project_info +Auto-merging project_info +CONFLICT (content): Merge conflict in project_info +ok 7 - rebase --interactive: NO directory rename -expecting success of 3070.275 'iwildmatch: match ']' ']'': - test-tool wildmatch iwildmatch ']' ']' - -ok 275 - iwildmatch: match ']' ']' +expecting success of 3401.8 'rebase (am): NO directory rename': + test_when_finished "git -C no-dir-rename rebase --abort" && + ( + cd no-dir-rename && -expecting success of 3070.276 'iwildmatch (via ls-files): match ']' ']'': - printf '%s' ']' >expect && - git --glob-pathspecs --icase-pathspecs ls-files -z -- ']' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 276 - iwildmatch (via ls-files): match ']' ']' + git checkout B^0 && -expecting success of 3070.277 'pathmatch: match ']' ']'': - test-tool wildmatch pathmatch ']' ']' - -ok 277 - pathmatch: match ']' ']' + set_fake_editor && + test_must_fail git rebase A && -expecting success of 3070.278 'pathmatch (via ls-files): match ']' ']'': - printf '%s' ']' >expect && - git ls-files -z -- ']' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 278 - pathmatch (via ls-files): match ']' ']' + git ls-files -s >out && + test_line_count = 6 out && -expecting success of 3070.279 'ipathmatch: match ']' ']'': - test-tool wildmatch ipathmatch ']' ']' - -ok 279 - ipathmatch: match ']' ']' + test_path_is_file x/a && + test_path_is_file x/b && + test_path_is_missing x/c + ) -expecting success of 3070.280 'ipathmatch (via ls-files): match ']' ']'': - printf '%s' ']' >expect && - git --icase-pathspecs ls-files -z -- ']' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 280 - ipathmatch (via ls-files): match ']' ']' +HEAD is now at 1f2a3f5 Rename x/c to y/c, modify project_info +Rebasing (1/1) error: could not apply 1f2a3f5... Rename x/c to y/c, modify project_info +Resolve all conflicts manually, mark them as resolved with +"git add/rm ", then run "git rebase --continue". +You can instead skip this commit: run "git rebase --skip". +To abort and get back to the state before "git rebase", run "git rebase --abort". +Could not apply 1f2a3f5... Rename x/c to y/c, modify project_info +Auto-merging project_info +CONFLICT (content): Merge conflict in project_info +ok 8 - rebase (am): NO directory rename -expecting success of 3070.281 'cleanup after previous file test': - if test -e .git/created_test_file - then - git reset && - git clean -df - fi - -Removing ] -Removing actual -Removing actual.err -Removing actual.raw -Removing expect -ok 281 - cleanup after previous file test +expecting success of 3401.9 'rebase --merge: NO directory rename': + test_when_finished "git -C no-dir-rename rebase --abort" && + ( + cd no-dir-rename && -expecting success of 3070.282 'setup match file test for foo/baz/bar': - file=$(cat .git/expected_test_file) && - if should_create_test_file "$file" - then - dirs=${file%/*} - if test "$file" != "$dirs" - then - mkdir -p -- "$dirs" && - touch -- "./$text" - else - touch -- "./$file" - fi && - git add -A && - printf "%s" "$file" >.git/created_test_file - elif test -e .git/created_test_file - then - rm .git/created_test_file - fi - -ok 282 - setup match file test for foo/baz/bar + git checkout B^0 && -expecting success of 3070.283 'wildmatch: no match 'foo/baz/bar' 'foo*bar'': - test_must_fail test-tool wildmatch wildmatch 'foo/baz/bar' 'foo*bar' - -ok 283 - wildmatch: no match 'foo/baz/bar' 'foo*bar' + set_fake_editor && + test_must_fail git rebase --merge A && -expecting success of 3070.284 'wildmatch (via ls-files): no match 'foo*bar' 'foo/baz/bar'': - >expect && - git --glob-pathspecs ls-files -z -- 'foo*bar' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 284 - wildmatch (via ls-files): no match 'foo*bar' 'foo/baz/bar' + git ls-files -s >out && + test_line_count = 6 out && -expecting success of 3070.285 'iwildmatch: no match 'foo/baz/bar' 'foo*bar'': - test_must_fail test-tool wildmatch iwildmatch 'foo/baz/bar' 'foo*bar' - -ok 285 - iwildmatch: no match 'foo/baz/bar' 'foo*bar' + test_path_is_file x/a && + test_path_is_file x/b && + test_path_is_missing x/c + ) -expecting success of 3070.286 'iwildmatch (via ls-files): no match 'foo*bar' 'foo/baz/bar'': - >expect && - git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo*bar' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 286 - iwildmatch (via ls-files): no match 'foo*bar' 'foo/baz/bar' +HEAD is now at 1f2a3f5 Rename x/c to y/c, modify project_info +Rebasing (1/1) error: could not apply 1f2a3f5... Rename x/c to y/c, modify project_info +Resolve all conflicts manually, mark them as resolved with +"git add/rm ", then run "git rebase --continue". +You can instead skip this commit: run "git rebase --skip". +To abort and get back to the state before "git rebase", run "git rebase --abort". +Could not apply 1f2a3f5... Rename x/c to y/c, modify project_info +Auto-merging project_info +CONFLICT (content): Merge conflict in project_info +ok 9 - rebase --merge: NO directory rename -expecting success of 3070.287 'pathmatch: match 'foo/baz/bar' 'foo*bar'': - test-tool wildmatch pathmatch 'foo/baz/bar' 'foo*bar' - -ok 287 - pathmatch: match 'foo/baz/bar' 'foo*bar' +expecting success of 3401.10 'am: NO directory rename': + test_when_finished "git -C no-dir-rename am --abort" && + ( + cd no-dir-rename && -expecting success of 3070.288 'pathmatch (via ls-files): match 'foo*bar' 'foo/baz/bar'': - printf '%s' 'foo/baz/bar' >expect && - git ls-files -z -- 'foo*bar' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 288 - pathmatch (via ls-files): match 'foo*bar' 'foo/baz/bar' + git checkout A^0 && -expecting success of 3070.289 'ipathmatch: match 'foo/baz/bar' 'foo*bar'': - test-tool wildmatch ipathmatch 'foo/baz/bar' 'foo*bar' - -ok 289 - ipathmatch: match 'foo/baz/bar' 'foo*bar' + git format-patch -1 B && -expecting success of 3070.290 'ipathmatch (via ls-files): match 'foo*bar' 'foo/baz/bar'': - printf '%s' 'foo/baz/bar' >expect && - git --icase-pathspecs ls-files -z -- 'foo*bar' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 290 - ipathmatch (via ls-files): match 'foo*bar' 'foo/baz/bar' + test_must_fail git am --3way 0001*.patch && -expecting success of 3070.291 'cleanup after previous file test': - if test -e .git/created_test_file - then - git reset && - git clean -df - fi - -Removing actual -Removing actual.err -Removing actual.raw -Removing expect -Removing foo/ -ok 291 - cleanup after previous file test + git ls-files -s >out && + test_line_count = 6 out && -expecting success of 3070.292 'setup match file test for foo/baz/bar': - file=$(cat .git/expected_test_file) && - if should_create_test_file "$file" - then - dirs=${file%/*} - if test "$file" != "$dirs" - then - mkdir -p -- "$dirs" && - touch -- "./$text" - else - touch -- "./$file" - fi && - git add -A && - printf "%s" "$file" >.git/created_test_file - elif test -e .git/created_test_file - then - rm .git/created_test_file - fi - -ok 292 - setup match file test for foo/baz/bar + test_path_is_file x/a && + test_path_is_file x/b && + test_path_is_missing x/c + ) -expecting success of 3070.293 'wildmatch: no match 'foo/baz/bar' 'foo**bar'': - test_must_fail test-tool wildmatch wildmatch 'foo/baz/bar' 'foo**bar' - -ok 293 - wildmatch: no match 'foo/baz/bar' 'foo**bar' +Previous HEAD position was 1f2a3f5 Rename x/c to y/c, modify project_info +HEAD is now at 5e95ce3 Modify project_info +0001-Rename-x-c-to-y-c-modify-project_info.patch +Applying: Rename x/c to y/c, modify project_info +Using index info to reconstruct a base tree... +M project_info +Falling back to patching base and 3-way merge... +Merging: +5e95ce3 Modify project_info +virtual Rename x/c to y/c, modify project_info +found 1 common ancestor: +virtual 70041a03917eeabc905137ab5853aed716a92bc6 +Auto-merging project_info +CONFLICT (content): Merge conflict in project_info +error: Failed to merge in the changes. +hint: Use 'git am --show-current-patch=diff' to see the failed patch +Patch failed at 0001 Rename x/c to y/c, modify project_info +When you have resolved this problem, run "git am --continue". +If you prefer to skip this patch, run "git am --skip" instead. +To restore the original branch and stop patching, run "git am --abort". +ok 10 - am: NO directory rename -expecting success of 3070.294 'wildmatch (via ls-files): no match 'foo**bar' 'foo/baz/bar'': - >expect && - git --glob-pathspecs ls-files -z -- 'foo**bar' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 294 - wildmatch (via ls-files): no match 'foo**bar' 'foo/baz/bar' +# still have 2 known breakage(s) +# passed all remaining 8 test(s) +1..10 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t3402-rebase-merge.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3402-rebase-merge/.git/ +expecting success of 3402.1 'setup': + git add original && + git commit -m"initial" && + git branch side && + echo "11 $T" >>original && + git commit -a -m"master updates a bit." && -expecting success of 3070.295 'iwildmatch: no match 'foo/baz/bar' 'foo**bar'': - test_must_fail test-tool wildmatch iwildmatch 'foo/baz/bar' 'foo**bar' - -ok 295 - iwildmatch: no match 'foo/baz/bar' 'foo**bar' + echo "12 $T" >>original && + git commit -a -m"master updates a bit more." && -expecting success of 3070.296 'iwildmatch (via ls-files): no match 'foo**bar' 'foo/baz/bar'': - >expect && - git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo**bar' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 296 - iwildmatch (via ls-files): no match 'foo**bar' 'foo/baz/bar' + git checkout side && + (echo "0 $T" && cat original) >renamed && + git add renamed && + git update-index --force-remove original && + git commit -a -m"side renames and edits." && -expecting success of 3070.297 'pathmatch: match 'foo/baz/bar' 'foo**bar'': - test-tool wildmatch pathmatch 'foo/baz/bar' 'foo**bar' - -ok 297 - pathmatch: match 'foo/baz/bar' 'foo**bar' + tr "[a-z]" "[A-Z]" newfile && + git add newfile && + git commit -a -m"side edits further." && + git branch second-side && -expecting success of 3070.298 'pathmatch (via ls-files): match 'foo**bar' 'foo/baz/bar'': - printf '%s' 'foo/baz/bar' >expect && - git ls-files -z -- 'foo**bar' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 298 - pathmatch (via ls-files): match 'foo**bar' 'foo/baz/bar' + tr "[a-m]" "[A-M]" newfile && + rm -f original && + git commit -a -m"side edits once again." && -expecting success of 3070.299 'ipathmatch: match 'foo/baz/bar' 'foo**bar'': - test-tool wildmatch ipathmatch 'foo/baz/bar' 'foo**bar' - -ok 299 - ipathmatch: match 'foo/baz/bar' 'foo**bar' + git branch test-rebase side && + git branch test-rebase-pick side && + git branch test-reference-pick side && + git branch test-conflicts side && + git checkout -b test-merge side -expecting success of 3070.300 'ipathmatch (via ls-files): match 'foo**bar' 'foo/baz/bar'': - printf '%s' 'foo/baz/bar' >expect && - git --icase-pathspecs ls-files -z -- 'foo**bar' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 300 - ipathmatch (via ls-files): match 'foo**bar' 'foo/baz/bar' +[master (root-commit) ea140ad] initial + Author: A U Thor + 1 file changed, 20 insertions(+) + create mode 100644 original +[master 0d1f1e7] master updates a bit. + Author: A U Thor + 1 file changed, 2 insertions(+) +[master 0d71188] master updates a bit more. + Author: A U Thor + 1 file changed, 2 insertions(+) +Switched to branch 'side' +[side 2f3019a] side renames and edits. + Author: A U Thor + 1 file changed, 2 insertions(+) + rename original => renamed (90%) +[side e99fe16] side edits further. + Author: A U Thor + 1 file changed, 20 insertions(+) + create mode 100644 newfile +[side 5203c39] side edits once again. + Author: A U Thor + 1 file changed, 20 insertions(+), 20 deletions(-) + rewrite newfile (100%) +Switched to a new branch 'test-merge' +ok 1 - setup -expecting success of 3070.301 'cleanup after previous file test': - if test -e .git/created_test_file - then - git reset && - git clean -df - fi - -Removing actual -Removing actual.err -Removing actual.raw -Removing expect -Removing foo/ -ok 301 - cleanup after previous file test +expecting success of 3402.2 'reference merge': + git merge -s recursive -m "reference merge" master -expecting success of 3070.302 'setup match file test for foobazbar': - file=$(cat .git/expected_test_file) && - if should_create_test_file "$file" - then - dirs=${file%/*} - if test "$file" != "$dirs" - then - mkdir -p -- "$dirs" && - touch -- "./$text" - else - touch -- "./$file" - fi && - git add -A && - printf "%s" "$file" >.git/created_test_file - elif test -e .git/created_test_file - then - rm .git/created_test_file - fi - -ok 302 - setup match file test for foobazbar +Merging: +5203c39 side edits once again. +virtual master +found 1 common ancestor: +ea140ad initial +Auto-merging renamed +Merge made by the 'recursive' strategy. + renamed | 4 ++++ + 1 file changed, 4 insertions(+) +ok 2 - reference merge -expecting success of 3070.303 'wildmatch: match 'foobazbar' 'foo**bar'': - test-tool wildmatch wildmatch 'foobazbar' 'foo**bar' - -ok 303 - wildmatch: match 'foobazbar' 'foo**bar' +expecting success of 3402.3 'rebase': + git checkout test-rebase && + GIT_TRACE=1 git rebase --merge master -expecting success of 3070.304 'wildmatch (via ls-files): match 'foo**bar' 'foobazbar'': - printf '%s' 'foobazbar' >expect && - git --glob-pathspecs ls-files -z -- 'foo**bar' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 304 - wildmatch (via ls-files): match 'foo**bar' 'foobazbar' +Switched to branch 'test-rebase' +trace: built-in: git rebase --merge master +trace: run_command: GIT_REFLOG_ACTION='rebase (start): checkout master' git checkout 0d71188ae780a7bcdc01eef0b7572f5c0a874c00 +Rebasing (1/3) Rebasing (2/3) Rebasing (3/3) trace: run_command: git notes copy --for-rewrite=rebase +trace: built-in: git notes copy --for-rewrite=rebase + Successfully rebased and updated refs/heads/test-rebase. +ok 3 - rebase -expecting success of 3070.305 'iwildmatch: match 'foobazbar' 'foo**bar'': - test-tool wildmatch iwildmatch 'foobazbar' 'foo**bar' - -ok 305 - iwildmatch: match 'foobazbar' 'foo**bar' +expecting success of 3402.4 'test-rebase@{1} is pre rebase': + test $PRE_REBASE = $(git rev-parse test-rebase@{1}) -expecting success of 3070.306 'iwildmatch (via ls-files): match 'foo**bar' 'foobazbar'': - printf '%s' 'foobazbar' >expect && - git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo**bar' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 306 - iwildmatch (via ls-files): match 'foo**bar' 'foobazbar' +ok 4 - test-rebase@{1} is pre rebase -expecting success of 3070.307 'pathmatch: match 'foobazbar' 'foo**bar'': - test-tool wildmatch pathmatch 'foobazbar' 'foo**bar' - -ok 307 - pathmatch: match 'foobazbar' 'foo**bar' +expecting success of 3402.5 'merge and rebase should match': + git diff-tree -r test-rebase test-merge >difference && + if test -s difference + then + cat difference + (exit 1) + else + echo happy + fi -expecting success of 3070.308 'pathmatch (via ls-files): match 'foo**bar' 'foobazbar'': - printf '%s' 'foobazbar' >expect && - git ls-files -z -- 'foo**bar' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 308 - pathmatch (via ls-files): match 'foo**bar' 'foobazbar' +happy +ok 5 - merge and rebase should match -expecting success of 3070.309 'ipathmatch: match 'foobazbar' 'foo**bar'': - test-tool wildmatch ipathmatch 'foobazbar' 'foo**bar' - -ok 309 - ipathmatch: match 'foobazbar' 'foo**bar' +expecting success of 3402.6 'rebase the other way': + git reset --hard master && + git rebase --merge side -expecting success of 3070.310 'ipathmatch (via ls-files): match 'foo**bar' 'foobazbar'': - printf '%s' 'foobazbar' >expect && - git --icase-pathspecs ls-files -z -- 'foo**bar' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 310 - ipathmatch (via ls-files): match 'foo**bar' 'foobazbar' +HEAD is now at 0d71188 master updates a bit more. +Rebasing (1/2) Rebasing (2/2) Successfully rebased and updated refs/heads/test-rebase. +ok 6 - rebase the other way -expecting success of 3070.311 'cleanup after previous file test': - if test -e .git/created_test_file - then - git reset && - git clean -df - fi - -Removing actual -Removing actual.err -Removing actual.raw -Removing expect -Removing foobazbar -ok 311 - cleanup after previous file test +expecting success of 3402.7 'rebase -Xtheirs': + git checkout -b conflicting master~2 && + echo "AB $T" >> original && + git commit -mconflicting original && + git rebase -Xtheirs master && + grep AB original && + ! grep 11 original -expecting success of 3070.312 'setup match file test for foo/baz/bar': - file=$(cat .git/expected_test_file) && - if should_create_test_file "$file" - then - dirs=${file%/*} - if test "$file" != "$dirs" - then - mkdir -p -- "$dirs" && - touch -- "./$text" - else - touch -- "./$file" - fi && - git add -A && - printf "%s" "$file" >.git/created_test_file - elif test -e .git/created_test_file - then - rm .git/created_test_file - fi - -ok 312 - setup match file test for foo/baz/bar +Switched to a new branch 'conflicting' +[conflicting 0a8644e] conflicting + Author: A U Thor + 1 file changed, 2 insertions(+) +Rebasing (1/1) Successfully rebased and updated refs/heads/conflicting. +AB A quick brown fox +ok 7 - rebase -Xtheirs -expecting success of 3070.313 'wildmatch: match 'foo/baz/bar' 'foo/**/bar'': - test-tool wildmatch wildmatch 'foo/baz/bar' 'foo/**/bar' - -ok 313 - wildmatch: match 'foo/baz/bar' 'foo/**/bar' +expecting success of 3402.8 'rebase -Xtheirs from orphan': + git checkout --orphan orphan-conflicting master~2 && + echo "AB $T" >> original && + git commit -morphan-conflicting original && + git rebase -Xtheirs master && + grep AB original && + ! grep 11 original -expecting success of 3070.314 'wildmatch (via ls-files): match 'foo/**/bar' 'foo/baz/bar'': - printf '%s' 'foo/baz/bar' >expect && - git --glob-pathspecs ls-files -z -- 'foo/**/bar' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 314 - wildmatch (via ls-files): match 'foo/**/bar' 'foo/baz/bar' +Switched to a new branch 'orphan-conflicting' +[orphan-conflicting (root-commit) 9b6ca42] orphan-conflicting + Author: A U Thor + 1 file changed, 22 insertions(+) + create mode 100644 original +Rebasing (1/1) Successfully rebased and updated refs/heads/orphan-conflicting. +AB A quick brown fox +ok 8 - rebase -Xtheirs from orphan -expecting success of 3070.315 'iwildmatch: match 'foo/baz/bar' 'foo/**/bar'': - test-tool wildmatch iwildmatch 'foo/baz/bar' 'foo/**/bar' - -ok 315 - iwildmatch: match 'foo/baz/bar' 'foo/**/bar' +expecting success of 3402.9 'merge and rebase should match': + git diff-tree -r test-rebase test-merge >difference && + if test -s difference + then + cat difference + (exit 1) + else + echo happy + fi -expecting success of 3070.316 'iwildmatch (via ls-files): match 'foo/**/bar' 'foo/baz/bar'': - printf '%s' 'foo/baz/bar' >expect && - git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo/**/bar' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 316 - iwildmatch (via ls-files): match 'foo/**/bar' 'foo/baz/bar' +happy +ok 9 - merge and rebase should match -expecting success of 3070.317 'pathmatch: match 'foo/baz/bar' 'foo/**/bar'': - test-tool wildmatch pathmatch 'foo/baz/bar' 'foo/**/bar' - -ok 317 - pathmatch: match 'foo/baz/bar' 'foo/**/bar' +expecting success of 3402.10 'picking rebase': + git reset --hard side && + git rebase --merge --onto master side^^ && + mb=$(git merge-base master HEAD) && + if test "$mb" = "$(git rev-parse master)" + then + echo happy + else + git show-branch + (exit 1) + fi && + f=$(git diff-tree --name-only HEAD^ HEAD) && + g=$(git diff-tree --name-only HEAD^^ HEAD^) && + case "$f,$g" in + newfile,newfile) + echo happy ;; + *) + echo "$f" + echo "$g" + (exit 1) + esac -expecting success of 3070.318 'pathmatch (via ls-files): match 'foo/**/bar' 'foo/baz/bar'': - printf '%s' 'foo/baz/bar' >expect && - git ls-files -z -- 'foo/**/bar' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 318 - pathmatch (via ls-files): match 'foo/**/bar' 'foo/baz/bar' +HEAD is now at 5203c39 side edits once again. +Rebasing (1/2) Rebasing (2/2) Successfully rebased and updated refs/heads/orphan-conflicting. +happy +happy +ok 10 - picking rebase -expecting success of 3070.319 'ipathmatch: match 'foo/baz/bar' 'foo/**/bar'': - test-tool wildmatch ipathmatch 'foo/baz/bar' 'foo/**/bar' - -ok 319 - ipathmatch: match 'foo/baz/bar' 'foo/**/bar' +expecting success of 3402.11 'rebase -s funny -Xopt': + test_when_finished "rm -fr test-bin funny.was.run" && + mkdir test-bin && + cat >test-bin/git-merge-funny <<-EOF && + #!$SHELL_PATH + case "\$1" in --opt) ;; *) exit 2 ;; esac + shift && + >funny.was.run && + exec git merge-recursive "\$@" + EOF + chmod +x test-bin/git-merge-funny && + git reset --hard && + git checkout -b test-funny master^ && + test_commit funny && + ( + PATH=./test-bin:$PATH && + git rebase -s funny -Xopt master + ) && + test -f funny.was.run -expecting success of 3070.320 'ipathmatch (via ls-files): match 'foo/**/bar' 'foo/baz/bar'': - printf '%s' 'foo/baz/bar' >expect && - git --icase-pathspecs ls-files -z -- 'foo/**/bar' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 320 - ipathmatch (via ls-files): match 'foo/**/bar' 'foo/baz/bar' +HEAD is now at f1ff5e8 side edits once again. +Switched to a new branch 'test-funny' +[test-funny ca6f94b] funny + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 funny.t +Rebasing (1/1) Merging 0d71188ae780a7bcdc01eef0b7572f5c0a874c00 with ca6f94bb7a89d97658a06b66a589785559f95166 +Merging: +0d71188 master updates a bit more. +ca6f94b funny +found 1 common ancestor: +0d1f1e7 master updates a bit. + Successfully rebased and updated refs/heads/test-funny. +ok 11 - rebase -s funny -Xopt -expecting success of 3070.321 'cleanup after previous file test': - if test -e .git/created_test_file - then - git reset && - git clean -df - fi - -Removing actual -Removing actual.err -Removing actual.raw -Removing expect -Removing foo/ -ok 321 - cleanup after previous file test +expecting success of 3402.12 'rebase --skip works with two conflicts in a row': + git checkout second-side && + tr "[A-Z]" "[a-z]" tmp && + mv tmp newfile && + git commit -a -m"edit conflicting with side" && + tr "[d-f]" "[D-F]" tmp && + mv tmp newfile && + git commit -a -m"another edit conflicting with side" && + test_must_fail git rebase --merge test-conflicts && + test_must_fail git rebase --skip && + git rebase --skip -expecting success of 3070.322 'setup match file test for foo/baz/bar': - file=$(cat .git/expected_test_file) && - if should_create_test_file "$file" - then - dirs=${file%/*} - if test "$file" != "$dirs" - then - mkdir -p -- "$dirs" && - touch -- "./$text" - else - touch -- "./$file" - fi && - git add -A && - printf "%s" "$file" >.git/created_test_file - elif test -e .git/created_test_file - then - rm .git/created_test_file - fi - -ok 322 - setup match file test for foo/baz/bar +Switched to branch 'second-side' +[second-side 9ce8800] edit conflicting with side + Author: A U Thor + 1 file changed, 20 insertions(+), 20 deletions(-) + rewrite newfile (100%) +[second-side 821c677] another edit conflicting with side + Author: A U Thor + 1 file changed, 20 insertions(+), 20 deletions(-) + rewrite newfile (100%) +Rebasing (1/2) error: could not apply 9ce8800... edit conflicting with side +Resolve all conflicts manually, mark them as resolved with +"git add/rm ", then run "git rebase --continue". +You can instead skip this commit: run "git rebase --skip". +To abort and get back to the state before "git rebase", run "git rebase --abort". +Could not apply 9ce8800... edit conflicting with side +Auto-merging newfile +CONFLICT (content): Merge conflict in newfile +Rebasing (2/2) error: could not apply 821c677... another edit conflicting with side +Resolve all conflicts manually, mark them as resolved with +"git add/rm ", then run "git rebase --continue". +You can instead skip this commit: run "git rebase --skip". +To abort and get back to the state before "git rebase", run "git rebase --abort". +Could not apply 821c677... another edit conflicting with side +Auto-merging newfile +CONFLICT (content): Merge conflict in newfile + Successfully rebased and updated refs/heads/second-side. +ok 12 - rebase --skip works with two conflicts in a row -expecting success of 3070.323 'wildmatch: match 'foo/baz/bar' 'foo/**/**/bar'': - test-tool wildmatch wildmatch 'foo/baz/bar' 'foo/**/**/bar' - -ok 323 - wildmatch: match 'foo/baz/bar' 'foo/**/**/bar' +expecting success of 3402.13 '--reapply-cherry-picks': + git init repo && -expecting success of 3070.324 'wildmatch (via ls-files): match 'foo/**/**/bar' 'foo/baz/bar'': - printf '%s' 'foo/baz/bar' >expect && - git --glob-pathspecs ls-files -z -- 'foo/**/**/bar' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 324 - wildmatch (via ls-files): match 'foo/**/**/bar' 'foo/baz/bar' + # O(1-10) -- O(1-11) -- O(0-10) master + # \ + # -- O(1-11) -- O(1-12) otherbranch -expecting success of 3070.325 'iwildmatch: match 'foo/baz/bar' 'foo/**/**/bar'': - test-tool wildmatch iwildmatch 'foo/baz/bar' 'foo/**/**/bar' - -ok 325 - iwildmatch: match 'foo/baz/bar' 'foo/**/**/bar' + printf "Line %d\n" $(test_seq 1 10) >repo/file.txt && + git -C repo add file.txt && + git -C repo commit -m "base commit" && -expecting success of 3070.326 'iwildmatch (via ls-files): match 'foo/**/**/bar' 'foo/baz/bar'': - printf '%s' 'foo/baz/bar' >expect && - git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo/**/**/bar' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 326 - iwildmatch (via ls-files): match 'foo/**/**/bar' 'foo/baz/bar' + printf "Line %d\n" $(test_seq 1 11) >repo/file.txt && + git -C repo commit -a -m "add 11" && -expecting success of 3070.327 'pathmatch: no match 'foo/baz/bar' 'foo/**/**/bar'': - test_must_fail test-tool wildmatch pathmatch 'foo/baz/bar' 'foo/**/**/bar' - -ok 327 - pathmatch: no match 'foo/baz/bar' 'foo/**/**/bar' + printf "Line %d\n" $(test_seq 0 10) >repo/file.txt && + git -C repo commit -a -m "add 0 delete 11" && -expecting success of 3070.328 'pathmatch (via ls-files): no match 'foo/**/**/bar' 'foo/baz/bar'': - >expect && - git ls-files -z -- 'foo/**/**/bar' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 328 - pathmatch (via ls-files): no match 'foo/**/**/bar' 'foo/baz/bar' + git -C repo checkout -b otherbranch HEAD^^ && + printf "Line %d\n" $(test_seq 1 11) >repo/file.txt && + git -C repo commit -a -m "add 11 in another branch" && -expecting success of 3070.329 'ipathmatch: no match 'foo/baz/bar' 'foo/**/**/bar'': - test_must_fail test-tool wildmatch ipathmatch 'foo/baz/bar' 'foo/**/**/bar' - -ok 329 - ipathmatch: no match 'foo/baz/bar' 'foo/**/**/bar' + printf "Line %d\n" $(test_seq 1 12) >repo/file.txt && + git -C repo commit -a -m "add 12 in another branch" && -expecting success of 3070.330 'ipathmatch (via ls-files): no match 'foo/**/**/bar' 'foo/baz/bar'': - >expect && - git --icase-pathspecs ls-files -z -- 'foo/**/**/bar' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 330 - ipathmatch (via ls-files): no match 'foo/**/**/bar' 'foo/baz/bar' + # Regular rebase fails, because the 1-11 commit is deduplicated + test_must_fail git -C repo rebase --merge master 2> err && + test_i18ngrep "error: could not apply.*add 12 in another branch" err && + git -C repo rebase --abort && -expecting success of 3070.331 'cleanup after previous file test': - if test -e .git/created_test_file - then - git reset && - git clean -df - fi - -Removing actual -Removing actual.err -Removing actual.raw -Removing expect -Removing foo/ -ok 331 - cleanup after previous file test + # With --reapply-cherry-picks, it works + git -C repo rebase --merge --reapply-cherry-picks master -expecting success of 3070.332 'setup match file test for foo/b/a/z/bar': - file=$(cat .git/expected_test_file) && - if should_create_test_file "$file" - then - dirs=${file%/*} - if test "$file" != "$dirs" - then - mkdir -p -- "$dirs" && - touch -- "./$text" - else - touch -- "./$file" - fi && - git add -A && - printf "%s" "$file" >.git/created_test_file - elif test -e .git/created_test_file - then - rm .git/created_test_file - fi - -ok 332 - setup match file test for foo/b/a/z/bar +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3402-rebase-merge/repo/.git/ +[master (root-commit) b8e39df] base commit + Author: A U Thor + 1 file changed, 10 insertions(+) + create mode 100644 file.txt +[master 8299f6d] add 11 + Author: A U Thor + 1 file changed, 1 insertion(+) +[master 1bb0804] add 0 delete 11 + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +Switched to a new branch 'otherbranch' +[otherbranch 0c54cd5] add 11 in another branch + Author: A U Thor + 1 file changed, 1 insertion(+) +[otherbranch e97b80f] add 12 in another branch + Author: A U Thor + 1 file changed, 1 insertion(+) +Auto-merging file.txt +CONFLICT (content): Merge conflict in file.txt +checking prerequisite: C_LOCALE_OUTPUT -expecting success of 3070.333 'wildmatch: match 'foo/b/a/z/bar' 'foo/**/bar'': - test-tool wildmatch wildmatch 'foo/b/a/z/bar' 'foo/**/bar' - -ok 333 - wildmatch: match 'foo/b/a/z/bar' 'foo/**/bar' +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false -expecting success of 3070.334 'wildmatch (via ls-files): match 'foo/**/bar' 'foo/b/a/z/bar'': - printf '%s' 'foo/b/a/z/bar' >expect && - git --glob-pathspecs ls-files -z -- 'foo/**/bar' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 334 - wildmatch (via ls-files): match 'foo/**/bar' 'foo/b/a/z/bar' +) +prerequisite C_LOCALE_OUTPUT ok +Rebasing (1/1) error: could not apply e97b80f... add 12 in another branch +Rebasing (1/2) Rebasing (2/2) Successfully rebased and updated refs/heads/otherbranch. +ok 13 - --reapply-cherry-picks -expecting success of 3070.335 'iwildmatch: match 'foo/b/a/z/bar' 'foo/**/bar'': - test-tool wildmatch iwildmatch 'foo/b/a/z/bar' 'foo/**/bar' - -ok 335 - iwildmatch: match 'foo/b/a/z/bar' 'foo/**/bar' +expecting success of 3402.14 '--reapply-cherry-picks refrains from reading unneeded blobs': + git init server && -expecting success of 3070.336 'iwildmatch (via ls-files): match 'foo/**/bar' 'foo/b/a/z/bar'': - printf '%s' 'foo/b/a/z/bar' >expect && - git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo/**/bar' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 336 - iwildmatch (via ls-files): match 'foo/**/bar' 'foo/b/a/z/bar' + # O(1-10) -- O(1-11) -- O(1-12) master + # \ + # -- O(0-10) otherbranch -expecting success of 3070.337 'pathmatch: match 'foo/b/a/z/bar' 'foo/**/bar'': - test-tool wildmatch pathmatch 'foo/b/a/z/bar' 'foo/**/bar' - -ok 337 - pathmatch: match 'foo/b/a/z/bar' 'foo/**/bar' + printf "Line %d\n" $(test_seq 1 10) >server/file.txt && + git -C server add file.txt && + git -C server commit -m "merge base" && -expecting success of 3070.338 'pathmatch (via ls-files): match 'foo/**/bar' 'foo/b/a/z/bar'': - printf '%s' 'foo/b/a/z/bar' >expect && - git ls-files -z -- 'foo/**/bar' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 338 - pathmatch (via ls-files): match 'foo/**/bar' 'foo/b/a/z/bar' + printf "Line %d\n" $(test_seq 1 11) >server/file.txt && + git -C server commit -a -m "add 11" && -expecting success of 3070.339 'ipathmatch: match 'foo/b/a/z/bar' 'foo/**/bar'': - test-tool wildmatch ipathmatch 'foo/b/a/z/bar' 'foo/**/bar' - -ok 339 - ipathmatch: match 'foo/b/a/z/bar' 'foo/**/bar' + printf "Line %d\n" $(test_seq 1 12) >server/file.txt && + git -C server commit -a -m "add 12" && -expecting success of 3070.340 'ipathmatch (via ls-files): match 'foo/**/bar' 'foo/b/a/z/bar'': - printf '%s' 'foo/b/a/z/bar' >expect && - git --icase-pathspecs ls-files -z -- 'foo/**/bar' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 340 - ipathmatch (via ls-files): match 'foo/**/bar' 'foo/b/a/z/bar' + git -C server checkout -b otherbranch HEAD^^ && + printf "Line %d\n" $(test_seq 0 10) >server/file.txt && + git -C server commit -a -m "add 0" && -expecting success of 3070.341 'cleanup after previous file test': - if test -e .git/created_test_file - then - git reset && - git clean -df - fi - -Removing actual -Removing actual.err -Removing actual.raw -Removing expect -Removing foo/ -ok 341 - cleanup after previous file test + test_config -C server uploadpack.allowfilter 1 && + test_config -C server uploadpack.allowanysha1inwant 1 && -expecting success of 3070.342 'setup match file test for foo/b/a/z/bar': - file=$(cat .git/expected_test_file) && - if should_create_test_file "$file" - then - dirs=${file%/*} - if test "$file" != "$dirs" - then - mkdir -p -- "$dirs" && - touch -- "./$text" - else - touch -- "./$file" - fi && - git add -A && - printf "%s" "$file" >.git/created_test_file - elif test -e .git/created_test_file - then - rm .git/created_test_file - fi - -ok 342 - setup match file test for foo/b/a/z/bar + git clone --filter=blob:none "file://$(pwd)/server" client && + git -C client checkout origin/master && + git -C client checkout origin/otherbranch && -expecting success of 3070.343 'wildmatch: match 'foo/b/a/z/bar' 'foo/**/**/bar'': - test-tool wildmatch wildmatch 'foo/b/a/z/bar' 'foo/**/**/bar' - -ok 343 - wildmatch: match 'foo/b/a/z/bar' 'foo/**/**/bar' + # Sanity check to ensure that the blobs from the merge base and "add + # 11" are missing + git -C client rev-list --objects --all --missing=print >missing_list && + MERGE_BASE_BLOB=$(git -C server rev-parse master^^:file.txt) && + ADD_11_BLOB=$(git -C server rev-parse master^:file.txt) && + grep "[?]$MERGE_BASE_BLOB" missing_list && + grep "[?]$ADD_11_BLOB" missing_list && -expecting success of 3070.344 'wildmatch (via ls-files): match 'foo/**/**/bar' 'foo/b/a/z/bar'': - printf '%s' 'foo/b/a/z/bar' >expect && - git --glob-pathspecs ls-files -z -- 'foo/**/**/bar' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 344 - wildmatch (via ls-files): match 'foo/**/**/bar' 'foo/b/a/z/bar' + git -C client rebase --merge --reapply-cherry-picks origin/master && -expecting success of 3070.345 'iwildmatch: match 'foo/b/a/z/bar' 'foo/**/**/bar'': - test-tool wildmatch iwildmatch 'foo/b/a/z/bar' 'foo/**/**/bar' - -ok 345 - iwildmatch: match 'foo/b/a/z/bar' 'foo/**/**/bar' + # The blob from the merge base had to be fetched, but not "add 11" + git -C client rev-list --objects --all --missing=print >missing_list && + ! grep "[?]$MERGE_BASE_BLOB" missing_list && + grep "[?]$ADD_11_BLOB" missing_list -expecting success of 3070.346 'iwildmatch (via ls-files): match 'foo/**/**/bar' 'foo/b/a/z/bar'': - printf '%s' 'foo/b/a/z/bar' >expect && - git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo/**/**/bar' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 346 - iwildmatch (via ls-files): match 'foo/**/**/bar' 'foo/b/a/z/bar' +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3402-rebase-merge/server/.git/ +[master (root-commit) 1995021] merge base + Author: A U Thor + 1 file changed, 10 insertions(+) + create mode 100644 file.txt +[master 75d8da0] add 11 + Author: A U Thor + 1 file changed, 1 insertion(+) +[master a380afa] add 12 + Author: A U Thor + 1 file changed, 1 insertion(+) +Switched to a new branch 'otherbranch' +[otherbranch d365b26] add 0 + Author: A U Thor + 1 file changed, 1 insertion(+) +Cloning into 'client'... +Note: switching to 'origin/master'. -expecting success of 3070.347 'pathmatch: match 'foo/b/a/z/bar' 'foo/**/**/bar'': - test-tool wildmatch pathmatch 'foo/b/a/z/bar' 'foo/**/**/bar' - -ok 347 - pathmatch: match 'foo/b/a/z/bar' 'foo/**/**/bar' +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. -expecting success of 3070.348 'pathmatch (via ls-files): match 'foo/**/**/bar' 'foo/b/a/z/bar'': - printf '%s' 'foo/b/a/z/bar' >expect && - git ls-files -z -- 'foo/**/**/bar' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 348 - pathmatch (via ls-files): match 'foo/**/**/bar' 'foo/b/a/z/bar' +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: -expecting success of 3070.349 'ipathmatch: match 'foo/b/a/z/bar' 'foo/**/**/bar'': - test-tool wildmatch ipathmatch 'foo/b/a/z/bar' 'foo/**/**/bar' - -ok 349 - ipathmatch: match 'foo/b/a/z/bar' 'foo/**/**/bar' + git switch -c -expecting success of 3070.350 'ipathmatch (via ls-files): match 'foo/**/**/bar' 'foo/b/a/z/bar'': - printf '%s' 'foo/b/a/z/bar' >expect && - git --icase-pathspecs ls-files -z -- 'foo/**/**/bar' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 350 - ipathmatch (via ls-files): match 'foo/**/**/bar' 'foo/b/a/z/bar' +Or undo this operation with: -expecting success of 3070.351 'cleanup after previous file test': - if test -e .git/created_test_file - then - git reset && - git clean -df - fi - -Removing actual -Removing actual.err -Removing actual.raw -Removing expect -Removing foo/ -ok 351 - cleanup after previous file test + git switch - -expecting success of 3070.352 'setup match file test for foo/bar': - file=$(cat .git/expected_test_file) && - if should_create_test_file "$file" - then - dirs=${file%/*} - if test "$file" != "$dirs" - then - mkdir -p -- "$dirs" && - touch -- "./$text" - else - touch -- "./$file" - fi && - git add -A && - printf "%s" "$file" >.git/created_test_file - elif test -e .git/created_test_file - then - rm .git/created_test_file - fi - -ok 352 - setup match file test for foo/bar +Turn off this advice by setting config variable advice.detachedHead to false -expecting success of 3070.353 'wildmatch: match 'foo/bar' 'foo/**/bar'': - test-tool wildmatch wildmatch 'foo/bar' 'foo/**/bar' - -ok 353 - wildmatch: match 'foo/bar' 'foo/**/bar' +HEAD is now at a380afa add 12 +Previous HEAD position was a380afa add 12 +HEAD is now at d365b26 add 0 +?00935f183cbd9243998bd3f84ac67e18eff726a4 +?8bf8891e216480d36945027a1d30bdbba5c96d90 +Rebasing (1/1) Successfully rebased and updated detached HEAD. +?8bf8891e216480d36945027a1d30bdbba5c96d90 +ok 14 - --reapply-cherry-picks refrains from reading unneeded blobs -expecting success of 3070.354 'wildmatch (via ls-files): match 'foo/**/bar' 'foo/bar'': - printf '%s' 'foo/bar' >expect && - git --glob-pathspecs ls-files -z -- 'foo/**/bar' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 354 - wildmatch (via ls-files): match 'foo/**/bar' 'foo/bar' +# passed all 14 test(s) +1..14 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t3403-rebase-skip.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t3403-rebase-skip/.git/ +expecting success of 3403.1 'setup': + echo hello > hello && + git add hello && + git commit -m "hello" && + git branch skip-reference && -expecting success of 3070.355 'iwildmatch: match 'foo/bar' 'foo/**/bar'': - test-tool wildmatch iwildmatch 'foo/bar' 'foo/**/bar' - -ok 355 - iwildmatch: match 'foo/bar' 'foo/**/bar' + echo world >> hello && + git commit -a -m "hello world" && + echo goodbye >> hello && + git commit -a -m "goodbye" && + git tag goodbye && -expecting success of 3070.356 'iwildmatch (via ls-files): match 'foo/**/bar' 'foo/bar'': - printf '%s' 'foo/bar' >expect && - git --glob-pathspecs --icase-pathspecs ls-files -z -- 'foo/**/bar' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 356 - iwildmatch (via ls-files): match 'foo/**/bar' 'foo/bar' + git checkout --detach && + git checkout HEAD^ . && + test_tick && + git commit -m reverted-goodbye && + git tag reverted-goodbye && + git checkout goodbye && + test_tick && + GIT_AUTHOR_NAME="Another Author" \ + GIT_AUTHOR_EMAIL="another.author@example.com" \ + git commit --amend --no-edit -m amended-goodbye && + test_tick && + git tag amended-goodbye && -expecting success of 3070.357 'pathmatch: no match 'foo/bar' 'foo/**/bar'': - test_must_fail test-tool wildmatch pathmatch 'foo/bar' 'foo/**/bar' - -ok 357 - pathmatch: no match 'foo/bar' 'foo/**/bar' + git checkout -f skip-reference && + echo moo > hello && + git commit -a -m "we should skip this" && + echo moo > cow && + git add cow && + git commit -m "this should not be skipped" && + git branch pre-rebase skip-reference && + git branch skip-merge skip-reference + +[master (root-commit) 7b3be24] hello + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 hello +[master 5a0b053] hello world + Author: A U Thor + 1 file changed, 1 insertion(+) +[master 64bec18] goodbye + Author: A U Thor + 1 file changed, 1 insertion(+) +HEAD is now at 64bec18 goodbye +Updated 1 path from f7e12fd +[detached HEAD 1f15beb] reverted-goodbye + Author: A U Thor + 1 file changed, 1 deletion(-) +Previous HEAD position was 1f15beb reverted-goodbye +HEAD is now at 64bec18 goodbye +[detached HEAD f61b1e0] amended-goodbye + Author: A U Thor + Date: Fri Apr 1 13:14:15 2005 +0200 + 1 file changed, 1 insertion(+) +Previous HEAD position was f61b1e0 amended-goodbye +Switched to branch 'skip-reference' +[skip-reference 847c4cd] we should skip this + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +[skip-reference c443746] this should not be skipped + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 cow +ok 1 - setup -expecting success of 3070.358 'pathmatch (via ls-files): no match 'foo/**/bar' 'foo/bar'': - >expect && - git ls-files -z -- 'foo/**/bar' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 358 - pathmatch (via ls-files): no match 'foo/**/bar' 'foo/bar' +expecting success of 3403.2 'rebase with git am -3 (default)': + test_must_fail git rebase master -expecting success of 3070.359 'ipathmatch: no match 'foo/bar' 'foo/**/bar'': - test_must_fail test-tool wildmatch ipathmatch 'foo/bar' 'foo/**/bar' - -ok 359 - ipathmatch: no match 'foo/bar' 'foo/**/bar' +Rebasing (1/2) error: could not apply 847c4cd... we should skip this +Resolve all conflicts manually, mark them as resolved with +"git add/rm ", then run "git rebase --continue". +You can instead skip this commit: run "git rebase --skip". +To abort and get back to the state before "git rebase", run "git rebase --abort". +Could not apply 847c4cd... we should skip this +Auto-merging hello +CONFLICT (content): Merge conflict in hello +ok 2 - rebase with git am -3 (default) -expecting success of 3070.360 'ipathmatch (via ls-files): no match 'foo/**/bar' 'foo/bar'': - >expect && - git --icase-pathspecs ls-files -z -- 'foo/**/bar' >actual.raw 2>actual.err && - - tr -d '\0' actual && - test_must_be_empty actual.err && - test_cmp expect actual - -ok 360 - ipathmatch (via ls-files): no match 'foo/**/bar' 'foo/bar' +expecting success of 3403.3 'rebase --skip can not be used with other options': + test_must_fail git rebase -v --skip && + test_must_fail git rebase --skip -v -expecting success of 3070.361 'cleanup after previous file test': - if test -e .git/created_test_file - then - git reset && - git clean -df - fi - -Removing actual -Removing actual.err -Removing actual.raw -Removing expect -Removing foo/ -ok 361 - cleanup after previous file test +usage: git rebase [-i] [options] [--exec ] [--onto | --keep-base] [ []] + or: git rebase [-i] [options] [--exec ] [--onto ] --root [] + or: git rebase --continue | --abort | --skip | --edit-todo -expecting success of 3070.362 'setup match file test for foo/bar': - file=$(cat .git/expected_test_file) && - if should_create_test_file "$file" - then - dirs=${file%/*} - if test "$file" != "$dirs" - then - mkdir -p -- "$dirs" && - touch -- "./$text" - else - touch -- "./$file" - fi && - git add -A && - printf "%s" "$file" >.git/created_test_file - elif test -e .git/created_test_file - then - rm .git/created_test_file - fi - -ok 362 - setup match file test for foo/bar + --onto rebase onto given branch instead of upstream + --keep-base use the merge-base of upstream and branch as the current base + --no-verify allow pre-rebase hook to run + -q, --quiet be quiet. implies --no-stat + -v, --verbose display a diffstat of what changed upstream + -n, --no-stat do not show diffstat of what changed upstream + --signoff add a Signed-off-by trailer to each commit + --committer-date-is-author-date + make committer date match author date + --reset-author-date ignore author date and use current date + -C passed to 'git apply' + --ignore-whitespace ignore changes in whitespace + --whitespace + passed to 'git apply' + -f, --force-rebase cherry-pick all commits, even if unchanged + --no-ff cherry-pick all commits, even if unchanged + --continue continue + --skip skip current patch and continue + --abort abort and check out the original branch + --quit abort but keep HEAD where it is + --edit-todo edit the todo list during an interactive rebase + --show-current-patch show the patch file being applied or merged + --apply use apply strategies to rebase + -m, --merge use merging strategies to rebase + -i, --interactive let the user edit the list of commits to rebase + --rerere-autoupdate update the index with reused conflict resolution if possible + --empty <{drop,keep,ask}> + how to handle commits that become empty + --autosquash move commits that begin with squash!/fixup! under -i + -S, --gpg-sign[=] + GPG-sign commits + --autostash automatically stash/stash pop before and after + -x, --exec add exec lines after each commit of the editable list + -r, --rebase-merges[=] + try to rebase merges instead of skipping them + --fork-point use 'merge-base --fork-point' to refine upstream + -s, --strategy + use the given merge strategy + -X, --strategy-option A+ && - mv A+ A && - git commit -a -m "master updates A" && - - git checkout yellow && - rm -f M && - git commit -a -m "yellow removes M" && - - git checkout white && - sed -e "/^g /s/.*/g : white changes a line/" B && - sed -e "/^G /s/.*/G : colored branch changes a line/" N && - rm -f A M && - git update-index --add --remove A B M N && - git commit -m "white renames A->B, M->N" && - - git checkout red && - sed -e "/^g /s/.*/g : red changes a line/" B && - sed -e "/^G /s/.*/G : colored branch changes a line/" N && - rm -f A M && - git update-index --add --remove A B M N && - git commit -m "red renames A->B, M->N" && - - git checkout blue && - sed -e "/^g /s/.*/g : blue changes a line/" C && - sed -e "/^G /s/.*/G : colored branch changes a line/" N && - rm -f A M && - git update-index --add --remove A C M N && - git commit -m "blue renames A->C, M->N" && - - git checkout change && - sed -e "/^g /s/.*/g : changed line/" A+ && - mv A+ A && - git commit -q -a -m "changed" && - - git checkout change+rename && - sed -e "/^g /s/.*/g : changed line/" B && - rm A && - git update-index --add B && - git commit -q -a -m "changed and renamed" && - - git checkout master - -[master (root-commit) 7bbb60a] initial has A and M - Author: A U Thor - 2 files changed, 30 insertions(+) - create mode 100644 A - create mode 100644 M -[master 004aae0] master updates A - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -Switched to branch 'yellow' -[yellow 1f86866] yellow removes M - Author: A U Thor - 1 file changed, 15 deletions(-) - delete mode 100644 M -Switched to branch 'white' -[white 72f28f0] white renames A->B, M->N - Author: A U Thor - 2 files changed, 2 insertions(+), 2 deletions(-) - rename A => B (93%) - rename M => N (93%) -Switched to branch 'red' -[red 9020b53] red renames A->B, M->N - Author: A U Thor - 2 files changed, 2 insertions(+), 2 deletions(-) - rename A => B (93%) - rename M => N (93%) -Switched to branch 'blue' -[blue b706750] blue renames A->C, M->N - Author: A U Thor - 2 files changed, 2 insertions(+), 2 deletions(-) - rename A => C (93%) - rename M => N (93%) -Switched to branch 'change' -Switched to branch 'change+rename' -Switched to branch 'master' -ok 1 - setup - -expecting success of 6402.2 'pull renaming branch into unrenaming one': - git show-branch && - test_expect_code 1 git pull . white && - git ls-files -s && - git ls-files -u B >b.stages && - test_line_count = 3 b.stages && - git ls-files -s N >n.stages && - test_line_count = 1 n.stages && - sed -ne "/^g/{ - p - q - }" B | grep master && - git diff --exit-code white N - -! [blue] blue renames A->C, M->N - ! [change] changed - ! [change+rename] changed and renamed - * [master] master updates A - ! [red] red renames A->B, M->N - ! [white] white renames A->B, M->N - ! [yellow] yellow removes M -------- - + [yellow] yellow removes M - + [white] white renames A->B, M->N - + [red] red renames A->B, M->N - * [master] master updates A - + [change+rename] changed and renamed - + [change] changed -+ [blue] blue renames A->C, M->N -+++*+++ [yellow^] initial has A and M -hint: Pulling without specifying how to reconcile divergent branches is -hint: discouraged. You can squelch this message by running one of the following -hint: commands sometime before your next pull: -hint: -hint: git config pull.rebase false # merge (the default strategy) -hint: git config pull.rebase true # rebase -hint: git config pull.ff only # fast-forward only -hint: -hint: You can replace "git config" with "git config --global" to set a default -hint: preference for all repositories. You can also pass --rebase, --no-rebase, -hint: or --ff-only on the command line to override the configured default per -hint: invocation. -From . - * branch white -> FETCH_HEAD -Merging: -004aae0 master updates A -virtual 72f28f0720105464cdfa32b83c0499c257004216 -found 1 common ancestor: -7bbb60a initial has A and M -Auto-merging B -CONFLICT (content): Merge conflict in B -Automatic merge failed; fix conflicts and then commit the result. -100644 aed72d761b68c20ffce8249a5a0426494098d376 1 B -100644 c68856fe0bfce4eb453d8e12329c47ab60c8107b 2 B -100644 2d603156dc5bdf6295c789cac08e3c9942a0b82a 3 B -100644 ba41fb96393979b22691106b06bf5231eab57b85 0 N -g : master changes a line -ok 2 - pull renaming branch into unrenaming one - -expecting success of 6402.3 'pull renaming branch into another renaming one': - rm -f B && - git reset --hard && - git checkout red && - test_expect_code 1 git pull . white && - git ls-files -u B >b.stages && - test_line_count = 3 b.stages && - git ls-files -s N >n.stages && - test_line_count = 1 n.stages && - sed -ne "/^g/{ - p - q - }" B | grep red && - git diff --exit-code white N - -HEAD is now at 004aae0 master updates A -Switched to branch 'red' -hint: Pulling without specifying how to reconcile divergent branches is -hint: discouraged. You can squelch this message by running one of the following -hint: commands sometime before your next pull: -hint: -hint: git config pull.rebase false # merge (the default strategy) -hint: git config pull.rebase true # rebase -hint: git config pull.ff only # fast-forward only -hint: -hint: You can replace "git config" with "git config --global" to set a default -hint: preference for all repositories. You can also pass --rebase, --no-rebase, -hint: or --ff-only on the command line to override the configured default per -hint: invocation. -From . - * branch white -> FETCH_HEAD -Merging: -9020b53 red renames A->B, M->N -virtual 72f28f0720105464cdfa32b83c0499c257004216 -found 1 common ancestor: -7bbb60a initial has A and M -Auto-merging N -Skipped N (merged same as existing) -Auto-merging B -CONFLICT (content): Merge conflict in B -Automatic merge failed; fix conflicts and then commit the result. -g : red changes a line -ok 3 - pull renaming branch into another renaming one - -expecting success of 6402.4 'pull unrenaming branch into renaming one': - git reset --hard && - git show-branch && - test_expect_code 1 git pull . master && - git ls-files -u B >b.stages && - test_line_count = 3 b.stages && - git ls-files -s N >n.stages && - test_line_count = 1 n.stages && - sed -ne "/^g/{ - p - q - }" B | grep red && - git diff --exit-code white N - -HEAD is now at 9020b53 red renames A->B, M->N -! [blue] blue renames A->C, M->N - ! [change] changed - ! [change+rename] changed and renamed - ! [master] master updates A - * [red] red renames A->B, M->N - ! [white] white renames A->B, M->N - ! [yellow] yellow removes M -------- - + [yellow] yellow removes M - + [white] white renames A->B, M->N - * [red] red renames A->B, M->N - + [master] master updates A - + [change+rename] changed and renamed - + [change] changed -+ [blue] blue renames A->C, M->N -++++*++ [yellow^] initial has A and M -hint: Pulling without specifying how to reconcile divergent branches is -hint: discouraged. You can squelch this message by running one of the following -hint: commands sometime before your next pull: -hint: -hint: git config pull.rebase false # merge (the default strategy) -hint: git config pull.rebase true # rebase -hint: git config pull.ff only # fast-forward only -hint: -hint: You can replace "git config" with "git config --global" to set a default -hint: preference for all repositories. You can also pass --rebase, --no-rebase, -hint: or --ff-only on the command line to override the configured default per -hint: invocation. -From . - * branch master -> FETCH_HEAD -Merging: -9020b53 red renames A->B, M->N -virtual 004aae0ee2bb921ebebdc021cf0cd585efa1181f -found 1 common ancestor: -7bbb60a initial has A and M -Skipped N (merged same as existing) -Auto-merging B -CONFLICT (content): Merge conflict in B -Automatic merge failed; fix conflicts and then commit the result. -g : red changes a line -ok 4 - pull unrenaming branch into renaming one - -expecting success of 6402.5 'pull conflicting renames': - git reset --hard && - git show-branch && - test_expect_code 1 git pull . blue && - git ls-files -u A >a.stages && - test_line_count = 1 a.stages && - git ls-files -u B >b.stages && - test_line_count = 1 b.stages && - git ls-files -u C >c.stages && - test_line_count = 1 c.stages && - git ls-files -s N >n.stages && - test_line_count = 1 n.stages && - sed -ne "/^g/{ - p - q - }" B | grep red && - git diff --exit-code white N - -HEAD is now at 9020b53 red renames A->B, M->N -! [blue] blue renames A->C, M->N - ! [change] changed - ! [change+rename] changed and renamed - ! [master] master updates A - * [red] red renames A->B, M->N - ! [white] white renames A->B, M->N - ! [yellow] yellow removes M -------- - + [yellow] yellow removes M - + [white] white renames A->B, M->N - * [red] red renames A->B, M->N - + [master] master updates A - + [change+rename] changed and renamed - + [change] changed -+ [blue] blue renames A->C, M->N -++++*++ [yellow^] initial has A and M -hint: Pulling without specifying how to reconcile divergent branches is -hint: discouraged. You can squelch this message by running one of the following -hint: commands sometime before your next pull: -hint: -hint: git config pull.rebase false # merge (the default strategy) -hint: git config pull.rebase true # rebase -hint: git config pull.ff only # fast-forward only -hint: -hint: You can replace "git config" with "git config --global" to set a default -hint: preference for all repositories. You can also pass --rebase, --no-rebase, -hint: or --ff-only on the command line to override the configured default per -hint: invocation. -From . - * branch blue -> FETCH_HEAD -Merging: -9020b53 red renames A->B, M->N -virtual b706750f611415f609730a3078d3ca7a6942b4f1 -found 1 common ancestor: -7bbb60a initial has A and M -Auto-merging N -Skipped N (merged same as existing) -CONFLICT (rename/rename): Rename "A"->"B" in branch "HEAD" rename "A"->"C" in "b706750f611415f609730a3078d3ca7a6942b4f1" -Auto-merging B and C, both renamed from A -Automatic merge failed; fix conflicts and then commit the result. -g : red changes a line -ok 5 - pull conflicting renames - -expecting success of 6402.6 'interference with untracked working tree file': - git reset --hard && - git show-branch && - echo >A this file should not matter && - test_expect_code 1 git pull . white && - test_path_is_file A - -HEAD is now at 9020b53 red renames A->B, M->N -! [blue] blue renames A->C, M->N - ! [change] changed - ! [change+rename] changed and renamed - ! [master] master updates A - * [red] red renames A->B, M->N - ! [white] white renames A->B, M->N - ! [yellow] yellow removes M -------- - + [yellow] yellow removes M - + [white] white renames A->B, M->N - * [red] red renames A->B, M->N - + [master] master updates A - + [change+rename] changed and renamed - + [change] changed -+ [blue] blue renames A->C, M->N -++++*++ [yellow^] initial has A and M -hint: Pulling without specifying how to reconcile divergent branches is -hint: discouraged. You can squelch this message by running one of the following -hint: commands sometime before your next pull: -hint: -hint: git config pull.rebase false # merge (the default strategy) -hint: git config pull.rebase true # rebase -hint: git config pull.ff only # fast-forward only -hint: -hint: You can replace "git config" with "git config --global" to set a default -hint: preference for all repositories. You can also pass --rebase, --no-rebase, -hint: or --ff-only on the command line to override the configured default per -hint: invocation. -From . - * branch white -> FETCH_HEAD -Merging: -9020b53 red renames A->B, M->N -virtual 72f28f0720105464cdfa32b83c0499c257004216 -found 1 common ancestor: -7bbb60a initial has A and M -Auto-merging N -Skipped N (merged same as existing) -Auto-merging B -CONFLICT (content): Merge conflict in B -Automatic merge failed; fix conflicts and then commit the result. -ok 6 - interference with untracked working tree file - -expecting success of 6402.7 'interference with untracked working tree file': - git reset --hard && - git checkout white && - git show-branch && - rm -f A && - echo >A this file should not matter && - test_expect_code 1 git pull . red && - test_path_is_file A - -HEAD is now at 9020b53 red renames A->B, M->N -Switched to branch 'white' -! [blue] blue renames A->C, M->N - ! [change] changed - ! [change+rename] changed and renamed - ! [master] master updates A - ! [red] red renames A->B, M->N - * [white] white renames A->B, M->N - ! [yellow] yellow removes M -------- - + [yellow] yellow removes M - * [white] white renames A->B, M->N - + [red] red renames A->B, M->N - + [master] master updates A - + [change+rename] changed and renamed - + [change] changed -+ [blue] blue renames A->C, M->N -+++++*+ [yellow^] initial has A and M -hint: Pulling without specifying how to reconcile divergent branches is -hint: discouraged. You can squelch this message by running one of the following -hint: commands sometime before your next pull: -hint: -hint: git config pull.rebase false # merge (the default strategy) -hint: git config pull.rebase true # rebase -hint: git config pull.ff only # fast-forward only -hint: -hint: You can replace "git config" with "git config --global" to set a default -hint: preference for all repositories. You can also pass --rebase, --no-rebase, -hint: or --ff-only on the command line to override the configured default per -hint: invocation. -From . - * branch red -> FETCH_HEAD -Merging: -72f28f0 white renames A->B, M->N -virtual 9020b53a59349e083b2775e5cb76e998fd8af12a -found 1 common ancestor: -7bbb60a initial has A and M -Auto-merging N -Skipped N (merged same as existing) -Auto-merging B -CONFLICT (content): Merge conflict in B -Automatic merge failed; fix conflicts and then commit the result. -ok 7 - interference with untracked working tree file - -expecting success of 6402.8 'interference with untracked working tree file': - git reset --hard && - rm -f A M && - git checkout -f master && - git tag -f anchor && - git show-branch && - git pull . yellow && - test_path_is_missing M && - git reset --hard anchor - -HEAD is now at 72f28f0 white renames A->B, M->N -Switched to branch 'master' -! [blue] blue renames A->C, M->N - ! [change] changed - ! [change+rename] changed and renamed - * [master] master updates A - ! [red] red renames A->B, M->N - ! [white] white renames A->B, M->N - ! [yellow] yellow removes M -------- - + [yellow] yellow removes M - + [white] white renames A->B, M->N - + [red] red renames A->B, M->N - * [master] master updates A - + [change+rename] changed and renamed - + [change] changed -+ [blue] blue renames A->C, M->N -+++*+++ [yellow^] initial has A and M -hint: Pulling without specifying how to reconcile divergent branches is -hint: discouraged. You can squelch this message by running one of the following -hint: commands sometime before your next pull: -hint: -hint: git config pull.rebase false # merge (the default strategy) -hint: git config pull.rebase true # rebase -hint: git config pull.ff only # fast-forward only -hint: -hint: You can replace "git config" with "git config --global" to set a default -hint: preference for all repositories. You can also pass --rebase, --no-rebase, -hint: or --ff-only on the command line to override the configured default per -hint: invocation. -From . - * branch yellow -> FETCH_HEAD -Merging: -004aae0 master updates A -virtual 1f86866bbc72ea6c6fc20e4266194d536113c6b5 -found 1 common ancestor: -7bbb60a initial has A and M -Removing M -Merge made by the 'recursive' strategy. - M | 15 --------------- - 1 file changed, 15 deletions(-) - delete mode 100644 M -HEAD is now at 004aae0 master updates A -ok 8 - interference with untracked working tree file - -expecting success of 6402.9 'updated working tree file should prevent the merge': - git reset --hard && - rm -f A M && - git checkout -f master && - git tag -f anchor && - git show-branch && - echo >>M one line addition && - cat M >M.saved && - test_expect_code 128 git pull . yellow && - test_cmp M M.saved && - rm -f M.saved - -HEAD is now at 004aae0 master updates A -Already on 'master' -! [blue] blue renames A->C, M->N - ! [change] changed - ! [change+rename] changed and renamed - * [master] master updates A - ! [red] red renames A->B, M->N - ! [white] white renames A->B, M->N - ! [yellow] yellow removes M -------- - + [yellow] yellow removes M - + [white] white renames A->B, M->N - + [red] red renames A->B, M->N - * [master] master updates A - + [change+rename] changed and renamed - + [change] changed -+ [blue] blue renames A->C, M->N -+++*+++ [yellow^] initial has A and M -hint: Pulling without specifying how to reconcile divergent branches is -hint: discouraged. You can squelch this message by running one of the following -hint: commands sometime before your next pull: -hint: -hint: git config pull.rebase false # merge (the default strategy) -hint: git config pull.rebase true # rebase -hint: git config pull.ff only # fast-forward only -hint: -hint: You can replace "git config" with "git config --global" to set a default -hint: preference for all repositories. You can also pass --rebase, --no-rebase, -hint: or --ff-only on the command line to override the configured default per -hint: invocation. -From . - * branch yellow -> FETCH_HEAD -error: Your local changes to the following files would be overwritten by merge: - M -Please commit your changes or stash them before you merge. -Aborting -error: merging of trees 327b18fcbf562119811a97f5b8ed9c8ef85d5c3d and 878bb4a74cc6b899e74bcd3b56352573baeb967d failed -Merging: -004aae0 master updates A -virtual 1f86866bbc72ea6c6fc20e4266194d536113c6b5 -found 1 common ancestor: -7bbb60a initial has A and M -ok 9 - updated working tree file should prevent the merge - -expecting success of 6402.10 'updated working tree file should prevent the merge': - git reset --hard && - rm -f A M && - git checkout -f master && - git tag -f anchor && - git show-branch && - echo >>M one line addition && - cat M >M.saved && - git update-index M && - test_expect_code 128 git pull . yellow && - test_cmp M M.saved && - rm -f M.saved - -HEAD is now at 004aae0 master updates A -Already on 'master' -! [blue] blue renames A->C, M->N - ! [change] changed - ! [change+rename] changed and renamed - * [master] master updates A - ! [red] red renames A->B, M->N - ! [white] white renames A->B, M->N - ! [yellow] yellow removes M -------- - + [yellow] yellow removes M - + [white] white renames A->B, M->N - + [red] red renames A->B, M->N - * [master] master updates A - + [change+rename] changed and renamed - + [change] changed -+ [blue] blue renames A->C, M->N -+++*+++ [yellow^] initial has A and M -hint: Pulling without specifying how to reconcile divergent branches is -hint: discouraged. You can squelch this message by running one of the following -hint: commands sometime before your next pull: -hint: -hint: git config pull.rebase false # merge (the default strategy) -hint: git config pull.rebase true # rebase -hint: git config pull.ff only # fast-forward only -hint: -hint: You can replace "git config" with "git config --global" to set a default -hint: preference for all repositories. You can also pass --rebase, --no-rebase, -hint: or --ff-only on the command line to override the configured default per -hint: invocation. -From . - * branch yellow -> FETCH_HEAD -error: Your local changes to the following files would be overwritten by merge: - M -ok 10 - updated working tree file should prevent the merge - -expecting success of 6402.11 'interference with untracked working tree file': - git reset --hard && - rm -f A M && - git checkout -f yellow && - git tag -f anchor && - git show-branch && - echo >M this file should not matter && - git pull . master && - test_path_is_file M && - ! { - git ls-files -s | - grep M - } && - git reset --hard anchor - -HEAD is now at 004aae0 master updates A -Switched to branch 'yellow' -Updated tag 'anchor' (was 004aae0) -! [blue] blue renames A->C, M->N - ! [change] changed - ! [change+rename] changed and renamed - ! [master] master updates A - ! [red] red renames A->B, M->N - ! [white] white renames A->B, M->N - * [yellow] yellow removes M -------- - * [yellow] yellow removes M - + [white] white renames A->B, M->N - + [red] red renames A->B, M->N - + [master] master updates A - + [change+rename] changed and renamed - + [change] changed -+ [blue] blue renames A->C, M->N -++++++* [yellow^] initial has A and M -hint: Pulling without specifying how to reconcile divergent branches is -hint: discouraged. You can squelch this message by running one of the following -hint: commands sometime before your next pull: -hint: -hint: git config pull.rebase false # merge (the default strategy) -hint: git config pull.rebase true # rebase -hint: git config pull.ff only # fast-forward only -hint: -hint: You can replace "git config" with "git config --global" to set a default -hint: preference for all repositories. You can also pass --rebase, --no-rebase, -hint: or --ff-only on the command line to override the configured default per -hint: invocation. -From . - * branch master -> FETCH_HEAD -Merging: -1f86866 yellow removes M -virtual 004aae0ee2bb921ebebdc021cf0cd585efa1181f -found 1 common ancestor: -7bbb60a initial has A and M -Merge made by the 'recursive' strategy. - A | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) -HEAD is now at 1f86866 yellow removes M -ok 11 - interference with untracked working tree file - -expecting success of 6402.12 'merge of identical changes in a renamed file': - rm -f A M N && - git reset --hard && - git checkout change+rename && - - test-tool chmtime --get -3600 B >old-mtime && - GIT_MERGE_VERBOSITY=3 git merge change >out && - - test-tool chmtime --get B >new-mtime && - test_cmp old-mtime new-mtime && - - git reset --hard HEAD^ && - git checkout change && - - # A will be renamed to B; we check mtimes and file presence - test_path_is_missing B && - test-tool chmtime --get -3600 A >old-mtime && - GIT_MERGE_VERBOSITY=3 git merge change+rename >out && - - test_path_is_missing A && - test-tool chmtime --get B >new-mtime && - test $(cat old-mtime) -lt $(cat new-mtime) - -HEAD is now at 1f86866 yellow removes M -Switched to branch 'change+rename' -HEAD is now at df47076 changed and renamed -Switched to branch 'change' -ok 12 - merge of identical changes in a renamed file - -expecting success of 6402.13 'setup for rename + d/f conflicts': - git reset --hard && - git checkout --orphan dir-in-way && - git rm -rf . && - git clean -fdqx && - - mkdir sub && - mkdir dir && - printf "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n" >sub/file && - echo foo >dir/file-in-the-way && - git add -A && - git commit -m "Common commit" && - - echo 11 >>sub/file && - echo more >>dir/file-in-the-way && - git add -u && - git commit -m "Commit to merge, with dir in the way" && - - git checkout -b dir-not-in-way && - git reset --soft HEAD^ && - git rm -rf dir && - git commit -m "Commit to merge, with dir removed" -- dir sub/file && - - git checkout -b renamed-file-has-no-conflicts dir-in-way~1 && - git rm -rf dir && - git rm sub/file && - printf "1\n2\n3\n4\n5555\n6\n7\n8\n9\n10\n" >dir && - git add dir && - git commit -m "Independent change" && - - git checkout -b renamed-file-has-conflicts dir-in-way~1 && - git rm -rf dir && - git mv sub/file dir && - echo 12 >>dir && - git add dir && - git commit -m "Conflicting change" - -HEAD is now at 5fdefee Merge branch 'change+rename' into change -Switched to a new branch 'dir-in-way' -rm 'B' -rm 'M' -[dir-in-way (root-commit) 90faa3c] Common commit - Author: A U Thor - 2 files changed, 11 insertions(+) - create mode 100644 dir/file-in-the-way - create mode 100644 sub/file -[dir-in-way cd90736] Commit to merge, with dir in the way - Author: A U Thor - 2 files changed, 2 insertions(+) -Switched to a new branch 'dir-not-in-way' -rm 'dir/file-in-the-way' -[dir-not-in-way a8845d3] Commit to merge, with dir removed - Author: A U Thor - 2 files changed, 1 insertion(+), 1 deletion(-) - delete mode 100644 dir/file-in-the-way -Switched to a new branch 'renamed-file-has-no-conflicts' -rm 'dir/file-in-the-way' -rm 'sub/file' -[renamed-file-has-no-conflicts 8c7fff4] Independent change - Author: A U Thor - 2 files changed, 1 insertion(+), 2 deletions(-) - rename sub/file => dir (79%) - delete mode 100644 dir/file-in-the-way -Switched to a new branch 'renamed-file-has-conflicts' -rm 'dir/file-in-the-way' -[renamed-file-has-conflicts 53f2d73] Conflicting change - Author: A U Thor - 2 files changed, 1 insertion(+), 1 deletion(-) - rename sub/file => dir (87%) - delete mode 100644 dir/file-in-the-way -ok 13 - setup for rename + d/f conflicts - -expecting success of 6402.14 'Rename+D/F conflict; renamed file merges + dir not in way': - git reset --hard && - git checkout -q renamed-file-has-no-conflicts^0 && - - git merge --strategy=recursive dir-not-in-way && - - git diff --quiet && - test_path_is_file dir && - test_write_lines 1 2 3 4 5555 6 7 8 9 10 11 >expected && - test_cmp expected dir - -HEAD is now at 53f2d73 Conflicting change -Merging: -8c7fff4 Independent change -virtual dir-not-in-way -found 1 common ancestor: -90faa3c Common commit -Auto-merging dir -Merge made by the 'recursive' strategy. - dir | 1 + - 1 file changed, 1 insertion(+) -ok 14 - Rename+D/F conflict; renamed file merges + dir not in way - -expecting success of 6402.15 'Rename+D/F conflict; renamed file merges but dir in way': - git reset --hard && - rm -rf dir~* && - git checkout -q renamed-file-has-no-conflicts^0 && - test_must_fail git merge --strategy=recursive dir-in-way >output && - - test_i18ngrep "CONFLICT (modify/delete): dir/file-in-the-way" output && - test_i18ngrep "Auto-merging dir" output && - if test "$GIT_TEST_MERGE_ALGORITHM" = ort - then - test_i18ngrep "moving it to dir~HEAD instead" output - else - test_i18ngrep "Adding as dir~HEAD instead" output - fi && - - test 3 -eq "$(git ls-files -u | wc -l)" && - test 2 -eq "$(git ls-files -u dir/file-in-the-way | wc -l)" && - - test_must_fail git diff --quiet && - test_must_fail git diff --cached --quiet && - - test_path_is_file dir/file-in-the-way && - test_path_is_file dir~HEAD && - test_cmp expected dir~HEAD - -HEAD is now at 7b1d99c Merge branch 'dir-not-in-way' into HEAD -checking prerequisite: C_LOCALE_OUTPUT - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false - -) -prerequisite C_LOCALE_OUTPUT ok -CONFLICT (modify/delete): dir/file-in-the-way deleted in HEAD and modified in dir-in-way. Version dir-in-way of dir/file-in-the-way left in tree. -Auto-merging dir -Adding as dir~HEAD instead -ok 15 - Rename+D/F conflict; renamed file merges but dir in way - -expecting success of 6402.16 'Same as previous, but merged other way': - git reset --hard && - rm -rf dir~* && - git checkout -q dir-in-way^0 && - test_must_fail git merge --strategy=recursive renamed-file-has-no-conflicts >output 2>errors && - - ! grep "error: refusing to lose untracked file at" errors && - test_i18ngrep "CONFLICT (modify/delete): dir/file-in-the-way" output && - test_i18ngrep "Auto-merging dir" output && - if test "$GIT_TEST_MERGE_ALGORITHM" = ort - then - test_i18ngrep "moving it to dir~renamed-file-has-no-conflicts instead" output - else - test_i18ngrep "Adding as dir~renamed-file-has-no-conflicts instead" output - fi && - - test 3 -eq "$(git ls-files -u | wc -l)" && - test 2 -eq "$(git ls-files -u dir/file-in-the-way | wc -l)" && - - test_must_fail git diff --quiet && - test_must_fail git diff --cached --quiet && - - test_path_is_file dir/file-in-the-way && - test_path_is_file dir~renamed-file-has-no-conflicts && - test_cmp expected dir~renamed-file-has-no-conflicts - -HEAD is now at 8c7fff4 Independent change -CONFLICT (modify/delete): dir/file-in-the-way deleted in renamed-file-has-no-conflicts and modified in HEAD. Version HEAD of dir/file-in-the-way left in tree. -Auto-merging dir -Adding as dir~renamed-file-has-no-conflicts instead -ok 16 - Same as previous, but merged other way - -expecting success of 6402.17 'Rename+D/F conflict; renamed file cannot merge, dir not in way': - git reset --hard && - rm -rf dir~* && - git checkout -q renamed-file-has-conflicts^0 && - test_must_fail git merge --strategy=recursive dir-not-in-way && - - test 3 -eq "$(git ls-files -u | wc -l)" && - test 3 -eq "$(git ls-files -u dir | wc -l)" && - - test_must_fail git diff --quiet && - test_must_fail git diff --cached --quiet && - - test_path_is_file dir && - cat >expected <<-\EOF && - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - <<<<<<< HEAD:dir - 12 - ======= - 11 - >>>>>>> dir-not-in-way:sub/file - EOF - test_cmp expected dir - -warning: unable to unlink 'dir': Is a directory -HEAD is now at cd90736 Commit to merge, with dir in the way -Merging: -53f2d73 Conflicting change -virtual dir-not-in-way -found 1 common ancestor: -90faa3c Common commit -Auto-merging dir -CONFLICT (content): Merge conflict in dir -Automatic merge failed; fix conflicts and then commit the result. -ok 17 - Rename+D/F conflict; renamed file cannot merge, dir not in way - -expecting success of 6402.18 'Rename+D/F conflict; renamed file cannot merge and dir in the way': - modify s/dir-not-in-way/dir-in-way/ expected && - - git reset --hard && - rm -rf dir~* && - git checkout -q renamed-file-has-conflicts^0 && - test_must_fail git merge --strategy=recursive dir-in-way && - - test 5 -eq "$(git ls-files -u | wc -l)" && - if test "$GIT_TEST_MERGE_ALGORITHM" = ort - then - test 3 -eq "$(git ls-files -u dir~HEAD | wc -l)" - else - test 3 -eq "$(git ls-files -u dir | grep -v file-in-the-way | wc -l)" - fi && - test 2 -eq "$(git ls-files -u dir/file-in-the-way | wc -l)" && - - test_must_fail git diff --quiet && - test_must_fail git diff --cached --quiet && - - test_path_is_file dir/file-in-the-way && - test_path_is_file dir~HEAD && - test_cmp expected dir~HEAD - -HEAD is now at 53f2d73 Conflicting change -Merging: -53f2d73 Conflicting change -virtual dir-in-way -found 1 common ancestor: -90faa3c Common commit -CONFLICT (modify/delete): dir/file-in-the-way deleted in HEAD and modified in dir-in-way. Version dir-in-way of dir/file-in-the-way left in tree. -Removing dir to make room for subdirectory - -Auto-merging dir -CONFLICT (content): Merge conflict in dir -Refusing to lose dirty file at dir -Adding as dir~HEAD instead -Automatic merge failed; fix conflicts and then commit the result. -ok 18 - Rename+D/F conflict; renamed file cannot merge and dir in the way - -expecting success of 6402.19 'Same as previous, but merged other way': - git reset --hard && - rm -rf dir~* && - git checkout -q dir-in-way^0 && - test_must_fail git merge --strategy=recursive renamed-file-has-conflicts && - - test 5 -eq "$(git ls-files -u | wc -l)" && - if test "$GIT_TEST_MERGE_ALGORITHM" = ort - then - test 3 -eq "$(git ls-files -u dir~renamed-file-has-conflicts | wc -l)" - else - test 3 -eq "$(git ls-files -u dir | grep -v file-in-the-way | wc -l)" - fi && - test 2 -eq "$(git ls-files -u dir/file-in-the-way | wc -l)" && - - test_must_fail git diff --quiet && - test_must_fail git diff --cached --quiet && - - test_path_is_file dir/file-in-the-way && - test_path_is_file dir~renamed-file-has-conflicts && - cat >expected <<-\EOF && - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - <<<<<<< HEAD:sub/file - 11 - ======= - 12 - >>>>>>> renamed-file-has-conflicts:dir - EOF - test_cmp expected dir~renamed-file-has-conflicts - -HEAD is now at 53f2d73 Conflicting change -Merging: -cd90736 Commit to merge, with dir in the way -virtual renamed-file-has-conflicts -found 1 common ancestor: -90faa3c Common commit -CONFLICT (modify/delete): dir/file-in-the-way deleted in renamed-file-has-conflicts and modified in HEAD. Version HEAD of dir/file-in-the-way left in tree. -Auto-merging dir -CONFLICT (content): Merge conflict in dir -Adding as dir~renamed-file-has-conflicts instead -Automatic merge failed; fix conflicts and then commit the result. -ok 19 - Same as previous, but merged other way - -expecting success of 6402.20 'setup both rename source and destination involved in D/F conflict': - git reset --hard && - git checkout --orphan rename-dest && - git rm -rf . && - git clean -fdqx && - - mkdir one && - echo stuff >one/file && - git add -A && - git commit -m "Common commit" && - - git mv one/file destdir && - git commit -m "Renamed to destdir" && - - git checkout -b source-conflict HEAD~1 && - git rm -rf one && - mkdir destdir && - touch one destdir/foo && - git add -A && - git commit -m "Conflicts in the way" - -warning: unable to unlink 'dir': Is a directory -HEAD is now at cd90736 Commit to merge, with dir in the way -Switched to a new branch 'rename-dest' -rm 'dir/file-in-the-way' -rm 'sub/file' -[rename-dest (root-commit) 3156d6d] Common commit - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 one/file -[rename-dest 4fde1d0] Renamed to destdir - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - rename one/file => destdir (100%) -Switched to a new branch 'source-conflict' -rm 'one/file' -[source-conflict 58f64f9] Conflicts in the way - Author: A U Thor - 3 files changed, 1 deletion(-) - create mode 100644 destdir/foo - create mode 100644 one - delete mode 100644 one/file -ok 20 - setup both rename source and destination involved in D/F conflict - -expecting success of 6402.21 'both rename source and destination involved in D/F conflict': - git reset --hard && - rm -rf dir~* && - git checkout -q rename-dest^0 && - test_must_fail git merge --strategy=recursive source-conflict && - - if test "$GIT_TEST_MERGE_ALGORITHM" = ort - then - test 2 -eq "$(git ls-files -u | wc -l)" - else - test 1 -eq "$(git ls-files -u | wc -l)" - fi && - - test_must_fail git diff --quiet && - - test_path_is_file destdir/foo && - test_path_is_file one && - test_path_is_file destdir~HEAD && - test "stuff" = "$(cat destdir~HEAD)" - -HEAD is now at 58f64f9 Conflicts in the way -Merging: -4fde1d0 Renamed to destdir -virtual source-conflict -found 1 common ancestor: -3156d6d Common commit -Adding one -Adding destdir/foo -Removing destdir to make room for subdirectory - -CONFLICT (rename/delete): one/file deleted in source-conflict and renamed to destdir in HEAD. Version HEAD of destdir left in tree at destdir~HEAD. -Automatic merge failed; fix conflicts and then commit the result. -ok 21 - both rename source and destination involved in D/F conflict - -expecting success of 6402.22 'setup pair rename to parent of other (D/F conflicts)': - git reset --hard && - git checkout --orphan rename-two && - git rm -rf . && - git clean -fdqx && - - mkdir one && - mkdir two && - echo stuff >one/file && - echo other >two/file && - git add -A && - git commit -m "Common commit" && - - git rm -rf one && - git mv two/file one && - git commit -m "Rename two/file -> one" && - - git checkout -b rename-one HEAD~1 && - git rm -rf two && - git mv one/file two && - rm -r one && - git commit -m "Rename one/file -> two" - -HEAD is now at 4fde1d0 Renamed to destdir -Switched to a new branch 'rename-two' -rm 'destdir' -[rename-two (root-commit) 0765ccc] Common commit - Author: A U Thor - 2 files changed, 2 insertions(+) - create mode 100644 one/file - create mode 100644 two/file -rm 'one/file' -[rename-two c518e9e] Rename two/file -> one - Author: A U Thor - 2 files changed, 1 deletion(-) - rename two/file => one (100%) - delete mode 100644 one/file -Switched to a new branch 'rename-one' -rm 'two/file' -[rename-one a4e3198] Rename one/file -> two - Author: A U Thor - 2 files changed, 1 deletion(-) - rename one/file => two (100%) - delete mode 100644 two/file -ok 22 - setup pair rename to parent of other (D/F conflicts) - -expecting success of 6402.23 'pair rename to parent of other (D/F conflicts) w/ untracked dir': - git checkout -q rename-one^0 && - mkdir one && - test_must_fail git merge --strategy=recursive rename-two && - - test 2 -eq "$(git ls-files -u | wc -l)" && - test 1 -eq "$(git ls-files -u one | wc -l)" && - test 1 -eq "$(git ls-files -u two | wc -l)" && - - test_must_fail git diff --quiet && - - test 4 -eq $(find . | grep -v .git | wc -l) && - - test_path_is_dir one && - test_path_is_file one~rename-two && - test_path_is_file two && - test "other" = $(cat one~rename-two) && - test "stuff" = $(cat two) - -Merging: -a4e3198 Rename one/file -> two -virtual rename-two -found 1 common ancestor: -0765ccc Common commit -CONFLICT (rename/delete): one/file deleted in rename-two and renamed to two in HEAD. Version HEAD of two left in tree. -CONFLICT (rename/delete): two/file deleted in HEAD and renamed to one in rename-two. Version rename-two of one left in tree at one~rename-two. -Automatic merge failed; fix conflicts and then commit the result. -ok 23 - pair rename to parent of other (D/F conflicts) w/ untracked dir - -expecting success of 6402.24 'pair rename to parent of other (D/F conflicts) w/ clean start': - git reset --hard && - git clean -fdqx && - test_must_fail git merge --strategy=recursive rename-two && - - if test "$GIT_TEST_MERGE_ALGORITHM" = ort - then - test 4 -eq "$(git ls-files -u | wc -l)" && - test 2 -eq "$(git ls-files -u one | wc -l)" && - test 2 -eq "$(git ls-files -u two | wc -l)" - else - test 2 -eq "$(git ls-files -u | wc -l)" && - test 1 -eq "$(git ls-files -u one | wc -l)" && - test 1 -eq "$(git ls-files -u two | wc -l)" - fi && - - test_must_fail git diff --quiet && - - test 3 -eq $(find . | grep -v .git | wc -l) && - - test_path_is_file one && - test_path_is_file two && - test "other" = $(cat one) && - test "stuff" = $(cat two) - -warning: unable to unlink 'one': Is a directory -HEAD is now at a4e3198 Rename one/file -> two -Merging: -a4e3198 Rename one/file -> two -virtual rename-two -found 1 common ancestor: -0765ccc Common commit -CONFLICT (rename/delete): one/file deleted in rename-two and renamed to two in HEAD. Version HEAD of two left in tree. -CONFLICT (rename/delete): two/file deleted in HEAD and renamed to one in rename-two. Version rename-two of one left in tree. -Automatic merge failed; fix conflicts and then commit the result. -ok 24 - pair rename to parent of other (D/F conflicts) w/ clean start - -expecting success of 6402.25 'setup rename of one file to two, with directories in the way': - git reset --hard && - git checkout --orphan first-rename && - git rm -rf . && - git clean -fdqx && - - echo stuff >original && - git add -A && - git commit -m "Common commit" && - - mkdir two && - >two/file && - git add two/file && - git mv original one && - git commit -m "Put two/file in the way, rename to one" && - - git checkout -b second-rename HEAD~1 && - mkdir one && - >one/file && - git add one/file && - git mv original two && - git commit -m "Put one/file in the way, rename to two" - -HEAD is now at a4e3198 Rename one/file -> two -Switched to a new branch 'first-rename' -rm 'two' -[first-rename (root-commit) 3ec06ba] Common commit - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 original -[first-rename 1d86576] Put two/file in the way, rename to one - Author: A U Thor - 2 files changed, 0 insertions(+), 0 deletions(-) - rename original => one (100%) - create mode 100644 two/file -Switched to a new branch 'second-rename' -[second-rename 35e7177] Put one/file in the way, rename to two - Author: A U Thor - 2 files changed, 0 insertions(+), 0 deletions(-) - create mode 100644 one/file - rename original => two (100%) -ok 25 - setup rename of one file to two, with directories in the way - -expecting success of 6402.26 'check handling of differently renamed file with D/F conflicts': - git checkout -q first-rename^0 && - test_must_fail git merge --strategy=recursive second-rename && - - if test "$GIT_TEST_MERGE_ALGORITHM" = ort - then - test 5 -eq "$(git ls-files -s | wc -l)" && - test 3 -eq "$(git ls-files -u | wc -l)" && - test 1 -eq "$(git ls-files -u one~HEAD | wc -l)" && - test 1 -eq "$(git ls-files -u two~second-rename | wc -l)" && - test 1 -eq "$(git ls-files -u original | wc -l)" && - test 0 -eq "$(git ls-files -o | wc -l)" - else - test 5 -eq "$(git ls-files -s | wc -l)" && - test 3 -eq "$(git ls-files -u | wc -l)" && - test 1 -eq "$(git ls-files -u one | wc -l)" && - test 1 -eq "$(git ls-files -u two | wc -l)" && - test 1 -eq "$(git ls-files -u original | wc -l)" && - test 2 -eq "$(git ls-files -o | wc -l)" - fi && - - test_path_is_file one/file && - test_path_is_file two/file && - test_path_is_file one~HEAD && - test_path_is_file two~second-rename && - test_path_is_missing original - -Merging: -1d86576 Put two/file in the way, rename to one -virtual second-rename -found 1 common ancestor: -3ec06ba Common commit -Adding two/file -Adding one/file -Removing one to make room for subdirectory - -CONFLICT (rename/rename): Rename "original"->"one" in branch "HEAD" rename "original"->"two" in "second-rename" -one is a directory in second-rename adding as one~HEAD instead -two is a directory in HEAD adding as two~second-rename instead -Automatic merge failed; fix conflicts and then commit the result. -ok 26 - check handling of differently renamed file with D/F conflicts - -expecting success of 6402.27 'setup rename one file to two; directories moving out of the way': - git reset --hard && - git checkout --orphan first-rename-redo && - git rm -rf . && - git clean -fdqx && - - echo stuff >original && - mkdir one two && - touch one/file two/file && - git add -A && - git commit -m "Common commit" && - - git rm -rf one && - git mv original one && - git commit -m "Rename to one" && - - git checkout -b second-rename-redo HEAD~1 && - git rm -rf two && - git mv original two && - git commit -m "Rename to two" - -warning: unable to unlink 'two': Is a directory -HEAD is now at 1d86576 Put two/file in the way, rename to one -Switched to a new branch 'first-rename-redo' -rm 'one' -rm 'two/file' -[first-rename-redo (root-commit) 7f6a382] Common commit - Author: A U Thor - 3 files changed, 1 insertion(+) - create mode 100644 one/file - create mode 100644 original - create mode 100644 two/file -rm 'one/file' -[first-rename-redo 5a00903] Rename to one - Author: A U Thor - 2 files changed, 0 insertions(+), 0 deletions(-) - rename original => one (100%) - delete mode 100644 one/file -Switched to a new branch 'second-rename-redo' -rm 'two/file' -[second-rename-redo 28aa9be] Rename to two - Author: A U Thor - 2 files changed, 0 insertions(+), 0 deletions(-) - rename original => two (100%) - delete mode 100644 two/file -ok 27 - setup rename one file to two; directories moving out of the way - -expecting success of 6402.28 'check handling of differently renamed file with D/F conflicts': - git checkout -q first-rename-redo^0 && - test_must_fail git merge --strategy=recursive second-rename-redo && - - test 3 -eq "$(git ls-files -u | wc -l)" && - test 1 -eq "$(git ls-files -u one | wc -l)" && - test 1 -eq "$(git ls-files -u two | wc -l)" && - test 1 -eq "$(git ls-files -u original | wc -l)" && - test 0 -eq "$(git ls-files -o | wc -l)" && - - test_path_is_file one && - test_path_is_file two && - test_path_is_missing original - -Merging: -5a00903 Rename to one -virtual second-rename-redo -found 1 common ancestor: -7f6a382 Common commit -Removing two/file -CONFLICT (rename/rename): Rename "original"->"one" in branch "HEAD" rename "original"->"two" in "second-rename-redo" -Automatic merge failed; fix conflicts and then commit the result. -ok 28 - check handling of differently renamed file with D/F conflicts - -expecting success of 6402.29 'setup avoid unnecessary update, normal rename': - git reset --hard && - git checkout --orphan avoid-unnecessary-update-1 && - git rm -rf . && - git clean -fdqx && - - printf "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n" >original && - git add -A && - git commit -m "Common commit" && - - git mv original rename && - echo 11 >>rename && - git add -u && - git commit -m "Renamed and modified" && - - git checkout -b merge-branch-1 HEAD~1 && - echo "random content" >random-file && - git add -A && - git commit -m "Random, unrelated changes" - -HEAD is now at 5a00903 Rename to one -Switched to a new branch 'avoid-unnecessary-update-1' -rm 'one' -rm 'two/file' -[avoid-unnecessary-update-1 (root-commit) 2079f93] Common commit - Author: A U Thor - 1 file changed, 10 insertions(+) - create mode 100644 original -[avoid-unnecessary-update-1 fb0186c] Renamed and modified - Author: A U Thor - 1 file changed, 1 insertion(+) - rename original => rename (87%) -Switched to a new branch 'merge-branch-1' -[merge-branch-1 65bbd67] Random, unrelated changes - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 random-file -ok 29 - setup avoid unnecessary update, normal rename - -expecting success of 6402.30 'avoid unnecessary update, normal rename': - git checkout -q avoid-unnecessary-update-1^0 && - test-tool chmtime --get -3600 rename >expect && - git merge merge-branch-1 && - test-tool chmtime --get rename >actual && - test_cmp expect actual # "rename" should have stayed intact - -Merging: -fb0186c Renamed and modified -virtual merge-branch-1 -found 1 common ancestor: -2079f93 Common commit -Skipped rename (merged same as existing) -Merge made by the 'recursive' strategy. - random-file | 1 + - 1 file changed, 1 insertion(+) - create mode 100644 random-file -ok 30 - avoid unnecessary update, normal rename - -expecting success of 6402.31 'setup to test avoiding unnecessary update, with D/F conflict': - git reset --hard && - git checkout --orphan avoid-unnecessary-update-2 && - git rm -rf . && - git clean -fdqx && - - mkdir df && - printf "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n" >df/file && - git add -A && - git commit -m "Common commit" && - - git mv df/file temp && - rm -rf df && - git mv temp df && - echo 11 >>df && - git add -u && - git commit -m "Renamed and modified" && - - git checkout -b merge-branch-2 HEAD~1 && - >unrelated-change && - git add unrelated-change && - git commit -m "Only unrelated changes" - -HEAD is now at 284061b Merge branch 'merge-branch-1' into HEAD -Switched to a new branch 'avoid-unnecessary-update-2' -rm 'random-file' -rm 'rename' -[avoid-unnecessary-update-2 (root-commit) e635445] Common commit - Author: A U Thor - 1 file changed, 10 insertions(+) - create mode 100644 df/file -[avoid-unnecessary-update-2 fb8c6d0] Renamed and modified - Author: A U Thor - 1 file changed, 1 insertion(+) - rename df/file => df (87%) -Switched to a new branch 'merge-branch-2' -[merge-branch-2 0787898] Only unrelated changes - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - create mode 100644 unrelated-change -ok 31 - setup to test avoiding unnecessary update, with D/F conflict - -expecting success of 6402.32 'avoid unnecessary update, with D/F conflict': - git checkout -q avoid-unnecessary-update-2^0 && - test-tool chmtime --get -3600 df >expect && - git merge merge-branch-2 && - test-tool chmtime --get df >actual && - test_cmp expect actual # "df" should have stayed intact - -Merging: -fb8c6d0 Renamed and modified -virtual merge-branch-2 -found 1 common ancestor: -e635445 Common commit -Skipped df (merged same as existing) -Merge made by the 'recursive' strategy. - unrelated-change | 0 - 1 file changed, 0 insertions(+), 0 deletions(-) - create mode 100644 unrelated-change -ok 32 - avoid unnecessary update, with D/F conflict - -expecting success of 6402.33 'setup avoid unnecessary update, dir->(file,nothing)': - git rm -rf . && - git clean -fdqx && - rm -rf .git && - git init && - - >irrelevant && - mkdir df && - >df/file && - git add -A && - git commit -mA && - - git checkout -b side && - git rm -rf df && - git commit -mB && - - git checkout master && - git rm -rf df && - echo bla >df && - git add -A && - git commit -m "Add a newfile" - -rm 'df' -rm 'unrelated-change' -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6402-merge-rename/.git/ -[master (root-commit) 0238749] A - Author: A U Thor - 2 files changed, 0 insertions(+), 0 deletions(-) - create mode 100644 df/file - create mode 100644 irrelevant -Switched to a new branch 'side' -rm 'df/file' -[side 32a928c] B - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - delete mode 100644 df/file -Switched to branch 'master' -rm 'df/file' -[master 90ac8b3] Add a newfile - Author: A U Thor - 2 files changed, 1 insertion(+) - create mode 100644 df - delete mode 100644 df/file -ok 33 - setup avoid unnecessary update, dir->(file,nothing) - -expecting success of 6402.34 'avoid unnecessary update, dir->(file,nothing)': - git checkout -q master^0 && - test-tool chmtime --get -3600 df >expect && - git merge side && - test-tool chmtime --get df >actual && - test_cmp expect actual # "df" should have stayed intact - -Merging: -90ac8b3 Add a newfile -virtual side -found 1 common ancestor: -0238749 A -Adding df -Merge made by the 'recursive' strategy. -ok 34 - avoid unnecessary update, dir->(file,nothing) - -expecting success of 6402.35 'setup avoid unnecessary update, modify/delete': - git rm -rf . && - git clean -fdqx && - rm -rf .git && - git init && - - >irrelevant && - >file && - git add -A && - git commit -mA && - - git checkout -b side && - git rm -f file && - git commit -m "Delete file" && - - git checkout master && - echo bla >file && - git add -A && - git commit -m "Modify file" - -rm 'df' -rm 'irrelevant' -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6402-merge-rename/.git/ -[master (root-commit) bec55b4] A - Author: A U Thor - 2 files changed, 0 insertions(+), 0 deletions(-) - create mode 100644 file - create mode 100644 irrelevant -Switched to a new branch 'side' -rm 'file' -[side d8f9927] Delete file - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - delete mode 100644 file -Switched to branch 'master' -[master 27c30f6] Modify file - Author: A U Thor - 1 file changed, 1 insertion(+) -ok 35 - setup avoid unnecessary update, modify/delete - -expecting success of 6402.36 'avoid unnecessary update, modify/delete': - git checkout -q master^0 && - test-tool chmtime --get -3600 file >expect && - test_must_fail git merge side && - test-tool chmtime --get file >actual && - test_cmp expect actual # "file" should have stayed intact - -Merging: -27c30f6 Modify file -virtual side -found 1 common ancestor: -bec55b4 A -CONFLICT (modify/delete): file deleted in side and modified in HEAD. Version HEAD of file left in tree. -Automatic merge failed; fix conflicts and then commit the result. -ok 36 - avoid unnecessary update, modify/delete - -expecting success of 6402.37 'setup avoid unnecessary update, rename/add-dest': - git rm -rf . && - git clean -fdqx && - rm -rf .git && - git init && - - printf "1\n2\n3\n4\n5\n6\n7\n8\n" >file && - git add -A && - git commit -mA && - - git checkout -b side && - cp file newfile && - git add -A && - git commit -m "Add file copy" && - - git checkout master && - git mv file newfile && - git commit -m "Rename file" - -rm 'file' -rm 'file' -rm 'irrelevant' -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6402-merge-rename/.git/ -[master (root-commit) 61e6524] A - Author: A U Thor - 1 file changed, 8 insertions(+) - create mode 100644 file -Switched to a new branch 'side' -[side 8c16f55] Add file copy - Author: A U Thor - 1 file changed, 8 insertions(+) - create mode 100644 newfile -Switched to branch 'master' -[master b01e819] Rename file - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - rename file => newfile (100%) -ok 37 - setup avoid unnecessary update, rename/add-dest - -expecting success of 6402.38 'avoid unnecessary update, rename/add-dest': - git checkout -q master^0 && - test-tool chmtime --get -3600 newfile >expect && - git merge side && - test-tool chmtime --get newfile >actual && - test_cmp expect actual # "file" should have stayed intact - -Merging: -b01e819 Rename file -virtual side -found 1 common ancestor: -61e6524 A -Merge made by the 'recursive' strategy. -ok 38 - avoid unnecessary update, rename/add-dest - -expecting success of 6402.39 'setup merge of rename + small change': - git reset --hard && - git checkout --orphan rename-plus-small-change && - git rm -rf . && - git clean -fdqx && - - echo ORIGINAL >file && - git add file && - - test_tick && - git commit -m Initial && - git checkout -b rename_branch && - git mv file renamed_file && - git commit -m Rename && - git checkout rename-plus-small-change && - echo NEW-VERSION >file && - git commit -a -m Reformat - -HEAD is now at 826dab9 Merge branch 'side' into HEAD -Switched to a new branch 'rename-plus-small-change' -rm 'newfile' -[rename-plus-small-change (root-commit) e44eadc] Initial - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -Switched to a new branch 'rename_branch' -[rename_branch f706812] Rename - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - rename file => renamed_file (100%) -Switched to branch 'rename-plus-small-change' -[rename-plus-small-change 068ab66] Reformat - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -ok 39 - setup merge of rename + small change - -expecting success of 6402.40 'merge rename + small change': - git merge rename_branch && - - test 1 -eq $(git ls-files -s | wc -l) && - test 0 -eq $(git ls-files -o | wc -l) && - test $(git rev-parse HEAD:renamed_file) = $(git rev-parse HEAD~1:file) - -Merging: -068ab66 Reformat -virtual rename_branch -found 1 common ancestor: -e44eadc Initial -Merge made by the 'recursive' strategy. - file => renamed_file | 0 - 1 file changed, 0 insertions(+), 0 deletions(-) - rename file => renamed_file (100%) -ok 40 - merge rename + small change - -expecting success of 6402.41 'setup for use of extended merge markers': - git rm -rf . && - git clean -fdqx && - rm -rf .git && - git init && - - printf "1\n2\n3\n4\n5\n6\n7\n8\n" >original_file && - git add original_file && - git commit -mA && - - git checkout -b rename && - echo 9 >>original_file && - git add original_file && - git mv original_file renamed_file && - git commit -mB && - - git checkout master && - echo 8.5 >>original_file && - git add original_file && - git commit -mC - -rm 'renamed_file' -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6402-merge-rename/.git/ -[master (root-commit) 4847e8a] A - Author: A U Thor - 1 file changed, 8 insertions(+) - create mode 100644 original_file -Switched to a new branch 'rename' -[rename e9adddb] B - Author: A U Thor - 1 file changed, 1 insertion(+) - rename original_file => renamed_file (88%) -Switched to branch 'master' -[master 0487bb6] C - Author: A U Thor - 1 file changed, 1 insertion(+) -ok 41 - setup for use of extended merge markers - -expecting success of 6402.42 'merge master into rename has correct extended markers': - git checkout rename^0 && - test_must_fail git merge -s recursive master^0 && - - cat >expected <<-\EOF && - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - <<<<<<< HEAD:renamed_file - 9 - ======= - 8.5 - >>>>>>> master^0:original_file - EOF - test_cmp expected renamed_file - -Note: switching to 'rename^0'. - -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. - -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: - - git switch -c - -Or undo this operation with: - - git switch - - -Turn off this advice by setting config variable advice.detachedHead to false - -HEAD is now at e9adddb B -Merging: -e9adddb B -virtual master^0 -found 1 common ancestor: -4847e8a A -Auto-merging renamed_file -CONFLICT (content): Merge conflict in renamed_file -Automatic merge failed; fix conflicts and then commit the result. -ok 42 - merge master into rename has correct extended markers - -expecting success of 6402.43 'merge rename into master has correct extended markers': - git reset --hard && - git checkout master^0 && - test_must_fail git merge -s recursive rename^0 && - - cat >expected <<-\EOF && - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - <<<<<<< HEAD:original_file - 8.5 - ======= - 9 - >>>>>>> rename^0:renamed_file - EOF - test_cmp expected renamed_file - -HEAD is now at e9adddb B -Previous HEAD position was e9adddb B -HEAD is now at 0487bb6 C -Merging: -0487bb6 C -virtual rename^0 -found 1 common ancestor: -4847e8a A -Auto-merging renamed_file -CONFLICT (content): Merge conflict in renamed_file -Automatic merge failed; fix conflicts and then commit the result. -ok 43 - merge rename into master has correct extended markers - -expecting success of 6402.44 'setup spurious "refusing to lose untracked" message': - git rm -rf . && - git clean -fdqx && - rm -rf .git && - git init && - - > irrelevant_file && - printf "1\n2\n3\n4\n5\n6\n7\n8\n" >original_file && - git add irrelevant_file original_file && - git commit -mA && - - git checkout -b rename && - git mv original_file renamed_file && - git commit -mB && - - git checkout master && - git rm original_file && - git commit -mC - -rm 'renamed_file' -rm 'renamed_file' -rm 'renamed_file' -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6402-merge-rename/.git/ -[master (root-commit) e476651] A - Author: A U Thor - 2 files changed, 8 insertions(+) - create mode 100644 irrelevant_file - create mode 100644 original_file -Switched to a new branch 'rename' -[rename 951e2d3] B - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - rename original_file => renamed_file (100%) -Switched to branch 'master' -rm 'original_file' -[master 52b2874] C - Author: A U Thor - 1 file changed, 8 deletions(-) - delete mode 100644 original_file -ok 44 - setup spurious "refusing to lose untracked" message - -expecting success of 6402.45 'no spurious "refusing to lose untracked" message': - git checkout master^0 && - test_must_fail git merge rename^0 2>errors.txt && - ! grep "refusing to lose untracked file" errors.txt - -Note: switching to 'master^0'. - -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. - -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: - - git switch -c - -Or undo this operation with: - - git switch - - -Turn off this advice by setting config variable advice.detachedHead to false - -HEAD is now at 52b2874 C -Merging: -52b2874 C -virtual rename^0 -found 1 common ancestor: -e476651 A -CONFLICT (rename/delete): original_file deleted in HEAD and renamed to renamed_file in rename^0. Version rename^0 of renamed_file left in tree. -Automatic merge failed; fix conflicts and then commit the result. -ok 45 - no spurious "refusing to lose untracked" message - -expecting success of 6402.46 'do not follow renames for empty files': - git checkout -f -b empty-base && - >empty1 && - git add empty1 && - git commit -m base && - echo content >empty1 && - git add empty1 && - git commit -m fill && - git checkout -b empty-topic HEAD^ && - git mv empty1 empty2 && - git commit -m rename && - test_must_fail git merge empty-base && - test_must_be_empty empty2 - -Switched to a new branch 'empty-base' -[empty-base a940ee2] base - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - create mode 100644 empty1 -[empty-base d42ce4d] fill - Author: A U Thor - 1 file changed, 1 insertion(+) -Switched to a new branch 'empty-topic' -[empty-topic ab32619] rename - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - rename empty1 => empty2 (100%) -Merging: -ab32619 rename -virtual empty-base -found 1 common ancestor: -a940ee2 base -CONFLICT (modify/delete): empty1 deleted in HEAD and modified in empty-base. Version empty-base of empty1 left in tree. -Automatic merge failed; fix conflicts and then commit the result. -ok 46 - do not follow renames for empty files - -# passed all 46 test(s) -1..46 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' *** t6409-merge-subtree.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6409-merge-subtree/.git/ expecting success of 6409.1 'setup': @@ -309377,234 +307252,2211 @@ checking prerequisite: FILEMODE -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-FILEMODE" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-FILEMODE" && - test "$(git config --bool core.filemode)" = true +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-FILEMODE" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-FILEMODE" && + test "$(git config --bool core.filemode)" = true + +) +prerequisite FILEMODE ok +expecting success of 6411.3 'verify executable bit on file (recursive, a1)': + test -x file1 + +ok 3 - verify executable bit on file (recursive, a1) + +expecting success of 6411.4 'resolve single mode change (recursive, b1)': + git checkout -f $us && + git merge -s $strategy $them && + git ls-files -s file1 | grep ^100755 + +Switched to branch 'b1' +Updating 3dfda39..e9857f3 +Fast-forward + dummy | 0 + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 dummy +100755 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 file1 +ok 4 - resolve single mode change (recursive, b1) + +expecting success of 6411.5 'verify executable bit on file (recursive, b1)': + test -x file1 + +ok 5 - verify executable bit on file (recursive, b1) + +expecting success of 6411.6 'resolve single mode change (resolve, a1)': + git checkout -f $us && + git merge -s $strategy $them && + git ls-files -s file1 | grep ^100755 + +Switched to branch 'a1' +Already up to date. +100755 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 file1 +ok 6 - resolve single mode change (resolve, a1) + +expecting success of 6411.7 'verify executable bit on file (resolve, a1)': + test -x file1 + +ok 7 - verify executable bit on file (resolve, a1) + +expecting success of 6411.8 'resolve single mode change (resolve, b1)': + git checkout -f $us && + git merge -s $strategy $them && + git ls-files -s file1 | grep ^100755 + +Switched to branch 'b1' +Already up to date. +100755 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 file1 +ok 8 - resolve single mode change (resolve, b1) + +expecting success of 6411.9 'verify executable bit on file (resolve, b1)': + test -x file1 + +ok 9 - verify executable bit on file (resolve, b1) + +expecting success of 6411.10 'set up mode change in both branches': + git reset --hard HEAD && + git checkout -b a2 master && + : >file2 && + H=$(git hash-object file2) && + test_chmod +x file2 && + git commit -m a2 && + git checkout -b b2 master && + : >file2 && + git add file2 && + git commit -m b2 && + { + echo "100755 $H 2 file2" + echo "100644 $H 3 file2" + } >expect + +HEAD is now at e9857f3 Merge branch 'b1' into a1 +Switched to a new branch 'a2' +[a2 e027a38] a2 + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100755 file2 +Switched to a new branch 'b2' +[b2 ef0d9fd] b2 + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 file2 +ok 10 - set up mode change in both branches + +expecting success of 6411.11 'detect conflict on double mode change (recursive)': + git reset --hard && + git checkout -f a2 && + test_must_fail git merge -s $strategy b2 && + git ls-files -u >actual && + test_cmp expect actual && + git ls-files -s file2 | grep ^100755 + +HEAD is now at ef0d9fd b2 +Switched to branch 'a2' +Merging: +e027a38 a2 +virtual b2 +found 1 common ancestor: +acd9408 initial +CONFLICT (add/add): Merge conflict in file2 +Auto-merging file2 +Automatic merge failed; fix conflicts and then commit the result. +100755 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 2 file2 +ok 11 - detect conflict on double mode change (recursive) + +expecting success of 6411.12 'verify executable bit on file (recursive)': + test -x file2 + +ok 12 - verify executable bit on file (recursive) + +expecting success of 6411.13 'detect conflict on double mode change (resolve)': + git reset --hard && + git checkout -f a2 && + test_must_fail git merge -s $strategy b2 && + git ls-files -u >actual && + test_cmp expect actual && + git ls-files -s file2 | grep ^100755 + +HEAD is now at e027a38 a2 +Already on 'a2' +error: Merge requires file-level merging +Trying really trivial in-index merge... +Nope. +Trying simple merge. +Simple merge failed, trying Automatic merge. +ERROR: File file2 added identically in both branches, +ERROR: but permissions conflict 100755->100644. +fatal: merge program failed +Automatic merge failed; fix conflicts and then commit the result. +100755 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 2 file2 +ok 13 - detect conflict on double mode change (resolve) + +expecting success of 6411.14 'verify executable bit on file (resolve)': + test -x file2 + +ok 14 - verify executable bit on file (resolve) + +expecting success of 6411.15 'set up delete/modechange scenario': + git reset --hard && + git checkout -b deletion master && + git rm file1 && + git commit -m deletion + +HEAD is now at e027a38 a2 +Switched to a new branch 'deletion' +rm 'file1' +[deletion 676a5f7] deletion + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + delete mode 100644 file1 +ok 15 - set up delete/modechange scenario + +expecting success of 6411.16 'detect delete/modechange conflict (recursive, b1)': + git reset --hard && + git checkout $us && + test_must_fail git merge -s $strategy $them + +HEAD is now at 676a5f7 deletion +Switched to branch 'b1' +Merging: +e9857f3 Merge branch 'b1' into a1 +virtual deletion +found 1 common ancestor: +acd9408 initial +CONFLICT (modify/delete): file1 deleted in deletion and modified in HEAD. Version HEAD of file1 left in tree. +Automatic merge failed; fix conflicts and then commit the result. +ok 16 - detect delete/modechange conflict (recursive, b1) + +expecting success of 6411.17 'detect delete/modechange conflict (recursive, deletion)': + git reset --hard && + git checkout $us && + test_must_fail git merge -s $strategy $them + +HEAD is now at e9857f3 Merge branch 'b1' into a1 +Switched to branch 'deletion' +Merging: +676a5f7 deletion +virtual b1 +found 1 common ancestor: +acd9408 initial +CONFLICT (modify/delete): file1 deleted in HEAD and modified in b1. Version b1 of file1 left in tree. +Automatic merge failed; fix conflicts and then commit the result. +ok 17 - detect delete/modechange conflict (recursive, deletion) + +expecting success of 6411.18 'detect delete/modechange conflict (resolve, b1)': + git reset --hard && + git checkout $us && + test_must_fail git merge -s $strategy $them + +HEAD is now at 676a5f7 deletion +Switched to branch 'b1' +error: Merge requires file-level merging +Trying really trivial in-index merge... +Nope. +Trying simple merge. +Simple merge failed, trying Automatic merge. +ERROR: File file1 deleted on one branch but had its +ERROR: permissions changed on the other. +fatal: merge program failed +Automatic merge failed; fix conflicts and then commit the result. +ok 18 - detect delete/modechange conflict (resolve, b1) + +expecting success of 6411.19 'detect delete/modechange conflict (resolve, deletion)': + git reset --hard && + git checkout $us && + test_must_fail git merge -s $strategy $them + +HEAD is now at e9857f3 Merge branch 'b1' into a1 +Switched to branch 'deletion' +error: Merge requires file-level merging +Trying really trivial in-index merge... +Nope. +Trying simple merge. +Simple merge failed, trying Automatic merge. +ERROR: File file1 deleted on one branch but had its +ERROR: permissions changed on the other. +fatal: merge program failed +Automatic merge failed; fix conflicts and then commit the result. +ok 19 - detect delete/modechange conflict (resolve, deletion) + +# passed all 19 test(s) +1..19 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t6402-merge-rename.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6402-merge-rename/.git/ +expecting success of 6402.1 'setup': + cat >A <<-\EOF && + a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + b bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb + c cccccccccccccccccccccccccccccccccccccccccccccccc + d dddddddddddddddddddddddddddddddddddddddddddddddd + e eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee + f ffffffffffffffffffffffffffffffffffffffffffffffff + g gggggggggggggggggggggggggggggggggggggggggggggggg + h hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh + i iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii + j jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj + k kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk + l llllllllllllllllllllllllllllllllllllllllllllllll + m mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm + n nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn + o oooooooooooooooooooooooooooooooooooooooooooooooo + EOF + + cat >M <<-\EOF && + A AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + B BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB + C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC + D DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD + E EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE + F FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + G GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG + H HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH + I IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII + J JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ + K KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK + L LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL + M MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM + N NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN + O OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO + EOF + + git add A M && + git commit -m "initial has A and M" && + git branch white && + git branch red && + git branch blue && + git branch yellow && + git branch change && + git branch change+rename && + + sed -e "/^g /s/.*/g : master changes a line/" A+ && + mv A+ A && + git commit -a -m "master updates A" && + + git checkout yellow && + rm -f M && + git commit -a -m "yellow removes M" && + + git checkout white && + sed -e "/^g /s/.*/g : white changes a line/" B && + sed -e "/^G /s/.*/G : colored branch changes a line/" N && + rm -f A M && + git update-index --add --remove A B M N && + git commit -m "white renames A->B, M->N" && + + git checkout red && + sed -e "/^g /s/.*/g : red changes a line/" B && + sed -e "/^G /s/.*/G : colored branch changes a line/" N && + rm -f A M && + git update-index --add --remove A B M N && + git commit -m "red renames A->B, M->N" && + + git checkout blue && + sed -e "/^g /s/.*/g : blue changes a line/" C && + sed -e "/^G /s/.*/G : colored branch changes a line/" N && + rm -f A M && + git update-index --add --remove A C M N && + git commit -m "blue renames A->C, M->N" && + + git checkout change && + sed -e "/^g /s/.*/g : changed line/" A+ && + mv A+ A && + git commit -q -a -m "changed" && + + git checkout change+rename && + sed -e "/^g /s/.*/g : changed line/" B && + rm A && + git update-index --add B && + git commit -q -a -m "changed and renamed" && + + git checkout master + +[master (root-commit) 7bbb60a] initial has A and M + Author: A U Thor + 2 files changed, 30 insertions(+) + create mode 100644 A + create mode 100644 M +[master 004aae0] master updates A + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +Switched to branch 'yellow' +[yellow 1f86866] yellow removes M + Author: A U Thor + 1 file changed, 15 deletions(-) + delete mode 100644 M +Switched to branch 'white' +[white 72f28f0] white renames A->B, M->N + Author: A U Thor + 2 files changed, 2 insertions(+), 2 deletions(-) + rename A => B (93%) + rename M => N (93%) +Switched to branch 'red' +[red 9020b53] red renames A->B, M->N + Author: A U Thor + 2 files changed, 2 insertions(+), 2 deletions(-) + rename A => B (93%) + rename M => N (93%) +Switched to branch 'blue' +[blue b706750] blue renames A->C, M->N + Author: A U Thor + 2 files changed, 2 insertions(+), 2 deletions(-) + rename A => C (93%) + rename M => N (93%) +Switched to branch 'change' +Switched to branch 'change+rename' +Switched to branch 'master' +ok 1 - setup + +expecting success of 6402.2 'pull renaming branch into unrenaming one': + git show-branch && + test_expect_code 1 git pull . white && + git ls-files -s && + git ls-files -u B >b.stages && + test_line_count = 3 b.stages && + git ls-files -s N >n.stages && + test_line_count = 1 n.stages && + sed -ne "/^g/{ + p + q + }" B | grep master && + git diff --exit-code white N + +! [blue] blue renames A->C, M->N + ! [change] changed + ! [change+rename] changed and renamed + * [master] master updates A + ! [red] red renames A->B, M->N + ! [white] white renames A->B, M->N + ! [yellow] yellow removes M +------- + + [yellow] yellow removes M + + [white] white renames A->B, M->N + + [red] red renames A->B, M->N + * [master] master updates A + + [change+rename] changed and renamed + + [change] changed ++ [blue] blue renames A->C, M->N ++++*+++ [yellow^] initial has A and M +hint: Pulling without specifying how to reconcile divergent branches is +hint: discouraged. You can squelch this message by running one of the following +hint: commands sometime before your next pull: +hint: +hint: git config pull.rebase false # merge (the default strategy) +hint: git config pull.rebase true # rebase +hint: git config pull.ff only # fast-forward only +hint: +hint: You can replace "git config" with "git config --global" to set a default +hint: preference for all repositories. You can also pass --rebase, --no-rebase, +hint: or --ff-only on the command line to override the configured default per +hint: invocation. +From . + * branch white -> FETCH_HEAD +Merging: +004aae0 master updates A +virtual 72f28f0720105464cdfa32b83c0499c257004216 +found 1 common ancestor: +7bbb60a initial has A and M +Auto-merging B +CONFLICT (content): Merge conflict in B +Automatic merge failed; fix conflicts and then commit the result. +100644 aed72d761b68c20ffce8249a5a0426494098d376 1 B +100644 c68856fe0bfce4eb453d8e12329c47ab60c8107b 2 B +100644 2d603156dc5bdf6295c789cac08e3c9942a0b82a 3 B +100644 ba41fb96393979b22691106b06bf5231eab57b85 0 N +g : master changes a line +ok 2 - pull renaming branch into unrenaming one + +expecting success of 6402.3 'pull renaming branch into another renaming one': + rm -f B && + git reset --hard && + git checkout red && + test_expect_code 1 git pull . white && + git ls-files -u B >b.stages && + test_line_count = 3 b.stages && + git ls-files -s N >n.stages && + test_line_count = 1 n.stages && + sed -ne "/^g/{ + p + q + }" B | grep red && + git diff --exit-code white N + +HEAD is now at 004aae0 master updates A +Switched to branch 'red' +hint: Pulling without specifying how to reconcile divergent branches is +hint: discouraged. You can squelch this message by running one of the following +hint: commands sometime before your next pull: +hint: +hint: git config pull.rebase false # merge (the default strategy) +hint: git config pull.rebase true # rebase +hint: git config pull.ff only # fast-forward only +hint: +hint: You can replace "git config" with "git config --global" to set a default +hint: preference for all repositories. You can also pass --rebase, --no-rebase, +hint: or --ff-only on the command line to override the configured default per +hint: invocation. +From . + * branch white -> FETCH_HEAD +Merging: +9020b53 red renames A->B, M->N +virtual 72f28f0720105464cdfa32b83c0499c257004216 +found 1 common ancestor: +7bbb60a initial has A and M +Auto-merging N +Skipped N (merged same as existing) +Auto-merging B +CONFLICT (content): Merge conflict in B +Automatic merge failed; fix conflicts and then commit the result. +g : red changes a line +ok 3 - pull renaming branch into another renaming one + +expecting success of 6402.4 'pull unrenaming branch into renaming one': + git reset --hard && + git show-branch && + test_expect_code 1 git pull . master && + git ls-files -u B >b.stages && + test_line_count = 3 b.stages && + git ls-files -s N >n.stages && + test_line_count = 1 n.stages && + sed -ne "/^g/{ + p + q + }" B | grep red && + git diff --exit-code white N + +HEAD is now at 9020b53 red renames A->B, M->N +! [blue] blue renames A->C, M->N + ! [change] changed + ! [change+rename] changed and renamed + ! [master] master updates A + * [red] red renames A->B, M->N + ! [white] white renames A->B, M->N + ! [yellow] yellow removes M +------- + + [yellow] yellow removes M + + [white] white renames A->B, M->N + * [red] red renames A->B, M->N + + [master] master updates A + + [change+rename] changed and renamed + + [change] changed ++ [blue] blue renames A->C, M->N +++++*++ [yellow^] initial has A and M +hint: Pulling without specifying how to reconcile divergent branches is +hint: discouraged. You can squelch this message by running one of the following +hint: commands sometime before your next pull: +hint: +hint: git config pull.rebase false # merge (the default strategy) +hint: git config pull.rebase true # rebase +hint: git config pull.ff only # fast-forward only +hint: +hint: You can replace "git config" with "git config --global" to set a default +hint: preference for all repositories. You can also pass --rebase, --no-rebase, +hint: or --ff-only on the command line to override the configured default per +hint: invocation. +From . + * branch master -> FETCH_HEAD +Merging: +9020b53 red renames A->B, M->N +virtual 004aae0ee2bb921ebebdc021cf0cd585efa1181f +found 1 common ancestor: +7bbb60a initial has A and M +Skipped N (merged same as existing) +Auto-merging B +CONFLICT (content): Merge conflict in B +Automatic merge failed; fix conflicts and then commit the result. +g : red changes a line +ok 4 - pull unrenaming branch into renaming one + +expecting success of 6402.5 'pull conflicting renames': + git reset --hard && + git show-branch && + test_expect_code 1 git pull . blue && + git ls-files -u A >a.stages && + test_line_count = 1 a.stages && + git ls-files -u B >b.stages && + test_line_count = 1 b.stages && + git ls-files -u C >c.stages && + test_line_count = 1 c.stages && + git ls-files -s N >n.stages && + test_line_count = 1 n.stages && + sed -ne "/^g/{ + p + q + }" B | grep red && + git diff --exit-code white N + +HEAD is now at 9020b53 red renames A->B, M->N +! [blue] blue renames A->C, M->N + ! [change] changed + ! [change+rename] changed and renamed + ! [master] master updates A + * [red] red renames A->B, M->N + ! [white] white renames A->B, M->N + ! [yellow] yellow removes M +------- + + [yellow] yellow removes M + + [white] white renames A->B, M->N + * [red] red renames A->B, M->N + + [master] master updates A + + [change+rename] changed and renamed + + [change] changed ++ [blue] blue renames A->C, M->N +++++*++ [yellow^] initial has A and M +hint: Pulling without specifying how to reconcile divergent branches is +hint: discouraged. You can squelch this message by running one of the following +hint: commands sometime before your next pull: +hint: +hint: git config pull.rebase false # merge (the default strategy) +hint: git config pull.rebase true # rebase +hint: git config pull.ff only # fast-forward only +hint: +hint: You can replace "git config" with "git config --global" to set a default +hint: preference for all repositories. You can also pass --rebase, --no-rebase, +hint: or --ff-only on the command line to override the configured default per +hint: invocation. +From . + * branch blue -> FETCH_HEAD +Merging: +9020b53 red renames A->B, M->N +virtual b706750f611415f609730a3078d3ca7a6942b4f1 +found 1 common ancestor: +7bbb60a initial has A and M +Auto-merging N +Skipped N (merged same as existing) +CONFLICT (rename/rename): Rename "A"->"B" in branch "HEAD" rename "A"->"C" in "b706750f611415f609730a3078d3ca7a6942b4f1" +Auto-merging B and C, both renamed from A +Automatic merge failed; fix conflicts and then commit the result. +g : red changes a line +ok 5 - pull conflicting renames + +expecting success of 6402.6 'interference with untracked working tree file': + git reset --hard && + git show-branch && + echo >A this file should not matter && + test_expect_code 1 git pull . white && + test_path_is_file A + +HEAD is now at 9020b53 red renames A->B, M->N +! [blue] blue renames A->C, M->N + ! [change] changed + ! [change+rename] changed and renamed + ! [master] master updates A + * [red] red renames A->B, M->N + ! [white] white renames A->B, M->N + ! [yellow] yellow removes M +------- + + [yellow] yellow removes M + + [white] white renames A->B, M->N + * [red] red renames A->B, M->N + + [master] master updates A + + [change+rename] changed and renamed + + [change] changed ++ [blue] blue renames A->C, M->N +++++*++ [yellow^] initial has A and M +hint: Pulling without specifying how to reconcile divergent branches is +hint: discouraged. You can squelch this message by running one of the following +hint: commands sometime before your next pull: +hint: +hint: git config pull.rebase false # merge (the default strategy) +hint: git config pull.rebase true # rebase +hint: git config pull.ff only # fast-forward only +hint: +hint: You can replace "git config" with "git config --global" to set a default +hint: preference for all repositories. You can also pass --rebase, --no-rebase, +hint: or --ff-only on the command line to override the configured default per +hint: invocation. +From . + * branch white -> FETCH_HEAD +Merging: +9020b53 red renames A->B, M->N +virtual 72f28f0720105464cdfa32b83c0499c257004216 +found 1 common ancestor: +7bbb60a initial has A and M +Auto-merging N +Skipped N (merged same as existing) +Auto-merging B +CONFLICT (content): Merge conflict in B +Automatic merge failed; fix conflicts and then commit the result. +ok 6 - interference with untracked working tree file + +expecting success of 6402.7 'interference with untracked working tree file': + git reset --hard && + git checkout white && + git show-branch && + rm -f A && + echo >A this file should not matter && + test_expect_code 1 git pull . red && + test_path_is_file A + +HEAD is now at 9020b53 red renames A->B, M->N +Switched to branch 'white' +! [blue] blue renames A->C, M->N + ! [change] changed + ! [change+rename] changed and renamed + ! [master] master updates A + ! [red] red renames A->B, M->N + * [white] white renames A->B, M->N + ! [yellow] yellow removes M +------- + + [yellow] yellow removes M + * [white] white renames A->B, M->N + + [red] red renames A->B, M->N + + [master] master updates A + + [change+rename] changed and renamed + + [change] changed ++ [blue] blue renames A->C, M->N ++++++*+ [yellow^] initial has A and M +hint: Pulling without specifying how to reconcile divergent branches is +hint: discouraged. You can squelch this message by running one of the following +hint: commands sometime before your next pull: +hint: +hint: git config pull.rebase false # merge (the default strategy) +hint: git config pull.rebase true # rebase +hint: git config pull.ff only # fast-forward only +hint: +hint: You can replace "git config" with "git config --global" to set a default +hint: preference for all repositories. You can also pass --rebase, --no-rebase, +hint: or --ff-only on the command line to override the configured default per +hint: invocation. +From . + * branch red -> FETCH_HEAD +Merging: +72f28f0 white renames A->B, M->N +virtual 9020b53a59349e083b2775e5cb76e998fd8af12a +found 1 common ancestor: +7bbb60a initial has A and M +Auto-merging N +Skipped N (merged same as existing) +Auto-merging B +CONFLICT (content): Merge conflict in B +Automatic merge failed; fix conflicts and then commit the result. +ok 7 - interference with untracked working tree file + +expecting success of 6402.8 'interference with untracked working tree file': + git reset --hard && + rm -f A M && + git checkout -f master && + git tag -f anchor && + git show-branch && + git pull . yellow && + test_path_is_missing M && + git reset --hard anchor + +HEAD is now at 72f28f0 white renames A->B, M->N +Switched to branch 'master' +! [blue] blue renames A->C, M->N + ! [change] changed + ! [change+rename] changed and renamed + * [master] master updates A + ! [red] red renames A->B, M->N + ! [white] white renames A->B, M->N + ! [yellow] yellow removes M +------- + + [yellow] yellow removes M + + [white] white renames A->B, M->N + + [red] red renames A->B, M->N + * [master] master updates A + + [change+rename] changed and renamed + + [change] changed ++ [blue] blue renames A->C, M->N ++++*+++ [yellow^] initial has A and M +hint: Pulling without specifying how to reconcile divergent branches is +hint: discouraged. You can squelch this message by running one of the following +hint: commands sometime before your next pull: +hint: +hint: git config pull.rebase false # merge (the default strategy) +hint: git config pull.rebase true # rebase +hint: git config pull.ff only # fast-forward only +hint: +hint: You can replace "git config" with "git config --global" to set a default +hint: preference for all repositories. You can also pass --rebase, --no-rebase, +hint: or --ff-only on the command line to override the configured default per +hint: invocation. +From . + * branch yellow -> FETCH_HEAD +Merging: +004aae0 master updates A +virtual 1f86866bbc72ea6c6fc20e4266194d536113c6b5 +found 1 common ancestor: +7bbb60a initial has A and M +Removing M +Merge made by the 'recursive' strategy. + M | 15 --------------- + 1 file changed, 15 deletions(-) + delete mode 100644 M +HEAD is now at 004aae0 master updates A +ok 8 - interference with untracked working tree file + +expecting success of 6402.9 'updated working tree file should prevent the merge': + git reset --hard && + rm -f A M && + git checkout -f master && + git tag -f anchor && + git show-branch && + echo >>M one line addition && + cat M >M.saved && + test_expect_code 128 git pull . yellow && + test_cmp M M.saved && + rm -f M.saved + +HEAD is now at 004aae0 master updates A +Already on 'master' +! [blue] blue renames A->C, M->N + ! [change] changed + ! [change+rename] changed and renamed + * [master] master updates A + ! [red] red renames A->B, M->N + ! [white] white renames A->B, M->N + ! [yellow] yellow removes M +------- + + [yellow] yellow removes M + + [white] white renames A->B, M->N + + [red] red renames A->B, M->N + * [master] master updates A + + [change+rename] changed and renamed + + [change] changed ++ [blue] blue renames A->C, M->N ++++*+++ [yellow^] initial has A and M +hint: Pulling without specifying how to reconcile divergent branches is +hint: discouraged. You can squelch this message by running one of the following +hint: commands sometime before your next pull: +hint: +hint: git config pull.rebase false # merge (the default strategy) +hint: git config pull.rebase true # rebase +hint: git config pull.ff only # fast-forward only +hint: +hint: You can replace "git config" with "git config --global" to set a default +hint: preference for all repositories. You can also pass --rebase, --no-rebase, +hint: or --ff-only on the command line to override the configured default per +hint: invocation. +From . + * branch yellow -> FETCH_HEAD +error: Your local changes to the following files would be overwritten by merge: + M +Please commit your changes or stash them before you merge. +Aborting +error: merging of trees 327b18fcbf562119811a97f5b8ed9c8ef85d5c3d and 878bb4a74cc6b899e74bcd3b56352573baeb967d failed +Merging: +004aae0 master updates A +virtual 1f86866bbc72ea6c6fc20e4266194d536113c6b5 +found 1 common ancestor: +7bbb60a initial has A and M +ok 9 - updated working tree file should prevent the merge + +expecting success of 6402.10 'updated working tree file should prevent the merge': + git reset --hard && + rm -f A M && + git checkout -f master && + git tag -f anchor && + git show-branch && + echo >>M one line addition && + cat M >M.saved && + git update-index M && + test_expect_code 128 git pull . yellow && + test_cmp M M.saved && + rm -f M.saved + +HEAD is now at 004aae0 master updates A +Already on 'master' +! [blue] blue renames A->C, M->N + ! [change] changed + ! [change+rename] changed and renamed + * [master] master updates A + ! [red] red renames A->B, M->N + ! [white] white renames A->B, M->N + ! [yellow] yellow removes M +------- + + [yellow] yellow removes M + + [white] white renames A->B, M->N + + [red] red renames A->B, M->N + * [master] master updates A + + [change+rename] changed and renamed + + [change] changed ++ [blue] blue renames A->C, M->N ++++*+++ [yellow^] initial has A and M +hint: Pulling without specifying how to reconcile divergent branches is +hint: discouraged. You can squelch this message by running one of the following +hint: commands sometime before your next pull: +hint: +hint: git config pull.rebase false # merge (the default strategy) +hint: git config pull.rebase true # rebase +hint: git config pull.ff only # fast-forward only +hint: +hint: You can replace "git config" with "git config --global" to set a default +hint: preference for all repositories. You can also pass --rebase, --no-rebase, +hint: or --ff-only on the command line to override the configured default per +hint: invocation. +From . + * branch yellow -> FETCH_HEAD +error: Your local changes to the following files would be overwritten by merge: + M +ok 10 - updated working tree file should prevent the merge + +expecting success of 6402.11 'interference with untracked working tree file': + git reset --hard && + rm -f A M && + git checkout -f yellow && + git tag -f anchor && + git show-branch && + echo >M this file should not matter && + git pull . master && + test_path_is_file M && + ! { + git ls-files -s | + grep M + } && + git reset --hard anchor + +HEAD is now at 004aae0 master updates A +Switched to branch 'yellow' +Updated tag 'anchor' (was 004aae0) +! [blue] blue renames A->C, M->N + ! [change] changed + ! [change+rename] changed and renamed + ! [master] master updates A + ! [red] red renames A->B, M->N + ! [white] white renames A->B, M->N + * [yellow] yellow removes M +------- + * [yellow] yellow removes M + + [white] white renames A->B, M->N + + [red] red renames A->B, M->N + + [master] master updates A + + [change+rename] changed and renamed + + [change] changed ++ [blue] blue renames A->C, M->N +++++++* [yellow^] initial has A and M +hint: Pulling without specifying how to reconcile divergent branches is +hint: discouraged. You can squelch this message by running one of the following +hint: commands sometime before your next pull: +hint: +hint: git config pull.rebase false # merge (the default strategy) +hint: git config pull.rebase true # rebase +hint: git config pull.ff only # fast-forward only +hint: +hint: You can replace "git config" with "git config --global" to set a default +hint: preference for all repositories. You can also pass --rebase, --no-rebase, +hint: or --ff-only on the command line to override the configured default per +hint: invocation. +From . + * branch master -> FETCH_HEAD +Merging: +1f86866 yellow removes M +virtual 004aae0ee2bb921ebebdc021cf0cd585efa1181f +found 1 common ancestor: +7bbb60a initial has A and M +Merge made by the 'recursive' strategy. + A | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) +HEAD is now at 1f86866 yellow removes M +ok 11 - interference with untracked working tree file + +expecting success of 6402.12 'merge of identical changes in a renamed file': + rm -f A M N && + git reset --hard && + git checkout change+rename && + + test-tool chmtime --get -3600 B >old-mtime && + GIT_MERGE_VERBOSITY=3 git merge change >out && + + test-tool chmtime --get B >new-mtime && + test_cmp old-mtime new-mtime && + + git reset --hard HEAD^ && + git checkout change && + + # A will be renamed to B; we check mtimes and file presence + test_path_is_missing B && + test-tool chmtime --get -3600 A >old-mtime && + GIT_MERGE_VERBOSITY=3 git merge change+rename >out && + + test_path_is_missing A && + test-tool chmtime --get B >new-mtime && + test $(cat old-mtime) -lt $(cat new-mtime) + +HEAD is now at 1f86866 yellow removes M +Switched to branch 'change+rename' +HEAD is now at df47076 changed and renamed +Switched to branch 'change' +ok 12 - merge of identical changes in a renamed file + +expecting success of 6402.13 'setup for rename + d/f conflicts': + git reset --hard && + git checkout --orphan dir-in-way && + git rm -rf . && + git clean -fdqx && + + mkdir sub && + mkdir dir && + printf "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n" >sub/file && + echo foo >dir/file-in-the-way && + git add -A && + git commit -m "Common commit" && + + echo 11 >>sub/file && + echo more >>dir/file-in-the-way && + git add -u && + git commit -m "Commit to merge, with dir in the way" && + + git checkout -b dir-not-in-way && + git reset --soft HEAD^ && + git rm -rf dir && + git commit -m "Commit to merge, with dir removed" -- dir sub/file && + + git checkout -b renamed-file-has-no-conflicts dir-in-way~1 && + git rm -rf dir && + git rm sub/file && + printf "1\n2\n3\n4\n5555\n6\n7\n8\n9\n10\n" >dir && + git add dir && + git commit -m "Independent change" && + + git checkout -b renamed-file-has-conflicts dir-in-way~1 && + git rm -rf dir && + git mv sub/file dir && + echo 12 >>dir && + git add dir && + git commit -m "Conflicting change" + +HEAD is now at 5fdefee Merge branch 'change+rename' into change +Switched to a new branch 'dir-in-way' +rm 'B' +rm 'M' +[dir-in-way (root-commit) 90faa3c] Common commit + Author: A U Thor + 2 files changed, 11 insertions(+) + create mode 100644 dir/file-in-the-way + create mode 100644 sub/file +[dir-in-way cd90736] Commit to merge, with dir in the way + Author: A U Thor + 2 files changed, 2 insertions(+) +Switched to a new branch 'dir-not-in-way' +rm 'dir/file-in-the-way' +[dir-not-in-way a8845d3] Commit to merge, with dir removed + Author: A U Thor + 2 files changed, 1 insertion(+), 1 deletion(-) + delete mode 100644 dir/file-in-the-way +Switched to a new branch 'renamed-file-has-no-conflicts' +rm 'dir/file-in-the-way' +rm 'sub/file' +[renamed-file-has-no-conflicts 8c7fff4] Independent change + Author: A U Thor + 2 files changed, 1 insertion(+), 2 deletions(-) + rename sub/file => dir (79%) + delete mode 100644 dir/file-in-the-way +Switched to a new branch 'renamed-file-has-conflicts' +rm 'dir/file-in-the-way' +[renamed-file-has-conflicts 53f2d73] Conflicting change + Author: A U Thor + 2 files changed, 1 insertion(+), 1 deletion(-) + rename sub/file => dir (87%) + delete mode 100644 dir/file-in-the-way +ok 13 - setup for rename + d/f conflicts + +expecting success of 6402.14 'Rename+D/F conflict; renamed file merges + dir not in way': + git reset --hard && + git checkout -q renamed-file-has-no-conflicts^0 && + + git merge --strategy=recursive dir-not-in-way && + + git diff --quiet && + test_path_is_file dir && + test_write_lines 1 2 3 4 5555 6 7 8 9 10 11 >expected && + test_cmp expected dir + +HEAD is now at 53f2d73 Conflicting change +Merging: +8c7fff4 Independent change +virtual dir-not-in-way +found 1 common ancestor: +90faa3c Common commit +Auto-merging dir +Merge made by the 'recursive' strategy. + dir | 1 + + 1 file changed, 1 insertion(+) +ok 14 - Rename+D/F conflict; renamed file merges + dir not in way + +expecting success of 6402.15 'Rename+D/F conflict; renamed file merges but dir in way': + git reset --hard && + rm -rf dir~* && + git checkout -q renamed-file-has-no-conflicts^0 && + test_must_fail git merge --strategy=recursive dir-in-way >output && + + test_i18ngrep "CONFLICT (modify/delete): dir/file-in-the-way" output && + test_i18ngrep "Auto-merging dir" output && + if test "$GIT_TEST_MERGE_ALGORITHM" = ort + then + test_i18ngrep "moving it to dir~HEAD instead" output + else + test_i18ngrep "Adding as dir~HEAD instead" output + fi && + + test 3 -eq "$(git ls-files -u | wc -l)" && + test 2 -eq "$(git ls-files -u dir/file-in-the-way | wc -l)" && + + test_must_fail git diff --quiet && + test_must_fail git diff --cached --quiet && + + test_path_is_file dir/file-in-the-way && + test_path_is_file dir~HEAD && + test_cmp expected dir~HEAD + +HEAD is now at 7b1d99c Merge branch 'dir-not-in-way' into HEAD +checking prerequisite: C_LOCALE_OUTPUT + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false + +) +prerequisite C_LOCALE_OUTPUT ok +CONFLICT (modify/delete): dir/file-in-the-way deleted in HEAD and modified in dir-in-way. Version dir-in-way of dir/file-in-the-way left in tree. +Auto-merging dir +Adding as dir~HEAD instead +ok 15 - Rename+D/F conflict; renamed file merges but dir in way + +expecting success of 6402.16 'Same as previous, but merged other way': + git reset --hard && + rm -rf dir~* && + git checkout -q dir-in-way^0 && + test_must_fail git merge --strategy=recursive renamed-file-has-no-conflicts >output 2>errors && + + ! grep "error: refusing to lose untracked file at" errors && + test_i18ngrep "CONFLICT (modify/delete): dir/file-in-the-way" output && + test_i18ngrep "Auto-merging dir" output && + if test "$GIT_TEST_MERGE_ALGORITHM" = ort + then + test_i18ngrep "moving it to dir~renamed-file-has-no-conflicts instead" output + else + test_i18ngrep "Adding as dir~renamed-file-has-no-conflicts instead" output + fi && + + test 3 -eq "$(git ls-files -u | wc -l)" && + test 2 -eq "$(git ls-files -u dir/file-in-the-way | wc -l)" && + + test_must_fail git diff --quiet && + test_must_fail git diff --cached --quiet && + + test_path_is_file dir/file-in-the-way && + test_path_is_file dir~renamed-file-has-no-conflicts && + test_cmp expected dir~renamed-file-has-no-conflicts + +HEAD is now at 8c7fff4 Independent change +CONFLICT (modify/delete): dir/file-in-the-way deleted in renamed-file-has-no-conflicts and modified in HEAD. Version HEAD of dir/file-in-the-way left in tree. +Auto-merging dir +Adding as dir~renamed-file-has-no-conflicts instead +ok 16 - Same as previous, but merged other way + +expecting success of 6402.17 'Rename+D/F conflict; renamed file cannot merge, dir not in way': + git reset --hard && + rm -rf dir~* && + git checkout -q renamed-file-has-conflicts^0 && + test_must_fail git merge --strategy=recursive dir-not-in-way && + + test 3 -eq "$(git ls-files -u | wc -l)" && + test 3 -eq "$(git ls-files -u dir | wc -l)" && + + test_must_fail git diff --quiet && + test_must_fail git diff --cached --quiet && + + test_path_is_file dir && + cat >expected <<-\EOF && + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + <<<<<<< HEAD:dir + 12 + ======= + 11 + >>>>>>> dir-not-in-way:sub/file + EOF + test_cmp expected dir + +warning: unable to unlink 'dir': Is a directory +HEAD is now at cd90736 Commit to merge, with dir in the way +Merging: +53f2d73 Conflicting change +virtual dir-not-in-way +found 1 common ancestor: +90faa3c Common commit +Auto-merging dir +CONFLICT (content): Merge conflict in dir +Automatic merge failed; fix conflicts and then commit the result. +ok 17 - Rename+D/F conflict; renamed file cannot merge, dir not in way + +expecting success of 6402.18 'Rename+D/F conflict; renamed file cannot merge and dir in the way': + modify s/dir-not-in-way/dir-in-way/ expected && + + git reset --hard && + rm -rf dir~* && + git checkout -q renamed-file-has-conflicts^0 && + test_must_fail git merge --strategy=recursive dir-in-way && + + test 5 -eq "$(git ls-files -u | wc -l)" && + if test "$GIT_TEST_MERGE_ALGORITHM" = ort + then + test 3 -eq "$(git ls-files -u dir~HEAD | wc -l)" + else + test 3 -eq "$(git ls-files -u dir | grep -v file-in-the-way | wc -l)" + fi && + test 2 -eq "$(git ls-files -u dir/file-in-the-way | wc -l)" && + + test_must_fail git diff --quiet && + test_must_fail git diff --cached --quiet && + + test_path_is_file dir/file-in-the-way && + test_path_is_file dir~HEAD && + test_cmp expected dir~HEAD + +HEAD is now at 53f2d73 Conflicting change +Merging: +53f2d73 Conflicting change +virtual dir-in-way +found 1 common ancestor: +90faa3c Common commit +CONFLICT (modify/delete): dir/file-in-the-way deleted in HEAD and modified in dir-in-way. Version dir-in-way of dir/file-in-the-way left in tree. +Removing dir to make room for subdirectory + +Auto-merging dir +CONFLICT (content): Merge conflict in dir +Refusing to lose dirty file at dir +Adding as dir~HEAD instead +Automatic merge failed; fix conflicts and then commit the result. +ok 18 - Rename+D/F conflict; renamed file cannot merge and dir in the way + +expecting success of 6402.19 'Same as previous, but merged other way': + git reset --hard && + rm -rf dir~* && + git checkout -q dir-in-way^0 && + test_must_fail git merge --strategy=recursive renamed-file-has-conflicts && + + test 5 -eq "$(git ls-files -u | wc -l)" && + if test "$GIT_TEST_MERGE_ALGORITHM" = ort + then + test 3 -eq "$(git ls-files -u dir~renamed-file-has-conflicts | wc -l)" + else + test 3 -eq "$(git ls-files -u dir | grep -v file-in-the-way | wc -l)" + fi && + test 2 -eq "$(git ls-files -u dir/file-in-the-way | wc -l)" && + + test_must_fail git diff --quiet && + test_must_fail git diff --cached --quiet && + + test_path_is_file dir/file-in-the-way && + test_path_is_file dir~renamed-file-has-conflicts && + cat >expected <<-\EOF && + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + <<<<<<< HEAD:sub/file + 11 + ======= + 12 + >>>>>>> renamed-file-has-conflicts:dir + EOF + test_cmp expected dir~renamed-file-has-conflicts + +HEAD is now at 53f2d73 Conflicting change +Merging: +cd90736 Commit to merge, with dir in the way +virtual renamed-file-has-conflicts +found 1 common ancestor: +90faa3c Common commit +CONFLICT (modify/delete): dir/file-in-the-way deleted in renamed-file-has-conflicts and modified in HEAD. Version HEAD of dir/file-in-the-way left in tree. +Auto-merging dir +CONFLICT (content): Merge conflict in dir +Adding as dir~renamed-file-has-conflicts instead +Automatic merge failed; fix conflicts and then commit the result. +ok 19 - Same as previous, but merged other way + +expecting success of 6402.20 'setup both rename source and destination involved in D/F conflict': + git reset --hard && + git checkout --orphan rename-dest && + git rm -rf . && + git clean -fdqx && + + mkdir one && + echo stuff >one/file && + git add -A && + git commit -m "Common commit" && + + git mv one/file destdir && + git commit -m "Renamed to destdir" && + + git checkout -b source-conflict HEAD~1 && + git rm -rf one && + mkdir destdir && + touch one destdir/foo && + git add -A && + git commit -m "Conflicts in the way" + +warning: unable to unlink 'dir': Is a directory +HEAD is now at cd90736 Commit to merge, with dir in the way +Switched to a new branch 'rename-dest' +rm 'dir/file-in-the-way' +rm 'sub/file' +[rename-dest (root-commit) 3156d6d] Common commit + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 one/file +[rename-dest 4fde1d0] Renamed to destdir + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + rename one/file => destdir (100%) +Switched to a new branch 'source-conflict' +rm 'one/file' +[source-conflict 58f64f9] Conflicts in the way + Author: A U Thor + 3 files changed, 1 deletion(-) + create mode 100644 destdir/foo + create mode 100644 one + delete mode 100644 one/file +ok 20 - setup both rename source and destination involved in D/F conflict + +expecting success of 6402.21 'both rename source and destination involved in D/F conflict': + git reset --hard && + rm -rf dir~* && + git checkout -q rename-dest^0 && + test_must_fail git merge --strategy=recursive source-conflict && + + if test "$GIT_TEST_MERGE_ALGORITHM" = ort + then + test 2 -eq "$(git ls-files -u | wc -l)" + else + test 1 -eq "$(git ls-files -u | wc -l)" + fi && + + test_must_fail git diff --quiet && + + test_path_is_file destdir/foo && + test_path_is_file one && + test_path_is_file destdir~HEAD && + test "stuff" = "$(cat destdir~HEAD)" + +HEAD is now at 58f64f9 Conflicts in the way +Merging: +4fde1d0 Renamed to destdir +virtual source-conflict +found 1 common ancestor: +3156d6d Common commit +Adding one +Adding destdir/foo +Removing destdir to make room for subdirectory + +CONFLICT (rename/delete): one/file deleted in source-conflict and renamed to destdir in HEAD. Version HEAD of destdir left in tree at destdir~HEAD. +Automatic merge failed; fix conflicts and then commit the result. +ok 21 - both rename source and destination involved in D/F conflict + +expecting success of 6402.22 'setup pair rename to parent of other (D/F conflicts)': + git reset --hard && + git checkout --orphan rename-two && + git rm -rf . && + git clean -fdqx && + + mkdir one && + mkdir two && + echo stuff >one/file && + echo other >two/file && + git add -A && + git commit -m "Common commit" && + + git rm -rf one && + git mv two/file one && + git commit -m "Rename two/file -> one" && + + git checkout -b rename-one HEAD~1 && + git rm -rf two && + git mv one/file two && + rm -r one && + git commit -m "Rename one/file -> two" + +HEAD is now at 4fde1d0 Renamed to destdir +Switched to a new branch 'rename-two' +rm 'destdir' +[rename-two (root-commit) 0765ccc] Common commit + Author: A U Thor + 2 files changed, 2 insertions(+) + create mode 100644 one/file + create mode 100644 two/file +rm 'one/file' +[rename-two c518e9e] Rename two/file -> one + Author: A U Thor + 2 files changed, 1 deletion(-) + rename two/file => one (100%) + delete mode 100644 one/file +Switched to a new branch 'rename-one' +rm 'two/file' +[rename-one a4e3198] Rename one/file -> two + Author: A U Thor + 2 files changed, 1 deletion(-) + rename one/file => two (100%) + delete mode 100644 two/file +ok 22 - setup pair rename to parent of other (D/F conflicts) + +expecting success of 6402.23 'pair rename to parent of other (D/F conflicts) w/ untracked dir': + git checkout -q rename-one^0 && + mkdir one && + test_must_fail git merge --strategy=recursive rename-two && + + test 2 -eq "$(git ls-files -u | wc -l)" && + test 1 -eq "$(git ls-files -u one | wc -l)" && + test 1 -eq "$(git ls-files -u two | wc -l)" && + + test_must_fail git diff --quiet && + + test 4 -eq $(find . | grep -v .git | wc -l) && + + test_path_is_dir one && + test_path_is_file one~rename-two && + test_path_is_file two && + test "other" = $(cat one~rename-two) && + test "stuff" = $(cat two) + +Merging: +a4e3198 Rename one/file -> two +virtual rename-two +found 1 common ancestor: +0765ccc Common commit +CONFLICT (rename/delete): one/file deleted in rename-two and renamed to two in HEAD. Version HEAD of two left in tree. +CONFLICT (rename/delete): two/file deleted in HEAD and renamed to one in rename-two. Version rename-two of one left in tree at one~rename-two. +Automatic merge failed; fix conflicts and then commit the result. +ok 23 - pair rename to parent of other (D/F conflicts) w/ untracked dir + +expecting success of 6402.24 'pair rename to parent of other (D/F conflicts) w/ clean start': + git reset --hard && + git clean -fdqx && + test_must_fail git merge --strategy=recursive rename-two && + + if test "$GIT_TEST_MERGE_ALGORITHM" = ort + then + test 4 -eq "$(git ls-files -u | wc -l)" && + test 2 -eq "$(git ls-files -u one | wc -l)" && + test 2 -eq "$(git ls-files -u two | wc -l)" + else + test 2 -eq "$(git ls-files -u | wc -l)" && + test 1 -eq "$(git ls-files -u one | wc -l)" && + test 1 -eq "$(git ls-files -u two | wc -l)" + fi && + + test_must_fail git diff --quiet && + + test 3 -eq $(find . | grep -v .git | wc -l) && + + test_path_is_file one && + test_path_is_file two && + test "other" = $(cat one) && + test "stuff" = $(cat two) + +warning: unable to unlink 'one': Is a directory +HEAD is now at a4e3198 Rename one/file -> two +Merging: +a4e3198 Rename one/file -> two +virtual rename-two +found 1 common ancestor: +0765ccc Common commit +CONFLICT (rename/delete): one/file deleted in rename-two and renamed to two in HEAD. Version HEAD of two left in tree. +CONFLICT (rename/delete): two/file deleted in HEAD and renamed to one in rename-two. Version rename-two of one left in tree. +Automatic merge failed; fix conflicts and then commit the result. +ok 24 - pair rename to parent of other (D/F conflicts) w/ clean start + +expecting success of 6402.25 'setup rename of one file to two, with directories in the way': + git reset --hard && + git checkout --orphan first-rename && + git rm -rf . && + git clean -fdqx && + + echo stuff >original && + git add -A && + git commit -m "Common commit" && + + mkdir two && + >two/file && + git add two/file && + git mv original one && + git commit -m "Put two/file in the way, rename to one" && + + git checkout -b second-rename HEAD~1 && + mkdir one && + >one/file && + git add one/file && + git mv original two && + git commit -m "Put one/file in the way, rename to two" + +HEAD is now at a4e3198 Rename one/file -> two +Switched to a new branch 'first-rename' +rm 'two' +[first-rename (root-commit) 3ec06ba] Common commit + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 original +[first-rename 1d86576] Put two/file in the way, rename to one + Author: A U Thor + 2 files changed, 0 insertions(+), 0 deletions(-) + rename original => one (100%) + create mode 100644 two/file +Switched to a new branch 'second-rename' +[second-rename 35e7177] Put one/file in the way, rename to two + Author: A U Thor + 2 files changed, 0 insertions(+), 0 deletions(-) + create mode 100644 one/file + rename original => two (100%) +ok 25 - setup rename of one file to two, with directories in the way + +expecting success of 6402.26 'check handling of differently renamed file with D/F conflicts': + git checkout -q first-rename^0 && + test_must_fail git merge --strategy=recursive second-rename && + + if test "$GIT_TEST_MERGE_ALGORITHM" = ort + then + test 5 -eq "$(git ls-files -s | wc -l)" && + test 3 -eq "$(git ls-files -u | wc -l)" && + test 1 -eq "$(git ls-files -u one~HEAD | wc -l)" && + test 1 -eq "$(git ls-files -u two~second-rename | wc -l)" && + test 1 -eq "$(git ls-files -u original | wc -l)" && + test 0 -eq "$(git ls-files -o | wc -l)" + else + test 5 -eq "$(git ls-files -s | wc -l)" && + test 3 -eq "$(git ls-files -u | wc -l)" && + test 1 -eq "$(git ls-files -u one | wc -l)" && + test 1 -eq "$(git ls-files -u two | wc -l)" && + test 1 -eq "$(git ls-files -u original | wc -l)" && + test 2 -eq "$(git ls-files -o | wc -l)" + fi && + + test_path_is_file one/file && + test_path_is_file two/file && + test_path_is_file one~HEAD && + test_path_is_file two~second-rename && + test_path_is_missing original + +Merging: +1d86576 Put two/file in the way, rename to one +virtual second-rename +found 1 common ancestor: +3ec06ba Common commit +Adding two/file +Adding one/file +Removing one to make room for subdirectory + +CONFLICT (rename/rename): Rename "original"->"one" in branch "HEAD" rename "original"->"two" in "second-rename" +one is a directory in second-rename adding as one~HEAD instead +two is a directory in HEAD adding as two~second-rename instead +Automatic merge failed; fix conflicts and then commit the result. +ok 26 - check handling of differently renamed file with D/F conflicts + +expecting success of 6402.27 'setup rename one file to two; directories moving out of the way': + git reset --hard && + git checkout --orphan first-rename-redo && + git rm -rf . && + git clean -fdqx && + + echo stuff >original && + mkdir one two && + touch one/file two/file && + git add -A && + git commit -m "Common commit" && + + git rm -rf one && + git mv original one && + git commit -m "Rename to one" && + + git checkout -b second-rename-redo HEAD~1 && + git rm -rf two && + git mv original two && + git commit -m "Rename to two" + +warning: unable to unlink 'two': Is a directory +HEAD is now at 1d86576 Put two/file in the way, rename to one +Switched to a new branch 'first-rename-redo' +rm 'one' +rm 'two/file' +[first-rename-redo (root-commit) 7f6a382] Common commit + Author: A U Thor + 3 files changed, 1 insertion(+) + create mode 100644 one/file + create mode 100644 original + create mode 100644 two/file +rm 'one/file' +[first-rename-redo 5a00903] Rename to one + Author: A U Thor + 2 files changed, 0 insertions(+), 0 deletions(-) + rename original => one (100%) + delete mode 100644 one/file +Switched to a new branch 'second-rename-redo' +rm 'two/file' +[second-rename-redo 28aa9be] Rename to two + Author: A U Thor + 2 files changed, 0 insertions(+), 0 deletions(-) + rename original => two (100%) + delete mode 100644 two/file +ok 27 - setup rename one file to two; directories moving out of the way + +expecting success of 6402.28 'check handling of differently renamed file with D/F conflicts': + git checkout -q first-rename-redo^0 && + test_must_fail git merge --strategy=recursive second-rename-redo && + + test 3 -eq "$(git ls-files -u | wc -l)" && + test 1 -eq "$(git ls-files -u one | wc -l)" && + test 1 -eq "$(git ls-files -u two | wc -l)" && + test 1 -eq "$(git ls-files -u original | wc -l)" && + test 0 -eq "$(git ls-files -o | wc -l)" && + + test_path_is_file one && + test_path_is_file two && + test_path_is_missing original + +Merging: +5a00903 Rename to one +virtual second-rename-redo +found 1 common ancestor: +7f6a382 Common commit +Removing two/file +CONFLICT (rename/rename): Rename "original"->"one" in branch "HEAD" rename "original"->"two" in "second-rename-redo" +Automatic merge failed; fix conflicts and then commit the result. +ok 28 - check handling of differently renamed file with D/F conflicts + +expecting success of 6402.29 'setup avoid unnecessary update, normal rename': + git reset --hard && + git checkout --orphan avoid-unnecessary-update-1 && + git rm -rf . && + git clean -fdqx && + + printf "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n" >original && + git add -A && + git commit -m "Common commit" && + + git mv original rename && + echo 11 >>rename && + git add -u && + git commit -m "Renamed and modified" && + + git checkout -b merge-branch-1 HEAD~1 && + echo "random content" >random-file && + git add -A && + git commit -m "Random, unrelated changes" + +HEAD is now at 5a00903 Rename to one +Switched to a new branch 'avoid-unnecessary-update-1' +rm 'one' +rm 'two/file' +[avoid-unnecessary-update-1 (root-commit) 2079f93] Common commit + Author: A U Thor + 1 file changed, 10 insertions(+) + create mode 100644 original +[avoid-unnecessary-update-1 fb0186c] Renamed and modified + Author: A U Thor + 1 file changed, 1 insertion(+) + rename original => rename (87%) +Switched to a new branch 'merge-branch-1' +[merge-branch-1 65bbd67] Random, unrelated changes + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 random-file +ok 29 - setup avoid unnecessary update, normal rename + +expecting success of 6402.30 'avoid unnecessary update, normal rename': + git checkout -q avoid-unnecessary-update-1^0 && + test-tool chmtime --get -3600 rename >expect && + git merge merge-branch-1 && + test-tool chmtime --get rename >actual && + test_cmp expect actual # "rename" should have stayed intact + +Merging: +fb0186c Renamed and modified +virtual merge-branch-1 +found 1 common ancestor: +2079f93 Common commit +Skipped rename (merged same as existing) +Merge made by the 'recursive' strategy. + random-file | 1 + + 1 file changed, 1 insertion(+) + create mode 100644 random-file +ok 30 - avoid unnecessary update, normal rename + +expecting success of 6402.31 'setup to test avoiding unnecessary update, with D/F conflict': + git reset --hard && + git checkout --orphan avoid-unnecessary-update-2 && + git rm -rf . && + git clean -fdqx && + + mkdir df && + printf "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n" >df/file && + git add -A && + git commit -m "Common commit" && + + git mv df/file temp && + rm -rf df && + git mv temp df && + echo 11 >>df && + git add -u && + git commit -m "Renamed and modified" && + + git checkout -b merge-branch-2 HEAD~1 && + >unrelated-change && + git add unrelated-change && + git commit -m "Only unrelated changes" + +HEAD is now at 284061b Merge branch 'merge-branch-1' into HEAD +Switched to a new branch 'avoid-unnecessary-update-2' +rm 'random-file' +rm 'rename' +[avoid-unnecessary-update-2 (root-commit) e635445] Common commit + Author: A U Thor + 1 file changed, 10 insertions(+) + create mode 100644 df/file +[avoid-unnecessary-update-2 fb8c6d0] Renamed and modified + Author: A U Thor + 1 file changed, 1 insertion(+) + rename df/file => df (87%) +Switched to a new branch 'merge-branch-2' +[merge-branch-2 0787898] Only unrelated changes + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 unrelated-change +ok 31 - setup to test avoiding unnecessary update, with D/F conflict + +expecting success of 6402.32 'avoid unnecessary update, with D/F conflict': + git checkout -q avoid-unnecessary-update-2^0 && + test-tool chmtime --get -3600 df >expect && + git merge merge-branch-2 && + test-tool chmtime --get df >actual && + test_cmp expect actual # "df" should have stayed intact + +Merging: +fb8c6d0 Renamed and modified +virtual merge-branch-2 +found 1 common ancestor: +e635445 Common commit +Skipped df (merged same as existing) +Merge made by the 'recursive' strategy. + unrelated-change | 0 + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 unrelated-change +ok 32 - avoid unnecessary update, with D/F conflict + +expecting success of 6402.33 'setup avoid unnecessary update, dir->(file,nothing)': + git rm -rf . && + git clean -fdqx && + rm -rf .git && + git init && + + >irrelevant && + mkdir df && + >df/file && + git add -A && + git commit -mA && + + git checkout -b side && + git rm -rf df && + git commit -mB && + + git checkout master && + git rm -rf df && + echo bla >df && + git add -A && + git commit -m "Add a newfile" + +rm 'df' +rm 'unrelated-change' +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6402-merge-rename/.git/ +[master (root-commit) 0238749] A + Author: A U Thor + 2 files changed, 0 insertions(+), 0 deletions(-) + create mode 100644 df/file + create mode 100644 irrelevant +Switched to a new branch 'side' +rm 'df/file' +[side 32a928c] B + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + delete mode 100644 df/file +Switched to branch 'master' +rm 'df/file' +[master 90ac8b3] Add a newfile + Author: A U Thor + 2 files changed, 1 insertion(+) + create mode 100644 df + delete mode 100644 df/file +ok 33 - setup avoid unnecessary update, dir->(file,nothing) + +expecting success of 6402.34 'avoid unnecessary update, dir->(file,nothing)': + git checkout -q master^0 && + test-tool chmtime --get -3600 df >expect && + git merge side && + test-tool chmtime --get df >actual && + test_cmp expect actual # "df" should have stayed intact + +Merging: +90ac8b3 Add a newfile +virtual side +found 1 common ancestor: +0238749 A +Adding df +Merge made by the 'recursive' strategy. +ok 34 - avoid unnecessary update, dir->(file,nothing) + +expecting success of 6402.35 'setup avoid unnecessary update, modify/delete': + git rm -rf . && + git clean -fdqx && + rm -rf .git && + git init && + + >irrelevant && + >file && + git add -A && + git commit -mA && + + git checkout -b side && + git rm -f file && + git commit -m "Delete file" && + + git checkout master && + echo bla >file && + git add -A && + git commit -m "Modify file" + +rm 'df' +rm 'irrelevant' +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6402-merge-rename/.git/ +[master (root-commit) bec55b4] A + Author: A U Thor + 2 files changed, 0 insertions(+), 0 deletions(-) + create mode 100644 file + create mode 100644 irrelevant +Switched to a new branch 'side' +rm 'file' +[side d8f9927] Delete file + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + delete mode 100644 file +Switched to branch 'master' +[master 27c30f6] Modify file + Author: A U Thor + 1 file changed, 1 insertion(+) +ok 35 - setup avoid unnecessary update, modify/delete + +expecting success of 6402.36 'avoid unnecessary update, modify/delete': + git checkout -q master^0 && + test-tool chmtime --get -3600 file >expect && + test_must_fail git merge side && + test-tool chmtime --get file >actual && + test_cmp expect actual # "file" should have stayed intact + +Merging: +27c30f6 Modify file +virtual side +found 1 common ancestor: +bec55b4 A +CONFLICT (modify/delete): file deleted in side and modified in HEAD. Version HEAD of file left in tree. +Automatic merge failed; fix conflicts and then commit the result. +ok 36 - avoid unnecessary update, modify/delete + +expecting success of 6402.37 'setup avoid unnecessary update, rename/add-dest': + git rm -rf . && + git clean -fdqx && + rm -rf .git && + git init && + + printf "1\n2\n3\n4\n5\n6\n7\n8\n" >file && + git add -A && + git commit -mA && + + git checkout -b side && + cp file newfile && + git add -A && + git commit -m "Add file copy" && + + git checkout master && + git mv file newfile && + git commit -m "Rename file" + +rm 'file' +rm 'file' +rm 'irrelevant' +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6402-merge-rename/.git/ +[master (root-commit) 61e6524] A + Author: A U Thor + 1 file changed, 8 insertions(+) + create mode 100644 file +Switched to a new branch 'side' +[side 8c16f55] Add file copy + Author: A U Thor + 1 file changed, 8 insertions(+) + create mode 100644 newfile +Switched to branch 'master' +[master b01e819] Rename file + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + rename file => newfile (100%) +ok 37 - setup avoid unnecessary update, rename/add-dest + +expecting success of 6402.38 'avoid unnecessary update, rename/add-dest': + git checkout -q master^0 && + test-tool chmtime --get -3600 newfile >expect && + git merge side && + test-tool chmtime --get newfile >actual && + test_cmp expect actual # "file" should have stayed intact + +Merging: +b01e819 Rename file +virtual side +found 1 common ancestor: +61e6524 A +Merge made by the 'recursive' strategy. +ok 38 - avoid unnecessary update, rename/add-dest + +expecting success of 6402.39 'setup merge of rename + small change': + git reset --hard && + git checkout --orphan rename-plus-small-change && + git rm -rf . && + git clean -fdqx && + + echo ORIGINAL >file && + git add file && + + test_tick && + git commit -m Initial && + git checkout -b rename_branch && + git mv file renamed_file && + git commit -m Rename && + git checkout rename-plus-small-change && + echo NEW-VERSION >file && + git commit -a -m Reformat + +HEAD is now at 826dab9 Merge branch 'side' into HEAD +Switched to a new branch 'rename-plus-small-change' +rm 'newfile' +[rename-plus-small-change (root-commit) e44eadc] Initial + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file +Switched to a new branch 'rename_branch' +[rename_branch f706812] Rename + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + rename file => renamed_file (100%) +Switched to branch 'rename-plus-small-change' +[rename-plus-small-change 068ab66] Reformat + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +ok 39 - setup merge of rename + small change + +expecting success of 6402.40 'merge rename + small change': + git merge rename_branch && + + test 1 -eq $(git ls-files -s | wc -l) && + test 0 -eq $(git ls-files -o | wc -l) && + test $(git rev-parse HEAD:renamed_file) = $(git rev-parse HEAD~1:file) + +Merging: +068ab66 Reformat +virtual rename_branch +found 1 common ancestor: +e44eadc Initial +Merge made by the 'recursive' strategy. + file => renamed_file | 0 + 1 file changed, 0 insertions(+), 0 deletions(-) + rename file => renamed_file (100%) +ok 40 - merge rename + small change + +expecting success of 6402.41 'setup for use of extended merge markers': + git rm -rf . && + git clean -fdqx && + rm -rf .git && + git init && + + printf "1\n2\n3\n4\n5\n6\n7\n8\n" >original_file && + git add original_file && + git commit -mA && + + git checkout -b rename && + echo 9 >>original_file && + git add original_file && + git mv original_file renamed_file && + git commit -mB && + + git checkout master && + echo 8.5 >>original_file && + git add original_file && + git commit -mC + +rm 'renamed_file' +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6402-merge-rename/.git/ +[master (root-commit) 4847e8a] A + Author: A U Thor + 1 file changed, 8 insertions(+) + create mode 100644 original_file +Switched to a new branch 'rename' +[rename e9adddb] B + Author: A U Thor + 1 file changed, 1 insertion(+) + rename original_file => renamed_file (88%) +Switched to branch 'master' +[master 0487bb6] C + Author: A U Thor + 1 file changed, 1 insertion(+) +ok 41 - setup for use of extended merge markers + +expecting success of 6402.42 'merge master into rename has correct extended markers': + git checkout rename^0 && + test_must_fail git merge -s recursive master^0 && + + cat >expected <<-\EOF && + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + <<<<<<< HEAD:renamed_file + 9 + ======= + 8.5 + >>>>>>> master^0:original_file + EOF + test_cmp expected renamed_file + +Note: switching to 'rename^0'. -) -prerequisite FILEMODE ok -expecting success of 6411.3 'verify executable bit on file (recursive, a1)': - test -x file1 - -ok 3 - verify executable bit on file (recursive, a1) +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. -expecting success of 6411.4 'resolve single mode change (recursive, b1)': - git checkout -f $us && - git merge -s $strategy $them && - git ls-files -s file1 | grep ^100755 - -Switched to branch 'b1' -Updating 3dfda39..e9857f3 -Fast-forward - dummy | 0 - 1 file changed, 0 insertions(+), 0 deletions(-) - create mode 100644 dummy -100755 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 file1 -ok 4 - resolve single mode change (recursive, b1) +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: -expecting success of 6411.5 'verify executable bit on file (recursive, b1)': - test -x file1 - -ok 5 - verify executable bit on file (recursive, b1) + git switch -c -expecting success of 6411.6 'resolve single mode change (resolve, a1)': - git checkout -f $us && - git merge -s $strategy $them && - git ls-files -s file1 | grep ^100755 - -Switched to branch 'a1' -Already up to date. -100755 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 file1 -ok 6 - resolve single mode change (resolve, a1) +Or undo this operation with: -expecting success of 6411.7 'verify executable bit on file (resolve, a1)': - test -x file1 - -ok 7 - verify executable bit on file (resolve, a1) + git switch - -expecting success of 6411.8 'resolve single mode change (resolve, b1)': - git checkout -f $us && - git merge -s $strategy $them && - git ls-files -s file1 | grep ^100755 - -Switched to branch 'b1' -Already up to date. -100755 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 file1 -ok 8 - resolve single mode change (resolve, b1) +Turn off this advice by setting config variable advice.detachedHead to false -expecting success of 6411.9 'verify executable bit on file (resolve, b1)': - test -x file1 - -ok 9 - verify executable bit on file (resolve, b1) +HEAD is now at e9adddb B +Merging: +e9adddb B +virtual master^0 +found 1 common ancestor: +4847e8a A +Auto-merging renamed_file +CONFLICT (content): Merge conflict in renamed_file +Automatic merge failed; fix conflicts and then commit the result. +ok 42 - merge master into rename has correct extended markers -expecting success of 6411.10 'set up mode change in both branches': - git reset --hard HEAD && - git checkout -b a2 master && - : >file2 && - H=$(git hash-object file2) && - test_chmod +x file2 && - git commit -m a2 && - git checkout -b b2 master && - : >file2 && - git add file2 && - git commit -m b2 && - { - echo "100755 $H 2 file2" - echo "100644 $H 3 file2" - } >expect +expecting success of 6402.43 'merge rename into master has correct extended markers': + git reset --hard && + git checkout master^0 && + test_must_fail git merge -s recursive rename^0 && -HEAD is now at e9857f3 Merge branch 'b1' into a1 -Switched to a new branch 'a2' -[a2 e027a38] a2 - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - create mode 100755 file2 -Switched to a new branch 'b2' -[b2 ef0d9fd] b2 - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - create mode 100644 file2 -ok 10 - set up mode change in both branches + cat >expected <<-\EOF && + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + <<<<<<< HEAD:original_file + 8.5 + ======= + 9 + >>>>>>> rename^0:renamed_file + EOF + test_cmp expected renamed_file -expecting success of 6411.11 'detect conflict on double mode change (recursive)': - git reset --hard && - git checkout -f a2 && - test_must_fail git merge -s $strategy b2 && - git ls-files -u >actual && - test_cmp expect actual && - git ls-files -s file2 | grep ^100755 - -HEAD is now at ef0d9fd b2 -Switched to branch 'a2' +HEAD is now at e9adddb B +Previous HEAD position was e9adddb B +HEAD is now at 0487bb6 C Merging: -e027a38 a2 -virtual b2 +0487bb6 C +virtual rename^0 found 1 common ancestor: -acd9408 initial -CONFLICT (add/add): Merge conflict in file2 -Auto-merging file2 +4847e8a A +Auto-merging renamed_file +CONFLICT (content): Merge conflict in renamed_file Automatic merge failed; fix conflicts and then commit the result. -100755 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 2 file2 -ok 11 - detect conflict on double mode change (recursive) +ok 43 - merge rename into master has correct extended markers -expecting success of 6411.12 'verify executable bit on file (recursive)': - test -x file2 - -ok 12 - verify executable bit on file (recursive) +expecting success of 6402.44 'setup spurious "refusing to lose untracked" message': + git rm -rf . && + git clean -fdqx && + rm -rf .git && + git init && -expecting success of 6411.13 'detect conflict on double mode change (resolve)': - git reset --hard && - git checkout -f a2 && - test_must_fail git merge -s $strategy b2 && - git ls-files -u >actual && - test_cmp expect actual && - git ls-files -s file2 | grep ^100755 - -HEAD is now at e027a38 a2 -Already on 'a2' -error: Merge requires file-level merging -Trying really trivial in-index merge... -Nope. -Trying simple merge. -Simple merge failed, trying Automatic merge. -ERROR: File file2 added identically in both branches, -ERROR: but permissions conflict 100755->100644. -fatal: merge program failed -Automatic merge failed; fix conflicts and then commit the result. -100755 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 2 file2 -ok 13 - detect conflict on double mode change (resolve) + > irrelevant_file && + printf "1\n2\n3\n4\n5\n6\n7\n8\n" >original_file && + git add irrelevant_file original_file && + git commit -mA && -expecting success of 6411.14 'verify executable bit on file (resolve)': - test -x file2 - -ok 14 - verify executable bit on file (resolve) + git checkout -b rename && + git mv original_file renamed_file && + git commit -mB && -expecting success of 6411.15 'set up delete/modechange scenario': - git reset --hard && - git checkout -b deletion master && - git rm file1 && - git commit -m deletion + git checkout master && + git rm original_file && + git commit -mC -HEAD is now at e027a38 a2 -Switched to a new branch 'deletion' -rm 'file1' -[deletion 676a5f7] deletion +rm 'renamed_file' +rm 'renamed_file' +rm 'renamed_file' +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6402-merge-rename/.git/ +[master (root-commit) e476651] A + Author: A U Thor + 2 files changed, 8 insertions(+) + create mode 100644 irrelevant_file + create mode 100644 original_file +Switched to a new branch 'rename' +[rename 951e2d3] B Author: A U Thor 1 file changed, 0 insertions(+), 0 deletions(-) - delete mode 100644 file1 -ok 15 - set up delete/modechange scenario + rename original_file => renamed_file (100%) +Switched to branch 'master' +rm 'original_file' +[master 52b2874] C + Author: A U Thor + 1 file changed, 8 deletions(-) + delete mode 100644 original_file +ok 44 - setup spurious "refusing to lose untracked" message -expecting success of 6411.16 'detect delete/modechange conflict (recursive, b1)': - git reset --hard && - git checkout $us && - test_must_fail git merge -s $strategy $them - -HEAD is now at 676a5f7 deletion -Switched to branch 'b1' -Merging: -e9857f3 Merge branch 'b1' into a1 -virtual deletion -found 1 common ancestor: -acd9408 initial -CONFLICT (modify/delete): file1 deleted in deletion and modified in HEAD. Version HEAD of file1 left in tree. -Automatic merge failed; fix conflicts and then commit the result. -ok 16 - detect delete/modechange conflict (recursive, b1) +expecting success of 6402.45 'no spurious "refusing to lose untracked" message': + git checkout master^0 && + test_must_fail git merge rename^0 2>errors.txt && + ! grep "refusing to lose untracked file" errors.txt -expecting success of 6411.17 'detect delete/modechange conflict (recursive, deletion)': - git reset --hard && - git checkout $us && - test_must_fail git merge -s $strategy $them - -HEAD is now at e9857f3 Merge branch 'b1' into a1 -Switched to branch 'deletion' +Note: switching to 'master^0'. + +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. + +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: + + git switch -c + +Or undo this operation with: + + git switch - + +Turn off this advice by setting config variable advice.detachedHead to false + +HEAD is now at 52b2874 C Merging: -676a5f7 deletion -virtual b1 +52b2874 C +virtual rename^0 found 1 common ancestor: -acd9408 initial -CONFLICT (modify/delete): file1 deleted in HEAD and modified in b1. Version b1 of file1 left in tree. +e476651 A +CONFLICT (rename/delete): original_file deleted in HEAD and renamed to renamed_file in rename^0. Version rename^0 of renamed_file left in tree. Automatic merge failed; fix conflicts and then commit the result. -ok 17 - detect delete/modechange conflict (recursive, deletion) +ok 45 - no spurious "refusing to lose untracked" message -expecting success of 6411.18 'detect delete/modechange conflict (resolve, b1)': - git reset --hard && - git checkout $us && - test_must_fail git merge -s $strategy $them - -HEAD is now at 676a5f7 deletion -Switched to branch 'b1' -error: Merge requires file-level merging -Trying really trivial in-index merge... -Nope. -Trying simple merge. -Simple merge failed, trying Automatic merge. -ERROR: File file1 deleted on one branch but had its -ERROR: permissions changed on the other. -fatal: merge program failed -Automatic merge failed; fix conflicts and then commit the result. -ok 18 - detect delete/modechange conflict (resolve, b1) +expecting success of 6402.46 'do not follow renames for empty files': + git checkout -f -b empty-base && + >empty1 && + git add empty1 && + git commit -m base && + echo content >empty1 && + git add empty1 && + git commit -m fill && + git checkout -b empty-topic HEAD^ && + git mv empty1 empty2 && + git commit -m rename && + test_must_fail git merge empty-base && + test_must_be_empty empty2 -expecting success of 6411.19 'detect delete/modechange conflict (resolve, deletion)': - git reset --hard && - git checkout $us && - test_must_fail git merge -s $strategy $them - -HEAD is now at e9857f3 Merge branch 'b1' into a1 -Switched to branch 'deletion' -error: Merge requires file-level merging -Trying really trivial in-index merge... -Nope. -Trying simple merge. -Simple merge failed, trying Automatic merge. -ERROR: File file1 deleted on one branch but had its -ERROR: permissions changed on the other. -fatal: merge program failed +Switched to a new branch 'empty-base' +[empty-base a940ee2] base + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 empty1 +[empty-base d42ce4d] fill + Author: A U Thor + 1 file changed, 1 insertion(+) +Switched to a new branch 'empty-topic' +[empty-topic ab32619] rename + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + rename empty1 => empty2 (100%) +Merging: +ab32619 rename +virtual empty-base +found 1 common ancestor: +a940ee2 base +CONFLICT (modify/delete): empty1 deleted in HEAD and modified in empty-base. Version empty-base of empty1 left in tree. Automatic merge failed; fix conflicts and then commit the result. -ok 19 - detect delete/modechange conflict (resolve, deletion) +ok 46 - do not follow renames for empty files -# passed all 19 test(s) -1..19 +# passed all 46 test(s) +1..46 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' *** t6413-merge-crlf.sh *** @@ -309814,6 +309666,394 @@ 1..3 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t6417-merge-ours-theirs.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6417-merge-ours-theirs/.git/ +expecting success of 6417.1 'setup': + for i in 1 2 3 4 5 6 7 8 9 + do + echo "$i" + done >file && + git add file && + cp file elif && + git commit -m initial && + + sed -e "s/1/one/" -e "s/9/nine/" >file file + 1 file changed, 9 insertions(+) + create mode 100644 file +[master de72ed3] ours + Author: A U Thor + 1 file changed, 2 insertions(+), 2 deletions(-) +Switched to a new branch 'side' +[side 9035321] theirs + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +Note: switching to 'master^0'. + +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. + +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: + + git switch -c + +Or undo this operation with: + + git switch - + +Turn off this advice by setting config variable advice.detachedHead to false + +HEAD is now at de72ed3 ours +ok 1 - setup + +expecting success of 6417.2 'plain recursive - should conflict': + git reset --hard master && + test_must_fail git merge -s recursive side && + grep nine file && + grep nueve file && + ! grep 9 file && + grep one file && + ! grep 1 file + +HEAD is now at de72ed3 ours +Merging: +de72ed3 ours +virtual side +found 1 common ancestor: +b1c5b20 initial +Auto-merging file +CONFLICT (content): Merge conflict in file +Automatic merge failed; fix conflicts and then commit the result. +nine +nueve +one +ok 2 - plain recursive - should conflict + +expecting success of 6417.3 'recursive favouring theirs': + git reset --hard master && + git merge -s recursive -Xtheirs side && + ! grep nine file && + grep nueve file && + ! grep 9 file && + grep one file && + ! grep 1 file + +HEAD is now at de72ed3 ours +Merging: +de72ed3 ours +virtual side +found 1 common ancestor: +b1c5b20 initial +Auto-merging file +Merge made by the 'recursive' strategy. + file | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) +nueve +one +ok 3 - recursive favouring theirs + +expecting success of 6417.4 'recursive favouring ours': + git reset --hard master && + git merge -s recursive -X ours side && + grep nine file && + ! grep nueve file && + ! grep 9 file && + grep one file && + ! grep 1 file + +HEAD is now at de72ed3 ours +Merging: +de72ed3 ours +virtual side +found 1 common ancestor: +b1c5b20 initial +Auto-merging file +Skipped file (merged same as existing) +Merge made by the 'recursive' strategy. +nine +one +ok 4 - recursive favouring ours + +expecting success of 6417.5 'binary file with -Xours/-Xtheirs': + echo file binary >.gitattributes && + + git reset --hard master && + git merge -s recursive -X theirs side && + git diff --exit-code side HEAD -- file && + + git reset --hard master && + git merge -s recursive -X ours side && + git diff --exit-code master HEAD -- file + +HEAD is now at de72ed3 ours +Merging: +de72ed3 ours +virtual side +found 1 common ancestor: +b1c5b20 initial +Auto-merging file +Merge made by the 'recursive' strategy. + file | Bin 23 -> 22 bytes + 1 file changed, 0 insertions(+), 0 deletions(-) +HEAD is now at de72ed3 ours +Merging: +de72ed3 ours +virtual side +found 1 common ancestor: +b1c5b20 initial +Auto-merging file +Skipped file (merged same as existing) +Merge made by the 'recursive' strategy. +ok 5 - binary file with -Xours/-Xtheirs + +expecting success of 6417.6 'pull passes -X to underlying merge': + git reset --hard master && git pull -s recursive -Xours . side && + git reset --hard master && git pull -s recursive -X ours . side && + git reset --hard master && git pull -s recursive -Xtheirs . side && + git reset --hard master && git pull -s recursive -X theirs . side && + git reset --hard master && test_must_fail git pull -s recursive -X bork . side + +HEAD is now at de72ed3 ours +hint: Pulling without specifying how to reconcile divergent branches is +hint: discouraged. You can squelch this message by running one of the following +hint: commands sometime before your next pull: +hint: +hint: git config pull.rebase false # merge (the default strategy) +hint: git config pull.rebase true # rebase +hint: git config pull.ff only # fast-forward only +hint: +hint: You can replace "git config" with "git config --global" to set a default +hint: preference for all repositories. You can also pass --rebase, --no-rebase, +hint: or --ff-only on the command line to override the configured default per +hint: invocation. +From . + * branch side -> FETCH_HEAD +Merging: +de72ed3 ours +virtual 9035321769620ed142ec9b768ec2b497819d585d +found 1 common ancestor: +b1c5b20 initial +Auto-merging file +Skipped file (merged same as existing) +Merge made by the 'recursive' strategy. +HEAD is now at de72ed3 ours +hint: Pulling without specifying how to reconcile divergent branches is +hint: discouraged. You can squelch this message by running one of the following +hint: commands sometime before your next pull: +hint: +hint: git config pull.rebase false # merge (the default strategy) +hint: git config pull.rebase true # rebase +hint: git config pull.ff only # fast-forward only +hint: +hint: You can replace "git config" with "git config --global" to set a default +hint: preference for all repositories. You can also pass --rebase, --no-rebase, +hint: or --ff-only on the command line to override the configured default per +hint: invocation. +From . + * branch side -> FETCH_HEAD +Merging: +de72ed3 ours +virtual 9035321769620ed142ec9b768ec2b497819d585d +found 1 common ancestor: +b1c5b20 initial +Auto-merging file +Skipped file (merged same as existing) +Merge made by the 'recursive' strategy. +HEAD is now at de72ed3 ours +hint: Pulling without specifying how to reconcile divergent branches is +hint: discouraged. You can squelch this message by running one of the following +hint: commands sometime before your next pull: +hint: +hint: git config pull.rebase false # merge (the default strategy) +hint: git config pull.rebase true # rebase +hint: git config pull.ff only # fast-forward only +hint: +hint: You can replace "git config" with "git config --global" to set a default +hint: preference for all repositories. You can also pass --rebase, --no-rebase, +hint: or --ff-only on the command line to override the configured default per +hint: invocation. +From . + * branch side -> FETCH_HEAD +Merging: +de72ed3 ours +virtual 9035321769620ed142ec9b768ec2b497819d585d +found 1 common ancestor: +b1c5b20 initial +Auto-merging file +Merge made by the 'recursive' strategy. + file | Bin 23 -> 22 bytes + 1 file changed, 0 insertions(+), 0 deletions(-) +HEAD is now at de72ed3 ours +hint: Pulling without specifying how to reconcile divergent branches is +hint: discouraged. You can squelch this message by running one of the following +hint: commands sometime before your next pull: +hint: +hint: git config pull.rebase false # merge (the default strategy) +hint: git config pull.rebase true # rebase +hint: git config pull.ff only # fast-forward only +hint: +hint: You can replace "git config" with "git config --global" to set a default +hint: preference for all repositories. You can also pass --rebase, --no-rebase, +hint: or --ff-only on the command line to override the configured default per +hint: invocation. +From . + * branch side -> FETCH_HEAD +Merging: +de72ed3 ours +virtual 9035321769620ed142ec9b768ec2b497819d585d +found 1 common ancestor: +b1c5b20 initial +Auto-merging file +Merge made by the 'recursive' strategy. + file | Bin 23 -> 22 bytes + 1 file changed, 0 insertions(+), 0 deletions(-) +HEAD is now at de72ed3 ours +hint: Pulling without specifying how to reconcile divergent branches is +hint: discouraged. You can squelch this message by running one of the following +hint: commands sometime before your next pull: +hint: +hint: git config pull.rebase false # merge (the default strategy) +hint: git config pull.rebase true # rebase +hint: git config pull.ff only # fast-forward only +hint: +hint: You can replace "git config" with "git config --global" to set a default +hint: preference for all repositories. You can also pass --rebase, --no-rebase, +hint: or --ff-only on the command line to override the configured default per +hint: invocation. +From . + * branch side -> FETCH_HEAD +fatal: Unknown option for merge-recursive: -Xbork +ok 6 - pull passes -X to underlying merge + +checking prerequisite: SYMLINKS + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && + # test whether the filesystem supports symbolic links + ln -s x y && test -h y + +) +prerequisite SYMLINKS ok +expecting success of 6417.7 'symlink with -Xours/-Xtheirs': + git reset --hard master && + git checkout -b two master && + ln -s target-zero link && + git add link && + git commit -m "add link pointing to zero" && + + ln -f -s target-two link && + git commit -m "add link pointing to two" link && + + git checkout -b one HEAD^ && + ln -f -s target-one link && + git commit -m "add link pointing to one" link && + + # we expect symbolic links not to resolve automatically, of course + git checkout one^0 && + test_must_fail git merge -s recursive two && + + # favor theirs to resolve to target-two? + git reset --hard && + git checkout one^0 && + git merge -s recursive -X theirs two && + git diff --exit-code two HEAD link && + + # favor ours to resolve to target-one? + git reset --hard && + git checkout one^0 && + git merge -s recursive -X ours two && + git diff --exit-code one HEAD link + + +HEAD is now at de72ed3 ours +Switched to a new branch 'two' +[two c4561a4] add link pointing to zero + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 120000 link +[two 6164de8] add link pointing to two + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +Switched to a new branch 'one' +[one 4961603] add link pointing to one + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +Note: switching to 'one^0'. + +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. + +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: + + git switch -c + +Or undo this operation with: + + git switch - + +Turn off this advice by setting config variable advice.detachedHead to false + +HEAD is now at 4961603 add link pointing to one +Merging: +4961603 add link pointing to one +virtual two +found 1 common ancestor: +c4561a4 add link pointing to zero +Auto-merging link +CONFLICT (content): Merge conflict in link +Automatic merge failed; fix conflicts and then commit the result. +HEAD is now at 4961603 add link pointing to one +HEAD is now at 4961603 add link pointing to one +Merging: +4961603 add link pointing to one +virtual two +found 1 common ancestor: +c4561a4 add link pointing to zero +Auto-merging link +Merge made by the 'recursive' strategy. + link | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) +HEAD is now at 6efe9ee Merge branch 'two' into HEAD +Warning: you are leaving 1 commit behind, not connected to +any of your branches: + + 6efe9ee Merge branch 'two' into HEAD + +If you want to keep it by creating a new branch, this may be a good time +to do so with: + + git branch 6efe9ee + +HEAD is now at 4961603 add link pointing to one +Merging: +4961603 add link pointing to one +virtual two +found 1 common ancestor: +c4561a4 add link pointing to zero +Auto-merging link +Skipped link (merged same as existing) +Merge made by the 'recursive' strategy. +ok 7 - symlink with -Xours/-Xtheirs + +# passed all 7 test(s) +1..7 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t6412-merge-large-rename.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6412-merge-large-rename/.git/ expecting success of 6412.1 'setup (initial)': @@ -311139,6 +311379,22 @@ 1..24 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t6419-merge-ignorecase.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6419-merge-ignorecase/.git/ +checking prerequisite: CASE_INSENSITIVE_FS + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-CASE_INSENSITIVE_FS" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-CASE_INSENSITIVE_FS" && + echo good >CamelCase && + echo bad >camelcase && + test "$(cat CamelCase)" != good + +) +prerequisite CASE_INSENSITIVE_FS not satisfied +1..0 # SKIP skipping case insensitive tests - case sensitive file system +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t6418-merge-text-auto.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6418-merge-text-auto/.git/ expecting success of 6418.1 'setup': @@ -311480,39 +311736,90 @@ 1..10 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t6417-merge-ours-theirs.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6417-merge-ours-theirs/.git/ -expecting success of 6417.1 'setup': - for i in 1 2 3 4 5 6 7 8 9 - do - echo "$i" - done >file && - git add file && - cp file elif && - git commit -m initial && +*** t6424-merge-unrelated-index-changes.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6424-merge-unrelated-index-changes/.git/ +expecting success of 6424.1 'setup trivial merges': + test_seq 1 10 >a && + git add a && + test_tick && git commit -m A && - sed -e "s/1/one/" -e "s/9/nine/" >file b && + echo 11 >>a && + git add a b && + test_tick && git commit -m B && - sed -e "s/9/nueve/" >file c && + git add c && + test_tick && git commit -m C && - git checkout master^0 + git checkout D && + test_seq 2 10 >a && + echo d >d && + git add a d && + test_tick && git commit -m D && -[master (root-commit) b1c5b20] initial + git checkout E && + mkdir subdir && + git mv a subdir/a && + echo e >subdir/e && + git add subdir && + test_tick && git commit -m E && + + git checkout F && + test_tick && git commit --allow-empty -m F + +[master (root-commit) 87af29c] A Author: A U Thor - 1 file changed, 9 insertions(+) - create mode 100644 file -[master de72ed3] ours + 1 file changed, 10 insertions(+) + create mode 100644 a +Switched to branch 'B' +[B ed5d5a6] B Author: A U Thor - 1 file changed, 2 insertions(+), 2 deletions(-) -Switched to a new branch 'side' -[side 9035321] theirs + 2 files changed, 2 insertions(+) + create mode 100644 b +Switched to branch 'C' +[C 4fa59ce] C Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -Note: switching to 'master^0'. + 1 file changed, 1 insertion(+) + create mode 100644 c +Switched to branch 'D' +[D c3c5299] D + Author: A U Thor + 2 files changed, 1 insertion(+), 1 deletion(-) + create mode 100644 d +Switched to branch 'E' +[E b615563] E + Author: A U Thor + 2 files changed, 1 insertion(+) + rename a => subdir/a (100%) + create mode 100644 subdir/e +Switched to branch 'F' +[F 83c2e21] F + Author: A U Thor +ok 1 - setup trivial merges + +expecting success of 6424.2 'ff update': + git reset --hard && + git checkout A^0 && + + touch random_file && git add random_file && + + git merge E^0 && + + test_must_fail git rev-parse HEAD:random_file && + test "$(git diff --name-only --cached E)" = "random_file" + +HEAD is now at 83c2e21 F +Note: switching to 'A^0'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this @@ -311529,359 +311836,297 @@ Turn off this advice by setting config variable advice.detachedHead to false -HEAD is now at de72ed3 ours -ok 1 - setup +HEAD is now at 87af29c A +Updating 87af29c..b615563 +Fast-forward + a => subdir/a | 0 + subdir/e | 1 + + 2 files changed, 1 insertion(+) + rename a => subdir/a (100%) + create mode 100644 subdir/e +fatal: path 'random_file' exists on disk, but not in 'HEAD' +HEAD:random_file +ok 2 - ff update -expecting success of 6417.2 'plain recursive - should conflict': - git reset --hard master && - test_must_fail git merge -s recursive side && - grep nine file && - grep nueve file && - ! grep 9 file && - grep one file && - ! grep 1 file +expecting success of 6424.3 'ff update, important file modified': + git reset --hard && + git checkout A^0 && -HEAD is now at de72ed3 ours -Merging: -de72ed3 ours -virtual side -found 1 common ancestor: -b1c5b20 initial -Auto-merging file -CONFLICT (content): Merge conflict in file -Automatic merge failed; fix conflicts and then commit the result. -nine -nueve -one -ok 2 - plain recursive - should conflict + mkdir subdir && + touch subdir/e && + git add subdir/e && -expecting success of 6417.3 'recursive favouring theirs': - git reset --hard master && - git merge -s recursive -Xtheirs side && - ! grep nine file && - grep nueve file && - ! grep 9 file && - grep one file && - ! grep 1 file + test_must_fail git merge E^0 && + test_path_is_missing .git/MERGE_HEAD -HEAD is now at de72ed3 ours -Merging: -de72ed3 ours -virtual side -found 1 common ancestor: -b1c5b20 initial -Auto-merging file -Merge made by the 'recursive' strategy. - file | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) -nueve -one -ok 3 - recursive favouring theirs +HEAD is now at b615563 E +Previous HEAD position was b615563 E +HEAD is now at 87af29c A +error: Your local changes to the following files would be overwritten by merge: + subdir/e +Please commit your changes or stash them before you merge. +Aborting +Updating 87af29c..b615563 +ok 3 - ff update, important file modified -expecting success of 6417.4 'recursive favouring ours': - git reset --hard master && - git merge -s recursive -X ours side && - grep nine file && - ! grep nueve file && - ! grep 9 file && - grep one file && - ! grep 1 file +expecting success of 6424.4 'resolve, trivial': + git reset --hard && + git checkout B^0 && -HEAD is now at de72ed3 ours -Merging: -de72ed3 ours -virtual side -found 1 common ancestor: -b1c5b20 initial -Auto-merging file -Skipped file (merged same as existing) -Merge made by the 'recursive' strategy. -nine -one -ok 4 - recursive favouring ours + touch random_file && git add random_file && -expecting success of 6417.5 'binary file with -Xours/-Xtheirs': - echo file binary >.gitattributes && + test_must_fail git merge -s resolve C^0 && + test_path_is_missing .git/MERGE_HEAD - git reset --hard master && - git merge -s recursive -X theirs side && - git diff --exit-code side HEAD -- file && +HEAD is now at 87af29c A +Previous HEAD position was 87af29c A +HEAD is now at ed5d5a6 B +error: Entry 'random_file' would be overwritten by merge. Cannot merge. +Trying really trivial in-index merge... +Nope. +error: Entry 'random_file' would be overwritten by merge. Cannot merge. +Merge with strategy resolve failed. +ok 4 - resolve, trivial - git reset --hard master && - git merge -s recursive -X ours side && - git diff --exit-code master HEAD -- file +expecting success of 6424.5 'resolve, non-trivial': + git reset --hard && + git checkout B^0 && -HEAD is now at de72ed3 ours -Merging: -de72ed3 ours -virtual side -found 1 common ancestor: -b1c5b20 initial -Auto-merging file -Merge made by the 'recursive' strategy. - file | Bin 23 -> 22 bytes - 1 file changed, 0 insertions(+), 0 deletions(-) -HEAD is now at de72ed3 ours -Merging: -de72ed3 ours -virtual side -found 1 common ancestor: -b1c5b20 initial -Auto-merging file -Skipped file (merged same as existing) -Merge made by the 'recursive' strategy. -ok 5 - binary file with -Xours/-Xtheirs + touch random_file && git add random_file && -expecting success of 6417.6 'pull passes -X to underlying merge': - git reset --hard master && git pull -s recursive -Xours . side && - git reset --hard master && git pull -s recursive -X ours . side && - git reset --hard master && git pull -s recursive -Xtheirs . side && - git reset --hard master && git pull -s recursive -X theirs . side && - git reset --hard master && test_must_fail git pull -s recursive -X bork . side + test_must_fail git merge -s resolve D^0 && + test_path_is_missing .git/MERGE_HEAD -HEAD is now at de72ed3 ours -hint: Pulling without specifying how to reconcile divergent branches is -hint: discouraged. You can squelch this message by running one of the following -hint: commands sometime before your next pull: -hint: -hint: git config pull.rebase false # merge (the default strategy) -hint: git config pull.rebase true # rebase -hint: git config pull.ff only # fast-forward only -hint: -hint: You can replace "git config" with "git config --global" to set a default -hint: preference for all repositories. You can also pass --rebase, --no-rebase, -hint: or --ff-only on the command line to override the configured default per -hint: invocation. -From . - * branch side -> FETCH_HEAD -Merging: -de72ed3 ours -virtual 9035321769620ed142ec9b768ec2b497819d585d -found 1 common ancestor: -b1c5b20 initial -Auto-merging file -Skipped file (merged same as existing) -Merge made by the 'recursive' strategy. -HEAD is now at de72ed3 ours -hint: Pulling without specifying how to reconcile divergent branches is -hint: discouraged. You can squelch this message by running one of the following -hint: commands sometime before your next pull: -hint: -hint: git config pull.rebase false # merge (the default strategy) -hint: git config pull.rebase true # rebase -hint: git config pull.ff only # fast-forward only -hint: -hint: You can replace "git config" with "git config --global" to set a default -hint: preference for all repositories. You can also pass --rebase, --no-rebase, -hint: or --ff-only on the command line to override the configured default per -hint: invocation. -From . - * branch side -> FETCH_HEAD -Merging: -de72ed3 ours -virtual 9035321769620ed142ec9b768ec2b497819d585d -found 1 common ancestor: -b1c5b20 initial -Auto-merging file -Skipped file (merged same as existing) -Merge made by the 'recursive' strategy. -HEAD is now at de72ed3 ours -hint: Pulling without specifying how to reconcile divergent branches is -hint: discouraged. You can squelch this message by running one of the following -hint: commands sometime before your next pull: -hint: -hint: git config pull.rebase false # merge (the default strategy) -hint: git config pull.rebase true # rebase -hint: git config pull.ff only # fast-forward only -hint: -hint: You can replace "git config" with "git config --global" to set a default -hint: preference for all repositories. You can also pass --rebase, --no-rebase, -hint: or --ff-only on the command line to override the configured default per -hint: invocation. -From . - * branch side -> FETCH_HEAD -Merging: -de72ed3 ours -virtual 9035321769620ed142ec9b768ec2b497819d585d -found 1 common ancestor: -b1c5b20 initial -Auto-merging file -Merge made by the 'recursive' strategy. - file | Bin 23 -> 22 bytes - 1 file changed, 0 insertions(+), 0 deletions(-) -HEAD is now at de72ed3 ours -hint: Pulling without specifying how to reconcile divergent branches is -hint: discouraged. You can squelch this message by running one of the following -hint: commands sometime before your next pull: -hint: -hint: git config pull.rebase false # merge (the default strategy) -hint: git config pull.rebase true # rebase -hint: git config pull.ff only # fast-forward only -hint: -hint: You can replace "git config" with "git config --global" to set a default -hint: preference for all repositories. You can also pass --rebase, --no-rebase, -hint: or --ff-only on the command line to override the configured default per -hint: invocation. -From . - * branch side -> FETCH_HEAD -Merging: -de72ed3 ours -virtual 9035321769620ed142ec9b768ec2b497819d585d -found 1 common ancestor: -b1c5b20 initial -Auto-merging file -Merge made by the 'recursive' strategy. - file | Bin 23 -> 22 bytes - 1 file changed, 0 insertions(+), 0 deletions(-) -HEAD is now at de72ed3 ours -hint: Pulling without specifying how to reconcile divergent branches is -hint: discouraged. You can squelch this message by running one of the following -hint: commands sometime before your next pull: -hint: -hint: git config pull.rebase false # merge (the default strategy) -hint: git config pull.rebase true # rebase -hint: git config pull.ff only # fast-forward only -hint: -hint: You can replace "git config" with "git config --global" to set a default -hint: preference for all repositories. You can also pass --rebase, --no-rebase, -hint: or --ff-only on the command line to override the configured default per -hint: invocation. -From . - * branch side -> FETCH_HEAD -fatal: Unknown option for merge-recursive: -Xbork -ok 6 - pull passes -X to underlying merge +HEAD is now at ed5d5a6 B +HEAD is now at ed5d5a6 B +error: Entry 'random_file' would be overwritten by merge. Cannot merge. +Trying really trivial in-index merge... +Nope. +error: Entry 'random_file' would be overwritten by merge. Cannot merge. +Merge with strategy resolve failed. +ok 5 - resolve, non-trivial -checking prerequisite: SYMLINKS +expecting success of 6424.6 'recursive': + git reset --hard && + git checkout B^0 && -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && + touch random_file && git add random_file && + + test_must_fail git merge -s recursive C^0 && + test_path_is_missing .git/MERGE_HEAD + +HEAD is now at ed5d5a6 B +HEAD is now at ed5d5a6 B +error: Your local changes to the following files would be overwritten by merge: + random_file +ok 6 - recursive + +expecting success of 6424.7 'recursive, when merge branch matches merge base': + git reset --hard && + git checkout B^0 && + + touch random_file && git add random_file && + + test_must_fail git merge -s recursive F^0 && + test_path_is_missing .git/MERGE_HEAD + +HEAD is now at ed5d5a6 B +HEAD is now at ed5d5a6 B +error: Your local changes to the following files would be overwritten by merge: + random_file +ok 7 - recursive, when merge branch matches merge base + +expecting success of 6424.8 'merge-recursive, when index==head but head!=HEAD': + git reset --hard && + git checkout C^0 && + + # Make index match B + git diff C B -- | git apply --cached && + # Merge B & F, with B as "head" + git merge-recursive A -- B F > out && + test_i18ngrep "Already up to date" out + +HEAD is now at ed5d5a6 B +Previous HEAD position was ed5d5a6 B +HEAD is now at 4fa59ce C +checking prerequisite: C_LOCALE_OUTPUT + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && ( - cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && - # test whether the filesystem supports symbolic links - ln -s x y && test -h y + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false ) -prerequisite SYMLINKS ok -expecting success of 6417.7 'symlink with -Xours/-Xtheirs': - git reset --hard master && - git checkout -b two master && - ln -s target-zero link && - git add link && - git commit -m "add link pointing to zero" && +prerequisite C_LOCALE_OUTPUT ok +Already up to date! +ok 8 - merge-recursive, when index==head but head!=HEAD - ln -f -s target-two link && - git commit -m "add link pointing to two" link && +expecting success of 6424.9 'recursive, when file has staged changes not matching HEAD nor what a merge would give': + git reset --hard && + git checkout B^0 && - git checkout -b one HEAD^ && - ln -f -s target-one link && - git commit -m "add link pointing to one" link && + mkdir subdir && + test_seq 1 10 >subdir/a && + git add subdir/a && - # we expect symbolic links not to resolve automatically, of course - git checkout one^0 && - test_must_fail git merge -s recursive two && + # We have staged changes; merge should error out + test_must_fail git merge -s recursive E^0 2>err && + test_i18ngrep "changes to the following files would be overwritten" err - # favor theirs to resolve to target-two? +HEAD is now at 4fa59ce C +Previous HEAD position was 4fa59ce C +HEAD is now at ed5d5a6 B +error: Your local changes to the following files would be overwritten by merge: +ok 9 - recursive, when file has staged changes not matching HEAD nor what a merge would give + +expecting success of 6424.10 'recursive, when file has staged changes matching what a merge would give': git reset --hard && - git checkout one^0 && - git merge -s recursive -X theirs two && - git diff --exit-code two HEAD link && + git checkout B^0 && - # favor ours to resolve to target-one? + mkdir subdir && + test_seq 1 11 >subdir/a && + git add subdir/a && + + # We have staged changes; merge should error out + test_must_fail git merge -s recursive E^0 2>err && + test_i18ngrep "changes to the following files would be overwritten" err + +HEAD is now at ed5d5a6 B +HEAD is now at ed5d5a6 B +error: Your local changes to the following files would be overwritten by merge: +ok 10 - recursive, when file has staged changes matching what a merge would give + +expecting success of 6424.11 'octopus, unrelated file touched': git reset --hard && - git checkout one^0 && - git merge -s recursive -X ours two && - git diff --exit-code one HEAD link + git checkout B^0 && + touch random_file && git add random_file && -HEAD is now at de72ed3 ours -Switched to a new branch 'two' -[two c4561a4] add link pointing to zero - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 120000 link -[two 6164de8] add link pointing to two - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -Switched to a new branch 'one' -[one 4961603] add link pointing to one - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -Note: switching to 'one^0'. + test_must_fail git merge C^0 D^0 && + test_path_is_missing .git/MERGE_HEAD -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. +HEAD is now at ed5d5a6 B +HEAD is now at ed5d5a6 B +Error: Your local changes to the following files would be overwritten by merge + random_file +Merge with strategy octopus failed. +ok 11 - octopus, unrelated file touched -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: +expecting success of 6424.12 'octopus, related file removed': + git reset --hard && + git checkout B^0 && - git switch -c + git rm b && -Or undo this operation with: + test_must_fail git merge C^0 D^0 && + test_path_is_missing .git/MERGE_HEAD - git switch - +HEAD is now at ed5d5a6 B +HEAD is now at ed5d5a6 B +rm 'b' +Error: Your local changes to the following files would be overwritten by merge + b +Merge with strategy octopus failed. +ok 12 - octopus, related file removed -Turn off this advice by setting config variable advice.detachedHead to false +expecting success of 6424.13 'octopus, related file modified': + git reset --hard && + git checkout B^0 && -HEAD is now at 4961603 add link pointing to one -Merging: -4961603 add link pointing to one -virtual two -found 1 common ancestor: -c4561a4 add link pointing to zero -Auto-merging link -CONFLICT (content): Merge conflict in link -Automatic merge failed; fix conflicts and then commit the result. -HEAD is now at 4961603 add link pointing to one -HEAD is now at 4961603 add link pointing to one -Merging: -4961603 add link pointing to one -virtual two -found 1 common ancestor: -c4561a4 add link pointing to zero -Auto-merging link -Merge made by the 'recursive' strategy. - link | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) -HEAD is now at 6efe9ee Merge branch 'two' into HEAD -Warning: you are leaving 1 commit behind, not connected to -any of your branches: + echo 12 >>a && git add a && - 6efe9ee Merge branch 'two' into HEAD + test_must_fail git merge C^0 D^0 && + test_path_is_missing .git/MERGE_HEAD -If you want to keep it by creating a new branch, this may be a good time -to do so with: +HEAD is now at ed5d5a6 B +HEAD is now at ed5d5a6 B +Error: Your local changes to the following files would be overwritten by merge + a +Merge with strategy octopus failed. +ok 13 - octopus, related file modified - git branch 6efe9ee +expecting success of 6424.14 'ours': + git reset --hard && + git checkout B^0 && -HEAD is now at 4961603 add link pointing to one -Merging: -4961603 add link pointing to one -virtual two -found 1 common ancestor: -c4561a4 add link pointing to zero -Auto-merging link -Skipped link (merged same as existing) -Merge made by the 'recursive' strategy. -ok 7 - symlink with -Xours/-Xtheirs + touch random_file && git add random_file && -# passed all 7 test(s) -1..7 + test_must_fail git merge -s ours C^0 && + test_path_is_missing .git/MERGE_HEAD + +HEAD is now at ed5d5a6 B +HEAD is now at ed5d5a6 B +Merge with strategy ours failed. +ok 14 - ours + +expecting success of 6424.15 'subtree': + git reset --hard && + git checkout B^0 && + + touch random_file && git add random_file && + + test_must_fail git merge -s subtree E^0 && + test_path_is_missing .git/MERGE_HEAD + +HEAD is now at ed5d5a6 B +HEAD is now at ed5d5a6 B +error: Your local changes to the following files would be overwritten by merge: + random_file +ok 15 - subtree + +# passed all 15 test(s) +1..15 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t6419-merge-ignorecase.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6419-merge-ignorecase/.git/ -checking prerequisite: CASE_INSENSITIVE_FS +*** t6425-merge-rename-delete.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6425-merge-rename-delete/.git/ +expecting success of 6425.1 'rename/delete': + echo foo >A && + git add A && + git commit -m "initial" && -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-CASE_INSENSITIVE_FS" && + git checkout -b rename && + git mv A B && + git commit -m "rename" && + + git checkout master && + git rm A && + git commit -m "delete" && + + test_must_fail git merge --strategy=recursive rename >output && + test_i18ngrep "CONFLICT (rename/delete): A.* renamed .*to B.* in rename" output && + test_i18ngrep "CONFLICT (rename/delete): A.*deleted in HEAD." output + +[master (root-commit) 6604e52] initial + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 A +Switched to a new branch 'rename' +[rename f088787] rename + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + rename A => B (100%) +Switched to branch 'master' +rm 'A' +[master b4eee36] delete + Author: A U Thor + 1 file changed, 1 deletion(-) + delete mode 100644 A +checking prerequisite: C_LOCALE_OUTPUT + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && ( - cd "$TRASH_DIRECTORY/prereq-test-dir-CASE_INSENSITIVE_FS" && - echo good >CamelCase && - echo bad >camelcase && - test "$(cat CamelCase)" != good + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false ) -prerequisite CASE_INSENSITIVE_FS not satisfied -1..0 # SKIP skipping case insensitive tests - case sensitive file system +prerequisite C_LOCALE_OUTPUT ok +CONFLICT (rename/delete): A deleted in HEAD and renamed to B in rename. Version rename of B left in tree. +CONFLICT (rename/delete): A deleted in HEAD and renamed to B in rename. Version rename of B left in tree. +ok 1 - rename/delete + +# passed all 1 test(s) +1..1 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' *** t6416-recursive-corner-cases.sh *** @@ -313050,8 +313295,8 @@ CONFLICT (directory/file): There is a directory with name a in Temporary merge branch 1. Adding a as a~Temporary merge branch 2 CONFLICT (rename/rename): Rename "a~Temporary merge branch 2"->"a" in branch "HEAD" rename "a~Temporary merge branch 2"->"a2" in "E4^0" Automatic merge failed; fix conflicts and then commit the result. ---- expect 2023-04-29 16:39:20.231238873 +0000 -+++ actual 2023-04-29 16:39:20.243237690 +0000 +--- expect 2023-04-29 18:26:58.671312722 +0000 ++++ actual 2023-04-29 18:26:58.707309317 +0000 @@ -1,4 +1,4 @@ e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 06e567b11dfdafeaf7d3edcc89864149383aeab6 @@ -314646,6 +314891,897 @@ 1..40 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t6426-merge-skip-unneeded-updates.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6426-merge-skip-unneeded-updates/.git/ +expecting success of 6426.1 '1a-L: Modify(A)/Modify(B), change on B subset of A': + test_setup_1a L && + ( + cd 1a_L && + + git checkout A^0 && + + test-tool chmtime --get -3600 b >old-mtime && + + GIT_MERGE_VERBOSITY=3 git merge -s recursive B^0 >out 2>err && + + test_must_be_empty err && + + # Make sure b was NOT updated + test-tool chmtime --get b >new-mtime && + test_cmp old-mtime new-mtime && + + git ls-files -s >index_files && + test_line_count = 1 index_files && + + git rev-parse >actual HEAD:b && + git rev-parse >expect A:b && + test_cmp expect actual && + + git hash-object b >actual && + git rev-parse A:b >expect && + test_cmp expect actual + ) + +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6426-merge-skip-unneeded-updates/1a_L/.git/ +[master (root-commit) 105387b] O + Author: A U Thor + 1 file changed, 10 insertions(+) + create mode 100644 b +Switched to branch 'A' +[A 14800cf] A + Author: A U Thor + 1 file changed, 2 insertions(+) +Switched to branch 'B' +[B dfd7e13] B + Author: A U Thor + 1 file changed, 1 insertion(+) +Note: switching to 'A^0'. + +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. + +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: + + git switch -c + +Or undo this operation with: + + git switch - + +Turn off this advice by setting config variable advice.detachedHead to false + +HEAD is now at 14800cf A +ok 1 - 1a-L: Modify(A)/Modify(B), change on B subset of A + +expecting success of 6426.2 '1a-R: Modify(A)/Modify(B), change on B subset of A': + test_setup_1a R && + ( + cd 1a_R && + + git checkout B^0 && + + test-tool chmtime --get -3600 b >old-mtime && + GIT_MERGE_VERBOSITY=3 git merge -s recursive A^0 >out 2>err && + + # Make sure b WAS updated + test-tool chmtime --get b >new-mtime && + test $(cat old-mtime) -lt $(cat new-mtime) && + + test_must_be_empty err && + + git ls-files -s >index_files && + test_line_count = 1 index_files && + + git rev-parse >actual HEAD:b && + git rev-parse >expect A:b && + test_cmp expect actual && + + git hash-object b >actual && + git rev-parse A:b >expect && + test_cmp expect actual + ) + +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6426-merge-skip-unneeded-updates/1a_R/.git/ +[master (root-commit) 105387b] O + Author: A U Thor + 1 file changed, 10 insertions(+) + create mode 100644 b +Switched to branch 'A' +[A 14800cf] A + Author: A U Thor + 1 file changed, 2 insertions(+) +Switched to branch 'B' +[B dfd7e13] B + Author: A U Thor + 1 file changed, 1 insertion(+) +Note: switching to 'B^0'. + +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. + +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: + + git switch -c + +Or undo this operation with: + + git switch - + +Turn off this advice by setting config variable advice.detachedHead to false + +HEAD is now at dfd7e13 B +ok 2 - 1a-R: Modify(A)/Modify(B), change on B subset of A + +expecting success of 6426.3 '2a-L: Modify/rename, merge into modify side': + test_setup_2a L && + ( + cd 2a_L && + + git checkout A^0 && + + test_path_is_missing c && + GIT_MERGE_VERBOSITY=3 git merge -s recursive B^0 >out 2>err && + + test_path_is_file c && + + git ls-files -s >index_files && + test_line_count = 1 index_files && + + git rev-parse >actual HEAD:c && + git rev-parse >expect A:b && + test_cmp expect actual && + + git hash-object c >actual && + git rev-parse A:b >expect && + test_cmp expect actual && + + test_must_fail git rev-parse HEAD:b && + test_path_is_missing b + ) + +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6426-merge-skip-unneeded-updates/2a_L/.git/ +[master (root-commit) 105387b] O + Author: A U Thor + 1 file changed, 10 insertions(+) + create mode 100644 b +Switched to branch 'A' +[A c2d59c7] A + Author: A U Thor + 1 file changed, 1 insertion(+) +Switched to branch 'B' +[B 6283fcf] B + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + rename b => c (100%) +Note: switching to 'A^0'. + +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. + +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: + + git switch -c + +Or undo this operation with: + + git switch - + +Turn off this advice by setting config variable advice.detachedHead to false + +HEAD is now at c2d59c7 A +fatal: path 'b' does not exist in 'HEAD' +HEAD:b +ok 3 - 2a-L: Modify/rename, merge into modify side + +expecting success of 6426.4 '2a-R: Modify/rename, merge into rename side': + test_setup_2a R && + ( + cd 2a_R && + + git checkout B^0 && + + test-tool chmtime --get -3600 c >old-mtime && + GIT_MERGE_VERBOSITY=3 git merge -s recursive A^0 >out 2>err && + + # Make sure c WAS updated + test-tool chmtime --get c >new-mtime && + test $(cat old-mtime) -lt $(cat new-mtime) && + + test_must_be_empty err && + + git ls-files -s >index_files && + test_line_count = 1 index_files && + + git rev-parse >actual HEAD:c && + git rev-parse >expect A:b && + test_cmp expect actual && + + git hash-object c >actual && + git rev-parse A:b >expect && + test_cmp expect actual && + + test_must_fail git rev-parse HEAD:b && + test_path_is_missing b + ) + +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6426-merge-skip-unneeded-updates/2a_R/.git/ +[master (root-commit) 105387b] O + Author: A U Thor + 1 file changed, 10 insertions(+) + create mode 100644 b +Switched to branch 'A' +[A c2d59c7] A + Author: A U Thor + 1 file changed, 1 insertion(+) +Switched to branch 'B' +[B 6283fcf] B + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + rename b => c (100%) +Note: switching to 'B^0'. + +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. + +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: + + git switch -c + +Or undo this operation with: + + git switch - + +Turn off this advice by setting config variable advice.detachedHead to false + +HEAD is now at 6283fcf B +fatal: path 'b' does not exist in 'HEAD' +HEAD:b +ok 4 - 2a-R: Modify/rename, merge into rename side + +expecting success of 6426.5 '2b-L: Rename+Mod(A)/Mod(B), B mods subset of A': + test_setup_2b L && + ( + cd 2b_L && + + git checkout A^0 && + + test-tool chmtime --get -3600 c >old-mtime && + GIT_MERGE_VERBOSITY=3 git merge -s recursive B^0 >out 2>err && + + test_must_be_empty err && + + # Make sure c WAS updated + test-tool chmtime --get c >new-mtime && + test_cmp old-mtime new-mtime && + + git ls-files -s >index_files && + test_line_count = 1 index_files && + + git rev-parse >actual HEAD:c && + git rev-parse >expect A:c && + test_cmp expect actual && + + git hash-object c >actual && + git rev-parse A:c >expect && + test_cmp expect actual && + + test_must_fail git rev-parse HEAD:b && + test_path_is_missing b + ) + +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6426-merge-skip-unneeded-updates/2b_L/.git/ +[master (root-commit) 105387b] O + Author: A U Thor + 1 file changed, 10 insertions(+) + create mode 100644 b +Switched to branch 'A' +[A fed518a] A + Author: A U Thor + 1 file changed, 2 insertions(+) + rename b => c (70%) +Switched to branch 'B' +[B dfd7e13] B + Author: A U Thor + 1 file changed, 1 insertion(+) +Note: switching to 'A^0'. + +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. + +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: + + git switch -c + +Or undo this operation with: + + git switch - + +Turn off this advice by setting config variable advice.detachedHead to false + +HEAD is now at fed518a A +fatal: path 'b' does not exist in 'HEAD' +HEAD:b +ok 5 - 2b-L: Rename+Mod(A)/Mod(B), B mods subset of A + +expecting success of 6426.6 '2b-R: Rename+Mod(A)/Mod(B), B mods subset of A': + test_setup_2b R && + ( + cd 2b_R && + + git checkout B^0 && + + test_path_is_missing c && + GIT_MERGE_VERBOSITY=3 git merge -s recursive A^0 >out 2>err && + + # Make sure c now present (and thus was updated) + test_path_is_file c && + + test_must_be_empty err && + + git ls-files -s >index_files && + test_line_count = 1 index_files && + + git rev-parse >actual HEAD:c && + git rev-parse >expect A:c && + test_cmp expect actual && + + git hash-object c >actual && + git rev-parse A:c >expect && + test_cmp expect actual && + + test_must_fail git rev-parse HEAD:b && + test_path_is_missing b + ) + +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6426-merge-skip-unneeded-updates/2b_R/.git/ +[master (root-commit) 105387b] O + Author: A U Thor + 1 file changed, 10 insertions(+) + create mode 100644 b +Switched to branch 'A' +[A fed518a] A + Author: A U Thor + 1 file changed, 2 insertions(+) + rename b => c (70%) +Switched to branch 'B' +[B dfd7e13] B + Author: A U Thor + 1 file changed, 1 insertion(+) +Note: switching to 'B^0'. + +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. + +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: + + git switch -c + +Or undo this operation with: + + git switch - + +Turn off this advice by setting config variable advice.detachedHead to false + +HEAD is now at dfd7e13 B +fatal: path 'b' does not exist in 'HEAD' +HEAD:b +ok 6 - 2b-R: Rename+Mod(A)/Mod(B), B mods subset of A + +expecting success of 6426.7 '2c: Modify b & add c VS rename b->c': + test_setup_2c && + ( + cd 2c && + + git checkout A^0 && + + test-tool chmtime --get -3600 c >old-mtime && + GIT_MERGE_VERBOSITY=3 && + export GIT_MERGE_VERBOSITY && + test_must_fail git merge -s recursive B^0 >out 2>err && + + test_i18ngrep "CONFLICT (.*/add):" out && + test_must_be_empty err && + + # Make sure c WAS updated + test-tool chmtime --get c >new-mtime && + test $(cat old-mtime) -lt $(cat new-mtime) + + # FIXME: rename/add conflicts are horribly broken right now; + # when I get back to my patch series fixing it and + # rename/rename(2to1) conflicts to bring them in line with + # how add/add conflicts behave, then checks like the below + # could be added. But that patch series is waiting until + # the rename-directory-detection series lands, which this + # is part of. And in the mean time, I do not want to further + # enforce broken behavior. So for now, the main test is the + # one above that err is an empty file. + + #git ls-files -s >index_files && + #test_line_count = 2 index_files && + + #git rev-parse >actual :2:c :3:c && + #git rev-parse >expect A:b A:c && + #test_cmp expect actual && + + #git cat-file -p A:b >>merged && + #git cat-file -p A:c >>merge-me && + #>empty && + #test_must_fail git merge-file \ + # -L "Temporary merge branch 1" \ + # -L "" \ + # -L "Temporary merge branch 2" \ + # merged empty merge-me && + #sed -e "s/^\([<=>]\)/\1\1\1/" merged >merged-internal && + + #git hash-object c >actual && + #git hash-object merged-internal >expect && + #test_cmp expect actual && + + #test_path_is_missing b + ) + +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6426-merge-skip-unneeded-updates/2c/.git/ +[master (root-commit) 105387b] O + Author: A U Thor + 1 file changed, 10 insertions(+) + create mode 100644 b +Switched to branch 'A' +[A edf631f] A + Author: A U Thor + 2 files changed, 2 insertions(+) + create mode 100644 c +Switched to branch 'B' +[B 6283fcf] B + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + rename b => c (100%) +Note: switching to 'A^0'. + +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. + +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: + + git switch -c + +Or undo this operation with: + + git switch - + +Turn off this advice by setting config variable advice.detachedHead to false + +HEAD is now at edf631f A +checking prerequisite: C_LOCALE_OUTPUT + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false + +) +prerequisite C_LOCALE_OUTPUT ok +CONFLICT (rename/add): Rename b->c in B^0. Added c in HEAD +ok 7 - 2c: Modify b & add c VS rename b->c + +expecting success of 6426.8 '3a-L: bq_1->foo/bq_2 on A, foo/->bar/ on B': + test_setup_3a L && + ( + cd 3a_L && + + git checkout A^0 && + + test_path_is_missing bar/bq && + GIT_MERGE_VERBOSITY=3 git -c merge.directoryRenames=true merge -s recursive B^0 >out 2>err && + + test_must_be_empty err && + + test_path_is_file bar/bq && + + git ls-files -s >index_files && + test_line_count = 2 index_files && + + git rev-parse >actual HEAD:bar/bq HEAD:bar/whatever && + git rev-parse >expect A:foo/bq A:foo/whatever && + test_cmp expect actual && + + git hash-object bar/bq bar/whatever >actual && + git rev-parse A:foo/bq A:foo/whatever >expect && + test_cmp expect actual && + + test_must_fail git rev-parse HEAD:bq HEAD:foo/bq && + test_path_is_missing bq foo/bq foo/whatever + ) + +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6426-merge-skip-unneeded-updates/3a_L/.git/ +[master (root-commit) 1e2aa57] O + Author: A U Thor + 2 files changed, 21 insertions(+) + create mode 100644 bq + create mode 100644 foo/whatever +Switched to branch 'A' +[A 5576138] A + Author: A U Thor + 1 file changed, 1 insertion(+) + rename bq => foo/bq (87%) +Switched to branch 'B' +[B 69c0854] B + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + rename {foo => bar}/whatever (100%) +Note: switching to 'A^0'. + +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. + +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: + + git switch -c + +Or undo this operation with: + + git switch - + +Turn off this advice by setting config variable advice.detachedHead to false + +HEAD is now at 5576138 A +fatal: path 'bq' does not exist in 'HEAD' +HEAD:bq +ok 8 - 3a-L: bq_1->foo/bq_2 on A, foo/->bar/ on B + +expecting success of 6426.9 '3a-R: bq_1->foo/bq_2 on A, foo/->bar/ on B': + test_setup_3a R && + ( + cd 3a_R && + + git checkout B^0 && + + test_path_is_missing bar/bq && + GIT_MERGE_VERBOSITY=3 git -c merge.directoryRenames=true merge -s recursive A^0 >out 2>err && + + test_must_be_empty err && + + test_path_is_file bar/bq && + + git ls-files -s >index_files && + test_line_count = 2 index_files && + + git rev-parse >actual HEAD:bar/bq HEAD:bar/whatever && + git rev-parse >expect A:foo/bq A:foo/whatever && + test_cmp expect actual && + + git hash-object bar/bq bar/whatever >actual && + git rev-parse A:foo/bq A:foo/whatever >expect && + test_cmp expect actual && + + test_must_fail git rev-parse HEAD:bq HEAD:foo/bq && + test_path_is_missing bq foo/bq foo/whatever + ) + +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6426-merge-skip-unneeded-updates/3a_R/.git/ +[master (root-commit) 1e2aa57] O + Author: A U Thor + 2 files changed, 21 insertions(+) + create mode 100644 bq + create mode 100644 foo/whatever +Switched to branch 'A' +[A 5576138] A + Author: A U Thor + 1 file changed, 1 insertion(+) + rename bq => foo/bq (87%) +Switched to branch 'B' +[B 69c0854] B + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + rename {foo => bar}/whatever (100%) +Note: switching to 'B^0'. + +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. + +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: + + git switch -c + +Or undo this operation with: + + git switch - + +Turn off this advice by setting config variable advice.detachedHead to false + +HEAD is now at 69c0854 B +fatal: path 'bq' does not exist in 'HEAD' +HEAD:bq +ok 9 - 3a-R: bq_1->foo/bq_2 on A, foo/->bar/ on B + +expecting success of 6426.10 '3b-L: bq_1->foo/bq_2 on A, foo/->bar/ on B': + test_setup_3b L && + ( + cd 3b_L && + + git checkout A^0 && + + test_path_is_missing bar/bq && + GIT_MERGE_VERBOSITY=3 git -c merge.directoryRenames=true merge -s recursive B^0 >out 2>err && + + test_must_be_empty err && + + test_path_is_file bar/bq && + + git ls-files -s >index_files && + test_line_count = 2 index_files && + + git rev-parse >actual HEAD:bar/bq HEAD:bar/whatever && + git rev-parse >expect B:bq A:foo/whatever && + test_cmp expect actual && + + git hash-object bar/bq bar/whatever >actual && + git rev-parse B:bq A:foo/whatever >expect && + test_cmp expect actual && + + test_must_fail git rev-parse HEAD:bq HEAD:foo/bq && + test_path_is_missing bq foo/bq foo/whatever + ) + +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6426-merge-skip-unneeded-updates/3b_L/.git/ +[master (root-commit) 1e2aa57] O + Author: A U Thor + 2 files changed, 21 insertions(+) + create mode 100644 bq + create mode 100644 foo/whatever +Switched to branch 'A' +[A d02b71c] A + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + rename bq => foo/bq (100%) +Switched to branch 'B' +[B 2f47892] B + Author: A U Thor + 2 files changed, 1 insertion(+) + rename {foo => bar}/whatever (100%) +Note: switching to 'A^0'. + +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. + +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: + + git switch -c + +Or undo this operation with: + + git switch - + +Turn off this advice by setting config variable advice.detachedHead to false + +HEAD is now at d02b71c A +fatal: path 'bq' does not exist in 'HEAD' +HEAD:bq +ok 10 - 3b-L: bq_1->foo/bq_2 on A, foo/->bar/ on B + +expecting success of 6426.11 '3b-R: bq_1->foo/bq_2 on A, foo/->bar/ on B': + test_setup_3b R && + ( + cd 3b_R && + + git checkout B^0 && + + test_path_is_missing bar/bq && + GIT_MERGE_VERBOSITY=3 git -c merge.directoryRenames=true merge -s recursive A^0 >out 2>err && + + test_must_be_empty err && + + test_path_is_file bar/bq && + + git ls-files -s >index_files && + test_line_count = 2 index_files && + + git rev-parse >actual HEAD:bar/bq HEAD:bar/whatever && + git rev-parse >expect B:bq A:foo/whatever && + test_cmp expect actual && + + git hash-object bar/bq bar/whatever >actual && + git rev-parse B:bq A:foo/whatever >expect && + test_cmp expect actual && + + test_must_fail git rev-parse HEAD:bq HEAD:foo/bq && + test_path_is_missing bq foo/bq foo/whatever + ) + +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6426-merge-skip-unneeded-updates/3b_R/.git/ +[master (root-commit) 1e2aa57] O + Author: A U Thor + 2 files changed, 21 insertions(+) + create mode 100644 bq + create mode 100644 foo/whatever +Switched to branch 'A' +[A d02b71c] A + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + rename bq => foo/bq (100%) +Switched to branch 'B' +[B 2f47892] B + Author: A U Thor + 2 files changed, 1 insertion(+) + rename {foo => bar}/whatever (100%) +Note: switching to 'B^0'. + +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. + +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: + + git switch -c + +Or undo this operation with: + + git switch - + +Turn off this advice by setting config variable advice.detachedHead to false + +HEAD is now at 2f47892 B +fatal: path 'bq' does not exist in 'HEAD' +HEAD:bq +ok 11 - 3b-R: bq_1->foo/bq_2 on A, foo/->bar/ on B + +checking known breakage of 6426.12 '4a: Change on A, change on B subset of A, dirty mods present': + test_setup_4a && + ( + cd 4a && + + git checkout A^0 && + echo "File rewritten" >b && + + test-tool chmtime --get -3600 b >old-mtime && + + GIT_MERGE_VERBOSITY=3 git merge -s recursive B^0 >out 2>err && + + test_must_be_empty err && + + # Make sure b was NOT updated + test-tool chmtime --get b >new-mtime && + test_cmp old-mtime new-mtime && + + git ls-files -s >index_files && + test_line_count = 1 index_files && + + git rev-parse >actual :0:b && + git rev-parse >expect A:b && + test_cmp expect actual && + + git hash-object b >actual && + echo "File rewritten" | git hash-object --stdin >expect && + test_cmp expect actual + ) + +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6426-merge-skip-unneeded-updates/4a/.git/ +[master (root-commit) 105387b] O + Author: A U Thor + 1 file changed, 10 insertions(+) + create mode 100644 b +Switched to branch 'A' +[A 14800cf] A + Author: A U Thor + 1 file changed, 2 insertions(+) +Switched to branch 'B' +[B dfd7e13] B + Author: A U Thor + 1 file changed, 1 insertion(+) +Note: switching to 'A^0'. + +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. + +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: + + git switch -c + +Or undo this operation with: + + git switch - + +Turn off this advice by setting config variable advice.detachedHead to false + +HEAD is now at 14800cf A +not ok 12 - 4a: Change on A, change on B subset of A, dirty mods present # TODO known breakage + +expecting success of 6426.13 '4b: Rename+Mod(A)/Mod(B), change on B subset of A, dirty mods present': + test_setup_4b && + ( + cd 4b && + + git checkout A^0 && + echo "File rewritten" >c && + + test-tool chmtime --get -3600 c >old-mtime && + + GIT_MERGE_VERBOSITY=3 git merge -s recursive B^0 >out 2>err && + + test_must_be_empty err && + + # Make sure c was NOT updated + test-tool chmtime --get c >new-mtime && + test_cmp old-mtime new-mtime && + + git ls-files -s >index_files && + test_line_count = 1 index_files && + + git rev-parse >actual :0:c && + git rev-parse >expect A:c && + test_cmp expect actual && + + git hash-object c >actual && + echo "File rewritten" | git hash-object --stdin >expect && + test_cmp expect actual && + + test_must_fail git rev-parse HEAD:b && + test_path_is_missing b + ) + +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6426-merge-skip-unneeded-updates/4b/.git/ +[master (root-commit) 105387b] O + Author: A U Thor + 1 file changed, 10 insertions(+) + create mode 100644 b +Switched to branch 'A' +[A fed518a] A + Author: A U Thor + 1 file changed, 2 insertions(+) + rename b => c (70%) +Switched to branch 'B' +[B dfd7e13] B + Author: A U Thor + 1 file changed, 1 insertion(+) +Note: switching to 'A^0'. + +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. + +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: + + git switch -c + +Or undo this operation with: + + git switch - + +Turn off this advice by setting config variable advice.detachedHead to false + +HEAD is now at fed518a A +fatal: path 'b' does not exist in 'HEAD' +HEAD:b +ok 13 - 4b: Rename+Mod(A)/Mod(B), change on B subset of A, dirty mods present + +# still have 1 known breakage(s) +# passed all remaining 12 test(s) +1..13 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t6422-merge-rename-corner-cases.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6422-merge-rename-corner-cases/.git/ expecting success of 6422.1 'Does git preserve Gollum's precious artifact?': @@ -316060,8 +317196,8 @@ ) prerequisite C_LOCALE_OUTPUT ok CONFLICT (rename/rename): Rename "three"->"four" in branch "HEAD" rename "three"->"two" in "B^0" ---- expect 2023-04-29 16:39:29.738302198 +0000 -+++ actual 2023-04-29 16:39:29.722303774 +0000 +--- expect 2023-04-29 18:27:18.889400247 +0000 ++++ actual 2023-04-29 18:27:18.861402895 +0000 @@ -1,6 +1,6 @@ -e33f5e94470d3b5fa0220ff6a9cabb78a3f72fa3 -36844330f94395aab951f05ada8e7e41980b44d0 @@ -316135,1798 +317271,14 @@ Switched to branch 'L' [L 174eed7] L Author: A U Thor - 2 files changed, 1 insertion(+) - rename one => three (100%) -Switched to branch 'R' -[R 70ee38b] R - Author: A U Thor - 2 files changed, 1 insertion(+) - rename two => three (100%) -Note: switching to 'L^0'. - -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. - -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: - - git switch -c - -Or undo this operation with: - - git switch - - -Turn off this advice by setting config variable advice.detachedHead to false - -HEAD is now at 174eed7 L -Merging: -174eed7 L -virtual R^0 -found 1 common ancestor: -e535363 initial -CONFLICT (rename/rename): Rename one->three in HEAD. Rename two->three in R^0 -Auto-merging three -Automatic merge failed; fix conflicts and then commit the result. -ok 20 - check simple rename/rename conflict - -expecting success of 6422.21 'check simple rename/add conflict': - test_setup_collision_conflict && - ( - cd simple_${sideL}_${sideR} && - - git checkout L^0 && - - # Merge must fail; there is a conflict - test_must_fail git merge -s recursive R^0 && - - # Make sure the index has the right number of entries - git ls-files -s >out && - test_line_count = 3 out && - git ls-files -u >out && - test_line_count = 2 out && - # Ensure we have the correct number of untracked files - git ls-files -o >out && - test_line_count = 1 out && - - # Nothing should have touched irrelevant_file - git rev-parse >actual \ - :0:irrelevant_file \ - :2:three \ - :3:three && - git rev-parse >expected \ - master:irrelevant_file \ - file_v2 \ - file_v4 && - test_cmp expected actual && - - # Make sure we have the correct merged contents for - # three - git show file_v1 >expected && - cat <<-\EOF >>expected && - <<<<<<< HEAD - modification - ======= - more stuff - yet more stuff - >>>>>>> R^0 - EOF - - test_cmp expected three - ) - -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6422-merge-rename-corner-cases/simple_rename_add/.git/ -Removing file_v1 -Removing file_v2 -Removing file_v3 -Removing file_v4 -[master (root-commit) 91a0f23] initial - Author: A U Thor - 2 files changed, 10 insertions(+) - create mode 100644 irrelevant_file - create mode 100644 one -Switched to branch 'L' -[L 1a5f997] L - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - rename one => three (100%) -Switched to branch 'R' -[R 321a394] R - Author: A U Thor - 2 files changed, 13 insertions(+) - create mode 100644 three -Note: switching to 'L^0'. - -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. - -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: - - git switch -c - -Or undo this operation with: - - git switch - - -Turn off this advice by setting config variable advice.detachedHead to false - -HEAD is now at 1a5f997 L -Merging: -1a5f997 L -virtual R^0 -found 1 common ancestor: -91a0f23 initial -CONFLICT (rename/add): Rename one->three in HEAD. Added three in R^0 -Auto-merging three -Automatic merge failed; fix conflicts and then commit the result. -ok 21 - check simple rename/add conflict - -expecting success of 6422.22 'check simple add/rename conflict': - test_setup_collision_conflict && - ( - cd simple_${sideL}_${sideR} && - - git checkout L^0 && - - # Merge must fail; there is a conflict - test_must_fail git merge -s recursive R^0 && - - # Make sure the index has the right number of entries - git ls-files -s >out && - test_line_count = 3 out && - git ls-files -u >out && - test_line_count = 2 out && - # Ensure we have the correct number of untracked files - git ls-files -o >out && - test_line_count = 1 out && - - # Nothing should have touched irrelevant_file - git rev-parse >actual \ - :0:irrelevant_file \ - :2:three \ - :3:three && - git rev-parse >expected \ - master:irrelevant_file \ - file_v2 \ - file_v4 && - test_cmp expected actual && - - # Make sure we have the correct merged contents for - # three - git show file_v1 >expected && - cat <<-\EOF >>expected && - <<<<<<< HEAD - modification - ======= - more stuff - yet more stuff - >>>>>>> R^0 - EOF - - test_cmp expected three - ) - -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6422-merge-rename-corner-cases/simple_add_rename/.git/ -Removing file_v1 -Removing file_v2 -Removing file_v3 -Removing file_v4 -[master (root-commit) c609738] initial - Author: A U Thor - 2 files changed, 11 insertions(+) - create mode 100644 irrelevant_file - create mode 100644 two -Switched to branch 'L' -[L 8455a46] L - Author: A U Thor - 2 files changed, 12 insertions(+) - create mode 100644 three -Switched to branch 'R' -[R 686dcd1] R - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - rename two => three (100%) -Note: switching to 'L^0'. - -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. - -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: - - git switch -c - -Or undo this operation with: - - git switch - - -Turn off this advice by setting config variable advice.detachedHead to false - -HEAD is now at 8455a46 L -Merging: -8455a46 L -virtual R^0 -found 1 common ancestor: -c609738 initial -CONFLICT (rename/add): Rename two->three in R^0. Added three in HEAD -Auto-merging three -Automatic merge failed; fix conflicts and then commit the result. -ok 22 - check simple add/rename conflict - -expecting success of 6422.23 'check simple add/add conflict': - test_setup_collision_conflict && - ( - cd simple_${sideL}_${sideR} && - - git checkout L^0 && - - # Merge must fail; there is a conflict - test_must_fail git merge -s recursive R^0 && - - # Make sure the index has the right number of entries - git ls-files -s >out && - test_line_count = 3 out && - git ls-files -u >out && - test_line_count = 2 out && - # Ensure we have the correct number of untracked files - git ls-files -o >out && - test_line_count = 1 out && - - # Nothing should have touched irrelevant_file - git rev-parse >actual \ - :0:irrelevant_file \ - :2:three \ - :3:three && - git rev-parse >expected \ - master:irrelevant_file \ - file_v2 \ - file_v4 && - test_cmp expected actual && - - # Make sure we have the correct merged contents for - # three - git show file_v1 >expected && - cat <<-\EOF >>expected && - <<<<<<< HEAD - modification - ======= - more stuff - yet more stuff - >>>>>>> R^0 - EOF - - test_cmp expected three - ) - -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6422-merge-rename-corner-cases/simple_add_add/.git/ -Removing file_v1 -Removing file_v2 -Removing file_v3 -Removing file_v4 -[master (root-commit) 8052021] initial - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - create mode 100644 irrelevant_file -Switched to branch 'L' -[L 0706354] L - Author: A U Thor - 1 file changed, 11 insertions(+) - create mode 100644 three -Switched to branch 'R' -[R 42323fa] R - Author: A U Thor - 1 file changed, 12 insertions(+) - create mode 100644 three -Note: switching to 'L^0'. - -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. - -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: - - git switch -c - -Or undo this operation with: - - git switch - - -Turn off this advice by setting config variable advice.detachedHead to false - -HEAD is now at 0706354 L -Merging: -0706354 L -virtual R^0 -found 1 common ancestor: -8052021 initial -CONFLICT (add/add): Merge conflict in three -Auto-merging three -Automatic merge failed; fix conflicts and then commit the result. -ok 23 - check simple add/add conflict - -expecting success of 6422.24 'check nested conflicts from rename/rename(2to1)': - test_setup_nested_conflicts_from_rename_rename && - ( - cd nested_conflicts_from_rename_rename && - - git checkout L^0 && - - # Merge must fail; there is a conflict - test_must_fail git merge -s recursive R^0 && - - # Make sure the index has the right number of entries - git ls-files -s >out && - test_line_count = 2 out && - git ls-files -u >out && - test_line_count = 2 out && - # Ensure we have the correct number of untracked files - git ls-files -o >out && - test_line_count = 1 out && - - # Compare :2:three to expected values - git cat-file -p master:one >base && - git cat-file -p L:three >ours && - git cat-file -p R:one >theirs && - test_must_fail git merge-file \ - -L "HEAD:three" -L "" -L "R^0:one" \ - ours base theirs && - sed -e "s/^\([<=>]\)/\1\1/" ours >L-three && - git cat-file -p :2:three >expect && - test_cmp expect L-three && - - # Compare :2:three to expected values - git cat-file -p master:two >base && - git cat-file -p L:two >ours && - git cat-file -p R:three >theirs && - test_must_fail git merge-file \ - -L "HEAD:two" -L "" -L "R^0:three" \ - ours base theirs && - sed -e "s/^\([<=>]\)/\1\1/" ours >R-three && - git cat-file -p :3:three >expect && - test_cmp expect R-three && - - # Compare three to expected contents - >empty && - test_must_fail git merge-file \ - -L "HEAD" -L "" -L "R^0" \ - L-three empty R-three && - test_cmp three L-three - ) - -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6422-merge-rename-corner-cases/nested_conflicts_from_rename_rename/.git/ -[master (root-commit) 8e30406] english - Author: A U Thor - 2 files changed, 22 insertions(+) - create mode 100644 one - create mode 100644 two -Switched to branch 'L' -rm 'one' -rm 'two' -[L f3d294e] spanish - Author: A U Thor - 2 files changed, 2 insertions(+), 2 deletions(-) - rename one => three (98%) -Switched to branch 'R' -rm 'one' -rm 'two' -[R 413cf6f] german - Author: A U Thor - 2 files changed, 2 insertions(+), 2 deletions(-) - rename two => three (98%) -Note: switching to 'L^0'. - -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. - -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: - - git switch -c - -Or undo this operation with: - - git switch - - -Turn off this advice by setting config variable advice.detachedHead to false - -HEAD is now at f3d294e spanish -Merging: -f3d294e spanish -virtual R^0 -found 1 common ancestor: -8e30406 english -CONFLICT (rename/rename): Rename one->three in HEAD. Rename two->three in R^0 -Auto-merging version of three from one -Auto-merging version of three from two -Auto-merging three -Automatic merge failed; fix conflicts and then commit the result. -ok 24 - check nested conflicts from rename/rename(2to1) - -expecting success of 6422.25 'rename/rename(1to2) with a binary file': - test_setup_rename_rename_1_to_2_binary && - ( - cd rename_rename_1_to_2_binary && - - git checkout A^0 && - - test_must_fail git merge -s recursive B^0 && - - # Make sure the index has the right number of entries - git ls-files -s >actual && - test_line_count = 4 actual && - - git rev-parse A:orig-A B:orig-B >expect && - git hash-object orig-A orig-B >actual && - test_cmp expect actual - ) - -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6422-merge-rename-corner-cases/rename_rename_1_to_2_binary/.git/ -[master (root-commit) 2af6002] orig - Author: A U Thor - 2 files changed, 0 insertions(+), 0 deletions(-) - create mode 100644 .gitattributes - create mode 100644 orig -Switched to branch 'A' -[A 7acac62] orig-A - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - rename orig => orig-A (87%) -Switched to branch 'B' -[B b674041] orig-B - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - rename orig => orig-B (91%) -Note: switching to 'A^0'. - -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. - -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: - - git switch -c - -Or undo this operation with: - - git switch - - -Turn off this advice by setting config variable advice.detachedHead to false - -HEAD is now at 7acac62 orig-A -warning: Cannot merge binary files: orig-A (HEAD:orig-A vs. B^0:orig-B) -Merging: -7acac62 orig-A -virtual B^0 -found 1 common ancestor: -2af6002 orig -CONFLICT (rename/rename): Rename "orig"->"orig-A" in branch "HEAD" rename "orig"->"orig-B" in "B^0" -Auto-merging orig-A and orig-B, both renamed from orig -Automatic merge failed; fix conflicts and then commit the result. -ok 25 - rename/rename(1to2) with a binary file - -# still have 10 known breakage(s) -# passed all remaining 15 test(s) -1..25 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t6424-merge-unrelated-index-changes.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6424-merge-unrelated-index-changes/.git/ -expecting success of 6424.1 'setup trivial merges': - test_seq 1 10 >a && - git add a && - test_tick && git commit -m A && - - git branch A && - git branch B && - git branch C && - git branch D && - git branch E && - git branch F && - - git checkout B && - echo b >b && - echo 11 >>a && - git add a b && - test_tick && git commit -m B && - - git checkout C && - echo c >c && - git add c && - test_tick && git commit -m C && - - git checkout D && - test_seq 2 10 >a && - echo d >d && - git add a d && - test_tick && git commit -m D && - - git checkout E && - mkdir subdir && - git mv a subdir/a && - echo e >subdir/e && - git add subdir && - test_tick && git commit -m E && - - git checkout F && - test_tick && git commit --allow-empty -m F - -[master (root-commit) 87af29c] A - Author: A U Thor - 1 file changed, 10 insertions(+) - create mode 100644 a -Switched to branch 'B' -[B ed5d5a6] B - Author: A U Thor - 2 files changed, 2 insertions(+) - create mode 100644 b -Switched to branch 'C' -[C 4fa59ce] C - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 c -Switched to branch 'D' -[D c3c5299] D - Author: A U Thor - 2 files changed, 1 insertion(+), 1 deletion(-) - create mode 100644 d -Switched to branch 'E' -[E b615563] E - Author: A U Thor - 2 files changed, 1 insertion(+) - rename a => subdir/a (100%) - create mode 100644 subdir/e -Switched to branch 'F' -[F 83c2e21] F - Author: A U Thor -ok 1 - setup trivial merges - -expecting success of 6424.2 'ff update': - git reset --hard && - git checkout A^0 && - - touch random_file && git add random_file && - - git merge E^0 && - - test_must_fail git rev-parse HEAD:random_file && - test "$(git diff --name-only --cached E)" = "random_file" - -HEAD is now at 83c2e21 F -Note: switching to 'A^0'. - -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. - -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: - - git switch -c - -Or undo this operation with: - - git switch - - -Turn off this advice by setting config variable advice.detachedHead to false - -HEAD is now at 87af29c A -Updating 87af29c..b615563 -Fast-forward - a => subdir/a | 0 - subdir/e | 1 + - 2 files changed, 1 insertion(+) - rename a => subdir/a (100%) - create mode 100644 subdir/e -fatal: path 'random_file' exists on disk, but not in 'HEAD' -HEAD:random_file -ok 2 - ff update - -expecting success of 6424.3 'ff update, important file modified': - git reset --hard && - git checkout A^0 && - - mkdir subdir && - touch subdir/e && - git add subdir/e && - - test_must_fail git merge E^0 && - test_path_is_missing .git/MERGE_HEAD - -HEAD is now at b615563 E -Previous HEAD position was b615563 E -HEAD is now at 87af29c A -error: Your local changes to the following files would be overwritten by merge: - subdir/e -Please commit your changes or stash them before you merge. -Aborting -Updating 87af29c..b615563 -ok 3 - ff update, important file modified - -expecting success of 6424.4 'resolve, trivial': - git reset --hard && - git checkout B^0 && - - touch random_file && git add random_file && - - test_must_fail git merge -s resolve C^0 && - test_path_is_missing .git/MERGE_HEAD - -HEAD is now at 87af29c A -Previous HEAD position was 87af29c A -HEAD is now at ed5d5a6 B -error: Entry 'random_file' would be overwritten by merge. Cannot merge. -Trying really trivial in-index merge... -Nope. -error: Entry 'random_file' would be overwritten by merge. Cannot merge. -Merge with strategy resolve failed. -ok 4 - resolve, trivial - -expecting success of 6424.5 'resolve, non-trivial': - git reset --hard && - git checkout B^0 && - - touch random_file && git add random_file && - - test_must_fail git merge -s resolve D^0 && - test_path_is_missing .git/MERGE_HEAD - -HEAD is now at ed5d5a6 B -HEAD is now at ed5d5a6 B -error: Entry 'random_file' would be overwritten by merge. Cannot merge. -Trying really trivial in-index merge... -Nope. -error: Entry 'random_file' would be overwritten by merge. Cannot merge. -Merge with strategy resolve failed. -ok 5 - resolve, non-trivial - -expecting success of 6424.6 'recursive': - git reset --hard && - git checkout B^0 && - - touch random_file && git add random_file && - - test_must_fail git merge -s recursive C^0 && - test_path_is_missing .git/MERGE_HEAD - -HEAD is now at ed5d5a6 B -HEAD is now at ed5d5a6 B -error: Your local changes to the following files would be overwritten by merge: - random_file -ok 6 - recursive - -expecting success of 6424.7 'recursive, when merge branch matches merge base': - git reset --hard && - git checkout B^0 && - - touch random_file && git add random_file && - - test_must_fail git merge -s recursive F^0 && - test_path_is_missing .git/MERGE_HEAD - -HEAD is now at ed5d5a6 B -HEAD is now at ed5d5a6 B -error: Your local changes to the following files would be overwritten by merge: - random_file -ok 7 - recursive, when merge branch matches merge base - -expecting success of 6424.8 'merge-recursive, when index==head but head!=HEAD': - git reset --hard && - git checkout C^0 && - - # Make index match B - git diff C B -- | git apply --cached && - # Merge B & F, with B as "head" - git merge-recursive A -- B F > out && - test_i18ngrep "Already up to date" out - -HEAD is now at ed5d5a6 B -Previous HEAD position was ed5d5a6 B -HEAD is now at 4fa59ce C -checking prerequisite: C_LOCALE_OUTPUT - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false - -) -prerequisite C_LOCALE_OUTPUT ok -Already up to date! -ok 8 - merge-recursive, when index==head but head!=HEAD - -expecting success of 6424.9 'recursive, when file has staged changes not matching HEAD nor what a merge would give': - git reset --hard && - git checkout B^0 && - - mkdir subdir && - test_seq 1 10 >subdir/a && - git add subdir/a && - - # We have staged changes; merge should error out - test_must_fail git merge -s recursive E^0 2>err && - test_i18ngrep "changes to the following files would be overwritten" err - -HEAD is now at 4fa59ce C -Previous HEAD position was 4fa59ce C -HEAD is now at ed5d5a6 B -error: Your local changes to the following files would be overwritten by merge: -ok 9 - recursive, when file has staged changes not matching HEAD nor what a merge would give - -expecting success of 6424.10 'recursive, when file has staged changes matching what a merge would give': - git reset --hard && - git checkout B^0 && - - mkdir subdir && - test_seq 1 11 >subdir/a && - git add subdir/a && - - # We have staged changes; merge should error out - test_must_fail git merge -s recursive E^0 2>err && - test_i18ngrep "changes to the following files would be overwritten" err - -HEAD is now at ed5d5a6 B -HEAD is now at ed5d5a6 B -error: Your local changes to the following files would be overwritten by merge: -ok 10 - recursive, when file has staged changes matching what a merge would give - -expecting success of 6424.11 'octopus, unrelated file touched': - git reset --hard && - git checkout B^0 && - - touch random_file && git add random_file && - - test_must_fail git merge C^0 D^0 && - test_path_is_missing .git/MERGE_HEAD - -HEAD is now at ed5d5a6 B -HEAD is now at ed5d5a6 B -Error: Your local changes to the following files would be overwritten by merge - random_file -Merge with strategy octopus failed. -ok 11 - octopus, unrelated file touched - -expecting success of 6424.12 'octopus, related file removed': - git reset --hard && - git checkout B^0 && - - git rm b && - - test_must_fail git merge C^0 D^0 && - test_path_is_missing .git/MERGE_HEAD - -HEAD is now at ed5d5a6 B -HEAD is now at ed5d5a6 B -rm 'b' -Error: Your local changes to the following files would be overwritten by merge - b -Merge with strategy octopus failed. -ok 12 - octopus, related file removed - -expecting success of 6424.13 'octopus, related file modified': - git reset --hard && - git checkout B^0 && - - echo 12 >>a && git add a && - - test_must_fail git merge C^0 D^0 && - test_path_is_missing .git/MERGE_HEAD - -HEAD is now at ed5d5a6 B -HEAD is now at ed5d5a6 B -Error: Your local changes to the following files would be overwritten by merge - a -Merge with strategy octopus failed. -ok 13 - octopus, related file modified - -expecting success of 6424.14 'ours': - git reset --hard && - git checkout B^0 && - - touch random_file && git add random_file && - - test_must_fail git merge -s ours C^0 && - test_path_is_missing .git/MERGE_HEAD - -HEAD is now at ed5d5a6 B -HEAD is now at ed5d5a6 B -Merge with strategy ours failed. -ok 14 - ours - -expecting success of 6424.15 'subtree': - git reset --hard && - git checkout B^0 && - - touch random_file && git add random_file && - - test_must_fail git merge -s subtree E^0 && - test_path_is_missing .git/MERGE_HEAD - -HEAD is now at ed5d5a6 B -HEAD is now at ed5d5a6 B -error: Your local changes to the following files would be overwritten by merge: - random_file -ok 15 - subtree - -# passed all 15 test(s) -1..15 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t6425-merge-rename-delete.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6425-merge-rename-delete/.git/ -expecting success of 6425.1 'rename/delete': - echo foo >A && - git add A && - git commit -m "initial" && - - git checkout -b rename && - git mv A B && - git commit -m "rename" && - - git checkout master && - git rm A && - git commit -m "delete" && - - test_must_fail git merge --strategy=recursive rename >output && - test_i18ngrep "CONFLICT (rename/delete): A.* renamed .*to B.* in rename" output && - test_i18ngrep "CONFLICT (rename/delete): A.*deleted in HEAD." output - -[master (root-commit) 6604e52] initial - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 A -Switched to a new branch 'rename' -[rename f088787] rename - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - rename A => B (100%) -Switched to branch 'master' -rm 'A' -[master b4eee36] delete - Author: A U Thor - 1 file changed, 1 deletion(-) - delete mode 100644 A -checking prerequisite: C_LOCALE_OUTPUT - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false - -) -prerequisite C_LOCALE_OUTPUT ok -CONFLICT (rename/delete): A deleted in HEAD and renamed to B in rename. Version rename of B left in tree. -CONFLICT (rename/delete): A deleted in HEAD and renamed to B in rename. Version rename of B left in tree. -ok 1 - rename/delete - -# passed all 1 test(s) -1..1 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t6427-diff3-conflict-markers.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6427-diff3-conflict-markers/.git/ -expecting success of 6427.1 'setup no merge base': - test_create_repo no_merge_base && - ( - cd no_merge_base && - - git checkout -b L && - test_commit A content A && - - git checkout --orphan R && - test_commit B content B - ) - -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6427-diff3-conflict-markers/no_merge_base/.git/ -Switched to a new branch 'L' -[L (root-commit) ccbdd10] A - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 content -Switched to a new branch 'R' -[R (root-commit) 8e39672] B - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 content -ok 1 - setup no merge base - -expecting success of 6427.2 'check no merge base': - ( - cd no_merge_base && - - git checkout L^0 && - - test_must_fail git -c merge.conflictstyle=diff3 merge --allow-unrelated-histories -s recursive R^0 && - - grep "|||||| empty tree" content - ) - -Note: switching to 'L^0'. - -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. - -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: - - git switch -c - -Or undo this operation with: - - git switch - - -Turn off this advice by setting config variable advice.detachedHead to false - -HEAD is now at ccbdd10 A -Merging: -ccbdd10 A -virtual R^0 -found 0 common ancestors: -CONFLICT (add/add): Merge conflict in content -Auto-merging content -Automatic merge failed; fix conflicts and then commit the result. -||||||| empty tree -ok 2 - check no merge base - -expecting success of 6427.3 'setup unique merge base': - test_create_repo unique_merge_base && - ( - cd unique_merge_base && - - test_commit base content "1 -2 -3 -4 -5 -" && - - git branch L && - git branch R && - - git checkout L && - test_commit L content "1 -2 -3 -4 -5 -7" && - - git checkout R && - git rm content && - test_commit R renamed "1 -2 -3 -4 -5 -six" - ) - -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6427-diff3-conflict-markers/unique_merge_base/.git/ -[master (root-commit) 8b7da6e] base - Author: A U Thor - 1 file changed, 6 insertions(+) - create mode 100644 content -Switched to branch 'L' -[L e1c672f] L - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -Switched to branch 'R' -rm 'content' -[R 17f77e6] R - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) - rename content => renamed (71%) -ok 3 - setup unique merge base - -expecting success of 6427.4 'check unique merge base': - ( - cd unique_merge_base && - - git checkout L^0 && - MASTER=$(git rev-parse --short master) && - - test_must_fail git -c merge.conflictstyle=diff3 merge -s recursive R^0 && - - grep "|||||| $MASTER:content" renamed - ) - -warning: refname 'L' is ambiguous. -warning: refname 'L' is ambiguous. -Note: switching to 'L^0'. - -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. - -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: - - git switch -c - -Or undo this operation with: - - git switch - - -Turn off this advice by setting config variable advice.detachedHead to false - -HEAD is now at e1c672f L -warning: refname 'R' is ambiguous. -warning: refname 'R' is ambiguous. -Merging: -e1c672f L -virtual R^0 -found 1 common ancestor: -8b7da6e base -Auto-merging renamed -CONFLICT (content): Merge conflict in renamed -Automatic merge failed; fix conflicts and then commit the result. -||||||| 8b7da6e:content -ok 4 - check unique merge base - -expecting success of 6427.5 'setup multiple merge bases': - test_create_repo multiple_merge_bases && - ( - cd multiple_merge_bases && - - test_commit initial content "1 -2 -3 -4 -5" && - - git branch L && - git branch R && - - # Create L1 - git checkout L && - test_commit L1 content "0 -1 -2 -3 -4 -5" && - - # Create R1 - git checkout R && - test_commit R1 content "1 -2 -3 -4 -5 -6" && - - # Create L2 - git checkout L && - git merge R1 && - - # Create R2 - git checkout R && - git merge L1 && - - # Create L3 - git checkout L && - test_commit L3 content "0 -1 -2 -3 -4 -5 -A" && - - # Create R3 - git checkout R && - git rm content && - test_commit R3 renamed "0 -2 -3 -4 -5 -six" - ) - -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6427-diff3-conflict-markers/multiple_merge_bases/.git/ -[master (root-commit) 79a87bb] initial - Author: A U Thor - 1 file changed, 5 insertions(+) - create mode 100644 content -Switched to branch 'L' -[L 2e587ed] L1 - Author: A U Thor - 1 file changed, 1 insertion(+) -Switched to branch 'R' -[R 6e9e69f] R1 - Author: A U Thor - 1 file changed, 1 insertion(+) -Switched to branch 'L' -Merging: -2e587ed L1 -virtual R1 -found 1 common ancestor: -79a87bb initial -Auto-merging content -Merge made by the 'recursive' strategy. - content | 1 + - 1 file changed, 1 insertion(+) -Switched to branch 'R' -Merging: -6e9e69f R1 -virtual L1 -found 1 common ancestor: -79a87bb initial -Auto-merging content -Merge made by the 'recursive' strategy. - content | 1 + - 1 file changed, 1 insertion(+) -Switched to branch 'L' -[L 614f030] L3 - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -Switched to branch 'R' -rm 'content' -[R 8a53b94] R3 - Author: A U Thor - 1 file changed, 1 insertion(+), 2 deletions(-) - rename content => renamed (71%) -ok 5 - setup multiple merge bases - -expecting success of 6427.6 'check multiple merge bases': - ( - cd multiple_merge_bases && - - git checkout L^0 && - - test_must_fail git -c merge.conflictstyle=diff3 merge -s recursive R^0 && - - grep "|||||| merged common ancestors:content" renamed - ) - -Note: switching to 'L^0'. - -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. - -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: - - git switch -c - -Or undo this operation with: - - git switch - - -Turn off this advice by setting config variable advice.detachedHead to false - -HEAD is now at 614f030 L3 -Merging: -614f030 L3 -virtual R^0 -found 2 common ancestors: -2e587ed L1 -6e9e69f R1 - Merging: - 2e587ed L1 - 6e9e69f R1 - found 1 common ancestor: - 79a87bb initial - Auto-merging content -Auto-merging renamed -CONFLICT (content): Merge conflict in renamed -Automatic merge failed; fix conflicts and then commit the result. -||||||| merged common ancestors:content -ok 6 - check multiple merge bases - -expecting success of 6427.7 'rebase --merge describes parent of commit being picked': - test_create_repo rebase && - ( - cd rebase && - test_commit base file && - test_commit master file && - git checkout -b side HEAD^ && - test_commit side file && - test_must_fail git -c merge.conflictstyle=diff3 rebase --merge master && - grep "||||||| parent of" file - ) - -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6427-diff3-conflict-markers/rebase/.git/ -[master (root-commit) 215235d] base - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -[master 4aa9770] master - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -Switched to a new branch 'side' -[side 748f431] side - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -warning: refname 'master' is ambiguous. -warning: refname 'master' is ambiguous. -Rebasing (1/1) error: could not apply 748f431... side -Resolve all conflicts manually, mark them as resolved with -"git add/rm ", then run "git rebase --continue". -You can instead skip this commit: run "git rebase --skip". -To abort and get back to the state before "git rebase", run "git rebase --abort". -Could not apply 748f431... side -Auto-merging file -CONFLICT (content): Merge conflict in file -||||||| parent of 748f431 (side) -ok 7 - rebase --merge describes parent of commit being picked - -expecting success of 6427.8 'rebase --apply describes fake ancestor base': - ( - cd rebase && - git rebase --abort && - test_must_fail git -c merge.conflictstyle=diff3 rebase --apply master && - grep "||||||| constructed merge base" file - ) - -warning: refname 'master' is ambiguous. -warning: refname 'master' is ambiguous. -First, rewinding head to replay your work on top of it... -Applying: side -Using index info to reconstruct a base tree... -M file -Falling back to patching base and 3-way merge... -Merging: -4aa9770 master -virtual side -found 1 common ancestor: -virtual 6d5f482d15035cdd7733b1b551d1fead28d22592 -Auto-merging file -CONFLICT (content): Merge conflict in file -error: Failed to merge in the changes. -hint: Use 'git am --show-current-patch=diff' to see the failed patch -Patch failed at 0001 side -Resolve all conflicts manually, mark them as resolved with -"git add/rm ", then run "git rebase --continue". -You can instead skip this commit: run "git rebase --skip". -To abort and get back to the state before "git rebase", run "git rebase --abort". -||||||| constructed merge base -ok 8 - rebase --apply describes fake ancestor base - -# passed all 8 test(s) -1..8 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t6426-merge-skip-unneeded-updates.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6426-merge-skip-unneeded-updates/.git/ -expecting success of 6426.1 '1a-L: Modify(A)/Modify(B), change on B subset of A': - test_setup_1a L && - ( - cd 1a_L && - - git checkout A^0 && - - test-tool chmtime --get -3600 b >old-mtime && - - GIT_MERGE_VERBOSITY=3 git merge -s recursive B^0 >out 2>err && - - test_must_be_empty err && - - # Make sure b was NOT updated - test-tool chmtime --get b >new-mtime && - test_cmp old-mtime new-mtime && - - git ls-files -s >index_files && - test_line_count = 1 index_files && - - git rev-parse >actual HEAD:b && - git rev-parse >expect A:b && - test_cmp expect actual && - - git hash-object b >actual && - git rev-parse A:b >expect && - test_cmp expect actual - ) - -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6426-merge-skip-unneeded-updates/1a_L/.git/ -[master (root-commit) 105387b] O - Author: A U Thor - 1 file changed, 10 insertions(+) - create mode 100644 b -Switched to branch 'A' -[A 14800cf] A - Author: A U Thor - 1 file changed, 2 insertions(+) -Switched to branch 'B' -[B dfd7e13] B - Author: A U Thor - 1 file changed, 1 insertion(+) -Note: switching to 'A^0'. - -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. - -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: - - git switch -c - -Or undo this operation with: - - git switch - - -Turn off this advice by setting config variable advice.detachedHead to false - -HEAD is now at 14800cf A -ok 1 - 1a-L: Modify(A)/Modify(B), change on B subset of A - -expecting success of 6426.2 '1a-R: Modify(A)/Modify(B), change on B subset of A': - test_setup_1a R && - ( - cd 1a_R && - - git checkout B^0 && - - test-tool chmtime --get -3600 b >old-mtime && - GIT_MERGE_VERBOSITY=3 git merge -s recursive A^0 >out 2>err && - - # Make sure b WAS updated - test-tool chmtime --get b >new-mtime && - test $(cat old-mtime) -lt $(cat new-mtime) && - - test_must_be_empty err && - - git ls-files -s >index_files && - test_line_count = 1 index_files && - - git rev-parse >actual HEAD:b && - git rev-parse >expect A:b && - test_cmp expect actual && - - git hash-object b >actual && - git rev-parse A:b >expect && - test_cmp expect actual - ) - -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6426-merge-skip-unneeded-updates/1a_R/.git/ -[master (root-commit) 105387b] O - Author: A U Thor - 1 file changed, 10 insertions(+) - create mode 100644 b -Switched to branch 'A' -[A 14800cf] A - Author: A U Thor - 1 file changed, 2 insertions(+) -Switched to branch 'B' -[B dfd7e13] B - Author: A U Thor - 1 file changed, 1 insertion(+) -Note: switching to 'B^0'. - -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. - -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: - - git switch -c - -Or undo this operation with: - - git switch - - -Turn off this advice by setting config variable advice.detachedHead to false - -HEAD is now at dfd7e13 B -ok 2 - 1a-R: Modify(A)/Modify(B), change on B subset of A - -expecting success of 6426.3 '2a-L: Modify/rename, merge into modify side': - test_setup_2a L && - ( - cd 2a_L && - - git checkout A^0 && - - test_path_is_missing c && - GIT_MERGE_VERBOSITY=3 git merge -s recursive B^0 >out 2>err && - - test_path_is_file c && - - git ls-files -s >index_files && - test_line_count = 1 index_files && - - git rev-parse >actual HEAD:c && - git rev-parse >expect A:b && - test_cmp expect actual && - - git hash-object c >actual && - git rev-parse A:b >expect && - test_cmp expect actual && - - test_must_fail git rev-parse HEAD:b && - test_path_is_missing b - ) - -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6426-merge-skip-unneeded-updates/2a_L/.git/ -[master (root-commit) 105387b] O - Author: A U Thor - 1 file changed, 10 insertions(+) - create mode 100644 b -Switched to branch 'A' -[A c2d59c7] A - Author: A U Thor - 1 file changed, 1 insertion(+) -Switched to branch 'B' -[B 6283fcf] B - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - rename b => c (100%) -Note: switching to 'A^0'. - -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. - -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: - - git switch -c - -Or undo this operation with: - - git switch - - -Turn off this advice by setting config variable advice.detachedHead to false - -HEAD is now at c2d59c7 A -fatal: path 'b' does not exist in 'HEAD' -HEAD:b -ok 3 - 2a-L: Modify/rename, merge into modify side - -expecting success of 6426.4 '2a-R: Modify/rename, merge into rename side': - test_setup_2a R && - ( - cd 2a_R && - - git checkout B^0 && - - test-tool chmtime --get -3600 c >old-mtime && - GIT_MERGE_VERBOSITY=3 git merge -s recursive A^0 >out 2>err && - - # Make sure c WAS updated - test-tool chmtime --get c >new-mtime && - test $(cat old-mtime) -lt $(cat new-mtime) && - - test_must_be_empty err && - - git ls-files -s >index_files && - test_line_count = 1 index_files && - - git rev-parse >actual HEAD:c && - git rev-parse >expect A:b && - test_cmp expect actual && - - git hash-object c >actual && - git rev-parse A:b >expect && - test_cmp expect actual && - - test_must_fail git rev-parse HEAD:b && - test_path_is_missing b - ) - -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6426-merge-skip-unneeded-updates/2a_R/.git/ -[master (root-commit) 105387b] O - Author: A U Thor - 1 file changed, 10 insertions(+) - create mode 100644 b -Switched to branch 'A' -[A c2d59c7] A - Author: A U Thor - 1 file changed, 1 insertion(+) -Switched to branch 'B' -[B 6283fcf] B - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - rename b => c (100%) -Note: switching to 'B^0'. - -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. - -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: - - git switch -c - -Or undo this operation with: - - git switch - - -Turn off this advice by setting config variable advice.detachedHead to false - -HEAD is now at 6283fcf B -fatal: path 'b' does not exist in 'HEAD' -HEAD:b -ok 4 - 2a-R: Modify/rename, merge into rename side - -expecting success of 6426.5 '2b-L: Rename+Mod(A)/Mod(B), B mods subset of A': - test_setup_2b L && - ( - cd 2b_L && - - git checkout A^0 && - - test-tool chmtime --get -3600 c >old-mtime && - GIT_MERGE_VERBOSITY=3 git merge -s recursive B^0 >out 2>err && - - test_must_be_empty err && - - # Make sure c WAS updated - test-tool chmtime --get c >new-mtime && - test_cmp old-mtime new-mtime && - - git ls-files -s >index_files && - test_line_count = 1 index_files && - - git rev-parse >actual HEAD:c && - git rev-parse >expect A:c && - test_cmp expect actual && - - git hash-object c >actual && - git rev-parse A:c >expect && - test_cmp expect actual && - - test_must_fail git rev-parse HEAD:b && - test_path_is_missing b - ) - -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6426-merge-skip-unneeded-updates/2b_L/.git/ -[master (root-commit) 105387b] O - Author: A U Thor - 1 file changed, 10 insertions(+) - create mode 100644 b -Switched to branch 'A' -[A fed518a] A - Author: A U Thor - 1 file changed, 2 insertions(+) - rename b => c (70%) -Switched to branch 'B' -[B dfd7e13] B - Author: A U Thor - 1 file changed, 1 insertion(+) -Note: switching to 'A^0'. - -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. - -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: - - git switch -c - -Or undo this operation with: - - git switch - - -Turn off this advice by setting config variable advice.detachedHead to false - -HEAD is now at fed518a A -fatal: path 'b' does not exist in 'HEAD' -HEAD:b -ok 5 - 2b-L: Rename+Mod(A)/Mod(B), B mods subset of A - -expecting success of 6426.6 '2b-R: Rename+Mod(A)/Mod(B), B mods subset of A': - test_setup_2b R && - ( - cd 2b_R && - - git checkout B^0 && - - test_path_is_missing c && - GIT_MERGE_VERBOSITY=3 git merge -s recursive A^0 >out 2>err && - - # Make sure c now present (and thus was updated) - test_path_is_file c && - - test_must_be_empty err && - - git ls-files -s >index_files && - test_line_count = 1 index_files && - - git rev-parse >actual HEAD:c && - git rev-parse >expect A:c && - test_cmp expect actual && - - git hash-object c >actual && - git rev-parse A:c >expect && - test_cmp expect actual && - - test_must_fail git rev-parse HEAD:b && - test_path_is_missing b - ) - -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6426-merge-skip-unneeded-updates/2b_R/.git/ -[master (root-commit) 105387b] O - Author: A U Thor - 1 file changed, 10 insertions(+) - create mode 100644 b -Switched to branch 'A' -[A fed518a] A - Author: A U Thor - 1 file changed, 2 insertions(+) - rename b => c (70%) -Switched to branch 'B' -[B dfd7e13] B - Author: A U Thor - 1 file changed, 1 insertion(+) -Note: switching to 'B^0'. - -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. - -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: - - git switch -c - -Or undo this operation with: - - git switch - - -Turn off this advice by setting config variable advice.detachedHead to false - -HEAD is now at dfd7e13 B -fatal: path 'b' does not exist in 'HEAD' -HEAD:b -ok 6 - 2b-R: Rename+Mod(A)/Mod(B), B mods subset of A - -expecting success of 6426.7 '2c: Modify b & add c VS rename b->c': - test_setup_2c && - ( - cd 2c && - - git checkout A^0 && - - test-tool chmtime --get -3600 c >old-mtime && - GIT_MERGE_VERBOSITY=3 && - export GIT_MERGE_VERBOSITY && - test_must_fail git merge -s recursive B^0 >out 2>err && - - test_i18ngrep "CONFLICT (.*/add):" out && - test_must_be_empty err && - - # Make sure c WAS updated - test-tool chmtime --get c >new-mtime && - test $(cat old-mtime) -lt $(cat new-mtime) - - # FIXME: rename/add conflicts are horribly broken right now; - # when I get back to my patch series fixing it and - # rename/rename(2to1) conflicts to bring them in line with - # how add/add conflicts behave, then checks like the below - # could be added. But that patch series is waiting until - # the rename-directory-detection series lands, which this - # is part of. And in the mean time, I do not want to further - # enforce broken behavior. So for now, the main test is the - # one above that err is an empty file. - - #git ls-files -s >index_files && - #test_line_count = 2 index_files && - - #git rev-parse >actual :2:c :3:c && - #git rev-parse >expect A:b A:c && - #test_cmp expect actual && - - #git cat-file -p A:b >>merged && - #git cat-file -p A:c >>merge-me && - #>empty && - #test_must_fail git merge-file \ - # -L "Temporary merge branch 1" \ - # -L "" \ - # -L "Temporary merge branch 2" \ - # merged empty merge-me && - #sed -e "s/^\([<=>]\)/\1\1\1/" merged >merged-internal && - - #git hash-object c >actual && - #git hash-object merged-internal >expect && - #test_cmp expect actual && - - #test_path_is_missing b - ) - -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6426-merge-skip-unneeded-updates/2c/.git/ -[master (root-commit) 105387b] O - Author: A U Thor - 1 file changed, 10 insertions(+) - create mode 100644 b -Switched to branch 'A' -[A edf631f] A - Author: A U Thor - 2 files changed, 2 insertions(+) - create mode 100644 c -Switched to branch 'B' -[B 6283fcf] B - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - rename b => c (100%) -Note: switching to 'A^0'. - -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. - -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: - - git switch -c - -Or undo this operation with: - - git switch - - -Turn off this advice by setting config variable advice.detachedHead to false - -HEAD is now at edf631f A -checking prerequisite: C_LOCALE_OUTPUT - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false - -) -prerequisite C_LOCALE_OUTPUT ok -CONFLICT (rename/add): Rename b->c in B^0. Added c in HEAD -ok 7 - 2c: Modify b & add c VS rename b->c - -expecting success of 6426.8 '3a-L: bq_1->foo/bq_2 on A, foo/->bar/ on B': - test_setup_3a L && - ( - cd 3a_L && - - git checkout A^0 && - - test_path_is_missing bar/bq && - GIT_MERGE_VERBOSITY=3 git -c merge.directoryRenames=true merge -s recursive B^0 >out 2>err && - - test_must_be_empty err && - - test_path_is_file bar/bq && - - git ls-files -s >index_files && - test_line_count = 2 index_files && - - git rev-parse >actual HEAD:bar/bq HEAD:bar/whatever && - git rev-parse >expect A:foo/bq A:foo/whatever && - test_cmp expect actual && - - git hash-object bar/bq bar/whatever >actual && - git rev-parse A:foo/bq A:foo/whatever >expect && - test_cmp expect actual && - - test_must_fail git rev-parse HEAD:bq HEAD:foo/bq && - test_path_is_missing bq foo/bq foo/whatever - ) - -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6426-merge-skip-unneeded-updates/3a_L/.git/ -[master (root-commit) 1e2aa57] O - Author: A U Thor - 2 files changed, 21 insertions(+) - create mode 100644 bq - create mode 100644 foo/whatever -Switched to branch 'A' -[A 5576138] A - Author: A U Thor - 1 file changed, 1 insertion(+) - rename bq => foo/bq (87%) -Switched to branch 'B' -[B 69c0854] B + 2 files changed, 1 insertion(+) + rename one => three (100%) +Switched to branch 'R' +[R 70ee38b] R Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - rename {foo => bar}/whatever (100%) -Note: switching to 'A^0'. + 2 files changed, 1 insertion(+) + rename two => three (100%) +Note: switching to 'L^0'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this @@ -317943,57 +317295,83 @@ Turn off this advice by setting config variable advice.detachedHead to false -HEAD is now at 5576138 A -fatal: path 'bq' does not exist in 'HEAD' -HEAD:bq -ok 8 - 3a-L: bq_1->foo/bq_2 on A, foo/->bar/ on B - -expecting success of 6426.9 '3a-R: bq_1->foo/bq_2 on A, foo/->bar/ on B': - test_setup_3a R && - ( - cd 3a_R && - - git checkout B^0 && - - test_path_is_missing bar/bq && - GIT_MERGE_VERBOSITY=3 git -c merge.directoryRenames=true merge -s recursive A^0 >out 2>err && +HEAD is now at 174eed7 L +Merging: +174eed7 L +virtual R^0 +found 1 common ancestor: +e535363 initial +CONFLICT (rename/rename): Rename one->three in HEAD. Rename two->three in R^0 +Auto-merging three +Automatic merge failed; fix conflicts and then commit the result. +ok 20 - check simple rename/rename conflict - test_must_be_empty err && +expecting success of 6422.21 'check simple rename/add conflict': + test_setup_collision_conflict && + ( + cd simple_${sideL}_${sideR} && - test_path_is_file bar/bq && + git checkout L^0 && - git ls-files -s >index_files && - test_line_count = 2 index_files && + # Merge must fail; there is a conflict + test_must_fail git merge -s recursive R^0 && - git rev-parse >actual HEAD:bar/bq HEAD:bar/whatever && - git rev-parse >expect A:foo/bq A:foo/whatever && - test_cmp expect actual && + # Make sure the index has the right number of entries + git ls-files -s >out && + test_line_count = 3 out && + git ls-files -u >out && + test_line_count = 2 out && + # Ensure we have the correct number of untracked files + git ls-files -o >out && + test_line_count = 1 out && - git hash-object bar/bq bar/whatever >actual && - git rev-parse A:foo/bq A:foo/whatever >expect && - test_cmp expect actual && + # Nothing should have touched irrelevant_file + git rev-parse >actual \ + :0:irrelevant_file \ + :2:three \ + :3:three && + git rev-parse >expected \ + master:irrelevant_file \ + file_v2 \ + file_v4 && + test_cmp expected actual && - test_must_fail git rev-parse HEAD:bq HEAD:foo/bq && - test_path_is_missing bq foo/bq foo/whatever - ) + # Make sure we have the correct merged contents for + # three + git show file_v1 >expected && + cat <<-\EOF >>expected && + <<<<<<< HEAD + modification + ======= + more stuff + yet more stuff + >>>>>>> R^0 + EOF -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6426-merge-skip-unneeded-updates/3a_R/.git/ -[master (root-commit) 1e2aa57] O - Author: A U Thor - 2 files changed, 21 insertions(+) - create mode 100644 bq - create mode 100644 foo/whatever -Switched to branch 'A' -[A 5576138] A + test_cmp expected three + ) + +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6422-merge-rename-corner-cases/simple_rename_add/.git/ +Removing file_v1 +Removing file_v2 +Removing file_v3 +Removing file_v4 +[master (root-commit) 91a0f23] initial Author: A U Thor - 1 file changed, 1 insertion(+) - rename bq => foo/bq (87%) -Switched to branch 'B' -[B 69c0854] B + 2 files changed, 10 insertions(+) + create mode 100644 irrelevant_file + create mode 100644 one +Switched to branch 'L' +[L 1a5f997] L Author: A U Thor 1 file changed, 0 insertions(+), 0 deletions(-) - rename {foo => bar}/whatever (100%) -Note: switching to 'B^0'. + rename one => three (100%) +Switched to branch 'R' +[R 321a394] R + Author: A U Thor + 2 files changed, 13 insertions(+) + create mode 100644 three +Note: switching to 'L^0'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this @@ -318010,57 +317388,83 @@ Turn off this advice by setting config variable advice.detachedHead to false -HEAD is now at 69c0854 B -fatal: path 'bq' does not exist in 'HEAD' -HEAD:bq -ok 9 - 3a-R: bq_1->foo/bq_2 on A, foo/->bar/ on B - -expecting success of 6426.10 '3b-L: bq_1->foo/bq_2 on A, foo/->bar/ on B': - test_setup_3b L && - ( - cd 3b_L && - - git checkout A^0 && - - test_path_is_missing bar/bq && - GIT_MERGE_VERBOSITY=3 git -c merge.directoryRenames=true merge -s recursive B^0 >out 2>err && +HEAD is now at 1a5f997 L +Merging: +1a5f997 L +virtual R^0 +found 1 common ancestor: +91a0f23 initial +CONFLICT (rename/add): Rename one->three in HEAD. Added three in R^0 +Auto-merging three +Automatic merge failed; fix conflicts and then commit the result. +ok 21 - check simple rename/add conflict - test_must_be_empty err && +expecting success of 6422.22 'check simple add/rename conflict': + test_setup_collision_conflict && + ( + cd simple_${sideL}_${sideR} && - test_path_is_file bar/bq && + git checkout L^0 && - git ls-files -s >index_files && - test_line_count = 2 index_files && + # Merge must fail; there is a conflict + test_must_fail git merge -s recursive R^0 && - git rev-parse >actual HEAD:bar/bq HEAD:bar/whatever && - git rev-parse >expect B:bq A:foo/whatever && - test_cmp expect actual && + # Make sure the index has the right number of entries + git ls-files -s >out && + test_line_count = 3 out && + git ls-files -u >out && + test_line_count = 2 out && + # Ensure we have the correct number of untracked files + git ls-files -o >out && + test_line_count = 1 out && - git hash-object bar/bq bar/whatever >actual && - git rev-parse B:bq A:foo/whatever >expect && - test_cmp expect actual && + # Nothing should have touched irrelevant_file + git rev-parse >actual \ + :0:irrelevant_file \ + :2:three \ + :3:three && + git rev-parse >expected \ + master:irrelevant_file \ + file_v2 \ + file_v4 && + test_cmp expected actual && - test_must_fail git rev-parse HEAD:bq HEAD:foo/bq && - test_path_is_missing bq foo/bq foo/whatever - ) + # Make sure we have the correct merged contents for + # three + git show file_v1 >expected && + cat <<-\EOF >>expected && + <<<<<<< HEAD + modification + ======= + more stuff + yet more stuff + >>>>>>> R^0 + EOF -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6426-merge-skip-unneeded-updates/3b_L/.git/ -[master (root-commit) 1e2aa57] O + test_cmp expected three + ) + +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6422-merge-rename-corner-cases/simple_add_rename/.git/ +Removing file_v1 +Removing file_v2 +Removing file_v3 +Removing file_v4 +[master (root-commit) c609738] initial Author: A U Thor - 2 files changed, 21 insertions(+) - create mode 100644 bq - create mode 100644 foo/whatever -Switched to branch 'A' -[A d02b71c] A + 2 files changed, 11 insertions(+) + create mode 100644 irrelevant_file + create mode 100644 two +Switched to branch 'L' +[L 8455a46] L Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - rename bq => foo/bq (100%) -Switched to branch 'B' -[B 2f47892] B + 2 files changed, 12 insertions(+) + create mode 100644 three +Switched to branch 'R' +[R 686dcd1] R Author: A U Thor - 2 files changed, 1 insertion(+) - rename {foo => bar}/whatever (100%) -Note: switching to 'A^0'. + 1 file changed, 0 insertions(+), 0 deletions(-) + rename two => three (100%) +Note: switching to 'L^0'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this @@ -318077,57 +317481,82 @@ Turn off this advice by setting config variable advice.detachedHead to false -HEAD is now at d02b71c A -fatal: path 'bq' does not exist in 'HEAD' -HEAD:bq -ok 10 - 3b-L: bq_1->foo/bq_2 on A, foo/->bar/ on B - -expecting success of 6426.11 '3b-R: bq_1->foo/bq_2 on A, foo/->bar/ on B': - test_setup_3b R && - ( - cd 3b_R && - - git checkout B^0 && - - test_path_is_missing bar/bq && - GIT_MERGE_VERBOSITY=3 git -c merge.directoryRenames=true merge -s recursive A^0 >out 2>err && +HEAD is now at 8455a46 L +Merging: +8455a46 L +virtual R^0 +found 1 common ancestor: +c609738 initial +CONFLICT (rename/add): Rename two->three in R^0. Added three in HEAD +Auto-merging three +Automatic merge failed; fix conflicts and then commit the result. +ok 22 - check simple add/rename conflict - test_must_be_empty err && +expecting success of 6422.23 'check simple add/add conflict': + test_setup_collision_conflict && + ( + cd simple_${sideL}_${sideR} && - test_path_is_file bar/bq && + git checkout L^0 && - git ls-files -s >index_files && - test_line_count = 2 index_files && + # Merge must fail; there is a conflict + test_must_fail git merge -s recursive R^0 && - git rev-parse >actual HEAD:bar/bq HEAD:bar/whatever && - git rev-parse >expect B:bq A:foo/whatever && - test_cmp expect actual && + # Make sure the index has the right number of entries + git ls-files -s >out && + test_line_count = 3 out && + git ls-files -u >out && + test_line_count = 2 out && + # Ensure we have the correct number of untracked files + git ls-files -o >out && + test_line_count = 1 out && - git hash-object bar/bq bar/whatever >actual && - git rev-parse B:bq A:foo/whatever >expect && - test_cmp expect actual && + # Nothing should have touched irrelevant_file + git rev-parse >actual \ + :0:irrelevant_file \ + :2:three \ + :3:three && + git rev-parse >expected \ + master:irrelevant_file \ + file_v2 \ + file_v4 && + test_cmp expected actual && - test_must_fail git rev-parse HEAD:bq HEAD:foo/bq && - test_path_is_missing bq foo/bq foo/whatever - ) + # Make sure we have the correct merged contents for + # three + git show file_v1 >expected && + cat <<-\EOF >>expected && + <<<<<<< HEAD + modification + ======= + more stuff + yet more stuff + >>>>>>> R^0 + EOF -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6426-merge-skip-unneeded-updates/3b_R/.git/ -[master (root-commit) 1e2aa57] O - Author: A U Thor - 2 files changed, 21 insertions(+) - create mode 100644 bq - create mode 100644 foo/whatever -Switched to branch 'A' -[A d02b71c] A + test_cmp expected three + ) + +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6422-merge-rename-corner-cases/simple_add_add/.git/ +Removing file_v1 +Removing file_v2 +Removing file_v3 +Removing file_v4 +[master (root-commit) 8052021] initial Author: A U Thor 1 file changed, 0 insertions(+), 0 deletions(-) - rename bq => foo/bq (100%) -Switched to branch 'B' -[B 2f47892] B + create mode 100644 irrelevant_file +Switched to branch 'L' +[L 0706354] L Author: A U Thor - 2 files changed, 1 insertion(+) - rename {foo => bar}/whatever (100%) -Note: switching to 'B^0'. + 1 file changed, 11 insertions(+) + create mode 100644 three +Switched to branch 'R' +[R 42323fa] R + Author: A U Thor + 1 file changed, 12 insertions(+) + create mode 100644 three +Note: switching to 'L^0'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this @@ -318144,55 +317573,87 @@ Turn off this advice by setting config variable advice.detachedHead to false -HEAD is now at 2f47892 B -fatal: path 'bq' does not exist in 'HEAD' -HEAD:bq -ok 11 - 3b-R: bq_1->foo/bq_2 on A, foo/->bar/ on B +HEAD is now at 0706354 L +Merging: +0706354 L +virtual R^0 +found 1 common ancestor: +8052021 initial +CONFLICT (add/add): Merge conflict in three +Auto-merging three +Automatic merge failed; fix conflicts and then commit the result. +ok 23 - check simple add/add conflict -checking known breakage of 6426.12 '4a: Change on A, change on B subset of A, dirty mods present': - test_setup_4a && +expecting success of 6422.24 'check nested conflicts from rename/rename(2to1)': + test_setup_nested_conflicts_from_rename_rename && ( - cd 4a && - - git checkout A^0 && - echo "File rewritten" >b && - - test-tool chmtime --get -3600 b >old-mtime && + cd nested_conflicts_from_rename_rename && - GIT_MERGE_VERBOSITY=3 git merge -s recursive B^0 >out 2>err && + git checkout L^0 && - test_must_be_empty err && + # Merge must fail; there is a conflict + test_must_fail git merge -s recursive R^0 && - # Make sure b was NOT updated - test-tool chmtime --get b >new-mtime && - test_cmp old-mtime new-mtime && + # Make sure the index has the right number of entries + git ls-files -s >out && + test_line_count = 2 out && + git ls-files -u >out && + test_line_count = 2 out && + # Ensure we have the correct number of untracked files + git ls-files -o >out && + test_line_count = 1 out && - git ls-files -s >index_files && - test_line_count = 1 index_files && + # Compare :2:three to expected values + git cat-file -p master:one >base && + git cat-file -p L:three >ours && + git cat-file -p R:one >theirs && + test_must_fail git merge-file \ + -L "HEAD:three" -L "" -L "R^0:one" \ + ours base theirs && + sed -e "s/^\([<=>]\)/\1\1/" ours >L-three && + git cat-file -p :2:three >expect && + test_cmp expect L-three && - git rev-parse >actual :0:b && - git rev-parse >expect A:b && - test_cmp expect actual && + # Compare :2:three to expected values + git cat-file -p master:two >base && + git cat-file -p L:two >ours && + git cat-file -p R:three >theirs && + test_must_fail git merge-file \ + -L "HEAD:two" -L "" -L "R^0:three" \ + ours base theirs && + sed -e "s/^\([<=>]\)/\1\1/" ours >R-three && + git cat-file -p :3:three >expect && + test_cmp expect R-three && - git hash-object b >actual && - echo "File rewritten" | git hash-object --stdin >expect && - test_cmp expect actual + # Compare three to expected contents + >empty && + test_must_fail git merge-file \ + -L "HEAD" -L "" -L "R^0" \ + L-three empty R-three && + test_cmp three L-three ) -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6426-merge-skip-unneeded-updates/4a/.git/ -[master (root-commit) 105387b] O +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6422-merge-rename-corner-cases/nested_conflicts_from_rename_rename/.git/ +[master (root-commit) 8e30406] english Author: A U Thor - 1 file changed, 10 insertions(+) - create mode 100644 b -Switched to branch 'A' -[A 14800cf] A + 2 files changed, 22 insertions(+) + create mode 100644 one + create mode 100644 two +Switched to branch 'L' +rm 'one' +rm 'two' +[L f3d294e] spanish Author: A U Thor - 1 file changed, 2 insertions(+) -Switched to branch 'B' -[B dfd7e13] B + 2 files changed, 2 insertions(+), 2 deletions(-) + rename one => three (98%) +Switched to branch 'R' +rm 'one' +rm 'two' +[R 413cf6f] german Author: A U Thor - 1 file changed, 1 insertion(+) -Note: switching to 'A^0'. + 2 files changed, 2 insertions(+), 2 deletions(-) + rename two => three (98%) +Note: switching to 'L^0'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this @@ -318209,56 +317670,53 @@ Turn off this advice by setting config variable advice.detachedHead to false -HEAD is now at 14800cf A -not ok 12 - 4a: Change on A, change on B subset of A, dirty mods present # TODO known breakage +HEAD is now at f3d294e spanish +Merging: +f3d294e spanish +virtual R^0 +found 1 common ancestor: +8e30406 english +CONFLICT (rename/rename): Rename one->three in HEAD. Rename two->three in R^0 +Auto-merging version of three from one +Auto-merging version of three from two +Auto-merging three +Automatic merge failed; fix conflicts and then commit the result. +ok 24 - check nested conflicts from rename/rename(2to1) -expecting success of 6426.13 '4b: Rename+Mod(A)/Mod(B), change on B subset of A, dirty mods present': - test_setup_4b && +expecting success of 6422.25 'rename/rename(1to2) with a binary file': + test_setup_rename_rename_1_to_2_binary && ( - cd 4b && + cd rename_rename_1_to_2_binary && git checkout A^0 && - echo "File rewritten" >c && - - test-tool chmtime --get -3600 c >old-mtime && - GIT_MERGE_VERBOSITY=3 git merge -s recursive B^0 >out 2>err && - - test_must_be_empty err && - - # Make sure c was NOT updated - test-tool chmtime --get c >new-mtime && - test_cmp old-mtime new-mtime && - - git ls-files -s >index_files && - test_line_count = 1 index_files && - - git rev-parse >actual :0:c && - git rev-parse >expect A:c && - test_cmp expect actual && + test_must_fail git merge -s recursive B^0 && - git hash-object c >actual && - echo "File rewritten" | git hash-object --stdin >expect && - test_cmp expect actual && + # Make sure the index has the right number of entries + git ls-files -s >actual && + test_line_count = 4 actual && - test_must_fail git rev-parse HEAD:b && - test_path_is_missing b + git rev-parse A:orig-A B:orig-B >expect && + git hash-object orig-A orig-B >actual && + test_cmp expect actual ) -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6426-merge-skip-unneeded-updates/4b/.git/ -[master (root-commit) 105387b] O +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6422-merge-rename-corner-cases/rename_rename_1_to_2_binary/.git/ +[master (root-commit) 2af6002] orig Author: A U Thor - 1 file changed, 10 insertions(+) - create mode 100644 b + 2 files changed, 0 insertions(+), 0 deletions(-) + create mode 100644 .gitattributes + create mode 100644 orig Switched to branch 'A' -[A fed518a] A +[A 7acac62] orig-A Author: A U Thor - 1 file changed, 2 insertions(+) - rename b => c (70%) + 1 file changed, 0 insertions(+), 0 deletions(-) + rename orig => orig-A (87%) Switched to branch 'B' -[B dfd7e13] B +[B b674041] orig-B Author: A U Thor - 1 file changed, 1 insertion(+) + 1 file changed, 0 insertions(+), 0 deletions(-) + rename orig => orig-B (91%) Note: switching to 'A^0'. You are in 'detached HEAD' state. You can look around, make experimental @@ -318276,14 +317734,21 @@ Turn off this advice by setting config variable advice.detachedHead to false -HEAD is now at fed518a A -fatal: path 'b' does not exist in 'HEAD' -HEAD:b -ok 13 - 4b: Rename+Mod(A)/Mod(B), change on B subset of A, dirty mods present +HEAD is now at 7acac62 orig-A +warning: Cannot merge binary files: orig-A (HEAD:orig-A vs. B^0:orig-B) +Merging: +7acac62 orig-A +virtual B^0 +found 1 common ancestor: +2af6002 orig +CONFLICT (rename/rename): Rename "orig"->"orig-A" in branch "HEAD" rename "orig"->"orig-B" in "B^0" +Auto-merging orig-A and orig-B, both renamed from orig +Automatic merge failed; fix conflicts and then commit the result. +ok 25 - rename/rename(1to2) with a binary file -# still have 1 known breakage(s) -# passed all remaining 12 test(s) -1..13 +# still have 10 known breakage(s) +# passed all remaining 15 test(s) +1..25 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' *** t6431-merge-criscross.sh *** @@ -318433,6 +317898,688 @@ 1..2 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t6427-diff3-conflict-markers.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6427-diff3-conflict-markers/.git/ +expecting success of 6427.1 'setup no merge base': + test_create_repo no_merge_base && + ( + cd no_merge_base && + + git checkout -b L && + test_commit A content A && + + git checkout --orphan R && + test_commit B content B + ) + +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6427-diff3-conflict-markers/no_merge_base/.git/ +Switched to a new branch 'L' +[L (root-commit) ccbdd10] A + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 content +Switched to a new branch 'R' +[R (root-commit) 8e39672] B + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 content +ok 1 - setup no merge base + +expecting success of 6427.2 'check no merge base': + ( + cd no_merge_base && + + git checkout L^0 && + + test_must_fail git -c merge.conflictstyle=diff3 merge --allow-unrelated-histories -s recursive R^0 && + + grep "|||||| empty tree" content + ) + +Note: switching to 'L^0'. + +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. + +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: + + git switch -c + +Or undo this operation with: + + git switch - + +Turn off this advice by setting config variable advice.detachedHead to false + +HEAD is now at ccbdd10 A +Merging: +ccbdd10 A +virtual R^0 +found 0 common ancestors: +CONFLICT (add/add): Merge conflict in content +Auto-merging content +Automatic merge failed; fix conflicts and then commit the result. +||||||| empty tree +ok 2 - check no merge base + +expecting success of 6427.3 'setup unique merge base': + test_create_repo unique_merge_base && + ( + cd unique_merge_base && + + test_commit base content "1 +2 +3 +4 +5 +" && + + git branch L && + git branch R && + + git checkout L && + test_commit L content "1 +2 +3 +4 +5 +7" && + + git checkout R && + git rm content && + test_commit R renamed "1 +2 +3 +4 +5 +six" + ) + +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6427-diff3-conflict-markers/unique_merge_base/.git/ +[master (root-commit) 8b7da6e] base + Author: A U Thor + 1 file changed, 6 insertions(+) + create mode 100644 content +Switched to branch 'L' +[L e1c672f] L + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +Switched to branch 'R' +rm 'content' +[R 17f77e6] R + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) + rename content => renamed (71%) +ok 3 - setup unique merge base + +expecting success of 6427.4 'check unique merge base': + ( + cd unique_merge_base && + + git checkout L^0 && + MASTER=$(git rev-parse --short master) && + + test_must_fail git -c merge.conflictstyle=diff3 merge -s recursive R^0 && + + grep "|||||| $MASTER:content" renamed + ) + +warning: refname 'L' is ambiguous. +warning: refname 'L' is ambiguous. +Note: switching to 'L^0'. + +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. + +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: + + git switch -c + +Or undo this operation with: + + git switch - + +Turn off this advice by setting config variable advice.detachedHead to false + +HEAD is now at e1c672f L +warning: refname 'R' is ambiguous. +warning: refname 'R' is ambiguous. +Merging: +e1c672f L +virtual R^0 +found 1 common ancestor: +8b7da6e base +Auto-merging renamed +CONFLICT (content): Merge conflict in renamed +Automatic merge failed; fix conflicts and then commit the result. +||||||| 8b7da6e:content +ok 4 - check unique merge base + +expecting success of 6427.5 'setup multiple merge bases': + test_create_repo multiple_merge_bases && + ( + cd multiple_merge_bases && + + test_commit initial content "1 +2 +3 +4 +5" && + + git branch L && + git branch R && + + # Create L1 + git checkout L && + test_commit L1 content "0 +1 +2 +3 +4 +5" && + + # Create R1 + git checkout R && + test_commit R1 content "1 +2 +3 +4 +5 +6" && + + # Create L2 + git checkout L && + git merge R1 && + + # Create R2 + git checkout R && + git merge L1 && + + # Create L3 + git checkout L && + test_commit L3 content "0 +1 +2 +3 +4 +5 +A" && + + # Create R3 + git checkout R && + git rm content && + test_commit R3 renamed "0 +2 +3 +4 +5 +six" + ) + +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6427-diff3-conflict-markers/multiple_merge_bases/.git/ +[master (root-commit) 79a87bb] initial + Author: A U Thor + 1 file changed, 5 insertions(+) + create mode 100644 content +Switched to branch 'L' +[L 2e587ed] L1 + Author: A U Thor + 1 file changed, 1 insertion(+) +Switched to branch 'R' +[R 6e9e69f] R1 + Author: A U Thor + 1 file changed, 1 insertion(+) +Switched to branch 'L' +Merging: +2e587ed L1 +virtual R1 +found 1 common ancestor: +79a87bb initial +Auto-merging content +Merge made by the 'recursive' strategy. + content | 1 + + 1 file changed, 1 insertion(+) +Switched to branch 'R' +Merging: +6e9e69f R1 +virtual L1 +found 1 common ancestor: +79a87bb initial +Auto-merging content +Merge made by the 'recursive' strategy. + content | 1 + + 1 file changed, 1 insertion(+) +Switched to branch 'L' +[L 614f030] L3 + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +Switched to branch 'R' +rm 'content' +[R 8a53b94] R3 + Author: A U Thor + 1 file changed, 1 insertion(+), 2 deletions(-) + rename content => renamed (71%) +ok 5 - setup multiple merge bases + +expecting success of 6427.6 'check multiple merge bases': + ( + cd multiple_merge_bases && + + git checkout L^0 && + + test_must_fail git -c merge.conflictstyle=diff3 merge -s recursive R^0 && + + grep "|||||| merged common ancestors:content" renamed + ) + +Note: switching to 'L^0'. + +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. + +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: + + git switch -c + +Or undo this operation with: + + git switch - + +Turn off this advice by setting config variable advice.detachedHead to false + +HEAD is now at 614f030 L3 +Merging: +614f030 L3 +virtual R^0 +found 2 common ancestors: +2e587ed L1 +6e9e69f R1 + Merging: + 2e587ed L1 + 6e9e69f R1 + found 1 common ancestor: + 79a87bb initial + Auto-merging content +Auto-merging renamed +CONFLICT (content): Merge conflict in renamed +Automatic merge failed; fix conflicts and then commit the result. +||||||| merged common ancestors:content +ok 6 - check multiple merge bases + +expecting success of 6427.7 'rebase --merge describes parent of commit being picked': + test_create_repo rebase && + ( + cd rebase && + test_commit base file && + test_commit master file && + git checkout -b side HEAD^ && + test_commit side file && + test_must_fail git -c merge.conflictstyle=diff3 rebase --merge master && + grep "||||||| parent of" file + ) + +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6427-diff3-conflict-markers/rebase/.git/ +[master (root-commit) 215235d] base + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file +[master 4aa9770] master + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +Switched to a new branch 'side' +[side 748f431] side + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +warning: refname 'master' is ambiguous. +warning: refname 'master' is ambiguous. +Rebasing (1/1) error: could not apply 748f431... side +Resolve all conflicts manually, mark them as resolved with +"git add/rm ", then run "git rebase --continue". +You can instead skip this commit: run "git rebase --skip". +To abort and get back to the state before "git rebase", run "git rebase --abort". +Could not apply 748f431... side +Auto-merging file +CONFLICT (content): Merge conflict in file +||||||| parent of 748f431 (side) +ok 7 - rebase --merge describes parent of commit being picked + +expecting success of 6427.8 'rebase --apply describes fake ancestor base': + ( + cd rebase && + git rebase --abort && + test_must_fail git -c merge.conflictstyle=diff3 rebase --apply master && + grep "||||||| constructed merge base" file + ) + +warning: refname 'master' is ambiguous. +warning: refname 'master' is ambiguous. +First, rewinding head to replay your work on top of it... +Applying: side +Using index info to reconstruct a base tree... +M file +Falling back to patching base and 3-way merge... +Merging: +4aa9770 master +virtual side +found 1 common ancestor: +virtual 6d5f482d15035cdd7733b1b551d1fead28d22592 +Auto-merging file +CONFLICT (content): Merge conflict in file +error: Failed to merge in the changes. +hint: Use 'git am --show-current-patch=diff' to see the failed patch +Patch failed at 0001 side +Resolve all conflicts manually, mark them as resolved with +"git add/rm ", then run "git rebase --continue". +You can instead skip this commit: run "git rebase --skip". +To abort and get back to the state before "git rebase", run "git rebase --abort". +||||||| constructed merge base +ok 8 - rebase --apply describes fake ancestor base + +# passed all 8 test(s) +1..8 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t6432-merge-recursive-space-options.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6432-merge-recursive-space-options/.git/ +expecting success of 6432.1 'setup': + conflict_hunks () { + sed $SED_OPTIONS -n -e " + /^<<<>>>/ b + n + b conflict + " "$@" + } && + + cat <<-\EOF >text.txt && + Hope, he says, cherishes the soul of him who lives in + justice and holiness and is the nurse of his age and the + companion of his journey;--hope which is mightiest to sway + the restless soul of man. + + How admirable are his words! And the great blessing of riches, I do + not say to every man, but to a good man, is, that he has had no + occasion to deceive or to defraud others, either intentionally or + unintentionally; and when he departs to the world below he is not in + any apprehension about offerings due to the gods or debts which he owes + to men. Now to this peace of mind the possession of wealth greatly + contributes; and therefore I say, that, setting one thing against + another, of the many advantages which wealth has to give, to a man of + sense this is in my opinion the greatest. + + Well said, Cephalus, I replied; but as concerning justice, what is + it?--to speak the truth and to pay your debts--no more than this? And + even to this are there not exceptions? Suppose that a friend when in + his right mind has deposited arms with me and he asks for them when he + is not in his right mind, ought I to give them back to him? No one + would say that I ought or that I should be right in doing so, any more + than they would say that I ought always to speak the truth to one who + is in his condition. + + You are quite right, he replied. + + But then, I said, speaking the truth and paying your debts is not a + correct definition of justice. + + CEPHALUS - SOCRATES - POLEMARCHUS + + Quite correct, Socrates, if Simonides is to be believed, said + Polemarchus interposing. + + I fear, said Cephalus, that I must go now, for I have to look after the + sacrifices, and I hand over the argument to Polemarchus and the company. + EOF + git add text.txt && + test_tick && + git commit -m "Initial revision" && + + git checkout -b remote && + sed -e " + s/\. /\. /g + s/[?] /? /g + s/ / /g + s/--/---/g + s/but as concerning/but as con cerning/ + /CEPHALUS - SOCRATES - POLEMARCHUS/ d + " text.txt >text.txt+ && + mv text.txt+ text.txt && + git commit -a -m "Remove cruft" && + + git checkout master && + sed -e " + s/\(not in his right mind\),\(.*\)/\1;\2Q/ + s/Quite correct\(.*\)/It is too correct\1Q/ + s/unintentionally/un intentionally/ + /un intentionally/ s/$/Q/ + s/Polemarchus interposing./Polemarchus, interposing.Q/ + /justice and holiness/ s/$/Q/ + /pay your debts/ s/$/Q/ + " text.txt | q_to_cr >text.txt+ && + mv text.txt+ text.txt && + git commit -a -m "Clarify" && + git show-branch --all + +[master (root-commit) c1e95d9] Initial revision + Author: A U Thor + 1 file changed, 36 insertions(+) + create mode 100644 text.txt +Switched to a new branch 'remote' +[remote be82dcf] Remove cruft + Author: A U Thor + 1 file changed, 9 insertions(+), 10 deletions(-) +Switched to branch 'master' +[master 0ab7224] Clarify + Author: A U Thor + 1 file changed, 6 insertions(+), 6 deletions(-) +* [master] Clarify + ! [remote] Remove cruft +-- + + [remote] Remove cruft +* [master] Clarify +*+ [remote^] Initial revision +ok 1 - setup + +expecting success of 6432.2 'naive merge fails': + git read-tree --reset -u HEAD && + test_must_fail git merge-recursive HEAD^ -- HEAD remote && + test_must_fail git update-index --refresh && + grep "<<<<<<" text.txt + +Merging HEAD with remote +Merging: +0ab7224 Clarify +be82dcf Remove cruft +found 1 common ancestor: +c1e95d9 Initial revision +Auto-merging text.txt +CONFLICT (content): Merge conflict in text.txt +text.txt: needs merge +<<<<<<< HEAD +<<<<<<< HEAD +ok 2 - naive merge fails + +expecting success of 6432.3 '--ignore-space-change makes merge succeed': + git read-tree --reset -u HEAD && + git merge-recursive --ignore-space-change HEAD^ -- HEAD remote + +Merging HEAD with remote +Merging: +0ab7224 Clarify +be82dcf Remove cruft +found 1 common ancestor: +c1e95d9 Initial revision +Auto-merging text.txt +ok 3 - --ignore-space-change makes merge succeed + +expecting success of 6432.4 'naive cherry-pick fails': + git read-tree --reset -u HEAD && + test_must_fail git cherry-pick --no-commit remote && + git read-tree --reset -u HEAD && + test_must_fail git cherry-pick remote && + test_must_fail git update-index --refresh && + grep "<<<<<<" text.txt + +Auto-merging text.txt +CONFLICT (content): Merge conflict in text.txt +error: could not apply be82dcf... Remove cruft +hint: after resolving the conflicts, mark the corrected paths +hint: with 'git add ' or 'git rm ' +Auto-merging text.txt +CONFLICT (content): Merge conflict in text.txt +error: could not apply be82dcf... Remove cruft +hint: after resolving the conflicts, mark the corrected paths +hint: with 'git add ' or 'git rm ' +hint: and commit the result with 'git commit' +text.txt: needs merge +<<<<<<< HEAD +<<<<<<< HEAD +ok 4 - naive cherry-pick fails + +expecting success of 6432.5 '-Xignore-space-change makes cherry-pick succeed': + git read-tree --reset -u HEAD && + git cherry-pick --no-commit -Xignore-space-change remote + +Auto-merging text.txt +ok 5 - -Xignore-space-change makes cherry-pick succeed + +expecting success of 6432.6 '--ignore-space-change: our w/s-only change wins': + q_to_cr <<-\EOF >expected && + justice and holiness and is the nurse of his age and theQ + EOF + + git read-tree --reset -u HEAD && + git merge-recursive --ignore-space-change HEAD^ -- HEAD remote && + grep "justice and holiness" text.txt >actual && + test_cmp expected actual + +Merging HEAD with remote +Merging: +0ab7224 Clarify +be82dcf Remove cruft +found 1 common ancestor: +c1e95d9 Initial revision +Auto-merging text.txt +ok 6 - --ignore-space-change: our w/s-only change wins + +expecting success of 6432.7 '--ignore-space-change: their real change wins over w/s': + cat <<-\EOF >expected && + it?---to speak the truth and to pay your debts---no more than this? And + EOF + + git read-tree --reset -u HEAD && + git merge-recursive --ignore-space-change HEAD^ -- HEAD remote && + grep "pay your debts" text.txt >actual && + test_cmp expected actual + +Merging HEAD with remote +Merging: +0ab7224 Clarify +be82dcf Remove cruft +found 1 common ancestor: +c1e95d9 Initial revision +Auto-merging text.txt +ok 7 - --ignore-space-change: their real change wins over w/s + +expecting success of 6432.8 '--ignore-space-change: does not ignore new spaces': + cat <<-\EOF >expected1 && + Well said, Cephalus, I replied; but as con cerning justice, what is + EOF + q_to_cr <<-\EOF >expected2 && + un intentionally; and when he departs to the world below he is not inQ + EOF + + git read-tree --reset -u HEAD && + git merge-recursive --ignore-space-change HEAD^ -- HEAD remote && + grep "Well said" text.txt >actual1 && + grep "when he departs" text.txt >actual2 && + test_cmp expected1 actual1 && + test_cmp expected2 actual2 + +Merging HEAD with remote +Merging: +0ab7224 Clarify +be82dcf Remove cruft +found 1 common ancestor: +c1e95d9 Initial revision +Auto-merging text.txt +ok 8 - --ignore-space-change: does not ignore new spaces + +expecting success of 6432.9 '--ignore-all-space drops their new spaces': + cat <<-\EOF >expected && + Well said, Cephalus, I replied; but as concerning justice, what is + EOF + + git read-tree --reset -u HEAD && + git merge-recursive --ignore-all-space HEAD^ -- HEAD remote && + grep "Well said" text.txt >actual && + test_cmp expected actual + +Merging HEAD with remote +Merging: +0ab7224 Clarify +be82dcf Remove cruft +found 1 common ancestor: +c1e95d9 Initial revision +Auto-merging text.txt +ok 9 - --ignore-all-space drops their new spaces + +expecting success of 6432.10 '--ignore-all-space keeps our new spaces': + q_to_cr <<-\EOF >expected && + un intentionally; and when he departs to the world below he is not inQ + EOF + + git read-tree --reset -u HEAD && + git merge-recursive --ignore-all-space HEAD^ -- HEAD remote && + grep "when he departs" text.txt >actual && + test_cmp expected actual + +Merging HEAD with remote +Merging: +0ab7224 Clarify +be82dcf Remove cruft +found 1 common ancestor: +c1e95d9 Initial revision +Auto-merging text.txt +ok 10 - --ignore-all-space keeps our new spaces + +expecting success of 6432.11 '--ignore-space-at-eol': + q_to_cr <<-\EOF >expected && + <<<<<<< HEAD + is not in his right mind; ought I to give them back to him? No oneQ + ======= + is not in his right mind, ought I to give them back to him? No one + >>>>>>> remote + EOF + + git read-tree --reset -u HEAD && + test_must_fail git merge-recursive --ignore-space-at-eol \ + HEAD^ -- HEAD remote && + conflict_hunks text.txt >actual && + test_cmp expected actual + +Merging HEAD with remote +Merging: +0ab7224 Clarify +be82dcf Remove cruft +found 1 common ancestor: +c1e95d9 Initial revision +Auto-merging text.txt +CONFLICT (content): Merge conflict in text.txt +ok 11 - --ignore-space-at-eol + +# passed all 11 test(s) +1..11 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t6430-merge-recursive.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6430-merge-recursive/.git/ expecting success of 6430.1 'setup 1': @@ -319435,8 +319582,8 @@ found 1 common ancestor: 88eeecf initial Merge made by the 'recursive' strategy. ---- expected 2023-04-29 16:39:46.400660935 +0000 -+++ actual 2023-04-29 16:39:46.392661723 +0000 +--- expected 2023-04-29 18:27:48.078639241 +0000 ++++ actual 2023-04-29 18:27:48.062640754 +0000 @@ -1,9 +1,7 @@ -120000 blob 9cbe6ea56f225388ae614c419249bfc6d734cc30 a 100644 blob ce013625030ba8dba906f756967f9e9ca394464a b @@ -319499,7 +319646,7 @@ hint: git rm --cached sym hint: hint: See "git help submodule" for more information. -[topic 1554b57] base +[topic 529d9ed] base Author: A U Thor 21 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 actual @@ -319524,12 +319671,12 @@ create mode 100644 theirs-has-rename-index rename {d => theirs-has-rename-work}/e (100%) Switched to a new branch 'other' -[other 31ca99d] changesimplefile +[other 6263413] changesimplefile Author: A U Thor 1 file changed, 1 insertion(+) Switched to branch 'topic' rm 'sub1' -[topic 31181b1] changefiletodir +[topic a09791d] changefiletodir Author: A U Thor 4 files changed, 1 deletion(-) delete mode 100644 sub1 @@ -319537,10 +319684,10 @@ rename {sub2 => sub1}/file2 (100%) rename {sub2 => sub1}/file3 (100%) Merging: -31181b1 changefiletodir +a09791d changefiletodir virtual other found 1 common ancestor: -1554b57 base +529d9ed base Skipped sub1/file3 (merged same as existing) Skipped sub1/file2 (merged same as existing) Skipped sub1/file1 (merged same as existing) @@ -319573,7 +319720,7 @@ sed -n "s/^virtual //p" out | sort >actual && test_cmp expect actual -HEAD is now at 16f1985 Merge branch 'other' into topic +HEAD is now at f80444d Merge branch 'other' into topic CONFLICT (rename/rename): Rename e->a in b7f3e7f677ef7001dcb4b810583c9259a210141d. Rename a~Temporary merge branch 2_0->a in 918ade1d06dd1c0da47b644356c64b1b2122e705 ok 36 - merge-recursive remembers the names of all base trees @@ -319626,30 +319773,30 @@ git merge $B -HEAD is now at 16f1985 Merge branch 'other' into topic -[topic 7f8e6a2] O0 +HEAD is now at f80444d Merge branch 'other' into topic +[topic 110e5b2] O0 Author: A U Thor 1 file changed, 1 insertion(+) create mode 100644 file -[topic 0a4d72a] O1 +[topic b737d44] O1 Author: A U Thor -HEAD is now at 7f8e6a2 O0 -[topic 2c0ca0b] O2 +HEAD is now at 110e5b2 O0 +[topic 8eefaa7] O2 Author: A U Thor Merge made by the 'ours' strategy. -HEAD is now at 0a4d72a O1 +HEAD is now at b737d44 O1 Merge made by the 'ours' strategy. Merging: -a965dc4 Merge commit '2c0ca0b0ced2212740ab92bcf88bb48572686de1' into topic -virtual c208cc5cfef074efe260c4e2d4bfc2d2b9b7828e +17ba5b6 Merge commit '8eefaa78bc0fc048b027cbee992c78a3d4e750e8' into topic +virtual cf748f106e7ad548b3bae5a3c63f0b7739d62cee found 2 common ancestors: -0a4d72a O1 -2c0ca0b O2 +b737d44 O1 +8eefaa7 O2 Merging: - 0a4d72a O1 - 2c0ca0b O2 + b737d44 O1 + 8eefaa7 O2 found 1 common ancestor: - 7f8e6a2 O0 + 110e5b2 O0 Already up to date! Already up to date! Merge made by the 'recursive' strategy. @@ -319660,299 +319807,444 @@ 1..37 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t6432-merge-recursive-space-options.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6432-merge-recursive-space-options/.git/ -expecting success of 6432.1 'setup': - conflict_hunks () { - sed $SED_OPTIONS -n -e " - /^<<<>>>/ b - n - b conflict - " "$@" - } && +*** t6435-merge-sparse.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6435-merge-sparse/.git/ +expecting success of 6435.1 'setup': + test_file checked-out init && + test_file modify_delete modify_delete_init && + test_commit_this init && + test_file modify_delete modify_delete_theirs && + test_commit_this theirs && + git reset --hard init && + git rm modify_delete && + test_commit_this ours && + git config core.sparseCheckout true && + echo "/checked-out" >.git/info/sparse-checkout && + git reset --hard && + test_must_fail git merge theirs - cat <<-\EOF >text.txt && - Hope, he says, cherishes the soul of him who lives in - justice and holiness and is the nurse of his age and the - companion of his journey;--hope which is mightiest to sway - the restless soul of man. +[master (root-commit) badb3ac] init + Author: A U Thor + 2 files changed, 2 insertions(+) + create mode 100644 checked-out + create mode 100644 modify_delete +[master 1c06c2f] theirs + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +HEAD is now at badb3ac init +rm 'modify_delete' +[master 3dfe889] ours + Author: A U Thor + 1 file changed, 1 deletion(-) + delete mode 100644 modify_delete +HEAD is now at 3dfe889 ours +Merging: +3dfe889 ours +virtual theirs +found 1 common ancestor: +badb3ac init +CONFLICT (modify/delete): modify_delete deleted in HEAD and modified in theirs. Version theirs of modify_delete left in tree. +Automatic merge failed; fix conflicts and then commit the result. +ok 1 - setup - How admirable are his words! And the great blessing of riches, I do - not say to every man, but to a good man, is, that he has had no - occasion to deceive or to defraud others, either intentionally or - unintentionally; and when he departs to the world below he is not in - any apprehension about offerings due to the gods or debts which he owes - to men. Now to this peace of mind the possession of wealth greatly - contributes; and therefore I say, that, setting one thing against - another, of the many advantages which wealth has to give, to a man of - sense this is in my opinion the greatest. +expecting success of 6435.2 'reset --hard works after the conflict': + git reset --hard - Well said, Cephalus, I replied; but as concerning justice, what is - it?--to speak the truth and to pay your debts--no more than this? And - even to this are there not exceptions? Suppose that a friend when in - his right mind has deposited arms with me and he asks for them when he - is not in his right mind, ought I to give them back to him? No one - would say that I ought or that I should be right in doing so, any more - than they would say that I ought always to speak the truth to one who - is in his condition. +HEAD is now at 3dfe889 ours +ok 2 - reset --hard works after the conflict - You are quite right, he replied. +expecting success of 6435.3 'is reset properly': + git status --porcelain -- modify_delete >out && + test_must_be_empty out && + test_path_is_missing modify_delete - But then, I said, speaking the truth and paying your debts is not a - correct definition of justice. +ok 3 - is reset properly - CEPHALUS - SOCRATES - POLEMARCHUS +expecting success of 6435.4 'setup: conflict back': + test_must_fail git merge theirs - Quite correct, Socrates, if Simonides is to be believed, said - Polemarchus interposing. +Merging: +3dfe889 ours +virtual theirs +found 1 common ancestor: +badb3ac init +CONFLICT (modify/delete): modify_delete deleted in HEAD and modified in theirs. Version theirs of modify_delete left in tree. +Automatic merge failed; fix conflicts and then commit the result. +ok 4 - setup: conflict back - I fear, said Cephalus, that I must go now, for I have to look after the - sacrifices, and I hand over the argument to Polemarchus and the company. - EOF - git add text.txt && - test_tick && - git commit -m "Initial revision" && +expecting success of 6435.5 'Merge abort works after the conflict': + git merge --abort - git checkout -b remote && - sed -e " - s/\. /\. /g - s/[?] /? /g - s/ / /g - s/--/---/g - s/but as concerning/but as con cerning/ - /CEPHALUS - SOCRATES - POLEMARCHUS/ d - " text.txt >text.txt+ && - mv text.txt+ text.txt && - git commit -a -m "Remove cruft" && +ok 5 - Merge abort works after the conflict - git checkout master && - sed -e " - s/\(not in his right mind\),\(.*\)/\1;\2Q/ - s/Quite correct\(.*\)/It is too correct\1Q/ - s/unintentionally/un intentionally/ - /un intentionally/ s/$/Q/ - s/Polemarchus interposing./Polemarchus, interposing.Q/ - /justice and holiness/ s/$/Q/ - /pay your debts/ s/$/Q/ - " text.txt | q_to_cr >text.txt+ && - mv text.txt+ text.txt && - git commit -a -m "Clarify" && - git show-branch --all +expecting success of 6435.6 'is aborted properly': + git status --porcelain -- modify_delete >out && + test_must_be_empty out && + test_path_is_missing modify_delete -[master (root-commit) c1e95d9] Initial revision +ok 6 - is aborted properly + +# passed all 6 test(s) +1..6 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t6433-merge-toplevel.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6433-merge-toplevel/.git/ +expecting success of 6433.1 'setup': + test_commit one && + git branch left && + git branch right && + test_commit two && + git checkout left && + test_commit three && + git checkout right && + test_commit four && + git checkout --orphan newroot && + test_commit five && + git checkout master + +[master (root-commit) d79ce16] one Author: A U Thor - 1 file changed, 36 insertions(+) - create mode 100644 text.txt -Switched to a new branch 'remote' -[remote be82dcf] Remove cruft + 1 file changed, 1 insertion(+) + create mode 100644 one.t +[master 139b20d] two Author: A U Thor - 1 file changed, 9 insertions(+), 10 deletions(-) -Switched to branch 'master' -[master 0ab7224] Clarify + 1 file changed, 1 insertion(+) + create mode 100644 two.t +Switched to branch 'left' +[left 897c206] three Author: A U Thor - 1 file changed, 6 insertions(+), 6 deletions(-) -* [master] Clarify - ! [remote] Remove cruft --- - + [remote] Remove cruft -* [master] Clarify -*+ [remote^] Initial revision + 1 file changed, 1 insertion(+) + create mode 100644 three.t +Switched to branch 'right' +[right bd0edcc] four + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 four.t +Switched to a new branch 'newroot' +[newroot (root-commit) 5280273] five + Author: A U Thor + 3 files changed, 3 insertions(+) + create mode 100644 five.t + create mode 100644 four.t + create mode 100644 one.t +Switched to branch 'master' ok 1 - setup -expecting success of 6432.2 'naive merge fails': - git read-tree --reset -u HEAD && - test_must_fail git merge-recursive HEAD^ -- HEAD remote && - test_must_fail git update-index --refresh && - grep "<<<<<<" text.txt +expecting success of 6433.2 'merge an octopus into void': + t3033_reset && + git checkout --orphan test && + git rm -fr . && + test_must_fail git merge left right && + test_must_fail git rev-parse --verify HEAD && + git diff --quiet && + test_must_fail git rev-parse HEAD -Merging HEAD with remote -Merging: -0ab7224 Clarify -be82dcf Remove cruft -found 1 common ancestor: -c1e95d9 Initial revision -Auto-merging text.txt -CONFLICT (content): Merge conflict in text.txt -text.txt: needs merge -<<<<<<< HEAD -<<<<<<< HEAD -ok 2 - naive merge fails +Reset branch 'master' +Switched to a new branch 'test' +rm 'one.t' +rm 'two.t' +fatal: Can merge only exactly one commit into empty head +fatal: Needed a single revision +fatal: ambiguous argument 'HEAD': unknown revision or path not in the working tree. +Use '--' to separate paths from revisions, like this: +'git [...] -- [...]' +HEAD +ok 2 - merge an octopus into void -expecting success of 6432.3 '--ignore-space-change makes merge succeed': - git read-tree --reset -u HEAD && - git merge-recursive --ignore-space-change HEAD^ -- HEAD remote +expecting success of 6433.3 'merge an octopus, fast-forward (ff)': + t3033_reset && + git reset --hard one && + git merge left right && + # one is ancestor of three (left) and four (right) + test_must_fail git rev-parse --verify HEAD^3 && + git rev-parse HEAD^1 HEAD^2 | sort >actual && + git rev-parse three four | sort >expect && + test_cmp expect actual -Merging HEAD with remote -Merging: -0ab7224 Clarify -be82dcf Remove cruft -found 1 common ancestor: -c1e95d9 Initial revision -Auto-merging text.txt -ok 3 - --ignore-space-change makes merge succeed +Switched to and reset branch 'master' +HEAD is now at d79ce16 one +Fast-forwarding to: left +Trying simple merge with right +Merge made by the 'octopus' strategy. + four.t | 1 + + three.t | 1 + + 2 files changed, 2 insertions(+) + create mode 100644 four.t + create mode 100644 three.t +fatal: Needed a single revision +ok 3 - merge an octopus, fast-forward (ff) -expecting success of 6432.4 'naive cherry-pick fails': - git read-tree --reset -u HEAD && - test_must_fail git cherry-pick --no-commit remote && - git read-tree --reset -u HEAD && - test_must_fail git cherry-pick remote && - test_must_fail git update-index --refresh && - grep "<<<<<<" text.txt +expecting success of 6433.4 'merge octopus, non-fast-forward (ff)': + t3033_reset && + git reset --hard one && + git merge --no-ff left right && + # one is ancestor of three (left) and four (right) + test_must_fail git rev-parse --verify HEAD^4 && + git rev-parse HEAD^1 HEAD^2 HEAD^3 | sort >actual && + git rev-parse one three four | sort >expect && + test_cmp expect actual -Auto-merging text.txt -CONFLICT (content): Merge conflict in text.txt -error: could not apply be82dcf... Remove cruft -hint: after resolving the conflicts, mark the corrected paths -hint: with 'git add ' or 'git rm ' -Auto-merging text.txt -CONFLICT (content): Merge conflict in text.txt -error: could not apply be82dcf... Remove cruft -hint: after resolving the conflicts, mark the corrected paths -hint: with 'git add ' or 'git rm ' -hint: and commit the result with 'git commit' -text.txt: needs merge -<<<<<<< HEAD -<<<<<<< HEAD -ok 4 - naive cherry-pick fails +Reset branch 'master' +HEAD is now at d79ce16 one +Fast-forwarding to: left +Trying simple merge with right +Merge made by the 'octopus' strategy. + four.t | 1 + + three.t | 1 + + 2 files changed, 2 insertions(+) + create mode 100644 four.t + create mode 100644 three.t +fatal: Needed a single revision +ok 4 - merge octopus, non-fast-forward (ff) -expecting success of 6432.5 '-Xignore-space-change makes cherry-pick succeed': - git read-tree --reset -u HEAD && - git cherry-pick --no-commit -Xignore-space-change remote +expecting success of 6433.5 'merge octopus, fast-forward (does not ff)': + t3033_reset && + git merge left right && + # two (master) is not an ancestor of three (left) and four (right) + test_must_fail git rev-parse --verify HEAD^4 && + git rev-parse HEAD^1 HEAD^2 HEAD^3 | sort >actual && + git rev-parse two three four | sort >expect && + test_cmp expect actual -Auto-merging text.txt -ok 5 - -Xignore-space-change makes cherry-pick succeed +Reset branch 'master' +Trying simple merge with left +Trying simple merge with right +Merge made by the 'octopus' strategy. + four.t | 1 + + three.t | 1 + + 2 files changed, 2 insertions(+) + create mode 100644 four.t + create mode 100644 three.t +fatal: Needed a single revision +ok 5 - merge octopus, fast-forward (does not ff) -expecting success of 6432.6 '--ignore-space-change: our w/s-only change wins': - q_to_cr <<-\EOF >expected && - justice and holiness and is the nurse of his age and theQ - EOF +expecting success of 6433.6 'merge octopus, non-fast-forward': + t3033_reset && + git merge --no-ff left right && + test_must_fail git rev-parse --verify HEAD^4 && + git rev-parse HEAD^1 HEAD^2 HEAD^3 | sort >actual && + git rev-parse two three four | sort >expect && + test_cmp expect actual - git read-tree --reset -u HEAD && - git merge-recursive --ignore-space-change HEAD^ -- HEAD remote && - grep "justice and holiness" text.txt >actual && - test_cmp expected actual +Reset branch 'master' +Trying simple merge with left +Trying simple merge with right +Merge made by the 'octopus' strategy. + four.t | 1 + + three.t | 1 + + 2 files changed, 2 insertions(+) + create mode 100644 four.t + create mode 100644 three.t +fatal: Needed a single revision +ok 6 - merge octopus, non-fast-forward -Merging HEAD with remote -Merging: -0ab7224 Clarify -be82dcf Remove cruft -found 1 common ancestor: -c1e95d9 Initial revision -Auto-merging text.txt -ok 6 - --ignore-space-change: our w/s-only change wins +expecting success of 6433.7 'merge FETCH_HEAD octopus into void': + t3033_reset && + git checkout --orphan test && + git rm -fr . && + git fetch . left right && + test_must_fail git merge FETCH_HEAD && + test_must_fail git rev-parse --verify HEAD && + git diff --quiet && + test_must_fail git rev-parse HEAD -expecting success of 6432.7 '--ignore-space-change: their real change wins over w/s': - cat <<-\EOF >expected && - it?---to speak the truth and to pay your debts---no more than this? And - EOF +Reset branch 'master' +Switched to a new branch 'test' +rm 'one.t' +rm 'two.t' +From . + * branch left -> FETCH_HEAD + * branch right -> FETCH_HEAD +fatal: Can merge only exactly one commit into empty head +fatal: Needed a single revision +fatal: ambiguous argument 'HEAD': unknown revision or path not in the working tree. +Use '--' to separate paths from revisions, like this: +'git [...] -- [...]' +HEAD +ok 7 - merge FETCH_HEAD octopus into void - git read-tree --reset -u HEAD && - git merge-recursive --ignore-space-change HEAD^ -- HEAD remote && - grep "pay your debts" text.txt >actual && - test_cmp expected actual +expecting success of 6433.8 'merge FETCH_HEAD octopus fast-forward (ff)': + t3033_reset && + git reset --hard one && + git fetch . left right && + git merge FETCH_HEAD && + # one is ancestor of three (left) and four (right) + test_must_fail git rev-parse --verify HEAD^3 && + git rev-parse HEAD^1 HEAD^2 | sort >actual && + git rev-parse three four | sort >expect && + test_cmp expect actual -Merging HEAD with remote -Merging: -0ab7224 Clarify -be82dcf Remove cruft -found 1 common ancestor: -c1e95d9 Initial revision -Auto-merging text.txt -ok 7 - --ignore-space-change: their real change wins over w/s +Switched to and reset branch 'master' +HEAD is now at d79ce16 one +From . + * branch left -> FETCH_HEAD + * branch right -> FETCH_HEAD +Fast-forwarding to: 897c20684b5db8602798bc55d628f0a264841fec +Trying simple merge with bd0edcc3f6e0375d96ab0d02fcc4c4a1fe1d8c5f +Merge made by the 'octopus' strategy. + four.t | 1 + + three.t | 1 + + 2 files changed, 2 insertions(+) + create mode 100644 four.t + create mode 100644 three.t +fatal: Needed a single revision +ok 8 - merge FETCH_HEAD octopus fast-forward (ff) -expecting success of 6432.8 '--ignore-space-change: does not ignore new spaces': - cat <<-\EOF >expected1 && - Well said, Cephalus, I replied; but as con cerning justice, what is - EOF - q_to_cr <<-\EOF >expected2 && - un intentionally; and when he departs to the world below he is not inQ - EOF +expecting success of 6433.9 'merge FETCH_HEAD octopus non-fast-forward (ff)': + t3033_reset && + git reset --hard one && + git fetch . left right && + git merge --no-ff FETCH_HEAD && + # one is ancestor of three (left) and four (right) + test_must_fail git rev-parse --verify HEAD^4 && + git rev-parse HEAD^1 HEAD^2 HEAD^3 | sort >actual && + git rev-parse one three four | sort >expect && + test_cmp expect actual - git read-tree --reset -u HEAD && - git merge-recursive --ignore-space-change HEAD^ -- HEAD remote && - grep "Well said" text.txt >actual1 && - grep "when he departs" text.txt >actual2 && - test_cmp expected1 actual1 && - test_cmp expected2 actual2 +Reset branch 'master' +HEAD is now at d79ce16 one +From . + * branch left -> FETCH_HEAD + * branch right -> FETCH_HEAD +Fast-forwarding to: 897c20684b5db8602798bc55d628f0a264841fec +Trying simple merge with bd0edcc3f6e0375d96ab0d02fcc4c4a1fe1d8c5f +Merge made by the 'octopus' strategy. + four.t | 1 + + three.t | 1 + + 2 files changed, 2 insertions(+) + create mode 100644 four.t + create mode 100644 three.t +fatal: Needed a single revision +ok 9 - merge FETCH_HEAD octopus non-fast-forward (ff) -Merging HEAD with remote -Merging: -0ab7224 Clarify -be82dcf Remove cruft -found 1 common ancestor: -c1e95d9 Initial revision -Auto-merging text.txt -ok 8 - --ignore-space-change: does not ignore new spaces +expecting success of 6433.10 'merge FETCH_HEAD octopus fast-forward (does not ff)': + t3033_reset && + git fetch . left right && + git merge FETCH_HEAD && + # two (master) is not an ancestor of three (left) and four (right) + test_must_fail git rev-parse --verify HEAD^4 && + git rev-parse HEAD^1 HEAD^2 HEAD^3 | sort >actual && + git rev-parse two three four | sort >expect && + test_cmp expect actual -expecting success of 6432.9 '--ignore-all-space drops their new spaces': - cat <<-\EOF >expected && - Well said, Cephalus, I replied; but as concerning justice, what is - EOF +Reset branch 'master' +From . + * branch left -> FETCH_HEAD + * branch right -> FETCH_HEAD +Trying simple merge with 897c20684b5db8602798bc55d628f0a264841fec +Trying simple merge with bd0edcc3f6e0375d96ab0d02fcc4c4a1fe1d8c5f +Merge made by the 'octopus' strategy. + four.t | 1 + + three.t | 1 + + 2 files changed, 2 insertions(+) + create mode 100644 four.t + create mode 100644 three.t +fatal: Needed a single revision +ok 10 - merge FETCH_HEAD octopus fast-forward (does not ff) - git read-tree --reset -u HEAD && - git merge-recursive --ignore-all-space HEAD^ -- HEAD remote && - grep "Well said" text.txt >actual && - test_cmp expected actual +expecting success of 6433.11 'merge FETCH_HEAD octopus non-fast-forward': + t3033_reset && + git fetch . left right && + git merge --no-ff FETCH_HEAD && + test_must_fail git rev-parse --verify HEAD^4 && + git rev-parse HEAD^1 HEAD^2 HEAD^3 | sort >actual && + git rev-parse two three four | sort >expect && + test_cmp expect actual -Merging HEAD with remote -Merging: -0ab7224 Clarify -be82dcf Remove cruft -found 1 common ancestor: -c1e95d9 Initial revision -Auto-merging text.txt -ok 9 - --ignore-all-space drops their new spaces +Reset branch 'master' +From . + * branch left -> FETCH_HEAD + * branch right -> FETCH_HEAD +Trying simple merge with 897c20684b5db8602798bc55d628f0a264841fec +Trying simple merge with bd0edcc3f6e0375d96ab0d02fcc4c4a1fe1d8c5f +Merge made by the 'octopus' strategy. + four.t | 1 + + three.t | 1 + + 2 files changed, 2 insertions(+) + create mode 100644 four.t + create mode 100644 three.t +fatal: Needed a single revision +ok 11 - merge FETCH_HEAD octopus non-fast-forward -expecting success of 6432.10 '--ignore-all-space keeps our new spaces': - q_to_cr <<-\EOF >expected && - un intentionally; and when he departs to the world below he is not inQ - EOF +expecting success of 6433.12 'refuse two-project merge by default': + t3033_reset && + git reset --hard four && + test_must_fail git merge five - git read-tree --reset -u HEAD && - git merge-recursive --ignore-all-space HEAD^ -- HEAD remote && - grep "when he departs" text.txt >actual && - test_cmp expected actual +Reset branch 'master' +HEAD is now at bd0edcc four +fatal: refusing to merge unrelated histories +ok 12 - refuse two-project merge by default -Merging HEAD with remote -Merging: -0ab7224 Clarify -be82dcf Remove cruft -found 1 common ancestor: -c1e95d9 Initial revision -Auto-merging text.txt -ok 10 - --ignore-all-space keeps our new spaces +expecting success of 6433.13 'refuse two-project merge by default, quit before --autostash happens': + t3033_reset && + git reset --hard four && + echo change >>one.t && + git diff >expect && + test_must_fail git merge --autostash five 2>err && + test_i18ngrep ! "stash" err && + git diff >actual && + test_cmp expect actual -expecting success of 6432.11 '--ignore-space-at-eol': - q_to_cr <<-\EOF >expected && - <<<<<<< HEAD - is not in his right mind; ought I to give them back to him? No oneQ - ======= - is not in his right mind, ought I to give them back to him? No one - >>>>>>> remote - EOF +Reset branch 'master' +HEAD is now at bd0edcc four +checking prerequisite: C_LOCALE_OUTPUT - git read-tree --reset -u HEAD && - test_must_fail git merge-recursive --ignore-space-at-eol \ - HEAD^ -- HEAD remote && - conflict_hunks text.txt >actual && - test_cmp expected actual +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false -Merging HEAD with remote +) +prerequisite C_LOCALE_OUTPUT ok +ok 13 - refuse two-project merge by default, quit before --autostash happens + +expecting success of 6433.14 'two-project merge with --allow-unrelated-histories': + t3033_reset && + git reset --hard four && + git merge --allow-unrelated-histories five && + git diff --exit-code five + +Reset branch 'master' +M one.t +HEAD is now at bd0edcc four Merging: -0ab7224 Clarify -be82dcf Remove cruft -found 1 common ancestor: -c1e95d9 Initial revision -Auto-merging text.txt -CONFLICT (content): Merge conflict in text.txt -ok 11 - --ignore-space-at-eol +bd0edcc four +virtual five +found 0 common ancestors: +Merge made by the 'recursive' strategy. + five.t | 1 + + 1 file changed, 1 insertion(+) + create mode 100644 five.t +ok 14 - two-project merge with --allow-unrelated-histories -# passed all 11 test(s) -1..11 +expecting success of 6433.15 'two-project merge with --allow-unrelated-histories with --autostash': + t3033_reset && + git reset --hard four && + echo change >>one.t && + git diff one.t >expect && + git merge --allow-unrelated-histories --autostash five 2>err && + test_i18ngrep "Applied autostash." err && + git diff one.t >actual && + test_cmp expect actual + +Reset branch 'master' +HEAD is now at bd0edcc four +Created autostash: e4c3b0a +Merging: +bd0edcc four +virtual five +found 0 common ancestors: +Merge made by the 'recursive' strategy. + five.t | 1 + + 1 file changed, 1 insertion(+) + create mode 100644 five.t +Applied autostash. +ok 15 - two-project merge with --allow-unrelated-histories with --autostash + +# passed all 15 test(s) +1..15 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' *** t6434-merge-recursive-rename-options.sh *** @@ -320447,446 +320739,6 @@ 1..27 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t6433-merge-toplevel.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6433-merge-toplevel/.git/ -expecting success of 6433.1 'setup': - test_commit one && - git branch left && - git branch right && - test_commit two && - git checkout left && - test_commit three && - git checkout right && - test_commit four && - git checkout --orphan newroot && - test_commit five && - git checkout master - -[master (root-commit) d79ce16] one - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 one.t -[master 139b20d] two - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 two.t -Switched to branch 'left' -[left 897c206] three - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 three.t -Switched to branch 'right' -[right bd0edcc] four - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 four.t -Switched to a new branch 'newroot' -[newroot (root-commit) 5280273] five - Author: A U Thor - 3 files changed, 3 insertions(+) - create mode 100644 five.t - create mode 100644 four.t - create mode 100644 one.t -Switched to branch 'master' -ok 1 - setup - -expecting success of 6433.2 'merge an octopus into void': - t3033_reset && - git checkout --orphan test && - git rm -fr . && - test_must_fail git merge left right && - test_must_fail git rev-parse --verify HEAD && - git diff --quiet && - test_must_fail git rev-parse HEAD - -Reset branch 'master' -Switched to a new branch 'test' -rm 'one.t' -rm 'two.t' -fatal: Can merge only exactly one commit into empty head -fatal: Needed a single revision -fatal: ambiguous argument 'HEAD': unknown revision or path not in the working tree. -Use '--' to separate paths from revisions, like this: -'git [...] -- [...]' -HEAD -ok 2 - merge an octopus into void - -expecting success of 6433.3 'merge an octopus, fast-forward (ff)': - t3033_reset && - git reset --hard one && - git merge left right && - # one is ancestor of three (left) and four (right) - test_must_fail git rev-parse --verify HEAD^3 && - git rev-parse HEAD^1 HEAD^2 | sort >actual && - git rev-parse three four | sort >expect && - test_cmp expect actual - -Switched to and reset branch 'master' -HEAD is now at d79ce16 one -Fast-forwarding to: left -Trying simple merge with right -Merge made by the 'octopus' strategy. - four.t | 1 + - three.t | 1 + - 2 files changed, 2 insertions(+) - create mode 100644 four.t - create mode 100644 three.t -fatal: Needed a single revision -ok 3 - merge an octopus, fast-forward (ff) - -expecting success of 6433.4 'merge octopus, non-fast-forward (ff)': - t3033_reset && - git reset --hard one && - git merge --no-ff left right && - # one is ancestor of three (left) and four (right) - test_must_fail git rev-parse --verify HEAD^4 && - git rev-parse HEAD^1 HEAD^2 HEAD^3 | sort >actual && - git rev-parse one three four | sort >expect && - test_cmp expect actual - -Reset branch 'master' -HEAD is now at d79ce16 one -Fast-forwarding to: left -Trying simple merge with right -Merge made by the 'octopus' strategy. - four.t | 1 + - three.t | 1 + - 2 files changed, 2 insertions(+) - create mode 100644 four.t - create mode 100644 three.t -fatal: Needed a single revision -ok 4 - merge octopus, non-fast-forward (ff) - -expecting success of 6433.5 'merge octopus, fast-forward (does not ff)': - t3033_reset && - git merge left right && - # two (master) is not an ancestor of three (left) and four (right) - test_must_fail git rev-parse --verify HEAD^4 && - git rev-parse HEAD^1 HEAD^2 HEAD^3 | sort >actual && - git rev-parse two three four | sort >expect && - test_cmp expect actual - -Reset branch 'master' -Trying simple merge with left -Trying simple merge with right -Merge made by the 'octopus' strategy. - four.t | 1 + - three.t | 1 + - 2 files changed, 2 insertions(+) - create mode 100644 four.t - create mode 100644 three.t -fatal: Needed a single revision -ok 5 - merge octopus, fast-forward (does not ff) - -expecting success of 6433.6 'merge octopus, non-fast-forward': - t3033_reset && - git merge --no-ff left right && - test_must_fail git rev-parse --verify HEAD^4 && - git rev-parse HEAD^1 HEAD^2 HEAD^3 | sort >actual && - git rev-parse two three four | sort >expect && - test_cmp expect actual - -Reset branch 'master' -Trying simple merge with left -Trying simple merge with right -Merge made by the 'octopus' strategy. - four.t | 1 + - three.t | 1 + - 2 files changed, 2 insertions(+) - create mode 100644 four.t - create mode 100644 three.t -fatal: Needed a single revision -ok 6 - merge octopus, non-fast-forward - -expecting success of 6433.7 'merge FETCH_HEAD octopus into void': - t3033_reset && - git checkout --orphan test && - git rm -fr . && - git fetch . left right && - test_must_fail git merge FETCH_HEAD && - test_must_fail git rev-parse --verify HEAD && - git diff --quiet && - test_must_fail git rev-parse HEAD - -Reset branch 'master' -Switched to a new branch 'test' -rm 'one.t' -rm 'two.t' -From . - * branch left -> FETCH_HEAD - * branch right -> FETCH_HEAD -fatal: Can merge only exactly one commit into empty head -fatal: Needed a single revision -fatal: ambiguous argument 'HEAD': unknown revision or path not in the working tree. -Use '--' to separate paths from revisions, like this: -'git [...] -- [...]' -HEAD -ok 7 - merge FETCH_HEAD octopus into void - -expecting success of 6433.8 'merge FETCH_HEAD octopus fast-forward (ff)': - t3033_reset && - git reset --hard one && - git fetch . left right && - git merge FETCH_HEAD && - # one is ancestor of three (left) and four (right) - test_must_fail git rev-parse --verify HEAD^3 && - git rev-parse HEAD^1 HEAD^2 | sort >actual && - git rev-parse three four | sort >expect && - test_cmp expect actual - -Switched to and reset branch 'master' -HEAD is now at d79ce16 one -From . - * branch left -> FETCH_HEAD - * branch right -> FETCH_HEAD -Fast-forwarding to: 897c20684b5db8602798bc55d628f0a264841fec -Trying simple merge with bd0edcc3f6e0375d96ab0d02fcc4c4a1fe1d8c5f -Merge made by the 'octopus' strategy. - four.t | 1 + - three.t | 1 + - 2 files changed, 2 insertions(+) - create mode 100644 four.t - create mode 100644 three.t -fatal: Needed a single revision -ok 8 - merge FETCH_HEAD octopus fast-forward (ff) - -expecting success of 6433.9 'merge FETCH_HEAD octopus non-fast-forward (ff)': - t3033_reset && - git reset --hard one && - git fetch . left right && - git merge --no-ff FETCH_HEAD && - # one is ancestor of three (left) and four (right) - test_must_fail git rev-parse --verify HEAD^4 && - git rev-parse HEAD^1 HEAD^2 HEAD^3 | sort >actual && - git rev-parse one three four | sort >expect && - test_cmp expect actual - -Reset branch 'master' -HEAD is now at d79ce16 one -From . - * branch left -> FETCH_HEAD - * branch right -> FETCH_HEAD -Fast-forwarding to: 897c20684b5db8602798bc55d628f0a264841fec -Trying simple merge with bd0edcc3f6e0375d96ab0d02fcc4c4a1fe1d8c5f -Merge made by the 'octopus' strategy. - four.t | 1 + - three.t | 1 + - 2 files changed, 2 insertions(+) - create mode 100644 four.t - create mode 100644 three.t -fatal: Needed a single revision -ok 9 - merge FETCH_HEAD octopus non-fast-forward (ff) - -expecting success of 6433.10 'merge FETCH_HEAD octopus fast-forward (does not ff)': - t3033_reset && - git fetch . left right && - git merge FETCH_HEAD && - # two (master) is not an ancestor of three (left) and four (right) - test_must_fail git rev-parse --verify HEAD^4 && - git rev-parse HEAD^1 HEAD^2 HEAD^3 | sort >actual && - git rev-parse two three four | sort >expect && - test_cmp expect actual - -Reset branch 'master' -From . - * branch left -> FETCH_HEAD - * branch right -> FETCH_HEAD -Trying simple merge with 897c20684b5db8602798bc55d628f0a264841fec -Trying simple merge with bd0edcc3f6e0375d96ab0d02fcc4c4a1fe1d8c5f -Merge made by the 'octopus' strategy. - four.t | 1 + - three.t | 1 + - 2 files changed, 2 insertions(+) - create mode 100644 four.t - create mode 100644 three.t -fatal: Needed a single revision -ok 10 - merge FETCH_HEAD octopus fast-forward (does not ff) - -expecting success of 6433.11 'merge FETCH_HEAD octopus non-fast-forward': - t3033_reset && - git fetch . left right && - git merge --no-ff FETCH_HEAD && - test_must_fail git rev-parse --verify HEAD^4 && - git rev-parse HEAD^1 HEAD^2 HEAD^3 | sort >actual && - git rev-parse two three four | sort >expect && - test_cmp expect actual - -Reset branch 'master' -From . - * branch left -> FETCH_HEAD - * branch right -> FETCH_HEAD -Trying simple merge with 897c20684b5db8602798bc55d628f0a264841fec -Trying simple merge with bd0edcc3f6e0375d96ab0d02fcc4c4a1fe1d8c5f -Merge made by the 'octopus' strategy. - four.t | 1 + - three.t | 1 + - 2 files changed, 2 insertions(+) - create mode 100644 four.t - create mode 100644 three.t -fatal: Needed a single revision -ok 11 - merge FETCH_HEAD octopus non-fast-forward - -expecting success of 6433.12 'refuse two-project merge by default': - t3033_reset && - git reset --hard four && - test_must_fail git merge five - -Reset branch 'master' -HEAD is now at bd0edcc four -fatal: refusing to merge unrelated histories -ok 12 - refuse two-project merge by default - -expecting success of 6433.13 'refuse two-project merge by default, quit before --autostash happens': - t3033_reset && - git reset --hard four && - echo change >>one.t && - git diff >expect && - test_must_fail git merge --autostash five 2>err && - test_i18ngrep ! "stash" err && - git diff >actual && - test_cmp expect actual - -Reset branch 'master' -HEAD is now at bd0edcc four -checking prerequisite: C_LOCALE_OUTPUT - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false - -) -prerequisite C_LOCALE_OUTPUT ok -ok 13 - refuse two-project merge by default, quit before --autostash happens - -expecting success of 6433.14 'two-project merge with --allow-unrelated-histories': - t3033_reset && - git reset --hard four && - git merge --allow-unrelated-histories five && - git diff --exit-code five - -Reset branch 'master' -M one.t -HEAD is now at bd0edcc four -Merging: -bd0edcc four -virtual five -found 0 common ancestors: -Merge made by the 'recursive' strategy. - five.t | 1 + - 1 file changed, 1 insertion(+) - create mode 100644 five.t -ok 14 - two-project merge with --allow-unrelated-histories - -expecting success of 6433.15 'two-project merge with --allow-unrelated-histories with --autostash': - t3033_reset && - git reset --hard four && - echo change >>one.t && - git diff one.t >expect && - git merge --allow-unrelated-histories --autostash five 2>err && - test_i18ngrep "Applied autostash." err && - git diff one.t >actual && - test_cmp expect actual - -Reset branch 'master' -HEAD is now at bd0edcc four -Created autostash: e4c3b0a -Merging: -bd0edcc four -virtual five -found 0 common ancestors: -Merge made by the 'recursive' strategy. - five.t | 1 + - 1 file changed, 1 insertion(+) - create mode 100644 five.t -Applied autostash. -ok 15 - two-project merge with --allow-unrelated-histories with --autostash - -# passed all 15 test(s) -1..15 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t6435-merge-sparse.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6435-merge-sparse/.git/ -expecting success of 6435.1 'setup': - test_file checked-out init && - test_file modify_delete modify_delete_init && - test_commit_this init && - test_file modify_delete modify_delete_theirs && - test_commit_this theirs && - git reset --hard init && - git rm modify_delete && - test_commit_this ours && - git config core.sparseCheckout true && - echo "/checked-out" >.git/info/sparse-checkout && - git reset --hard && - test_must_fail git merge theirs - -[master (root-commit) badb3ac] init - Author: A U Thor - 2 files changed, 2 insertions(+) - create mode 100644 checked-out - create mode 100644 modify_delete -[master 1c06c2f] theirs - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -HEAD is now at badb3ac init -rm 'modify_delete' -[master 3dfe889] ours - Author: A U Thor - 1 file changed, 1 deletion(-) - delete mode 100644 modify_delete -HEAD is now at 3dfe889 ours -Merging: -3dfe889 ours -virtual theirs -found 1 common ancestor: -badb3ac init -CONFLICT (modify/delete): modify_delete deleted in HEAD and modified in theirs. Version theirs of modify_delete left in tree. -Automatic merge failed; fix conflicts and then commit the result. -ok 1 - setup - -expecting success of 6435.2 'reset --hard works after the conflict': - git reset --hard - -HEAD is now at 3dfe889 ours -ok 2 - reset --hard works after the conflict - -expecting success of 6435.3 'is reset properly': - git status --porcelain -- modify_delete >out && - test_must_be_empty out && - test_path_is_missing modify_delete - -ok 3 - is reset properly - -expecting success of 6435.4 'setup: conflict back': - test_must_fail git merge theirs - -Merging: -3dfe889 ours -virtual theirs -found 1 common ancestor: -badb3ac init -CONFLICT (modify/delete): modify_delete deleted in HEAD and modified in theirs. Version theirs of modify_delete left in tree. -Automatic merge failed; fix conflicts and then commit the result. -ok 4 - setup: conflict back - -expecting success of 6435.5 'Merge abort works after the conflict': - git merge --abort - -ok 5 - Merge abort works after the conflict - -expecting success of 6435.6 'is aborted properly': - git status --porcelain -- modify_delete >out && - test_must_be_empty out && - test_path_is_missing modify_delete - -ok 6 - is aborted properly - -# passed all 6 test(s) -1..6 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' *** t6436-merge-overwrite.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6436-merge-overwrite/.git/ expecting success of 6436.1 'setup': @@ -321248,6 +321100,164 @@ 1..18 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t6439-merge-co-error-msgs.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6439-merge-co-error-msgs/.git/ +expecting success of 6439.1 'setup': + echo one >one && + git add one && + git commit -a -m First && + + git checkout -b branch && + echo two >two && + echo three >three && + echo four >four && + echo five >five && + git add two three four five && + git commit -m Second && + + git checkout master && + echo other >two && + echo other >three && + echo other >four && + echo other >five + +[master (root-commit) 3083e2d] First + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 one +Switched to a new branch 'branch' +[branch c53906c] Second + Author: A U Thor + 4 files changed, 4 insertions(+) + create mode 100644 five + create mode 100644 four + create mode 100644 three + create mode 100644 two +Switched to branch 'master' +ok 1 - setup + +expecting success of 6439.2 'untracked files overwritten by merge (fast and non-fast forward)': + test_must_fail git merge branch 2>out && + test_i18ncmp out expect && + git commit --allow-empty -m empty && + ( + GIT_MERGE_VERBOSITY=0 && + export GIT_MERGE_VERBOSITY && + test_must_fail git merge branch 2>out2 + ) && + test_i18ncmp out2 expect && + git reset --hard HEAD^ + +Updating 3083e2d..c53906c +checking prerequisite: C_LOCALE_OUTPUT + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false + +) +prerequisite C_LOCALE_OUTPUT ok +[master 47a855e] empty + Author: A U Thor +HEAD is now at 3083e2d First +ok 2 - untracked files overwritten by merge (fast and non-fast forward) + +expecting success of 6439.3 'untracked files or local changes ovewritten by merge': + git add two && + git add three && + git add four && + test_must_fail git merge branch 2>out && + test_i18ncmp out expect + +Updating 3083e2d..c53906c +ok 3 - untracked files or local changes ovewritten by merge + +expecting success of 6439.4 'cannot switch branches because of local changes': + git add five && + mkdir rep && + echo one >rep/one && + echo two >rep/two && + git add rep/one rep/two && + git commit -m Fourth && + git checkout master && + echo uno >rep/one && + echo dos >rep/two && + test_must_fail git checkout branch 2>out && + test_i18ncmp out expect + +[master d37de72] Fourth + Author: A U Thor + 6 files changed, 6 insertions(+) + create mode 100644 five + create mode 100644 four + create mode 100644 rep/one + create mode 100644 rep/two + create mode 100644 three + create mode 100644 two +Already on 'master' +ok 4 - cannot switch branches because of local changes + +expecting success of 6439.5 'not uptodate file porcelain checkout error': + git add rep/one rep/two && + test_must_fail git checkout branch 2>out && + test_i18ncmp out expect + +ok 5 - not uptodate file porcelain checkout error + +expecting success of 6439.6 'not_uptodate_dir porcelain checkout error': + git init uptodate && + cd uptodate && + mkdir rep && + mkdir rep2 && + touch rep/foo && + touch rep2/foo && + git add rep/foo rep2/foo && + git commit -m init && + git checkout -b branch && + git rm rep -r && + git rm rep2 -r && + >rep && + >rep2 && + git add rep rep2 && + git commit -m "added test as a file" && + git checkout master && + >rep/untracked-file && + >rep2/untracked-file && + test_must_fail git checkout branch 2>out && + test_i18ncmp out ../expect + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6439-merge-co-error-msgs/uptodate/.git/ +[master (root-commit) 12cbe1c] init + Author: A U Thor + 2 files changed, 0 insertions(+), 0 deletions(-) + create mode 100644 rep/foo + create mode 100644 rep2/foo +Switched to a new branch 'branch' +rm 'rep/foo' +rm 'rep2/foo' +[branch 5db55b7] added test as a file + Author: A U Thor + 2 files changed, 0 insertions(+), 0 deletions(-) + rename rep/foo => rep (100%) + rename rep2/foo => rep2 (100%) +Switched to branch 'master' +ok 6 - not_uptodate_dir porcelain checkout error + +# passed all 6 test(s) +1..6 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t6437-submodule-merge.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6437-submodule-merge/.git/ expecting success of 6437.1 'setup': @@ -322115,7 +322125,7 @@ Automatic merge failed; fix conflicts and then commit the result. Checking if contents from B1:path/file showed up Path exists: --rw-r--r-- 1 pbuilder1 pbuilder1 9 Apr 29 16:40 path/file +-rw-r--r-- 1 pbuilder2 pbuilder2 9 Apr 29 18:28 path/file path/file HEAD is now at 90b0bac A not ok 16 - directory/submodule conflict; keep submodule clean # TODO known breakage @@ -322199,6 +322209,671 @@ 1..18 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t6500-gc.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6500-gc/.git/ +expecting success of 6500.1 'setup': + # do not let the amount of physical memory affects gc + # behavior, make sure we always pack everything to one pack by + # default + git config gc.bigPackThreshold 2g && + + # These are simply values which, when hashed as a blob with a newline, + # produce a hash where the first byte is 0x17 in their respective + # algorithms. + test_oid_cache <<-EOF + obj1 sha1:263 + obj1 sha256:34 + + obj2 sha1:410 + obj2 sha256:174 + + obj3 sha1:523 + obj3 sha256:313 + + obj4 sha1:790 + obj4 sha256:481 + EOF + +ok 1 - setup + +expecting success of 6500.2 'gc empty repository': + git gc + +Nothing new to pack. +ok 2 - gc empty repository + +expecting success of 6500.3 'gc does not leave behind pid file': + git gc && + test_path_is_missing .git/gc.pid + +Nothing new to pack. +ok 3 - gc does not leave behind pid file + +expecting success of 6500.4 'gc --gobbledegook': + test_expect_code 129 git gc --nonsense 2>err && + test_i18ngrep "[Uu]sage: git gc" err + +checking prerequisite: C_LOCALE_OUTPUT + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false + +) +prerequisite C_LOCALE_OUTPUT ok +usage: git gc [] +ok 4 - gc --gobbledegook + +expecting success of 6500.5 'gc -h with invalid configuration': + mkdir broken && + ( + cd broken && + git init && + echo "[gc] pruneexpire = CORRUPT" >>.git/config && + test_expect_code 129 git gc -h >usage 2>&1 + ) && + test_i18ngrep "[Uu]sage" broken/usage + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6500-gc/broken/.git/ +usage: git gc [] +ok 5 - gc -h with invalid configuration + +expecting success of 6500.6 'gc is not aborted due to a stale symref': + git init remote && + ( + cd remote && + test_commit initial && + git clone . ../client && + git branch -m develop && + cd ../client && + git fetch --prune && + git gc + ) + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6500-gc/remote/.git/ +[master (root-commit) 24b24cf] initial + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 initial.t +Cloning into '../client'... +done. +From /build/git-2.30.2/t/trash directory.t6500-gc/remote/. + - [deleted] (none) -> origin/master + (refs/remotes/origin/HEAD has become dangling) + * [new branch] develop -> origin/develop +ok 6 - gc is not aborted due to a stale symref + +expecting success of 6500.7 'gc --keep-largest-pack': + test_create_repo keep-pack && + ( + cd keep-pack && + test_commit one && + test_commit two && + test_commit three && + git gc && + ( cd .git/objects/pack && ls *.pack ) >pack-list && + test_line_count = 1 pack-list && + BASE_PACK=.git/objects/pack/pack-*.pack && + test_commit four && + git repack -d && + test_commit five && + git repack -d && + ( cd .git/objects/pack && ls *.pack ) >pack-list && + test_line_count = 3 pack-list && + git gc --keep-largest-pack && + ( cd .git/objects/pack && ls *.pack ) >pack-list && + test_line_count = 2 pack-list && + awk "/^P /{print \$2}" <.git/objects/info/packs >pack-info && + test_line_count = 2 pack-info && + test_path_is_file $BASE_PACK && + git fsck + ) + +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6500-gc/keep-pack/.git/ +[master (root-commit) d79ce16] one + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 one.t +[master 139b20d] two + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 two.t +[master 7c7cd71] three + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 three.t +[master fd8d77e] four + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 four.t +[master a383792] five + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 five.t +ok 7 - gc --keep-largest-pack + +expecting success of 6500.8 'auto gc with too many loose objects does not attempt to create bitmaps': + test_config gc.auto 3 && + test_config gc.autodetach false && + test_config pack.writebitmaps true && + # We need to create two object whose sha1s start with 17 + # since this is what git gc counts. As it happens, these + # two blobs will do so. + test_commit "$(test_oid obj1)" && + test_commit "$(test_oid obj2)" && + # Our first gc will create a pack; our second will create a second pack + git gc --auto && + ls .git/objects/pack | sort >existing_packs && + test_commit "$(test_oid obj3)" && + test_commit "$(test_oid obj4)" && + + git gc --auto 2>err && + test_i18ngrep ! "^warning:" err && + ls .git/objects/pack/ | sort >post_packs && + comm -1 -3 existing_packs post_packs >new && + comm -2 -3 existing_packs post_packs >del && + test_line_count = 0 del && # No packs are deleted + test_line_count = 2 new # There is one new pack and its .idx + +[master (root-commit) 1808a60] 263 + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 263.t +Auto packing the repository for optimum performance. +See "git help gc" for manual housekeeping. +[master 9a14344] 410 + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 410.t +[master 54e21e7] 523 + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 523.t +Auto packing the repository for optimum performance. +See "git help gc" for manual housekeeping. +[master 60dd8ad] 790 + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 790.t +ok 8 - auto gc with too many loose objects does not attempt to create bitmaps + +expecting success of 6500.9 'gc --no-quiet': + GIT_PROGRESS_DELAY=0 git -c gc.writeCommitGraph=true gc --no-quiet >stdout 2>stderr && + test_must_be_empty stdout && + test_i18ngrep "Computing commit graph generation numbers" stderr + +Computing commit graph generation numbers: 25% (1/4) Computing commit graph generation numbers: 50% (2/4) Computing commit graph generation numbers: 75% (3/4) Computing commit graph generation numbers: 100% (4/4) Computing commit graph generation numbers: 100% (4/4), done. +ok 9 - gc --no-quiet + +checking prerequisite: TTY + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-TTY" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-TTY" && + test_have_prereq PERL && + + # Reading from the pty master seems to get stuck _sometimes_ + # on Mac OS X 10.5.0, using Perl 5.10.0 or 5.8.9. + # + # Reproduction recipe: run + # + # i=0 + # while ./test-terminal.perl echo hi $i + # do + # : $((i = $i + 1)) + # done + # + # After 2000 iterations or so it hangs. + # https://rt.cpan.org/Ticket/Display.html?id=65692 + # + test "$(uname -s)" != Darwin && + + perl "$TEST_DIRECTORY"/test-terminal.perl \ + sh -c "test -t 1 && test -t 2" + +) +prerequisite TTY ok +expecting success of 6500.10 'with TTY: gc --no-quiet': + test_terminal env GIT_PROGRESS_DELAY=0 \ + git -c gc.writeCommitGraph=true gc --no-quiet >stdout 2>stderr && + test_must_be_empty stdout && + test_i18ngrep "Enumerating objects" stderr && + test_i18ngrep "Computing commit graph generation numbers" stderr + +Enumerating objects: 12, done. +Computing commit graph generation numbers: 25% (1/4) Computing commit graph generation numbers: 50% (2/4) Computing commit graph generation numbers: 75% (3/4) Computing commit graph generation numbers: 100% (4/4) Computing commit graph generation numbers: 100% (4/4), done. +ok 10 - with TTY: gc --no-quiet + +expecting success of 6500.11 'gc --quiet': + git -c gc.writeCommitGraph=true gc --quiet >stdout 2>stderr && + test_must_be_empty stdout && + test_must_be_empty stderr + +ok 11 - gc --quiet + +expecting success of 6500.12 'gc.reflogExpire{Unreachable,}=never skips "expire" via "gc"': + test_config gc.reflogExpire never && + test_config gc.reflogExpireUnreachable never && + + GIT_TRACE=$(pwd)/trace.out git gc && + + # Check that git-pack-refs is run as a sanity check (done via + # gc_before_repack()) but that git-expire is not. + grep -E "^trace: (built-in|exec|run_command): git pack-refs --" trace.out && + ! grep -E "^trace: (built-in|exec|run_command): git reflog expire --" trace.out + +trace: run_command: git pack-refs --all --prune +trace: built-in: git pack-refs --all --prune +ok 12 - gc.reflogExpire{Unreachable,}=never skips "expire" via "gc" + +expecting success of 6500.13 'one of gc.reflogExpire{Unreachable,}=never does not skip "expire" via "gc"': + >trace.out && + test_config gc.reflogExpire never && + GIT_TRACE=$(pwd)/trace.out git gc && + grep -E "^trace: (built-in|exec|run_command): git reflog expire --" trace.out + +trace: run_command: git reflog expire --all +trace: built-in: git reflog expire --all +ok 13 - one of gc.reflogExpire{Unreachable,}=never does not skip "expire" via "gc" + +expecting success of 6500.14 'background auto gc does not run if gc.log is present and recent but does if it is old': + test_commit foo && + test_commit bar && + git repack && + test_config gc.autopacklimit 1 && + test_config gc.autodetach true && + echo fleem >.git/gc.log && + git gc --auto 2>err && + test_i18ngrep "^warning:" err && + test_config gc.logexpiry 5.days && + test-tool chmtime =-345600 .git/gc.log && + git gc --auto && + test_config gc.logexpiry 2.days && + run_and_wait_for_auto_gc && + ls .git/objects/pack/pack-*.pack >packs && + test_line_count = 1 packs + +[master b16b551] foo + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 foo.t +[master fc616a4] bar + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 bar.t +warning: The last gc run reported the following. Please correct the root cause +Auto packing the repository in background for optimum performance. +See "git help gc" for manual housekeeping. +warning: The last gc run reported the following. Please correct the root cause +and remove .git/gc.log. +Automatic cleanup will not be performed until the file is removed. + +fleem + +Auto packing the repository in background for optimum performance. +See "git help gc" for manual housekeeping. +ok 14 - background auto gc does not run if gc.log is present and recent but does if it is old + +expecting success of 6500.15 'background auto gc respects lock for all operations': + # make sure we run a background auto-gc + test_commit make-pack && + git repack && + test_config gc.autopacklimit 1 && + test_config gc.autodetach true && + + # create a ref whose loose presence we can use to detect a pack-refs run + git update-ref refs/heads/should-be-loose HEAD && + test_path_is_file .git/refs/heads/should-be-loose && + + # now fake a concurrent gc that holds the lock; we can use our + # shell pid so that it looks valid. + hostname=$(hostname || echo unknown) && + shell_pid=$$ && + if test_have_prereq MINGW && test -f /proc/$shell_pid/winpid + then + # In Git for Windows, Bash (actually, the MSYS2 runtime) has a + # different idea of PIDs than git.exe (actually Windows). Use + # the Windows PID in this case. + shell_pid=$(cat /proc/$shell_pid/winpid) + fi && + printf "%d %s" "$shell_pid" "$hostname" >.git/gc.pid && + + # our gc should exit zero without doing anything + run_and_wait_for_auto_gc && + test_path_is_file .git/refs/heads/should-be-loose + +[master 28ecdda] make-pack + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 make-pack.t +Auto packing the repository in background for optimum performance. +See "git help gc" for manual housekeeping. +ok 15 - background auto gc respects lock for all operations + +# passed all 15 test(s) +1..15 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t6501-freshen-objects.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6501-freshen-objects/.git/ +expecting success of 6501.1 'make repo completely empty (loose)': + rm -rf .git && + git init + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6501-freshen-objects/.git/ +ok 1 - make repo completely empty (loose) + +expecting success of 6501.2 'disable reflogs (loose)': + git config core.logallrefupdates false && + git reflog expire --expire=all --all + +ok 2 - disable reflogs (loose) + +expecting success of 6501.3 'setup basic history (loose)': + commit base + +[master (root-commit) 8539479] base + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 base +ok 3 - setup basic history (loose) + +expecting success of 6501.4 'create and abandon some objects (loose)': + git checkout -b experiment && + commit abandon && + maybe_repack && + git checkout master && + git branch -D experiment + +Switched to a new branch 'experiment' +[experiment 20673e5] abandon + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 abandon +Switched to branch 'master' +Deleted branch experiment (was 20673e5). +ok 4 - create and abandon some objects (loose) + +expecting success of 6501.5 'simulate time passing (loose)': + test-tool chmtime --get -86400 $(find .git/objects -type f) + +1682706499 +1682706499 +1682706499 +1682706499 +1682706499 +1682706499 +ok 5 - simulate time passing (loose) + +expecting success of 6501.6 'start writing new commit with old blob (loose)': + tree=$( + GIT_INDEX_FILE=index.tmp && + export GIT_INDEX_FILE && + git read-tree HEAD && + add unrelated && + add abandon && + git write-tree + ) + +ok 6 - start writing new commit with old blob (loose) + +expecting success of 6501.7 'simultaneous gc (loose)': + git gc --prune=12.hours.ago + +ok 7 - simultaneous gc (loose) + +expecting success of 6501.8 'finish writing out commit (loose)': + commit=$(echo foo | git commit-tree -p HEAD $tree) && + git update-ref HEAD $commit + +ok 8 - finish writing out commit (loose) + +expecting success of 6501.9 'repository passes fsck (loose)': + git fsck + +ok 9 - repository passes fsck (loose) + +expecting success of 6501.10 'abandon objects again (loose)': + git reset --hard HEAD^ && + test-tool chmtime --get -86400 $(find .git/objects -type f) + +HEAD is now at 8539479 base +1682706500 +1682706500 +1682706500 +1682706500 +1682706501 +1682706500 +1682706500 +1682706500 +ok 10 - abandon objects again (loose) + +expecting success of 6501.11 'start writing new commit with same tree (loose)': + tree=$( + GIT_INDEX_FILE=index.tmp && + export GIT_INDEX_FILE && + git read-tree HEAD && + add abandon && + add unrelated && + git write-tree + ) + +ok 11 - start writing new commit with same tree (loose) + +expecting success of 6501.12 'simultaneous gc (loose)': + git gc --prune=12.hours.ago + +ok 12 - simultaneous gc (loose) + +expecting success of 6501.13 'finish writing out commit (loose)': + commit=$(echo foo | git commit-tree -p HEAD $tree) && + git update-ref HEAD $commit + +ok 13 - finish writing out commit (loose) + +expecting success of 6501.14 'make repo completely empty (repack)': + rm -rf .git && + git init + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6501-freshen-objects/.git/ +ok 14 - make repo completely empty (repack) + +expecting success of 6501.15 'disable reflogs (repack)': + git config core.logallrefupdates false && + git reflog expire --expire=all --all + +ok 15 - disable reflogs (repack) + +expecting success of 6501.16 'setup basic history (repack)': + commit base + +[master (root-commit) aa8ecd7] base + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 base +ok 16 - setup basic history (repack) + +expecting success of 6501.17 'create and abandon some objects (repack)': + git checkout -b experiment && + commit abandon && + maybe_repack && + git checkout master && + git branch -D experiment + +Switched to a new branch 'experiment' +[experiment ff26f38] abandon + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 abandon +Switched to branch 'master' +Deleted branch experiment (was ff26f38). +ok 17 - create and abandon some objects (repack) + +expecting success of 6501.18 'simulate time passing (repack)': + test-tool chmtime --get -86400 $(find .git/objects -type f) + +1682706503 +1682706503 +1682706503 +ok 18 - simulate time passing (repack) + +expecting success of 6501.19 'start writing new commit with old blob (repack)': + tree=$( + GIT_INDEX_FILE=index.tmp && + export GIT_INDEX_FILE && + git read-tree HEAD && + add unrelated && + add abandon && + git write-tree + ) + +ok 19 - start writing new commit with old blob (repack) + +expecting success of 6501.20 'simultaneous gc (repack)': + git gc --prune=12.hours.ago + +ok 20 - simultaneous gc (repack) + +expecting success of 6501.21 'finish writing out commit (repack)': + commit=$(echo foo | git commit-tree -p HEAD $tree) && + git update-ref HEAD $commit + +ok 21 - finish writing out commit (repack) + +expecting success of 6501.22 'repository passes fsck (repack)': + git fsck + +dangling commit ff26f380b0104eb69bd2bf57d64d6e29a12ae5fd +ok 22 - repository passes fsck (repack) + +expecting success of 6501.23 'abandon objects again (repack)': + git reset --hard HEAD^ && + test-tool chmtime --get -86400 $(find .git/objects -type f) + +HEAD is now at aa8ecd7 base +1682706504 +1682706504 +1682706504 +1682706504 +1682706504 +1682706504 +1682706504 +1682706504 +1682706504 +1682706504 +ok 23 - abandon objects again (repack) + +expecting success of 6501.24 'start writing new commit with same tree (repack)': + tree=$( + GIT_INDEX_FILE=index.tmp && + export GIT_INDEX_FILE && + git read-tree HEAD && + add abandon && + add unrelated && + git write-tree + ) + +ok 24 - start writing new commit with same tree (repack) + +expecting success of 6501.25 'simultaneous gc (repack)': + git gc --prune=12.hours.ago + +ok 25 - simultaneous gc (repack) + +expecting success of 6501.26 'finish writing out commit (repack)': + commit=$(echo foo | git commit-tree -p HEAD $tree) && + git update-ref HEAD $commit + +ok 26 - finish writing out commit (repack) + +expecting success of 6501.27 'do not complain about existing broken links (commit)': + cat >broken-commit <<-EOF && + tree $(test_oid 001) + parent $(test_oid 002) + author whatever 1234 -0000 + committer whatever 1234 -0000 + + some message + EOF + commit=$(git hash-object -t commit -w broken-commit) && + git gc -q 2>stderr && + verbose git cat-file -e $commit && + test_must_be_empty stderr + +ok 27 - do not complain about existing broken links (commit) + +expecting success of 6501.28 'do not complain about existing broken links (tree)': + cat >broken-tree <<-EOF && + 100644 blob $(test_oid 003) foo + EOF + tree=$(git mktree --missing stderr && + git cat-file -e $tree && + test_must_be_empty stderr + +ok 28 - do not complain about existing broken links (tree) + +expecting success of 6501.29 'do not complain about existing broken links (tag)': + cat >broken-tag <<-EOF && + object $(test_oid 004) + type commit + tag broken + tagger whatever 1234 -0000 + + this is a broken tag + EOF + tag=$(git hash-object -t tag -w broken-tag) && + git gc -q 2>stderr && + git cat-file -e $tag && + test_must_be_empty stderr + +ok 29 - do not complain about existing broken links (tag) + +# passed all 29 test(s) +1..29 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t6423-merge-rename-directories.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6423-merge-rename-directories/.git/ expecting success of 6423.1 '1a: Simple directory rename detection': @@ -327312,8 +327987,8 @@ Checking the pick of B1... fatal: path 'dir' does not exist in 'Bmod~1' Bmod~1:dir ---- expect 2023-04-29 16:40:00.247297393 +0000 -+++ actual 2023-04-29 16:40:00.235298574 +0000 +--- expect 2023-04-29 18:28:37.289984541 +0000 ++++ actual 2023-04-29 18:28:37.273986054 +0000 @@ -1,5 +1,5 @@ M folder/subdir/Makefile -A folder/subdir/newfile.c @@ -327904,829 +328579,6 @@ 1..68 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t6439-merge-co-error-msgs.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6439-merge-co-error-msgs/.git/ -expecting success of 6439.1 'setup': - echo one >one && - git add one && - git commit -a -m First && - - git checkout -b branch && - echo two >two && - echo three >three && - echo four >four && - echo five >five && - git add two three four five && - git commit -m Second && - - git checkout master && - echo other >two && - echo other >three && - echo other >four && - echo other >five - -[master (root-commit) 3083e2d] First - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 one -Switched to a new branch 'branch' -[branch c53906c] Second - Author: A U Thor - 4 files changed, 4 insertions(+) - create mode 100644 five - create mode 100644 four - create mode 100644 three - create mode 100644 two -Switched to branch 'master' -ok 1 - setup - -expecting success of 6439.2 'untracked files overwritten by merge (fast and non-fast forward)': - test_must_fail git merge branch 2>out && - test_i18ncmp out expect && - git commit --allow-empty -m empty && - ( - GIT_MERGE_VERBOSITY=0 && - export GIT_MERGE_VERBOSITY && - test_must_fail git merge branch 2>out2 - ) && - test_i18ncmp out2 expect && - git reset --hard HEAD^ - -Updating 3083e2d..c53906c -checking prerequisite: C_LOCALE_OUTPUT - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false - -) -prerequisite C_LOCALE_OUTPUT ok -[master 47a855e] empty - Author: A U Thor -HEAD is now at 3083e2d First -ok 2 - untracked files overwritten by merge (fast and non-fast forward) - -expecting success of 6439.3 'untracked files or local changes ovewritten by merge': - git add two && - git add three && - git add four && - test_must_fail git merge branch 2>out && - test_i18ncmp out expect - -Updating 3083e2d..c53906c -ok 3 - untracked files or local changes ovewritten by merge - -expecting success of 6439.4 'cannot switch branches because of local changes': - git add five && - mkdir rep && - echo one >rep/one && - echo two >rep/two && - git add rep/one rep/two && - git commit -m Fourth && - git checkout master && - echo uno >rep/one && - echo dos >rep/two && - test_must_fail git checkout branch 2>out && - test_i18ncmp out expect - -[master d37de72] Fourth - Author: A U Thor - 6 files changed, 6 insertions(+) - create mode 100644 five - create mode 100644 four - create mode 100644 rep/one - create mode 100644 rep/two - create mode 100644 three - create mode 100644 two -Already on 'master' -ok 4 - cannot switch branches because of local changes - -expecting success of 6439.5 'not uptodate file porcelain checkout error': - git add rep/one rep/two && - test_must_fail git checkout branch 2>out && - test_i18ncmp out expect - -ok 5 - not uptodate file porcelain checkout error - -expecting success of 6439.6 'not_uptodate_dir porcelain checkout error': - git init uptodate && - cd uptodate && - mkdir rep && - mkdir rep2 && - touch rep/foo && - touch rep2/foo && - git add rep/foo rep2/foo && - git commit -m init && - git checkout -b branch && - git rm rep -r && - git rm rep2 -r && - >rep && - >rep2 && - git add rep rep2 && - git commit -m "added test as a file" && - git checkout master && - >rep/untracked-file && - >rep2/untracked-file && - test_must_fail git checkout branch 2>out && - test_i18ncmp out ../expect - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6439-merge-co-error-msgs/uptodate/.git/ -[master (root-commit) 12cbe1c] init - Author: A U Thor - 2 files changed, 0 insertions(+), 0 deletions(-) - create mode 100644 rep/foo - create mode 100644 rep2/foo -Switched to a new branch 'branch' -rm 'rep/foo' -rm 'rep2/foo' -[branch 5db55b7] added test as a file - Author: A U Thor - 2 files changed, 0 insertions(+), 0 deletions(-) - rename rep/foo => rep (100%) - rename rep2/foo => rep2 (100%) -Switched to branch 'master' -ok 6 - not_uptodate_dir porcelain checkout error - -# passed all 6 test(s) -1..6 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t6501-freshen-objects.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6501-freshen-objects/.git/ -expecting success of 6501.1 'make repo completely empty (loose)': - rm -rf .git && - git init - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6501-freshen-objects/.git/ -ok 1 - make repo completely empty (loose) - -expecting success of 6501.2 'disable reflogs (loose)': - git config core.logallrefupdates false && - git reflog expire --expire=all --all - -ok 2 - disable reflogs (loose) - -expecting success of 6501.3 'setup basic history (loose)': - commit base - -[master (root-commit) 8539479] base - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 base -ok 3 - setup basic history (loose) - -expecting success of 6501.4 'create and abandon some objects (loose)': - git checkout -b experiment && - commit abandon && - maybe_repack && - git checkout master && - git branch -D experiment - -Switched to a new branch 'experiment' -[experiment 20673e5] abandon - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 abandon -Switched to branch 'master' -Deleted branch experiment (was 20673e5). -ok 4 - create and abandon some objects (loose) - -expecting success of 6501.5 'simulate time passing (loose)': - test-tool chmtime --get -86400 $(find .git/objects -type f) - -1682700009 -1682700009 -1682700009 -1682700009 -1682700009 -1682700009 -ok 5 - simulate time passing (loose) - -expecting success of 6501.6 'start writing new commit with old blob (loose)': - tree=$( - GIT_INDEX_FILE=index.tmp && - export GIT_INDEX_FILE && - git read-tree HEAD && - add unrelated && - add abandon && - git write-tree - ) - -ok 6 - start writing new commit with old blob (loose) - -expecting success of 6501.7 'simultaneous gc (loose)': - git gc --prune=12.hours.ago - -ok 7 - simultaneous gc (loose) - -expecting success of 6501.8 'finish writing out commit (loose)': - commit=$(echo foo | git commit-tree -p HEAD $tree) && - git update-ref HEAD $commit - -ok 8 - finish writing out commit (loose) - -expecting success of 6501.9 'repository passes fsck (loose)': - git fsck - -ok 9 - repository passes fsck (loose) - -expecting success of 6501.10 'abandon objects again (loose)': - git reset --hard HEAD^ && - test-tool chmtime --get -86400 $(find .git/objects -type f) - -HEAD is now at 8539479 base -1682700010 -1682700009 -1682700010 -1682700010 -1682700009 -1682700009 -1682700009 -1682700010 -ok 10 - abandon objects again (loose) - -expecting success of 6501.11 'start writing new commit with same tree (loose)': - tree=$( - GIT_INDEX_FILE=index.tmp && - export GIT_INDEX_FILE && - git read-tree HEAD && - add abandon && - add unrelated && - git write-tree - ) - -ok 11 - start writing new commit with same tree (loose) - -expecting success of 6501.12 'simultaneous gc (loose)': - git gc --prune=12.hours.ago - -ok 12 - simultaneous gc (loose) - -expecting success of 6501.13 'finish writing out commit (loose)': - commit=$(echo foo | git commit-tree -p HEAD $tree) && - git update-ref HEAD $commit - -ok 13 - finish writing out commit (loose) - -expecting success of 6501.14 'make repo completely empty (repack)': - rm -rf .git && - git init - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6501-freshen-objects/.git/ -ok 14 - make repo completely empty (repack) - -expecting success of 6501.15 'disable reflogs (repack)': - git config core.logallrefupdates false && - git reflog expire --expire=all --all - -ok 15 - disable reflogs (repack) - -expecting success of 6501.16 'setup basic history (repack)': - commit base - -[master (root-commit) aa8ecd7] base - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 base -ok 16 - setup basic history (repack) - -expecting success of 6501.17 'create and abandon some objects (repack)': - git checkout -b experiment && - commit abandon && - maybe_repack && - git checkout master && - git branch -D experiment - -Switched to a new branch 'experiment' -[experiment ff26f38] abandon - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 abandon -Switched to branch 'master' -Deleted branch experiment (was ff26f38). -ok 17 - create and abandon some objects (repack) - -expecting success of 6501.18 'simulate time passing (repack)': - test-tool chmtime --get -86400 $(find .git/objects -type f) - -1682700011 -1682700011 -1682700011 -ok 18 - simulate time passing (repack) - -expecting success of 6501.19 'start writing new commit with old blob (repack)': - tree=$( - GIT_INDEX_FILE=index.tmp && - export GIT_INDEX_FILE && - git read-tree HEAD && - add unrelated && - add abandon && - git write-tree - ) - -ok 19 - start writing new commit with old blob (repack) - -expecting success of 6501.20 'simultaneous gc (repack)': - git gc --prune=12.hours.ago - -ok 20 - simultaneous gc (repack) - -expecting success of 6501.21 'finish writing out commit (repack)': - commit=$(echo foo | git commit-tree -p HEAD $tree) && - git update-ref HEAD $commit - -ok 21 - finish writing out commit (repack) - -expecting success of 6501.22 'repository passes fsck (repack)': - git fsck - -dangling commit ff26f380b0104eb69bd2bf57d64d6e29a12ae5fd -ok 22 - repository passes fsck (repack) - -expecting success of 6501.23 'abandon objects again (repack)': - git reset --hard HEAD^ && - test-tool chmtime --get -86400 $(find .git/objects -type f) - -HEAD is now at aa8ecd7 base -1682700011 -1682700011 -1682700011 -1682700011 -1682700011 -1682700011 -1682700011 -1682700011 -1682700011 -1682700011 -ok 23 - abandon objects again (repack) - -expecting success of 6501.24 'start writing new commit with same tree (repack)': - tree=$( - GIT_INDEX_FILE=index.tmp && - export GIT_INDEX_FILE && - git read-tree HEAD && - add abandon && - add unrelated && - git write-tree - ) - -ok 24 - start writing new commit with same tree (repack) - -expecting success of 6501.25 'simultaneous gc (repack)': - git gc --prune=12.hours.ago - -ok 25 - simultaneous gc (repack) - -expecting success of 6501.26 'finish writing out commit (repack)': - commit=$(echo foo | git commit-tree -p HEAD $tree) && - git update-ref HEAD $commit - -ok 26 - finish writing out commit (repack) - -expecting success of 6501.27 'do not complain about existing broken links (commit)': - cat >broken-commit <<-EOF && - tree $(test_oid 001) - parent $(test_oid 002) - author whatever 1234 -0000 - committer whatever 1234 -0000 - - some message - EOF - commit=$(git hash-object -t commit -w broken-commit) && - git gc -q 2>stderr && - verbose git cat-file -e $commit && - test_must_be_empty stderr - -ok 27 - do not complain about existing broken links (commit) - -expecting success of 6501.28 'do not complain about existing broken links (tree)': - cat >broken-tree <<-EOF && - 100644 blob $(test_oid 003) foo - EOF - tree=$(git mktree --missing stderr && - git cat-file -e $tree && - test_must_be_empty stderr - -ok 28 - do not complain about existing broken links (tree) - -expecting success of 6501.29 'do not complain about existing broken links (tag)': - cat >broken-tag <<-EOF && - object $(test_oid 004) - type commit - tag broken - tagger whatever 1234 -0000 - - this is a broken tag - EOF - tag=$(git hash-object -t tag -w broken-tag) && - git gc -q 2>stderr && - git cat-file -e $tag && - test_must_be_empty stderr - -ok 29 - do not complain about existing broken links (tag) - -# passed all 29 test(s) -1..29 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t6500-gc.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6500-gc/.git/ -expecting success of 6500.1 'setup': - # do not let the amount of physical memory affects gc - # behavior, make sure we always pack everything to one pack by - # default - git config gc.bigPackThreshold 2g && - - # These are simply values which, when hashed as a blob with a newline, - # produce a hash where the first byte is 0x17 in their respective - # algorithms. - test_oid_cache <<-EOF - obj1 sha1:263 - obj1 sha256:34 - - obj2 sha1:410 - obj2 sha256:174 - - obj3 sha1:523 - obj3 sha256:313 - - obj4 sha1:790 - obj4 sha256:481 - EOF - -ok 1 - setup - -expecting success of 6500.2 'gc empty repository': - git gc - -Nothing new to pack. -ok 2 - gc empty repository - -expecting success of 6500.3 'gc does not leave behind pid file': - git gc && - test_path_is_missing .git/gc.pid - -Nothing new to pack. -ok 3 - gc does not leave behind pid file - -expecting success of 6500.4 'gc --gobbledegook': - test_expect_code 129 git gc --nonsense 2>err && - test_i18ngrep "[Uu]sage: git gc" err - -checking prerequisite: C_LOCALE_OUTPUT - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false - -) -prerequisite C_LOCALE_OUTPUT ok -usage: git gc [] -ok 4 - gc --gobbledegook - -expecting success of 6500.5 'gc -h with invalid configuration': - mkdir broken && - ( - cd broken && - git init && - echo "[gc] pruneexpire = CORRUPT" >>.git/config && - test_expect_code 129 git gc -h >usage 2>&1 - ) && - test_i18ngrep "[Uu]sage" broken/usage - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6500-gc/broken/.git/ -usage: git gc [] -ok 5 - gc -h with invalid configuration - -expecting success of 6500.6 'gc is not aborted due to a stale symref': - git init remote && - ( - cd remote && - test_commit initial && - git clone . ../client && - git branch -m develop && - cd ../client && - git fetch --prune && - git gc - ) - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6500-gc/remote/.git/ -[master (root-commit) 24b24cf] initial - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 initial.t -Cloning into '../client'... -done. -From /build/git-2.30.2/t/trash directory.t6500-gc/remote/. - - [deleted] (none) -> origin/master - (refs/remotes/origin/HEAD has become dangling) - * [new branch] develop -> origin/develop -ok 6 - gc is not aborted due to a stale symref - -expecting success of 6500.7 'gc --keep-largest-pack': - test_create_repo keep-pack && - ( - cd keep-pack && - test_commit one && - test_commit two && - test_commit three && - git gc && - ( cd .git/objects/pack && ls *.pack ) >pack-list && - test_line_count = 1 pack-list && - BASE_PACK=.git/objects/pack/pack-*.pack && - test_commit four && - git repack -d && - test_commit five && - git repack -d && - ( cd .git/objects/pack && ls *.pack ) >pack-list && - test_line_count = 3 pack-list && - git gc --keep-largest-pack && - ( cd .git/objects/pack && ls *.pack ) >pack-list && - test_line_count = 2 pack-list && - awk "/^P /{print \$2}" <.git/objects/info/packs >pack-info && - test_line_count = 2 pack-info && - test_path_is_file $BASE_PACK && - git fsck - ) - -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6500-gc/keep-pack/.git/ -[master (root-commit) d79ce16] one - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 one.t -[master 139b20d] two - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 two.t -[master 7c7cd71] three - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 three.t -[master fd8d77e] four - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 four.t -[master a383792] five - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 five.t -ok 7 - gc --keep-largest-pack - -expecting success of 6500.8 'auto gc with too many loose objects does not attempt to create bitmaps': - test_config gc.auto 3 && - test_config gc.autodetach false && - test_config pack.writebitmaps true && - # We need to create two object whose sha1s start with 17 - # since this is what git gc counts. As it happens, these - # two blobs will do so. - test_commit "$(test_oid obj1)" && - test_commit "$(test_oid obj2)" && - # Our first gc will create a pack; our second will create a second pack - git gc --auto && - ls .git/objects/pack | sort >existing_packs && - test_commit "$(test_oid obj3)" && - test_commit "$(test_oid obj4)" && - - git gc --auto 2>err && - test_i18ngrep ! "^warning:" err && - ls .git/objects/pack/ | sort >post_packs && - comm -1 -3 existing_packs post_packs >new && - comm -2 -3 existing_packs post_packs >del && - test_line_count = 0 del && # No packs are deleted - test_line_count = 2 new # There is one new pack and its .idx - -[master (root-commit) 1808a60] 263 - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 263.t -Auto packing the repository for optimum performance. -See "git help gc" for manual housekeeping. -[master 9a14344] 410 - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 410.t -[master 54e21e7] 523 - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 523.t -Auto packing the repository for optimum performance. -See "git help gc" for manual housekeeping. -[master 60dd8ad] 790 - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 790.t -ok 8 - auto gc with too many loose objects does not attempt to create bitmaps - -expecting success of 6500.9 'gc --no-quiet': - GIT_PROGRESS_DELAY=0 git -c gc.writeCommitGraph=true gc --no-quiet >stdout 2>stderr && - test_must_be_empty stdout && - test_i18ngrep "Computing commit graph generation numbers" stderr - -Computing commit graph generation numbers: 25% (1/4) Computing commit graph generation numbers: 50% (2/4) Computing commit graph generation numbers: 75% (3/4) Computing commit graph generation numbers: 100% (4/4) Computing commit graph generation numbers: 100% (4/4), done. -ok 9 - gc --no-quiet - -checking prerequisite: TTY - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-TTY" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-TTY" && - test_have_prereq PERL && - - # Reading from the pty master seems to get stuck _sometimes_ - # on Mac OS X 10.5.0, using Perl 5.10.0 or 5.8.9. - # - # Reproduction recipe: run - # - # i=0 - # while ./test-terminal.perl echo hi $i - # do - # : $((i = $i + 1)) - # done - # - # After 2000 iterations or so it hangs. - # https://rt.cpan.org/Ticket/Display.html?id=65692 - # - test "$(uname -s)" != Darwin && - - perl "$TEST_DIRECTORY"/test-terminal.perl \ - sh -c "test -t 1 && test -t 2" - -) -prerequisite TTY ok -expecting success of 6500.10 'with TTY: gc --no-quiet': - test_terminal env GIT_PROGRESS_DELAY=0 \ - git -c gc.writeCommitGraph=true gc --no-quiet >stdout 2>stderr && - test_must_be_empty stdout && - test_i18ngrep "Enumerating objects" stderr && - test_i18ngrep "Computing commit graph generation numbers" stderr - -Enumerating objects: 12, done. -Computing commit graph generation numbers: 25% (1/4) Computing commit graph generation numbers: 50% (2/4) Computing commit graph generation numbers: 75% (3/4) Computing commit graph generation numbers: 100% (4/4) Computing commit graph generation numbers: 100% (4/4), done. -ok 10 - with TTY: gc --no-quiet - -expecting success of 6500.11 'gc --quiet': - git -c gc.writeCommitGraph=true gc --quiet >stdout 2>stderr && - test_must_be_empty stdout && - test_must_be_empty stderr - -ok 11 - gc --quiet - -expecting success of 6500.12 'gc.reflogExpire{Unreachable,}=never skips "expire" via "gc"': - test_config gc.reflogExpire never && - test_config gc.reflogExpireUnreachable never && - - GIT_TRACE=$(pwd)/trace.out git gc && - - # Check that git-pack-refs is run as a sanity check (done via - # gc_before_repack()) but that git-expire is not. - grep -E "^trace: (built-in|exec|run_command): git pack-refs --" trace.out && - ! grep -E "^trace: (built-in|exec|run_command): git reflog expire --" trace.out - -trace: run_command: git pack-refs --all --prune -trace: built-in: git pack-refs --all --prune -ok 12 - gc.reflogExpire{Unreachable,}=never skips "expire" via "gc" - -expecting success of 6500.13 'one of gc.reflogExpire{Unreachable,}=never does not skip "expire" via "gc"': - >trace.out && - test_config gc.reflogExpire never && - GIT_TRACE=$(pwd)/trace.out git gc && - grep -E "^trace: (built-in|exec|run_command): git reflog expire --" trace.out - -trace: run_command: git reflog expire --all -trace: built-in: git reflog expire --all -ok 13 - one of gc.reflogExpire{Unreachable,}=never does not skip "expire" via "gc" - -expecting success of 6500.14 'background auto gc does not run if gc.log is present and recent but does if it is old': - test_commit foo && - test_commit bar && - git repack && - test_config gc.autopacklimit 1 && - test_config gc.autodetach true && - echo fleem >.git/gc.log && - git gc --auto 2>err && - test_i18ngrep "^warning:" err && - test_config gc.logexpiry 5.days && - test-tool chmtime =-345600 .git/gc.log && - git gc --auto && - test_config gc.logexpiry 2.days && - run_and_wait_for_auto_gc && - ls .git/objects/pack/pack-*.pack >packs && - test_line_count = 1 packs - -[master b16b551] foo - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 foo.t -[master fc616a4] bar - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 bar.t -warning: The last gc run reported the following. Please correct the root cause -Auto packing the repository in background for optimum performance. -See "git help gc" for manual housekeeping. -warning: The last gc run reported the following. Please correct the root cause -and remove .git/gc.log. -Automatic cleanup will not be performed until the file is removed. - -fleem - -Auto packing the repository in background for optimum performance. -See "git help gc" for manual housekeeping. -ok 14 - background auto gc does not run if gc.log is present and recent but does if it is old - -expecting success of 6500.15 'background auto gc respects lock for all operations': - # make sure we run a background auto-gc - test_commit make-pack && - git repack && - test_config gc.autopacklimit 1 && - test_config gc.autodetach true && - - # create a ref whose loose presence we can use to detect a pack-refs run - git update-ref refs/heads/should-be-loose HEAD && - test_path_is_file .git/refs/heads/should-be-loose && - - # now fake a concurrent gc that holds the lock; we can use our - # shell pid so that it looks valid. - hostname=$(hostname || echo unknown) && - shell_pid=$$ && - if test_have_prereq MINGW && test -f /proc/$shell_pid/winpid - then - # In Git for Windows, Bash (actually, the MSYS2 runtime) has a - # different idea of PIDs than git.exe (actually Windows). Use - # the Windows PID in this case. - shell_pid=$(cat /proc/$shell_pid/winpid) - fi && - printf "%d %s" "$shell_pid" "$hostname" >.git/gc.pid && - - # our gc should exit zero without doing anything - run_and_wait_for_auto_gc && - test_path_is_file .git/refs/heads/should-be-loose - -[master 28ecdda] make-pack - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 make-pack.t -Auto packing the repository in background for optimum performance. -See "git help gc" for manual housekeeping. -ok 15 - background auto gc respects lock for all operations - -# passed all 15 test(s) -1..15 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' *** t6600-test-reach.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6600-test-reach/.git/ expecting success of 6600.1 'setup': @@ -330174,7 +330026,7 @@ hint: hint: git branch -m Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7001-mv/.git/ -[master (root-commit) ded251d] initial +[master (root-commit) 0485f91] initial Author: A U Thor 2 files changed, 2 insertions(+) create mode 100644 ab.c @@ -330745,56 +330597,273 @@ Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7001-mv/sub_nested/.git/ [master (root-commit) 8e39d83] nested level 1 Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - create mode 100644 nested_level1 -Cloning into '/build/git-2.30.2/t/trash directory.t7001-mv/sub_nested/sub_nested_nested'... -done. -[master 4ba474d] add nested level 2 + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 nested_level1 +Cloning into '/build/git-2.30.2/t/trash directory.t7001-mv/sub_nested/sub_nested_nested'... +done. +[master 4ba474d] add nested level 2 + Author: A U Thor + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 sub_nested_nested +Cloning into '/build/git-2.30.2/t/trash directory.t7001-mv/nested_move'... +done. +[submodule 4d404d9] add nested_move + Author: A U Thor + 2 files changed, 4 insertions(+) + create mode 160000 nested_move +Submodule 'sub' (/build/git-2.30.2/t/trash directory.t7001-mv/./.) registered for path 'directory/hierarchy/sub/sub' +Cloning into '/build/git-2.30.2/t/trash directory.t7001-mv/directory/hierarchy/sub/sub'... +done. +Submodule path 'directory/hierarchy/sub/sub': checked out '335301e919c46841d94df945a64ff8626867ab66' +Submodule 'sub_nested_nested' (/build/git-2.30.2/t/trash directory.t7001-mv/sub_nested_nested) registered for path 'nested_move/sub_nested_nested' +Cloning into '/build/git-2.30.2/t/trash directory.t7001-mv/nested_move/sub_nested_nested'... +done. +Submodule path 'nested_move/sub_nested_nested': checked out '3d81f5fbdb0173269895972bd0ca2f0372e7edc5' +Submodule path 'sub': checked out '335301e919c46841d94df945a64ff8626867ab66' +On branch submodule +Changes to be committed: + (use "git restore --staged ..." to unstage) + modified: .gitmodules + renamed: nested_move -> sub_nested_moved + +Untracked files: + (use "git add ..." to include in what will be committed) + .gitconfig + a/ + ab.c + actual + actual.err + dest/ + expect + expect.err + expected + mine/ + other/ + sub_nested/ + sub_nested_nested/ + +ok 50 - moving nested submodules + +# passed all 50 test(s) +1..50 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t7005-editor.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7005-editor/.git/ +expecting success of 7005.1 'determine default editor': + + vi=$(TERM=vt100 git var GIT_EDITOR) && + test -n "$vi" + + +ok 1 - determine default editor + +expecting success of 7005.2 'setup': + + msg="Hand-edited" && + test_commit "$msg" && + echo "$msg" >expect && + git show -s --format=%s > actual && + test_cmp expect actual + + +[master (root-commit) 2ddcc77] Hand-edited + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 Hand-edited.t +ok 2 - setup + +expecting success of 7005.3 'dumb should error out when falling back on vi': + + if git commit --amend + then + echo "Oops?" + false + else + : happy + fi + +error: Terminal is dumb, but EDITOR unset +Please supply the message using either -m or -F option. +ok 3 - dumb should error out when falling back on vi + +expecting success of 7005.4 'dumb should prefer EDITOR to VISUAL': + + EDITOR=./e-EDITOR.sh && + VISUAL=./e-VISUAL.sh && + export EDITOR VISUAL && + git commit --amend && + test "$(git show -s --format=%s)" = "Edited by EDITOR" + + +[master 7eecd8c] Edited by EDITOR + Author: A U Thor + Date: Thu Apr 7 15:13:13 2005 -0700 + 1 file changed, 1 insertion(+) + create mode 100644 Hand-edited.t +ok 4 - dumb should prefer EDITOR to VISUAL + +expecting success of 7005.5 'Using editor': + git --exec-path=. commit --amend && + git show -s --pretty=oneline | + sed -e "s/^[0-9a-f]* //" >actual && + test_cmp expect actual + +[master 5b7078a] Edited by editor + Author: A U Thor + Date: Thu Apr 7 15:13:13 2005 -0700 + 1 file changed, 1 insertion(+) + create mode 100644 Hand-edited.t +ok 5 - Using editor + +expecting success of 7005.6 'Using EDITOR': + git --exec-path=. commit --amend && + git show -s --pretty=oneline | + sed -e "s/^[0-9a-f]* //" >actual && + test_cmp expect actual + +[master 7eecd8c] Edited by EDITOR + Author: A U Thor + Date: Thu Apr 7 15:13:13 2005 -0700 + 1 file changed, 1 insertion(+) + create mode 100644 Hand-edited.t +ok 6 - Using EDITOR + +expecting success of 7005.7 'Using VISUAL': + git --exec-path=. commit --amend && + git show -s --pretty=oneline | + sed -e "s/^[0-9a-f]* //" >actual && + test_cmp expect actual + +[master 2ee1d44] Edited by VISUAL + Author: A U Thor + Date: Thu Apr 7 15:13:13 2005 -0700 + 1 file changed, 1 insertion(+) + create mode 100644 Hand-edited.t +ok 7 - Using VISUAL + +expecting success of 7005.8 'Using core_editor': + git --exec-path=. commit --amend && + git show -s --pretty=oneline | + sed -e "s/^[0-9a-f]* //" >actual && + test_cmp expect actual + +[master 1c851bb] Edited by core_editor + Author: A U Thor + Date: Thu Apr 7 15:13:13 2005 -0700 + 1 file changed, 1 insertion(+) + create mode 100644 Hand-edited.t +ok 8 - Using core_editor + +expecting success of 7005.9 'Using GIT_EDITOR': + git --exec-path=. commit --amend && + git show -s --pretty=oneline | + sed -e "s/^[0-9a-f]* //" >actual && + test_cmp expect actual + +[master 1bdd03b] Edited by GIT_EDITOR + Author: A U Thor + Date: Thu Apr 7 15:13:13 2005 -0700 + 1 file changed, 1 insertion(+) + create mode 100644 Hand-edited.t +ok 9 - Using GIT_EDITOR + +expecting success of 7005.10 'Using editor (override)': + git --exec-path=. commit --amend && + git show -s --pretty=oneline | + sed -e "s/^[0-9a-f]* //" >actual && + test_cmp expect actual + +[master 5b7078a] Edited by editor + Author: A U Thor + Date: Thu Apr 7 15:13:13 2005 -0700 + 1 file changed, 1 insertion(+) + create mode 100644 Hand-edited.t +ok 10 - Using editor (override) + +expecting success of 7005.11 'Using EDITOR (override)': + git --exec-path=. commit --amend && + git show -s --pretty=oneline | + sed -e "s/^[0-9a-f]* //" >actual && + test_cmp expect actual + +[master 7eecd8c] Edited by EDITOR + Author: A U Thor + Date: Thu Apr 7 15:13:13 2005 -0700 + 1 file changed, 1 insertion(+) + create mode 100644 Hand-edited.t +ok 11 - Using EDITOR (override) + +expecting success of 7005.12 'Using VISUAL (override)': + git --exec-path=. commit --amend && + git show -s --pretty=oneline | + sed -e "s/^[0-9a-f]* //" >actual && + test_cmp expect actual + +[master 2ee1d44] Edited by VISUAL + Author: A U Thor + Date: Thu Apr 7 15:13:13 2005 -0700 + 1 file changed, 1 insertion(+) + create mode 100644 Hand-edited.t +ok 12 - Using VISUAL (override) + +expecting success of 7005.13 'Using core_editor (override)': + git --exec-path=. commit --amend && + git show -s --pretty=oneline | + sed -e "s/^[0-9a-f]* //" >actual && + test_cmp expect actual + +[master 1c851bb] Edited by core_editor Author: A U Thor - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 sub_nested_nested -Cloning into '/build/git-2.30.2/t/trash directory.t7001-mv/nested_move'... -done. -[submodule 4d404d9] add nested_move + Date: Thu Apr 7 15:13:13 2005 -0700 + 1 file changed, 1 insertion(+) + create mode 100644 Hand-edited.t +ok 13 - Using core_editor (override) + +expecting success of 7005.14 'Using GIT_EDITOR (override)': + git --exec-path=. commit --amend && + git show -s --pretty=oneline | + sed -e "s/^[0-9a-f]* //" >actual && + test_cmp expect actual + +[master 1bdd03b] Edited by GIT_EDITOR Author: A U Thor - 2 files changed, 4 insertions(+) - create mode 160000 nested_move -Submodule 'sub' (/build/git-2.30.2/t/trash directory.t7001-mv/./.) registered for path 'directory/hierarchy/sub/sub' -Cloning into '/build/git-2.30.2/t/trash directory.t7001-mv/directory/hierarchy/sub/sub'... -done. -Submodule path 'directory/hierarchy/sub/sub': checked out '335301e919c46841d94df945a64ff8626867ab66' -Submodule 'sub_nested_nested' (/build/git-2.30.2/t/trash directory.t7001-mv/sub_nested_nested) registered for path 'nested_move/sub_nested_nested' -Cloning into '/build/git-2.30.2/t/trash directory.t7001-mv/nested_move/sub_nested_nested'... -done. -Submodule path 'nested_move/sub_nested_nested': checked out '3d81f5fbdb0173269895972bd0ca2f0372e7edc5' -Submodule path 'sub': checked out '335301e919c46841d94df945a64ff8626867ab66' -On branch submodule -Changes to be committed: - (use "git restore --staged ..." to unstage) - modified: .gitmodules - renamed: nested_move -> sub_nested_moved + Date: Thu Apr 7 15:13:13 2005 -0700 + 1 file changed, 1 insertion(+) + create mode 100644 Hand-edited.t +ok 14 - Using GIT_EDITOR (override) -Untracked files: - (use "git add ..." to include in what will be committed) - .gitconfig - a/ - ab.c - actual - actual.err - dest/ - expect - expect.err - expected - mine/ - other/ - sub_nested/ - sub_nested_nested/ +expecting success of 7005.15 'editor with a space': + echo "echo space >\"\$1\"" >"e space.sh" && + chmod a+x "e space.sh" && + GIT_EDITOR="./e\ space.sh" git commit --amend && + test space = "$(git show -s --pretty=format:%s)" -ok 50 - moving nested submodules -# passed all 50 test(s) -1..50 +[master 5d9c28a] space + Author: A U Thor + Date: Thu Apr 7 15:13:13 2005 -0700 + 1 file changed, 1 insertion(+) + create mode 100644 Hand-edited.t +ok 15 - editor with a space + +expecting success of 7005.16 'core.editor with a space': + + git config core.editor \"./e\ space.sh\" && + git commit --amend && + test space = "$(git show -s --pretty=format:%s)" + + +[master 5d9c28a] space + Author: A U Thor + Date: Thu Apr 7 15:13:13 2005 -0700 + 1 file changed, 1 insertion(+) + create mode 100644 Hand-edited.t +ok 16 - core.editor with a space + +# passed all 16 test(s) +1..16 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' *** t7004-tag.sh *** @@ -333415,2158 +333484,6 @@ 1..210 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t7005-editor.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7005-editor/.git/ -expecting success of 7005.1 'determine default editor': - - vi=$(TERM=vt100 git var GIT_EDITOR) && - test -n "$vi" - - -ok 1 - determine default editor - -expecting success of 7005.2 'setup': - - msg="Hand-edited" && - test_commit "$msg" && - echo "$msg" >expect && - git show -s --format=%s > actual && - test_cmp expect actual - - -[master (root-commit) 2ddcc77] Hand-edited - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 Hand-edited.t -ok 2 - setup - -expecting success of 7005.3 'dumb should error out when falling back on vi': - - if git commit --amend - then - echo "Oops?" - false - else - : happy - fi - -error: Terminal is dumb, but EDITOR unset -Please supply the message using either -m or -F option. -ok 3 - dumb should error out when falling back on vi - -expecting success of 7005.4 'dumb should prefer EDITOR to VISUAL': - - EDITOR=./e-EDITOR.sh && - VISUAL=./e-VISUAL.sh && - export EDITOR VISUAL && - git commit --amend && - test "$(git show -s --format=%s)" = "Edited by EDITOR" - - -[master 7eecd8c] Edited by EDITOR - Author: A U Thor - Date: Thu Apr 7 15:13:13 2005 -0700 - 1 file changed, 1 insertion(+) - create mode 100644 Hand-edited.t -ok 4 - dumb should prefer EDITOR to VISUAL - -expecting success of 7005.5 'Using editor': - git --exec-path=. commit --amend && - git show -s --pretty=oneline | - sed -e "s/^[0-9a-f]* //" >actual && - test_cmp expect actual - -[master 5b7078a] Edited by editor - Author: A U Thor - Date: Thu Apr 7 15:13:13 2005 -0700 - 1 file changed, 1 insertion(+) - create mode 100644 Hand-edited.t -ok 5 - Using editor - -expecting success of 7005.6 'Using EDITOR': - git --exec-path=. commit --amend && - git show -s --pretty=oneline | - sed -e "s/^[0-9a-f]* //" >actual && - test_cmp expect actual - -[master 7eecd8c] Edited by EDITOR - Author: A U Thor - Date: Thu Apr 7 15:13:13 2005 -0700 - 1 file changed, 1 insertion(+) - create mode 100644 Hand-edited.t -ok 6 - Using EDITOR - -expecting success of 7005.7 'Using VISUAL': - git --exec-path=. commit --amend && - git show -s --pretty=oneline | - sed -e "s/^[0-9a-f]* //" >actual && - test_cmp expect actual - -[master 2ee1d44] Edited by VISUAL - Author: A U Thor - Date: Thu Apr 7 15:13:13 2005 -0700 - 1 file changed, 1 insertion(+) - create mode 100644 Hand-edited.t -ok 7 - Using VISUAL - -expecting success of 7005.8 'Using core_editor': - git --exec-path=. commit --amend && - git show -s --pretty=oneline | - sed -e "s/^[0-9a-f]* //" >actual && - test_cmp expect actual - -[master 1c851bb] Edited by core_editor - Author: A U Thor - Date: Thu Apr 7 15:13:13 2005 -0700 - 1 file changed, 1 insertion(+) - create mode 100644 Hand-edited.t -ok 8 - Using core_editor - -expecting success of 7005.9 'Using GIT_EDITOR': - git --exec-path=. commit --amend && - git show -s --pretty=oneline | - sed -e "s/^[0-9a-f]* //" >actual && - test_cmp expect actual - -[master 1bdd03b] Edited by GIT_EDITOR - Author: A U Thor - Date: Thu Apr 7 15:13:13 2005 -0700 - 1 file changed, 1 insertion(+) - create mode 100644 Hand-edited.t -ok 9 - Using GIT_EDITOR - -expecting success of 7005.10 'Using editor (override)': - git --exec-path=. commit --amend && - git show -s --pretty=oneline | - sed -e "s/^[0-9a-f]* //" >actual && - test_cmp expect actual - -[master 5b7078a] Edited by editor - Author: A U Thor - Date: Thu Apr 7 15:13:13 2005 -0700 - 1 file changed, 1 insertion(+) - create mode 100644 Hand-edited.t -ok 10 - Using editor (override) - -expecting success of 7005.11 'Using EDITOR (override)': - git --exec-path=. commit --amend && - git show -s --pretty=oneline | - sed -e "s/^[0-9a-f]* //" >actual && - test_cmp expect actual - -[master 7eecd8c] Edited by EDITOR - Author: A U Thor - Date: Thu Apr 7 15:13:13 2005 -0700 - 1 file changed, 1 insertion(+) - create mode 100644 Hand-edited.t -ok 11 - Using EDITOR (override) - -expecting success of 7005.12 'Using VISUAL (override)': - git --exec-path=. commit --amend && - git show -s --pretty=oneline | - sed -e "s/^[0-9a-f]* //" >actual && - test_cmp expect actual - -[master 2ee1d44] Edited by VISUAL - Author: A U Thor - Date: Thu Apr 7 15:13:13 2005 -0700 - 1 file changed, 1 insertion(+) - create mode 100644 Hand-edited.t -ok 12 - Using VISUAL (override) - -expecting success of 7005.13 'Using core_editor (override)': - git --exec-path=. commit --amend && - git show -s --pretty=oneline | - sed -e "s/^[0-9a-f]* //" >actual && - test_cmp expect actual - -[master 1c851bb] Edited by core_editor - Author: A U Thor - Date: Thu Apr 7 15:13:13 2005 -0700 - 1 file changed, 1 insertion(+) - create mode 100644 Hand-edited.t -ok 13 - Using core_editor (override) - -expecting success of 7005.14 'Using GIT_EDITOR (override)': - git --exec-path=. commit --amend && - git show -s --pretty=oneline | - sed -e "s/^[0-9a-f]* //" >actual && - test_cmp expect actual - -[master 1bdd03b] Edited by GIT_EDITOR - Author: A U Thor - Date: Thu Apr 7 15:13:13 2005 -0700 - 1 file changed, 1 insertion(+) - create mode 100644 Hand-edited.t -ok 14 - Using GIT_EDITOR (override) - -expecting success of 7005.15 'editor with a space': - echo "echo space >\"\$1\"" >"e space.sh" && - chmod a+x "e space.sh" && - GIT_EDITOR="./e\ space.sh" git commit --amend && - test space = "$(git show -s --pretty=format:%s)" - - -[master 5d9c28a] space - Author: A U Thor - Date: Thu Apr 7 15:13:13 2005 -0700 - 1 file changed, 1 insertion(+) - create mode 100644 Hand-edited.t -ok 15 - editor with a space - -expecting success of 7005.16 'core.editor with a space': - - git config core.editor \"./e\ space.sh\" && - git commit --amend && - test space = "$(git show -s --pretty=format:%s)" - - -[master 5d9c28a] space - Author: A U Thor - Date: Thu Apr 7 15:13:13 2005 -0700 - 1 file changed, 1 insertion(+) - create mode 100644 Hand-edited.t -ok 16 - core.editor with a space - -# passed all 16 test(s) -1..16 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t6438-submodule-directory-file-conflicts.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/.git/ -expecting success of 6438.1 'git_test_func: added submodule creates empty directory': - prolog && - reset_work_tree_to no_submodule && - ( - cd submodule_update && - git branch -t add_sub1 origin/add_sub1 && - $command add_sub1 && - test_superproject_content origin/add_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/add_sub1 - ) - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1/.git/ -[master (root-commit) 63c4304] Base inside first submodule - Author: A U Thor - 3 files changed, 4 insertions(+) - create mode 100644 .gitignore - create mode 100644 file1 - create mode 100644 file2 -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub2/.git/ -[master (root-commit) 27c5769] nested submodule base - Author: A U Thor - 3 files changed, 4 insertions(+) - create mode 100644 .gitignore - create mode 100644 file1 - create mode 100644 file2 -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_repo/.git/ -[master (root-commit) 27611a5] Base - Author: A U Thor - 3 files changed, 4 insertions(+) - create mode 100644 .gitignore - create mode 100644 file1 - create mode 100644 file2 -Switched to a new branch 'add_sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_repo/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_repo/uninitialized_sub'... -done. -[add_sub1 09bcf53] Add sub1 - Author: A U Thor - 2 files changed, 8 insertions(+) - create mode 100644 .gitmodules - create mode 160000 uninitialized_sub -Switched to a new branch 'remove_sub1' -Removing uninitialized_sub -Removing sub1 -Removing .gitmodules -[remove_sub1 d6ba723] Revert "Add sub1" - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 3 files changed, 9 deletions(-) - delete mode 100644 .gitmodules - delete mode 160000 sub1 - delete mode 160000 uninitialized_sub -Switched to a new branch 'modify_sub1' -Switched to a new branch 'modifications' -[modifications 03da4ea] modified file2 and added file3 - Author: A U Thor - 2 files changed, 2 insertions(+), 1 deletion(-) - create mode 100644 file3 -To /build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1 - * [new branch] modifications -> modifications -[modify_sub1 cb2bda7] Modify sub1 - Author: A U Thor -Switched to a new branch 'add_nested_sub' -Switched to a new branch 'add_nested_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_repo/sub1/sub2'... -done. -[add_nested_sub 8b3b335] add a nested submodule - Author: A U Thor - 2 files changed, 5 insertions(+) - create mode 100644 .gitmodules - create mode 160000 sub2 -[add_nested_sub 5bc57bf] update submodule, that updates a nested submodule - Author: A U Thor -Switched to a new branch 'modify_sub1_recursively' -Switched to a new branch 'modify_sub1_recursively' -Switched to a new branch 'modify_sub1_recursively' -[modify_sub1_recursively c7c4624] make a change in nested sub - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file3 -[modify_sub1_recursively 92fc14a] update nested sub - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -[modify_sub1_recursively 953e869] update sub1, that updates nested sub - Author: A U Thor -To /build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1 - * [new branch] modify_sub1_recursively -> modify_sub1_recursively -To /build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub2 - * [new branch] modify_sub1_recursively -> modify_sub1_recursively -Cleared directory 'sub2' -Submodule 'sub2' (../submodule_update_sub2) unregistered for path 'sub2' -Switched to a new branch 'replace_sub1_with_directory' -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Previous HEAD position was 63c4304 Base inside first submodule -Switched to branch 'modifications' -rm 'sub1' -[replace_sub1_with_directory cb28587] Replace sub1 with directory - Author: A U Thor - 5 files changed, 3 insertions(+), 5 deletions(-) - delete mode 160000 sub1 - create mode 100644 sub1/file1 - create mode 100644 sub1/file2 - create mode 100644 sub1/file3 -Switched to a new branch 'replace_directory_with_sub1' -Removing sub1/file3 -Removing sub1/file2 -Removing sub1/file1 -Adding sub1 -[replace_directory_with_sub1 a2e65d5] Revert "Replace sub1 with directory" - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 4 files changed, 4 insertions(+), 3 deletions(-) - delete mode 100644 sub1/file1 - delete mode 100644 sub1/file2 - delete mode 100644 sub1/file3 -Switched to a new branch 'replace_sub1_with_file' -rm 'sub1' -[replace_sub1_with_file 2364f5a] Replace sub1 with file - Author: A U Thor - 2 files changed, 1 insertion(+), 5 deletions(-) - mode change 160000 => 100644 sub1 -Switched to a new branch 'replace_file_with_sub1' -[replace_file_with_sub1 8b6fdfc] Revert "Replace sub1 with file" - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 2 files changed, 5 insertions(+), 1 deletion(-) - mode change 100644 => 160000 sub1 -Switched to a new branch 'invalid_sub1' -[invalid_sub1 e6169bf] Invalid sub1 commit - Author: A U Thor -Switched to a new branch 'valid_sub1' -[valid_sub1 3036e4e] Revert "Invalid sub1 commit" - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 -warning: unable to rmdir 'uninitialized_sub': Directory not empty -Switched to branch 'master' -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Updating 27611a5..09bcf53 -Fast-forward - .gitmodules | 7 +++++++ - 1 file changed, 7 insertions(+) - create mode 100644 .gitmodules -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -ok 1 - git_test_func: added submodule creates empty directory - -expecting success of 6438.2 'git_test_func: added submodule leaves existing empty directory alone': - prolog && - reset_work_tree_to no_submodule && - ( - cd submodule_update && - mkdir sub1 && - git branch -t add_sub1 origin/add_sub1 && - $command add_sub1 && - test_superproject_content origin/add_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Updating 27611a5..09bcf53 -Fast-forward - .gitmodules | 7 +++++++ - 1 file changed, 7 insertions(+) - create mode 100644 .gitmodules -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -ok 2 - git_test_func: added submodule leaves existing empty directory alone - -expecting success of 6438.3 'git_test_func: replace tracked file with submodule creates empty directory': - prolog && - reset_work_tree_to replace_sub1_with_file && - ( - cd submodule_update && - git branch -t replace_file_with_sub1 origin/replace_file_with_sub1 && - $command replace_file_with_sub1 && - test_superproject_content origin/replace_file_with_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/replace_file_with_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'replace_sub1_with_file' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -fatal: Needed a single revision -Branch 'replace_file_with_sub1' set up to track remote branch 'replace_file_with_sub1' from 'origin'. -Updating 2364f5a..8b6fdfc -Fast-forward - .gitmodules | 4 ++++ - sub1 | 2 +- - 2 files changed, 5 insertions(+), 1 deletion(-) - mode change 100644 => 160000 sub1 -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -ok 3 - git_test_func: replace tracked file with submodule creates empty directory - -expecting success of 6438.4 'git_test_func: replace directory with submodule': - prolog && - reset_work_tree_to replace_sub1_with_directory && - ( - cd submodule_update && - git branch -t replace_directory_with_sub1 origin/replace_directory_with_sub1 && - $command replace_directory_with_sub1 && - test_superproject_content origin/replace_directory_with_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/replace_directory_with_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'replace_sub1_with_directory' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -fatal: Needed a single revision -Branch 'replace_directory_with_sub1' set up to track remote branch 'replace_directory_with_sub1' from 'origin'. -Updating cb28587..a2e65d5 -Fast-forward - .gitmodules | 4 ++++ - sub1/file1 | 1 - - sub1/file2 | 1 - - sub1/file3 | 1 - - 4 files changed, 4 insertions(+), 3 deletions(-) - delete mode 100644 sub1/file1 - delete mode 100644 sub1/file2 - delete mode 100644 sub1/file3 -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -ok 4 - git_test_func: replace directory with submodule - -expecting success of 6438.5 'git_test_func: removed submodule leaves submodule directory and its contents in place': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t remove_sub1 origin/remove_sub1 && - $command remove_sub1 && - test_superproject_content origin/remove_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. -warning: unable to rmdir 'sub1': Directory not empty -Updating 09bcf53..d6ba723 -Fast-forward - .gitmodules | 7 ------- - 1 file changed, 7 deletions(-) - delete mode 100644 .gitmodules -ok 5 - git_test_func: removed submodule leaves submodule directory and its contents in place - -expecting success of 6438.6 'git_test_func: removed submodule leaves submodule containing a .git directory alone': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t remove_sub1 origin/remove_sub1 && - replace_gitfile_with_git_dir sub1 && - $command remove_sub1 && - test_superproject_content origin/remove_sub1 && - test_git_directory_is_unchanged sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. -warning: unable to rmdir 'sub1': Directory not empty -Updating 09bcf53..d6ba723 -Fast-forward - .gitmodules | 7 ------- - 1 file changed, 7 deletions(-) - delete mode 100644 .gitmodules -ok 6 - git_test_func: removed submodule leaves submodule containing a .git directory alone - -expecting success of 6438.7 'git_test_func: replace submodule with a directory must fail': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && - $command replace_sub1_with_directory test_must_fail && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -error: The following untracked working tree files would be overwritten by merge: - sub1/file1 - sub1/file2 -Please move or remove them before you merge. -Aborting -Updating 09bcf53..cb28587 -ok 7 - git_test_func: replace submodule with a directory must fail - -expecting success of 6438.8 'git_test_func: replace submodule containing a .git directory with a directory must fail': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && - replace_gitfile_with_git_dir sub1 && - $command replace_sub1_with_directory test_must_fail && - test_superproject_content origin/add_sub1 && - test_git_directory_is_unchanged sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -error: The following untracked working tree files would be overwritten by merge: - sub1/file1 - sub1/file2 -Please move or remove them before you merge. -Aborting -Updating 09bcf53..cb28587 -ok 8 - git_test_func: replace submodule containing a .git directory with a directory must fail - -checking known breakage of 6438.9 'git_test_func: replace submodule with a file must fail': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_file origin/replace_sub1_with_file && - $command replace_sub1_with_file test_must_fail && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -Updating 09bcf53..2364f5a -Fast-forward - .gitmodules | 4 ---- - sub1 | 2 +- - 2 files changed, 1 insertion(+), 5 deletions(-) - mode change 160000 => 100644 sub1 -test_must_fail: command succeeded: git merge replace_sub1_with_file -not ok 9 - git_test_func: replace submodule with a file must fail # TODO known breakage - -checking known breakage of 6438.10 'git_test_func: replace submodule containing a .git directory with a file must fail': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_file origin/replace_sub1_with_file && - replace_gitfile_with_git_dir sub1 && - $command replace_sub1_with_file test_must_fail && - test_superproject_content origin/add_sub1 && - test_git_directory_is_unchanged sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -Updating 09bcf53..2364f5a -Fast-forward - .gitmodules | 4 ---- - sub1 | 2 +- - 2 files changed, 1 insertion(+), 5 deletions(-) - mode change 160000 => 100644 sub1 -test_must_fail: command succeeded: git merge replace_sub1_with_file -not ok 10 - git_test_func: replace submodule containing a .git directory with a file must fail # TODO known breakage - -expecting success of 6438.11 'git_test_func: modified submodule does not update submodule work tree': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t modify_sub1 origin/modify_sub1 && - $command modify_sub1 && - test_superproject_content origin/modify_sub1 && - test_submodule_content sub1 origin/add_sub1 && - git submodule update && - test_submodule_content sub1 origin/modify_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. -Updating 09bcf53..cb2bda7 -Fast-forward -Submodule path 'sub1': checked out '03da4ea88bb165bd26ee0b2e5c657f2858b23f53' -ok 11 - git_test_func: modified submodule does not update submodule work tree - -expecting success of 6438.12 'git_test_func: modified submodule does not update submodule work tree to invalid commit': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t invalid_sub1 origin/invalid_sub1 && - $command invalid_sub1 && - test_superproject_content origin/invalid_sub1 && - test_submodule_content sub1 origin/add_sub1 && - test_must_fail git submodule update && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. -Updating 09bcf53..e6169bf -Fast-forward -fatal: git upload-pack: not our ref 0123456789012345678901234567890123456789 -fatal: remote error: upload-pack: not our ref 0123456789012345678901234567890123456789 -Fetched in submodule path 'sub1', but it did not contain 0123456789012345678901234567890123456789. Direct fetching of that commit failed. -ok 12 - git_test_func: modified submodule does not update submodule work tree to invalid commit - -expecting success of 6438.13 'git_test_func: modified submodule does not update submodule work tree from invalid commit': - prolog && - reset_work_tree_to invalid_sub1 && - ( - cd submodule_update && - git branch -t valid_sub1 origin/valid_sub1 && - $command valid_sub1 && - test_superproject_content origin/valid_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/valid_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'invalid_sub1' -Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. -fatal: Needed a single revision -Branch 'valid_sub1' set up to track remote branch 'valid_sub1' from 'origin'. -Updating e6169bf..3036e4e -Fast-forward -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -ok 13 - git_test_func: modified submodule does not update submodule work tree from invalid commit - -expecting success of 6438.14 'git_test_func: added submodule doesn't remove untracked unignored file with same name': - prolog && - reset_work_tree_to no_submodule && - ( - cd submodule_update && - git branch -t add_sub1 origin/add_sub1 && - >sub1 && - $command add_sub1 test_must_fail && - test_superproject_content origin/no_submodule && - test_must_be_empty sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -error: The following untracked working tree files would be overwritten by merge: - sub1 -Please move or remove them before you merge. -Aborting -Updating 27611a5..09bcf53 -ok 14 - git_test_func: added submodule doesn't remove untracked unignored file with same name - -expecting success of 6438.15 'git_test_func: added submodule creates empty directory': - prolog && - reset_work_tree_to no_submodule && - ( - cd submodule_update && - git branch -t add_sub1 origin/add_sub1 && - $command add_sub1 && - test_superproject_content origin/add_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Updating 27611a5..09bcf53 -Fast-forward - .gitmodules | 7 +++++++ - 1 file changed, 7 insertions(+) - create mode 100644 .gitmodules -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -ok 15 - git_test_func: added submodule creates empty directory - -expecting success of 6438.16 'git_test_func: added submodule leaves existing empty directory alone': - prolog && - reset_work_tree_to no_submodule && - ( - cd submodule_update && - mkdir sub1 && - git branch -t add_sub1 origin/add_sub1 && - $command add_sub1 && - test_superproject_content origin/add_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Updating 27611a5..09bcf53 -Fast-forward - .gitmodules | 7 +++++++ - 1 file changed, 7 insertions(+) - create mode 100644 .gitmodules -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -ok 16 - git_test_func: added submodule leaves existing empty directory alone - -expecting success of 6438.17 'git_test_func: replace tracked file with submodule creates empty directory': - prolog && - reset_work_tree_to replace_sub1_with_file && - ( - cd submodule_update && - git branch -t replace_file_with_sub1 origin/replace_file_with_sub1 && - $command replace_file_with_sub1 && - test_superproject_content origin/replace_file_with_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/replace_file_with_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'replace_sub1_with_file' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -fatal: Needed a single revision -Branch 'replace_file_with_sub1' set up to track remote branch 'replace_file_with_sub1' from 'origin'. -Updating 2364f5a..8b6fdfc -Fast-forward - .gitmodules | 4 ++++ - sub1 | 2 +- - 2 files changed, 5 insertions(+), 1 deletion(-) - mode change 100644 => 160000 sub1 -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -ok 17 - git_test_func: replace tracked file with submodule creates empty directory - -expecting success of 6438.18 'git_test_func: replace directory with submodule': - prolog && - reset_work_tree_to replace_sub1_with_directory && - ( - cd submodule_update && - git branch -t replace_directory_with_sub1 origin/replace_directory_with_sub1 && - $command replace_directory_with_sub1 && - test_superproject_content origin/replace_directory_with_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/replace_directory_with_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'replace_sub1_with_directory' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -fatal: Needed a single revision -Branch 'replace_directory_with_sub1' set up to track remote branch 'replace_directory_with_sub1' from 'origin'. -Updating cb28587..a2e65d5 -Fast-forward - .gitmodules | 4 ++++ - sub1/file1 | 1 - - sub1/file2 | 1 - - sub1/file3 | 1 - - 4 files changed, 4 insertions(+), 3 deletions(-) - delete mode 100644 sub1/file1 - delete mode 100644 sub1/file2 - delete mode 100644 sub1/file3 -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -ok 18 - git_test_func: replace directory with submodule - -expecting success of 6438.19 'git_test_func: removed submodule leaves submodule directory and its contents in place': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t remove_sub1 origin/remove_sub1 && - $command remove_sub1 && - test_superproject_content origin/remove_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. -warning: unable to rmdir 'sub1': Directory not empty -Updating 09bcf53..d6ba723 -Fast-forward - .gitmodules | 7 ------- - 1 file changed, 7 deletions(-) - delete mode 100644 .gitmodules -ok 19 - git_test_func: removed submodule leaves submodule directory and its contents in place - -expecting success of 6438.20 'git_test_func: removed submodule leaves submodule containing a .git directory alone': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t remove_sub1 origin/remove_sub1 && - replace_gitfile_with_git_dir sub1 && - $command remove_sub1 && - test_superproject_content origin/remove_sub1 && - test_git_directory_is_unchanged sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. -warning: unable to rmdir 'sub1': Directory not empty -Updating 09bcf53..d6ba723 -Fast-forward - .gitmodules | 7 ------- - 1 file changed, 7 deletions(-) - delete mode 100644 .gitmodules -ok 20 - git_test_func: removed submodule leaves submodule containing a .git directory alone - -expecting success of 6438.21 'git_test_func: replace submodule with a directory must fail': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && - $command replace_sub1_with_directory test_must_fail && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -error: The following untracked working tree files would be overwritten by merge: - sub1/file1 - sub1/file2 -Please move or remove them before you merge. -Aborting -Updating 09bcf53..cb28587 -ok 21 - git_test_func: replace submodule with a directory must fail - -expecting success of 6438.22 'git_test_func: replace submodule containing a .git directory with a directory must fail': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && - replace_gitfile_with_git_dir sub1 && - $command replace_sub1_with_directory test_must_fail && - test_superproject_content origin/add_sub1 && - test_git_directory_is_unchanged sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -error: The following untracked working tree files would be overwritten by merge: - sub1/file1 - sub1/file2 -Please move or remove them before you merge. -Aborting -Updating 09bcf53..cb28587 -ok 22 - git_test_func: replace submodule containing a .git directory with a directory must fail - -checking known breakage of 6438.23 'git_test_func: replace submodule with a file must fail': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_file origin/replace_sub1_with_file && - $command replace_sub1_with_file test_must_fail && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -Updating 09bcf53..2364f5a -Fast-forward - .gitmodules | 4 ---- - sub1 | 2 +- - 2 files changed, 1 insertion(+), 5 deletions(-) - mode change 160000 => 100644 sub1 -test_must_fail: command succeeded: git merge --ff replace_sub1_with_file -not ok 23 - git_test_func: replace submodule with a file must fail # TODO known breakage - -checking known breakage of 6438.24 'git_test_func: replace submodule containing a .git directory with a file must fail': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_file origin/replace_sub1_with_file && - replace_gitfile_with_git_dir sub1 && - $command replace_sub1_with_file test_must_fail && - test_superproject_content origin/add_sub1 && - test_git_directory_is_unchanged sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -Updating 09bcf53..2364f5a -Fast-forward - .gitmodules | 4 ---- - sub1 | 2 +- - 2 files changed, 1 insertion(+), 5 deletions(-) - mode change 160000 => 100644 sub1 -test_must_fail: command succeeded: git merge --ff replace_sub1_with_file -not ok 24 - git_test_func: replace submodule containing a .git directory with a file must fail # TODO known breakage - -expecting success of 6438.25 'git_test_func: modified submodule does not update submodule work tree': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t modify_sub1 origin/modify_sub1 && - $command modify_sub1 && - test_superproject_content origin/modify_sub1 && - test_submodule_content sub1 origin/add_sub1 && - git submodule update && - test_submodule_content sub1 origin/modify_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. -Updating 09bcf53..cb2bda7 -Fast-forward -Submodule path 'sub1': checked out '03da4ea88bb165bd26ee0b2e5c657f2858b23f53' -ok 25 - git_test_func: modified submodule does not update submodule work tree - -expecting success of 6438.26 'git_test_func: modified submodule does not update submodule work tree to invalid commit': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t invalid_sub1 origin/invalid_sub1 && - $command invalid_sub1 && - test_superproject_content origin/invalid_sub1 && - test_submodule_content sub1 origin/add_sub1 && - test_must_fail git submodule update && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. -Updating 09bcf53..e6169bf -Fast-forward -fatal: git upload-pack: not our ref 0123456789012345678901234567890123456789 -fatal: remote error: upload-pack: not our ref 0123456789012345678901234567890123456789 -Fetched in submodule path 'sub1', but it did not contain 0123456789012345678901234567890123456789. Direct fetching of that commit failed. -ok 26 - git_test_func: modified submodule does not update submodule work tree to invalid commit - -expecting success of 6438.27 'git_test_func: modified submodule does not update submodule work tree from invalid commit': - prolog && - reset_work_tree_to invalid_sub1 && - ( - cd submodule_update && - git branch -t valid_sub1 origin/valid_sub1 && - $command valid_sub1 && - test_superproject_content origin/valid_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/valid_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'invalid_sub1' -Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. -fatal: Needed a single revision -Branch 'valid_sub1' set up to track remote branch 'valid_sub1' from 'origin'. -Updating e6169bf..3036e4e -Fast-forward -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -ok 27 - git_test_func: modified submodule does not update submodule work tree from invalid commit - -expecting success of 6438.28 'git_test_func: added submodule doesn't remove untracked unignored file with same name': - prolog && - reset_work_tree_to no_submodule && - ( - cd submodule_update && - git branch -t add_sub1 origin/add_sub1 && - >sub1 && - $command add_sub1 test_must_fail && - test_superproject_content origin/no_submodule && - test_must_be_empty sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -error: The following untracked working tree files would be overwritten by merge: - sub1 -Please move or remove them before you merge. -Aborting -Updating 27611a5..09bcf53 -ok 28 - git_test_func: added submodule doesn't remove untracked unignored file with same name - -expecting success of 6438.29 'git_test_func: added submodule creates empty directory': - prolog && - reset_work_tree_to no_submodule && - ( - cd submodule_update && - git branch -t add_sub1 origin/add_sub1 && - $command add_sub1 && - test_superproject_content origin/add_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Updating 27611a5..09bcf53 -Fast-forward - .gitmodules | 7 +++++++ - 1 file changed, 7 insertions(+) - create mode 100644 .gitmodules -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -ok 29 - git_test_func: added submodule creates empty directory - -expecting success of 6438.30 'git_test_func: added submodule leaves existing empty directory alone': - prolog && - reset_work_tree_to no_submodule && - ( - cd submodule_update && - mkdir sub1 && - git branch -t add_sub1 origin/add_sub1 && - $command add_sub1 && - test_superproject_content origin/add_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Updating 27611a5..09bcf53 -Fast-forward - .gitmodules | 7 +++++++ - 1 file changed, 7 insertions(+) - create mode 100644 .gitmodules -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -ok 30 - git_test_func: added submodule leaves existing empty directory alone - -expecting success of 6438.31 'git_test_func: replace tracked file with submodule creates empty directory': - prolog && - reset_work_tree_to replace_sub1_with_file && - ( - cd submodule_update && - git branch -t replace_file_with_sub1 origin/replace_file_with_sub1 && - $command replace_file_with_sub1 && - test_superproject_content origin/replace_file_with_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/replace_file_with_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'replace_sub1_with_file' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -fatal: Needed a single revision -Branch 'replace_file_with_sub1' set up to track remote branch 'replace_file_with_sub1' from 'origin'. -Updating 2364f5a..8b6fdfc -Fast-forward - .gitmodules | 4 ++++ - sub1 | 2 +- - 2 files changed, 5 insertions(+), 1 deletion(-) - mode change 100644 => 160000 sub1 -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -ok 31 - git_test_func: replace tracked file with submodule creates empty directory - -expecting success of 6438.32 'git_test_func: replace directory with submodule': - prolog && - reset_work_tree_to replace_sub1_with_directory && - ( - cd submodule_update && - git branch -t replace_directory_with_sub1 origin/replace_directory_with_sub1 && - $command replace_directory_with_sub1 && - test_superproject_content origin/replace_directory_with_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/replace_directory_with_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'replace_sub1_with_directory' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -fatal: Needed a single revision -Branch 'replace_directory_with_sub1' set up to track remote branch 'replace_directory_with_sub1' from 'origin'. -Updating cb28587..a2e65d5 -Fast-forward - .gitmodules | 4 ++++ - sub1/file1 | 1 - - sub1/file2 | 1 - - sub1/file3 | 1 - - 4 files changed, 4 insertions(+), 3 deletions(-) - delete mode 100644 sub1/file1 - delete mode 100644 sub1/file2 - delete mode 100644 sub1/file3 -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -ok 32 - git_test_func: replace directory with submodule - -expecting success of 6438.33 'git_test_func: removed submodule leaves submodule directory and its contents in place': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t remove_sub1 origin/remove_sub1 && - $command remove_sub1 && - test_superproject_content origin/remove_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. -warning: unable to rmdir 'sub1': Directory not empty -Updating 09bcf53..d6ba723 -Fast-forward - .gitmodules | 7 ------- - 1 file changed, 7 deletions(-) - delete mode 100644 .gitmodules -ok 33 - git_test_func: removed submodule leaves submodule directory and its contents in place - -expecting success of 6438.34 'git_test_func: removed submodule leaves submodule containing a .git directory alone': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t remove_sub1 origin/remove_sub1 && - replace_gitfile_with_git_dir sub1 && - $command remove_sub1 && - test_superproject_content origin/remove_sub1 && - test_git_directory_is_unchanged sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. -warning: unable to rmdir 'sub1': Directory not empty -Updating 09bcf53..d6ba723 -Fast-forward - .gitmodules | 7 ------- - 1 file changed, 7 deletions(-) - delete mode 100644 .gitmodules -ok 34 - git_test_func: removed submodule leaves submodule containing a .git directory alone - -expecting success of 6438.35 'git_test_func: replace submodule with a directory must fail': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && - $command replace_sub1_with_directory test_must_fail && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -error: The following untracked working tree files would be overwritten by merge: - sub1/file1 - sub1/file2 -Please move or remove them before you merge. -Aborting -Updating 09bcf53..cb28587 -ok 35 - git_test_func: replace submodule with a directory must fail - -expecting success of 6438.36 'git_test_func: replace submodule containing a .git directory with a directory must fail': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && - replace_gitfile_with_git_dir sub1 && - $command replace_sub1_with_directory test_must_fail && - test_superproject_content origin/add_sub1 && - test_git_directory_is_unchanged sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -error: The following untracked working tree files would be overwritten by merge: - sub1/file1 - sub1/file2 -Please move or remove them before you merge. -Aborting -Updating 09bcf53..cb28587 -ok 36 - git_test_func: replace submodule containing a .git directory with a directory must fail - -checking known breakage of 6438.37 'git_test_func: replace submodule with a file must fail': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_file origin/replace_sub1_with_file && - $command replace_sub1_with_file test_must_fail && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -Updating 09bcf53..2364f5a -Fast-forward - .gitmodules | 4 ---- - sub1 | 2 +- - 2 files changed, 1 insertion(+), 5 deletions(-) - mode change 160000 => 100644 sub1 -test_must_fail: command succeeded: git merge --ff-only replace_sub1_with_file -not ok 37 - git_test_func: replace submodule with a file must fail # TODO known breakage - -checking known breakage of 6438.38 'git_test_func: replace submodule containing a .git directory with a file must fail': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_file origin/replace_sub1_with_file && - replace_gitfile_with_git_dir sub1 && - $command replace_sub1_with_file test_must_fail && - test_superproject_content origin/add_sub1 && - test_git_directory_is_unchanged sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -Updating 09bcf53..2364f5a -Fast-forward - .gitmodules | 4 ---- - sub1 | 2 +- - 2 files changed, 1 insertion(+), 5 deletions(-) - mode change 160000 => 100644 sub1 -test_must_fail: command succeeded: git merge --ff-only replace_sub1_with_file -not ok 38 - git_test_func: replace submodule containing a .git directory with a file must fail # TODO known breakage - -expecting success of 6438.39 'git_test_func: modified submodule does not update submodule work tree': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t modify_sub1 origin/modify_sub1 && - $command modify_sub1 && - test_superproject_content origin/modify_sub1 && - test_submodule_content sub1 origin/add_sub1 && - git submodule update && - test_submodule_content sub1 origin/modify_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. -Updating 09bcf53..cb2bda7 -Fast-forward -Submodule path 'sub1': checked out '03da4ea88bb165bd26ee0b2e5c657f2858b23f53' -ok 39 - git_test_func: modified submodule does not update submodule work tree - -expecting success of 6438.40 'git_test_func: modified submodule does not update submodule work tree to invalid commit': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t invalid_sub1 origin/invalid_sub1 && - $command invalid_sub1 && - test_superproject_content origin/invalid_sub1 && - test_submodule_content sub1 origin/add_sub1 && - test_must_fail git submodule update && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. -Updating 09bcf53..e6169bf -Fast-forward -fatal: git upload-pack: not our ref 0123456789012345678901234567890123456789 -fatal: remote error: upload-pack: not our ref 0123456789012345678901234567890123456789 -Fetched in submodule path 'sub1', but it did not contain 0123456789012345678901234567890123456789. Direct fetching of that commit failed. -ok 40 - git_test_func: modified submodule does not update submodule work tree to invalid commit - -expecting success of 6438.41 'git_test_func: modified submodule does not update submodule work tree from invalid commit': - prolog && - reset_work_tree_to invalid_sub1 && - ( - cd submodule_update && - git branch -t valid_sub1 origin/valid_sub1 && - $command valid_sub1 && - test_superproject_content origin/valid_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/valid_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'invalid_sub1' -Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. -fatal: Needed a single revision -Branch 'valid_sub1' set up to track remote branch 'valid_sub1' from 'origin'. -Updating e6169bf..3036e4e -Fast-forward -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -ok 41 - git_test_func: modified submodule does not update submodule work tree from invalid commit - -expecting success of 6438.42 'git_test_func: added submodule doesn't remove untracked unignored file with same name': - prolog && - reset_work_tree_to no_submodule && - ( - cd submodule_update && - git branch -t add_sub1 origin/add_sub1 && - >sub1 && - $command add_sub1 test_must_fail && - test_superproject_content origin/no_submodule && - test_must_be_empty sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -error: The following untracked working tree files would be overwritten by merge: - sub1 -Please move or remove them before you merge. -Aborting -Updating 27611a5..09bcf53 -ok 42 - git_test_func: added submodule doesn't remove untracked unignored file with same name - -expecting success of 6438.43 'git_test_func: added submodule creates empty directory': - prolog && - reset_work_tree_to no_submodule && - ( - cd submodule_update && - git branch -t add_sub1 origin/add_sub1 && - $command add_sub1 && - test_superproject_content origin/add_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Merging: -27611a5 Base -virtual add_sub1 -found 1 common ancestor: -27611a5 Base -Merge made by the 'recursive' strategy. - .gitmodules | 7 +++++++ - 1 file changed, 7 insertions(+) - create mode 100644 .gitmodules -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -ok 43 - git_test_func: added submodule creates empty directory - -expecting success of 6438.44 'git_test_func: added submodule leaves existing empty directory alone': - prolog && - reset_work_tree_to no_submodule && - ( - cd submodule_update && - mkdir sub1 && - git branch -t add_sub1 origin/add_sub1 && - $command add_sub1 && - test_superproject_content origin/add_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Merging: -27611a5 Base -virtual add_sub1 -found 1 common ancestor: -27611a5 Base -Merge made by the 'recursive' strategy. - .gitmodules | 7 +++++++ - 1 file changed, 7 insertions(+) - create mode 100644 .gitmodules -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -ok 44 - git_test_func: added submodule leaves existing empty directory alone - -expecting success of 6438.45 'git_test_func: replace tracked file with submodule creates empty directory': - prolog && - reset_work_tree_to replace_sub1_with_file && - ( - cd submodule_update && - git branch -t replace_file_with_sub1 origin/replace_file_with_sub1 && - $command replace_file_with_sub1 && - test_superproject_content origin/replace_file_with_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/replace_file_with_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'replace_sub1_with_file' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -fatal: Needed a single revision -Branch 'replace_file_with_sub1' set up to track remote branch 'replace_file_with_sub1' from 'origin'. -Merging: -2364f5a Replace sub1 with file -virtual replace_file_with_sub1 -found 1 common ancestor: -2364f5a Replace sub1 with file -Merge made by the 'recursive' strategy. - .gitmodules | 4 ++++ - sub1 | 2 +- - 2 files changed, 5 insertions(+), 1 deletion(-) - mode change 100644 => 160000 sub1 -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -ok 45 - git_test_func: replace tracked file with submodule creates empty directory - -checking known breakage of 6438.46 'git_test_func: replace directory with submodule': - prolog && - reset_work_tree_to replace_sub1_with_directory && - ( - cd submodule_update && - git branch -t replace_directory_with_sub1 origin/replace_directory_with_sub1 && - $command replace_directory_with_sub1 && - test_superproject_content origin/replace_directory_with_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/replace_directory_with_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'replace_sub1_with_directory' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -fatal: Needed a single revision -Branch 'replace_directory_with_sub1' set up to track remote branch 'replace_directory_with_sub1' from 'origin'. -Merging: -cb28587 Replace sub1 with directory -virtual replace_directory_with_sub1 -found 1 common ancestor: -cb28587 Replace sub1 with directory -Removing sub1/file3 -Removing sub1/file2 -Removing sub1/file1 -Adding sub1 -Merge made by the 'recursive' strategy. - .gitmodules | 4 ++++ - sub1/file1 | 1 - - sub1/file2 | 1 - - sub1/file3 | 1 - - 4 files changed, 4 insertions(+), 3 deletions(-) - delete mode 100644 sub1/file1 - delete mode 100644 sub1/file2 - delete mode 100644 sub1/file3 -Directory sub1 doesn't exist. -not ok 46 - git_test_func: replace directory with submodule # TODO known breakage - -expecting success of 6438.47 'git_test_func: removed submodule leaves submodule directory and its contents in place': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t remove_sub1 origin/remove_sub1 && - $command remove_sub1 && - test_superproject_content origin/remove_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. -Merging: -09bcf53 Add sub1 -virtual remove_sub1 -found 1 common ancestor: -09bcf53 Add sub1 -Removing uninitialized_sub -Removing sub1 -Removing .gitmodules -Merge made by the 'recursive' strategy. - .gitmodules | 7 ------- - 1 file changed, 7 deletions(-) - delete mode 100644 .gitmodules -ok 47 - git_test_func: removed submodule leaves submodule directory and its contents in place - -expecting success of 6438.48 'git_test_func: removed submodule leaves submodule containing a .git directory alone': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t remove_sub1 origin/remove_sub1 && - replace_gitfile_with_git_dir sub1 && - $command remove_sub1 && - test_superproject_content origin/remove_sub1 && - test_git_directory_is_unchanged sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. -Merging: -09bcf53 Add sub1 -virtual remove_sub1 -found 1 common ancestor: -09bcf53 Add sub1 -Removing uninitialized_sub -Removing sub1 -Removing .gitmodules -Merge made by the 'recursive' strategy. - .gitmodules | 7 ------- - 1 file changed, 7 deletions(-) - delete mode 100644 .gitmodules -ok 48 - git_test_func: removed submodule leaves submodule containing a .git directory alone - -checking known breakage of 6438.49 'git_test_func: replace submodule with a directory must fail': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && - $command replace_sub1_with_directory test_must_fail && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -error: refusing to lose untracked file at 'sub1/file2' -error: add_cacheinfo failed to refresh for path 'sub1/file2'; merge aborting. -Merging: -09bcf53 Add sub1 -virtual replace_sub1_with_directory -found 1 common ancestor: -09bcf53 Add sub1 -Adding sub1/file3 -Adding sub1/file2 -'actual' is not empty, it contains: -:100644 100644 af3a0c56edfba1a28f50ada5ec2832a7f2f9b907 0000000000000000000000000000000000000000 M .gitmodules -not ok 49 - git_test_func: replace submodule with a directory must fail # TODO known breakage - -checking known breakage of 6438.50 'git_test_func: replace submodule containing a .git directory with a directory must fail': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && - replace_gitfile_with_git_dir sub1 && - $command replace_sub1_with_directory test_must_fail && - test_superproject_content origin/add_sub1 && - test_git_directory_is_unchanged sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -error: refusing to lose untracked file at 'sub1/file2' -error: add_cacheinfo failed to refresh for path 'sub1/file2'; merge aborting. -Merging: -09bcf53 Add sub1 -virtual replace_sub1_with_directory -found 1 common ancestor: -09bcf53 Add sub1 -Adding sub1/file3 -Adding sub1/file2 -'actual' is not empty, it contains: -:100644 100644 af3a0c56edfba1a28f50ada5ec2832a7f2f9b907 0000000000000000000000000000000000000000 M .gitmodules -not ok 50 - git_test_func: replace submodule containing a .git directory with a directory must fail # TODO known breakage - -checking known breakage of 6438.51 'git_test_func: replace submodule with a file must fail': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_file origin/replace_sub1_with_file && - $command replace_sub1_with_file test_must_fail && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -Merging: -09bcf53 Add sub1 -virtual replace_sub1_with_file -found 1 common ancestor: -09bcf53 Add sub1 -Merge made by the 'recursive' strategy. - .gitmodules | 4 ---- - sub1 | 2 +- - 2 files changed, 1 insertion(+), 5 deletions(-) - mode change 160000 => 100644 sub1 -test_must_fail: command succeeded: git merge --no-ff replace_sub1_with_file -not ok 51 - git_test_func: replace submodule with a file must fail # TODO known breakage - -checking known breakage of 6438.52 'git_test_func: replace submodule containing a .git directory with a file must fail': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_file origin/replace_sub1_with_file && - replace_gitfile_with_git_dir sub1 && - $command replace_sub1_with_file test_must_fail && - test_superproject_content origin/add_sub1 && - test_git_directory_is_unchanged sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -Merging: -09bcf53 Add sub1 -virtual replace_sub1_with_file -found 1 common ancestor: -09bcf53 Add sub1 -Merge made by the 'recursive' strategy. - .gitmodules | 4 ---- - sub1 | 2 +- - 2 files changed, 1 insertion(+), 5 deletions(-) - mode change 160000 => 100644 sub1 -test_must_fail: command succeeded: git merge --no-ff replace_sub1_with_file -not ok 52 - git_test_func: replace submodule containing a .git directory with a file must fail # TODO known breakage - -expecting success of 6438.53 'git_test_func: modified submodule does not update submodule work tree': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t modify_sub1 origin/modify_sub1 && - $command modify_sub1 && - test_superproject_content origin/modify_sub1 && - test_submodule_content sub1 origin/add_sub1 && - git submodule update && - test_submodule_content sub1 origin/modify_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. -Merging: -09bcf53 Add sub1 -virtual modify_sub1 -found 1 common ancestor: -09bcf53 Add sub1 -Merge made by the 'recursive' strategy. -Submodule path 'sub1': checked out '03da4ea88bb165bd26ee0b2e5c657f2858b23f53' -ok 53 - git_test_func: modified submodule does not update submodule work tree - -expecting success of 6438.54 'git_test_func: modified submodule does not update submodule work tree to invalid commit': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t invalid_sub1 origin/invalid_sub1 && - $command invalid_sub1 && - test_superproject_content origin/invalid_sub1 && - test_submodule_content sub1 origin/add_sub1 && - test_must_fail git submodule update && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. -Merging: -09bcf53 Add sub1 -virtual invalid_sub1 -found 1 common ancestor: -09bcf53 Add sub1 -Merge made by the 'recursive' strategy. -fatal: git upload-pack: not our ref 0123456789012345678901234567890123456789 -fatal: remote error: upload-pack: not our ref 0123456789012345678901234567890123456789 -Fetched in submodule path 'sub1', but it did not contain 0123456789012345678901234567890123456789. Direct fetching of that commit failed. -ok 54 - git_test_func: modified submodule does not update submodule work tree to invalid commit - -expecting success of 6438.55 'git_test_func: modified submodule does not update submodule work tree from invalid commit': - prolog && - reset_work_tree_to invalid_sub1 && - ( - cd submodule_update && - git branch -t valid_sub1 origin/valid_sub1 && - $command valid_sub1 && - test_superproject_content origin/valid_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/valid_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'invalid_sub1' -Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. -fatal: Needed a single revision -Branch 'valid_sub1' set up to track remote branch 'valid_sub1' from 'origin'. -Merging: -e6169bf Invalid sub1 commit -virtual valid_sub1 -found 1 common ancestor: -e6169bf Invalid sub1 commit -Merge made by the 'recursive' strategy. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -ok 55 - git_test_func: modified submodule does not update submodule work tree from invalid commit - -expecting success of 6438.56 'git_test_func: added submodule doesn't remove untracked unignored file with same name': - prolog && - reset_work_tree_to no_submodule && - ( - cd submodule_update && - git branch -t add_sub1 origin/add_sub1 && - >sub1 && - $command add_sub1 test_must_fail && - test_superproject_content origin/no_submodule && - test_must_be_empty sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -error: The following untracked working tree files would be overwritten by merge: - sub1 -Please move or remove them before you merge. -Aborting -error: merging of trees ec38489b3f8eda08fda17055ad272abc24bdf929 and 78e68a0ec4ef4e6a1d1e7a07e6ad2cf028704e1e failed -Merging: -27611a5 Base -virtual add_sub1 -found 1 common ancestor: -27611a5 Base -ok 56 - git_test_func: added submodule doesn't remove untracked unignored file with same name - -# still have 11 known breakage(s) -# passed all remaining 45 test(s) -1..56 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' *** t7007-show.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7007-show/.git/ expecting success of 7007.1 'setup': @@ -335800,7 +333717,7 @@ --force --prune-empty \ --index-filter "true" - Rewrite d79ce1670bdcb76e6d1da2ae095e890ccb326ae9 (1/5) (0 seconds passed, remaining 0 predicted) Rewrite 139b20d8e6c5b496de61f033f642d0e3dbff528d (2/5) (0 seconds passed, remaining 0 predicted) Rewrite 7c7cd714e262561f73f3079dfca4e8724682ac21 (3/5) (0 seconds passed, remaining 0 predicted) Rewrite e3ed0c3a94f05540151bd8cb9ac647b8777964a6 (4/5) (0 seconds passed, remaining 0 predicted) error: invalid object 160000 0000000000000000000000000000000000000000 for 'broken' + Rewrite d79ce1670bdcb76e6d1da2ae095e890ccb326ae9 (1/5) (0 seconds passed, remaining 0 predicted) Rewrite 139b20d8e6c5b496de61f033f642d0e3dbff528d (2/5) (0 seconds passed, remaining 0 predicted) Rewrite 7c7cd714e262561f73f3079dfca4e8724682ac21 (3/5) (0 seconds passed, remaining 0 predicted) Rewrite e3ed0c3a94f05540151bd8cb9ac647b8777964a6 (4/5) (1 seconds passed, remaining 0 predicted) error: invalid object 160000 0000000000000000000000000000000000000000 for 'broken' warning: cache entry has null sha1: broken error: invalid object 160000 0000000000000000000000000000000000000000 for 'broken' fatal: git-write-tree: error building trees @@ -335813,8 +333730,8 @@ --force --prune-empty \ --index-filter "git rm --cached --ignore-unmatch three.t" - Rewrite d79ce1670bdcb76e6d1da2ae095e890ccb326ae9 (1/5) (0 seconds passed, remaining 0 predicted) Rewrite 139b20d8e6c5b496de61f033f642d0e3dbff528d (2/5) (0 seconds passed, remaining 0 predicted) Rewrite 7c7cd714e262561f73f3079dfca4e8724682ac21 (3/5) (0 seconds passed, remaining 0 predicted) rm 'three.t' - Rewrite e3ed0c3a94f05540151bd8cb9ac647b8777964a6 (4/5) (1 seconds passed, remaining 0 predicted) error: invalid object 160000 0000000000000000000000000000000000000000 for 'broken' + Rewrite d79ce1670bdcb76e6d1da2ae095e890ccb326ae9 (1/5) (0 seconds passed, remaining 0 predicted) Rewrite 139b20d8e6c5b496de61f033f642d0e3dbff528d (2/5) (0 seconds passed, remaining 0 predicted) Rewrite 7c7cd714e262561f73f3079dfca4e8724682ac21 (3/5) (1 seconds passed, remaining 0 predicted) rm 'three.t' + Rewrite e3ed0c3a94f05540151bd8cb9ac647b8777964a6 (3/5) (1 seconds passed, remaining 0 predicted) error: invalid object 160000 0000000000000000000000000000000000000000 for 'broken' warning: cache entry has null sha1: broken error: cache entry has null sha1: broken fatal: Unable to write new index file @@ -335830,10 +333747,10 @@ git log -1 --format=%s >actual && test_cmp expect actual - Rewrite d79ce1670bdcb76e6d1da2ae095e890ccb326ae9 (1/5) (0 seconds passed, remaining 0 predicted) Rewrite 139b20d8e6c5b496de61f033f642d0e3dbff528d (2/5) (0 seconds passed, remaining 0 predicted) Rewrite 7c7cd714e262561f73f3079dfca4e8724682ac21 (3/5) (1 seconds passed, remaining 0 predicted) Rewrite e3ed0c3a94f05540151bd8cb9ac647b8777964a6 (3/5) (1 seconds passed, remaining 0 predicted) error: invalid object 160000 0000000000000000000000000000000000000000 for 'broken' + Rewrite d79ce1670bdcb76e6d1da2ae095e890ccb326ae9 (1/5) (0 seconds passed, remaining 0 predicted) Rewrite 139b20d8e6c5b496de61f033f642d0e3dbff528d (2/5) (1 seconds passed, remaining 1 predicted) Rewrite 7c7cd714e262561f73f3079dfca4e8724682ac21 (2/5) (1 seconds passed, remaining 1 predicted) Rewrite e3ed0c3a94f05540151bd8cb9ac647b8777964a6 (2/5) (1 seconds passed, remaining 1 predicted) error: invalid object 160000 0000000000000000000000000000000000000000 for 'broken' warning: cache entry has null sha1: broken rm 'broken' - Rewrite 6fc1982a7cbeec7380180353ef341fd996ac21f7 (3/5) (1 seconds passed, remaining 0 predicted) + Rewrite 6fc1982a7cbeec7380180353ef341fd996ac21f7 (5/5) (2 seconds passed, remaining 0 predicted) Ref 'refs/heads/master' was rewritten ok 6 - removing the broken entry works @@ -335841,940 +333758,197 @@ 1..6 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t7003-filter-branch.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7003-filter-branch/.git/ -expecting success of 7003.1 'setup': - test_commit A && - GIT_COMMITTER_DATE="@0 +0000" GIT_AUTHOR_DATE="@0 +0000" && - test_commit --notick B && - git checkout -b branch B && - test_commit D && - mkdir dir && - test_commit dir/D && - test_commit E && - git checkout master && - test_commit C && - git checkout branch && - git merge C && - git tag F && - test_commit G && - test_commit H - -[master (root-commit) 0ddfaf1] A - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 A.t -[master e86e545] B - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 B.t -Switched to a new branch 'branch' -[branch bd662c1] D - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 D.t -[branch 3abb9b5] dir/D - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 dir/D.t -[branch 48ac83b] E - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 E.t -Switched to branch 'master' -[master 0e63577] C - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 C.t -Switched to branch 'branch' -Merging: -48ac83b E -virtual C -found 1 common ancestor: -e86e545 B -Merge made by the 'recursive' strategy. - C.t | 1 + - 1 file changed, 1 insertion(+) - create mode 100644 C.t -[branch 3c39262] G - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 G.t -[branch 110eac9] H - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 H.t -ok 1 - setup - -expecting success of 7003.2 'rewrite identically': - git filter-branch branch - - Rewrite 0ddfaf193ff13d6ab39b7cbd9eed645e3ee2f050 (1/9) (0 seconds passed, remaining 0 predicted) Rewrite e86e54590a6764f0c4219b3fe8b5e971cd5a0ed8 (2/9) (0 seconds passed, remaining 0 predicted) Rewrite bd662c15882f4e7910b78fc26a3d8fe1ffa802e5 (3/9) (0 seconds passed, remaining 0 predicted) Rewrite 3abb9b554927997a06e6fafc3c62469a75ef32a3 (4/9) (0 seconds passed, remaining 0 predicted) Rewrite 48ac83b9774bbddb9c1cd6fe140d5380297aa69c (5/9) (0 seconds passed, remaining 0 predicted) Rewrite 0e63577b8a9dce52b69167d9c008f6a0e30de818 (6/9) (1 seconds passed, remaining 0 predicted) Rewrite 013e089e8403f3749848f7aafc6f271fb7179dbc (6/9) (1 seconds passed, remaining 0 predicted) Rewrite 3c39262d23e70569701d337b4d27a1e97512c2d9 (6/9) (1 seconds passed, remaining 0 predicted) Rewrite 110eac945dc1713b27bdf49e74e5805db66971f0 (6/9) (1 seconds passed, remaining 0 predicted) -WARNING: Ref 'refs/heads/branch' is unchanged -ok 2 - rewrite identically +*** t7010-setup.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7010-setup/.git/ +expecting success of 7010.1 'setup': -expecting success of 7003.3 'result is really identical': - test $H = $(git rev-parse HEAD) + mkdir -p a/b/c a/e && + D=$(pwd) && + >a/b/c/d && + >a/e/f -ok 3 - result is really identical -expecting success of 7003.4 'rewrite bare repository identically': - (git config core.bare true && cd .git && - git filter-branch branch > filter-output 2>&1 && - ! fgrep fatal filter-output) +ok 1 - setup -ok 4 - rewrite bare repository identically +expecting success of 7010.2 'git add (absolute)': -expecting success of 7003.5 'result is really identical': - test $H = $(git rev-parse HEAD) + git add "$D/a/b/c/d" && + git ls-files >current && + echo a/b/c/d >expect && + test_cmp expect current -ok 5 - result is really identical -expecting success of 7003.6 'correct GIT_DIR while using -d': - mkdir drepo && - ( cd drepo && - git init && - test_commit drepo && - git filter-branch -d "$TRASHDIR/dfoo" \ - --index-filter "cp \"$TRASHDIR\"/dfoo/backup-refs \"$TRASHDIR\"" \ - ) && - grep drepo "$TRASHDIR/backup-refs" +ok 2 - git add (absolute) -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7003-filter-branch/drepo/.git/ -[master (root-commit) 9f96758] drepo - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 drepo.t - Rewrite 9f9675864b1443cf5a1e281c740a8ba331951fba (1/1) (0 seconds passed, remaining 0 predicted) -WARNING: Ref 'refs/heads/master' is unchanged -9f9675864b1443cf5a1e281c740a8ba331951fba commit refs/tags/drepo -ok 6 - correct GIT_DIR while using -d +expecting success of 7010.3 'git add (funny relative)': -expecting success of 7003.7 'tree-filter works with -d': - git init drepo-tree && + rm -f .git/index && ( - cd drepo-tree && - test_commit one && - git filter-branch -d "$TRASHDIR/dfoo" \ - --tree-filter "echo changed >one.t" && - echo changed >expect && - git cat-file blob HEAD:one.t >actual && - test_cmp expect actual && - test_cmp one.t actual - ) - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7003-filter-branch/drepo-tree/.git/ -[master (root-commit) d944c64] one - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 one.t - Rewrite d944c643197c4e8b1e89974e6d9ba85df421b65d (1/1) (0 seconds passed, remaining 0 predicted) -Ref 'refs/heads/master' was rewritten -ok 7 - tree-filter works with -d - -expecting success of 7003.8 'Fail if commit filter fails': - test_must_fail git filter-branch -f --commit-filter "exit 1" HEAD - - Rewrite 0ddfaf193ff13d6ab39b7cbd9eed645e3ee2f050 (1/9) (0 seconds passed, remaining 0 predicted) could not write rewritten commit -ok 8 - Fail if commit filter fails - -expecting success of 7003.9 'rewrite, renaming a specific file': - git filter-branch -f --tree-filter "mv D.t doh || :" HEAD - - Rewrite 0ddfaf193ff13d6ab39b7cbd9eed645e3ee2f050 (1/9) (0 seconds passed, remaining 0 predicted) mv: cannot stat 'D.t': No such file or directory - Rewrite e86e54590a6764f0c4219b3fe8b5e971cd5a0ed8 (2/9) (0 seconds passed, remaining 0 predicted) mv: cannot stat 'D.t': No such file or directory - Rewrite bd662c15882f4e7910b78fc26a3d8fe1ffa802e5 (3/9) (0 seconds passed, remaining 0 predicted) Rewrite 3abb9b554927997a06e6fafc3c62469a75ef32a3 (4/9) (1 seconds passed, remaining 1 predicted) Rewrite 48ac83b9774bbddb9c1cd6fe140d5380297aa69c (4/9) (1 seconds passed, remaining 1 predicted) Rewrite 0e63577b8a9dce52b69167d9c008f6a0e30de818 (4/9) (1 seconds passed, remaining 1 predicted) mv: cannot stat 'D.t': No such file or directory - Rewrite 013e089e8403f3749848f7aafc6f271fb7179dbc (4/9) (1 seconds passed, remaining 1 predicted) Rewrite 3c39262d23e70569701d337b4d27a1e97512c2d9 (4/9) (1 seconds passed, remaining 1 predicted) Rewrite 110eac945dc1713b27bdf49e74e5805db66971f0 (9/9) (2 seconds passed, remaining 0 predicted) -Ref 'refs/heads/branch' was rewritten -ok 9 - rewrite, renaming a specific file - -expecting success of 7003.10 'test that the file was renamed': - test D = "$(git show HEAD:doh --)" && - ! test -f D.t && - test -f doh && - test D = "$(cat doh)" - -ok 10 - test that the file was renamed - -expecting success of 7003.11 'rewrite, renaming a specific directory': - git filter-branch -f --tree-filter "mv dir diroh || :" HEAD - - Rewrite 0ddfaf193ff13d6ab39b7cbd9eed645e3ee2f050 (1/9) (0 seconds passed, remaining 0 predicted) mv: cannot stat 'dir': No such file or directory - Rewrite e86e54590a6764f0c4219b3fe8b5e971cd5a0ed8 (2/9) (0 seconds passed, remaining 0 predicted) mv: cannot stat 'dir': No such file or directory - Rewrite 3d6c5360ccb48d27bbc524f53496821309a1fc79 (3/9) (0 seconds passed, remaining 0 predicted) mv: cannot stat 'dir': No such file or directory - Rewrite 28e3b83a5f2c2b87fa77b674df1529da9f4a66b4 (4/9) (0 seconds passed, remaining 0 predicted) Rewrite b0e1a7fc77c44f8710a324ce0cdaa5f0e3f41f41 (5/9) (1 seconds passed, remaining 0 predicted) Rewrite 0e63577b8a9dce52b69167d9c008f6a0e30de818 (5/9) (1 seconds passed, remaining 0 predicted) mv: cannot stat 'dir': No such file or directory - Rewrite 284d35b48d5c7cf8f258f9d25690e5c3c38bb8c3 (5/9) (1 seconds passed, remaining 0 predicted) Rewrite 8d77ce9a0f051fe4d6b311099cfc061fc8fa238e (5/9) (1 seconds passed, remaining 0 predicted) Rewrite 3623c2fd76a1257ce6cfb529b64aa3e51d851ffd (5/9) (1 seconds passed, remaining 0 predicted) -Ref 'refs/heads/branch' was rewritten -ok 11 - rewrite, renaming a specific directory - -expecting success of 7003.12 'test that the directory was renamed': - test dir/D = "$(git show HEAD:diroh/D.t --)" && - ! test -d dir && - test -d diroh && - ! test -d diroh/dir && - test -f diroh/D.t && - test dir/D = "$(cat diroh/D.t)" - -ok 12 - test that the directory was renamed - -expecting success of 7003.13 'populate --state-branch': - git filter-branch --state-branch state -f --tree-filter "touch file || :" HEAD - -Branch state does not exist. Will create - Rewrite 0ddfaf193ff13d6ab39b7cbd9eed645e3ee2f050 (1/9) (0 seconds passed, remaining 0 predicted) Rewrite e86e54590a6764f0c4219b3fe8b5e971cd5a0ed8 (2/9) (1 seconds passed, remaining 3 predicted) Rewrite 3d6c5360ccb48d27bbc524f53496821309a1fc79 (2/9) (1 seconds passed, remaining 3 predicted) Rewrite ef5df644a239016a9035ed6fe3e7f2b4b4a349bd (2/9) (1 seconds passed, remaining 3 predicted) Rewrite d66aa888e8e10ccecac31b04a73b006afcfb6ab2 (5/9) (1 seconds passed, remaining 0 predicted) Rewrite 0e63577b8a9dce52b69167d9c008f6a0e30de818 (5/9) (1 seconds passed, remaining 0 predicted) Rewrite 095b78eb9c1f77139224464f38f1e0aff8add3cf (5/9) (1 seconds passed, remaining 0 predicted) Rewrite 20d07e95852c2683da5bd70d3badbd5028484552 (5/9) (1 seconds passed, remaining 0 predicted) Rewrite 8a3423ee5559c5e0c32440a860f6b09a0e6020fc (5/9) (1 seconds passed, remaining 0 predicted) -Ref 'refs/heads/branch' was rewritten -Saving rewrite state to state -ok 13 - populate --state-branch - -expecting success of 7003.14 'using --state-branch to skip already rewritten commits': - test_when_finished git reset --hard $V && - git reset --hard $V && - git filter-branch --state-branch state -f --tree-filter "touch file || :" HEAD && - test_cmp_rev $W HEAD - -HEAD is now at 8a3423e H -Populating map from state (62b9c9fa908324bba33ac79ad962e765fd9a3958) - Rewrite 0ddfaf193ff13d6ab39b7cbd9eed645e3ee2f050 (1/9) (0 seconds passed, remaining 0 predicted) Rewrite e86e54590a6764f0c4219b3fe8b5e971cd5a0ed8 (2/9) (0 seconds passed, remaining 0 predicted) Rewrite 3d6c5360ccb48d27bbc524f53496821309a1fc79 (3/9) (0 seconds passed, remaining 0 predicted) Rewrite ef5df644a239016a9035ed6fe3e7f2b4b4a349bd (4/9) (0 seconds passed, remaining 0 predicted) Rewrite d66aa888e8e10ccecac31b04a73b006afcfb6ab2 (5/9) (0 seconds passed, remaining 0 predicted) Rewrite 0e63577b8a9dce52b69167d9c008f6a0e30de818 (6/9) (0 seconds passed, remaining 0 predicted) Rewrite 095b78eb9c1f77139224464f38f1e0aff8add3cf (7/9) (0 seconds passed, remaining 0 predicted) Rewrite 20d07e95852c2683da5bd70d3badbd5028484552 (8/9) (0 seconds passed, remaining 0 predicted) Rewrite 8a3423ee5559c5e0c32440a860f6b09a0e6020fc (9/9) (0 seconds passed, remaining 0 predicted) -Ref 'refs/heads/branch' was rewritten -Saving rewrite state to state -HEAD is now at 8a3423e H -ok 14 - using --state-branch to skip already rewritten commits - -expecting success of 7003.15 'rewrite one branch, keeping a side branch': - git branch modD oldD && - git filter-branch -f --tree-filter "mv B.t boh || :" D..modD - - Rewrite 3d6c5360ccb48d27bbc524f53496821309a1fc79 (1/2) (0 seconds passed, remaining 0 predicted) Rewrite ef5df644a239016a9035ed6fe3e7f2b4b4a349bd (2/2) (0 seconds passed, remaining 0 predicted) -Ref 'refs/heads/modD' was rewritten -ok 15 - rewrite one branch, keeping a side branch - -expecting success of 7003.16 'common ancestor is still common (unchanged)': - test "$(git merge-base modD D)" = "$(git rev-parse B)" - -ok 16 - common ancestor is still common (unchanged) - -expecting success of 7003.17 'filter subdirectory only': - mkdir subdir && - touch subdir/new && - git add subdir/new && - test_tick && - git commit -m "subdir" && - echo H > A.t && - test_tick && - git commit -m "not subdir" A.t && - echo A > subdir/new && - test_tick && - git commit -m "again subdir" subdir/new && - git rm A.t && - test_tick && - git commit -m "again not subdir" && - git branch sub && - git branch sub-earlier HEAD~2 && - git filter-branch -f --subdirectory-filter subdir \ - refs/heads/sub refs/heads/sub-earlier - -[branch bb8f80d] subdir - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - create mode 100644 subdir/new -[branch 5bae69c] not subdir - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -[branch 140072e] again subdir - Author: A U Thor - 1 file changed, 1 insertion(+) -rm 'A.t' -[branch ead226b] again not subdir - Author: A U Thor - 1 file changed, 1 deletion(-) - delete mode 100644 A.t - Rewrite bb8f80d463b54137409c5a381ad07ea6bf4b1867 (1/2) (0 seconds passed, remaining 0 predicted) Rewrite 140072ead29d56d10c1c5c473c117e3aed45a333 (2/2) (0 seconds passed, remaining 0 predicted) -Ref 'refs/heads/sub' was rewritten -Ref 'refs/heads/sub-earlier' was rewritten -ok 17 - filter subdirectory only - -expecting success of 7003.18 'subdirectory filter result looks okay': - test 2 = $(git rev-list sub | wc -l) && - git show sub:new && - test_must_fail git show sub:subdir && - git show sub-earlier:new && - test_must_fail git show sub-earlier:subdir - -A -fatal: path 'subdir' exists on disk, but not in 'sub' -fatal: path 'subdir' exists on disk, but not in 'sub-earlier' -ok 18 - subdirectory filter result looks okay - -expecting success of 7003.19 'more setup': - git checkout master && - mkdir subdir && - echo A > subdir/new && - git add subdir/new && - test_tick && - git commit -m "subdir on master" subdir/new && - git rm A.t && - test_tick && - git commit -m "again subdir on master" && - git merge branch - -Switched to branch 'master' -[master 2744380] subdir on master - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 subdir/new -rm 'A.t' -[master d349444] again subdir on master - Author: A U Thor - 1 file changed, 1 deletion(-) - delete mode 100644 A.t -Merging: -d349444 again subdir on master -virtual branch -found 1 common ancestor: -0e63577 C -Skipped subdir/new (merged same as existing) -Merge made by the 'recursive' strategy. - E.t | 1 + - G.t | 1 + - H.t | 1 + - diroh/D.t | 1 + - doh | 1 + - 5 files changed, 5 insertions(+) - create mode 100644 E.t - create mode 100644 G.t - create mode 100644 H.t - create mode 100644 diroh/D.t - create mode 100644 doh -ok 19 - more setup - -expecting success of 7003.20 'use index-filter to move into a subdirectory': - git branch directorymoved && - git filter-branch -f --index-filter \ - "git ls-files -s | sed \"s- -&newsubdir/-\" | - GIT_INDEX_FILE=\$GIT_INDEX_FILE.new \ - git update-index --index-info && - mv \"\$GIT_INDEX_FILE.new\" \"\$GIT_INDEX_FILE\"" directorymoved && - git diff --exit-code HEAD directorymoved:newsubdir - - Rewrite 0ddfaf193ff13d6ab39b7cbd9eed645e3ee2f050 (1/16) (0 seconds passed, remaining 0 predicted) Rewrite e86e54590a6764f0c4219b3fe8b5e971cd5a0ed8 (2/16) (0 seconds passed, remaining 0 predicted) Rewrite 0e63577b8a9dce52b69167d9c008f6a0e30de818 (3/16) (0 seconds passed, remaining 0 predicted) Rewrite 2744380f4984748b7b4c121c182e9c3330a609c5 (4/16) (1 seconds passed, remaining 3 predicted) Rewrite d3494446ffa0b10a4a22ad9db09ce4fe83ff7648 (4/16) (1 seconds passed, remaining 3 predicted) Rewrite 3d6c5360ccb48d27bbc524f53496821309a1fc79 (4/16) (1 seconds passed, remaining 3 predicted) Rewrite ef5df644a239016a9035ed6fe3e7f2b4b4a349bd (4/16) (1 seconds passed, remaining 3 predicted) Rewrite d66aa888e8e10ccecac31b04a73b006afcfb6ab2 (4/16) (1 seconds passed, remaining 3 predicted) Rewrite 095b78eb9c1f77139224464f38f1e0aff8add3cf (9/16) (2 seconds passed, remaining 1 predicted) Rewrite 20d07e95852c2683da5bd70d3badbd5028484552 (9/16) (2 seconds passed, remaining 1 predicted) Rewrite 8a3423ee5559c5e0c32440a860f6b09a0e6020fc (9/16) (2 seconds passed, remaining 1 predicted) Rewrite bb8f80d463b54137409c5a381ad07ea6bf4b1867 (9/16) (2 seconds passed, remaining 1 predicted) Rewrite 5bae69c6543c34be1d98816e26501bcda79d1d6b (9/16) (2 seconds passed, remaining 1 predicted) Rewrite 140072ead29d56d10c1c5c473c117e3aed45a333 (14/16) (3 seconds passed, remaining 0 predicted) Rewrite ead226bc0b53c5d210f2326ae871b0fea3004df3 (14/16) (3 seconds passed, remaining 0 predicted) Rewrite 7329f31555df2545350d15ecd0f5eab05e7142e1 (14/16) (3 seconds passed, remaining 0 predicted) -Ref 'refs/heads/directorymoved' was rewritten -ok 20 - use index-filter to move into a subdirectory - -expecting success of 7003.21 'stops when msg filter fails': - old=$(git rev-parse HEAD) && - test_must_fail git filter-branch -f --msg-filter false HEAD && - test $old = $(git rev-parse HEAD) && - rm -rf .git-rewrite - - Rewrite 0ddfaf193ff13d6ab39b7cbd9eed645e3ee2f050 (1/16) (0 seconds passed, remaining 0 predicted) msg filter failed: false -ok 21 - stops when msg filter fails - -expecting success of 7003.22 'author information is preserved': - : > i && - git add i && - test_tick && - GIT_AUTHOR_NAME="B V Uips" git commit -m bvuips && - git branch preserved-author && - (sane_unset GIT_AUTHOR_NAME && - git filter-branch -f --msg-filter "cat; \ - test \$GIT_COMMIT != $(git rev-parse master) || \ - echo Hallo" \ - preserved-author) && - git rev-list --author="B V Uips" preserved-author >actual && - test_line_count = 1 actual - -[master 2bfc21d] bvuips - Author: B V Uips - 1 file changed, 0 insertions(+), 0 deletions(-) - create mode 100644 i - Rewrite 0ddfaf193ff13d6ab39b7cbd9eed645e3ee2f050 (1/17) (0 seconds passed, remaining 0 predicted) Rewrite e86e54590a6764f0c4219b3fe8b5e971cd5a0ed8 (2/17) (0 seconds passed, remaining 0 predicted) Rewrite 0e63577b8a9dce52b69167d9c008f6a0e30de818 (3/17) (0 seconds passed, remaining 0 predicted) Rewrite 2744380f4984748b7b4c121c182e9c3330a609c5 (4/17) (0 seconds passed, remaining 0 predicted) Rewrite d3494446ffa0b10a4a22ad9db09ce4fe83ff7648 (5/17) (0 seconds passed, remaining 0 predicted) Rewrite 3d6c5360ccb48d27bbc524f53496821309a1fc79 (6/17) (0 seconds passed, remaining 0 predicted) Rewrite ef5df644a239016a9035ed6fe3e7f2b4b4a349bd (7/17) (0 seconds passed, remaining 0 predicted) Rewrite d66aa888e8e10ccecac31b04a73b006afcfb6ab2 (8/17) (0 seconds passed, remaining 0 predicted) Rewrite 095b78eb9c1f77139224464f38f1e0aff8add3cf (9/17) (0 seconds passed, remaining 0 predicted) Rewrite 20d07e95852c2683da5bd70d3badbd5028484552 (10/17) (0 seconds passed, remaining 0 predicted) Rewrite 8a3423ee5559c5e0c32440a860f6b09a0e6020fc (11/17) (1 seconds passed, remaining 0 predicted) Rewrite bb8f80d463b54137409c5a381ad07ea6bf4b1867 (11/17) (1 seconds passed, remaining 0 predicted) Rewrite 5bae69c6543c34be1d98816e26501bcda79d1d6b (11/17) (1 seconds passed, remaining 0 predicted) Rewrite 140072ead29d56d10c1c5c473c117e3aed45a333 (11/17) (1 seconds passed, remaining 0 predicted) Rewrite ead226bc0b53c5d210f2326ae871b0fea3004df3 (11/17) (1 seconds passed, remaining 0 predicted) Rewrite 7329f31555df2545350d15ecd0f5eab05e7142e1 (11/17) (1 seconds passed, remaining 0 predicted) Rewrite 2bfc21d43f33a03177145ce5f42ee28e86b0e4d2 (11/17) (1 seconds passed, remaining 0 predicted) -Ref 'refs/heads/preserved-author' was rewritten -ok 22 - author information is preserved - -expecting success of 7003.23 'remove a certain author's commits': - echo i > i && - test_tick && - git commit -m i i && - git branch removed-author && - git filter-branch -f --commit-filter "\ - if [ \"\$GIT_AUTHOR_NAME\" = \"B V Uips\" ];\ - then\ - skip_commit \"\$@\"; - else\ - git commit-tree \"\$@\";\ - fi" removed-author && - cnt1=$(git rev-list master | wc -l) && - cnt2=$(git rev-list removed-author | wc -l) && - test $cnt1 -eq $(($cnt2 + 1)) && - git rev-list --author="B V Uips" removed-author >actual && - test_line_count = 0 actual - -[master 68862b3] i - Author: A U Thor - 1 file changed, 1 insertion(+) - Rewrite 0ddfaf193ff13d6ab39b7cbd9eed645e3ee2f050 (1/18) (0 seconds passed, remaining 0 predicted) Rewrite e86e54590a6764f0c4219b3fe8b5e971cd5a0ed8 (2/18) (1 seconds passed, remaining 8 predicted) Rewrite 0e63577b8a9dce52b69167d9c008f6a0e30de818 (2/18) (1 seconds passed, remaining 8 predicted) Rewrite 2744380f4984748b7b4c121c182e9c3330a609c5 (2/18) (1 seconds passed, remaining 8 predicted) Rewrite d3494446ffa0b10a4a22ad9db09ce4fe83ff7648 (5/18) (1 seconds passed, remaining 2 predicted) Rewrite 3d6c5360ccb48d27bbc524f53496821309a1fc79 (5/18) (1 seconds passed, remaining 2 predicted) Rewrite ef5df644a239016a9035ed6fe3e7f2b4b4a349bd (5/18) (1 seconds passed, remaining 2 predicted) Rewrite d66aa888e8e10ccecac31b04a73b006afcfb6ab2 (5/18) (1 seconds passed, remaining 2 predicted) Rewrite 095b78eb9c1f77139224464f38f1e0aff8add3cf (5/18) (1 seconds passed, remaining 2 predicted) Rewrite 20d07e95852c2683da5bd70d3badbd5028484552 (5/18) (1 seconds passed, remaining 2 predicted) Rewrite 8a3423ee5559c5e0c32440a860f6b09a0e6020fc (11/18) (2 seconds passed, remaining 1 predicted) Rewrite bb8f80d463b54137409c5a381ad07ea6bf4b1867 (11/18) (2 seconds passed, remaining 1 predicted) Rewrite 5bae69c6543c34be1d98816e26501bcda79d1d6b (11/18) (2 seconds passed, remaining 1 predicted) Rewrite 140072ead29d56d10c1c5c473c117e3aed45a333 (11/18) (2 seconds passed, remaining 1 predicted) Rewrite ead226bc0b53c5d210f2326ae871b0fea3004df3 (11/18) (2 seconds passed, remaining 1 predicted) Rewrite 7329f31555df2545350d15ecd0f5eab05e7142e1 (11/18) (2 seconds passed, remaining 1 predicted) Rewrite 2bfc21d43f33a03177145ce5f42ee28e86b0e4d2 (17/18) (3 seconds passed, remaining 0 predicted) Rewrite 68862b396e34e966159af1904a1560522f345981 (17/18) (3 seconds passed, remaining 0 predicted) -Ref 'refs/heads/removed-author' was rewritten -ok 23 - remove a certain author's commits - -expecting success of 7003.24 'barf on invalid name': - test_must_fail git filter-branch -f master xy-problem && - test_must_fail git filter-branch -f HEAD^ - -fatal: ambiguous argument 'xy-problem': unknown revision or path not in the working tree. -Use '--' to separate paths from revisions, like this: -'git [...] -- [...]' -You must specify a ref to rewrite. -ok 24 - barf on invalid name - -expecting success of 7003.25 '"map" works in commit filter': - git filter-branch -f --commit-filter "\ - parent=\$(git rev-parse \$GIT_COMMIT^) && - mapped=\$(map \$parent) && - actual=\$(echo \"\$@\" | sed \"s/^.*-p //\") && - test \$mapped = \$actual && - git commit-tree \"\$@\";" master~2..master && - git rev-parse --verify master - - Rewrite 2bfc21d43f33a03177145ce5f42ee28e86b0e4d2 (1/2) (0 seconds passed, remaining 0 predicted) Rewrite 68862b396e34e966159af1904a1560522f345981 (2/2) (0 seconds passed, remaining 0 predicted) -WARNING: Ref 'refs/heads/master' is unchanged -68862b396e34e966159af1904a1560522f345981 -ok 25 - "map" works in commit filter - -expecting success of 7003.26 'Name needing quotes': - - git checkout -b rerere A && - mkdir foo && - name="れれれ" && - >foo/$name && - git add foo && - git commit -m "Adding a file" && - git filter-branch --tree-filter "rm -fr foo" && - test_must_fail git ls-files --error-unmatch "foo/$name" && - test $(git rev-parse --verify rerere) != $(git rev-parse --verify A) - - -Switched to a new branch 'rerere' -[rerere 1d45e88] Adding a file - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - create mode 100644 "foo/\343\202\214\343\202\214\343\202\214" - Rewrite 0ddfaf193ff13d6ab39b7cbd9eed645e3ee2f050 (1/2) (0 seconds passed, remaining 0 predicted) Rewrite 1d45e8854f1dd5452938be2dedb173087134c05c (2/2) (1 seconds passed, remaining 0 predicted) -Ref 'refs/heads/rerere' was rewritten -error: pathspec 'foo/れれれ' did not match any file(s) known to git -Did you forget to 'git add'? -ok 26 - Name needing quotes - -expecting success of 7003.27 'Subdirectory filter with disappearing trees': - git reset --hard && - git checkout master && - - mkdir foo && - touch foo/bar && - git add foo && - test_tick && - git commit -m "Adding foo" && + cd a/b && + git add "../e/./f" + ) && + git ls-files >current && + echo a/e/f >expect && + test_cmp expect current - git rm -r foo && - test_tick && - git commit -m "Removing foo" && - mkdir foo && - touch foo/bar && - git add foo && - test_tick && - git commit -m "Re-adding foo" && +ok 3 - git add (funny relative) - git filter-branch -f --subdirectory-filter foo && - git rev-list master >actual && - test_line_count = 3 actual +expecting success of 7010.4 'git rm (absolute)': -HEAD is now at 643bd56 Adding a file -Switched to branch 'master' -[master 3305444] Adding foo - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - create mode 100644 foo/bar -rm 'foo/bar' -[master 19fad5f] Removing foo - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - delete mode 100644 foo/bar -[master 7aafb76] Re-adding foo - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - create mode 100644 foo/bar - Rewrite 3305444c998d38f6e0ae04b8b2dde079396fbd96 (1/3) (0 seconds passed, remaining 0 predicted) Rewrite 19fad5fb6ee227e558ea3a23a347d3c375fde390 (2/3) (0 seconds passed, remaining 0 predicted) Rewrite 7aafb762e4a3130535b3e68ddc425c6c7c339d3b (3/3) (0 seconds passed, remaining 0 predicted) -Ref 'refs/heads/master' was rewritten -ok 27 - Subdirectory filter with disappearing trees + rm -f .git/index && + git add a && + git rm -f --cached "$D/a/b/c/d" && + git ls-files >current && + echo a/e/f >expect && + test_cmp expect current -expecting success of 7003.28 'Tag name filtering retains tag message': - git tag -m atag T && - git cat-file tag T > expect && - git filter-branch -f --tag-name-filter cat && - git cat-file tag T > actual && - test_cmp expect actual - Rewrite f78b0905e139f6556b004c5f87cfe750aa8e3286 (1/3) (0 seconds passed, remaining 0 predicted) Rewrite c9fbe965b33cbcb81865d123297fe4df816d7555 (2/3) (0 seconds passed, remaining 0 predicted) Rewrite fea59ed4667894c7bd682b11f147174ab39c40bd (3/3) (0 seconds passed, remaining 0 predicted) -WARNING: Ref 'refs/heads/master' is unchanged -T -> T (fea59ed4667894c7bd682b11f147174ab39c40bd -> fea59ed4667894c7bd682b11f147174ab39c40bd) -ok 28 - Tag name filtering retains tag message +rm 'a/b/c/d' +ok 4 - git rm (absolute) -expecting success of 7003.29 'Tag name filtering strips gpg signature': - sha1=$(git rev-parse HEAD) && - sha1t=$(echo "$faux_gpg_tag" | sed -e s/XXXXXX/$sha1/ | git mktag) && - git update-ref "refs/tags/S" "$sha1t" && - echo "$faux_gpg_tag" | sed -e s/XXXXXX/$sha1/ | head -n 6 > expect && - git filter-branch -f --tag-name-filter cat && - git cat-file tag S > actual && - test_cmp expect actual +expecting success of 7010.5 'git rm (funny relative)': - Rewrite f78b0905e139f6556b004c5f87cfe750aa8e3286 (1/3) (0 seconds passed, remaining 0 predicted) Rewrite c9fbe965b33cbcb81865d123297fe4df816d7555 (2/3) (0 seconds passed, remaining 0 predicted) Rewrite fea59ed4667894c7bd682b11f147174ab39c40bd (3/3) (1 seconds passed, remaining 0 predicted) -WARNING: Ref 'refs/heads/master' is unchanged -S -> S (fea59ed4667894c7bd682b11f147174ab39c40bd -> fea59ed4667894c7bd682b11f147174ab39c40bd) -gpg signature stripped from tag object 5e10caf7d74c3ace8930aa1d5449d4d0ceb2e9e0 -T -> T (fea59ed4667894c7bd682b11f147174ab39c40bd -> fea59ed4667894c7bd682b11f147174ab39c40bd) -ok 29 - Tag name filtering strips gpg signature + rm -f .git/index && + git add a && + ( + cd a/b && + git rm -f --cached "../e/./f" + ) && + git ls-files >current && + echo a/b/c/d >expect && + test_cmp expect current -checking prerequisite: GPG -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-GPG" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-GPG" && - gpg_version=$(gpg --version 2>&1) - test $? != 127 || exit 1 +rm 'a/e/f' +ok 5 - git rm (funny relative) - # As said here: http://www.gnupg.org/documentation/faqs.html#q6.19 - # the gpg version 1.0.6 did not parse trust packets correctly, so for - # that version, creation of signed tags using the generated key fails. - case "$gpg_version" in - "gpg (GnuPG) 1.0.6"*) - say "Your version of gpg (1.0.6) is too buggy for testing" - exit 1 - ;; - *) - # Available key info: - # * Type DSA and Elgamal, size 2048 bits, no expiration date, - # name and email: C O Mitter - # * Type RSA, size 2048 bits, no expiration date, - # name and email: Eris Discordia - # No password given, to enable non-interactive operation. - # To generate new key: - # gpg --homedir /tmp/gpghome --gen-key - # To write armored exported key to keyring: - # gpg --homedir /tmp/gpghome --export-secret-keys \ - # --armor 0xDEADBEEF >> lib-gpg/keyring.gpg - # gpg --homedir /tmp/gpghome --export \ - # --armor 0xDEADBEEF >> lib-gpg/keyring.gpg - # To export ownertrust: - # gpg --homedir /tmp/gpghome --export-ownertrust \ - # > lib-gpg/ownertrust - mkdir "$GNUPGHOME" && - chmod 0700 "$GNUPGHOME" && - (gpgconf --kill gpg-agent || : ) && - gpg --homedir "${GNUPGHOME}" --import \ - "$TEST_DIRECTORY"/lib-gpg/keyring.gpg && - gpg --homedir "${GNUPGHOME}" --import-ownertrust \ - "$TEST_DIRECTORY"/lib-gpg/ownertrust && - gpg --homedir "${GNUPGHOME}" /dev/null \ - --sign -u committer@example.com - ;; - esac +expecting success of 7010.6 'git ls-files (absolute)': -) -prerequisite GPG not satisfied -ok 30 # skip Filtering retains message of gpg signed commit (missing GPG) + rm -f .git/index && + git add a && + git ls-files "$D/a/e/../b" >current && + echo a/b/c/d >expect && + test_cmp expect current -expecting success of 7003.31 'Tag name filtering allows slashes in tag names': - git tag -m tag-with-slash X/1 && - git cat-file tag X/1 | sed -e s,X/1,X/2, > expect && - git filter-branch -f --tag-name-filter "echo X/2" && - git cat-file tag X/2 > actual && - test_cmp expect actual - Rewrite f78b0905e139f6556b004c5f87cfe750aa8e3286 (1/3) (0 seconds passed, remaining 0 predicted) Rewrite c9fbe965b33cbcb81865d123297fe4df816d7555 (2/3) (0 seconds passed, remaining 0 predicted) Rewrite fea59ed4667894c7bd682b11f147174ab39c40bd (3/3) (0 seconds passed, remaining 0 predicted) -WARNING: Ref 'refs/heads/master' is unchanged -S -> X/2 (fea59ed4667894c7bd682b11f147174ab39c40bd -> fea59ed4667894c7bd682b11f147174ab39c40bd) -T -> X/2 (fea59ed4667894c7bd682b11f147174ab39c40bd -> fea59ed4667894c7bd682b11f147174ab39c40bd) -X/1 -> X/2 (fea59ed4667894c7bd682b11f147174ab39c40bd -> fea59ed4667894c7bd682b11f147174ab39c40bd) -ok 31 - Tag name filtering allows slashes in tag names +ok 6 - git ls-files (absolute) -expecting success of 7003.32 'setup --prune-empty comparisons': - git checkout --orphan master-no-a && - git rm -rf . && - unset test_tick && - test_tick && - GIT_COMMITTER_DATE="@0 +0000" GIT_AUTHOR_DATE="@0 +0000" && - test_commit --notick B B.t B Bx && - git checkout -b branch-no-a Bx && - test_commit D D.t D Dx && - mkdir dir && - test_commit dir/D dir/D.t dir/D dir/Dx && - test_commit E E.t E Ex && - git checkout master-no-a && - test_commit C C.t C Cx && - git checkout branch-no-a && - git merge Cx -m "Merge tag 'C' into branch" && - git tag Fx && - test_commit G G.t G Gx && - test_commit H H.t H Hx && - git checkout branch +expecting success of 7010.7 'git ls-files (relative #1)': -Switched to a new branch 'master-no-a' -rm 'bar' -[master-no-a (root-commit) 8d95d31] B - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 B.t -Switched to a new branch 'branch-no-a' -[branch-no-a 2d0b6b2] D - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 D.t -[branch-no-a 6b73242] dir/D - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 dir/D.t -[branch-no-a 6e45985] E - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 E.t -Switched to branch 'master-no-a' -[master-no-a 5a68040] C - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 C.t -Switched to branch 'branch-no-a' -Merging: -6e45985 E -virtual Cx -found 1 common ancestor: -8d95d31 B -Merge made by the 'recursive' strategy. - C.t | 1 + - 1 file changed, 1 insertion(+) - create mode 100644 C.t -[branch-no-a f0368e4] G - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 G.t -[branch-no-a 00fc75b] H - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 H.t -Switched to branch 'branch' -ok 32 - setup --prune-empty comparisons + rm -f .git/index && + git add a && + ( + cd a/b && + git ls-files "../b/c" + ) >current && + echo c/d >expect && + test_cmp expect current -expecting success of 7003.33 'Prune empty commits': - git rev-list HEAD > expect && - test_commit to_remove && - git filter-branch -f --index-filter "git update-index --remove to_remove.t" --prune-empty HEAD && - git rev-list HEAD > actual && - test_cmp expect actual -[branch 219a992] to_remove - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 to_remove.t - Rewrite 0ddfaf193ff13d6ab39b7cbd9eed645e3ee2f050 (1/14) (0 seconds passed, remaining 0 predicted) Rewrite e86e54590a6764f0c4219b3fe8b5e971cd5a0ed8 (2/14) (0 seconds passed, remaining 0 predicted) Rewrite 3d6c5360ccb48d27bbc524f53496821309a1fc79 (3/14) (0 seconds passed, remaining 0 predicted) Rewrite ef5df644a239016a9035ed6fe3e7f2b4b4a349bd (4/14) (1 seconds passed, remaining 2 predicted) Rewrite d66aa888e8e10ccecac31b04a73b006afcfb6ab2 (4/14) (1 seconds passed, remaining 2 predicted) Rewrite 0e63577b8a9dce52b69167d9c008f6a0e30de818 (4/14) (1 seconds passed, remaining 2 predicted) Rewrite 095b78eb9c1f77139224464f38f1e0aff8add3cf (4/14) (1 seconds passed, remaining 2 predicted) Rewrite 20d07e95852c2683da5bd70d3badbd5028484552 (4/14) (1 seconds passed, remaining 2 predicted) Rewrite 8a3423ee5559c5e0c32440a860f6b09a0e6020fc (9/14) (1 seconds passed, remaining 0 predicted) Rewrite bb8f80d463b54137409c5a381ad07ea6bf4b1867 (9/14) (1 seconds passed, remaining 0 predicted) Rewrite 5bae69c6543c34be1d98816e26501bcda79d1d6b (9/14) (1 seconds passed, remaining 0 predicted) Rewrite 140072ead29d56d10c1c5c473c117e3aed45a333 (9/14) (1 seconds passed, remaining 0 predicted) Rewrite ead226bc0b53c5d210f2326ae871b0fea3004df3 (9/14) (1 seconds passed, remaining 0 predicted) Rewrite 219a992bdcfa9f21a6ac93c218579aed7936acdd (9/14) (1 seconds passed, remaining 0 predicted) -Ref 'refs/heads/branch' was rewritten -ok 33 - Prune empty commits +ok 7 - git ls-files (relative #1) -expecting success of 7003.34 'prune empty collapsed merges': - test_config merge.ff false && - git rev-list HEAD >expect && - test_commit to_remove_2 && - git reset --hard HEAD^ && - test_merge non-ff to_remove_2 && - git filter-branch -f --index-filter "git update-index --remove to_remove_2.t" --prune-empty HEAD && - git rev-list HEAD >actual && - test_cmp expect actual +expecting success of 7010.8 'git ls-files (relative #2)': -[branch cb86908] to_remove_2 - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 to_remove_2.t -HEAD is now at ead226b again not subdir -Merging: -ead226b again not subdir -virtual to_remove_2 -found 1 common ancestor: -ead226b again not subdir -Merge made by the 'recursive' strategy. - to_remove_2.t | 1 + - 1 file changed, 1 insertion(+) - create mode 100644 to_remove_2.t - Rewrite 0ddfaf193ff13d6ab39b7cbd9eed645e3ee2f050 (1/15) (0 seconds passed, remaining 0 predicted) Rewrite e86e54590a6764f0c4219b3fe8b5e971cd5a0ed8 (2/15) (0 seconds passed, remaining 0 predicted) Rewrite 3d6c5360ccb48d27bbc524f53496821309a1fc79 (3/15) (0 seconds passed, remaining 0 predicted) Rewrite ef5df644a239016a9035ed6fe3e7f2b4b4a349bd (4/15) (0 seconds passed, remaining 0 predicted) Rewrite d66aa888e8e10ccecac31b04a73b006afcfb6ab2 (5/15) (0 seconds passed, remaining 0 predicted) Rewrite 0e63577b8a9dce52b69167d9c008f6a0e30de818 (6/15) (0 seconds passed, remaining 0 predicted) Rewrite 095b78eb9c1f77139224464f38f1e0aff8add3cf (7/15) (1 seconds passed, remaining 1 predicted) Rewrite 20d07e95852c2683da5bd70d3badbd5028484552 (7/15) (1 seconds passed, remaining 1 predicted) Rewrite 8a3423ee5559c5e0c32440a860f6b09a0e6020fc (7/15) (1 seconds passed, remaining 1 predicted) Rewrite bb8f80d463b54137409c5a381ad07ea6bf4b1867 (7/15) (1 seconds passed, remaining 1 predicted) Rewrite 5bae69c6543c34be1d98816e26501bcda79d1d6b (7/15) (1 seconds passed, remaining 1 predicted) Rewrite 140072ead29d56d10c1c5c473c117e3aed45a333 (7/15) (1 seconds passed, remaining 1 predicted) Rewrite ead226bc0b53c5d210f2326ae871b0fea3004df3 (7/15) (1 seconds passed, remaining 1 predicted) Rewrite cb86908a399a1a40c4270055e48259f9034a5458 (7/15) (1 seconds passed, remaining 1 predicted) Rewrite 61efb63b91ac2be151fa30bc4f43e001cd3b8c86 (15/15) (2 seconds passed, remaining 0 predicted) -Ref 'refs/heads/branch' was rewritten -ok 34 - prune empty collapsed merges + rm -f .git/index && + git add a && + ( + cd a/b && + git ls-files --full-name "../e/f" + ) >current && + echo a/e/f >expect && + test_cmp expect current -expecting success of 7003.35 'prune empty works even without index/tree filters': - git rev-list HEAD >expect && - git commit --allow-empty -m empty && - git filter-branch -f --prune-empty HEAD && - git rev-list HEAD >actual && - test_cmp expect actual -[branch 5b6cb84] empty - Author: A U Thor - Rewrite 0ddfaf193ff13d6ab39b7cbd9eed645e3ee2f050 (1/14) (0 seconds passed, remaining 0 predicted) Rewrite e86e54590a6764f0c4219b3fe8b5e971cd5a0ed8 (2/14) (0 seconds passed, remaining 0 predicted) Rewrite 3d6c5360ccb48d27bbc524f53496821309a1fc79 (3/14) (0 seconds passed, remaining 0 predicted) Rewrite ef5df644a239016a9035ed6fe3e7f2b4b4a349bd (4/14) (0 seconds passed, remaining 0 predicted) Rewrite d66aa888e8e10ccecac31b04a73b006afcfb6ab2 (5/14) (0 seconds passed, remaining 0 predicted) Rewrite 0e63577b8a9dce52b69167d9c008f6a0e30de818 (6/14) (1 seconds passed, remaining 1 predicted) Rewrite 095b78eb9c1f77139224464f38f1e0aff8add3cf (6/14) (1 seconds passed, remaining 1 predicted) Rewrite 20d07e95852c2683da5bd70d3badbd5028484552 (6/14) (1 seconds passed, remaining 1 predicted) Rewrite 8a3423ee5559c5e0c32440a860f6b09a0e6020fc (6/14) (1 seconds passed, remaining 1 predicted) Rewrite bb8f80d463b54137409c5a381ad07ea6bf4b1867 (6/14) (1 seconds passed, remaining 1 predicted) Rewrite 5bae69c6543c34be1d98816e26501bcda79d1d6b (6/14) (1 seconds passed, remaining 1 predicted) Rewrite 140072ead29d56d10c1c5c473c117e3aed45a333 (6/14) (1 seconds passed, remaining 1 predicted) Rewrite ead226bc0b53c5d210f2326ae871b0fea3004df3 (13/14) (2 seconds passed, remaining 0 predicted) Rewrite 5b6cb848f343668f1f75c3258a59d12c1680d67f (13/14) (2 seconds passed, remaining 0 predicted) -Ref 'refs/heads/branch' was rewritten -ok 35 - prune empty works even without index/tree filters +ok 8 - git ls-files (relative #2) -expecting success of 7003.36 '--prune-empty is able to prune root commit': - git rev-list branch-no-a >expect && - git branch testing H && - git filter-branch -f --prune-empty --index-filter "git update-index --remove A.t" testing && - git rev-list testing >actual && - git branch -D testing && - test_cmp expect actual +expecting success of 7010.9 'git ls-files (relative #3)': - Rewrite 0ddfaf193ff13d6ab39b7cbd9eed645e3ee2f050 (1/9) (0 seconds passed, remaining 0 predicted) Rewrite e86e54590a6764f0c4219b3fe8b5e971cd5a0ed8 (2/9) (0 seconds passed, remaining 0 predicted) Rewrite bd662c15882f4e7910b78fc26a3d8fe1ffa802e5 (3/9) (0 seconds passed, remaining 0 predicted) Rewrite 3abb9b554927997a06e6fafc3c62469a75ef32a3 (4/9) (0 seconds passed, remaining 0 predicted) Rewrite 48ac83b9774bbddb9c1cd6fe140d5380297aa69c (5/9) (1 seconds passed, remaining 0 predicted) Rewrite 0e63577b8a9dce52b69167d9c008f6a0e30de818 (5/9) (1 seconds passed, remaining 0 predicted) Rewrite 013e089e8403f3749848f7aafc6f271fb7179dbc (5/9) (1 seconds passed, remaining 0 predicted) Rewrite 3c39262d23e70569701d337b4d27a1e97512c2d9 (5/9) (1 seconds passed, remaining 0 predicted) Rewrite 110eac945dc1713b27bdf49e74e5805db66971f0 (5/9) (1 seconds passed, remaining 0 predicted) -Ref 'refs/heads/testing' was rewritten -Deleted branch testing (was 00fc75b). -ok 36 - --prune-empty is able to prune root commit + rm -f .git/index && + git add a && + ( + cd a/b && + git ls-files "../e/f" + ) >current && + echo ../e/f >expect && + test_cmp expect current -expecting success of 7003.37 '--prune-empty is able to prune entire branch': - git branch prune-entire B && - git filter-branch -f --prune-empty --index-filter "git update-index --remove A.t B.t" prune-entire && - test_path_is_missing .git/refs/heads/prune-entire && - test_must_fail git reflog exists refs/heads/prune-entire - Rewrite 0ddfaf193ff13d6ab39b7cbd9eed645e3ee2f050 (1/2) (0 seconds passed, remaining 0 predicted) Rewrite e86e54590a6764f0c4219b3fe8b5e971cd5a0ed8 (2/2) (0 seconds passed, remaining 0 predicted) -Ref 'refs/heads/prune-entire' was deleted -ok 37 - --prune-empty is able to prune entire branch +ok 9 - git ls-files (relative #3) -expecting success of 7003.38 '--remap-to-ancestor with filename filters': - git checkout master && - git reset --hard A && - test_commit add-foo foo 1 && - git branch moved-foo && - test_commit add-bar bar a && - git branch invariant && - orig_invariant=$(git rev-parse invariant) && - git branch moved-bar && - test_commit change-foo foo 2 && - git filter-branch -f --remap-to-ancestor \ - moved-foo moved-bar A..master \ - -- -- foo && - test $(git rev-parse moved-foo) = $(git rev-parse moved-bar) && - test $(git rev-parse moved-foo) = $(git rev-parse master^) && - test $orig_invariant = $(git rev-parse invariant) +expecting success of 7010.10 'commit using absolute path names': + git commit -m "foo" && + echo aa >>a/b/c/d && + git commit -m "aa" "$(pwd)/a/b/c/d" -Switched to branch 'master' -HEAD is now at 0ddfaf1 A -[master 7d21991] add-foo +[master (root-commit) 2d7d991] foo Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 foo -[master 2ff770b] add-bar + 2 files changed, 0 insertions(+), 0 deletions(-) + create mode 100644 a/b/c/d + create mode 100644 a/e/f +[master 2049ba0] aa Author: A U Thor 1 file changed, 1 insertion(+) - create mode 100644 bar -[master b2d4813] change-foo - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) - Rewrite 7d219912875c3b539add35fdb1e3d70e5572ca7c (1/2) (0 seconds passed, remaining 0 predicted) Rewrite b2d4813d3ebe523582008cb287d933f8c14917be (2/2) (0 seconds passed, remaining 0 predicted) -WARNING: Ref 'refs/heads/moved-foo' is unchanged -Ref 'refs/heads/moved-bar' was rewritten -Ref 'refs/heads/master' was rewritten -ok 38 - --remap-to-ancestor with filename filters - -expecting success of 7003.39 'automatic remapping to ancestor with filename filters': - git checkout master && - git reset --hard A && - test_commit add-foo2 foo 1 && - git branch moved-foo2 && - test_commit add-bar2 bar a && - git branch invariant2 && - orig_invariant=$(git rev-parse invariant2) && - git branch moved-bar2 && - test_commit change-foo2 foo 2 && - git filter-branch -f \ - moved-foo2 moved-bar2 A..master \ - -- -- foo && - test $(git rev-parse moved-foo2) = $(git rev-parse moved-bar2) && - test $(git rev-parse moved-foo2) = $(git rev-parse master^) && - test $orig_invariant = $(git rev-parse invariant2) +ok 10 - commit using absolute path names -Already on 'master' -HEAD is now at 0ddfaf1 A -[master 59b5b5a] add-foo2 - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 foo -[master 20d4afa] add-bar2 - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 bar -[master 1fe7e14] change-foo2 - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) - Rewrite 59b5b5af49738cc3e3cc6618c173c3d768334f67 (1/2) (0 seconds passed, remaining 0 predicted) Rewrite 1fe7e1483a7337eb5fecbd426d19506d3422d75d (2/2) (1 seconds passed, remaining 0 predicted) -WARNING: Ref 'refs/heads/moved-foo2' is unchanged -Ref 'refs/heads/moved-bar2' was rewritten -Ref 'refs/heads/master' was rewritten -ok 39 - automatic remapping to ancestor with filename filters +expecting success of 7010.11 'log using absolute path names': + echo bb >>a/b/c/d && + git commit -m "bb" "$(pwd)/a/b/c/d" && -expecting success of 7003.40 'setup submodule': - rm -fr ?* .git && - git init && - test_commit file && - mkdir submod && - submodurl="$PWD/submod" && - ( cd submod && - git init && - test_commit file-in-submod ) && - git submodule add "$submodurl" && - git commit -m "added submodule" && - test_commit add-file && - ( cd submod && test_commit add-in-submodule ) && - git add submod && - git commit -m "changed submodule" && - git branch original HEAD + git log a/b/c/d >f1.txt && + git log "$(pwd)/a/b/c/d" >f2.txt && + test_cmp f1.txt f2.txt -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7003-filter-branch/.git/ -[master (root-commit) cc5d755] file - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file.t -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7003-filter-branch/submod/.git/ -[master (root-commit) bd0b946] file-in-submod - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file-in-submod.t -Adding existing repo at 'submod' to the index -[master f59d861] added submodule - Author: A U Thor - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 submod -[master ffde943] add-file - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 add-file.t -[master bf0f869] add-in-submodule +[master 8d92247] bb Author: A U Thor 1 file changed, 1 insertion(+) - create mode 100644 add-in-submodule.t -[master 946c5a4] changed submodule - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -ok 40 - setup submodule - -expecting success of 7003.41 'rewrite submodule with another content': - git filter-branch --tree-filter "test -d submod && { - rm -rf submod && - git rm -rf --quiet submod && - mkdir submod && - : > submod/file - } || :" HEAD && - test $orig_head != $(git show-ref --hash --head HEAD) - - Rewrite cc5d7558673710c1da61856fa53718f4fe4029c5 (1/4) (0 seconds passed, remaining 0 predicted) Rewrite f59d861fbf12a28aadb635d00c2da418463a69b3 (2/4) (1 seconds passed, remaining 1 predicted) Rewrite ffde943719e63528fe42f21dfc468b0dba0cea9b (2/4) (1 seconds passed, remaining 1 predicted) Rewrite 946c5a4bc86fdafeeba07f5d09a01763fb1b75a8 (2/4) (1 seconds passed, remaining 1 predicted) -Ref 'refs/heads/master' was rewritten -warning: unable to rmdir 'submod': Directory not empty -ok 41 - rewrite submodule with another content - -expecting success of 7003.42 'replace submodule revision': - invalid=$(test_oid numeric) && - git reset --hard original && - git filter-branch -f --tree-filter \ - "if git ls-files --error-unmatch -- submod > /dev/null 2>&1 - then git update-index --cacheinfo 160000 $invalid submod - fi" HEAD && - test $orig_head != $(git show-ref --hash --head HEAD) +ok 11 - log using absolute path names -HEAD is now at 946c5a4 changed submodule - Rewrite cc5d7558673710c1da61856fa53718f4fe4029c5 (1/4) (0 seconds passed, remaining 0 predicted) Rewrite f59d861fbf12a28aadb635d00c2da418463a69b3 (2/4) (0 seconds passed, remaining 0 predicted) Rewrite ffde943719e63528fe42f21dfc468b0dba0cea9b (3/4) (0 seconds passed, remaining 0 predicted) Rewrite 946c5a4bc86fdafeeba07f5d09a01763fb1b75a8 (4/4) (1 seconds passed, remaining 0 predicted) -Ref 'refs/heads/master' was rewritten -ok 42 - replace submodule revision +expecting success of 7010.12 'blame using absolute path names': + git blame a/b/c/d >f1.txt && + git blame "$(pwd)/a/b/c/d" >f2.txt && + test_cmp f1.txt f2.txt -expecting success of 7003.43 'filter commit message without trailing newline': - git reset --hard original && - commit=$(printf "no newline" | git commit-tree HEAD^{tree}) && - git update-ref refs/heads/no-newline $commit && - git filter-branch -f refs/heads/no-newline && - echo $commit >expect && - git rev-parse refs/heads/no-newline >actual && - test_cmp expect actual +ok 12 - blame using absolute path names -HEAD is now at 946c5a4 changed submodule - Rewrite bfe791b40d90b1a93d08f181dbd2a25be71a740d (1/1) (0 seconds passed, remaining 0 predicted) -WARNING: Ref 'refs/heads/no-newline' is unchanged -ok 43 - filter commit message without trailing newline +expecting success of 7010.13 'setup deeper work tree': + test_create_repo tester -expecting success of 7003.44 'tree-filter deals with object name vs pathname ambiguity': - test_when_finished "git reset --hard original" && - ambiguous=$(git rev-list -1 HEAD) && - git filter-branch --tree-filter "mv file.t $ambiguous" HEAD^.. && - git show HEAD:$ambiguous +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7010-setup/tester/.git/ +ok 13 - setup deeper work tree - Rewrite 946c5a4bc86fdafeeba07f5d09a01763fb1b75a8 (1/1) (0 seconds passed, remaining 0 predicted) -Ref 'refs/heads/master' was rewritten -file -HEAD is now at 946c5a4 changed submodule -ok 44 - tree-filter deals with object name vs pathname ambiguity +expecting success of 7010.14 'add a directory outside the work tree': ( + cd tester && + d1="$(cd .. ; pwd)" && + test_must_fail git add "$d1" +) +fatal: /build/git-2.30.2/t/trash directory.t7010-setup: '/build/git-2.30.2/t/trash directory.t7010-setup' is outside repository at '/build/git-2.30.2/t/trash directory.t7010-setup/tester' +ok 14 - add a directory outside the work tree -expecting success of 7003.45 'rewrite repository including refs that point at non-commit object': - test_when_finished "git reset --hard original" && - tree=$(git rev-parse HEAD^{tree}) && - test_when_finished "git replace -d $tree" && - echo A >new && - git add new && - new_tree=$(git write-tree) && - git replace $tree $new_tree && - git tag -a -m "tag to a tree" treetag $new_tree && - git reset --hard HEAD && - git filter-branch -f -- --all >filter-output 2>&1 && - ! fgrep fatal filter-output +expecting success of 7010.15 'add a file outside the work tree, nasty case 1': ( + cd tester && + f="$(pwd)x" && + echo "$f" && + touch "$f" && + test_must_fail git add "$f" +) +/build/git-2.30.2/t/trash directory.t7010-setup/testerx +fatal: /build/git-2.30.2/t/trash directory.t7010-setup/testerx: '/build/git-2.30.2/t/trash directory.t7010-setup/testerx' is outside repository at '/build/git-2.30.2/t/trash directory.t7010-setup/tester' +ok 15 - add a file outside the work tree, nasty case 1 -HEAD is now at 946c5a4 changed submodule -Deleted replace ref 'e6c20c3e965a140954e532255b27fdc72a61c34c' -HEAD is now at 946c5a4 changed submodule -ok 45 - rewrite repository including refs that point at non-commit object +expecting success of 7010.16 'add a file outside the work tree, nasty case 2': ( + cd tester && + f="$(pwd | sed "s/.$//")x" && + echo "$f" && + touch "$f" && + test_must_fail git add "$f" +) +/build/git-2.30.2/t/trash directory.t7010-setup/testex +fatal: /build/git-2.30.2/t/trash directory.t7010-setup/testex: '/build/git-2.30.2/t/trash directory.t7010-setup/testex' is outside repository at '/build/git-2.30.2/t/trash directory.t7010-setup/tester' +ok 16 - add a file outside the work tree, nasty case 2 -# passed all 45 test(s) -1..45 +# passed all 16 test(s) +1..16 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' *** t7006-pager.sh *** @@ -336831,7 +334005,6 @@ sh -c "test -t 1 && test -t 2" ) -died of signal 15 at /build/git-2.30.2/t/test-terminal.perl line 35. prerequisite TTY ok expecting success of 7006.3 'some commands use a pager': rm -f paginated.out && @@ -336855,8 +334028,8 @@ test_cmp expected actual ls: cannot access 'subdir/paginated.out': No such file or directory ---- expected 2023-04-29 16:40:59.809435819 +0000 -+++ actual 2023-04-29 16:41:00.073409855 +0000 +--- expected 2023-04-29 18:29:17.558175915 +0000 ++++ actual 2023-04-29 18:29:18.254110094 +0000 @@ -1 +1 @@ -subdir/paginated.out +paginated.out @@ -336901,7 +334074,6 @@ test_path_is_missing paginated.out 24b24cf8a829f5b8c30dfc018b0a459a2ccaf380 -died of signal 15 at /build/git-2.30.2/t/test-terminal.perl line 35. ok 7 - some commands do not use a pager expecting success of 7006.8 'no pager when stdout is a pipe': @@ -336952,7 +334124,6 @@ Date: Thu Apr 7 15:13:13 2005 -0700 initial -died of signal 15 at /build/git-2.30.2/t/test-terminal.perl line 35. ok 12 - no pager with --no-pager expecting success of 7006.13 'configuration can disable pager': @@ -337132,7 +334303,6 @@ test_path_is_missing paginated.out Branch 'master' set up to track local branch 'other'. -died of signal 15 at /build/git-2.30.2/t/test-terminal.perl line 35. Deleted branch other (was 24b24cf). ok 31 - git branch --set-upstream-to ignores pager.branch @@ -337731,7 +334901,7 @@ test_path_is_missing GIT_PAGER_used Path exists: --rw-r--r-- 1 pbuilder1 pbuilder1 24 Apr 29 16:41 GIT_PAGER_used +-rw-r--r-- 1 pbuilder2 pbuilder2 24 Apr 29 18:30 GIT_PAGER_used GIT_PAGER_used not ok 81 - no pager for 'git -p nonsense' # TODO known breakage @@ -337814,9 +334984,6 @@ test_terminal git shortlog && test_path_is_missing GIT_PAGER_used -A U Thor (1): - initial - ok 88 - no pager for 'git shortlog' expecting success of 7006.89 'git shortlog - core.pager is not used from subdirectory': @@ -337834,9 +335001,6 @@ ) && ! test_path_is_file core.pager_used -A U Thor (1): - initial - File core.pager_used doesn't exist. ok 89 - git shortlog - core.pager is not used from subdirectory @@ -338014,316 +335178,6 @@ 1..101 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t7010-setup.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7010-setup/.git/ -expecting success of 7010.1 'setup': - - mkdir -p a/b/c a/e && - D=$(pwd) && - >a/b/c/d && - >a/e/f - - -ok 1 - setup - -expecting success of 7010.2 'git add (absolute)': - - git add "$D/a/b/c/d" && - git ls-files >current && - echo a/b/c/d >expect && - test_cmp expect current - - -ok 2 - git add (absolute) - -expecting success of 7010.3 'git add (funny relative)': - - rm -f .git/index && - ( - cd a/b && - git add "../e/./f" - ) && - git ls-files >current && - echo a/e/f >expect && - test_cmp expect current - - -ok 3 - git add (funny relative) - -expecting success of 7010.4 'git rm (absolute)': - - rm -f .git/index && - git add a && - git rm -f --cached "$D/a/b/c/d" && - git ls-files >current && - echo a/e/f >expect && - test_cmp expect current - - -rm 'a/b/c/d' -ok 4 - git rm (absolute) - -expecting success of 7010.5 'git rm (funny relative)': - - rm -f .git/index && - git add a && - ( - cd a/b && - git rm -f --cached "../e/./f" - ) && - git ls-files >current && - echo a/b/c/d >expect && - test_cmp expect current - - -rm 'a/e/f' -ok 5 - git rm (funny relative) - -expecting success of 7010.6 'git ls-files (absolute)': - - rm -f .git/index && - git add a && - git ls-files "$D/a/e/../b" >current && - echo a/b/c/d >expect && - test_cmp expect current - - -ok 6 - git ls-files (absolute) - -expecting success of 7010.7 'git ls-files (relative #1)': - - rm -f .git/index && - git add a && - ( - cd a/b && - git ls-files "../b/c" - ) >current && - echo c/d >expect && - test_cmp expect current - - -ok 7 - git ls-files (relative #1) - -expecting success of 7010.8 'git ls-files (relative #2)': - - rm -f .git/index && - git add a && - ( - cd a/b && - git ls-files --full-name "../e/f" - ) >current && - echo a/e/f >expect && - test_cmp expect current - - -ok 8 - git ls-files (relative #2) - -expecting success of 7010.9 'git ls-files (relative #3)': - - rm -f .git/index && - git add a && - ( - cd a/b && - git ls-files "../e/f" - ) >current && - echo ../e/f >expect && - test_cmp expect current - - -ok 9 - git ls-files (relative #3) - -expecting success of 7010.10 'commit using absolute path names': - git commit -m "foo" && - echo aa >>a/b/c/d && - git commit -m "aa" "$(pwd)/a/b/c/d" - -[master (root-commit) 2d7d991] foo - Author: A U Thor - 2 files changed, 0 insertions(+), 0 deletions(-) - create mode 100644 a/b/c/d - create mode 100644 a/e/f -[master 2049ba0] aa - Author: A U Thor - 1 file changed, 1 insertion(+) -ok 10 - commit using absolute path names - -expecting success of 7010.11 'log using absolute path names': - echo bb >>a/b/c/d && - git commit -m "bb" "$(pwd)/a/b/c/d" && - - git log a/b/c/d >f1.txt && - git log "$(pwd)/a/b/c/d" >f2.txt && - test_cmp f1.txt f2.txt - -[master 8d92247] bb - Author: A U Thor - 1 file changed, 1 insertion(+) -ok 11 - log using absolute path names - -expecting success of 7010.12 'blame using absolute path names': - git blame a/b/c/d >f1.txt && - git blame "$(pwd)/a/b/c/d" >f2.txt && - test_cmp f1.txt f2.txt - -ok 12 - blame using absolute path names - -expecting success of 7010.13 'setup deeper work tree': - test_create_repo tester - -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7010-setup/tester/.git/ -ok 13 - setup deeper work tree - -expecting success of 7010.14 'add a directory outside the work tree': ( - cd tester && - d1="$(cd .. ; pwd)" && - test_must_fail git add "$d1" -) -fatal: /build/git-2.30.2/t/trash directory.t7010-setup: '/build/git-2.30.2/t/trash directory.t7010-setup' is outside repository at '/build/git-2.30.2/t/trash directory.t7010-setup/tester' -ok 14 - add a directory outside the work tree - -expecting success of 7010.15 'add a file outside the work tree, nasty case 1': ( - cd tester && - f="$(pwd)x" && - echo "$f" && - touch "$f" && - test_must_fail git add "$f" -) -/build/git-2.30.2/t/trash directory.t7010-setup/testerx -fatal: /build/git-2.30.2/t/trash directory.t7010-setup/testerx: '/build/git-2.30.2/t/trash directory.t7010-setup/testerx' is outside repository at '/build/git-2.30.2/t/trash directory.t7010-setup/tester' -ok 15 - add a file outside the work tree, nasty case 1 - -expecting success of 7010.16 'add a file outside the work tree, nasty case 2': ( - cd tester && - f="$(pwd | sed "s/.$//")x" && - echo "$f" && - touch "$f" && - test_must_fail git add "$f" -) -/build/git-2.30.2/t/trash directory.t7010-setup/testex -fatal: /build/git-2.30.2/t/trash directory.t7010-setup/testex: '/build/git-2.30.2/t/trash directory.t7010-setup/testex' is outside repository at '/build/git-2.30.2/t/trash directory.t7010-setup/tester' -ok 16 - add a file outside the work tree, nasty case 2 - -# passed all 16 test(s) -1..16 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t7030-verify-tag.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7030-verify-tag/.git/ -checking prerequisite: GPG - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-GPG" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-GPG" && - gpg_version=$(gpg --version 2>&1) - test $? != 127 || exit 1 - - # As said here: http://www.gnupg.org/documentation/faqs.html#q6.19 - # the gpg version 1.0.6 did not parse trust packets correctly, so for - # that version, creation of signed tags using the generated key fails. - case "$gpg_version" in - "gpg (GnuPG) 1.0.6"*) - say "Your version of gpg (1.0.6) is too buggy for testing" - exit 1 - ;; - *) - # Available key info: - # * Type DSA and Elgamal, size 2048 bits, no expiration date, - # name and email: C O Mitter - # * Type RSA, size 2048 bits, no expiration date, - # name and email: Eris Discordia - # No password given, to enable non-interactive operation. - # To generate new key: - # gpg --homedir /tmp/gpghome --gen-key - # To write armored exported key to keyring: - # gpg --homedir /tmp/gpghome --export-secret-keys \ - # --armor 0xDEADBEEF >> lib-gpg/keyring.gpg - # gpg --homedir /tmp/gpghome --export \ - # --armor 0xDEADBEEF >> lib-gpg/keyring.gpg - # To export ownertrust: - # gpg --homedir /tmp/gpghome --export-ownertrust \ - # > lib-gpg/ownertrust - mkdir "$GNUPGHOME" && - chmod 0700 "$GNUPGHOME" && - (gpgconf --kill gpg-agent || : ) && - gpg --homedir "${GNUPGHOME}" --import \ - "$TEST_DIRECTORY"/lib-gpg/keyring.gpg && - gpg --homedir "${GNUPGHOME}" --import-ownertrust \ - "$TEST_DIRECTORY"/lib-gpg/ownertrust && - gpg --homedir "${GNUPGHOME}" /dev/null \ - --sign -u committer@example.com - ;; - esac - -) -prerequisite GPG not satisfied -ok 1 # skip create signed tags (missing GPG) - -checking prerequisite: GPGSM - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-GPGSM" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-GPGSM" && - test_have_prereq GPG && - # Available key info: - # * see t/lib-gpg/gpgsm-gen-key.in - # To generate new certificate: - # * no passphrase - # gpgsm --homedir /tmp/gpghome/ \ - # -o /tmp/gpgsm.crt.user \ - # --generate-key \ - # --batch t/lib-gpg/gpgsm-gen-key.in - # To import certificate: - # gpgsm --homedir /tmp/gpghome/ \ - # --import /tmp/gpgsm.crt.user - # To export into a .p12 we can later import: - # gpgsm --homedir /tmp/gpghome/ \ - # -o t/lib-gpg/gpgsm_cert.p12 \ - # --export-secret-key-p12 "committer@example.com" - echo | gpgsm --homedir "${GNUPGHOME}" \ - --passphrase-fd 0 --pinentry-mode loopback \ - --import "$TEST_DIRECTORY"/lib-gpg/gpgsm_cert.p12 && - - gpgsm --homedir "${GNUPGHOME}" -K | - grep fingerprint: | - cut -d" " -f4 | - tr -d "\\n" >"${GNUPGHOME}/trustlist.txt" && - - echo " S relax" >>"${GNUPGHOME}/trustlist.txt" && - echo hello | gpgsm --homedir "${GNUPGHOME}" >/dev/null \ - -u committer@example.com -o /dev/null --sign - - -) -prerequisite GPGSM not satisfied -ok 2 # skip create signed tags x509 (missing GPGSM) - -ok 3 # skip verify and show signatures (missing GPG) - -ok 4 # skip verify and show signatures x509 (missing GPGSM) - -ok 5 # skip verify and show signatures x509 with low minTrustLevel (missing GPGSM) - -ok 6 # skip verify and show signatures x509 with matching minTrustLevel (missing GPGSM) - -ok 7 # skip verify and show signatures x509 with high minTrustLevel (missing GPGSM) - -ok 8 # skip detect fudged signature (missing GPG) - -ok 9 # skip verify signatures with --raw (missing GPG) - -ok 10 # skip verify signatures with --raw x509 (missing GPGSM) - -ok 11 # skip verify multiple tags (missing GPG) - -ok 12 # skip verify multiple tags x509 (missing GPGSM) - -ok 13 # skip verifying tag with --format (missing GPG) - -ok 14 # skip verifying a forged tag with --format should fail silently (missing GPG) - -# passed all 14 test(s) -1..14 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' *** t7011-skip-worktree-reading.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7011-skip-worktree-reading/.git/ expecting success of 7011.1 'setup': @@ -338480,6 +335334,123 @@ 1..17 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t7030-verify-tag.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7030-verify-tag/.git/ +checking prerequisite: GPG + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-GPG" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-GPG" && + gpg_version=$(gpg --version 2>&1) + test $? != 127 || exit 1 + + # As said here: http://www.gnupg.org/documentation/faqs.html#q6.19 + # the gpg version 1.0.6 did not parse trust packets correctly, so for + # that version, creation of signed tags using the generated key fails. + case "$gpg_version" in + "gpg (GnuPG) 1.0.6"*) + say "Your version of gpg (1.0.6) is too buggy for testing" + exit 1 + ;; + *) + # Available key info: + # * Type DSA and Elgamal, size 2048 bits, no expiration date, + # name and email: C O Mitter + # * Type RSA, size 2048 bits, no expiration date, + # name and email: Eris Discordia + # No password given, to enable non-interactive operation. + # To generate new key: + # gpg --homedir /tmp/gpghome --gen-key + # To write armored exported key to keyring: + # gpg --homedir /tmp/gpghome --export-secret-keys \ + # --armor 0xDEADBEEF >> lib-gpg/keyring.gpg + # gpg --homedir /tmp/gpghome --export \ + # --armor 0xDEADBEEF >> lib-gpg/keyring.gpg + # To export ownertrust: + # gpg --homedir /tmp/gpghome --export-ownertrust \ + # > lib-gpg/ownertrust + mkdir "$GNUPGHOME" && + chmod 0700 "$GNUPGHOME" && + (gpgconf --kill gpg-agent || : ) && + gpg --homedir "${GNUPGHOME}" --import \ + "$TEST_DIRECTORY"/lib-gpg/keyring.gpg && + gpg --homedir "${GNUPGHOME}" --import-ownertrust \ + "$TEST_DIRECTORY"/lib-gpg/ownertrust && + gpg --homedir "${GNUPGHOME}" /dev/null \ + --sign -u committer@example.com + ;; + esac + +) +prerequisite GPG not satisfied +ok 1 # skip create signed tags (missing GPG) + +checking prerequisite: GPGSM + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-GPGSM" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-GPGSM" && + test_have_prereq GPG && + # Available key info: + # * see t/lib-gpg/gpgsm-gen-key.in + # To generate new certificate: + # * no passphrase + # gpgsm --homedir /tmp/gpghome/ \ + # -o /tmp/gpgsm.crt.user \ + # --generate-key \ + # --batch t/lib-gpg/gpgsm-gen-key.in + # To import certificate: + # gpgsm --homedir /tmp/gpghome/ \ + # --import /tmp/gpgsm.crt.user + # To export into a .p12 we can later import: + # gpgsm --homedir /tmp/gpghome/ \ + # -o t/lib-gpg/gpgsm_cert.p12 \ + # --export-secret-key-p12 "committer@example.com" + echo | gpgsm --homedir "${GNUPGHOME}" \ + --passphrase-fd 0 --pinentry-mode loopback \ + --import "$TEST_DIRECTORY"/lib-gpg/gpgsm_cert.p12 && + + gpgsm --homedir "${GNUPGHOME}" -K | + grep fingerprint: | + cut -d" " -f4 | + tr -d "\\n" >"${GNUPGHOME}/trustlist.txt" && + + echo " S relax" >>"${GNUPGHOME}/trustlist.txt" && + echo hello | gpgsm --homedir "${GNUPGHOME}" >/dev/null \ + -u committer@example.com -o /dev/null --sign - + +) +prerequisite GPGSM not satisfied +ok 2 # skip create signed tags x509 (missing GPGSM) + +ok 3 # skip verify and show signatures (missing GPG) + +ok 4 # skip verify and show signatures x509 (missing GPGSM) + +ok 5 # skip verify and show signatures x509 with low minTrustLevel (missing GPGSM) + +ok 6 # skip verify and show signatures x509 with matching minTrustLevel (missing GPGSM) + +ok 7 # skip verify and show signatures x509 with high minTrustLevel (missing GPGSM) + +ok 8 # skip detect fudged signature (missing GPG) + +ok 9 # skip verify signatures with --raw (missing GPG) + +ok 10 # skip verify signatures with --raw x509 (missing GPGSM) + +ok 11 # skip verify multiple tags (missing GPG) + +ok 12 # skip verify multiple tags x509 (missing GPGSM) + +ok 13 # skip verifying tag with --format (missing GPG) + +ok 14 # skip verifying a forged tag with --format should fail silently (missing GPG) + +# passed all 14 test(s) +1..14 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t7012-skip-worktree-writing.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7012-skip-worktree-writing/.git/ expecting success of 7012.1 'setup': @@ -338753,7 +335724,7 @@ virtual a69622617a1924843f1030f94aea314d12248738 Removing removeme WARNING: Untracked file in way of tracked file! Renaming - modified -> modified.stash.hG3bPQ + modified -> modified.stash.Xo8wRa to make room. On branch master You are in a sparse checkout with 80% of tracked files present. @@ -338773,7 +335744,7 @@ (use "git add ..." to include in what will be committed) actual expect - modified.stash.hG3bPQ + modified.stash.Xo8wRa ok 13 - stash restore in sparse checkout @@ -338781,261 +335752,6 @@ 1..13 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t7062-wtstatus-ignorecase.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7062-wtstatus-ignorecase/.git/ -expecting success of 7062.1 'status with hash collisions': - # note: "V/", "V/XQANY/" and "WURZAUP/" produce the same hash code - # in name-hash.c::hash_name - mkdir V && - mkdir V/XQANY && - mkdir WURZAUP && - touch V/XQANY/test && - git config core.ignorecase true && - git add . && - # test is successful if git status completes (no endless loop) - git status - -On branch master - -No commits yet - -Changes to be committed: - (use "git rm --cached ..." to unstage) - new file: V/XQANY/test - -ok 1 - status with hash collisions - -# passed all 1 test(s) -1..1 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t7061-wtstatus-ignore.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7061-wtstatus-ignore/.git/ -expecting success of 7061.1 'status untracked directory with --ignored': - echo "ignored" >.gitignore && - mkdir untracked && - : >untracked/ignored && - : >untracked/uncommitted && - git status --porcelain --ignored >actual && - test_cmp expected actual - -ok 1 - status untracked directory with --ignored - -expecting success of 7061.2 'same with gitignore starting with BOM': - printf "\357\273\277ignored\n" >.gitignore && - mkdir -p untracked && - : >untracked/ignored && - : >untracked/uncommitted && - git status --porcelain --ignored >actual && - test_cmp expected actual - -ok 2 - same with gitignore starting with BOM - -expecting success of 7061.3 'status untracked files --ignored with pathspec (no match)': - git status --porcelain --ignored -- untracked/i >actual && - test_must_be_empty actual && - git status --porcelain --ignored -- untracked/u >actual && - test_must_be_empty actual - -ok 3 - status untracked files --ignored with pathspec (no match) - -expecting success of 7061.4 'status untracked files --ignored with pathspec (literal match)': - git status --porcelain --ignored -- untracked/ignored >actual && - echo "!! untracked/ignored" >expected && - test_cmp expected actual && - git status --porcelain --ignored -- untracked/uncommitted >actual && - echo "?? untracked/uncommitted" >expected && - test_cmp expected actual - -ok 4 - status untracked files --ignored with pathspec (literal match) - -expecting success of 7061.5 'status untracked files --ignored with pathspec (glob match)': - git status --porcelain --ignored -- untracked/i\* >actual && - echo "!! untracked/ignored" >expected && - test_cmp expected actual && - git status --porcelain --ignored -- untracked/u\* >actual && - echo "?? untracked/uncommitted" >expected && - test_cmp expected actual - -ok 5 - status untracked files --ignored with pathspec (glob match) - -expecting success of 7061.6 'status untracked directory with --ignored -u': - git status --porcelain --ignored -u >actual && - test_cmp expected actual - -ok 6 - status untracked directory with --ignored -u - -expecting success of 7061.7 'status of untracked directory with --ignored works with or without prefix': - git status --porcelain --ignored >tmp && - grep untracked/ tmp >actual && - rm tmp && - test_cmp expected actual && - - git status --porcelain --ignored untracked/ >actual && - test_cmp expected actual - -ok 7 - status of untracked directory with --ignored works with or without prefix - -expecting success of 7061.8 'status prefixed untracked sub-directory with --ignored -u': - git status --porcelain --ignored -u untracked/ >actual && - test_cmp expected actual - -ok 8 - status prefixed untracked sub-directory with --ignored -u - -expecting success of 7061.9 'status ignored directory with --ignore': - rm -rf untracked && - mkdir ignored && - : >ignored/uncommitted && - git status --porcelain --ignored >actual && - test_cmp expected actual - -ok 9 - status ignored directory with --ignore - -expecting success of 7061.10 'status ignored directory with --ignore -u': - git status --porcelain --ignored -u >actual && - test_cmp expected actual - -ok 10 - status ignored directory with --ignore -u - -expecting success of 7061.11 'status empty untracked directory with --ignore': - rm -rf ignored && - mkdir untracked-ignored && - mkdir untracked-ignored/test && - git status --porcelain --ignored >actual && - test_cmp expected actual - -ok 11 - status empty untracked directory with --ignore - -expecting success of 7061.12 'status empty untracked directory with --ignore -u': - git status --porcelain --ignored -u >actual && - test_cmp expected actual - -ok 12 - status empty untracked directory with --ignore -u - -expecting success of 7061.13 'status untracked directory with ignored files with --ignore': - : >untracked-ignored/ignored && - : >untracked-ignored/test/ignored && - git status --porcelain --ignored >actual && - test_cmp expected actual - -ok 13 - status untracked directory with ignored files with --ignore - -expecting success of 7061.14 'status untracked directory with ignored files with --ignore -u': - git status --porcelain --ignored -u >actual && - test_cmp expected actual - -ok 14 - status untracked directory with ignored files with --ignore -u - -expecting success of 7061.15 'status ignored tracked directory with --ignore': - rm -rf untracked-ignored && - mkdir tracked && - : >tracked/committed && - git add tracked/committed && - git commit -m. && - echo "tracked" >.gitignore && - git status --porcelain --ignored >actual && - test_cmp expected actual - -[master (root-commit) e2a6909] . - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - create mode 100644 tracked/committed -ok 15 - status ignored tracked directory with --ignore - -expecting success of 7061.16 'status ignored tracked directory with --ignore -u': - git status --porcelain --ignored -u >actual && - test_cmp expected actual - -ok 16 - status ignored tracked directory with --ignore -u - -expecting success of 7061.17 'status ignored tracked directory and ignored file with --ignore': - echo "committed" >>.gitignore && - git status --porcelain --ignored >actual && - test_cmp expected actual - -ok 17 - status ignored tracked directory and ignored file with --ignore - -expecting success of 7061.18 'status ignored tracked directory and ignored file with --ignore -u': - git status --porcelain --ignored -u >actual && - test_cmp expected actual - -ok 18 - status ignored tracked directory and ignored file with --ignore -u - -expecting success of 7061.19 'status ignored tracked directory and uncommitted file with --ignore': - echo "tracked" >.gitignore && - : >tracked/uncommitted && - git status --porcelain --ignored >actual && - test_cmp expected actual - -ok 19 - status ignored tracked directory and uncommitted file with --ignore - -expecting success of 7061.20 'status ignored tracked directory and uncommitted file with --ignore -u': - git status --porcelain --ignored -u >actual && - test_cmp expected actual - -ok 20 - status ignored tracked directory and uncommitted file with --ignore -u - -expecting success of 7061.21 'status ignored tracked directory with uncommitted file in untracked subdir with --ignore': - rm -rf tracked/uncommitted && - mkdir tracked/ignored && - : >tracked/ignored/uncommitted && - git status --porcelain --ignored >actual && - test_cmp expected actual - -ok 21 - status ignored tracked directory with uncommitted file in untracked subdir with --ignore - -expecting success of 7061.22 'status ignored tracked directory with uncommitted file in untracked subdir with --ignore -u': - git status --porcelain --ignored -u >actual && - test_cmp expected actual - -ok 22 - status ignored tracked directory with uncommitted file in untracked subdir with --ignore -u - -expecting success of 7061.23 'status ignored tracked directory with uncommitted file in tracked subdir with --ignore': - : >tracked/ignored/committed && - git add -f tracked/ignored/committed && - git commit -m. && - git status --porcelain --ignored >actual && - test_cmp expected actual - -[master 8a62ec6] . - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - create mode 100644 tracked/ignored/committed -ok 23 - status ignored tracked directory with uncommitted file in tracked subdir with --ignore - -expecting success of 7061.24 'status ignored tracked directory with uncommitted file in tracked subdir with --ignore -u': - git status --porcelain --ignored -u >actual && - test_cmp expected actual - -ok 24 - status ignored tracked directory with uncommitted file in tracked subdir with --ignore -u - -expecting success of 7061.25 'status ignores submodule in excluded directory': - git init tracked/submodule && - test_commit -C tracked/submodule initial && - git status --porcelain --ignored -u tracked/submodule >actual && - test_cmp expected actual - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7061-wtstatus-ignore/tracked/submodule/.git/ -[master (root-commit) 24b24cf] initial - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 initial.t -ok 25 - status ignores submodule in excluded directory - -# passed all 25 test(s) -1..25 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' *** t7060-wtstatus.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7060-wtstatus/.git/ expecting success of 7060.1 'setup': @@ -339445,134 +336161,307 @@ warning: refname 'master' is ambiguous. Note: switching to 'master^0'. -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. + +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: + + git switch -c + +Or undo this operation with: + + git switch - + +Turn off this advice by setting config variable advice.detachedHead to false + +HEAD is now at b29dd8b master +ok 15 - status --branch with detached HEAD + +expecting success of 7060.16 'status --porcelain=v1 --branch with detached HEAD': + git reset --hard && + git checkout master^0 && + git status --branch --porcelain=v1 >actual && + cat >expected <<-EOF && + ## HEAD (no branch) + ?? .gitconfig + ?? actual + ?? expect + ?? expected + ?? mdconflict/ + EOF + test_i18ncmp expected actual + +HEAD is now at b29dd8b master +warning: refname 'master' is ambiguous. +warning: refname 'master' is ambiguous. +HEAD is now at b29dd8b master +ok 16 - status --porcelain=v1 --branch with detached HEAD + +expecting success of 7060.17 'status --porcelain=bogus': + test_must_fail git status --porcelain=bogus + +fatal: unsupported porcelain version 'bogus' +ok 17 - status --porcelain=bogus + +# passed all 17 test(s) +1..17 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t7062-wtstatus-ignorecase.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7062-wtstatus-ignorecase/.git/ +expecting success of 7062.1 'status with hash collisions': + # note: "V/", "V/XQANY/" and "WURZAUP/" produce the same hash code + # in name-hash.c::hash_name + mkdir V && + mkdir V/XQANY && + mkdir WURZAUP && + touch V/XQANY/test && + git config core.ignorecase true && + git add . && + # test is successful if git status completes (no endless loop) + git status + +On branch master + +No commits yet + +Changes to be committed: + (use "git rm --cached ..." to unstage) + new file: V/XQANY/test + +ok 1 - status with hash collisions + +# passed all 1 test(s) +1..1 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t7061-wtstatus-ignore.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7061-wtstatus-ignore/.git/ +expecting success of 7061.1 'status untracked directory with --ignored': + echo "ignored" >.gitignore && + mkdir untracked && + : >untracked/ignored && + : >untracked/uncommitted && + git status --porcelain --ignored >actual && + test_cmp expected actual + +ok 1 - status untracked directory with --ignored + +expecting success of 7061.2 'same with gitignore starting with BOM': + printf "\357\273\277ignored\n" >.gitignore && + mkdir -p untracked && + : >untracked/ignored && + : >untracked/uncommitted && + git status --porcelain --ignored >actual && + test_cmp expected actual + +ok 2 - same with gitignore starting with BOM + +expecting success of 7061.3 'status untracked files --ignored with pathspec (no match)': + git status --porcelain --ignored -- untracked/i >actual && + test_must_be_empty actual && + git status --porcelain --ignored -- untracked/u >actual && + test_must_be_empty actual + +ok 3 - status untracked files --ignored with pathspec (no match) + +expecting success of 7061.4 'status untracked files --ignored with pathspec (literal match)': + git status --porcelain --ignored -- untracked/ignored >actual && + echo "!! untracked/ignored" >expected && + test_cmp expected actual && + git status --porcelain --ignored -- untracked/uncommitted >actual && + echo "?? untracked/uncommitted" >expected && + test_cmp expected actual + +ok 4 - status untracked files --ignored with pathspec (literal match) + +expecting success of 7061.5 'status untracked files --ignored with pathspec (glob match)': + git status --porcelain --ignored -- untracked/i\* >actual && + echo "!! untracked/ignored" >expected && + test_cmp expected actual && + git status --porcelain --ignored -- untracked/u\* >actual && + echo "?? untracked/uncommitted" >expected && + test_cmp expected actual + +ok 5 - status untracked files --ignored with pathspec (glob match) + +expecting success of 7061.6 'status untracked directory with --ignored -u': + git status --porcelain --ignored -u >actual && + test_cmp expected actual + +ok 6 - status untracked directory with --ignored -u + +expecting success of 7061.7 'status of untracked directory with --ignored works with or without prefix': + git status --porcelain --ignored >tmp && + grep untracked/ tmp >actual && + rm tmp && + test_cmp expected actual && + + git status --porcelain --ignored untracked/ >actual && + test_cmp expected actual + +ok 7 - status of untracked directory with --ignored works with or without prefix + +expecting success of 7061.8 'status prefixed untracked sub-directory with --ignored -u': + git status --porcelain --ignored -u untracked/ >actual && + test_cmp expected actual + +ok 8 - status prefixed untracked sub-directory with --ignored -u + +expecting success of 7061.9 'status ignored directory with --ignore': + rm -rf untracked && + mkdir ignored && + : >ignored/uncommitted && + git status --porcelain --ignored >actual && + test_cmp expected actual + +ok 9 - status ignored directory with --ignore -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: +expecting success of 7061.10 'status ignored directory with --ignore -u': + git status --porcelain --ignored -u >actual && + test_cmp expected actual - git switch -c +ok 10 - status ignored directory with --ignore -u -Or undo this operation with: +expecting success of 7061.11 'status empty untracked directory with --ignore': + rm -rf ignored && + mkdir untracked-ignored && + mkdir untracked-ignored/test && + git status --porcelain --ignored >actual && + test_cmp expected actual - git switch - +ok 11 - status empty untracked directory with --ignore -Turn off this advice by setting config variable advice.detachedHead to false +expecting success of 7061.12 'status empty untracked directory with --ignore -u': + git status --porcelain --ignored -u >actual && + test_cmp expected actual -HEAD is now at b29dd8b master -ok 15 - status --branch with detached HEAD +ok 12 - status empty untracked directory with --ignore -u -expecting success of 7060.16 'status --porcelain=v1 --branch with detached HEAD': - git reset --hard && - git checkout master^0 && - git status --branch --porcelain=v1 >actual && - cat >expected <<-EOF && - ## HEAD (no branch) - ?? .gitconfig - ?? actual - ?? expect - ?? expected - ?? mdconflict/ - EOF - test_i18ncmp expected actual +expecting success of 7061.13 'status untracked directory with ignored files with --ignore': + : >untracked-ignored/ignored && + : >untracked-ignored/test/ignored && + git status --porcelain --ignored >actual && + test_cmp expected actual -HEAD is now at b29dd8b master -warning: refname 'master' is ambiguous. -warning: refname 'master' is ambiguous. -HEAD is now at b29dd8b master -ok 16 - status --porcelain=v1 --branch with detached HEAD +ok 13 - status untracked directory with ignored files with --ignore -expecting success of 7060.17 'status --porcelain=bogus': - test_must_fail git status --porcelain=bogus +expecting success of 7061.14 'status untracked directory with ignored files with --ignore -u': + git status --porcelain --ignored -u >actual && + test_cmp expected actual -fatal: unsupported porcelain version 'bogus' -ok 17 - status --porcelain=bogus +ok 14 - status untracked directory with ignored files with --ignore -u -# passed all 17 test(s) -1..17 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t7101-reset-empty-subdirs.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7101-reset-empty-subdirs/.git/ -expecting success of 7101.1 'creating initial files': - mkdir path0 && - cp "$TEST_DIRECTORY"/../COPYING path0/COPYING && - git add path0/COPYING && - git commit -m add -a +expecting success of 7061.15 'status ignored tracked directory with --ignore': + rm -rf untracked-ignored && + mkdir tracked && + : >tracked/committed && + git add tracked/committed && + git commit -m. && + echo "tracked" >.gitignore && + git status --porcelain --ignored >actual && + test_cmp expected actual -[master (root-commit) e6d1717] add +[master (root-commit) e2a6909] . Author: A U Thor - 1 file changed, 360 insertions(+) - create mode 100644 path0/COPYING -ok 1 - creating initial files + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 tracked/committed +ok 15 - status ignored tracked directory with --ignore -expecting success of 7101.2 'creating second files': - mkdir path1 && - mkdir path1/path2 && - cp "$TEST_DIRECTORY"/../COPYING path1/path2/COPYING && - cp "$TEST_DIRECTORY"/../COPYING path1/COPYING && - cp "$TEST_DIRECTORY"/../COPYING COPYING && - cp "$TEST_DIRECTORY"/../COPYING path0/COPYING-TOO && - git add path1/path2/COPYING && - git add path1/COPYING && - git add COPYING && - git add path0/COPYING-TOO && - git commit -m change -a +expecting success of 7061.16 'status ignored tracked directory with --ignore -u': + git status --porcelain --ignored -u >actual && + test_cmp expected actual -[master 09e3e66] change - Author: A U Thor - 4 files changed, 1440 insertions(+) - create mode 100644 COPYING - create mode 100644 path0/COPYING-TOO - create mode 100644 path1/COPYING - create mode 100644 path1/path2/COPYING -ok 2 - creating second files +ok 16 - status ignored tracked directory with --ignore -u -expecting success of 7101.3 'resetting tree HEAD^': - git reset --hard HEAD^ +expecting success of 7061.17 'status ignored tracked directory and ignored file with --ignore': + echo "committed" >>.gitignore && + git status --porcelain --ignored >actual && + test_cmp expected actual -HEAD is now at e6d1717 add -ok 3 - resetting tree HEAD^ +ok 17 - status ignored tracked directory and ignored file with --ignore -expecting success of 7101.4 'checking initial files exist after rewind': - test -d path0 && - test -f path0/COPYING +expecting success of 7061.18 'status ignored tracked directory and ignored file with --ignore -u': + git status --porcelain --ignored -u >actual && + test_cmp expected actual -ok 4 - checking initial files exist after rewind +ok 18 - status ignored tracked directory and ignored file with --ignore -u -expecting success of 7101.5 'checking lack of path1/path2/COPYING': - ! test -f path1/path2/COPYING +expecting success of 7061.19 'status ignored tracked directory and uncommitted file with --ignore': + echo "tracked" >.gitignore && + : >tracked/uncommitted && + git status --porcelain --ignored >actual && + test_cmp expected actual -ok 5 - checking lack of path1/path2/COPYING +ok 19 - status ignored tracked directory and uncommitted file with --ignore -expecting success of 7101.6 'checking lack of path1/COPYING': - ! test -f path1/COPYING +expecting success of 7061.20 'status ignored tracked directory and uncommitted file with --ignore -u': + git status --porcelain --ignored -u >actual && + test_cmp expected actual -ok 6 - checking lack of path1/COPYING +ok 20 - status ignored tracked directory and uncommitted file with --ignore -u -expecting success of 7101.7 'checking lack of COPYING': - ! test -f COPYING +expecting success of 7061.21 'status ignored tracked directory with uncommitted file in untracked subdir with --ignore': + rm -rf tracked/uncommitted && + mkdir tracked/ignored && + : >tracked/ignored/uncommitted && + git status --porcelain --ignored >actual && + test_cmp expected actual -ok 7 - checking lack of COPYING +ok 21 - status ignored tracked directory with uncommitted file in untracked subdir with --ignore -expecting success of 7101.8 'checking checking lack of path1/COPYING-TOO': - ! test -f path0/COPYING-TOO +expecting success of 7061.22 'status ignored tracked directory with uncommitted file in untracked subdir with --ignore -u': + git status --porcelain --ignored -u >actual && + test_cmp expected actual -ok 8 - checking checking lack of path1/COPYING-TOO +ok 22 - status ignored tracked directory with uncommitted file in untracked subdir with --ignore -u -expecting success of 7101.9 'checking lack of path1/path2': - ! test -d path1/path2 +expecting success of 7061.23 'status ignored tracked directory with uncommitted file in tracked subdir with --ignore': + : >tracked/ignored/committed && + git add -f tracked/ignored/committed && + git commit -m. && + git status --porcelain --ignored >actual && + test_cmp expected actual -ok 9 - checking lack of path1/path2 +[master 8a62ec6] . + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 tracked/ignored/committed +ok 23 - status ignored tracked directory with uncommitted file in tracked subdir with --ignore -expecting success of 7101.10 'checking lack of path1': - ! test -d path1 +expecting success of 7061.24 'status ignored tracked directory with uncommitted file in tracked subdir with --ignore -u': + git status --porcelain --ignored -u >actual && + test_cmp expected actual -ok 10 - checking lack of path1 +ok 24 - status ignored tracked directory with uncommitted file in tracked subdir with --ignore -u -# passed all 10 test(s) -1..10 +expecting success of 7061.25 'status ignores submodule in excluded directory': + git init tracked/submodule && + test_commit -C tracked/submodule initial && + git status --porcelain --ignored -u tracked/submodule >actual && + test_cmp expected actual + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7061-wtstatus-ignore/tracked/submodule/.git/ +[master (root-commit) 24b24cf] initial + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 initial.t +ok 25 - status ignores submodule in excluded directory + +# passed all 25 test(s) +1..25 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' *** t7064-wtstatus-pv2.sh *** @@ -340353,1076 +337242,898 @@ 1..27 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t7103-reset-bare.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7103-reset-bare/.git/ -expecting success of 7103.1 'setup non-bare': - echo one >file && - git add file && - git commit -m one && - echo two >file && - git commit -a -m two +*** t7101-reset-empty-subdirs.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7101-reset-empty-subdirs/.git/ +expecting success of 7101.1 'creating initial files': + mkdir path0 && + cp "$TEST_DIRECTORY"/../COPYING path0/COPYING && + git add path0/COPYING && + git commit -m add -a -[master (root-commit) 1993c08] one - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -[master 2f98c16] two +[master (root-commit) e6d1717] add Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -ok 1 - setup non-bare - -expecting success of 7103.2 '"hard" reset requires a worktree': - (cd .git && - test_must_fail git reset --hard) - -fatal: this operation must be run in a work tree -ok 2 - "hard" reset requires a worktree - -expecting success of 7103.3 '"merge" reset requires a worktree': - (cd .git && - test_must_fail git reset --merge) - -fatal: this operation must be run in a work tree -ok 3 - "merge" reset requires a worktree - -expecting success of 7103.4 '"keep" reset requires a worktree': - (cd .git && - test_must_fail git reset --keep) - -fatal: this operation must be run in a work tree -ok 4 - "keep" reset requires a worktree + 1 file changed, 360 insertions(+) + create mode 100644 path0/COPYING +ok 1 - creating initial files -expecting success of 7103.5 '"mixed" reset is ok': - (cd .git && git reset) +expecting success of 7101.2 'creating second files': + mkdir path1 && + mkdir path1/path2 && + cp "$TEST_DIRECTORY"/../COPYING path1/path2/COPYING && + cp "$TEST_DIRECTORY"/../COPYING path1/COPYING && + cp "$TEST_DIRECTORY"/../COPYING COPYING && + cp "$TEST_DIRECTORY"/../COPYING path0/COPYING-TOO && + git add path1/path2/COPYING && + git add path1/COPYING && + git add COPYING && + git add path0/COPYING-TOO && + git commit -m change -a -ok 5 - "mixed" reset is ok +[master 09e3e66] change + Author: A U Thor + 4 files changed, 1440 insertions(+) + create mode 100644 COPYING + create mode 100644 path0/COPYING-TOO + create mode 100644 path1/COPYING + create mode 100644 path1/path2/COPYING +ok 2 - creating second files -expecting success of 7103.6 '"soft" reset is ok': - (cd .git && git reset --soft) +expecting success of 7101.3 'resetting tree HEAD^': + git reset --hard HEAD^ -ok 6 - "soft" reset is ok +HEAD is now at e6d1717 add +ok 3 - resetting tree HEAD^ -expecting success of 7103.7 'hard reset works with GIT_WORK_TREE': - mkdir worktree && - GIT_WORK_TREE=$PWD/worktree GIT_DIR=$PWD/.git git reset --hard && - test_cmp file worktree/file +expecting success of 7101.4 'checking initial files exist after rewind': + test -d path0 && + test -f path0/COPYING -HEAD is now at 2f98c16 two -ok 7 - hard reset works with GIT_WORK_TREE +ok 4 - checking initial files exist after rewind -expecting success of 7103.8 'setup bare': - git clone --bare . bare.git && - cd bare.git +expecting success of 7101.5 'checking lack of path1/path2/COPYING': + ! test -f path1/path2/COPYING -Cloning into bare repository 'bare.git'... -done. -ok 8 - setup bare +ok 5 - checking lack of path1/path2/COPYING -expecting success of 7103.9 '"hard" reset is not allowed in bare': - test_must_fail git reset --hard HEAD^ +expecting success of 7101.6 'checking lack of path1/COPYING': + ! test -f path1/COPYING -fatal: this operation must be run in a work tree -ok 9 - "hard" reset is not allowed in bare +ok 6 - checking lack of path1/COPYING -expecting success of 7103.10 '"merge" reset is not allowed in bare': - test_must_fail git reset --merge HEAD^ +expecting success of 7101.7 'checking lack of COPYING': + ! test -f COPYING -fatal: this operation must be run in a work tree -ok 10 - "merge" reset is not allowed in bare +ok 7 - checking lack of COPYING -expecting success of 7103.11 '"keep" reset is not allowed in bare': - test_must_fail git reset --keep HEAD^ +expecting success of 7101.8 'checking checking lack of path1/COPYING-TOO': + ! test -f path0/COPYING-TOO -fatal: this operation must be run in a work tree -ok 11 - "keep" reset is not allowed in bare +ok 8 - checking checking lack of path1/COPYING-TOO -expecting success of 7103.12 '"mixed" reset is not allowed in bare': - test_must_fail git reset --mixed HEAD^ +expecting success of 7101.9 'checking lack of path1/path2': + ! test -d path1/path2 -fatal: mixed reset is not allowed in a bare repository -ok 12 - "mixed" reset is not allowed in bare +ok 9 - checking lack of path1/path2 -expecting success of 7103.13 '"soft" reset is allowed in bare': - git reset --soft HEAD^ && - test "$(git show --pretty=format:%s | head -n 1)" = "one" +expecting success of 7101.10 'checking lack of path1': + ! test -d path1 -ok 13 - "soft" reset is allowed in bare +ok 10 - checking lack of path1 -# passed all 13 test(s) -1..13 +# passed all 10 test(s) +1..10 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t7104-reset-hard.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7104-reset-hard/.git/ -expecting success of 7104.1 'setup': - - mkdir before later && - >before/1 && - >before/2 && - >hello && - >later/3 && - git add before hello later && - git commit -m world && - - H=$(git rev-parse :hello) && - git rm --cached hello && - echo "100644 $H 2 hello" | git update-index --index-info && - - rm -f hello && - mkdir -p hello && - >hello/world && - test "$(git ls-files -o)" = hello/world - +*** t7003-filter-branch.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7003-filter-branch/.git/ +expecting success of 7003.1 'setup': + test_commit A && + GIT_COMMITTER_DATE="@0 +0000" GIT_AUTHOR_DATE="@0 +0000" && + test_commit --notick B && + git checkout -b branch B && + test_commit D && + mkdir dir && + test_commit dir/D && + test_commit E && + git checkout master && + test_commit C && + git checkout branch && + git merge C && + git tag F && + test_commit G && + test_commit H -[master (root-commit) 53313cc] world +[master (root-commit) 0ddfaf1] A Author: A U Thor - 4 files changed, 0 insertions(+), 0 deletions(-) - create mode 100644 before/1 - create mode 100644 before/2 - create mode 100644 hello - create mode 100644 later/3 -rm 'hello' -ok 1 - setup - -expecting success of 7104.2 'reset --hard should restore unmerged ones': - - git reset --hard && - git ls-files --error-unmatch before/1 before/2 hello later/3 && - test -f hello - - -HEAD is now at 53313cc world -before/1 -before/2 -hello -later/3 -ok 2 - reset --hard should restore unmerged ones - -expecting success of 7104.3 'reset --hard did not corrupt index or cached-tree': - - T=$(git write-tree) && - rm -f .git/index && - git add before hello later && - U=$(git write-tree) && - test "$T" = "$U" - - -ok 3 - reset --hard did not corrupt index or cached-tree - -# passed all 3 test(s) -1..3 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t7102-reset.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7102-reset/.git/ -expecting success of 7102.1 'creating initial files and commits': - test_tick && - echo "1st file" >first && - git add first && - git commit -m "create 1st file" && - - echo "2nd file" >second && - git add second && - git commit -m "create 2nd file" && - - echo "2nd line 1st file" >>first && - git commit -a -m "modify 1st file" && - head5p2=$(git rev-parse --verify HEAD) && - head5p2f=$(git rev-parse --short HEAD:first) && - - git rm first && - git mv second secondfile && - git commit -a -m "remove 1st and rename 2nd" && - head5p1=$(git rev-parse --verify HEAD) && - head5p1s=$(git rev-parse --short HEAD:secondfile) && - - echo "1st line 2nd file" >secondfile && - echo "2nd line 2nd file" >>secondfile && - # "git commit -m" would break MinGW, as Windows refuse to pass - # $test_encoding encoded parameter to git. - commit_msg $test_encoding | git -c "i18n.commitEncoding=$test_encoding" commit -a -F - && - head5=$(git rev-parse --verify HEAD) && - head5s=$(git rev-parse --short HEAD:secondfile) && - head5sl=$(git rev-parse HEAD:secondfile) - -[master (root-commit) 811bbdf] create 1st file + 1 file changed, 1 insertion(+) + create mode 100644 A.t +[master e86e545] B Author: A U Thor 1 file changed, 1 insertion(+) - create mode 100644 first -[master ba22ccd] create 2nd file + create mode 100644 B.t +Switched to a new branch 'branch' +[branch bd662c1] D Author: A U Thor 1 file changed, 1 insertion(+) - create mode 100644 second -[master ddaefe0] modify 1st file + create mode 100644 D.t +[branch 3abb9b5] dir/D Author: A U Thor 1 file changed, 1 insertion(+) -rm 'first' -[master d1a4bc3] remove 1st and rename 2nd + create mode 100644 dir/D.t +[branch 48ac83b] E Author: A U Thor - 2 files changed, 2 deletions(-) - delete mode 100644 first - rename second => secondfile (100%) -[master eed6733] modify 2nd file (geändert) + 1 file changed, 1 insertion(+) + create mode 100644 E.t +Switched to branch 'master' +[master 0e63577] C Author: A U Thor - 1 file changed, 2 insertions(+), 1 deletion(-) -ok 1 - creating initial files and commits - -expecting success of 7102.2 'reset --hard message': - hex=$(git log -1 --format="%h") && - git reset --hard >.actual && - echo HEAD is now at $hex $(commit_msg) >.expected && - test_i18ncmp .expected .actual - -checking prerequisite: C_LOCALE_OUTPUT - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false - -) -prerequisite C_LOCALE_OUTPUT ok -ok 2 - reset --hard message - -expecting success of 7102.3 'reset --hard message (ISO8859-1 logoutputencoding)': - hex=$(git log -1 --format="%h") && - git -c "i18n.logOutputEncoding=$test_encoding" reset --hard >.actual && - echo HEAD is now at $hex $(commit_msg $test_encoding) >.expected && - test_i18ncmp .expected .actual - -ok 3 - reset --hard message (ISO8859-1 logoutputencoding) + 1 file changed, 1 insertion(+) + create mode 100644 C.t +Switched to branch 'branch' +Merging: +48ac83b E +virtual C +found 1 common ancestor: +e86e545 B +Merge made by the 'recursive' strategy. + C.t | 1 + + 1 file changed, 1 insertion(+) + create mode 100644 C.t +[branch 3c39262] G + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 G.t +[branch 110eac9] H + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 H.t +ok 1 - setup -expecting success of 7102.4 'giving a non existing revision should fail': - >.diff_expect && - >.cached_expect && - cat >.cat_expect <<-\EOF && - secondfile: - 1st line 2nd file - 2nd line 2nd file - EOF +expecting success of 7003.2 'rewrite identically': + git filter-branch branch - test_must_fail git reset aaaaaa && - test_must_fail git reset --mixed aaaaaa && - test_must_fail git reset --soft aaaaaa && - test_must_fail git reset --hard aaaaaa && - check_changes $head5 + Rewrite 0ddfaf193ff13d6ab39b7cbd9eed645e3ee2f050 (1/9) (0 seconds passed, remaining 0 predicted) Rewrite e86e54590a6764f0c4219b3fe8b5e971cd5a0ed8 (2/9) (0 seconds passed, remaining 0 predicted) Rewrite bd662c15882f4e7910b78fc26a3d8fe1ffa802e5 (3/9) (0 seconds passed, remaining 0 predicted) Rewrite 3abb9b554927997a06e6fafc3c62469a75ef32a3 (4/9) (1 seconds passed, remaining 1 predicted) Rewrite 48ac83b9774bbddb9c1cd6fe140d5380297aa69c (4/9) (1 seconds passed, remaining 1 predicted) Rewrite 0e63577b8a9dce52b69167d9c008f6a0e30de818 (4/9) (1 seconds passed, remaining 1 predicted) Rewrite 013e089e8403f3749848f7aafc6f271fb7179dbc (4/9) (1 seconds passed, remaining 1 predicted) Rewrite 3c39262d23e70569701d337b4d27a1e97512c2d9 (4/9) (1 seconds passed, remaining 1 predicted) Rewrite 110eac945dc1713b27bdf49e74e5805db66971f0 (9/9) (2 seconds passed, remaining 0 predicted) +WARNING: Ref 'refs/heads/branch' is unchanged +ok 2 - rewrite identically -fatal: ambiguous argument 'aaaaaa': unknown revision or path not in the working tree. -Use '--' to separate paths from revisions, like this: -'git [...] -- [...]' -fatal: ambiguous argument 'aaaaaa': unknown revision or path not in the working tree. -Use '--' to separate paths from revisions, like this: -'git [...] -- [...]' -fatal: ambiguous argument 'aaaaaa': unknown revision or path not in the working tree. -Use '--' to separate paths from revisions, like this: -'git [...] -- [...]' -fatal: ambiguous argument 'aaaaaa': unknown revision or path not in the working tree. -Use '--' to separate paths from revisions, like this: -'git [...] -- [...]' -ok 4 - giving a non existing revision should fail +expecting success of 7003.3 'result is really identical': + test $H = $(git rev-parse HEAD) -expecting success of 7102.5 'reset --soft with unmerged index should fail': - touch .git/MERGE_HEAD && - echo "100644 $head5sl 1 un" | - git update-index --index-info && - test_must_fail git reset --soft HEAD && - rm .git/MERGE_HEAD && - git rm --cached -- un +ok 3 - result is really identical -fatal: Cannot do a soft reset in the middle of a merge. -rm 'un' -ok 5 - reset --soft with unmerged index should fail +expecting success of 7003.4 'rewrite bare repository identically': + (git config core.bare true && cd .git && + git filter-branch branch > filter-output 2>&1 && + ! fgrep fatal filter-output) -expecting success of 7102.6 'giving paths with options different than --mixed should fail': - test_must_fail git reset --soft -- first && - test_must_fail git reset --hard -- first && - test_must_fail git reset --soft HEAD^ -- first && - test_must_fail git reset --hard HEAD^ -- first && - check_changes $head5 +ok 4 - rewrite bare repository identically -fatal: Cannot do soft reset with paths. -fatal: Cannot do hard reset with paths. -fatal: Cannot do soft reset with paths. -fatal: Cannot do hard reset with paths. -ok 6 - giving paths with options different than --mixed should fail +expecting success of 7003.5 'result is really identical': + test $H = $(git rev-parse HEAD) -expecting success of 7102.7 'giving unrecognized options should fail': - test_must_fail git reset --other && - test_must_fail git reset -o && - test_must_fail git reset --mixed --other && - test_must_fail git reset --mixed -o && - test_must_fail git reset --soft --other && - test_must_fail git reset --soft -o && - test_must_fail git reset --hard --other && - test_must_fail git reset --hard -o && - check_changes $head5 +ok 5 - result is really identical -error: unknown option `other' -usage: git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [] - or: git reset [-q] [] [--] ... - or: git reset [-q] [--pathspec-from-file [--pathspec-file-nul]] [] - or: git reset --patch [] [--] [...] +expecting success of 7003.6 'correct GIT_DIR while using -d': + mkdir drepo && + ( cd drepo && + git init && + test_commit drepo && + git filter-branch -d "$TRASHDIR/dfoo" \ + --index-filter "cp \"$TRASHDIR\"/dfoo/backup-refs \"$TRASHDIR\"" \ + ) && + grep drepo "$TRASHDIR/backup-refs" - -q, --quiet be quiet, only report errors - --mixed reset HEAD and index - --soft reset only HEAD - --hard reset HEAD, index and working tree - --merge reset HEAD, index and working tree - --keep reset HEAD but keep local changes - --recurse-submodules[=] - control recursive updating of submodules - -p, --patch select hunks interactively - -N, --intent-to-add record only the fact that removed paths will be added later - --pathspec-from-file - read pathspec from file - --pathspec-file-nul with --pathspec-from-file, pathspec elements are separated with NUL character +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7003-filter-branch/drepo/.git/ +[master (root-commit) 9f96758] drepo + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 drepo.t + Rewrite 9f9675864b1443cf5a1e281c740a8ba331951fba (1/1) (0 seconds passed, remaining 0 predicted) +WARNING: Ref 'refs/heads/master' is unchanged +9f9675864b1443cf5a1e281c740a8ba331951fba commit refs/tags/drepo +ok 6 - correct GIT_DIR while using -d -error: unknown switch `o' -usage: git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [] - or: git reset [-q] [] [--] ... - or: git reset [-q] [--pathspec-from-file [--pathspec-file-nul]] [] - or: git reset --patch [] [--] [...] +expecting success of 7003.7 'tree-filter works with -d': + git init drepo-tree && + ( + cd drepo-tree && + test_commit one && + git filter-branch -d "$TRASHDIR/dfoo" \ + --tree-filter "echo changed >one.t" && + echo changed >expect && + git cat-file blob HEAD:one.t >actual && + test_cmp expect actual && + test_cmp one.t actual + ) - -q, --quiet be quiet, only report errors - --mixed reset HEAD and index - --soft reset only HEAD - --hard reset HEAD, index and working tree - --merge reset HEAD, index and working tree - --keep reset HEAD but keep local changes - --recurse-submodules[=] - control recursive updating of submodules - -p, --patch select hunks interactively - -N, --intent-to-add record only the fact that removed paths will be added later - --pathspec-from-file - read pathspec from file - --pathspec-file-nul with --pathspec-from-file, pathspec elements are separated with NUL character +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7003-filter-branch/drepo-tree/.git/ +[master (root-commit) d944c64] one + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 one.t + Rewrite d944c643197c4e8b1e89974e6d9ba85df421b65d (1/1) (0 seconds passed, remaining 0 predicted) +Ref 'refs/heads/master' was rewritten +ok 7 - tree-filter works with -d -error: unknown option `other' -usage: git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [] - or: git reset [-q] [] [--] ... - or: git reset [-q] [--pathspec-from-file [--pathspec-file-nul]] [] - or: git reset --patch [] [--] [...] +expecting success of 7003.8 'Fail if commit filter fails': + test_must_fail git filter-branch -f --commit-filter "exit 1" HEAD - -q, --quiet be quiet, only report errors - --mixed reset HEAD and index - --soft reset only HEAD - --hard reset HEAD, index and working tree - --merge reset HEAD, index and working tree - --keep reset HEAD but keep local changes - --recurse-submodules[=] - control recursive updating of submodules - -p, --patch select hunks interactively - -N, --intent-to-add record only the fact that removed paths will be added later - --pathspec-from-file - read pathspec from file - --pathspec-file-nul with --pathspec-from-file, pathspec elements are separated with NUL character + Rewrite 0ddfaf193ff13d6ab39b7cbd9eed645e3ee2f050 (1/9) (0 seconds passed, remaining 0 predicted) could not write rewritten commit +ok 8 - Fail if commit filter fails -error: unknown switch `o' -usage: git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [] - or: git reset [-q] [] [--] ... - or: git reset [-q] [--pathspec-from-file [--pathspec-file-nul]] [] - or: git reset --patch [] [--] [...] +expecting success of 7003.9 'rewrite, renaming a specific file': + git filter-branch -f --tree-filter "mv D.t doh || :" HEAD - -q, --quiet be quiet, only report errors - --mixed reset HEAD and index - --soft reset only HEAD - --hard reset HEAD, index and working tree - --merge reset HEAD, index and working tree - --keep reset HEAD but keep local changes - --recurse-submodules[=] - control recursive updating of submodules - -p, --patch select hunks interactively - -N, --intent-to-add record only the fact that removed paths will be added later - --pathspec-from-file - read pathspec from file - --pathspec-file-nul with --pathspec-from-file, pathspec elements are separated with NUL character + Rewrite 0ddfaf193ff13d6ab39b7cbd9eed645e3ee2f050 (1/9) (0 seconds passed, remaining 0 predicted) mv: cannot stat 'D.t': No such file or directory + Rewrite e86e54590a6764f0c4219b3fe8b5e971cd5a0ed8 (2/9) (1 seconds passed, remaining 3 predicted) mv: cannot stat 'D.t': No such file or directory + Rewrite bd662c15882f4e7910b78fc26a3d8fe1ffa802e5 (2/9) (1 seconds passed, remaining 3 predicted) Rewrite 3abb9b554927997a06e6fafc3c62469a75ef32a3 (2/9) (1 seconds passed, remaining 3 predicted) Rewrite 48ac83b9774bbddb9c1cd6fe140d5380297aa69c (5/9) (2 seconds passed, remaining 1 predicted) Rewrite 0e63577b8a9dce52b69167d9c008f6a0e30de818 (5/9) (2 seconds passed, remaining 1 predicted) mv: cannot stat 'D.t': No such file or directory + Rewrite 013e089e8403f3749848f7aafc6f271fb7179dbc (5/9) (2 seconds passed, remaining 1 predicted) Rewrite 3c39262d23e70569701d337b4d27a1e97512c2d9 (8/9) (4 seconds passed, remaining 0 predicted) Rewrite 110eac945dc1713b27bdf49e74e5805db66971f0 (8/9) (4 seconds passed, remaining 0 predicted) +Ref 'refs/heads/branch' was rewritten +ok 9 - rewrite, renaming a specific file -error: unknown option `other' -usage: git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [] - or: git reset [-q] [] [--] ... - or: git reset [-q] [--pathspec-from-file [--pathspec-file-nul]] [] - or: git reset --patch [] [--] [...] +expecting success of 7003.10 'test that the file was renamed': + test D = "$(git show HEAD:doh --)" && + ! test -f D.t && + test -f doh && + test D = "$(cat doh)" - -q, --quiet be quiet, only report errors - --mixed reset HEAD and index - --soft reset only HEAD - --hard reset HEAD, index and working tree - --merge reset HEAD, index and working tree - --keep reset HEAD but keep local changes - --recurse-submodules[=] - control recursive updating of submodules - -p, --patch select hunks interactively - -N, --intent-to-add record only the fact that removed paths will be added later - --pathspec-from-file - read pathspec from file - --pathspec-file-nul with --pathspec-from-file, pathspec elements are separated with NUL character +ok 10 - test that the file was renamed -error: unknown switch `o' -usage: git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [] - or: git reset [-q] [] [--] ... - or: git reset [-q] [--pathspec-from-file [--pathspec-file-nul]] [] - or: git reset --patch [] [--] [...] +expecting success of 7003.11 'rewrite, renaming a specific directory': + git filter-branch -f --tree-filter "mv dir diroh || :" HEAD - -q, --quiet be quiet, only report errors - --mixed reset HEAD and index - --soft reset only HEAD - --hard reset HEAD, index and working tree - --merge reset HEAD, index and working tree - --keep reset HEAD but keep local changes - --recurse-submodules[=] - control recursive updating of submodules - -p, --patch select hunks interactively - -N, --intent-to-add record only the fact that removed paths will be added later - --pathspec-from-file - read pathspec from file - --pathspec-file-nul with --pathspec-from-file, pathspec elements are separated with NUL character + Rewrite 0ddfaf193ff13d6ab39b7cbd9eed645e3ee2f050 (1/9) (0 seconds passed, remaining 0 predicted) mv: cannot stat 'dir': No such file or directory + Rewrite e86e54590a6764f0c4219b3fe8b5e971cd5a0ed8 (2/9) (1 seconds passed, remaining 3 predicted) mv: cannot stat 'dir': No such file or directory + Rewrite 3d6c5360ccb48d27bbc524f53496821309a1fc79 (2/9) (1 seconds passed, remaining 3 predicted) mv: cannot stat 'dir': No such file or directory + Rewrite 28e3b83a5f2c2b87fa77b674df1529da9f4a66b4 (2/9) (1 seconds passed, remaining 3 predicted) Rewrite b0e1a7fc77c44f8710a324ce0cdaa5f0e3f41f41 (5/9) (2 seconds passed, remaining 1 predicted) Rewrite 0e63577b8a9dce52b69167d9c008f6a0e30de818 (5/9) (2 seconds passed, remaining 1 predicted) mv: cannot stat 'dir': No such file or directory + Rewrite 284d35b48d5c7cf8f258f9d25690e5c3c38bb8c3 (5/9) (2 seconds passed, remaining 1 predicted) Rewrite 8d77ce9a0f051fe4d6b311099cfc061fc8fa238e (8/9) (4 seconds passed, remaining 0 predicted) Rewrite 3623c2fd76a1257ce6cfb529b64aa3e51d851ffd (8/9) (4 seconds passed, remaining 0 predicted) +Ref 'refs/heads/branch' was rewritten +ok 11 - rewrite, renaming a specific directory -error: unknown option `other' -usage: git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [] - or: git reset [-q] [] [--] ... - or: git reset [-q] [--pathspec-from-file [--pathspec-file-nul]] [] - or: git reset --patch [] [--] [...] +expecting success of 7003.12 'test that the directory was renamed': + test dir/D = "$(git show HEAD:diroh/D.t --)" && + ! test -d dir && + test -d diroh && + ! test -d diroh/dir && + test -f diroh/D.t && + test dir/D = "$(cat diroh/D.t)" - -q, --quiet be quiet, only report errors - --mixed reset HEAD and index - --soft reset only HEAD - --hard reset HEAD, index and working tree - --merge reset HEAD, index and working tree - --keep reset HEAD but keep local changes - --recurse-submodules[=] - control recursive updating of submodules - -p, --patch select hunks interactively - -N, --intent-to-add record only the fact that removed paths will be added later - --pathspec-from-file - read pathspec from file - --pathspec-file-nul with --pathspec-from-file, pathspec elements are separated with NUL character +ok 12 - test that the directory was renamed -error: unknown switch `o' -usage: git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [] - or: git reset [-q] [] [--] ... - or: git reset [-q] [--pathspec-from-file [--pathspec-file-nul]] [] - or: git reset --patch [] [--] [...] +expecting success of 7003.13 'populate --state-branch': + git filter-branch --state-branch state -f --tree-filter "touch file || :" HEAD - -q, --quiet be quiet, only report errors - --mixed reset HEAD and index - --soft reset only HEAD - --hard reset HEAD, index and working tree - --merge reset HEAD, index and working tree - --keep reset HEAD but keep local changes - --recurse-submodules[=] - control recursive updating of submodules - -p, --patch select hunks interactively - -N, --intent-to-add record only the fact that removed paths will be added later - --pathspec-from-file - read pathspec from file - --pathspec-file-nul with --pathspec-from-file, pathspec elements are separated with NUL character +Branch state does not exist. Will create + Rewrite 0ddfaf193ff13d6ab39b7cbd9eed645e3ee2f050 (1/9) (0 seconds passed, remaining 0 predicted) Rewrite e86e54590a6764f0c4219b3fe8b5e971cd5a0ed8 (2/9) (1 seconds passed, remaining 3 predicted) Rewrite 3d6c5360ccb48d27bbc524f53496821309a1fc79 (2/9) (1 seconds passed, remaining 3 predicted) Rewrite ef5df644a239016a9035ed6fe3e7f2b4b4a349bd (2/9) (1 seconds passed, remaining 3 predicted) Rewrite d66aa888e8e10ccecac31b04a73b006afcfb6ab2 (5/9) (3 seconds passed, remaining 2 predicted) Rewrite 0e63577b8a9dce52b69167d9c008f6a0e30de818 (5/9) (3 seconds passed, remaining 2 predicted) Rewrite 095b78eb9c1f77139224464f38f1e0aff8add3cf (7/9) (4 seconds passed, remaining 1 predicted) Rewrite 20d07e95852c2683da5bd70d3badbd5028484552 (7/9) (4 seconds passed, remaining 1 predicted) Rewrite 8a3423ee5559c5e0c32440a860f6b09a0e6020fc (9/9) (5 seconds passed, remaining 0 predicted) +Ref 'refs/heads/branch' was rewritten +Saving rewrite state to state +ok 13 - populate --state-branch -ok 7 - giving unrecognized options should fail +expecting success of 7003.14 'using --state-branch to skip already rewritten commits': + test_when_finished git reset --hard $V && + git reset --hard $V && + git filter-branch --state-branch state -f --tree-filter "touch file || :" HEAD && + test_cmp_rev $W HEAD -expecting success of 7102.8 'trying to do reset --soft with pending merge should fail': - git branch branch1 && - git branch branch2 && +HEAD is now at 8a3423e H +Populating map from state (62b9c9fa908324bba33ac79ad962e765fd9a3958) + Rewrite 0ddfaf193ff13d6ab39b7cbd9eed645e3ee2f050 (1/9) (0 seconds passed, remaining 0 predicted) Rewrite e86e54590a6764f0c4219b3fe8b5e971cd5a0ed8 (2/9) (0 seconds passed, remaining 0 predicted) Rewrite 3d6c5360ccb48d27bbc524f53496821309a1fc79 (3/9) (0 seconds passed, remaining 0 predicted) Rewrite ef5df644a239016a9035ed6fe3e7f2b4b4a349bd (4/9) (0 seconds passed, remaining 0 predicted) Rewrite d66aa888e8e10ccecac31b04a73b006afcfb6ab2 (5/9) (0 seconds passed, remaining 0 predicted) Rewrite 0e63577b8a9dce52b69167d9c008f6a0e30de818 (6/9) (0 seconds passed, remaining 0 predicted) Rewrite 095b78eb9c1f77139224464f38f1e0aff8add3cf (7/9) (0 seconds passed, remaining 0 predicted) Rewrite 20d07e95852c2683da5bd70d3badbd5028484552 (8/9) (0 seconds passed, remaining 0 predicted) Rewrite 8a3423ee5559c5e0c32440a860f6b09a0e6020fc (9/9) (0 seconds passed, remaining 0 predicted) +Ref 'refs/heads/branch' was rewritten +Saving rewrite state to state +HEAD is now at 8a3423e H +ok 14 - using --state-branch to skip already rewritten commits - git checkout branch1 && - echo "3rd line in branch1" >>secondfile && - git commit -a -m "change in branch1" && +expecting success of 7003.15 'rewrite one branch, keeping a side branch': + git branch modD oldD && + git filter-branch -f --tree-filter "mv B.t boh || :" D..modD - git checkout branch2 && - echo "3rd line in branch2" >>secondfile && - git commit -a -m "change in branch2" && + Rewrite 3d6c5360ccb48d27bbc524f53496821309a1fc79 (1/2) (0 seconds passed, remaining 0 predicted) Rewrite ef5df644a239016a9035ed6fe3e7f2b4b4a349bd (2/2) (1 seconds passed, remaining 0 predicted) +Ref 'refs/heads/modD' was rewritten +ok 15 - rewrite one branch, keeping a side branch - test_must_fail git merge branch1 && - test_must_fail git reset --soft && +expecting success of 7003.16 'common ancestor is still common (unchanged)': + test "$(git merge-base modD D)" = "$(git rev-parse B)" - printf "1st line 2nd file\n2nd line 2nd file\n3rd line" >secondfile && - git commit -a -m "the change in branch2" && +ok 16 - common ancestor is still common (unchanged) - git checkout master && - git branch -D branch1 branch2 && - check_changes $head5 +expecting success of 7003.17 'filter subdirectory only': + mkdir subdir && + touch subdir/new && + git add subdir/new && + test_tick && + git commit -m "subdir" && + echo H > A.t && + test_tick && + git commit -m "not subdir" A.t && + echo A > subdir/new && + test_tick && + git commit -m "again subdir" subdir/new && + git rm A.t && + test_tick && + git commit -m "again not subdir" && + git branch sub && + git branch sub-earlier HEAD~2 && + git filter-branch -f --subdirectory-filter subdir \ + refs/heads/sub refs/heads/sub-earlier -Switched to branch 'branch1' -[branch1 6b78ea5] change in branch1 +[branch bb8f80d] subdir Author: A U Thor - 1 file changed, 1 insertion(+) -Switched to branch 'branch2' -[branch2 f8a209f] change in branch2 + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 subdir/new +[branch 5bae69c] not subdir + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +[branch 140072e] again subdir Author: A U Thor 1 file changed, 1 insertion(+) -Merging: -f8a209f change in branch2 -virtual branch1 -found 1 common ancestor: -eed6733 modify 2nd file (geändert) -Auto-merging secondfile -CONFLICT (content): Merge conflict in secondfile -Automatic merge failed; fix conflicts and then commit the result. -fatal: Cannot do a soft reset in the middle of a merge. -[branch2 8e8e261] the change in branch2 +rm 'A.t' +[branch ead226b] again not subdir Author: A U Thor -Switched to branch 'master' -Deleted branch branch1 (was 6b78ea5). -Deleted branch branch2 (was 8e8e261). -ok 8 - trying to do reset --soft with pending merge should fail - -expecting success of 7102.9 'trying to do reset --soft with pending checkout merge should fail': - git branch branch3 && - git branch branch4 && - - git checkout branch3 && - echo "3rd line in branch3" >>secondfile && - git commit -a -m "line in branch3" && - - git checkout branch4 && - echo "3rd line in branch4" >>secondfile && + 1 file changed, 1 deletion(-) + delete mode 100644 A.t + Rewrite bb8f80d463b54137409c5a381ad07ea6bf4b1867 (1/2) (0 seconds passed, remaining 0 predicted) Rewrite 140072ead29d56d10c1c5c473c117e3aed45a333 (2/2) (0 seconds passed, remaining 0 predicted) +Ref 'refs/heads/sub' was rewritten +Ref 'refs/heads/sub-earlier' was rewritten +ok 17 - filter subdirectory only - git checkout -m branch3 && - test_must_fail git reset --soft && +expecting success of 7003.18 'subdirectory filter result looks okay': + test 2 = $(git rev-list sub | wc -l) && + git show sub:new && + test_must_fail git show sub:subdir && + git show sub-earlier:new && + test_must_fail git show sub-earlier:subdir - printf "1st line 2nd file\n2nd line 2nd file\n3rd line" >secondfile && - git commit -a -m "the line in branch3" && +A +fatal: path 'subdir' exists on disk, but not in 'sub' +fatal: path 'subdir' exists on disk, but not in 'sub-earlier' +ok 18 - subdirectory filter result looks okay +expecting success of 7003.19 'more setup': git checkout master && - git branch -D branch3 branch4 && - check_changes $head5 + mkdir subdir && + echo A > subdir/new && + git add subdir/new && + test_tick && + git commit -m "subdir on master" subdir/new && + git rm A.t && + test_tick && + git commit -m "again subdir on master" && + git merge branch -Switched to branch 'branch3' -[branch3 0b5021a] line in branch3 +Switched to branch 'master' +[master 2744380] subdir on master Author: A U Thor 1 file changed, 1 insertion(+) -Switched to branch 'branch4' -Switched to branch 'branch3' -M secondfile -fatal: Cannot do a soft reset in the middle of a merge. -[branch3 dbe96ed] the line in branch3 + create mode 100644 subdir/new +rm 'A.t' +[master d349444] again subdir on master Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -Switched to branch 'master' -Deleted branch branch3 (was dbe96ed). -Deleted branch branch4 (was eed6733). -ok 9 - trying to do reset --soft with pending checkout merge should fail + 1 file changed, 1 deletion(-) + delete mode 100644 A.t +Merging: +d349444 again subdir on master +virtual branch +found 1 common ancestor: +0e63577 C +Skipped subdir/new (merged same as existing) +Merge made by the 'recursive' strategy. + E.t | 1 + + G.t | 1 + + H.t | 1 + + diroh/D.t | 1 + + doh | 1 + + 5 files changed, 5 insertions(+) + create mode 100644 E.t + create mode 100644 G.t + create mode 100644 H.t + create mode 100644 diroh/D.t + create mode 100644 doh +ok 19 - more setup -expecting success of 7102.10 'resetting to HEAD with no changes should succeed and do nothing': - git reset --hard && - check_changes $head5 && - git reset --hard HEAD && - check_changes $head5 && - git reset --soft && - check_changes $head5 && - git reset --soft HEAD && - check_changes $head5 && - git reset --mixed && - check_changes $head5 && - git reset --mixed HEAD && - check_changes $head5 && - git reset && - check_changes $head5 && - git reset HEAD && - check_changes $head5 +expecting success of 7003.20 'use index-filter to move into a subdirectory': + git branch directorymoved && + git filter-branch -f --index-filter \ + "git ls-files -s | sed \"s- -&newsubdir/-\" | + GIT_INDEX_FILE=\$GIT_INDEX_FILE.new \ + git update-index --index-info && + mv \"\$GIT_INDEX_FILE.new\" \"\$GIT_INDEX_FILE\"" directorymoved && + git diff --exit-code HEAD directorymoved:newsubdir -HEAD is now at eed6733 modify 2nd file (geändert) -HEAD is now at eed6733 modify 2nd file (geändert) -ok 10 - resetting to HEAD with no changes should succeed and do nothing + Rewrite 0ddfaf193ff13d6ab39b7cbd9eed645e3ee2f050 (1/16) (0 seconds passed, remaining 0 predicted) Rewrite e86e54590a6764f0c4219b3fe8b5e971cd5a0ed8 (2/16) (1 seconds passed, remaining 7 predicted) Rewrite 0e63577b8a9dce52b69167d9c008f6a0e30de818 (2/16) (1 seconds passed, remaining 7 predicted) Rewrite 2744380f4984748b7b4c121c182e9c3330a609c5 (2/16) (1 seconds passed, remaining 7 predicted) Rewrite d3494446ffa0b10a4a22ad9db09ce4fe83ff7648 (5/16) (2 seconds passed, remaining 4 predicted) Rewrite 3d6c5360ccb48d27bbc524f53496821309a1fc79 (5/16) (2 seconds passed, remaining 4 predicted) Rewrite ef5df644a239016a9035ed6fe3e7f2b4b4a349bd (5/16) (2 seconds passed, remaining 4 predicted) Rewrite d66aa888e8e10ccecac31b04a73b006afcfb6ab2 (8/16) (3 seconds passed, remaining 3 predicted) Rewrite 095b78eb9c1f77139224464f38f1e0aff8add3cf (8/16) (3 seconds passed, remaining 3 predicted) Rewrite 20d07e95852c2683da5bd70d3badbd5028484552 (8/16) (3 seconds passed, remaining 3 predicted) Rewrite 8a3423ee5559c5e0c32440a860f6b09a0e6020fc (11/16) (4 seconds passed, remaining 1 predicted) Rewrite bb8f80d463b54137409c5a381ad07ea6bf4b1867 (11/16) (4 seconds passed, remaining 1 predicted) Rewrite 5bae69c6543c34be1d98816e26501bcda79d1d6b (11/16) (4 seconds passed, remaining 1 predicted) Rewrite 140072ead29d56d10c1c5c473c117e3aed45a333 (14/16) (5 seconds passed, remaining 0 predicted) Rewrite ead226bc0b53c5d210f2326ae871b0fea3004df3 (14/16) (5 seconds passed, remaining 0 predicted) Rewrite 7329f31555df2545350d15ecd0f5eab05e7142e1 (14/16) (5 seconds passed, remaining 0 predicted) +Ref 'refs/heads/directorymoved' was rewritten +ok 20 - use index-filter to move into a subdirectory -expecting success of 7102.11 '--soft reset only should show changes in diff --cached': - >.diff_expect && - cat >.cached_expect <<-EOF && - diff --git a/secondfile b/secondfile - index $head5p1s..$head5s 100644 - --- a/secondfile - +++ b/secondfile - @@ -1 +1,2 @@ - -2nd file - +1st line 2nd file - +2nd line 2nd file - EOF - cat >.cat_expect <<-\EOF && - secondfile: - 1st line 2nd file - 2nd line 2nd file - EOF - git reset --soft HEAD^ && - check_changes $head5p1 && - test "$(git rev-parse ORIG_HEAD)" = \ - $head5 +expecting success of 7003.21 'stops when msg filter fails': + old=$(git rev-parse HEAD) && + test_must_fail git filter-branch -f --msg-filter false HEAD && + test $old = $(git rev-parse HEAD) && + rm -rf .git-rewrite -ok 11 - --soft reset only should show changes in diff --cached + Rewrite 0ddfaf193ff13d6ab39b7cbd9eed645e3ee2f050 (1/16) (0 seconds passed, remaining 0 predicted) msg filter failed: false +ok 21 - stops when msg filter fails -expecting success of 7102.12 'changing files and redo the last commit should succeed': - >.diff_expect && - >.cached_expect && - cat >.cat_expect <<-\EOF && - secondfile: - 1st line 2nd file - 2nd line 2nd file - 3rd line 2nd file - EOF - echo "3rd line 2nd file" >>secondfile && - git commit -a -C ORIG_HEAD && - head4=$(git rev-parse --verify HEAD) && - check_changes $head4 && - test "$(git rev-parse ORIG_HEAD)" = \ - $head5 +expecting success of 7003.22 'author information is preserved': + : > i && + git add i && + test_tick && + GIT_AUTHOR_NAME="B V Uips" git commit -m bvuips && + git branch preserved-author && + (sane_unset GIT_AUTHOR_NAME && + git filter-branch -f --msg-filter "cat; \ + test \$GIT_COMMIT != $(git rev-parse master) || \ + echo Hallo" \ + preserved-author) && + git rev-list --author="B V Uips" preserved-author >actual && + test_line_count = 1 actual -[master b052eb8] modify 2nd file (geändert) - Author: A U Thor - Date: Thu Apr 7 15:13:13 2005 -0700 - 1 file changed, 3 insertions(+), 1 deletion(-) -ok 12 - changing files and redo the last commit should succeed +[master 2bfc21d] bvuips + Author: B V Uips + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 i + Rewrite 0ddfaf193ff13d6ab39b7cbd9eed645e3ee2f050 (1/17) (0 seconds passed, remaining 0 predicted) Rewrite e86e54590a6764f0c4219b3fe8b5e971cd5a0ed8 (2/17) (1 seconds passed, remaining 7 predicted) Rewrite 0e63577b8a9dce52b69167d9c008f6a0e30de818 (2/17) (1 seconds passed, remaining 7 predicted) Rewrite 2744380f4984748b7b4c121c182e9c3330a609c5 (2/17) (1 seconds passed, remaining 7 predicted) Rewrite d3494446ffa0b10a4a22ad9db09ce4fe83ff7648 (5/17) (1 seconds passed, remaining 2 predicted) Rewrite 3d6c5360ccb48d27bbc524f53496821309a1fc79 (5/17) (1 seconds passed, remaining 2 predicted) Rewrite ef5df644a239016a9035ed6fe3e7f2b4b4a349bd (5/17) (1 seconds passed, remaining 2 predicted) Rewrite d66aa888e8e10ccecac31b04a73b006afcfb6ab2 (5/17) (1 seconds passed, remaining 2 predicted) Rewrite 095b78eb9c1f77139224464f38f1e0aff8add3cf (5/17) (1 seconds passed, remaining 2 predicted) Rewrite 20d07e95852c2683da5bd70d3badbd5028484552 (5/17) (1 seconds passed, remaining 2 predicted) Rewrite 8a3423ee5559c5e0c32440a860f6b09a0e6020fc (11/17) (3 seconds passed, remaining 1 predicted) Rewrite bb8f80d463b54137409c5a381ad07ea6bf4b1867 (11/17) (3 seconds passed, remaining 1 predicted) Rewrite 5bae69c6543c34be1d98816e26501bcda79d1d6b (11/17) (3 seconds passed, remaining 1 predicted) Rewrite 140072ead29d56d10c1c5c473c117e3aed45a333 (11/17) (3 seconds passed, remaining 1 predicted) Rewrite ead226bc0b53c5d210f2326ae871b0fea3004df3 (15/17) (4 seconds passed, remaining 0 predicted) Rewrite 7329f31555df2545350d15ecd0f5eab05e7142e1 (15/17) (4 seconds passed, remaining 0 predicted) Rewrite 2bfc21d43f33a03177145ce5f42ee28e86b0e4d2 (15/17) (4 seconds passed, remaining 0 predicted) +Ref 'refs/heads/preserved-author' was rewritten +ok 22 - author information is preserved -expecting success of 7102.13 '--hard reset should change the files and undo commits permanently': - >.diff_expect && - >.cached_expect && - cat >.cat_expect <<-\EOF && - first: - 1st file - 2nd line 1st file - second: - 2nd file - EOF - git reset --hard HEAD~2 && - check_changes $head5p2 && - test "$(git rev-parse ORIG_HEAD)" = \ - $head4 +expecting success of 7003.23 'remove a certain author's commits': + echo i > i && + test_tick && + git commit -m i i && + git branch removed-author && + git filter-branch -f --commit-filter "\ + if [ \"\$GIT_AUTHOR_NAME\" = \"B V Uips\" ];\ + then\ + skip_commit \"\$@\"; + else\ + git commit-tree \"\$@\";\ + fi" removed-author && + cnt1=$(git rev-list master | wc -l) && + cnt2=$(git rev-list removed-author | wc -l) && + test $cnt1 -eq $(($cnt2 + 1)) && + git rev-list --author="B V Uips" removed-author >actual && + test_line_count = 0 actual -HEAD is now at ddaefe0 modify 1st file -ok 13 - --hard reset should change the files and undo commits permanently +[master 68862b3] i + Author: A U Thor + 1 file changed, 1 insertion(+) + Rewrite 0ddfaf193ff13d6ab39b7cbd9eed645e3ee2f050 (1/18) (0 seconds passed, remaining 0 predicted) Rewrite e86e54590a6764f0c4219b3fe8b5e971cd5a0ed8 (2/18) (0 seconds passed, remaining 0 predicted) Rewrite 0e63577b8a9dce52b69167d9c008f6a0e30de818 (3/18) (0 seconds passed, remaining 0 predicted) Rewrite 2744380f4984748b7b4c121c182e9c3330a609c5 (4/18) (1 seconds passed, remaining 3 predicted) Rewrite d3494446ffa0b10a4a22ad9db09ce4fe83ff7648 (4/18) (1 seconds passed, remaining 3 predicted) Rewrite 3d6c5360ccb48d27bbc524f53496821309a1fc79 (4/18) (1 seconds passed, remaining 3 predicted) Rewrite ef5df644a239016a9035ed6fe3e7f2b4b4a349bd (4/18) (1 seconds passed, remaining 3 predicted) Rewrite d66aa888e8e10ccecac31b04a73b006afcfb6ab2 (4/18) (1 seconds passed, remaining 3 predicted) Rewrite 095b78eb9c1f77139224464f38f1e0aff8add3cf (9/18) (2 seconds passed, remaining 2 predicted) Rewrite 20d07e95852c2683da5bd70d3badbd5028484552 (9/18) (2 seconds passed, remaining 2 predicted) Rewrite 8a3423ee5559c5e0c32440a860f6b09a0e6020fc (9/18) (2 seconds passed, remaining 2 predicted) Rewrite bb8f80d463b54137409c5a381ad07ea6bf4b1867 (9/18) (2 seconds passed, remaining 2 predicted) Rewrite 5bae69c6543c34be1d98816e26501bcda79d1d6b (9/18) (2 seconds passed, remaining 2 predicted) Rewrite 140072ead29d56d10c1c5c473c117e3aed45a333 (14/18) (4 seconds passed, remaining 1 predicted) Rewrite ead226bc0b53c5d210f2326ae871b0fea3004df3 (14/18) (4 seconds passed, remaining 1 predicted) Rewrite 7329f31555df2545350d15ecd0f5eab05e7142e1 (14/18) (4 seconds passed, remaining 1 predicted) Rewrite 2bfc21d43f33a03177145ce5f42ee28e86b0e4d2 (14/18) (4 seconds passed, remaining 1 predicted) Rewrite 68862b396e34e966159af1904a1560522f345981 (18/18) (5 seconds passed, remaining 0 predicted) +Ref 'refs/heads/removed-author' was rewritten +ok 23 - remove a certain author's commits -expecting success of 7102.14 'redoing changes adding them without commit them should succeed': - >.diff_expect && - cat >.cached_expect <<-EOF && - diff --git a/first b/first - deleted file mode 100644 - index $head5p2f..0000000 - --- a/first - +++ /dev/null - @@ -1,2 +0,0 @@ - -1st file - -2nd line 1st file - diff --git a/second b/second - deleted file mode 100644 - index $head5p1s..0000000 - --- a/second - +++ /dev/null - @@ -1 +0,0 @@ - -2nd file - diff --git a/secondfile b/secondfile - new file mode 100644 - index 0000000..$head5s - --- /dev/null - +++ b/secondfile - @@ -0,0 +1,2 @@ - +1st line 2nd file - +2nd line 2nd file - EOF - cat >.cat_expect <<-\EOF && - secondfile: - 1st line 2nd file - 2nd line 2nd file - EOF - git rm first && - git mv second secondfile && +expecting success of 7003.24 'barf on invalid name': + test_must_fail git filter-branch -f master xy-problem && + test_must_fail git filter-branch -f HEAD^ - echo "1st line 2nd file" >secondfile && - echo "2nd line 2nd file" >>secondfile && - git add secondfile && - check_changes $head5p2 +fatal: ambiguous argument 'xy-problem': unknown revision or path not in the working tree. +Use '--' to separate paths from revisions, like this: +'git [...] -- [...]' +You must specify a ref to rewrite. +ok 24 - barf on invalid name -rm 'first' -ok 14 - redoing changes adding them without commit them should succeed +expecting success of 7003.25 '"map" works in commit filter': + git filter-branch -f --commit-filter "\ + parent=\$(git rev-parse \$GIT_COMMIT^) && + mapped=\$(map \$parent) && + actual=\$(echo \"\$@\" | sed \"s/^.*-p //\") && + test \$mapped = \$actual && + git commit-tree \"\$@\";" master~2..master && + git rev-parse --verify master -expecting success of 7102.15 '--mixed reset to HEAD should unadd the files': - cat >.diff_expect <<-EOF && - diff --git a/first b/first - deleted file mode 100644 - index $head5p2f..0000000 - --- a/first - +++ /dev/null - @@ -1,2 +0,0 @@ - -1st file - -2nd line 1st file - diff --git a/second b/second - deleted file mode 100644 - index $head5p1s..0000000 - --- a/second - +++ /dev/null - @@ -1 +0,0 @@ - -2nd file - EOF - >.cached_expect && - cat >.cat_expect <<-\EOF && - secondfile: - 1st line 2nd file - 2nd line 2nd file - EOF - git reset && - check_changes $head5p2 && - test "$(git rev-parse ORIG_HEAD)" = $head5p2 + Rewrite 2bfc21d43f33a03177145ce5f42ee28e86b0e4d2 (1/2) (0 seconds passed, remaining 0 predicted) Rewrite 68862b396e34e966159af1904a1560522f345981 (2/2) (0 seconds passed, remaining 0 predicted) +WARNING: Ref 'refs/heads/master' is unchanged +68862b396e34e966159af1904a1560522f345981 +ok 25 - "map" works in commit filter -Unstaged changes after reset: -D first -D second -ok 15 - --mixed reset to HEAD should unadd the files +expecting success of 7003.26 'Name needing quotes': -expecting success of 7102.16 'redoing the last two commits should succeed': - >.diff_expect && - >.cached_expect && - cat >.cat_expect <<-\EOF && - secondfile: - 1st line 2nd file - 2nd line 2nd file - EOF - git add secondfile && - git reset --hard $head5p2 && - git rm first && - git mv second secondfile && - git commit -a -m "remove 1st and rename 2nd" && + git checkout -b rerere A && + mkdir foo && + name="れれれ" && + >foo/$name && + git add foo && + git commit -m "Adding a file" && + git filter-branch --tree-filter "rm -fr foo" && + test_must_fail git ls-files --error-unmatch "foo/$name" && + test $(git rev-parse --verify rerere) != $(git rev-parse --verify A) - echo "1st line 2nd file" >secondfile && - echo "2nd line 2nd file" >>secondfile && - # "git commit -m" would break MinGW, as Windows refuse to pass - # $test_encoding encoded parameter to git. - commit_msg $test_encoding | git -c "i18n.commitEncoding=$test_encoding" commit -a -F - && - check_changes $head5 -HEAD is now at ddaefe0 modify 1st file -rm 'first' -[master d1a4bc3] remove 1st and rename 2nd - Author: A U Thor - 2 files changed, 2 deletions(-) - delete mode 100644 first - rename second => secondfile (100%) -[master eed6733] modify 2nd file (geändert) +Switched to a new branch 'rerere' +[rerere 1d45e88] Adding a file Author: A U Thor - 1 file changed, 2 insertions(+), 1 deletion(-) -ok 16 - redoing the last two commits should succeed - -expecting success of 7102.17 '--hard reset to HEAD should clear a failed merge': - >.diff_expect && - >.cached_expect && - cat >.cat_expect <<-\EOF && - secondfile: - 1st line 2nd file - 2nd line 2nd file - 3rd line in branch2 - EOF - git branch branch1 && - git branch branch2 && - - git checkout branch1 && - echo "3rd line in branch1" >>secondfile && - git commit -a -m "change in branch1" && - - git checkout branch2 && - echo "3rd line in branch2" >>secondfile && - git commit -a -m "change in branch2" && - head3=$(git rev-parse --verify HEAD) && + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 "foo/\343\202\214\343\202\214\343\202\214" + Rewrite 0ddfaf193ff13d6ab39b7cbd9eed645e3ee2f050 (1/2) (0 seconds passed, remaining 0 predicted) Rewrite 1d45e8854f1dd5452938be2dedb173087134c05c (2/2) (1 seconds passed, remaining 0 predicted) +Ref 'refs/heads/rerere' was rewritten +error: pathspec 'foo/れれれ' did not match any file(s) known to git +Did you forget to 'git add'? +ok 26 - Name needing quotes - test_must_fail git pull . branch1 && +expecting success of 7003.27 'Subdirectory filter with disappearing trees': git reset --hard && - check_changes $head3 + git checkout master && -Switched to branch 'branch1' -[branch1 6b78ea5] change in branch1 - Author: A U Thor - 1 file changed, 1 insertion(+) -Switched to branch 'branch2' -[branch2 f8a209f] change in branch2 - Author: A U Thor - 1 file changed, 1 insertion(+) -hint: Pulling without specifying how to reconcile divergent branches is -hint: discouraged. You can squelch this message by running one of the following -hint: commands sometime before your next pull: -hint: -hint: git config pull.rebase false # merge (the default strategy) -hint: git config pull.rebase true # rebase -hint: git config pull.ff only # fast-forward only -hint: -hint: You can replace "git config" with "git config --global" to set a default -hint: preference for all repositories. You can also pass --rebase, --no-rebase, -hint: or --ff-only on the command line to override the configured default per -hint: invocation. -From . - * branch branch1 -> FETCH_HEAD -Merging: -f8a209f change in branch2 -virtual 6b78ea5a18fcfce43fc7d5b8980e339547a633be -found 1 common ancestor: -eed6733 modify 2nd file (geändert) -Auto-merging secondfile -CONFLICT (content): Merge conflict in secondfile -Automatic merge failed; fix conflicts and then commit the result. -HEAD is now at f8a209f change in branch2 -ok 17 - --hard reset to HEAD should clear a failed merge + mkdir foo && + touch foo/bar && + git add foo && + test_tick && + git commit -m "Adding foo" && -expecting success of 7102.18 '--hard reset to ORIG_HEAD should clear a fast-forward merge': - >.diff_expect && - >.cached_expect && - cat >.cat_expect <<-\EOF && - secondfile: - 1st line 2nd file - 2nd line 2nd file - EOF - git reset --hard HEAD^ && - check_changes $head5 && + git rm -r foo && + test_tick && + git commit -m "Removing foo" && - git pull . branch1 && - git reset --hard ORIG_HEAD && - check_changes $head5 && + mkdir foo && + touch foo/bar && + git add foo && + test_tick && + git commit -m "Re-adding foo" && - git checkout master && - git branch -D branch1 branch2 && - check_changes $head5 + git filter-branch -f --subdirectory-filter foo && + git rev-list master >actual && + test_line_count = 3 actual -HEAD is now at eed6733 modify 2nd file (geändert) -hint: Pulling without specifying how to reconcile divergent branches is -hint: discouraged. You can squelch this message by running one of the following -hint: commands sometime before your next pull: -hint: -hint: git config pull.rebase false # merge (the default strategy) -hint: git config pull.rebase true # rebase -hint: git config pull.ff only # fast-forward only -hint: -hint: You can replace "git config" with "git config --global" to set a default -hint: preference for all repositories. You can also pass --rebase, --no-rebase, -hint: or --ff-only on the command line to override the configured default per -hint: invocation. -From . - * branch branch1 -> FETCH_HEAD -Updating eed6733..6b78ea5 -Fast-forward - secondfile | 1 + - 1 file changed, 1 insertion(+) -HEAD is now at eed6733 modify 2nd file (geändert) +HEAD is now at 643bd56 Adding a file Switched to branch 'master' -Deleted branch branch1 (was 6b78ea5). -Deleted branch branch2 (was eed6733). -ok 18 - --hard reset to ORIG_HEAD should clear a fast-forward merge - -expecting success of 7102.19 'test --mixed ': - echo 1 >file1 && - echo 2 >file2 && - git add file1 file2 && - test_tick && - git commit -m files && - before1=$(git rev-parse --short HEAD:file1) && - before2=$(git rev-parse --short HEAD:file2) && - git rm file2 && - echo 3 >file3 && - echo 4 >file4 && - echo 5 >file1 && - after1=$(git rev-parse --short $(git hash-object file1)) && - after4=$(git rev-parse --short $(git hash-object file4)) && - git add file1 file3 file4 && - git reset HEAD -- file1 file2 file3 && - test_must_fail git diff --quiet && - git diff >output && - - cat >expect <<-EOF && - diff --git a/file1 b/file1 - index $before1..$after1 100644 - --- a/file1 - +++ b/file1 - @@ -1 +1 @@ - -1 - +5 - diff --git a/file2 b/file2 - deleted file mode 100644 - index $before2..0000000 - --- a/file2 - +++ /dev/null - @@ -1 +0,0 @@ - -2 - EOF +[master 3305444] Adding foo + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 foo/bar +rm 'foo/bar' +[master 19fad5f] Removing foo + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + delete mode 100644 foo/bar +[master 7aafb76] Re-adding foo + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 foo/bar + Rewrite 3305444c998d38f6e0ae04b8b2dde079396fbd96 (1/3) (0 seconds passed, remaining 0 predicted) Rewrite 19fad5fb6ee227e558ea3a23a347d3c375fde390 (2/3) (0 seconds passed, remaining 0 predicted) Rewrite 7aafb762e4a3130535b3e68ddc425c6c7c339d3b (3/3) (0 seconds passed, remaining 0 predicted) +Ref 'refs/heads/master' was rewritten +ok 27 - Subdirectory filter with disappearing trees - test_cmp expect output && - git diff --cached >output && +expecting success of 7003.28 'Tag name filtering retains tag message': + git tag -m atag T && + git cat-file tag T > expect && + git filter-branch -f --tag-name-filter cat && + git cat-file tag T > actual && + test_cmp expect actual - cat >cached_expect <<-EOF && - diff --git a/file4 b/file4 - new file mode 100644 - index 0000000..$after4 - --- /dev/null - +++ b/file4 - @@ -0,0 +1 @@ - +4 - EOF + Rewrite f78b0905e139f6556b004c5f87cfe750aa8e3286 (1/3) (1 seconds passed, remaining 2 predicted) Rewrite c9fbe965b33cbcb81865d123297fe4df816d7555 (1/3) (1 seconds passed, remaining 2 predicted) Rewrite fea59ed4667894c7bd682b11f147174ab39c40bd (3/3) (1 seconds passed, remaining 0 predicted) +WARNING: Ref 'refs/heads/master' is unchanged +T -> T (fea59ed4667894c7bd682b11f147174ab39c40bd -> fea59ed4667894c7bd682b11f147174ab39c40bd) +ok 28 - Tag name filtering retains tag message - test_cmp cached_expect output +expecting success of 7003.29 'Tag name filtering strips gpg signature': + sha1=$(git rev-parse HEAD) && + sha1t=$(echo "$faux_gpg_tag" | sed -e s/XXXXXX/$sha1/ | git mktag) && + git update-ref "refs/tags/S" "$sha1t" && + echo "$faux_gpg_tag" | sed -e s/XXXXXX/$sha1/ | head -n 6 > expect && + git filter-branch -f --tag-name-filter cat && + git cat-file tag S > actual && + test_cmp expect actual -[master 14b96fb] files - Author: A U Thor - 2 files changed, 2 insertions(+) - create mode 100644 file1 - create mode 100644 file2 -rm 'file2' -Unstaged changes after reset: -M file1 -D file2 -ok 19 - test --mixed + Rewrite f78b0905e139f6556b004c5f87cfe750aa8e3286 (1/3) (0 seconds passed, remaining 0 predicted) Rewrite c9fbe965b33cbcb81865d123297fe4df816d7555 (2/3) (0 seconds passed, remaining 0 predicted) Rewrite fea59ed4667894c7bd682b11f147174ab39c40bd (3/3) (1 seconds passed, remaining 0 predicted) +WARNING: Ref 'refs/heads/master' is unchanged +S -> S (fea59ed4667894c7bd682b11f147174ab39c40bd -> fea59ed4667894c7bd682b11f147174ab39c40bd) +gpg signature stripped from tag object 5e10caf7d74c3ace8930aa1d5449d4d0ceb2e9e0 +T -> T (fea59ed4667894c7bd682b11f147174ab39c40bd -> fea59ed4667894c7bd682b11f147174ab39c40bd) +ok 29 - Tag name filtering strips gpg signature -expecting success of 7102.20 'test resetting the index at give paths': - mkdir sub && - >sub/file1 && - >sub/file2 && - git update-index --add sub/file1 sub/file2 && - T=$(git write-tree) && - git reset HEAD sub/file2 && - test_must_fail git diff --quiet && - U=$(git write-tree) && - echo "$T" && - echo "$U" && - test_must_fail git diff-index --cached --exit-code "$T" && - test "$T" != "$U" +checking prerequisite: GPG -Unstaged changes after reset: -M file1 -D file2 -9571d9b5fb34d9c1274612948c5356f0615744bc -88880074c0c9957f91fd21817fee120b773fc32c -:100644 000000 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0000000000000000000000000000000000000000 D sub/file2 -ok 20 - test resetting the index at give paths +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-GPG" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-GPG" && + gpg_version=$(gpg --version 2>&1) + test $? != 127 || exit 1 -expecting success of 7102.21 'resetting an unmodified path is a no-op': - git reset --hard && - git reset -- file1 && - git diff-files --exit-code && - git diff-index --cached --exit-code HEAD + # As said here: http://www.gnupg.org/documentation/faqs.html#q6.19 + # the gpg version 1.0.6 did not parse trust packets correctly, so for + # that version, creation of signed tags using the generated key fails. + case "$gpg_version" in + "gpg (GnuPG) 1.0.6"*) + say "Your version of gpg (1.0.6) is too buggy for testing" + exit 1 + ;; + *) + # Available key info: + # * Type DSA and Elgamal, size 2048 bits, no expiration date, + # name and email: C O Mitter + # * Type RSA, size 2048 bits, no expiration date, + # name and email: Eris Discordia + # No password given, to enable non-interactive operation. + # To generate new key: + # gpg --homedir /tmp/gpghome --gen-key + # To write armored exported key to keyring: + # gpg --homedir /tmp/gpghome --export-secret-keys \ + # --armor 0xDEADBEEF >> lib-gpg/keyring.gpg + # gpg --homedir /tmp/gpghome --export \ + # --armor 0xDEADBEEF >> lib-gpg/keyring.gpg + # To export ownertrust: + # gpg --homedir /tmp/gpghome --export-ownertrust \ + # > lib-gpg/ownertrust + mkdir "$GNUPGHOME" && + chmod 0700 "$GNUPGHOME" && + (gpgconf --kill gpg-agent || : ) && + gpg --homedir "${GNUPGHOME}" --import \ + "$TEST_DIRECTORY"/lib-gpg/keyring.gpg && + gpg --homedir "${GNUPGHOME}" --import-ownertrust \ + "$TEST_DIRECTORY"/lib-gpg/ownertrust && + gpg --homedir "${GNUPGHOME}" /dev/null \ + --sign -u committer@example.com + ;; + esac -HEAD is now at 14b96fb files -ok 21 - resetting an unmodified path is a no-op +) +prerequisite GPG not satisfied +ok 30 # skip Filtering retains message of gpg signed commit (missing GPG) -expecting success of 7102.22 '--mixed refreshes the index': - cat >expect <<-\EOF && - Unstaged changes after reset: - M file2 - EOF - echo 123 >>file2 && - git reset --mixed HEAD >output && - test_i18ncmp expect output +expecting success of 7003.31 'Tag name filtering allows slashes in tag names': + git tag -m tag-with-slash X/1 && + git cat-file tag X/1 | sed -e s,X/1,X/2, > expect && + git filter-branch -f --tag-name-filter "echo X/2" && + git cat-file tag X/2 > actual && + test_cmp expect actual -ok 22 - --mixed refreshes the index + Rewrite f78b0905e139f6556b004c5f87cfe750aa8e3286 (1/3) (0 seconds passed, remaining 0 predicted) Rewrite c9fbe965b33cbcb81865d123297fe4df816d7555 (2/3) (0 seconds passed, remaining 0 predicted) Rewrite fea59ed4667894c7bd682b11f147174ab39c40bd (3/3) (0 seconds passed, remaining 0 predicted) +WARNING: Ref 'refs/heads/master' is unchanged +S -> X/2 (fea59ed4667894c7bd682b11f147174ab39c40bd -> fea59ed4667894c7bd682b11f147174ab39c40bd) +T -> X/2 (fea59ed4667894c7bd682b11f147174ab39c40bd -> fea59ed4667894c7bd682b11f147174ab39c40bd) +X/1 -> X/2 (fea59ed4667894c7bd682b11f147174ab39c40bd -> fea59ed4667894c7bd682b11f147174ab39c40bd) +ok 31 - Tag name filtering allows slashes in tag names -expecting success of 7102.23 'resetting specific path that is unmerged': - git rm --cached file2 && - F1=$(git rev-parse HEAD:file1) && - F2=$(git rev-parse HEAD:file2) && - F3=$(git rev-parse HEAD:secondfile) && - { - echo "100644 $F1 1 file2" && - echo "100644 $F2 2 file2" && - echo "100644 $F3 3 file2" - } | git update-index --index-info && - git ls-files -u && - git reset HEAD file2 && - test_must_fail git diff --quiet && - git diff-index --exit-code --cached HEAD +expecting success of 7003.32 'setup --prune-empty comparisons': + git checkout --orphan master-no-a && + git rm -rf . && + unset test_tick && + test_tick && + GIT_COMMITTER_DATE="@0 +0000" GIT_AUTHOR_DATE="@0 +0000" && + test_commit --notick B B.t B Bx && + git checkout -b branch-no-a Bx && + test_commit D D.t D Dx && + mkdir dir && + test_commit dir/D dir/D.t dir/D dir/Dx && + test_commit E E.t E Ex && + git checkout master-no-a && + test_commit C C.t C Cx && + git checkout branch-no-a && + git merge Cx -m "Merge tag 'C' into branch" && + git tag Fx && + test_commit G G.t G Gx && + test_commit H H.t H Hx && + git checkout branch -rm 'file2' -100644 d00491fd7e5bb6fa28c517a0bb32b8b506539d4d 1 file2 -100644 0cfbf08886fca9a91cb753ec8734c84fcbe52c9f 2 file2 -100644 44c5b5884550c17758737edcced463447b91d42b 3 file2 -Unstaged changes after reset: -M file2 -ok 23 - resetting specific path that is unmerged +Switched to a new branch 'master-no-a' +rm 'bar' +[master-no-a (root-commit) 8d95d31] B + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 B.t +Switched to a new branch 'branch-no-a' +[branch-no-a 2d0b6b2] D + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 D.t +[branch-no-a 6b73242] dir/D + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 dir/D.t +[branch-no-a 6e45985] E + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 E.t +Switched to branch 'master-no-a' +[master-no-a 5a68040] C + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 C.t +Switched to branch 'branch-no-a' +Merging: +6e45985 E +virtual Cx +found 1 common ancestor: +8d95d31 B +Merge made by the 'recursive' strategy. + C.t | 1 + + 1 file changed, 1 insertion(+) + create mode 100644 C.t +[branch-no-a f0368e4] G + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 G.t +[branch-no-a 00fc75b] H + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 H.t +Switched to branch 'branch' +ok 32 - setup --prune-empty comparisons -expecting success of 7102.24 'disambiguation (1)': - git reset --hard && - >secondfile && - git add secondfile && - git reset secondfile && - test_must_fail git diff --quiet -- secondfile && - test -z "$(git diff --cached --name-only)" && - test -f secondfile && - test_must_be_empty secondfile +expecting success of 7003.33 'Prune empty commits': + git rev-list HEAD > expect && + test_commit to_remove && + git filter-branch -f --index-filter "git update-index --remove to_remove.t" --prune-empty HEAD && + git rev-list HEAD > actual && + test_cmp expect actual -HEAD is now at 14b96fb files -Unstaged changes after reset: -M secondfile -ok 24 - disambiguation (1) +[branch 219a992] to_remove + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 to_remove.t + Rewrite 0ddfaf193ff13d6ab39b7cbd9eed645e3ee2f050 (1/14) (0 seconds passed, remaining 0 predicted) Rewrite e86e54590a6764f0c4219b3fe8b5e971cd5a0ed8 (2/14) (0 seconds passed, remaining 0 predicted) Rewrite 3d6c5360ccb48d27bbc524f53496821309a1fc79 (3/14) (1 seconds passed, remaining 3 predicted) Rewrite ef5df644a239016a9035ed6fe3e7f2b4b4a349bd (3/14) (1 seconds passed, remaining 3 predicted) Rewrite d66aa888e8e10ccecac31b04a73b006afcfb6ab2 (3/14) (1 seconds passed, remaining 3 predicted) Rewrite 0e63577b8a9dce52b69167d9c008f6a0e30de818 (3/14) (1 seconds passed, remaining 3 predicted) Rewrite 095b78eb9c1f77139224464f38f1e0aff8add3cf (7/14) (3 seconds passed, remaining 3 predicted) Rewrite 20d07e95852c2683da5bd70d3badbd5028484552 (7/14) (3 seconds passed, remaining 3 predicted) Rewrite 8a3423ee5559c5e0c32440a860f6b09a0e6020fc (7/14) (3 seconds passed, remaining 3 predicted) Rewrite bb8f80d463b54137409c5a381ad07ea6bf4b1867 (10/14) (4 seconds passed, remaining 1 predicted) Rewrite 5bae69c6543c34be1d98816e26501bcda79d1d6b (10/14) (4 seconds passed, remaining 1 predicted) Rewrite 140072ead29d56d10c1c5c473c117e3aed45a333 (10/14) (4 seconds passed, remaining 1 predicted) Rewrite ead226bc0b53c5d210f2326ae871b0fea3004df3 (13/14) (5 seconds passed, remaining 0 predicted) Rewrite 219a992bdcfa9f21a6ac93c218579aed7936acdd (13/14) (5 seconds passed, remaining 0 predicted) +Ref 'refs/heads/branch' was rewritten +ok 33 - Prune empty commits -expecting success of 7102.25 'disambiguation (2)': - git reset --hard && - >secondfile && - git add secondfile && - rm -f secondfile && - test_must_fail git reset secondfile && - test -n "$(git diff --cached --name-only -- secondfile)" && - test ! -f secondfile +expecting success of 7003.34 'prune empty collapsed merges': + test_config merge.ff false && + git rev-list HEAD >expect && + test_commit to_remove_2 && + git reset --hard HEAD^ && + test_merge non-ff to_remove_2 && + git filter-branch -f --index-filter "git update-index --remove to_remove_2.t" --prune-empty HEAD && + git rev-list HEAD >actual && + test_cmp expect actual -HEAD is now at 14b96fb files -fatal: ambiguous argument 'secondfile': unknown revision or path not in the working tree. -Use '--' to separate paths from revisions, like this: -'git [...] -- [...]' -ok 25 - disambiguation (2) +[branch cb86908] to_remove_2 + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 to_remove_2.t +HEAD is now at ead226b again not subdir +Merging: +ead226b again not subdir +virtual to_remove_2 +found 1 common ancestor: +ead226b again not subdir +Merge made by the 'recursive' strategy. + to_remove_2.t | 1 + + 1 file changed, 1 insertion(+) + create mode 100644 to_remove_2.t + Rewrite 0ddfaf193ff13d6ab39b7cbd9eed645e3ee2f050 (1/15) (0 seconds passed, remaining 0 predicted) Rewrite e86e54590a6764f0c4219b3fe8b5e971cd5a0ed8 (2/15) (0 seconds passed, remaining 0 predicted) Rewrite 3d6c5360ccb48d27bbc524f53496821309a1fc79 (3/15) (1 seconds passed, remaining 4 predicted) Rewrite ef5df644a239016a9035ed6fe3e7f2b4b4a349bd (3/15) (1 seconds passed, remaining 4 predicted) Rewrite d66aa888e8e10ccecac31b04a73b006afcfb6ab2 (3/15) (1 seconds passed, remaining 4 predicted) Rewrite 0e63577b8a9dce52b69167d9c008f6a0e30de818 (3/15) (1 seconds passed, remaining 4 predicted) Rewrite 095b78eb9c1f77139224464f38f1e0aff8add3cf (7/15) (2 seconds passed, remaining 2 predicted) Rewrite 20d07e95852c2683da5bd70d3badbd5028484552 (7/15) (2 seconds passed, remaining 2 predicted) Rewrite 8a3423ee5559c5e0c32440a860f6b09a0e6020fc (7/15) (2 seconds passed, remaining 2 predicted) Rewrite bb8f80d463b54137409c5a381ad07ea6bf4b1867 (7/15) (2 seconds passed, remaining 2 predicted) Rewrite 5bae69c6543c34be1d98816e26501bcda79d1d6b (11/15) (4 seconds passed, remaining 1 predicted) Rewrite 140072ead29d56d10c1c5c473c117e3aed45a333 (11/15) (4 seconds passed, remaining 1 predicted) Rewrite ead226bc0b53c5d210f2326ae871b0fea3004df3 (11/15) (4 seconds passed, remaining 1 predicted) Rewrite cb86908a399a1a40c4270055e48259f9034a5458 (14/15) (5 seconds passed, remaining 0 predicted) Rewrite 61efb63b91ac2be151fa30bc4f43e001cd3b8c86 (14/15) (5 seconds passed, remaining 0 predicted) +Ref 'refs/heads/branch' was rewritten +ok 34 - prune empty collapsed merges -expecting success of 7102.26 'disambiguation (3)': - git reset --hard && - >secondfile && - git add secondfile && - rm -f secondfile && - git reset HEAD secondfile && - test_must_fail git diff --quiet && - test -z "$(git diff --cached --name-only)" && - test ! -f secondfile +expecting success of 7003.35 'prune empty works even without index/tree filters': + git rev-list HEAD >expect && + git commit --allow-empty -m empty && + git filter-branch -f --prune-empty HEAD && + git rev-list HEAD >actual && + test_cmp expect actual -HEAD is now at 14b96fb files -Unstaged changes after reset: -D secondfile -ok 26 - disambiguation (3) +[branch 5b6cb84] empty + Author: A U Thor + Rewrite 0ddfaf193ff13d6ab39b7cbd9eed645e3ee2f050 (1/14) (0 seconds passed, remaining 0 predicted) Rewrite e86e54590a6764f0c4219b3fe8b5e971cd5a0ed8 (2/14) (0 seconds passed, remaining 0 predicted) Rewrite 3d6c5360ccb48d27bbc524f53496821309a1fc79 (3/14) (0 seconds passed, remaining 0 predicted) Rewrite ef5df644a239016a9035ed6fe3e7f2b4b4a349bd (4/14) (1 seconds passed, remaining 2 predicted) Rewrite d66aa888e8e10ccecac31b04a73b006afcfb6ab2 (4/14) (1 seconds passed, remaining 2 predicted) Rewrite 0e63577b8a9dce52b69167d9c008f6a0e30de818 (4/14) (1 seconds passed, remaining 2 predicted) Rewrite 095b78eb9c1f77139224464f38f1e0aff8add3cf (4/14) (1 seconds passed, remaining 2 predicted) Rewrite 20d07e95852c2683da5bd70d3badbd5028484552 (4/14) (1 seconds passed, remaining 2 predicted) Rewrite 8a3423ee5559c5e0c32440a860f6b09a0e6020fc (9/14) (2 seconds passed, remaining 1 predicted) Rewrite bb8f80d463b54137409c5a381ad07ea6bf4b1867 (9/14) (2 seconds passed, remaining 1 predicted) Rewrite 5bae69c6543c34be1d98816e26501bcda79d1d6b (9/14) (2 seconds passed, remaining 1 predicted) Rewrite 140072ead29d56d10c1c5c473c117e3aed45a333 (9/14) (2 seconds passed, remaining 1 predicted) Rewrite ead226bc0b53c5d210f2326ae871b0fea3004df3 (9/14) (2 seconds passed, remaining 1 predicted) Rewrite 5b6cb848f343668f1f75c3258a59d12c1680d67f (14/14) (4 seconds passed, remaining 0 predicted) +Ref 'refs/heads/branch' was rewritten +ok 35 - prune empty works even without index/tree filters -expecting success of 7102.27 'disambiguation (4)': - git reset --hard && - >secondfile && - git add secondfile && - rm -f secondfile && - git reset -- secondfile && - test_must_fail git diff --quiet && - test -z "$(git diff --cached --name-only)" && - test ! -f secondfile +expecting success of 7003.36 '--prune-empty is able to prune root commit': + git rev-list branch-no-a >expect && + git branch testing H && + git filter-branch -f --prune-empty --index-filter "git update-index --remove A.t" testing && + git rev-list testing >actual && + git branch -D testing && + test_cmp expect actual -HEAD is now at 14b96fb files -Unstaged changes after reset: -D secondfile -ok 27 - disambiguation (4) + Rewrite 0ddfaf193ff13d6ab39b7cbd9eed645e3ee2f050 (1/9) (0 seconds passed, remaining 0 predicted) Rewrite e86e54590a6764f0c4219b3fe8b5e971cd5a0ed8 (2/9) (0 seconds passed, remaining 0 predicted) Rewrite bd662c15882f4e7910b78fc26a3d8fe1ffa802e5 (3/9) (0 seconds passed, remaining 0 predicted) Rewrite 3abb9b554927997a06e6fafc3c62469a75ef32a3 (4/9) (1 seconds passed, remaining 1 predicted) Rewrite 48ac83b9774bbddb9c1cd6fe140d5380297aa69c (4/9) (1 seconds passed, remaining 1 predicted) Rewrite 0e63577b8a9dce52b69167d9c008f6a0e30de818 (4/9) (1 seconds passed, remaining 1 predicted) Rewrite 013e089e8403f3749848f7aafc6f271fb7179dbc (4/9) (1 seconds passed, remaining 1 predicted) Rewrite 3c39262d23e70569701d337b4d27a1e97512c2d9 (4/9) (1 seconds passed, remaining 1 predicted) Rewrite 110eac945dc1713b27bdf49e74e5805db66971f0 (9/9) (3 seconds passed, remaining 0 predicted) +Ref 'refs/heads/testing' was rewritten +Deleted branch testing (was 00fc75b). +ok 36 - --prune-empty is able to prune root commit -expecting success of 7102.28 'reset with paths accepts tree': - # for simpler tests, drop last commit containing added files - git reset --hard HEAD^ && - git reset HEAD^^{tree} -- . && - git diff --cached HEAD^ --exit-code && - git diff HEAD --exit-code +expecting success of 7003.37 '--prune-empty is able to prune entire branch': + git branch prune-entire B && + git filter-branch -f --prune-empty --index-filter "git update-index --remove A.t B.t" prune-entire && + test_path_is_missing .git/refs/heads/prune-entire && + test_must_fail git reflog exists refs/heads/prune-entire -HEAD is now at eed6733 modify 2nd file (geändert) -Unstaged changes after reset: -M secondfile -ok 28 - reset with paths accepts tree + Rewrite 0ddfaf193ff13d6ab39b7cbd9eed645e3ee2f050 (1/2) (0 seconds passed, remaining 0 predicted) Rewrite e86e54590a6764f0c4219b3fe8b5e971cd5a0ed8 (2/2) (0 seconds passed, remaining 0 predicted) +Ref 'refs/heads/prune-entire' was deleted +ok 37 - --prune-empty is able to prune entire branch -expecting success of 7102.29 'reset -N keeps removed files as intent-to-add': - echo new-file >new-file && - git add new-file && - git reset -N HEAD && +expecting success of 7003.38 '--remap-to-ancestor with filename filters': + git checkout master && + git reset --hard A && + test_commit add-foo foo 1 && + git branch moved-foo && + test_commit add-bar bar a && + git branch invariant && + orig_invariant=$(git rev-parse invariant) && + git branch moved-bar && + test_commit change-foo foo 2 && + git filter-branch -f --remap-to-ancestor \ + moved-foo moved-bar A..master \ + -- -- foo && + test $(git rev-parse moved-foo) = $(git rev-parse moved-bar) && + test $(git rev-parse moved-foo) = $(git rev-parse master^) && + test $orig_invariant = $(git rev-parse invariant) - tree=$(git write-tree) && - git ls-tree $tree new-file >actual && - test_must_be_empty actual && +Switched to branch 'master' +HEAD is now at 0ddfaf1 A +[master 7d21991] add-foo + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 foo +[master 2ff770b] add-bar + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 bar +[master b2d4813] change-foo + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) + Rewrite 7d219912875c3b539add35fdb1e3d70e5572ca7c (1/2) (0 seconds passed, remaining 0 predicted) Rewrite b2d4813d3ebe523582008cb287d933f8c14917be (2/2) (0 seconds passed, remaining 0 predicted) +WARNING: Ref 'refs/heads/moved-foo' is unchanged +Ref 'refs/heads/moved-bar' was rewritten +Ref 'refs/heads/master' was rewritten +ok 38 - --remap-to-ancestor with filename filters - git diff --name-only >actual && - echo new-file >expect && - test_cmp expect actual +expecting success of 7003.39 'automatic remapping to ancestor with filename filters': + git checkout master && + git reset --hard A && + test_commit add-foo2 foo 1 && + git branch moved-foo2 && + test_commit add-bar2 bar a && + git branch invariant2 && + orig_invariant=$(git rev-parse invariant2) && + git branch moved-bar2 && + test_commit change-foo2 foo 2 && + git filter-branch -f \ + moved-foo2 moved-bar2 A..master \ + -- -- foo && + test $(git rev-parse moved-foo2) = $(git rev-parse moved-bar2) && + test $(git rev-parse moved-foo2) = $(git rev-parse master^) && + test $orig_invariant = $(git rev-parse invariant2) -Unstaged changes after reset: -A new-file -ok 29 - reset -N keeps removed files as intent-to-add +Already on 'master' +HEAD is now at 0ddfaf1 A +[master 59b5b5a] add-foo2 + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 foo +[master 20d4afa] add-bar2 + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 bar +[master 1fe7e14] change-foo2 + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) + Rewrite 59b5b5af49738cc3e3cc6618c173c3d768334f67 (1/2) (0 seconds passed, remaining 0 predicted) Rewrite 1fe7e1483a7337eb5fecbd426d19506d3422d75d (2/2) (0 seconds passed, remaining 0 predicted) +WARNING: Ref 'refs/heads/moved-foo2' is unchanged +Ref 'refs/heads/moved-bar2' was rewritten +Ref 'refs/heads/master' was rewritten +ok 39 - automatic remapping to ancestor with filename filters -expecting success of 7102.30 'reset --mixed sets up work tree': - git init mixed_worktree && - ( - cd mixed_worktree && - test_commit dummy - ) && - git --git-dir=mixed_worktree/.git --work-tree=mixed_worktree reset >actual && - test_must_be_empty actual +expecting success of 7003.40 'setup submodule': + rm -fr ?* .git && + git init && + test_commit file && + mkdir submod && + submodurl="$PWD/submod" && + ( cd submod && + git init && + test_commit file-in-submod ) && + git submodule add "$submodurl" && + git commit -m "added submodule" && + test_commit add-file && + ( cd submod && test_commit add-in-submodule ) && + git add submod && + git commit -m "changed submodule" && + git branch original HEAD hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all @@ -341434,2237 +338145,2301 @@ hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7102-reset/mixed_worktree/.git/ -[master (root-commit) b737dfa] dummy +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7003-filter-branch/.git/ +[master (root-commit) cc5d755] file Author: A U Thor 1 file changed, 1 insertion(+) - create mode 100644 dummy.t -ok 30 - reset --mixed sets up work tree - -# passed all 30 test(s) -1..30 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t7106-reset-unborn-branch.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7106-reset-unborn-branch/.git/ -expecting success of 7106.1 'setup': - echo a >a && - echo b >b - -ok 1 - setup - -expecting success of 7106.2 'reset': - git add a b && - git reset && - - git ls-files >actual && - test_must_be_empty actual + create mode 100644 file.t +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7003-filter-branch/submod/.git/ +[master (root-commit) bd0b946] file-in-submod + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file-in-submod.t +Adding existing repo at 'submod' to the index +[master f59d861] added submodule + Author: A U Thor + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 submod +[master ffde943] add-file + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 add-file.t +[master bf0f869] add-in-submodule + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 add-in-submodule.t +[master 946c5a4] changed submodule + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +ok 40 - setup submodule -ok 2 - reset +expecting success of 7003.41 'rewrite submodule with another content': + git filter-branch --tree-filter "test -d submod && { + rm -rf submod && + git rm -rf --quiet submod && + mkdir submod && + : > submod/file + } || :" HEAD && + test $orig_head != $(git show-ref --hash --head HEAD) -expecting success of 7106.3 'reset HEAD': - rm .git/index && - git add a b && - test_must_fail git reset HEAD + Rewrite cc5d7558673710c1da61856fa53718f4fe4029c5 (1/4) (0 seconds passed, remaining 0 predicted) Rewrite f59d861fbf12a28aadb635d00c2da418463a69b3 (2/4) (1 seconds passed, remaining 1 predicted) Rewrite ffde943719e63528fe42f21dfc468b0dba0cea9b (2/4) (1 seconds passed, remaining 1 predicted) Rewrite 946c5a4bc86fdafeeba07f5d09a01763fb1b75a8 (2/4) (1 seconds passed, remaining 1 predicted) +Ref 'refs/heads/master' was rewritten +warning: unable to rmdir 'submod': Directory not empty +ok 41 - rewrite submodule with another content -fatal: ambiguous argument 'HEAD': unknown revision or path not in the working tree. -Use '--' to separate paths from revisions, like this: -'git [...] -- [...]' -ok 3 - reset HEAD +expecting success of 7003.42 'replace submodule revision': + invalid=$(test_oid numeric) && + git reset --hard original && + git filter-branch -f --tree-filter \ + "if git ls-files --error-unmatch -- submod > /dev/null 2>&1 + then git update-index --cacheinfo 160000 $invalid submod + fi" HEAD && + test $orig_head != $(git show-ref --hash --head HEAD) -expecting success of 7106.4 'reset $file': - rm .git/index && - git add a b && - git reset a && +HEAD is now at 946c5a4 changed submodule + Rewrite cc5d7558673710c1da61856fa53718f4fe4029c5 (1/4) (0 seconds passed, remaining 0 predicted) Rewrite f59d861fbf12a28aadb635d00c2da418463a69b3 (2/4) (0 seconds passed, remaining 0 predicted) Rewrite ffde943719e63528fe42f21dfc468b0dba0cea9b (3/4) (0 seconds passed, remaining 0 predicted) Rewrite 946c5a4bc86fdafeeba07f5d09a01763fb1b75a8 (4/4) (1 seconds passed, remaining 0 predicted) +Ref 'refs/heads/master' was rewritten +ok 42 - replace submodule revision - echo b >expect && - git ls-files >actual && +expecting success of 7003.43 'filter commit message without trailing newline': + git reset --hard original && + commit=$(printf "no newline" | git commit-tree HEAD^{tree}) && + git update-ref refs/heads/no-newline $commit && + git filter-branch -f refs/heads/no-newline && + echo $commit >expect && + git rev-parse refs/heads/no-newline >actual && test_cmp expect actual -ok 4 - reset $file - -expecting success of 7106.5 'reset -p': - rm .git/index && - git add a && - echo y >yes && - git reset -p output && - - git ls-files >actual && - test_must_be_empty actual && - test_i18ngrep "Unstage" output - -checking prerequisite: C_LOCALE_OUTPUT - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false - -) -prerequisite C_LOCALE_OUTPUT ok -(1/1) Unstage this hunk [y,n,q,a,d,e,?]? -ok 5 - reset -p - -expecting success of 7106.6 'reset --soft is a no-op': - rm .git/index && - git add a && - git reset --soft && - - echo a >expect && - git ls-files >actual && - test_cmp expect actual +HEAD is now at 946c5a4 changed submodule + Rewrite bfe791b40d90b1a93d08f181dbd2a25be71a740d (1/1) (0 seconds passed, remaining 0 predicted) +WARNING: Ref 'refs/heads/no-newline' is unchanged +ok 43 - filter commit message without trailing newline -ok 6 - reset --soft is a no-op +expecting success of 7003.44 'tree-filter deals with object name vs pathname ambiguity': + test_when_finished "git reset --hard original" && + ambiguous=$(git rev-list -1 HEAD) && + git filter-branch --tree-filter "mv file.t $ambiguous" HEAD^.. && + git show HEAD:$ambiguous -expecting success of 7106.7 'reset --hard': - rm .git/index && - git add a && - test_when_finished "echo a >a" && - git reset --hard && + Rewrite 946c5a4bc86fdafeeba07f5d09a01763fb1b75a8 (1/1) (0 seconds passed, remaining 0 predicted) +Ref 'refs/heads/master' was rewritten +file +HEAD is now at 946c5a4 changed submodule +ok 44 - tree-filter deals with object name vs pathname ambiguity - git ls-files >actual && - test_must_be_empty actual && - test_path_is_missing a +expecting success of 7003.45 'rewrite repository including refs that point at non-commit object': + test_when_finished "git reset --hard original" && + tree=$(git rev-parse HEAD^{tree}) && + test_when_finished "git replace -d $tree" && + echo A >new && + git add new && + new_tree=$(git write-tree) && + git replace $tree $new_tree && + git tag -a -m "tag to a tree" treetag $new_tree && + git reset --hard HEAD && + git filter-branch -f -- --all >filter-output 2>&1 && + ! fgrep fatal filter-output -ok 7 - reset --hard +HEAD is now at 946c5a4 changed submodule +Deleted replace ref 'e6c20c3e965a140954e532255b27fdc72a61c34c' +HEAD is now at 946c5a4 changed submodule +ok 45 - rewrite repository including refs that point at non-commit object -# passed all 7 test(s) -1..7 +# passed all 45 test(s) +1..45 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t7107-reset-pathspec-file.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7107-reset-pathspec-file/.git/ -expecting success of 7107.1 'setup': - echo A >fileA.t && - echo B >fileB.t && - echo C >fileC.t && - echo D >fileD.t && - git add . && - git commit --include . -m "Commit" && - git tag checkpoint +*** t7103-reset-bare.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7103-reset-bare/.git/ +expecting success of 7103.1 'setup non-bare': + echo one >file && + git add file && + git commit -m one && + echo two >file && + git commit -a -m two -[master (root-commit) 4b301d4] Commit +[master (root-commit) 1993c08] one Author: A U Thor - 4 files changed, 4 insertions(+) - create mode 100644 fileA.t - create mode 100644 fileB.t - create mode 100644 fileC.t - create mode 100644 fileD.t -ok 1 - setup - -expecting success of 7107.2 '--pathspec-from-file from stdin': - restore_checkpoint && - - git rm fileA.t && - echo fileA.t | git reset --pathspec-from-file=- && - - cat >expect <<-\EOF && - D fileA.t - EOF - verify_expect - -HEAD is now at 4b301d4 Commit -rm 'fileA.t' -Unstaged changes after reset: -D fileA.t -ok 2 - --pathspec-from-file from stdin - -expecting success of 7107.3 '--pathspec-from-file from file': - restore_checkpoint && - - git rm fileA.t && - echo fileA.t >list && - git reset --pathspec-from-file=list && - - cat >expect <<-\EOF && - D fileA.t - EOF - verify_expect - -HEAD is now at 4b301d4 Commit -rm 'fileA.t' -Unstaged changes after reset: -D fileA.t -ok 3 - --pathspec-from-file from file - -expecting success of 7107.4 'NUL delimiters': - restore_checkpoint && - - git rm fileA.t fileB.t && - printf "fileA.t\0fileB.t\0" | git reset --pathspec-from-file=- --pathspec-file-nul && - - cat >expect <<-\EOF && - D fileA.t - D fileB.t - EOF - verify_expect - -HEAD is now at 4b301d4 Commit -rm 'fileA.t' -rm 'fileB.t' -Unstaged changes after reset: -D fileA.t -D fileB.t -ok 4 - NUL delimiters - -expecting success of 7107.5 'LF delimiters': - restore_checkpoint && - - git rm fileA.t fileB.t && - printf "fileA.t\nfileB.t\n" | git reset --pathspec-from-file=- && - - cat >expect <<-\EOF && - D fileA.t - D fileB.t - EOF - verify_expect - -HEAD is now at 4b301d4 Commit -rm 'fileA.t' -rm 'fileB.t' -Unstaged changes after reset: -D fileA.t -D fileB.t -ok 5 - LF delimiters - -expecting success of 7107.6 'no trailing delimiter': - restore_checkpoint && - - git rm fileA.t fileB.t && - printf "fileA.t\nfileB.t" | git reset --pathspec-from-file=- && - - cat >expect <<-\EOF && - D fileA.t - D fileB.t - EOF - verify_expect - -HEAD is now at 4b301d4 Commit -rm 'fileA.t' -rm 'fileB.t' -Unstaged changes after reset: -D fileA.t -D fileB.t -ok 6 - no trailing delimiter - -expecting success of 7107.7 'CRLF delimiters': - restore_checkpoint && - - git rm fileA.t fileB.t && - printf "fileA.t\r\nfileB.t\r\n" | git reset --pathspec-from-file=- && - - cat >expect <<-\EOF && - D fileA.t - D fileB.t - EOF - verify_expect + 1 file changed, 1 insertion(+) + create mode 100644 file +[master 2f98c16] two + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +ok 1 - setup non-bare -HEAD is now at 4b301d4 Commit -rm 'fileA.t' -rm 'fileB.t' -Unstaged changes after reset: -D fileA.t -D fileB.t -ok 7 - CRLF delimiters +expecting success of 7103.2 '"hard" reset requires a worktree': + (cd .git && + test_must_fail git reset --hard) -expecting success of 7107.8 'quotes': - restore_checkpoint && +fatal: this operation must be run in a work tree +ok 2 - "hard" reset requires a worktree - cat >list <<-\EOF && - "file\101.t" - EOF +expecting success of 7103.3 '"merge" reset requires a worktree': + (cd .git && + test_must_fail git reset --merge) - git rm fileA.t && - git reset --pathspec-from-file=list && +fatal: this operation must be run in a work tree +ok 3 - "merge" reset requires a worktree - cat >expect <<-\EOF && - D fileA.t - EOF - verify_expect +expecting success of 7103.4 '"keep" reset requires a worktree': + (cd .git && + test_must_fail git reset --keep) -HEAD is now at 4b301d4 Commit -rm 'fileA.t' -Unstaged changes after reset: -D fileA.t -ok 8 - quotes +fatal: this operation must be run in a work tree +ok 4 - "keep" reset requires a worktree -expecting success of 7107.9 'quotes not compatible with --pathspec-file-nul': - restore_checkpoint && +expecting success of 7103.5 '"mixed" reset is ok': + (cd .git && git reset) - cat >list <<-\EOF && - "file\101.t" - EOF +ok 5 - "mixed" reset is ok - # Note: "git reset" has not yet learned to fail on wrong pathspecs - git reset --pathspec-from-file=list --pathspec-file-nul && +expecting success of 7103.6 '"soft" reset is ok': + (cd .git && git reset --soft) - cat >expect <<-\EOF && - D fileA.t - EOF - verify_expect ! +ok 6 - "soft" reset is ok -HEAD is now at 4b301d4 Commit ---- expect 2023-04-29 16:41:55.431967436 +0000 -+++ actual 2023-04-29 16:41:55.435967043 +0000 -@@ -1 +0,0 @@ -- D fileA.t -ok 9 - quotes not compatible with --pathspec-file-nul +expecting success of 7103.7 'hard reset works with GIT_WORK_TREE': + mkdir worktree && + GIT_WORK_TREE=$PWD/worktree GIT_DIR=$PWD/.git git reset --hard && + test_cmp file worktree/file -expecting success of 7107.10 'only touches what was listed': - restore_checkpoint && +HEAD is now at 2f98c16 two +ok 7 - hard reset works with GIT_WORK_TREE - git rm fileA.t fileB.t fileC.t fileD.t && - printf "fileB.t\nfileC.t\n" | git reset --pathspec-from-file=- && +expecting success of 7103.8 'setup bare': + git clone --bare . bare.git && + cd bare.git - cat >expect <<-\EOF && - D fileA.t - D fileB.t - D fileC.t - D fileD.t - EOF - verify_expect +Cloning into bare repository 'bare.git'... +done. +ok 8 - setup bare -HEAD is now at 4b301d4 Commit -rm 'fileA.t' -rm 'fileB.t' -rm 'fileC.t' -rm 'fileD.t' -Unstaged changes after reset: -D fileB.t -D fileC.t -ok 10 - only touches what was listed +expecting success of 7103.9 '"hard" reset is not allowed in bare': + test_must_fail git reset --hard HEAD^ -expecting success of 7107.11 'error conditions': - restore_checkpoint && - echo fileA.t >list && - git rm fileA.t && +fatal: this operation must be run in a work tree +ok 9 - "hard" reset is not allowed in bare - test_must_fail git reset --pathspec-from-file=list --patch 2>err && - test_i18ngrep -e "--pathspec-from-file is incompatible with --patch" err && +expecting success of 7103.10 '"merge" reset is not allowed in bare': + test_must_fail git reset --merge HEAD^ - test_must_fail git reset --pathspec-from-file=list -- fileA.t 2>err && - test_i18ngrep -e "--pathspec-from-file is incompatible with pathspec arguments" err && +fatal: this operation must be run in a work tree +ok 10 - "merge" reset is not allowed in bare - test_must_fail git reset --pathspec-file-nul 2>err && - test_i18ngrep -e "--pathspec-file-nul requires --pathspec-from-file" err && +expecting success of 7103.11 '"keep" reset is not allowed in bare': + test_must_fail git reset --keep HEAD^ - test_must_fail git reset --soft --pathspec-from-file=list 2>err && - test_i18ngrep -e "fatal: Cannot do soft reset with paths" err && +fatal: this operation must be run in a work tree +ok 11 - "keep" reset is not allowed in bare - test_must_fail git reset --hard --pathspec-from-file=list 2>err && - test_i18ngrep -e "fatal: Cannot do hard reset with paths" err +expecting success of 7103.12 '"mixed" reset is not allowed in bare': + test_must_fail git reset --mixed HEAD^ -HEAD is now at 4b301d4 Commit -rm 'fileA.t' -checking prerequisite: C_LOCALE_OUTPUT +fatal: mixed reset is not allowed in a bare repository +ok 12 - "mixed" reset is not allowed in bare -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false +expecting success of 7103.13 '"soft" reset is allowed in bare': + git reset --soft HEAD^ && + test "$(git show --pretty=format:%s | head -n 1)" = "one" -) -prerequisite C_LOCALE_OUTPUT ok -fatal: --pathspec-from-file is incompatible with --patch -fatal: --pathspec-from-file is incompatible with pathspec arguments -fatal: --pathspec-file-nul requires --pathspec-from-file -fatal: Cannot do soft reset with paths. -fatal: Cannot do hard reset with paths. -ok 11 - error conditions +ok 13 - "soft" reset is allowed in bare -# passed all 11 test(s) -1..11 +# passed all 13 test(s) +1..13 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t7105-reset-patch.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7105-reset-patch/.git/ -expecting success of 7105.1 'setup': - mkdir dir && - echo parent > dir/foo && - echo dummy > bar && - git add dir && - git commit -m initial && - test_tick && - test_commit second dir/foo head && - set_and_save_state bar bar_work bar_index && - save_head - -[master (root-commit) e9a8876] initial - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 dir/foo -[master 3877f48] second - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -ok 1 - setup - -expecting success of 7105.2 'saying "n" does nothing': - set_and_save_state dir/foo work work && - test_write_lines n n | git reset -p && - verify_saved_state dir/foo && - verify_saved_state bar - -diff --git a/bar b/bar -new file mode 100644 -index 0000000..7780244 ---- /dev/null -+++ b/bar -@@ -0,0 +1 @@ -+bar_index -(1/1) Unstage this hunk [y,n,q,a,d,e,?]? -diff --git a/dir/foo b/dir/foo -index 564b12f..b8f99f5 100644 ---- a/dir/foo -+++ b/dir/foo -@@ -1 +1 @@ --head -+work -(1/1) Unstage this hunk [y,n,q,a,d,e,?]? -ok 2 - saying "n" does nothing - -expecting success of 7105.3 'git reset -p': - test_write_lines n y | git reset -p >output && - verify_state dir/foo work head && - verify_saved_state bar && - test_i18ngrep "Unstage" output - -checking prerequisite: C_LOCALE_OUTPUT - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false - -) -prerequisite C_LOCALE_OUTPUT ok -(1/1) Unstage this hunk [y,n,q,a,d,e,?]? -(1/1) Unstage this hunk [y,n,q,a,d,e,?]? -ok 3 - git reset -p - -expecting success of 7105.4 'git reset -p HEAD^': - test_write_lines n y | git reset -p HEAD^ >output && - verify_state dir/foo work parent && - verify_saved_state bar && - test_i18ngrep "Apply" output - -(1/1) Apply deletion to index [y,n,q,a,d,?]? -(1/1) Apply this hunk to index [y,n,q,a,d,e,?]? -ok 4 - git reset -p HEAD^ - -expecting success of 7105.5 'git reset -p HEAD^^{tree}': - test_write_lines n y | git reset -p HEAD^^{tree} >output && - verify_state dir/foo work parent && - verify_saved_state bar && - test_i18ngrep "Apply" output +*** t7104-reset-hard.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7104-reset-hard/.git/ +expecting success of 7104.1 'setup': -(1/1) Apply deletion to index [y,n,q,a,d,?]? -ok 5 - git reset -p HEAD^^{tree} + mkdir before later && + >before/1 && + >before/2 && + >hello && + >later/3 && + git add before hello later && + git commit -m world && -expecting success of 7105.6 'git reset -p HEAD^:dir/foo (blob fails)': - set_and_save_state dir/foo work work && - test_must_fail git reset -p HEAD^:dir/foo && - verify_saved_state dir/foo && - verify_saved_state bar + H=$(git rev-parse :hello) && + git rm --cached hello && + echo "100644 $H 2 hello" | git update-index --index-info && -fatal: Could not parse object 'HEAD^:dir/foo'. -ok 6 - git reset -p HEAD^:dir/foo (blob fails) + rm -f hello && + mkdir -p hello && + >hello/world && + test "$(git ls-files -o)" = hello/world -expecting success of 7105.7 'git reset -p aaaaaaaa (unknown fails)': - set_and_save_state dir/foo work work && - test_must_fail git reset -p aaaaaaaa && - verify_saved_state dir/foo && - verify_saved_state bar -fatal: ambiguous argument 'aaaaaaaa': unknown revision or path not in the working tree. -Use '--' to separate paths from revisions, like this: -'git [...] -- [...]' -ok 7 - git reset -p aaaaaaaa (unknown fails) +[master (root-commit) 53313cc] world + Author: A U Thor + 4 files changed, 0 insertions(+), 0 deletions(-) + create mode 100644 before/1 + create mode 100644 before/2 + create mode 100644 hello + create mode 100644 later/3 +rm 'hello' +ok 1 - setup -expecting success of 7105.8 'git reset -p dir': - set_state dir/foo work work && - test_write_lines y n | git reset -p dir && - verify_state dir/foo work head && - verify_saved_state bar +expecting success of 7104.2 'reset --hard should restore unmerged ones': -diff --git a/dir/foo b/dir/foo -index 564b12f..b8f99f5 100644 ---- a/dir/foo -+++ b/dir/foo -@@ -1 +1 @@ --head -+work -(1/1) Unstage this hunk [y,n,q,a,d,e,?]? -ok 8 - git reset -p dir + git reset --hard && + git ls-files --error-unmatch before/1 before/2 hello later/3 && + test -f hello -expecting success of 7105.9 'git reset -p -- foo (inside dir)': - set_state dir/foo work work && - test_write_lines y n | (cd dir && git reset -p -- foo) && - verify_state dir/foo work head && - verify_saved_state bar -diff --git a/dir/foo b/dir/foo -index 564b12f..b8f99f5 100644 ---- a/dir/foo -+++ b/dir/foo -@@ -1 +1 @@ --head -+work -(1/1) Unstage this hunk [y,n,q,a,d,e,?]? -ok 9 - git reset -p -- foo (inside dir) +HEAD is now at 53313cc world +before/1 +before/2 +hello +later/3 +ok 2 - reset --hard should restore unmerged ones -expecting success of 7105.10 'git reset -p HEAD^ -- dir': - test_write_lines y n | git reset -p HEAD^ -- dir && - verify_state dir/foo work parent && - verify_saved_state bar +expecting success of 7104.3 'reset --hard did not corrupt index or cached-tree': -diff --git b/dir/foo a/dir/foo -index 564b12f..9676f5b 100644 ---- b/dir/foo -+++ a/dir/foo -@@ -1 +1 @@ --head -+parent -(1/1) Apply this hunk to index [y,n,q,a,d,e,?]? -ok 10 - git reset -p HEAD^ -- dir + T=$(git write-tree) && + rm -f .git/index && + git add before hello later && + U=$(git write-tree) && + test "$T" = "$U" -expecting success of 7105.11 'none of this moved HEAD': - verify_saved_head -ok 11 - none of this moved HEAD +ok 3 - reset --hard did not corrupt index or cached-tree -# passed all 11 test(s) -1..11 +# passed all 3 test(s) +1..3 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t7110-reset-merge.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7110-reset-merge/.git/ -expecting success of 7110.1 'setup': - for i in 1 2 3; do echo line $i; done >file1 && - cat file1 >file2 && - git add file1 file2 && - test_tick && - git commit -m "Initial commit" && - git tag initial && - echo line 4 >>file1 && - cat file1 >file2 && - test_tick && - git commit -m "add line 4 to file1" file1 && - git tag second - -[master (root-commit) 294b13e] Initial commit +*** t6438-submodule-directory-file-conflicts.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/.git/ +expecting success of 6438.1 'git_test_func: added submodule creates empty directory': + prolog && + reset_work_tree_to no_submodule && + ( + cd submodule_update && + git branch -t add_sub1 origin/add_sub1 && + $command add_sub1 && + test_superproject_content origin/add_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/add_sub1 + ) + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1/.git/ +[master (root-commit) 63c4304] Base inside first submodule Author: A U Thor - 2 files changed, 6 insertions(+) + 3 files changed, 4 insertions(+) + create mode 100644 .gitignore create mode 100644 file1 create mode 100644 file2 -[master 91b6f65] add line 4 to file1 +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub2/.git/ +[master (root-commit) 27c5769] nested submodule base Author: A U Thor - 1 file changed, 1 insertion(+) -ok 1 - setup - -expecting success of 7110.2 'reset --merge is ok with changes in file it does not touch': - git reset --merge HEAD^ && - ! grep 4 file1 && - grep 4 file2 && - test "$(git rev-parse HEAD)" = "$(git rev-parse initial)" && - test -z "$(git diff --cached)" - -line 4 -ok 2 - reset --merge is ok with changes in file it does not touch - -expecting success of 7110.3 'reset --merge is ok when switching back': - git reset --merge second && - grep 4 file1 && - grep 4 file2 && - test "$(git rev-parse HEAD)" = "$(git rev-parse second)" && - test -z "$(git diff --cached)" - -line 4 -line 4 -ok 3 - reset --merge is ok when switching back - -expecting success of 7110.4 'reset --keep is ok with changes in file it does not touch': - git reset --hard second && - cat file1 >file2 && - git reset --keep HEAD^ && - ! grep 4 file1 && - grep 4 file2 && - test "$(git rev-parse HEAD)" = "$(git rev-parse initial)" && - test -z "$(git diff --cached)" - -HEAD is now at 91b6f65 add line 4 to file1 -line 4 -ok 4 - reset --keep is ok with changes in file it does not touch - -expecting success of 7110.5 'reset --keep is ok when switching back': - git reset --keep second && - grep 4 file1 && - grep 4 file2 && - test "$(git rev-parse HEAD)" = "$(git rev-parse second)" && - test -z "$(git diff --cached)" - -line 4 -line 4 -ok 5 - reset --keep is ok when switching back - -expecting success of 7110.6 'reset --merge discards changes added to index (1)': - git reset --hard second && - cat file1 >file2 && - echo "line 5" >> file1 && - git add file1 && - git reset --merge HEAD^ && - ! grep 4 file1 && - ! grep 5 file1 && - grep 4 file2 && - test "$(git rev-parse HEAD)" = "$(git rev-parse initial)" && - test -z "$(git diff --cached)" - -HEAD is now at 91b6f65 add line 4 to file1 -line 4 -ok 6 - reset --merge discards changes added to index (1) - -expecting success of 7110.7 'reset --merge is ok again when switching back (1)': - git reset --hard initial && - echo "line 5" >> file2 && - git add file2 && - git reset --merge second && - ! grep 4 file2 && - ! grep 5 file1 && - grep 4 file1 && - test "$(git rev-parse HEAD)" = "$(git rev-parse second)" && - test -z "$(git diff --cached)" - -HEAD is now at 294b13e Initial commit -line 4 -ok 7 - reset --merge is ok again when switching back (1) - -expecting success of 7110.8 'reset --keep fails with changes in index in files it touches': - git reset --hard second && - echo "line 5" >> file1 && - git add file1 && - test_must_fail git reset --keep HEAD^ - -HEAD is now at 91b6f65 add line 4 to file1 -error: Entry 'file1' would be overwritten by merge. Cannot merge. -fatal: Could not reset index file to revision 'HEAD^'. -ok 8 - reset --keep fails with changes in index in files it touches - -expecting success of 7110.9 'reset --merge discards changes added to index (2)': - git reset --hard second && - echo "line 4" >> file2 && - git add file2 && - git reset --merge HEAD^ && - ! grep 4 file2 && - test "$(git rev-parse HEAD)" = "$(git rev-parse initial)" && - test -z "$(git diff)" && - test -z "$(git diff --cached)" - -HEAD is now at 91b6f65 add line 4 to file1 -ok 9 - reset --merge discards changes added to index (2) - -expecting success of 7110.10 'reset --merge is ok again when switching back (2)': - git reset --hard initial && - git reset --merge second && - ! grep 4 file2 && - grep 4 file1 && - test "$(git rev-parse HEAD)" = "$(git rev-parse second)" && - test -z "$(git diff --cached)" - -HEAD is now at 294b13e Initial commit -line 4 -ok 10 - reset --merge is ok again when switching back (2) - -expecting success of 7110.11 'reset --keep keeps changes it does not touch': - git reset --hard second && - echo "line 4" >> file2 && - git add file2 && - git reset --keep HEAD^ && - grep 4 file2 && - test "$(git rev-parse HEAD)" = "$(git rev-parse initial)" && - test -z "$(git diff --cached)" - -HEAD is now at 91b6f65 add line 4 to file1 -line 4 -ok 11 - reset --keep keeps changes it does not touch - -expecting success of 7110.12 'reset --keep keeps changes when switching back': - git reset --keep second && - grep 4 file2 && - grep 4 file1 && - test "$(git rev-parse HEAD)" = "$(git rev-parse second)" && - test -z "$(git diff --cached)" - -line 4 -line 4 -ok 12 - reset --keep keeps changes when switching back - -expecting success of 7110.13 'reset --merge fails with changes in file it touches': - git reset --hard second && - echo "line 5" >> file1 && - test_tick && - git commit -m "add line 5" file1 && - sed -e "s/line 1/changed line 1/" file3 && - mv file3 file1 && - test_must_fail git reset --merge HEAD^ 2>err.log && - grep file1 err.log | grep "not uptodate" - -HEAD is now at 91b6f65 add line 4 to file1 -[master 7799e7c] add line 5 + 3 files changed, 4 insertions(+) + create mode 100644 .gitignore + create mode 100644 file1 + create mode 100644 file2 +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_repo/.git/ +[master (root-commit) 27611a5] Base Author: A U Thor - 1 file changed, 1 insertion(+) -error: Entry 'file1' not uptodate. Cannot merge. -ok 13 - reset --merge fails with changes in file it touches - -expecting success of 7110.14 'reset --keep fails with changes in file it touches': - git reset --hard second && - echo "line 5" >> file1 && - test_tick && - git commit -m "add line 5" file1 && - sed -e "s/line 1/changed line 1/" file3 && - mv file3 file1 && - test_must_fail git reset --keep HEAD^ 2>err.log && - grep file1 err.log | grep "not uptodate" - -HEAD is now at 91b6f65 add line 4 to file1 -[master f1894d3] add line 5 + 3 files changed, 4 insertions(+) + create mode 100644 .gitignore + create mode 100644 file1 + create mode 100644 file2 +Switched to a new branch 'add_sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_repo/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_repo/uninitialized_sub'... +done. +[add_sub1 09bcf53] Add sub1 Author: A U Thor - 1 file changed, 1 insertion(+) -error: Entry 'file1' not uptodate. Cannot merge. -ok 14 - reset --keep fails with changes in file it touches - -expecting success of 7110.15 'setup 3 different branches': - git reset --hard second && - git branch branch1 && - git branch branch2 && - git branch branch3 && - git checkout branch1 && - echo "line 5 in branch1" >> file1 && - test_tick && - git commit -a -m "change in branch1" && - git checkout branch2 && - echo "line 5 in branch2" >> file1 && - test_tick && - git commit -a -m "change in branch2" && - git tag third && - git checkout branch3 && - echo a new file >file3 && - rm -f file1 && - git add file3 && - test_tick && - git commit -a -m "change in branch3" - -HEAD is now at 91b6f65 add line 4 to file1 -Switched to branch 'branch1' -[branch1 4afd189] change in branch1 + 2 files changed, 8 insertions(+) + create mode 100644 .gitmodules + create mode 160000 uninitialized_sub +Switched to a new branch 'remove_sub1' +Removing uninitialized_sub +Removing sub1 +Removing .gitmodules +[remove_sub1 d6ba723] Revert "Add sub1" Author: A U Thor - 1 file changed, 1 insertion(+) -Switched to branch 'branch2' -[branch2 077fd6d] change in branch2 + Date: Fri Apr 1 13:14:15 2005 +0200 + 3 files changed, 9 deletions(-) + delete mode 100644 .gitmodules + delete mode 160000 sub1 + delete mode 160000 uninitialized_sub +Switched to a new branch 'modify_sub1' +Switched to a new branch 'modifications' +[modifications 03da4ea] modified file2 and added file3 Author: A U Thor - 1 file changed, 1 insertion(+) -Switched to branch 'branch3' -[branch3 05419f2] change in branch3 + 2 files changed, 2 insertions(+), 1 deletion(-) + create mode 100644 file3 +To /build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1 + * [new branch] modifications -> modifications +[modify_sub1 cb2bda7] Modify sub1 Author: A U Thor - 2 files changed, 1 insertion(+), 4 deletions(-) - delete mode 100644 file1 +Switched to a new branch 'add_nested_sub' +Switched to a new branch 'add_nested_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_repo/sub1/sub2'... +done. +[add_nested_sub 8b3b335] add a nested submodule + Author: A U Thor + 2 files changed, 5 insertions(+) + create mode 100644 .gitmodules + create mode 160000 sub2 +[add_nested_sub 5bc57bf] update submodule, that updates a nested submodule + Author: A U Thor +Switched to a new branch 'modify_sub1_recursively' +Switched to a new branch 'modify_sub1_recursively' +Switched to a new branch 'modify_sub1_recursively' +[modify_sub1_recursively c7c4624] make a change in nested sub + Author: A U Thor + 1 file changed, 1 insertion(+) create mode 100644 file3 -ok 15 - setup 3 different branches - -expecting success of 7110.16 '"reset --merge HEAD^" is ok with pending merge': - git checkout third && - test_must_fail git merge branch1 && - git reset --merge HEAD^ && - test "$(git rev-parse HEAD)" = "$(git rev-parse second)" && - test -z "$(git diff --cached)" && - test -z "$(git diff)" - -Note: switching to 'third'. - -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. - -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: - - git switch -c - -Or undo this operation with: - - git switch - - -Turn off this advice by setting config variable advice.detachedHead to false - -HEAD is now at 077fd6d change in branch2 -Merging: -077fd6d change in branch2 -virtual branch1 -found 1 common ancestor: -91b6f65 add line 4 to file1 -Auto-merging file1 -CONFLICT (content): Merge conflict in file1 -Automatic merge failed; fix conflicts and then commit the result. -ok 16 - "reset --merge HEAD^" is ok with pending merge - -expecting success of 7110.17 '"reset --keep HEAD^" fails with pending merge': - git reset --hard third && - test_must_fail git merge branch1 && - test_must_fail git reset --keep HEAD^ 2>err.log && - test_i18ngrep "middle of a merge" err.log +[modify_sub1_recursively 92fc14a] update nested sub + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +[modify_sub1_recursively 953e869] update sub1, that updates nested sub + Author: A U Thor +To /build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1 + * [new branch] modify_sub1_recursively -> modify_sub1_recursively +To /build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub2 + * [new branch] modify_sub1_recursively -> modify_sub1_recursively +Cleared directory 'sub2' +Submodule 'sub2' (../submodule_update_sub2) unregistered for path 'sub2' +Switched to a new branch 'replace_sub1_with_directory' +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Previous HEAD position was 63c4304 Base inside first submodule +Switched to branch 'modifications' +rm 'sub1' +[replace_sub1_with_directory cb28587] Replace sub1 with directory + Author: A U Thor + 5 files changed, 3 insertions(+), 5 deletions(-) + delete mode 160000 sub1 + create mode 100644 sub1/file1 + create mode 100644 sub1/file2 + create mode 100644 sub1/file3 +Switched to a new branch 'replace_directory_with_sub1' +Removing sub1/file3 +Removing sub1/file2 +Removing sub1/file1 +Adding sub1 +[replace_directory_with_sub1 a2e65d5] Revert "Replace sub1 with directory" + Author: A U Thor + Date: Fri Apr 1 13:14:15 2005 +0200 + 4 files changed, 4 insertions(+), 3 deletions(-) + delete mode 100644 sub1/file1 + delete mode 100644 sub1/file2 + delete mode 100644 sub1/file3 +Switched to a new branch 'replace_sub1_with_file' +rm 'sub1' +[replace_sub1_with_file 2364f5a] Replace sub1 with file + Author: A U Thor + 2 files changed, 1 insertion(+), 5 deletions(-) + mode change 160000 => 100644 sub1 +Switched to a new branch 'replace_file_with_sub1' +[replace_file_with_sub1 8b6fdfc] Revert "Replace sub1 with file" + Author: A U Thor + Date: Fri Apr 1 13:14:15 2005 +0200 + 2 files changed, 5 insertions(+), 1 deletion(-) + mode change 100644 => 160000 sub1 +Switched to a new branch 'invalid_sub1' +[invalid_sub1 e6169bf] Invalid sub1 commit + Author: A U Thor +Switched to a new branch 'valid_sub1' +[valid_sub1 3036e4e] Revert "Invalid sub1 commit" + Author: A U Thor + Date: Fri Apr 1 13:14:15 2005 +0200 +warning: unable to rmdir 'uninitialized_sub': Directory not empty +Switched to branch 'master' +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Updating 27611a5..09bcf53 +Fast-forward + .gitmodules | 7 +++++++ + 1 file changed, 7 insertions(+) + create mode 100644 .gitmodules +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +ok 1 - git_test_func: added submodule creates empty directory -HEAD is now at 077fd6d change in branch2 -Merging: -077fd6d change in branch2 -virtual branch1 -found 1 common ancestor: -91b6f65 add line 4 to file1 -Auto-merging file1 -CONFLICT (content): Merge conflict in file1 -Automatic merge failed; fix conflicts and then commit the result. -checking prerequisite: C_LOCALE_OUTPUT +expecting success of 6438.2 'git_test_func: added submodule leaves existing empty directory alone': + prolog && + reset_work_tree_to no_submodule && + ( + cd submodule_update && + mkdir sub1 && + git branch -t add_sub1 origin/add_sub1 && + $command add_sub1 && + test_superproject_content origin/add_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Updating 27611a5..09bcf53 +Fast-forward + .gitmodules | 7 +++++++ + 1 file changed, 7 insertions(+) + create mode 100644 .gitmodules +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +ok 2 - git_test_func: added submodule leaves existing empty directory alone -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false +expecting success of 6438.3 'git_test_func: replace tracked file with submodule creates empty directory': + prolog && + reset_work_tree_to replace_sub1_with_file && + ( + cd submodule_update && + git branch -t replace_file_with_sub1 origin/replace_file_with_sub1 && + $command replace_file_with_sub1 && + test_superproject_content origin/replace_file_with_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/replace_file_with_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'replace_sub1_with_file' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +fatal: Needed a single revision +Branch 'replace_file_with_sub1' set up to track remote branch 'replace_file_with_sub1' from 'origin'. +Updating 2364f5a..8b6fdfc +Fast-forward + .gitmodules | 4 ++++ + sub1 | 2 +- + 2 files changed, 5 insertions(+), 1 deletion(-) + mode change 100644 => 160000 sub1 +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +ok 3 - git_test_func: replace tracked file with submodule creates empty directory -) -prerequisite C_LOCALE_OUTPUT ok -fatal: Cannot do a keep reset in the middle of a merge. -ok 17 - "reset --keep HEAD^" fails with pending merge +expecting success of 6438.4 'git_test_func: replace directory with submodule': + prolog && + reset_work_tree_to replace_sub1_with_directory && + ( + cd submodule_update && + git branch -t replace_directory_with_sub1 origin/replace_directory_with_sub1 && + $command replace_directory_with_sub1 && + test_superproject_content origin/replace_directory_with_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/replace_directory_with_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'replace_sub1_with_directory' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +fatal: Needed a single revision +Branch 'replace_directory_with_sub1' set up to track remote branch 'replace_directory_with_sub1' from 'origin'. +Updating cb28587..a2e65d5 +Fast-forward + .gitmodules | 4 ++++ + sub1/file1 | 1 - + sub1/file2 | 1 - + sub1/file3 | 1 - + 4 files changed, 4 insertions(+), 3 deletions(-) + delete mode 100644 sub1/file1 + delete mode 100644 sub1/file2 + delete mode 100644 sub1/file3 +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +ok 4 - git_test_func: replace directory with submodule -expecting success of 7110.18 '"reset --merge HEAD" is ok with pending merge': - git reset --hard third && - test_must_fail git merge branch1 && - git reset --merge HEAD && - test "$(git rev-parse HEAD)" = "$(git rev-parse third)" && - test -z "$(git diff --cached)" && - test -z "$(git diff)" +expecting success of 6438.5 'git_test_func: removed submodule leaves submodule directory and its contents in place': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t remove_sub1 origin/remove_sub1 && + $command remove_sub1 && + test_superproject_content origin/remove_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. +warning: unable to rmdir 'sub1': Directory not empty +Updating 09bcf53..d6ba723 +Fast-forward + .gitmodules | 7 ------- + 1 file changed, 7 deletions(-) + delete mode 100644 .gitmodules +ok 5 - git_test_func: removed submodule leaves submodule directory and its contents in place -HEAD is now at 077fd6d change in branch2 -Merging: -077fd6d change in branch2 -virtual branch1 -found 1 common ancestor: -91b6f65 add line 4 to file1 -Auto-merging file1 -CONFLICT (content): Merge conflict in file1 -Automatic merge failed; fix conflicts and then commit the result. -ok 18 - "reset --merge HEAD" is ok with pending merge +expecting success of 6438.6 'git_test_func: removed submodule leaves submodule containing a .git directory alone': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t remove_sub1 origin/remove_sub1 && + replace_gitfile_with_git_dir sub1 && + $command remove_sub1 && + test_superproject_content origin/remove_sub1 && + test_git_directory_is_unchanged sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. +warning: unable to rmdir 'sub1': Directory not empty +Updating 09bcf53..d6ba723 +Fast-forward + .gitmodules | 7 ------- + 1 file changed, 7 deletions(-) + delete mode 100644 .gitmodules +ok 6 - git_test_func: removed submodule leaves submodule containing a .git directory alone -expecting success of 7110.19 '"reset --keep HEAD" fails with pending merge': - git reset --hard third && - test_must_fail git merge branch1 && - test_must_fail git reset --keep HEAD 2>err.log && - test_i18ngrep "middle of a merge" err.log +expecting success of 6438.7 'git_test_func: replace submodule with a directory must fail': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && + $command replace_sub1_with_directory test_must_fail && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +error: The following untracked working tree files would be overwritten by merge: + sub1/file1 + sub1/file2 +Please move or remove them before you merge. +Aborting +Updating 09bcf53..cb28587 +ok 7 - git_test_func: replace submodule with a directory must fail -HEAD is now at 077fd6d change in branch2 -Merging: -077fd6d change in branch2 -virtual branch1 -found 1 common ancestor: -91b6f65 add line 4 to file1 -Auto-merging file1 -CONFLICT (content): Merge conflict in file1 -Automatic merge failed; fix conflicts and then commit the result. -fatal: Cannot do a keep reset in the middle of a merge. -ok 19 - "reset --keep HEAD" fails with pending merge +expecting success of 6438.8 'git_test_func: replace submodule containing a .git directory with a directory must fail': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && + replace_gitfile_with_git_dir sub1 && + $command replace_sub1_with_directory test_must_fail && + test_superproject_content origin/add_sub1 && + test_git_directory_is_unchanged sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +error: The following untracked working tree files would be overwritten by merge: + sub1/file1 + sub1/file2 +Please move or remove them before you merge. +Aborting +Updating 09bcf53..cb28587 +ok 8 - git_test_func: replace submodule containing a .git directory with a directory must fail -expecting success of 7110.20 '--merge is ok with added/deleted merge': - git reset --hard third && - rm -f file2 && - test_must_fail git merge branch3 && - ! test -f file2 && - test -f file3 && - git diff --exit-code file3 && - git diff --exit-code branch3 file3 && - git reset --merge HEAD && - ! test -f file3 && - ! test -f file2 && - git diff --exit-code --cached +checking known breakage of 6438.9 'git_test_func: replace submodule with a file must fail': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_file origin/replace_sub1_with_file && + $command replace_sub1_with_file test_must_fail && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +Updating 09bcf53..2364f5a +Fast-forward + .gitmodules | 4 ---- + sub1 | 2 +- + 2 files changed, 1 insertion(+), 5 deletions(-) + mode change 160000 => 100644 sub1 +test_must_fail: command succeeded: git merge replace_sub1_with_file +not ok 9 - git_test_func: replace submodule with a file must fail # TODO known breakage -HEAD is now at 077fd6d change in branch2 -Merging: -077fd6d change in branch2 -virtual branch3 -found 1 common ancestor: -91b6f65 add line 4 to file1 -CONFLICT (modify/delete): file1 deleted in branch3 and modified in HEAD. Version HEAD of file1 left in tree. -Automatic merge failed; fix conflicts and then commit the result. -ok 20 - --merge is ok with added/deleted merge +checking known breakage of 6438.10 'git_test_func: replace submodule containing a .git directory with a file must fail': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_file origin/replace_sub1_with_file && + replace_gitfile_with_git_dir sub1 && + $command replace_sub1_with_file test_must_fail && + test_superproject_content origin/add_sub1 && + test_git_directory_is_unchanged sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +Updating 09bcf53..2364f5a +Fast-forward + .gitmodules | 4 ---- + sub1 | 2 +- + 2 files changed, 1 insertion(+), 5 deletions(-) + mode change 160000 => 100644 sub1 +test_must_fail: command succeeded: git merge replace_sub1_with_file +not ok 10 - git_test_func: replace submodule containing a .git directory with a file must fail # TODO known breakage -expecting success of 7110.21 '--keep fails with added/deleted merge': - git reset --hard third && - rm -f file2 && - test_must_fail git merge branch3 && - ! test -f file2 && - test -f file3 && - git diff --exit-code file3 && - git diff --exit-code branch3 file3 && - test_must_fail git reset --keep HEAD 2>err.log && - test_i18ngrep "middle of a merge" err.log +expecting success of 6438.11 'git_test_func: modified submodule does not update submodule work tree': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t modify_sub1 origin/modify_sub1 && + $command modify_sub1 && + test_superproject_content origin/modify_sub1 && + test_submodule_content sub1 origin/add_sub1 && + git submodule update && + test_submodule_content sub1 origin/modify_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. +Updating 09bcf53..cb2bda7 +Fast-forward +Submodule path 'sub1': checked out '03da4ea88bb165bd26ee0b2e5c657f2858b23f53' +ok 11 - git_test_func: modified submodule does not update submodule work tree -HEAD is now at 077fd6d change in branch2 -Merging: -077fd6d change in branch2 -virtual branch3 -found 1 common ancestor: -91b6f65 add line 4 to file1 -CONFLICT (modify/delete): file1 deleted in branch3 and modified in HEAD. Version HEAD of file1 left in tree. -Automatic merge failed; fix conflicts and then commit the result. -fatal: Cannot do a keep reset in the middle of a merge. -ok 21 - --keep fails with added/deleted merge +expecting success of 6438.12 'git_test_func: modified submodule does not update submodule work tree to invalid commit': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t invalid_sub1 origin/invalid_sub1 && + $command invalid_sub1 && + test_superproject_content origin/invalid_sub1 && + test_submodule_content sub1 origin/add_sub1 && + test_must_fail git submodule update && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. +Updating 09bcf53..e6169bf +Fast-forward +fatal: git upload-pack: not our ref 0123456789012345678901234567890123456789 +fatal: remote error: upload-pack: not our ref 0123456789012345678901234567890123456789 +Fetched in submodule path 'sub1', but it did not contain 0123456789012345678901234567890123456789. Direct fetching of that commit failed. +ok 12 - git_test_func: modified submodule does not update submodule work tree to invalid commit -# passed all 21 test(s) -1..21 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t7111-reset-table.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7111-reset-table/.git/ -expecting success of 7111.1 'creating initial commits': - test_commit E file1 && - test_commit D file1 && - test_commit C file1 +expecting success of 6438.13 'git_test_func: modified submodule does not update submodule work tree from invalid commit': + prolog && + reset_work_tree_to invalid_sub1 && + ( + cd submodule_update && + git branch -t valid_sub1 origin/valid_sub1 && + $command valid_sub1 && + test_superproject_content origin/valid_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/valid_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'invalid_sub1' +Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. +fatal: Needed a single revision +Branch 'valid_sub1' set up to track remote branch 'valid_sub1' from 'origin'. +Updating e6169bf..3036e4e +Fast-forward +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +ok 13 - git_test_func: modified submodule does not update submodule work tree from invalid commit -[master (root-commit) 8464dc0] E - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file1 -[master 2131783] D - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -[master 4bb0b07] C - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -ok 1 - creating initial commits +expecting success of 6438.14 'git_test_func: added submodule doesn't remove untracked unignored file with same name': + prolog && + reset_work_tree_to no_submodule && + ( + cd submodule_update && + git branch -t add_sub1 origin/add_sub1 && + >sub1 && + $command add_sub1 test_must_fail && + test_superproject_content origin/no_submodule && + test_must_be_empty sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +error: The following untracked working tree files would be overwritten by merge: + sub1 +Please move or remove them before you merge. +Aborting +Updating 27611a5..09bcf53 +ok 14 - git_test_func: added submodule doesn't remove untracked unignored file with same name -expecting success of 7111.2 'check: A B C D --soft A B D': - git reset --hard C && - if test "$I1" != "$H1" - then - echo "$I1" >file1 && - git add file1 - fi && - if test "$W1" != "$I1" - then - echo "$W1" >file1 - fi && - if test "$W2" != "XXXXX" - then - git reset --$opt $T && - test "$(cat file1)" = "$W2" && - git checkout-index -f -- file1 && - test "$(cat file1)" = "$I2" && - git checkout -f HEAD -- file1 && - test "$(cat file1)" = "$H2" - else - test_must_fail git reset --$opt $T - fi - -HEAD is now at 4bb0b07 C -ok 2 - check: A B C D --soft A B D +expecting success of 6438.15 'git_test_func: added submodule creates empty directory': + prolog && + reset_work_tree_to no_submodule && + ( + cd submodule_update && + git branch -t add_sub1 origin/add_sub1 && + $command add_sub1 && + test_superproject_content origin/add_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Updating 27611a5..09bcf53 +Fast-forward + .gitmodules | 7 +++++++ + 1 file changed, 7 insertions(+) + create mode 100644 .gitmodules +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +ok 15 - git_test_func: added submodule creates empty directory -expecting success of 7111.3 'check: A B C D --mixed A D D': - git reset --hard C && - if test "$I1" != "$H1" - then - echo "$I1" >file1 && - git add file1 - fi && - if test "$W1" != "$I1" - then - echo "$W1" >file1 - fi && - if test "$W2" != "XXXXX" - then - git reset --$opt $T && - test "$(cat file1)" = "$W2" && - git checkout-index -f -- file1 && - test "$(cat file1)" = "$I2" && - git checkout -f HEAD -- file1 && - test "$(cat file1)" = "$H2" - else - test_must_fail git reset --$opt $T - fi - -HEAD is now at 4bb0b07 C -Unstaged changes after reset: -M file1 -ok 3 - check: A B C D --mixed A D D +expecting success of 6438.16 'git_test_func: added submodule leaves existing empty directory alone': + prolog && + reset_work_tree_to no_submodule && + ( + cd submodule_update && + mkdir sub1 && + git branch -t add_sub1 origin/add_sub1 && + $command add_sub1 && + test_superproject_content origin/add_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Updating 27611a5..09bcf53 +Fast-forward + .gitmodules | 7 +++++++ + 1 file changed, 7 insertions(+) + create mode 100644 .gitmodules +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +ok 16 - git_test_func: added submodule leaves existing empty directory alone -expecting success of 7111.4 'check: A B C D --hard D D D': - git reset --hard C && - if test "$I1" != "$H1" - then - echo "$I1" >file1 && - git add file1 - fi && - if test "$W1" != "$I1" - then - echo "$W1" >file1 - fi && - if test "$W2" != "XXXXX" - then - git reset --$opt $T && - test "$(cat file1)" = "$W2" && - git checkout-index -f -- file1 && - test "$(cat file1)" = "$I2" && - git checkout -f HEAD -- file1 && - test "$(cat file1)" = "$H2" - else - test_must_fail git reset --$opt $T - fi - -HEAD is now at 4bb0b07 C -HEAD is now at 2131783 D -ok 4 - check: A B C D --hard D D D +expecting success of 6438.17 'git_test_func: replace tracked file with submodule creates empty directory': + prolog && + reset_work_tree_to replace_sub1_with_file && + ( + cd submodule_update && + git branch -t replace_file_with_sub1 origin/replace_file_with_sub1 && + $command replace_file_with_sub1 && + test_superproject_content origin/replace_file_with_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/replace_file_with_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'replace_sub1_with_file' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +fatal: Needed a single revision +Branch 'replace_file_with_sub1' set up to track remote branch 'replace_file_with_sub1' from 'origin'. +Updating 2364f5a..8b6fdfc +Fast-forward + .gitmodules | 4 ++++ + sub1 | 2 +- + 2 files changed, 5 insertions(+), 1 deletion(-) + mode change 100644 => 160000 sub1 +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +ok 17 - git_test_func: replace tracked file with submodule creates empty directory -expecting success of 7111.5 'check: A B C D --merge XXXXX ': - git reset --hard C && - if test "$I1" != "$H1" - then - echo "$I1" >file1 && - git add file1 - fi && - if test "$W1" != "$I1" - then - echo "$W1" >file1 - fi && - if test "$W2" != "XXXXX" - then - git reset --$opt $T && - test "$(cat file1)" = "$W2" && - git checkout-index -f -- file1 && - test "$(cat file1)" = "$I2" && - git checkout -f HEAD -- file1 && - test "$(cat file1)" = "$H2" - else - test_must_fail git reset --$opt $T - fi - -HEAD is now at 4bb0b07 C -error: Entry 'file1' not uptodate. Cannot merge. -fatal: Could not reset index file to revision 'D'. -ok 5 - check: A B C D --merge XXXXX +expecting success of 6438.18 'git_test_func: replace directory with submodule': + prolog && + reset_work_tree_to replace_sub1_with_directory && + ( + cd submodule_update && + git branch -t replace_directory_with_sub1 origin/replace_directory_with_sub1 && + $command replace_directory_with_sub1 && + test_superproject_content origin/replace_directory_with_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/replace_directory_with_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'replace_sub1_with_directory' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +fatal: Needed a single revision +Branch 'replace_directory_with_sub1' set up to track remote branch 'replace_directory_with_sub1' from 'origin'. +Updating cb28587..a2e65d5 +Fast-forward + .gitmodules | 4 ++++ + sub1/file1 | 1 - + sub1/file2 | 1 - + sub1/file3 | 1 - + 4 files changed, 4 insertions(+), 3 deletions(-) + delete mode 100644 sub1/file1 + delete mode 100644 sub1/file2 + delete mode 100644 sub1/file3 +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +ok 18 - git_test_func: replace directory with submodule -expecting success of 7111.6 'check: A B C D --keep XXXXX ': - git reset --hard C && - if test "$I1" != "$H1" - then - echo "$I1" >file1 && - git add file1 - fi && - if test "$W1" != "$I1" - then - echo "$W1" >file1 - fi && - if test "$W2" != "XXXXX" - then - git reset --$opt $T && - test "$(cat file1)" = "$W2" && - git checkout-index -f -- file1 && - test "$(cat file1)" = "$I2" && - git checkout -f HEAD -- file1 && - test "$(cat file1)" = "$H2" - else - test_must_fail git reset --$opt $T - fi - -HEAD is now at 4bb0b07 C -error: Entry 'file1' would be overwritten by merge. Cannot merge. -fatal: Could not reset index file to revision 'D'. -ok 6 - check: A B C D --keep XXXXX +expecting success of 6438.19 'git_test_func: removed submodule leaves submodule directory and its contents in place': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t remove_sub1 origin/remove_sub1 && + $command remove_sub1 && + test_superproject_content origin/remove_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. +warning: unable to rmdir 'sub1': Directory not empty +Updating 09bcf53..d6ba723 +Fast-forward + .gitmodules | 7 ------- + 1 file changed, 7 deletions(-) + delete mode 100644 .gitmodules +ok 19 - git_test_func: removed submodule leaves submodule directory and its contents in place -expecting success of 7111.7 'check: A B C C --soft A B C': - git reset --hard C && - if test "$I1" != "$H1" - then - echo "$I1" >file1 && - git add file1 - fi && - if test "$W1" != "$I1" - then - echo "$W1" >file1 - fi && - if test "$W2" != "XXXXX" - then - git reset --$opt $T && - test "$(cat file1)" = "$W2" && - git checkout-index -f -- file1 && - test "$(cat file1)" = "$I2" && - git checkout -f HEAD -- file1 && - test "$(cat file1)" = "$H2" - else - test_must_fail git reset --$opt $T - fi - -HEAD is now at 4bb0b07 C -ok 7 - check: A B C C --soft A B C +expecting success of 6438.20 'git_test_func: removed submodule leaves submodule containing a .git directory alone': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t remove_sub1 origin/remove_sub1 && + replace_gitfile_with_git_dir sub1 && + $command remove_sub1 && + test_superproject_content origin/remove_sub1 && + test_git_directory_is_unchanged sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. +warning: unable to rmdir 'sub1': Directory not empty +Updating 09bcf53..d6ba723 +Fast-forward + .gitmodules | 7 ------- + 1 file changed, 7 deletions(-) + delete mode 100644 .gitmodules +ok 20 - git_test_func: removed submodule leaves submodule containing a .git directory alone -expecting success of 7111.8 'check: A B C C --mixed A C C': - git reset --hard C && - if test "$I1" != "$H1" - then - echo "$I1" >file1 && - git add file1 - fi && - if test "$W1" != "$I1" - then - echo "$W1" >file1 - fi && - if test "$W2" != "XXXXX" - then - git reset --$opt $T && - test "$(cat file1)" = "$W2" && - git checkout-index -f -- file1 && - test "$(cat file1)" = "$I2" && - git checkout -f HEAD -- file1 && - test "$(cat file1)" = "$H2" - else - test_must_fail git reset --$opt $T - fi - -HEAD is now at 4bb0b07 C -Unstaged changes after reset: -M file1 -ok 8 - check: A B C C --mixed A C C +expecting success of 6438.21 'git_test_func: replace submodule with a directory must fail': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && + $command replace_sub1_with_directory test_must_fail && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +error: The following untracked working tree files would be overwritten by merge: + sub1/file1 + sub1/file2 +Please move or remove them before you merge. +Aborting +Updating 09bcf53..cb28587 +ok 21 - git_test_func: replace submodule with a directory must fail -expecting success of 7111.9 'check: A B C C --hard C C C': - git reset --hard C && - if test "$I1" != "$H1" - then - echo "$I1" >file1 && - git add file1 - fi && - if test "$W1" != "$I1" - then - echo "$W1" >file1 - fi && - if test "$W2" != "XXXXX" - then - git reset --$opt $T && - test "$(cat file1)" = "$W2" && - git checkout-index -f -- file1 && - test "$(cat file1)" = "$I2" && - git checkout -f HEAD -- file1 && - test "$(cat file1)" = "$H2" - else - test_must_fail git reset --$opt $T - fi - -HEAD is now at 4bb0b07 C -HEAD is now at 4bb0b07 C -ok 9 - check: A B C C --hard C C C +expecting success of 6438.22 'git_test_func: replace submodule containing a .git directory with a directory must fail': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && + replace_gitfile_with_git_dir sub1 && + $command replace_sub1_with_directory test_must_fail && + test_superproject_content origin/add_sub1 && + test_git_directory_is_unchanged sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +error: The following untracked working tree files would be overwritten by merge: + sub1/file1 + sub1/file2 +Please move or remove them before you merge. +Aborting +Updating 09bcf53..cb28587 +ok 22 - git_test_func: replace submodule containing a .git directory with a directory must fail -expecting success of 7111.10 'check: A B C C --merge XXXXX ': - git reset --hard C && - if test "$I1" != "$H1" - then - echo "$I1" >file1 && - git add file1 - fi && - if test "$W1" != "$I1" - then - echo "$W1" >file1 - fi && - if test "$W2" != "XXXXX" - then - git reset --$opt $T && - test "$(cat file1)" = "$W2" && - git checkout-index -f -- file1 && - test "$(cat file1)" = "$I2" && - git checkout -f HEAD -- file1 && - test "$(cat file1)" = "$H2" - else - test_must_fail git reset --$opt $T - fi - -HEAD is now at 4bb0b07 C -error: Entry 'file1' not uptodate. Cannot merge. -fatal: Could not reset index file to revision 'C'. -ok 10 - check: A B C C --merge XXXXX +checking known breakage of 6438.23 'git_test_func: replace submodule with a file must fail': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_file origin/replace_sub1_with_file && + $command replace_sub1_with_file test_must_fail && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +Updating 09bcf53..2364f5a +Fast-forward + .gitmodules | 4 ---- + sub1 | 2 +- + 2 files changed, 1 insertion(+), 5 deletions(-) + mode change 160000 => 100644 sub1 +test_must_fail: command succeeded: git merge --ff replace_sub1_with_file +not ok 23 - git_test_func: replace submodule with a file must fail # TODO known breakage -expecting success of 7111.11 'check: A B C C --keep A C C': - git reset --hard C && - if test "$I1" != "$H1" - then - echo "$I1" >file1 && - git add file1 - fi && - if test "$W1" != "$I1" - then - echo "$W1" >file1 - fi && - if test "$W2" != "XXXXX" - then - git reset --$opt $T && - test "$(cat file1)" = "$W2" && - git checkout-index -f -- file1 && - test "$(cat file1)" = "$I2" && - git checkout -f HEAD -- file1 && - test "$(cat file1)" = "$H2" - else - test_must_fail git reset --$opt $T - fi - -HEAD is now at 4bb0b07 C -ok 11 - check: A B C C --keep A C C +checking known breakage of 6438.24 'git_test_func: replace submodule containing a .git directory with a file must fail': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_file origin/replace_sub1_with_file && + replace_gitfile_with_git_dir sub1 && + $command replace_sub1_with_file test_must_fail && + test_superproject_content origin/add_sub1 && + test_git_directory_is_unchanged sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +Updating 09bcf53..2364f5a +Fast-forward + .gitmodules | 4 ---- + sub1 | 2 +- + 2 files changed, 1 insertion(+), 5 deletions(-) + mode change 160000 => 100644 sub1 +test_must_fail: command succeeded: git merge --ff replace_sub1_with_file +not ok 24 - git_test_func: replace submodule containing a .git directory with a file must fail # TODO known breakage -expecting success of 7111.12 'check: B B C D --soft B B D': - git reset --hard C && - if test "$I1" != "$H1" - then - echo "$I1" >file1 && - git add file1 - fi && - if test "$W1" != "$I1" - then - echo "$W1" >file1 - fi && - if test "$W2" != "XXXXX" - then - git reset --$opt $T && - test "$(cat file1)" = "$W2" && - git checkout-index -f -- file1 && - test "$(cat file1)" = "$I2" && - git checkout -f HEAD -- file1 && - test "$(cat file1)" = "$H2" - else - test_must_fail git reset --$opt $T - fi - -HEAD is now at 4bb0b07 C -ok 12 - check: B B C D --soft B B D +expecting success of 6438.25 'git_test_func: modified submodule does not update submodule work tree': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t modify_sub1 origin/modify_sub1 && + $command modify_sub1 && + test_superproject_content origin/modify_sub1 && + test_submodule_content sub1 origin/add_sub1 && + git submodule update && + test_submodule_content sub1 origin/modify_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. +Updating 09bcf53..cb2bda7 +Fast-forward +Submodule path 'sub1': checked out '03da4ea88bb165bd26ee0b2e5c657f2858b23f53' +ok 25 - git_test_func: modified submodule does not update submodule work tree -expecting success of 7111.13 'check: B B C D --mixed B D D': - git reset --hard C && - if test "$I1" != "$H1" - then - echo "$I1" >file1 && - git add file1 - fi && - if test "$W1" != "$I1" - then - echo "$W1" >file1 - fi && - if test "$W2" != "XXXXX" - then - git reset --$opt $T && - test "$(cat file1)" = "$W2" && - git checkout-index -f -- file1 && - test "$(cat file1)" = "$I2" && - git checkout -f HEAD -- file1 && - test "$(cat file1)" = "$H2" - else - test_must_fail git reset --$opt $T - fi - -HEAD is now at 4bb0b07 C -Unstaged changes after reset: -M file1 -ok 13 - check: B B C D --mixed B D D +expecting success of 6438.26 'git_test_func: modified submodule does not update submodule work tree to invalid commit': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t invalid_sub1 origin/invalid_sub1 && + $command invalid_sub1 && + test_superproject_content origin/invalid_sub1 && + test_submodule_content sub1 origin/add_sub1 && + test_must_fail git submodule update && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. +Updating 09bcf53..e6169bf +Fast-forward +fatal: git upload-pack: not our ref 0123456789012345678901234567890123456789 +fatal: remote error: upload-pack: not our ref 0123456789012345678901234567890123456789 +Fetched in submodule path 'sub1', but it did not contain 0123456789012345678901234567890123456789. Direct fetching of that commit failed. +ok 26 - git_test_func: modified submodule does not update submodule work tree to invalid commit -expecting success of 7111.14 'check: B B C D --hard D D D': - git reset --hard C && - if test "$I1" != "$H1" - then - echo "$I1" >file1 && - git add file1 - fi && - if test "$W1" != "$I1" - then - echo "$W1" >file1 - fi && - if test "$W2" != "XXXXX" - then - git reset --$opt $T && - test "$(cat file1)" = "$W2" && - git checkout-index -f -- file1 && - test "$(cat file1)" = "$I2" && - git checkout -f HEAD -- file1 && - test "$(cat file1)" = "$H2" - else - test_must_fail git reset --$opt $T - fi - -HEAD is now at 4bb0b07 C -HEAD is now at 2131783 D -ok 14 - check: B B C D --hard D D D +expecting success of 6438.27 'git_test_func: modified submodule does not update submodule work tree from invalid commit': + prolog && + reset_work_tree_to invalid_sub1 && + ( + cd submodule_update && + git branch -t valid_sub1 origin/valid_sub1 && + $command valid_sub1 && + test_superproject_content origin/valid_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/valid_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'invalid_sub1' +Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. +fatal: Needed a single revision +Branch 'valid_sub1' set up to track remote branch 'valid_sub1' from 'origin'. +Updating e6169bf..3036e4e +Fast-forward +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +ok 27 - git_test_func: modified submodule does not update submodule work tree from invalid commit -expecting success of 7111.15 'check: B B C D --merge D D D': - git reset --hard C && - if test "$I1" != "$H1" - then - echo "$I1" >file1 && - git add file1 - fi && - if test "$W1" != "$I1" - then - echo "$W1" >file1 - fi && - if test "$W2" != "XXXXX" - then - git reset --$opt $T && - test "$(cat file1)" = "$W2" && - git checkout-index -f -- file1 && - test "$(cat file1)" = "$I2" && - git checkout -f HEAD -- file1 && - test "$(cat file1)" = "$H2" - else - test_must_fail git reset --$opt $T - fi - -HEAD is now at 4bb0b07 C -ok 15 - check: B B C D --merge D D D +expecting success of 6438.28 'git_test_func: added submodule doesn't remove untracked unignored file with same name': + prolog && + reset_work_tree_to no_submodule && + ( + cd submodule_update && + git branch -t add_sub1 origin/add_sub1 && + >sub1 && + $command add_sub1 test_must_fail && + test_superproject_content origin/no_submodule && + test_must_be_empty sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +error: The following untracked working tree files would be overwritten by merge: + sub1 +Please move or remove them before you merge. +Aborting +Updating 27611a5..09bcf53 +ok 28 - git_test_func: added submodule doesn't remove untracked unignored file with same name -expecting success of 7111.16 'check: B B C D --keep XXXXX ': - git reset --hard C && - if test "$I1" != "$H1" - then - echo "$I1" >file1 && - git add file1 - fi && - if test "$W1" != "$I1" - then - echo "$W1" >file1 - fi && - if test "$W2" != "XXXXX" - then - git reset --$opt $T && - test "$(cat file1)" = "$W2" && - git checkout-index -f -- file1 && - test "$(cat file1)" = "$I2" && - git checkout -f HEAD -- file1 && - test "$(cat file1)" = "$H2" - else - test_must_fail git reset --$opt $T - fi - -HEAD is now at 4bb0b07 C -error: Entry 'file1' would be overwritten by merge. Cannot merge. -fatal: Could not reset index file to revision 'D'. -ok 16 - check: B B C D --keep XXXXX +expecting success of 6438.29 'git_test_func: added submodule creates empty directory': + prolog && + reset_work_tree_to no_submodule && + ( + cd submodule_update && + git branch -t add_sub1 origin/add_sub1 && + $command add_sub1 && + test_superproject_content origin/add_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Updating 27611a5..09bcf53 +Fast-forward + .gitmodules | 7 +++++++ + 1 file changed, 7 insertions(+) + create mode 100644 .gitmodules +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +ok 29 - git_test_func: added submodule creates empty directory -expecting success of 7111.17 'check: B B C C --soft B B C': - git reset --hard C && - if test "$I1" != "$H1" - then - echo "$I1" >file1 && - git add file1 - fi && - if test "$W1" != "$I1" - then - echo "$W1" >file1 - fi && - if test "$W2" != "XXXXX" - then - git reset --$opt $T && - test "$(cat file1)" = "$W2" && - git checkout-index -f -- file1 && - test "$(cat file1)" = "$I2" && - git checkout -f HEAD -- file1 && - test "$(cat file1)" = "$H2" - else - test_must_fail git reset --$opt $T - fi - -HEAD is now at 4bb0b07 C -ok 17 - check: B B C C --soft B B C +expecting success of 6438.30 'git_test_func: added submodule leaves existing empty directory alone': + prolog && + reset_work_tree_to no_submodule && + ( + cd submodule_update && + mkdir sub1 && + git branch -t add_sub1 origin/add_sub1 && + $command add_sub1 && + test_superproject_content origin/add_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Updating 27611a5..09bcf53 +Fast-forward + .gitmodules | 7 +++++++ + 1 file changed, 7 insertions(+) + create mode 100644 .gitmodules +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +ok 30 - git_test_func: added submodule leaves existing empty directory alone -expecting success of 7111.18 'check: B B C C --mixed B C C': - git reset --hard C && - if test "$I1" != "$H1" - then - echo "$I1" >file1 && - git add file1 - fi && - if test "$W1" != "$I1" - then - echo "$W1" >file1 - fi && - if test "$W2" != "XXXXX" - then - git reset --$opt $T && - test "$(cat file1)" = "$W2" && - git checkout-index -f -- file1 && - test "$(cat file1)" = "$I2" && - git checkout -f HEAD -- file1 && - test "$(cat file1)" = "$H2" - else - test_must_fail git reset --$opt $T - fi - -HEAD is now at 4bb0b07 C -Unstaged changes after reset: -M file1 -ok 18 - check: B B C C --mixed B C C +expecting success of 6438.31 'git_test_func: replace tracked file with submodule creates empty directory': + prolog && + reset_work_tree_to replace_sub1_with_file && + ( + cd submodule_update && + git branch -t replace_file_with_sub1 origin/replace_file_with_sub1 && + $command replace_file_with_sub1 && + test_superproject_content origin/replace_file_with_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/replace_file_with_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'replace_sub1_with_file' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +fatal: Needed a single revision +Branch 'replace_file_with_sub1' set up to track remote branch 'replace_file_with_sub1' from 'origin'. +Updating 2364f5a..8b6fdfc +Fast-forward + .gitmodules | 4 ++++ + sub1 | 2 +- + 2 files changed, 5 insertions(+), 1 deletion(-) + mode change 100644 => 160000 sub1 +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +ok 31 - git_test_func: replace tracked file with submodule creates empty directory -expecting success of 7111.19 'check: B B C C --hard C C C': - git reset --hard C && - if test "$I1" != "$H1" - then - echo "$I1" >file1 && - git add file1 - fi && - if test "$W1" != "$I1" - then - echo "$W1" >file1 - fi && - if test "$W2" != "XXXXX" - then - git reset --$opt $T && - test "$(cat file1)" = "$W2" && - git checkout-index -f -- file1 && - test "$(cat file1)" = "$I2" && - git checkout -f HEAD -- file1 && - test "$(cat file1)" = "$H2" - else - test_must_fail git reset --$opt $T - fi - -HEAD is now at 4bb0b07 C -HEAD is now at 4bb0b07 C -ok 19 - check: B B C C --hard C C C +expecting success of 6438.32 'git_test_func: replace directory with submodule': + prolog && + reset_work_tree_to replace_sub1_with_directory && + ( + cd submodule_update && + git branch -t replace_directory_with_sub1 origin/replace_directory_with_sub1 && + $command replace_directory_with_sub1 && + test_superproject_content origin/replace_directory_with_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/replace_directory_with_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'replace_sub1_with_directory' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +fatal: Needed a single revision +Branch 'replace_directory_with_sub1' set up to track remote branch 'replace_directory_with_sub1' from 'origin'. +Updating cb28587..a2e65d5 +Fast-forward + .gitmodules | 4 ++++ + sub1/file1 | 1 - + sub1/file2 | 1 - + sub1/file3 | 1 - + 4 files changed, 4 insertions(+), 3 deletions(-) + delete mode 100644 sub1/file1 + delete mode 100644 sub1/file2 + delete mode 100644 sub1/file3 +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +ok 32 - git_test_func: replace directory with submodule -expecting success of 7111.20 'check: B B C C --merge C C C': - git reset --hard C && - if test "$I1" != "$H1" - then - echo "$I1" >file1 && - git add file1 - fi && - if test "$W1" != "$I1" - then - echo "$W1" >file1 - fi && - if test "$W2" != "XXXXX" - then - git reset --$opt $T && - test "$(cat file1)" = "$W2" && - git checkout-index -f -- file1 && - test "$(cat file1)" = "$I2" && - git checkout -f HEAD -- file1 && - test "$(cat file1)" = "$H2" - else - test_must_fail git reset --$opt $T - fi - -HEAD is now at 4bb0b07 C -ok 20 - check: B B C C --merge C C C +expecting success of 6438.33 'git_test_func: removed submodule leaves submodule directory and its contents in place': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t remove_sub1 origin/remove_sub1 && + $command remove_sub1 && + test_superproject_content origin/remove_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. +warning: unable to rmdir 'sub1': Directory not empty +Updating 09bcf53..d6ba723 +Fast-forward + .gitmodules | 7 ------- + 1 file changed, 7 deletions(-) + delete mode 100644 .gitmodules +ok 33 - git_test_func: removed submodule leaves submodule directory and its contents in place -expecting success of 7111.21 'check: B B C C --keep B C C': - git reset --hard C && - if test "$I1" != "$H1" - then - echo "$I1" >file1 && - git add file1 - fi && - if test "$W1" != "$I1" - then - echo "$W1" >file1 - fi && - if test "$W2" != "XXXXX" - then - git reset --$opt $T && - test "$(cat file1)" = "$W2" && - git checkout-index -f -- file1 && - test "$(cat file1)" = "$I2" && - git checkout -f HEAD -- file1 && - test "$(cat file1)" = "$H2" - else - test_must_fail git reset --$opt $T - fi - -HEAD is now at 4bb0b07 C -ok 21 - check: B B C C --keep B C C +expecting success of 6438.34 'git_test_func: removed submodule leaves submodule containing a .git directory alone': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t remove_sub1 origin/remove_sub1 && + replace_gitfile_with_git_dir sub1 && + $command remove_sub1 && + test_superproject_content origin/remove_sub1 && + test_git_directory_is_unchanged sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. +warning: unable to rmdir 'sub1': Directory not empty +Updating 09bcf53..d6ba723 +Fast-forward + .gitmodules | 7 ------- + 1 file changed, 7 deletions(-) + delete mode 100644 .gitmodules +ok 34 - git_test_func: removed submodule leaves submodule containing a .git directory alone -expecting success of 7111.22 'check: B C C D --soft B C D': - git reset --hard C && - if test "$I1" != "$H1" - then - echo "$I1" >file1 && - git add file1 - fi && - if test "$W1" != "$I1" - then - echo "$W1" >file1 - fi && - if test "$W2" != "XXXXX" - then - git reset --$opt $T && - test "$(cat file1)" = "$W2" && - git checkout-index -f -- file1 && - test "$(cat file1)" = "$I2" && - git checkout -f HEAD -- file1 && - test "$(cat file1)" = "$H2" - else - test_must_fail git reset --$opt $T - fi - -HEAD is now at 4bb0b07 C -ok 22 - check: B C C D --soft B C D +expecting success of 6438.35 'git_test_func: replace submodule with a directory must fail': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && + $command replace_sub1_with_directory test_must_fail && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +error: The following untracked working tree files would be overwritten by merge: + sub1/file1 + sub1/file2 +Please move or remove them before you merge. +Aborting +Updating 09bcf53..cb28587 +ok 35 - git_test_func: replace submodule with a directory must fail -expecting success of 7111.23 'check: B C C D --mixed B D D': - git reset --hard C && - if test "$I1" != "$H1" - then - echo "$I1" >file1 && - git add file1 - fi && - if test "$W1" != "$I1" - then - echo "$W1" >file1 - fi && - if test "$W2" != "XXXXX" - then - git reset --$opt $T && - test "$(cat file1)" = "$W2" && - git checkout-index -f -- file1 && - test "$(cat file1)" = "$I2" && - git checkout -f HEAD -- file1 && - test "$(cat file1)" = "$H2" - else - test_must_fail git reset --$opt $T - fi - -HEAD is now at 4bb0b07 C -Unstaged changes after reset: -M file1 -ok 23 - check: B C C D --mixed B D D +expecting success of 6438.36 'git_test_func: replace submodule containing a .git directory with a directory must fail': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && + replace_gitfile_with_git_dir sub1 && + $command replace_sub1_with_directory test_must_fail && + test_superproject_content origin/add_sub1 && + test_git_directory_is_unchanged sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +error: The following untracked working tree files would be overwritten by merge: + sub1/file1 + sub1/file2 +Please move or remove them before you merge. +Aborting +Updating 09bcf53..cb28587 +ok 36 - git_test_func: replace submodule containing a .git directory with a directory must fail -expecting success of 7111.24 'check: B C C D --hard D D D': - git reset --hard C && - if test "$I1" != "$H1" - then - echo "$I1" >file1 && - git add file1 - fi && - if test "$W1" != "$I1" - then - echo "$W1" >file1 - fi && - if test "$W2" != "XXXXX" - then - git reset --$opt $T && - test "$(cat file1)" = "$W2" && - git checkout-index -f -- file1 && - test "$(cat file1)" = "$I2" && - git checkout -f HEAD -- file1 && - test "$(cat file1)" = "$H2" - else - test_must_fail git reset --$opt $T - fi - -HEAD is now at 4bb0b07 C -HEAD is now at 2131783 D -ok 24 - check: B C C D --hard D D D +checking known breakage of 6438.37 'git_test_func: replace submodule with a file must fail': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_file origin/replace_sub1_with_file && + $command replace_sub1_with_file test_must_fail && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +Updating 09bcf53..2364f5a +Fast-forward + .gitmodules | 4 ---- + sub1 | 2 +- + 2 files changed, 1 insertion(+), 5 deletions(-) + mode change 160000 => 100644 sub1 +test_must_fail: command succeeded: git merge --ff-only replace_sub1_with_file +not ok 37 - git_test_func: replace submodule with a file must fail # TODO known breakage -expecting success of 7111.25 'check: B C C D --merge XXXXX ': - git reset --hard C && - if test "$I1" != "$H1" - then - echo "$I1" >file1 && - git add file1 - fi && - if test "$W1" != "$I1" - then - echo "$W1" >file1 - fi && - if test "$W2" != "XXXXX" - then - git reset --$opt $T && - test "$(cat file1)" = "$W2" && - git checkout-index -f -- file1 && - test "$(cat file1)" = "$I2" && - git checkout -f HEAD -- file1 && - test "$(cat file1)" = "$H2" - else - test_must_fail git reset --$opt $T - fi - -HEAD is now at 4bb0b07 C -error: Entry 'file1' not uptodate. Cannot merge. -fatal: Could not reset index file to revision 'D'. -ok 25 - check: B C C D --merge XXXXX +checking known breakage of 6438.38 'git_test_func: replace submodule containing a .git directory with a file must fail': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_file origin/replace_sub1_with_file && + replace_gitfile_with_git_dir sub1 && + $command replace_sub1_with_file test_must_fail && + test_superproject_content origin/add_sub1 && + test_git_directory_is_unchanged sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +Updating 09bcf53..2364f5a +Fast-forward + .gitmodules | 4 ---- + sub1 | 2 +- + 2 files changed, 1 insertion(+), 5 deletions(-) + mode change 160000 => 100644 sub1 +test_must_fail: command succeeded: git merge --ff-only replace_sub1_with_file +not ok 38 - git_test_func: replace submodule containing a .git directory with a file must fail # TODO known breakage -expecting success of 7111.26 'check: B C C D --keep XXXXX ': - git reset --hard C && - if test "$I1" != "$H1" - then - echo "$I1" >file1 && - git add file1 - fi && - if test "$W1" != "$I1" - then - echo "$W1" >file1 - fi && - if test "$W2" != "XXXXX" - then - git reset --$opt $T && - test "$(cat file1)" = "$W2" && - git checkout-index -f -- file1 && - test "$(cat file1)" = "$I2" && - git checkout -f HEAD -- file1 && - test "$(cat file1)" = "$H2" - else - test_must_fail git reset --$opt $T - fi - -HEAD is now at 4bb0b07 C -error: Entry 'file1' not uptodate. Cannot merge. -fatal: Could not reset index file to revision 'D'. -ok 26 - check: B C C D --keep XXXXX +expecting success of 6438.39 'git_test_func: modified submodule does not update submodule work tree': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t modify_sub1 origin/modify_sub1 && + $command modify_sub1 && + test_superproject_content origin/modify_sub1 && + test_submodule_content sub1 origin/add_sub1 && + git submodule update && + test_submodule_content sub1 origin/modify_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. +Updating 09bcf53..cb2bda7 +Fast-forward +Submodule path 'sub1': checked out '03da4ea88bb165bd26ee0b2e5c657f2858b23f53' +ok 39 - git_test_func: modified submodule does not update submodule work tree -expecting success of 7111.27 'check: B C C C --soft B C C': - git reset --hard C && - if test "$I1" != "$H1" - then - echo "$I1" >file1 && - git add file1 - fi && - if test "$W1" != "$I1" - then - echo "$W1" >file1 - fi && - if test "$W2" != "XXXXX" - then - git reset --$opt $T && - test "$(cat file1)" = "$W2" && - git checkout-index -f -- file1 && - test "$(cat file1)" = "$I2" && - git checkout -f HEAD -- file1 && - test "$(cat file1)" = "$H2" - else - test_must_fail git reset --$opt $T - fi - -HEAD is now at 4bb0b07 C -ok 27 - check: B C C C --soft B C C +expecting success of 6438.40 'git_test_func: modified submodule does not update submodule work tree to invalid commit': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t invalid_sub1 origin/invalid_sub1 && + $command invalid_sub1 && + test_superproject_content origin/invalid_sub1 && + test_submodule_content sub1 origin/add_sub1 && + test_must_fail git submodule update && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. +Updating 09bcf53..e6169bf +Fast-forward +fatal: git upload-pack: not our ref 0123456789012345678901234567890123456789 +fatal: remote error: upload-pack: not our ref 0123456789012345678901234567890123456789 +Fetched in submodule path 'sub1', but it did not contain 0123456789012345678901234567890123456789. Direct fetching of that commit failed. +ok 40 - git_test_func: modified submodule does not update submodule work tree to invalid commit -expecting success of 7111.28 'check: B C C C --mixed B C C': - git reset --hard C && - if test "$I1" != "$H1" - then - echo "$I1" >file1 && - git add file1 - fi && - if test "$W1" != "$I1" - then - echo "$W1" >file1 - fi && - if test "$W2" != "XXXXX" - then - git reset --$opt $T && - test "$(cat file1)" = "$W2" && - git checkout-index -f -- file1 && - test "$(cat file1)" = "$I2" && - git checkout -f HEAD -- file1 && - test "$(cat file1)" = "$H2" - else - test_must_fail git reset --$opt $T - fi - -HEAD is now at 4bb0b07 C -Unstaged changes after reset: -M file1 -ok 28 - check: B C C C --mixed B C C +expecting success of 6438.41 'git_test_func: modified submodule does not update submodule work tree from invalid commit': + prolog && + reset_work_tree_to invalid_sub1 && + ( + cd submodule_update && + git branch -t valid_sub1 origin/valid_sub1 && + $command valid_sub1 && + test_superproject_content origin/valid_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/valid_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'invalid_sub1' +Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. +fatal: Needed a single revision +Branch 'valid_sub1' set up to track remote branch 'valid_sub1' from 'origin'. +Updating e6169bf..3036e4e +Fast-forward +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +ok 41 - git_test_func: modified submodule does not update submodule work tree from invalid commit -expecting success of 7111.29 'check: B C C C --hard C C C': - git reset --hard C && - if test "$I1" != "$H1" - then - echo "$I1" >file1 && - git add file1 - fi && - if test "$W1" != "$I1" - then - echo "$W1" >file1 - fi && - if test "$W2" != "XXXXX" - then - git reset --$opt $T && - test "$(cat file1)" = "$W2" && - git checkout-index -f -- file1 && - test "$(cat file1)" = "$I2" && - git checkout -f HEAD -- file1 && - test "$(cat file1)" = "$H2" - else - test_must_fail git reset --$opt $T - fi - -HEAD is now at 4bb0b07 C -HEAD is now at 4bb0b07 C -ok 29 - check: B C C C --hard C C C +expecting success of 6438.42 'git_test_func: added submodule doesn't remove untracked unignored file with same name': + prolog && + reset_work_tree_to no_submodule && + ( + cd submodule_update && + git branch -t add_sub1 origin/add_sub1 && + >sub1 && + $command add_sub1 test_must_fail && + test_superproject_content origin/no_submodule && + test_must_be_empty sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +error: The following untracked working tree files would be overwritten by merge: + sub1 +Please move or remove them before you merge. +Aborting +Updating 27611a5..09bcf53 +ok 42 - git_test_func: added submodule doesn't remove untracked unignored file with same name -expecting success of 7111.30 'check: B C C C --merge B C C': - git reset --hard C && - if test "$I1" != "$H1" - then - echo "$I1" >file1 && - git add file1 - fi && - if test "$W1" != "$I1" - then - echo "$W1" >file1 - fi && - if test "$W2" != "XXXXX" - then - git reset --$opt $T && - test "$(cat file1)" = "$W2" && - git checkout-index -f -- file1 && - test "$(cat file1)" = "$I2" && - git checkout -f HEAD -- file1 && - test "$(cat file1)" = "$H2" - else - test_must_fail git reset --$opt $T - fi - -HEAD is now at 4bb0b07 C -ok 30 - check: B C C C --merge B C C +expecting success of 6438.43 'git_test_func: added submodule creates empty directory': + prolog && + reset_work_tree_to no_submodule && + ( + cd submodule_update && + git branch -t add_sub1 origin/add_sub1 && + $command add_sub1 && + test_superproject_content origin/add_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Merging: +27611a5 Base +virtual add_sub1 +found 1 common ancestor: +27611a5 Base +Merge made by the 'recursive' strategy. + .gitmodules | 7 +++++++ + 1 file changed, 7 insertions(+) + create mode 100644 .gitmodules +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +ok 43 - git_test_func: added submodule creates empty directory -expecting success of 7111.31 'check: B C C C --keep B C C': - git reset --hard C && - if test "$I1" != "$H1" - then - echo "$I1" >file1 && - git add file1 - fi && - if test "$W1" != "$I1" - then - echo "$W1" >file1 - fi && - if test "$W2" != "XXXXX" - then - git reset --$opt $T && - test "$(cat file1)" = "$W2" && - git checkout-index -f -- file1 && - test "$(cat file1)" = "$I2" && - git checkout -f HEAD -- file1 && - test "$(cat file1)" = "$H2" - else - test_must_fail git reset --$opt $T - fi - -HEAD is now at 4bb0b07 C -ok 31 - check: B C C C --keep B C C +expecting success of 6438.44 'git_test_func: added submodule leaves existing empty directory alone': + prolog && + reset_work_tree_to no_submodule && + ( + cd submodule_update && + mkdir sub1 && + git branch -t add_sub1 origin/add_sub1 && + $command add_sub1 && + test_superproject_content origin/add_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Merging: +27611a5 Base +virtual add_sub1 +found 1 common ancestor: +27611a5 Base +Merge made by the 'recursive' strategy. + .gitmodules | 7 +++++++ + 1 file changed, 7 insertions(+) + create mode 100644 .gitmodules +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +ok 44 - git_test_func: added submodule leaves existing empty directory alone -expecting success of 7111.32 'setting up branches to test with unmerged entries': - git reset --hard C && - git branch branch1 && - git branch branch2 && - git checkout branch1 && - test_commit B1 file1 && - git checkout branch2 && - test_commit B file1 +expecting success of 6438.45 'git_test_func: replace tracked file with submodule creates empty directory': + prolog && + reset_work_tree_to replace_sub1_with_file && + ( + cd submodule_update && + git branch -t replace_file_with_sub1 origin/replace_file_with_sub1 && + $command replace_file_with_sub1 && + test_superproject_content origin/replace_file_with_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/replace_file_with_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'replace_sub1_with_file' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +fatal: Needed a single revision +Branch 'replace_file_with_sub1' set up to track remote branch 'replace_file_with_sub1' from 'origin'. +Merging: +2364f5a Replace sub1 with file +virtual replace_file_with_sub1 +found 1 common ancestor: +2364f5a Replace sub1 with file +Merge made by the 'recursive' strategy. + .gitmodules | 4 ++++ + sub1 | 2 +- + 2 files changed, 5 insertions(+), 1 deletion(-) + mode change 100644 => 160000 sub1 +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +ok 45 - git_test_func: replace tracked file with submodule creates empty directory -HEAD is now at 4bb0b07 C -Switched to branch 'branch1' -[branch1 5456cd2] B1 - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -Switched to branch 'branch2' -[branch2 aa272d3] B - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -ok 32 - setting up branches to test with unmerged entries +checking known breakage of 6438.46 'git_test_func: replace directory with submodule': + prolog && + reset_work_tree_to replace_sub1_with_directory && + ( + cd submodule_update && + git branch -t replace_directory_with_sub1 origin/replace_directory_with_sub1 && + $command replace_directory_with_sub1 && + test_superproject_content origin/replace_directory_with_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/replace_directory_with_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'replace_sub1_with_directory' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +fatal: Needed a single revision +Branch 'replace_directory_with_sub1' set up to track remote branch 'replace_directory_with_sub1' from 'origin'. +Merging: +cb28587 Replace sub1 with directory +virtual replace_directory_with_sub1 +found 1 common ancestor: +cb28587 Replace sub1 with directory +Removing sub1/file3 +Removing sub1/file2 +Removing sub1/file1 +Adding sub1 +Merge made by the 'recursive' strategy. + .gitmodules | 4 ++++ + sub1/file1 | 1 - + sub1/file2 | 1 - + sub1/file3 | 1 - + 4 files changed, 4 insertions(+), 3 deletions(-) + delete mode 100644 sub1/file1 + delete mode 100644 sub1/file2 + delete mode 100644 sub1/file3 +Directory sub1 doesn't exist. +not ok 46 - git_test_func: replace directory with submodule # TODO known breakage -expecting success of 7111.33 'check: X U B C --soft XXXXX ': - git reset --hard B && - test_must_fail git merge branch1 && - cat file1 >X_file1 && - if test "$W2" != "XXXXX" - then - git reset --$opt $T && - if test "$W2" = "X" - then - test_cmp file1 X_file1 - else - test "$(cat file1)" = "$W2" - fi && - git checkout-index -f -- file1 && - test "$(cat file1)" = "$I2" && - git checkout -f HEAD -- file1 && - test "$(cat file1)" = "$H2" - else - test_must_fail git reset --$opt $T - fi - -HEAD is now at aa272d3 B +expecting success of 6438.47 'git_test_func: removed submodule leaves submodule directory and its contents in place': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t remove_sub1 origin/remove_sub1 && + $command remove_sub1 && + test_superproject_content origin/remove_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. Merging: -aa272d3 B -virtual branch1 +09bcf53 Add sub1 +virtual remove_sub1 found 1 common ancestor: -4bb0b07 C -Auto-merging file1 -CONFLICT (content): Merge conflict in file1 -Automatic merge failed; fix conflicts and then commit the result. -fatal: Cannot do a soft reset in the middle of a merge. -ok 33 - check: X U B C --soft XXXXX +09bcf53 Add sub1 +Removing uninitialized_sub +Removing sub1 +Removing .gitmodules +Merge made by the 'recursive' strategy. + .gitmodules | 7 ------- + 1 file changed, 7 deletions(-) + delete mode 100644 .gitmodules +ok 47 - git_test_func: removed submodule leaves submodule directory and its contents in place -expecting success of 7111.34 'check: X U B C --mixed X C C': - git reset --hard B && - test_must_fail git merge branch1 && - cat file1 >X_file1 && - if test "$W2" != "XXXXX" - then - git reset --$opt $T && - if test "$W2" = "X" - then - test_cmp file1 X_file1 - else - test "$(cat file1)" = "$W2" - fi && - git checkout-index -f -- file1 && - test "$(cat file1)" = "$I2" && - git checkout -f HEAD -- file1 && - test "$(cat file1)" = "$H2" - else - test_must_fail git reset --$opt $T - fi - -HEAD is now at aa272d3 B +expecting success of 6438.48 'git_test_func: removed submodule leaves submodule containing a .git directory alone': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t remove_sub1 origin/remove_sub1 && + replace_gitfile_with_git_dir sub1 && + $command remove_sub1 && + test_superproject_content origin/remove_sub1 && + test_git_directory_is_unchanged sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. Merging: -aa272d3 B -virtual branch1 +09bcf53 Add sub1 +virtual remove_sub1 found 1 common ancestor: -4bb0b07 C -Auto-merging file1 -CONFLICT (content): Merge conflict in file1 -Automatic merge failed; fix conflicts and then commit the result. -Unstaged changes after reset: -M file1 -ok 34 - check: X U B C --mixed X C C +09bcf53 Add sub1 +Removing uninitialized_sub +Removing sub1 +Removing .gitmodules +Merge made by the 'recursive' strategy. + .gitmodules | 7 ------- + 1 file changed, 7 deletions(-) + delete mode 100644 .gitmodules +ok 48 - git_test_func: removed submodule leaves submodule containing a .git directory alone -expecting success of 7111.35 'check: X U B C --hard C C C': - git reset --hard B && - test_must_fail git merge branch1 && - cat file1 >X_file1 && - if test "$W2" != "XXXXX" - then - git reset --$opt $T && - if test "$W2" = "X" - then - test_cmp file1 X_file1 - else - test "$(cat file1)" = "$W2" - fi && - git checkout-index -f -- file1 && - test "$(cat file1)" = "$I2" && - git checkout -f HEAD -- file1 && - test "$(cat file1)" = "$H2" - else - test_must_fail git reset --$opt $T - fi - -HEAD is now at aa272d3 B +checking known breakage of 6438.49 'git_test_func: replace submodule with a directory must fail': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && + $command replace_sub1_with_directory test_must_fail && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +error: refusing to lose untracked file at 'sub1/file2' +error: add_cacheinfo failed to refresh for path 'sub1/file2'; merge aborting. Merging: -aa272d3 B -virtual branch1 +09bcf53 Add sub1 +virtual replace_sub1_with_directory found 1 common ancestor: -4bb0b07 C -Auto-merging file1 -CONFLICT (content): Merge conflict in file1 -Automatic merge failed; fix conflicts and then commit the result. -HEAD is now at 4bb0b07 C -ok 35 - check: X U B C --hard C C C +09bcf53 Add sub1 +Adding sub1/file3 +Adding sub1/file2 +'actual' is not empty, it contains: +:100644 100644 af3a0c56edfba1a28f50ada5ec2832a7f2f9b907 0000000000000000000000000000000000000000 M .gitmodules +not ok 49 - git_test_func: replace submodule with a directory must fail # TODO known breakage -expecting success of 7111.36 'check: X U B C --merge C C C': - git reset --hard B && - test_must_fail git merge branch1 && - cat file1 >X_file1 && - if test "$W2" != "XXXXX" - then - git reset --$opt $T && - if test "$W2" = "X" - then - test_cmp file1 X_file1 - else - test "$(cat file1)" = "$W2" - fi && - git checkout-index -f -- file1 && - test "$(cat file1)" = "$I2" && - git checkout -f HEAD -- file1 && - test "$(cat file1)" = "$H2" - else - test_must_fail git reset --$opt $T - fi - -HEAD is now at aa272d3 B +checking known breakage of 6438.50 'git_test_func: replace submodule containing a .git directory with a directory must fail': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && + replace_gitfile_with_git_dir sub1 && + $command replace_sub1_with_directory test_must_fail && + test_superproject_content origin/add_sub1 && + test_git_directory_is_unchanged sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +error: refusing to lose untracked file at 'sub1/file2' +error: add_cacheinfo failed to refresh for path 'sub1/file2'; merge aborting. Merging: -aa272d3 B -virtual branch1 +09bcf53 Add sub1 +virtual replace_sub1_with_directory found 1 common ancestor: -4bb0b07 C -Auto-merging file1 -CONFLICT (content): Merge conflict in file1 -Automatic merge failed; fix conflicts and then commit the result. -ok 36 - check: X U B C --merge C C C +09bcf53 Add sub1 +Adding sub1/file3 +Adding sub1/file2 +'actual' is not empty, it contains: +:100644 100644 af3a0c56edfba1a28f50ada5ec2832a7f2f9b907 0000000000000000000000000000000000000000 M .gitmodules +not ok 50 - git_test_func: replace submodule containing a .git directory with a directory must fail # TODO known breakage -expecting success of 7111.37 'check: X U B C --keep XXXXX ': - git reset --hard B && - test_must_fail git merge branch1 && - cat file1 >X_file1 && - if test "$W2" != "XXXXX" - then - git reset --$opt $T && - if test "$W2" = "X" - then - test_cmp file1 X_file1 - else - test "$(cat file1)" = "$W2" - fi && - git checkout-index -f -- file1 && - test "$(cat file1)" = "$I2" && - git checkout -f HEAD -- file1 && - test "$(cat file1)" = "$H2" - else - test_must_fail git reset --$opt $T - fi - -HEAD is now at aa272d3 B +checking known breakage of 6438.51 'git_test_func: replace submodule with a file must fail': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_file origin/replace_sub1_with_file && + $command replace_sub1_with_file test_must_fail && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. Merging: -aa272d3 B -virtual branch1 +09bcf53 Add sub1 +virtual replace_sub1_with_file found 1 common ancestor: -4bb0b07 C -Auto-merging file1 -CONFLICT (content): Merge conflict in file1 -Automatic merge failed; fix conflicts and then commit the result. -fatal: Cannot do a keep reset in the middle of a merge. -ok 37 - check: X U B C --keep XXXXX +09bcf53 Add sub1 +Merge made by the 'recursive' strategy. + .gitmodules | 4 ---- + sub1 | 2 +- + 2 files changed, 1 insertion(+), 5 deletions(-) + mode change 160000 => 100644 sub1 +test_must_fail: command succeeded: git merge --no-ff replace_sub1_with_file +not ok 51 - git_test_func: replace submodule with a file must fail # TODO known breakage -expecting success of 7111.38 'check: X U B B --soft XXXXX ': - git reset --hard B && - test_must_fail git merge branch1 && - cat file1 >X_file1 && - if test "$W2" != "XXXXX" - then - git reset --$opt $T && - if test "$W2" = "X" - then - test_cmp file1 X_file1 - else - test "$(cat file1)" = "$W2" - fi && - git checkout-index -f -- file1 && - test "$(cat file1)" = "$I2" && - git checkout -f HEAD -- file1 && - test "$(cat file1)" = "$H2" - else - test_must_fail git reset --$opt $T - fi - -HEAD is now at aa272d3 B +checking known breakage of 6438.52 'git_test_func: replace submodule containing a .git directory with a file must fail': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_file origin/replace_sub1_with_file && + replace_gitfile_with_git_dir sub1 && + $command replace_sub1_with_file test_must_fail && + test_superproject_content origin/add_sub1 && + test_git_directory_is_unchanged sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. Merging: -aa272d3 B -virtual branch1 +09bcf53 Add sub1 +virtual replace_sub1_with_file found 1 common ancestor: -4bb0b07 C -Auto-merging file1 -CONFLICT (content): Merge conflict in file1 -Automatic merge failed; fix conflicts and then commit the result. -fatal: Cannot do a soft reset in the middle of a merge. -ok 38 - check: X U B B --soft XXXXX +09bcf53 Add sub1 +Merge made by the 'recursive' strategy. + .gitmodules | 4 ---- + sub1 | 2 +- + 2 files changed, 1 insertion(+), 5 deletions(-) + mode change 160000 => 100644 sub1 +test_must_fail: command succeeded: git merge --no-ff replace_sub1_with_file +not ok 52 - git_test_func: replace submodule containing a .git directory with a file must fail # TODO known breakage -expecting success of 7111.39 'check: X U B B --mixed X B B': - git reset --hard B && - test_must_fail git merge branch1 && - cat file1 >X_file1 && - if test "$W2" != "XXXXX" - then - git reset --$opt $T && - if test "$W2" = "X" - then - test_cmp file1 X_file1 - else - test "$(cat file1)" = "$W2" - fi && - git checkout-index -f -- file1 && - test "$(cat file1)" = "$I2" && - git checkout -f HEAD -- file1 && - test "$(cat file1)" = "$H2" - else - test_must_fail git reset --$opt $T - fi - -HEAD is now at aa272d3 B +expecting success of 6438.53 'git_test_func: modified submodule does not update submodule work tree': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t modify_sub1 origin/modify_sub1 && + $command modify_sub1 && + test_superproject_content origin/modify_sub1 && + test_submodule_content sub1 origin/add_sub1 && + git submodule update && + test_submodule_content sub1 origin/modify_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. Merging: -aa272d3 B -virtual branch1 +09bcf53 Add sub1 +virtual modify_sub1 found 1 common ancestor: -4bb0b07 C -Auto-merging file1 -CONFLICT (content): Merge conflict in file1 -Automatic merge failed; fix conflicts and then commit the result. -Unstaged changes after reset: -M file1 -ok 39 - check: X U B B --mixed X B B +09bcf53 Add sub1 +Merge made by the 'recursive' strategy. +Submodule path 'sub1': checked out '03da4ea88bb165bd26ee0b2e5c657f2858b23f53' +ok 53 - git_test_func: modified submodule does not update submodule work tree -expecting success of 7111.40 'check: X U B B --hard B B B': - git reset --hard B && - test_must_fail git merge branch1 && - cat file1 >X_file1 && - if test "$W2" != "XXXXX" - then - git reset --$opt $T && - if test "$W2" = "X" - then - test_cmp file1 X_file1 - else - test "$(cat file1)" = "$W2" - fi && - git checkout-index -f -- file1 && - test "$(cat file1)" = "$I2" && - git checkout -f HEAD -- file1 && - test "$(cat file1)" = "$H2" - else - test_must_fail git reset --$opt $T - fi - -HEAD is now at aa272d3 B +expecting success of 6438.54 'git_test_func: modified submodule does not update submodule work tree to invalid commit': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t invalid_sub1 origin/invalid_sub1 && + $command invalid_sub1 && + test_superproject_content origin/invalid_sub1 && + test_submodule_content sub1 origin/add_sub1 && + test_must_fail git submodule update && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. Merging: -aa272d3 B -virtual branch1 +09bcf53 Add sub1 +virtual invalid_sub1 found 1 common ancestor: -4bb0b07 C -Auto-merging file1 -CONFLICT (content): Merge conflict in file1 -Automatic merge failed; fix conflicts and then commit the result. -HEAD is now at aa272d3 B -ok 40 - check: X U B B --hard B B B +09bcf53 Add sub1 +Merge made by the 'recursive' strategy. +fatal: git upload-pack: not our ref 0123456789012345678901234567890123456789 +fatal: remote error: upload-pack: not our ref 0123456789012345678901234567890123456789 +Fetched in submodule path 'sub1', but it did not contain 0123456789012345678901234567890123456789. Direct fetching of that commit failed. +ok 54 - git_test_func: modified submodule does not update submodule work tree to invalid commit -expecting success of 7111.41 'check: X U B B --merge B B B': - git reset --hard B && - test_must_fail git merge branch1 && - cat file1 >X_file1 && - if test "$W2" != "XXXXX" - then - git reset --$opt $T && - if test "$W2" = "X" - then - test_cmp file1 X_file1 - else - test "$(cat file1)" = "$W2" - fi && - git checkout-index -f -- file1 && - test "$(cat file1)" = "$I2" && - git checkout -f HEAD -- file1 && - test "$(cat file1)" = "$H2" - else - test_must_fail git reset --$opt $T - fi - -HEAD is now at aa272d3 B +expecting success of 6438.55 'git_test_func: modified submodule does not update submodule work tree from invalid commit': + prolog && + reset_work_tree_to invalid_sub1 && + ( + cd submodule_update && + git branch -t valid_sub1 origin/valid_sub1 && + $command valid_sub1 && + test_superproject_content origin/valid_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/valid_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'invalid_sub1' +Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. +fatal: Needed a single revision +Branch 'valid_sub1' set up to track remote branch 'valid_sub1' from 'origin'. Merging: -aa272d3 B -virtual branch1 +e6169bf Invalid sub1 commit +virtual valid_sub1 found 1 common ancestor: -4bb0b07 C -Auto-merging file1 -CONFLICT (content): Merge conflict in file1 -Automatic merge failed; fix conflicts and then commit the result. -ok 41 - check: X U B B --merge B B B +e6169bf Invalid sub1 commit +Merge made by the 'recursive' strategy. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t6438-submodule-directory-file-conflicts/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +ok 55 - git_test_func: modified submodule does not update submodule work tree from invalid commit -expecting success of 7111.42 'check: X U B B --keep XXXXX ': - git reset --hard B && - test_must_fail git merge branch1 && - cat file1 >X_file1 && - if test "$W2" != "XXXXX" - then - git reset --$opt $T && - if test "$W2" = "X" - then - test_cmp file1 X_file1 - else - test "$(cat file1)" = "$W2" - fi && - git checkout-index -f -- file1 && - test "$(cat file1)" = "$I2" && - git checkout -f HEAD -- file1 && - test "$(cat file1)" = "$H2" - else - test_must_fail git reset --$opt $T - fi - -HEAD is now at aa272d3 B +expecting success of 6438.56 'git_test_func: added submodule doesn't remove untracked unignored file with same name': + prolog && + reset_work_tree_to no_submodule && + ( + cd submodule_update && + git branch -t add_sub1 origin/add_sub1 && + >sub1 && + $command add_sub1 test_must_fail && + test_superproject_content origin/no_submodule && + test_must_be_empty sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +error: The following untracked working tree files would be overwritten by merge: + sub1 +Please move or remove them before you merge. +Aborting +error: merging of trees ec38489b3f8eda08fda17055ad272abc24bdf929 and 78e68a0ec4ef4e6a1d1e7a07e6ad2cf028704e1e failed Merging: -aa272d3 B -virtual branch1 +27611a5 Base +virtual add_sub1 found 1 common ancestor: -4bb0b07 C -Auto-merging file1 -CONFLICT (content): Merge conflict in file1 -Automatic merge failed; fix conflicts and then commit the result. -fatal: Cannot do a keep reset in the middle of a merge. -ok 42 - check: X U B B --keep XXXXX +27611a5 Base +ok 56 - git_test_func: added submodule doesn't remove untracked unignored file with same name -# passed all 42 test(s) -1..42 +# still have 11 known breakage(s) +# passed all remaining 45 test(s) +1..56 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t7113-post-index-change-hook.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7113-post-index-change-hook/.git/ -expecting success of 7113.1 'setup': - mkdir -p dir1 && - touch dir1/file1.txt && - echo testing >dir1/file2.txt && - git add . && - git commit -m "initial" +*** t7106-reset-unborn-branch.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7106-reset-unborn-branch/.git/ +expecting success of 7106.1 'setup': + echo a >a && + echo b >b -[master (root-commit) 7e53173] initial - Author: A U Thor - 2 files changed, 1 insertion(+) - create mode 100644 dir1/file1.txt - create mode 100644 dir1/file2.txt ok 1 - setup -expecting success of 7113.2 'test status, add, commit, others trigger hook without flags set': - mkdir -p .git/hooks && - write_script .git/hooks/post-index-change <<-\EOF && - if test "$1" -eq 1; then - echo "Invalid combination of flags passed to hook; updated_workdir is set." >testfailure - exit 1 - fi - if test "$2" -eq 1; then - echo "Invalid combination of flags passed to hook; updated_skipworktree is set." >testfailure - exit 1 - fi - if test -f ".git/index.lock"; then - echo ".git/index.lock exists" >testfailure - exit 3 - fi - if ! test -f ".git/index"; then - echo ".git/index does not exist" >testfailure - exit 3 - fi - echo "success" >testsuccess - EOF - mkdir -p dir2 && - touch dir2/file1.txt && - touch dir2/file2.txt && - : force index to be dirty && - test-tool chmtime +60 dir1/file1.txt && - git status && - test_path_is_file testsuccess && rm -f testsuccess && - test_path_is_missing testfailure && - git add . && - test_path_is_file testsuccess && rm -f testsuccess && - test_path_is_missing testfailure && - git commit -m "second" && - test_path_is_file testsuccess && rm -f testsuccess && - test_path_is_missing testfailure && - git checkout -- dir1/file1.txt && - test_path_is_file testsuccess && rm -f testsuccess && - test_path_is_missing testfailure && - git update-index && - test_path_is_missing testsuccess && - test_path_is_missing testfailure && +expecting success of 7106.2 'reset': + git add a b && + git reset && + + git ls-files >actual && + test_must_be_empty actual + +ok 2 - reset + +expecting success of 7106.3 'reset HEAD': + rm .git/index && + git add a b && + test_must_fail git reset HEAD + +fatal: ambiguous argument 'HEAD': unknown revision or path not in the working tree. +Use '--' to separate paths from revisions, like this: +'git [...] -- [...]' +ok 3 - reset HEAD + +expecting success of 7106.4 'reset $file': + rm .git/index && + git add a b && + git reset a && + + echo b >expect && + git ls-files >actual && + test_cmp expect actual + +ok 4 - reset $file + +expecting success of 7106.5 'reset -p': + rm .git/index && + git add a && + echo y >yes && + git reset -p output && + + git ls-files >actual && + test_must_be_empty actual && + test_i18ngrep "Unstage" output + +checking prerequisite: C_LOCALE_OUTPUT + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false + +) +prerequisite C_LOCALE_OUTPUT ok +(1/1) Unstage this hunk [y,n,q,a,d,e,?]? +ok 5 - reset -p + +expecting success of 7106.6 'reset --soft is a no-op': + rm .git/index && + git add a && git reset --soft && - test_path_is_missing testsuccess && - test_path_is_missing testfailure -On branch master -Untracked files: - (use "git add ..." to include in what will be committed) - dir2/ + echo a >expect && + git ls-files >actual && + test_cmp expect actual -nothing added to commit but untracked files present (use "git add" to track) -[master 5070ba9] second - Author: A U Thor - 2 files changed, 0 insertions(+), 0 deletions(-) - create mode 100644 dir2/file1.txt - create mode 100644 dir2/file2.txt -ok 2 - test status, add, commit, others trigger hook without flags set +ok 6 - reset --soft is a no-op -expecting success of 7113.3 'test checkout and reset trigger the hook': - write_script .git/hooks/post-index-change <<-\EOF && - if test "$1" -eq 1 && test "$2" -eq 1; then - echo "Invalid combination of flags passed to hook; updated_workdir and updated_skipworktree are both set." >testfailure - exit 1 - fi - if test "$1" -eq 0 && test "$2" -eq 0; then - echo "Invalid combination of flags passed to hook; neither updated_workdir or updated_skipworktree are set." >testfailure - exit 2 - fi - if test "$1" -eq 1; then - if test -f ".git/index.lock"; then - echo "updated_workdir set but .git/index.lock exists" >testfailure - exit 3 - fi - if ! test -f ".git/index"; then - echo "updated_workdir set but .git/index does not exist" >testfailure - exit 3 - fi - else - echo "update_workdir should be set for checkout" >testfailure - exit 4 - fi - echo "success" >testsuccess - EOF - : force index to be dirty && - test-tool chmtime +60 dir1/file1.txt && - git checkout master && - test_path_is_file testsuccess && rm -f testsuccess && - test_path_is_missing testfailure && - test-tool chmtime +60 dir1/file1.txt && - git checkout HEAD && - test_path_is_file testsuccess && rm -f testsuccess && - test_path_is_missing testfailure && - test-tool chmtime +60 dir1/file1.txt && +expecting success of 7106.7 'reset --hard': + rm .git/index && + git add a && + test_when_finished "echo a >a" && git reset --hard && - test_path_is_file testsuccess && rm -f testsuccess && - test_path_is_missing testfailure && - git checkout -B test && - test_path_is_file testsuccess && rm -f testsuccess && - test_path_is_missing testfailure -Already on 'master' -HEAD is now at 5070ba9 second -Switched to a new branch 'test' -ok 3 - test checkout and reset trigger the hook - -expecting success of 7113.4 'test reset --mixed and update-index triggers the hook': - write_script .git/hooks/post-index-change <<-\EOF && - if test "$1" -eq 1 && test "$2" -eq 1; then - echo "Invalid combination of flags passed to hook; updated_workdir and updated_skipworktree are both set." >testfailure - exit 1 - fi - if test "$1" -eq 0 && test "$2" -eq 0; then - echo "Invalid combination of flags passed to hook; neither updated_workdir or updated_skipworktree are set." >testfailure - exit 2 - fi - if test "$2" -eq 1; then - if test -f ".git/index.lock"; then - echo "updated_skipworktree set but .git/index.lock exists" >testfailure - exit 3 - fi - if ! test -f ".git/index"; then - echo "updated_skipworktree set but .git/index does not exist" >testfailure - exit 3 - fi - else - echo "updated_skipworktree should be set for reset --mixed and update-index" >testfailure - exit 4 - fi - echo "success" >testsuccess - EOF - : force index to be dirty && - test-tool chmtime +60 dir1/file1.txt && - git reset --mixed --quiet HEAD~1 && - test_path_is_file testsuccess && rm -f testsuccess && - test_path_is_missing testfailure && - git hash-object -w --stdin expect && - git update-index --cacheinfo 100644 "$(cat expect)" dir1/file1.txt && - test_path_is_file testsuccess && rm -f testsuccess && - test_path_is_missing testfailure && - git update-index --skip-worktree dir1/file2.txt && - git update-index --remove dir1/file2.txt && - test_path_is_file testsuccess && rm -f testsuccess && - test_path_is_missing testfailure + git ls-files >actual && + test_must_be_empty actual && + test_path_is_missing a -ok 4 - test reset --mixed and update-index triggers the hook +ok 7 - reset --hard -# passed all 4 test(s) -1..4 +# passed all 7 test(s) +1..7 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' *** t7063-status-untracked-cache.sh *** @@ -344744,1076 +341519,1233 @@ 1..50 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t7201-co.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7201-co/.git/ -expecting success of 7201.1 'setup': - fill x y z >same && - fill 1 2 3 4 5 6 7 8 >one && - fill a b c d e >two && - git add same one two && - git commit -m "Initial A one, A two" && +*** t7102-reset.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7102-reset/.git/ +expecting success of 7102.1 'creating initial files and commits': + test_tick && + echo "1st file" >first && + git add first && + git commit -m "create 1st file" && - git checkout -b renamer && - rm -f one && - fill 1 3 4 5 6 7 8 >uno && - git add uno && - fill a b c d e f >two && - git commit -a -m "Renamer R one->uno, M two" && + echo "2nd file" >second && + git add second && + git commit -m "create 2nd file" && - git checkout -b side master && - fill 1 2 3 4 5 6 7 >one && - fill A B C D E >three && - rm -f two && - git update-index --add --remove one two three && - git commit -m "Side M one, D two, A three" && + echo "2nd line 1st file" >>first && + git commit -a -m "modify 1st file" && + head5p2=$(git rev-parse --verify HEAD) && + head5p2f=$(git rev-parse --short HEAD:first) && - git checkout -b simple master && - rm -f one && - fill a c e >two && - git commit -a -m "Simple D one, M two" && + git rm first && + git mv second secondfile && + git commit -a -m "remove 1st and rename 2nd" && + head5p1=$(git rev-parse --verify HEAD) && + head5p1s=$(git rev-parse --short HEAD:secondfile) && - git checkout master + echo "1st line 2nd file" >secondfile && + echo "2nd line 2nd file" >>secondfile && + # "git commit -m" would break MinGW, as Windows refuse to pass + # $test_encoding encoded parameter to git. + commit_msg $test_encoding | git -c "i18n.commitEncoding=$test_encoding" commit -a -F - && + head5=$(git rev-parse --verify HEAD) && + head5s=$(git rev-parse --short HEAD:secondfile) && + head5sl=$(git rev-parse HEAD:secondfile) -[master (root-commit) 7329388] Initial A one, A two +[master (root-commit) 811bbdf] create 1st file Author: A U Thor - 3 files changed, 16 insertions(+) - create mode 100644 one - create mode 100644 same - create mode 100644 two -Switched to a new branch 'renamer' -[renamer 0420b41] Renamer R one->uno, M two + 1 file changed, 1 insertion(+) + create mode 100644 first +[master ba22ccd] create 2nd file Author: A U Thor - 2 files changed, 1 insertion(+), 1 deletion(-) - rename one => uno (87%) -Switched to a new branch 'side' -[side ab76817] Side M one, D two, A three + 1 file changed, 1 insertion(+) + create mode 100644 second +[master ddaefe0] modify 1st file Author: A U Thor - 3 files changed, 5 insertions(+), 6 deletions(-) - create mode 100644 three - delete mode 100644 two -Switched to a new branch 'simple' -[simple 022ff9d] Simple D one, M two + 1 file changed, 1 insertion(+) +rm 'first' +[master d1a4bc3] remove 1st and rename 2nd Author: A U Thor - 2 files changed, 10 deletions(-) - delete mode 100644 one -Switched to branch 'master' -ok 1 - setup - -expecting success of 7201.2 'checkout from non-existing branch': - git checkout -b delete-me master && - git update-ref -d --no-deref refs/heads/delete-me && - test refs/heads/delete-me = "$(git symbolic-ref HEAD)" && - git checkout master && - test refs/heads/master = "$(git symbolic-ref HEAD)" + 2 files changed, 2 deletions(-) + delete mode 100644 first + rename second => secondfile (100%) +[master eed6733] modify 2nd file (geändert) + Author: A U Thor + 1 file changed, 2 insertions(+), 1 deletion(-) +ok 1 - creating initial files and commits -Switched to a new branch 'delete-me' -Switched to branch 'master' -ok 2 - checkout from non-existing branch +expecting success of 7102.2 'reset --hard message': + hex=$(git log -1 --format="%h") && + git reset --hard >.actual && + echo HEAD is now at $hex $(commit_msg) >.expected && + test_i18ncmp .expected .actual -expecting success of 7201.3 'checkout with dirty tree without -m': - fill 0 1 2 3 4 5 6 7 8 >one && - if git checkout side - then - echo Not happy - false - else - echo "happy - failed correctly" - fi +checking prerequisite: C_LOCALE_OUTPUT -error: Your local changes to the following files would be overwritten by checkout: - one -Please commit your changes or stash them before you switch branches. -Aborting -happy - failed correctly -ok 3 - checkout with dirty tree without -m +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false -expecting success of 7201.4 'checkout with unrelated dirty tree without -m': - git checkout -f master && - fill 0 1 2 3 4 5 6 7 8 >same && - cp same kept && - git checkout side >messages && - test_cmp same kept && - printf "M\t%s\n" same >messages.expect && - test_cmp messages.expect messages +) +prerequisite C_LOCALE_OUTPUT ok +ok 2 - reset --hard message -Already on 'master' -Switched to branch 'side' -ok 4 - checkout with unrelated dirty tree without -m +expecting success of 7102.3 'reset --hard message (ISO8859-1 logoutputencoding)': + hex=$(git log -1 --format="%h") && + git -c "i18n.logOutputEncoding=$test_encoding" reset --hard >.actual && + echo HEAD is now at $hex $(commit_msg $test_encoding) >.expected && + test_i18ncmp .expected .actual -expecting success of 7201.5 'checkout -m with dirty tree': - git checkout -f master && - git clean -f && +ok 3 - reset --hard message (ISO8859-1 logoutputencoding) - fill 0 1 2 3 4 5 6 7 8 >one && - git checkout -m side >messages && +expecting success of 7102.4 'giving a non existing revision should fail': + >.diff_expect && + >.cached_expect && + cat >.cat_expect <<-\EOF && + secondfile: + 1st line 2nd file + 2nd line 2nd file + EOF - test "$(git symbolic-ref HEAD)" = "refs/heads/side" && + test_must_fail git reset aaaaaa && + test_must_fail git reset --mixed aaaaaa && + test_must_fail git reset --soft aaaaaa && + test_must_fail git reset --hard aaaaaa && + check_changes $head5 - printf "M\t%s\n" one >expect.messages && - test_cmp expect.messages messages && +fatal: ambiguous argument 'aaaaaa': unknown revision or path not in the working tree. +Use '--' to separate paths from revisions, like this: +'git [...] -- [...]' +fatal: ambiguous argument 'aaaaaa': unknown revision or path not in the working tree. +Use '--' to separate paths from revisions, like this: +'git [...] -- [...]' +fatal: ambiguous argument 'aaaaaa': unknown revision or path not in the working tree. +Use '--' to separate paths from revisions, like this: +'git [...] -- [...]' +fatal: ambiguous argument 'aaaaaa': unknown revision or path not in the working tree. +Use '--' to separate paths from revisions, like this: +'git [...] -- [...]' +ok 4 - giving a non existing revision should fail - fill "M one" "A three" "D two" >expect.master && - git diff --name-status master >current.master && - test_cmp expect.master current.master && +expecting success of 7102.5 'reset --soft with unmerged index should fail': + touch .git/MERGE_HEAD && + echo "100644 $head5sl 1 un" | + git update-index --index-info && + test_must_fail git reset --soft HEAD && + rm .git/MERGE_HEAD && + git rm --cached -- un - fill "M one" >expect.side && - git diff --name-status side >current.side && - test_cmp expect.side current.side && +fatal: Cannot do a soft reset in the middle of a merge. +rm 'un' +ok 5 - reset --soft with unmerged index should fail - git diff --cached >current.index && - test_must_be_empty current.index +expecting success of 7102.6 'giving paths with options different than --mixed should fail': + test_must_fail git reset --soft -- first && + test_must_fail git reset --hard -- first && + test_must_fail git reset --soft HEAD^ -- first && + test_must_fail git reset --hard HEAD^ -- first && + check_changes $head5 -Switched to branch 'master' -Removing kept -Removing messages -Removing messages.expect -Switched to branch 'side' -ok 5 - checkout -m with dirty tree +fatal: Cannot do soft reset with paths. +fatal: Cannot do hard reset with paths. +fatal: Cannot do soft reset with paths. +fatal: Cannot do hard reset with paths. +ok 6 - giving paths with options different than --mixed should fail -expecting success of 7201.6 'checkout -m with dirty tree, renamed': - git checkout -f master && git clean -f && +expecting success of 7102.7 'giving unrecognized options should fail': + test_must_fail git reset --other && + test_must_fail git reset -o && + test_must_fail git reset --mixed --other && + test_must_fail git reset --mixed -o && + test_must_fail git reset --soft --other && + test_must_fail git reset --soft -o && + test_must_fail git reset --hard --other && + test_must_fail git reset --hard -o && + check_changes $head5 - fill 1 2 3 4 5 7 8 >one && - if git checkout renamer - then - echo Not happy - false - else - echo "happy - failed correctly" - fi && +error: unknown option `other' +usage: git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [] + or: git reset [-q] [] [--] ... + or: git reset [-q] [--pathspec-from-file [--pathspec-file-nul]] [] + or: git reset --patch [] [--] [...] - git checkout -m renamer && - fill 1 3 4 5 7 8 >expect && - test_cmp expect uno && - ! test -f one && - git diff --cached >current && - test_must_be_empty current + -q, --quiet be quiet, only report errors + --mixed reset HEAD and index + --soft reset only HEAD + --hard reset HEAD, index and working tree + --merge reset HEAD, index and working tree + --keep reset HEAD but keep local changes + --recurse-submodules[=] + control recursive updating of submodules + -p, --patch select hunks interactively + -N, --intent-to-add record only the fact that removed paths will be added later + --pathspec-from-file + read pathspec from file + --pathspec-file-nul with --pathspec-from-file, pathspec elements are separated with NUL character -Switched to branch 'master' -Removing current.index -Removing current.master -Removing current.side -Removing expect.master -Removing expect.messages -Removing expect.side -Removing messages -error: Your local changes to the following files would be overwritten by checkout: - one -Please commit your changes or stash them before you switch branches. -Aborting -happy - failed correctly -Switched to branch 'renamer' -M uno -ok 6 - checkout -m with dirty tree, renamed +error: unknown switch `o' +usage: git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [] + or: git reset [-q] [] [--] ... + or: git reset [-q] [--pathspec-from-file [--pathspec-file-nul]] [] + or: git reset --patch [] [--] [...] -expecting success of 7201.7 'checkout -m with merge conflict': - git checkout -f master && git clean -f && + -q, --quiet be quiet, only report errors + --mixed reset HEAD and index + --soft reset only HEAD + --hard reset HEAD, index and working tree + --merge reset HEAD, index and working tree + --keep reset HEAD but keep local changes + --recurse-submodules[=] + control recursive updating of submodules + -p, --patch select hunks interactively + -N, --intent-to-add record only the fact that removed paths will be added later + --pathspec-from-file + read pathspec from file + --pathspec-file-nul with --pathspec-from-file, pathspec elements are separated with NUL character - fill 1 T 3 4 5 6 S 8 >one && - if git checkout renamer - then - echo Not happy - false - else - echo "happy - failed correctly" - fi && +error: unknown option `other' +usage: git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [] + or: git reset [-q] [] [--] ... + or: git reset [-q] [--pathspec-from-file [--pathspec-file-nul]] [] + or: git reset --patch [] [--] [...] - git checkout -m renamer && + -q, --quiet be quiet, only report errors + --mixed reset HEAD and index + --soft reset only HEAD + --hard reset HEAD, index and working tree + --merge reset HEAD, index and working tree + --keep reset HEAD but keep local changes + --recurse-submodules[=] + control recursive updating of submodules + -p, --patch select hunks interactively + -N, --intent-to-add record only the fact that removed paths will be added later + --pathspec-from-file + read pathspec from file + --pathspec-file-nul with --pathspec-from-file, pathspec elements are separated with NUL character - git diff master:one :3:uno | - sed -e "1,/^@@/d" -e "/^ /d" -e "s/^-/d/" -e "s/^+/a/" >current && - fill d2 aT d7 aS >expect && - test_cmp expect current && - git diff --cached two >current && - test_must_be_empty current +error: unknown switch `o' +usage: git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [] + or: git reset [-q] [] [--] ... + or: git reset [-q] [--pathspec-from-file [--pathspec-file-nul]] [] + or: git reset --patch [] [--] [...] -Switched to branch 'master' -Removing current -Removing expect -error: Your local changes to the following files would be overwritten by checkout: - one -Please commit your changes or stash them before you switch branches. -Aborting -happy - failed correctly -Switched to branch 'renamer' -M uno -ok 7 - checkout -m with merge conflict + -q, --quiet be quiet, only report errors + --mixed reset HEAD and index + --soft reset only HEAD + --hard reset HEAD, index and working tree + --merge reset HEAD, index and working tree + --keep reset HEAD but keep local changes + --recurse-submodules[=] + control recursive updating of submodules + -p, --patch select hunks interactively + -N, --intent-to-add record only the fact that removed paths will be added later + --pathspec-from-file + read pathspec from file + --pathspec-file-nul with --pathspec-from-file, pathspec elements are separated with NUL character -expecting success of 7201.8 'format of merge conflict from checkout -m': - git checkout -f master && - git clean -f && +error: unknown option `other' +usage: git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [] + or: git reset [-q] [] [--] ... + or: git reset [-q] [--pathspec-from-file [--pathspec-file-nul]] [] + or: git reset --patch [] [--] [...] - fill b d >two && - git checkout -m simple && + -q, --quiet be quiet, only report errors + --mixed reset HEAD and index + --soft reset only HEAD + --hard reset HEAD, index and working tree + --merge reset HEAD, index and working tree + --keep reset HEAD but keep local changes + --recurse-submodules[=] + control recursive updating of submodules + -p, --patch select hunks interactively + -N, --intent-to-add record only the fact that removed paths will be added later + --pathspec-from-file + read pathspec from file + --pathspec-file-nul with --pathspec-from-file, pathspec elements are separated with NUL character - git ls-files >current && - fill same two two two >expect && - test_cmp expect current && +error: unknown switch `o' +usage: git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [] + or: git reset [-q] [] [--] ... + or: git reset [-q] [--pathspec-from-file [--pathspec-file-nul]] [] + or: git reset --patch [] [--] [...] - cat <<-EOF >expect && - <<<<<<< simple - a - c - e - ======= - b - d - >>>>>>> local - EOF - test_cmp expect two + -q, --quiet be quiet, only report errors + --mixed reset HEAD and index + --soft reset only HEAD + --hard reset HEAD, index and working tree + --merge reset HEAD, index and working tree + --keep reset HEAD but keep local changes + --recurse-submodules[=] + control recursive updating of submodules + -p, --patch select hunks interactively + -N, --intent-to-add record only the fact that removed paths will be added later + --pathspec-from-file + read pathspec from file + --pathspec-file-nul with --pathspec-from-file, pathspec elements are separated with NUL character -Switched to branch 'master' -Removing current -Removing expect -Switched to branch 'simple' -M two -ok 8 - format of merge conflict from checkout -m +error: unknown option `other' +usage: git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [] + or: git reset [-q] [] [--] ... + or: git reset [-q] [--pathspec-from-file [--pathspec-file-nul]] [] + or: git reset --patch [] [--] [...] -expecting success of 7201.9 'checkout --merge --conflict=diff3 ': - git checkout -f master && - git reset --hard && - git clean -f && + -q, --quiet be quiet, only report errors + --mixed reset HEAD and index + --soft reset only HEAD + --hard reset HEAD, index and working tree + --merge reset HEAD, index and working tree + --keep reset HEAD but keep local changes + --recurse-submodules[=] + control recursive updating of submodules + -p, --patch select hunks interactively + -N, --intent-to-add record only the fact that removed paths will be added later + --pathspec-from-file + read pathspec from file + --pathspec-file-nul with --pathspec-from-file, pathspec elements are separated with NUL character - fill b d >two && - git checkout --merge --conflict=diff3 simple && +error: unknown switch `o' +usage: git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [] + or: git reset [-q] [] [--] ... + or: git reset [-q] [--pathspec-from-file [--pathspec-file-nul]] [] + or: git reset --patch [] [--] [...] - cat <<-EOF >expect && - <<<<<<< simple - a - c - e - ||||||| master - a - b - c - d - e - ======= - b - d - >>>>>>> local - EOF - test_cmp expect two + -q, --quiet be quiet, only report errors + --mixed reset HEAD and index + --soft reset only HEAD + --hard reset HEAD, index and working tree + --merge reset HEAD, index and working tree + --keep reset HEAD but keep local changes + --recurse-submodules[=] + control recursive updating of submodules + -p, --patch select hunks interactively + -N, --intent-to-add record only the fact that removed paths will be added later + --pathspec-from-file + read pathspec from file + --pathspec-file-nul with --pathspec-from-file, pathspec elements are separated with NUL character -Switched to branch 'master' -HEAD is now at 7329388 Initial A one, A two -Removing current -Removing expect -Switched to branch 'simple' -M two -ok 9 - checkout --merge --conflict=diff3 +ok 7 - giving unrecognized options should fail -expecting success of 7201.10 'switch to another branch while carrying a deletion': - git checkout -f master && - git reset --hard && - git clean -f && - git rm two && +expecting success of 7102.8 'trying to do reset --soft with pending merge should fail': + git branch branch1 && + git branch branch2 && - test_must_fail git checkout simple 2>errs && - test_i18ngrep overwritten errs && + git checkout branch1 && + echo "3rd line in branch1" >>secondfile && + git commit -a -m "change in branch1" && - test_must_fail git read-tree --quiet -m -u HEAD simple 2>errs && - test_must_be_empty errs + git checkout branch2 && + echo "3rd line in branch2" >>secondfile && + git commit -a -m "change in branch2" && -Switched to branch 'master' -HEAD is now at 7329388 Initial A one, A two -Removing expect -rm 'two' -checking prerequisite: C_LOCALE_OUTPUT + test_must_fail git merge branch1 && + test_must_fail git reset --soft && -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false + printf "1st line 2nd file\n2nd line 2nd file\n3rd line" >secondfile && + git commit -a -m "the change in branch2" && -) -prerequisite C_LOCALE_OUTPUT ok -error: Your local changes to the following files would be overwritten by checkout: -ok 10 - switch to another branch while carrying a deletion + git checkout master && + git branch -D branch1 branch2 && + check_changes $head5 -expecting success of 7201.11 'checkout to detach HEAD (with advice declined)': - git config advice.detachedHead false && - rev=$(git rev-parse --short renamer^) && - git checkout -f renamer && - git clean -f && - git checkout renamer^ 2>messages && - test_i18ngrep "HEAD is now at $rev" messages && - test_line_count = 1 messages && - H=$(git rev-parse --verify HEAD) && - M=$(git show-ref -s --verify refs/heads/master) && - test "z$H" = "z$M" && - if git symbolic-ref HEAD >/dev/null 2>&1 - then - echo "OOPS, HEAD is still symbolic???" - false - else - : happy - fi +Switched to branch 'branch1' +[branch1 6b78ea5] change in branch1 + Author: A U Thor + 1 file changed, 1 insertion(+) +Switched to branch 'branch2' +[branch2 f8a209f] change in branch2 + Author: A U Thor + 1 file changed, 1 insertion(+) +Merging: +f8a209f change in branch2 +virtual branch1 +found 1 common ancestor: +eed6733 modify 2nd file (geändert) +Auto-merging secondfile +CONFLICT (content): Merge conflict in secondfile +Automatic merge failed; fix conflicts and then commit the result. +fatal: Cannot do a soft reset in the middle of a merge. +[branch2 8e8e261] the change in branch2 + Author: A U Thor +Switched to branch 'master' +Deleted branch branch1 (was 6b78ea5). +Deleted branch branch2 (was 8e8e261). +ok 8 - trying to do reset --soft with pending merge should fail -Switched to branch 'renamer' -Removing errs -HEAD is now at 7329388 Initial A one, A two -ok 11 - checkout to detach HEAD (with advice declined) +expecting success of 7102.9 'trying to do reset --soft with pending checkout merge should fail': + git branch branch3 && + git branch branch4 && -expecting success of 7201.12 'checkout to detach HEAD': - git config advice.detachedHead true && - rev=$(git rev-parse --short renamer^) && - git checkout -f renamer && - git clean -f && - GIT_TEST_GETTEXT_POISON=false git checkout renamer^ 2>messages && - grep "HEAD is now at $rev" messages && - test_line_count -gt 1 messages && - H=$(git rev-parse --verify HEAD) && - M=$(git show-ref -s --verify refs/heads/master) && - test "z$H" = "z$M" && - if git symbolic-ref HEAD >/dev/null 2>&1 - then - echo "OOPS, HEAD is still symbolic???" - false - else - : happy - fi + git checkout branch3 && + echo "3rd line in branch3" >>secondfile && + git commit -a -m "line in branch3" && -Previous HEAD position was 7329388 Initial A one, A two -Switched to branch 'renamer' -Removing messages -HEAD is now at 7329388 Initial A one, A two -ok 12 - checkout to detach HEAD + git checkout branch4 && + echo "3rd line in branch4" >>secondfile && -expecting success of 7201.13 'checkout to detach HEAD with branchname^': - git checkout -f master && - git clean -f && - git checkout renamer^ && - H=$(git rev-parse --verify HEAD) && - M=$(git show-ref -s --verify refs/heads/master) && - test "z$H" = "z$M" && - if git symbolic-ref HEAD >/dev/null 2>&1 - then - echo "OOPS, HEAD is still symbolic???" - false - else - : happy - fi + git checkout -m branch3 && + test_must_fail git reset --soft && -Switched to branch 'master' -Removing messages -Note: switching to 'renamer^'. + printf "1st line 2nd file\n2nd line 2nd file\n3rd line" >secondfile && + git commit -a -m "the line in branch3" && -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. + git checkout master && + git branch -D branch3 branch4 && + check_changes $head5 -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: +Switched to branch 'branch3' +[branch3 0b5021a] line in branch3 + Author: A U Thor + 1 file changed, 1 insertion(+) +Switched to branch 'branch4' +Switched to branch 'branch3' +M secondfile +fatal: Cannot do a soft reset in the middle of a merge. +[branch3 dbe96ed] the line in branch3 + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +Switched to branch 'master' +Deleted branch branch3 (was dbe96ed). +Deleted branch branch4 (was eed6733). +ok 9 - trying to do reset --soft with pending checkout merge should fail - git switch -c +expecting success of 7102.10 'resetting to HEAD with no changes should succeed and do nothing': + git reset --hard && + check_changes $head5 && + git reset --hard HEAD && + check_changes $head5 && + git reset --soft && + check_changes $head5 && + git reset --soft HEAD && + check_changes $head5 && + git reset --mixed && + check_changes $head5 && + git reset --mixed HEAD && + check_changes $head5 && + git reset && + check_changes $head5 && + git reset HEAD && + check_changes $head5 -Or undo this operation with: +HEAD is now at eed6733 modify 2nd file (geändert) +HEAD is now at eed6733 modify 2nd file (geändert) +ok 10 - resetting to HEAD with no changes should succeed and do nothing - git switch - +expecting success of 7102.11 '--soft reset only should show changes in diff --cached': + >.diff_expect && + cat >.cached_expect <<-EOF && + diff --git a/secondfile b/secondfile + index $head5p1s..$head5s 100644 + --- a/secondfile + +++ b/secondfile + @@ -1 +1,2 @@ + -2nd file + +1st line 2nd file + +2nd line 2nd file + EOF + cat >.cat_expect <<-\EOF && + secondfile: + 1st line 2nd file + 2nd line 2nd file + EOF + git reset --soft HEAD^ && + check_changes $head5p1 && + test "$(git rev-parse ORIG_HEAD)" = \ + $head5 -Turn off this advice by setting config variable advice.detachedHead to false +ok 11 - --soft reset only should show changes in diff --cached -HEAD is now at 7329388 Initial A one, A two -ok 13 - checkout to detach HEAD with branchname^ +expecting success of 7102.12 'changing files and redo the last commit should succeed': + >.diff_expect && + >.cached_expect && + cat >.cat_expect <<-\EOF && + secondfile: + 1st line 2nd file + 2nd line 2nd file + 3rd line 2nd file + EOF + echo "3rd line 2nd file" >>secondfile && + git commit -a -C ORIG_HEAD && + head4=$(git rev-parse --verify HEAD) && + check_changes $head4 && + test "$(git rev-parse ORIG_HEAD)" = \ + $head5 -expecting success of 7201.14 'checkout to detach HEAD with :/message': - git checkout -f master && - git clean -f && - git checkout ":/Initial" && - H=$(git rev-parse --verify HEAD) && - M=$(git show-ref -s --verify refs/heads/master) && - test "z$H" = "z$M" && - if git symbolic-ref HEAD >/dev/null 2>&1 - then - echo "OOPS, HEAD is still symbolic???" - false - else - : happy - fi +[master b052eb8] modify 2nd file (geändert) + Author: A U Thor + Date: Thu Apr 7 15:13:13 2005 -0700 + 1 file changed, 3 insertions(+), 1 deletion(-) +ok 12 - changing files and redo the last commit should succeed -Switched to branch 'master' -Note: switching to ':/Initial'. +expecting success of 7102.13 '--hard reset should change the files and undo commits permanently': + >.diff_expect && + >.cached_expect && + cat >.cat_expect <<-\EOF && + first: + 1st file + 2nd line 1st file + second: + 2nd file + EOF + git reset --hard HEAD~2 && + check_changes $head5p2 && + test "$(git rev-parse ORIG_HEAD)" = \ + $head4 -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. +HEAD is now at ddaefe0 modify 1st file +ok 13 - --hard reset should change the files and undo commits permanently -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: +expecting success of 7102.14 'redoing changes adding them without commit them should succeed': + >.diff_expect && + cat >.cached_expect <<-EOF && + diff --git a/first b/first + deleted file mode 100644 + index $head5p2f..0000000 + --- a/first + +++ /dev/null + @@ -1,2 +0,0 @@ + -1st file + -2nd line 1st file + diff --git a/second b/second + deleted file mode 100644 + index $head5p1s..0000000 + --- a/second + +++ /dev/null + @@ -1 +0,0 @@ + -2nd file + diff --git a/secondfile b/secondfile + new file mode 100644 + index 0000000..$head5s + --- /dev/null + +++ b/secondfile + @@ -0,0 +1,2 @@ + +1st line 2nd file + +2nd line 2nd file + EOF + cat >.cat_expect <<-\EOF && + secondfile: + 1st line 2nd file + 2nd line 2nd file + EOF + git rm first && + git mv second secondfile && - git switch -c + echo "1st line 2nd file" >secondfile && + echo "2nd line 2nd file" >>secondfile && + git add secondfile && + check_changes $head5p2 -Or undo this operation with: +rm 'first' +ok 14 - redoing changes adding them without commit them should succeed - git switch - +expecting success of 7102.15 '--mixed reset to HEAD should unadd the files': + cat >.diff_expect <<-EOF && + diff --git a/first b/first + deleted file mode 100644 + index $head5p2f..0000000 + --- a/first + +++ /dev/null + @@ -1,2 +0,0 @@ + -1st file + -2nd line 1st file + diff --git a/second b/second + deleted file mode 100644 + index $head5p1s..0000000 + --- a/second + +++ /dev/null + @@ -1 +0,0 @@ + -2nd file + EOF + >.cached_expect && + cat >.cat_expect <<-\EOF && + secondfile: + 1st line 2nd file + 2nd line 2nd file + EOF + git reset && + check_changes $head5p2 && + test "$(git rev-parse ORIG_HEAD)" = $head5p2 -Turn off this advice by setting config variable advice.detachedHead to false +Unstaged changes after reset: +D first +D second +ok 15 - --mixed reset to HEAD should unadd the files -HEAD is now at 7329388 Initial A one, A two -ok 14 - checkout to detach HEAD with :/message +expecting success of 7102.16 'redoing the last two commits should succeed': + >.diff_expect && + >.cached_expect && + cat >.cat_expect <<-\EOF && + secondfile: + 1st line 2nd file + 2nd line 2nd file + EOF + git add secondfile && + git reset --hard $head5p2 && + git rm first && + git mv second secondfile && + git commit -a -m "remove 1st and rename 2nd" && -expecting success of 7201.15 'checkout to detach HEAD with HEAD^0': - git checkout -f master && - git clean -f && - git checkout HEAD^0 && - H=$(git rev-parse --verify HEAD) && - M=$(git show-ref -s --verify refs/heads/master) && - test "z$H" = "z$M" && - if git symbolic-ref HEAD >/dev/null 2>&1 - then - echo "OOPS, HEAD is still symbolic???" - false - else - : happy - fi + echo "1st line 2nd file" >secondfile && + echo "2nd line 2nd file" >>secondfile && + # "git commit -m" would break MinGW, as Windows refuse to pass + # $test_encoding encoded parameter to git. + commit_msg $test_encoding | git -c "i18n.commitEncoding=$test_encoding" commit -a -F - && + check_changes $head5 -Switched to branch 'master' -Note: switching to 'HEAD^0'. +HEAD is now at ddaefe0 modify 1st file +rm 'first' +[master d1a4bc3] remove 1st and rename 2nd + Author: A U Thor + 2 files changed, 2 deletions(-) + delete mode 100644 first + rename second => secondfile (100%) +[master eed6733] modify 2nd file (geändert) + Author: A U Thor + 1 file changed, 2 insertions(+), 1 deletion(-) +ok 16 - redoing the last two commits should succeed -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. +expecting success of 7102.17 '--hard reset to HEAD should clear a failed merge': + >.diff_expect && + >.cached_expect && + cat >.cat_expect <<-\EOF && + secondfile: + 1st line 2nd file + 2nd line 2nd file + 3rd line in branch2 + EOF + git branch branch1 && + git branch branch2 && -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: + git checkout branch1 && + echo "3rd line in branch1" >>secondfile && + git commit -a -m "change in branch1" && - git switch -c + git checkout branch2 && + echo "3rd line in branch2" >>secondfile && + git commit -a -m "change in branch2" && + head3=$(git rev-parse --verify HEAD) && -Or undo this operation with: + test_must_fail git pull . branch1 && + git reset --hard && + check_changes $head3 - git switch - +Switched to branch 'branch1' +[branch1 6b78ea5] change in branch1 + Author: A U Thor + 1 file changed, 1 insertion(+) +Switched to branch 'branch2' +[branch2 f8a209f] change in branch2 + Author: A U Thor + 1 file changed, 1 insertion(+) +hint: Pulling without specifying how to reconcile divergent branches is +hint: discouraged. You can squelch this message by running one of the following +hint: commands sometime before your next pull: +hint: +hint: git config pull.rebase false # merge (the default strategy) +hint: git config pull.rebase true # rebase +hint: git config pull.ff only # fast-forward only +hint: +hint: You can replace "git config" with "git config --global" to set a default +hint: preference for all repositories. You can also pass --rebase, --no-rebase, +hint: or --ff-only on the command line to override the configured default per +hint: invocation. +From . + * branch branch1 -> FETCH_HEAD +Merging: +f8a209f change in branch2 +virtual 6b78ea5a18fcfce43fc7d5b8980e339547a633be +found 1 common ancestor: +eed6733 modify 2nd file (geändert) +Auto-merging secondfile +CONFLICT (content): Merge conflict in secondfile +Automatic merge failed; fix conflicts and then commit the result. +HEAD is now at f8a209f change in branch2 +ok 17 - --hard reset to HEAD should clear a failed merge -Turn off this advice by setting config variable advice.detachedHead to false +expecting success of 7102.18 '--hard reset to ORIG_HEAD should clear a fast-forward merge': + >.diff_expect && + >.cached_expect && + cat >.cat_expect <<-\EOF && + secondfile: + 1st line 2nd file + 2nd line 2nd file + EOF + git reset --hard HEAD^ && + check_changes $head5 && -HEAD is now at 7329388 Initial A one, A two -ok 15 - checkout to detach HEAD with HEAD^0 + git pull . branch1 && + git reset --hard ORIG_HEAD && + check_changes $head5 && -expecting success of 7201.16 'checkout with ambiguous tag/branch names': - git tag both side && - git branch both master && - git reset --hard && git checkout master && + git branch -D branch1 branch2 && + check_changes $head5 - git checkout both && - H=$(git rev-parse --verify HEAD) && - M=$(git show-ref -s --verify refs/heads/master) && - test "z$H" = "z$M" && - name=$(git symbolic-ref HEAD 2>/dev/null) && - test "z$name" = zrefs/heads/both - -HEAD is now at 7329388 Initial A one, A two +HEAD is now at eed6733 modify 2nd file (geändert) +hint: Pulling without specifying how to reconcile divergent branches is +hint: discouraged. You can squelch this message by running one of the following +hint: commands sometime before your next pull: +hint: +hint: git config pull.rebase false # merge (the default strategy) +hint: git config pull.rebase true # rebase +hint: git config pull.ff only # fast-forward only +hint: +hint: You can replace "git config" with "git config --global" to set a default +hint: preference for all repositories. You can also pass --rebase, --no-rebase, +hint: or --ff-only on the command line to override the configured default per +hint: invocation. +From . + * branch branch1 -> FETCH_HEAD +Updating eed6733..6b78ea5 +Fast-forward + secondfile | 1 + + 1 file changed, 1 insertion(+) +HEAD is now at eed6733 modify 2nd file (geändert) Switched to branch 'master' -warning: refname 'both' is ambiguous. -Switched to branch 'both' -ok 16 - checkout with ambiguous tag/branch names +Deleted branch branch1 (was 6b78ea5). +Deleted branch branch2 (was eed6733). +ok 18 - --hard reset to ORIG_HEAD should clear a fast-forward merge -expecting success of 7201.17 'checkout with ambiguous tag/branch names': - git reset --hard && - git checkout master && +expecting success of 7102.19 'test --mixed ': + echo 1 >file1 && + echo 2 >file2 && + git add file1 file2 && + test_tick && + git commit -m files && + before1=$(git rev-parse --short HEAD:file1) && + before2=$(git rev-parse --short HEAD:file2) && + git rm file2 && + echo 3 >file3 && + echo 4 >file4 && + echo 5 >file1 && + after1=$(git rev-parse --short $(git hash-object file1)) && + after4=$(git rev-parse --short $(git hash-object file4)) && + git add file1 file3 file4 && + git reset HEAD -- file1 file2 file3 && + test_must_fail git diff --quiet && + git diff >output && - git tag frotz side && - git branch frotz master && - git reset --hard && - git checkout master && + cat >expect <<-EOF && + diff --git a/file1 b/file1 + index $before1..$after1 100644 + --- a/file1 + +++ b/file1 + @@ -1 +1 @@ + -1 + +5 + diff --git a/file2 b/file2 + deleted file mode 100644 + index $before2..0000000 + --- a/file2 + +++ /dev/null + @@ -1 +0,0 @@ + -2 + EOF - git checkout tags/frotz && - H=$(git rev-parse --verify HEAD) && - S=$(git show-ref -s --verify refs/heads/side) && - test "z$H" = "z$S" && - if name=$(git symbolic-ref HEAD 2>/dev/null) - then - echo "Bad -- should have detached" - false - else - : happy - fi + test_cmp expect output && + git diff --cached >output && -HEAD is now at 7329388 Initial A one, A two -Switched to branch 'master' -HEAD is now at 7329388 Initial A one, A two -Already on 'master' -Note: switching to 'tags/frotz'. + cat >cached_expect <<-EOF && + diff --git a/file4 b/file4 + new file mode 100644 + index 0000000..$after4 + --- /dev/null + +++ b/file4 + @@ -0,0 +1 @@ + +4 + EOF -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. + test_cmp cached_expect output -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: +[master 14b96fb] files + Author: A U Thor + 2 files changed, 2 insertions(+) + create mode 100644 file1 + create mode 100644 file2 +rm 'file2' +Unstaged changes after reset: +M file1 +D file2 +ok 19 - test --mixed - git switch -c +expecting success of 7102.20 'test resetting the index at give paths': + mkdir sub && + >sub/file1 && + >sub/file2 && + git update-index --add sub/file1 sub/file2 && + T=$(git write-tree) && + git reset HEAD sub/file2 && + test_must_fail git diff --quiet && + U=$(git write-tree) && + echo "$T" && + echo "$U" && + test_must_fail git diff-index --cached --exit-code "$T" && + test "$T" != "$U" -Or undo this operation with: +Unstaged changes after reset: +M file1 +D file2 +9571d9b5fb34d9c1274612948c5356f0615744bc +88880074c0c9957f91fd21817fee120b773fc32c +:100644 000000 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0000000000000000000000000000000000000000 D sub/file2 +ok 20 - test resetting the index at give paths - git switch - +expecting success of 7102.21 'resetting an unmodified path is a no-op': + git reset --hard && + git reset -- file1 && + git diff-files --exit-code && + git diff-index --cached --exit-code HEAD -Turn off this advice by setting config variable advice.detachedHead to false +HEAD is now at 14b96fb files +ok 21 - resetting an unmodified path is a no-op -HEAD is now at ab76817 Side M one, D two, A three -ok 17 - checkout with ambiguous tag/branch names +expecting success of 7102.22 '--mixed refreshes the index': + cat >expect <<-\EOF && + Unstaged changes after reset: + M file2 + EOF + echo 123 >>file2 && + git reset --mixed HEAD >output && + test_i18ncmp expect output -expecting success of 7201.18 'switch branches while in subdirectory': - git reset --hard && - git checkout master && +ok 22 - --mixed refreshes the index - mkdir subs && - git -C subs checkout side && - ! test -f subs/one && - rm -fr subs +expecting success of 7102.23 'resetting specific path that is unmerged': + git rm --cached file2 && + F1=$(git rev-parse HEAD:file1) && + F2=$(git rev-parse HEAD:file2) && + F3=$(git rev-parse HEAD:secondfile) && + { + echo "100644 $F1 1 file2" && + echo "100644 $F2 2 file2" && + echo "100644 $F3 3 file2" + } | git update-index --index-info && + git ls-files -u && + git reset HEAD file2 && + test_must_fail git diff --quiet && + git diff-index --exit-code --cached HEAD -HEAD is now at ab76817 Side M one, D two, A three -Previous HEAD position was ab76817 Side M one, D two, A three -Switched to branch 'master' -Switched to branch 'side' -ok 18 - switch branches while in subdirectory +rm 'file2' +100644 d00491fd7e5bb6fa28c517a0bb32b8b506539d4d 1 file2 +100644 0cfbf08886fca9a91cb753ec8734c84fcbe52c9f 2 file2 +100644 44c5b5884550c17758737edcced463447b91d42b 3 file2 +Unstaged changes after reset: +M file2 +ok 23 - resetting specific path that is unmerged -expecting success of 7201.19 'checkout specific path while in subdirectory': +expecting success of 7102.24 'disambiguation (1)': git reset --hard && - git checkout side && - mkdir subs && - >subs/bero && - git add subs/bero && - git commit -m "add subs/bero" && + >secondfile && + git add secondfile && + git reset secondfile && + test_must_fail git diff --quiet -- secondfile && + test -z "$(git diff --cached --name-only)" && + test -f secondfile && + test_must_be_empty secondfile - git checkout master && - mkdir -p subs && - git -C subs checkout side -- bero && - test -f subs/bero +HEAD is now at 14b96fb files +Unstaged changes after reset: +M secondfile +ok 24 - disambiguation (1) -HEAD is now at ab76817 Side M one, D two, A three -Already on 'side' -[side bb04aa0] add subs/bero - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - create mode 100644 subs/bero -Switched to branch 'master' -ok 19 - checkout specific path while in subdirectory +expecting success of 7102.25 'disambiguation (2)': + git reset --hard && + >secondfile && + git add secondfile && + rm -f secondfile && + test_must_fail git reset secondfile && + test -n "$(git diff --cached --name-only -- secondfile)" && + test ! -f secondfile -expecting success of 7201.20 'checkout w/--track sets up tracking': - git config branch.autosetupmerge false && - git checkout master && - git checkout --track -b track1 && - test "$(git config branch.track1.remote)" && - test "$(git config branch.track1.merge)" +HEAD is now at 14b96fb files +fatal: ambiguous argument 'secondfile': unknown revision or path not in the working tree. +Use '--' to separate paths from revisions, like this: +'git [...] -- [...]' +ok 25 - disambiguation (2) -Already on 'master' -A subs/bero -Switched to a new branch 'track1' -A subs/bero -Branch 'track1' set up to track local branch 'master'. -ok 20 - checkout w/--track sets up tracking +expecting success of 7102.26 'disambiguation (3)': + git reset --hard && + >secondfile && + git add secondfile && + rm -f secondfile && + git reset HEAD secondfile && + test_must_fail git diff --quiet && + test -z "$(git diff --cached --name-only)" && + test ! -f secondfile -expecting success of 7201.21 'checkout w/autosetupmerge=always sets up tracking': - test_when_finished git config branch.autosetupmerge false && - git config branch.autosetupmerge always && - git checkout master && - git checkout -b track2 && - test "$(git config branch.track2.remote)" && - test "$(git config branch.track2.merge)" +HEAD is now at 14b96fb files +Unstaged changes after reset: +D secondfile +ok 26 - disambiguation (3) -Switched to branch 'master' -A subs/bero -Switched to a new branch 'track2' -Branch 'track2' set up to track local branch 'master'. -ok 21 - checkout w/autosetupmerge=always sets up tracking +expecting success of 7102.27 'disambiguation (4)': + git reset --hard && + >secondfile && + git add secondfile && + rm -f secondfile && + git reset -- secondfile && + test_must_fail git diff --quiet && + test -z "$(git diff --cached --name-only)" && + test ! -f secondfile -expecting success of 7201.22 'checkout w/--track from non-branch HEAD fails': - git checkout master^0 && - test_must_fail git symbolic-ref HEAD && - test_must_fail git checkout --track -b track && - test_must_fail git rev-parse --verify track && - test_must_fail git symbolic-ref HEAD && - test "z$(git rev-parse master^0)" = "z$(git rev-parse HEAD)" +HEAD is now at 14b96fb files +Unstaged changes after reset: +D secondfile +ok 27 - disambiguation (4) -Note: switching to 'master^0'. +expecting success of 7102.28 'reset with paths accepts tree': + # for simpler tests, drop last commit containing added files + git reset --hard HEAD^ && + git reset HEAD^^{tree} -- . && + git diff --cached HEAD^ --exit-code && + git diff HEAD --exit-code -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. +HEAD is now at eed6733 modify 2nd file (geändert) +Unstaged changes after reset: +M secondfile +ok 28 - reset with paths accepts tree -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: +expecting success of 7102.29 'reset -N keeps removed files as intent-to-add': + echo new-file >new-file && + git add new-file && + git reset -N HEAD && - git switch -c + tree=$(git write-tree) && + git ls-tree $tree new-file >actual && + test_must_be_empty actual && -Or undo this operation with: + git diff --name-only >actual && + echo new-file >expect && + test_cmp expect actual - git switch - +Unstaged changes after reset: +A new-file +ok 29 - reset -N keeps removed files as intent-to-add -Turn off this advice by setting config variable advice.detachedHead to false +expecting success of 7102.30 'reset --mixed sets up work tree': + git init mixed_worktree && + ( + cd mixed_worktree && + test_commit dummy + ) && + git --git-dir=mixed_worktree/.git --work-tree=mixed_worktree reset >actual && + test_must_be_empty actual -HEAD is now at 7329388 Initial A one, A two -A subs/bero -fatal: ref HEAD is not a symbolic ref -fatal: Cannot setup tracking information; starting point 'HEAD' is not a branch. -A subs/bero -fatal: Needed a single revision -fatal: ref HEAD is not a symbolic ref -ok 22 - checkout w/--track from non-branch HEAD fails +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7102-reset/mixed_worktree/.git/ +[master (root-commit) b737dfa] dummy + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 dummy.t +ok 30 - reset --mixed sets up work tree -expecting success of 7201.23 'checkout w/--track from tag fails': - git checkout master^0 && - test_must_fail git symbolic-ref HEAD && - test_must_fail git checkout --track -b track frotz && - test_must_fail git rev-parse --verify track && - test_must_fail git symbolic-ref HEAD && - test "z$(git rev-parse master^0)" = "z$(git rev-parse HEAD)" +# passed all 30 test(s) +1..30 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t7107-reset-pathspec-file.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7107-reset-pathspec-file/.git/ +expecting success of 7107.1 'setup': + echo A >fileA.t && + echo B >fileB.t && + echo C >fileC.t && + echo D >fileD.t && + git add . && + git commit --include . -m "Commit" && + git tag checkpoint -HEAD is now at 7329388 Initial A one, A two -A subs/bero -fatal: ref HEAD is not a symbolic ref -warning: refname 'frotz' is ambiguous. -warning: refname 'frotz' is ambiguous. -fatal: Ambiguous object name: 'frotz'. -A subs/bero -fatal: Needed a single revision -fatal: ref HEAD is not a symbolic ref -ok 23 - checkout w/--track from tag fails +[master (root-commit) 4b301d4] Commit + Author: A U Thor + 4 files changed, 4 insertions(+) + create mode 100644 fileA.t + create mode 100644 fileB.t + create mode 100644 fileC.t + create mode 100644 fileD.t +ok 1 - setup -expecting success of 7201.24 'detach a symbolic link HEAD': - git checkout master && - git config --bool core.prefersymlinkrefs yes && - git checkout side && - git checkout master && - it=$(git symbolic-ref HEAD) && - test "z$it" = zrefs/heads/master && - here=$(git rev-parse --verify refs/heads/master) && - git checkout side^ && - test "z$(git rev-parse --verify refs/heads/master)" = "z$here" +expecting success of 7107.2 '--pathspec-from-file from stdin': + restore_checkpoint && -Switched to branch 'master' -A subs/bero -Switched to branch 'side' -Switched to branch 'master' -Note: switching to 'side^'. + git rm fileA.t && + echo fileA.t | git reset --pathspec-from-file=- && -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. + cat >expect <<-\EOF && + D fileA.t + EOF + verify_expect -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: +HEAD is now at 4b301d4 Commit +rm 'fileA.t' +Unstaged changes after reset: +D fileA.t +ok 2 - --pathspec-from-file from stdin - git switch -c +expecting success of 7107.3 '--pathspec-from-file from file': + restore_checkpoint && -Or undo this operation with: + git rm fileA.t && + echo fileA.t >list && + git reset --pathspec-from-file=list && - git switch - + cat >expect <<-\EOF && + D fileA.t + EOF + verify_expect -Turn off this advice by setting config variable advice.detachedHead to false +HEAD is now at 4b301d4 Commit +rm 'fileA.t' +Unstaged changes after reset: +D fileA.t +ok 3 - --pathspec-from-file from file -HEAD is now at ab76817 Side M one, D two, A three -ok 24 - detach a symbolic link HEAD +expecting success of 7107.4 'NUL delimiters': + restore_checkpoint && -expecting success of 7201.25 'checkout with --track fakes a sensible -b ': - git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*" && - git update-ref refs/remotes/origin/koala/bear renamer && + git rm fileA.t fileB.t && + printf "fileA.t\0fileB.t\0" | git reset --pathspec-from-file=- --pathspec-file-nul && - git checkout --track origin/koala/bear && - test "refs/heads/koala/bear" = "$(git symbolic-ref HEAD)" && - test "$(git rev-parse HEAD)" = "$(git rev-parse renamer)" && + cat >expect <<-\EOF && + D fileA.t + D fileB.t + EOF + verify_expect - git checkout master && git branch -D koala/bear && +HEAD is now at 4b301d4 Commit +rm 'fileA.t' +rm 'fileB.t' +Unstaged changes after reset: +D fileA.t +D fileB.t +ok 4 - NUL delimiters - git checkout --track refs/remotes/origin/koala/bear && - test "refs/heads/koala/bear" = "$(git symbolic-ref HEAD)" && - test "$(git rev-parse HEAD)" = "$(git rev-parse renamer)" && +expecting success of 7107.5 'LF delimiters': + restore_checkpoint && - git checkout master && git branch -D koala/bear && + git rm fileA.t fileB.t && + printf "fileA.t\nfileB.t\n" | git reset --pathspec-from-file=- && - git checkout --track remotes/origin/koala/bear && - test "refs/heads/koala/bear" = "$(git symbolic-ref HEAD)" && - test "$(git rev-parse HEAD)" = "$(git rev-parse renamer)" + cat >expect <<-\EOF && + D fileA.t + D fileB.t + EOF + verify_expect -Previous HEAD position was ab76817 Side M one, D two, A three -Switched to a new branch 'koala/bear' -Branch 'koala/bear' set up to track remote branch 'koala/bear' from 'origin'. -Switched to branch 'master' -Deleted branch koala/bear (was 0420b41). -Switched to a new branch 'koala/bear' -Branch 'koala/bear' set up to track remote branch 'koala/bear' from 'origin'. -Switched to branch 'master' -Deleted branch koala/bear (was 0420b41). -Switched to a new branch 'koala/bear' -Branch 'koala/bear' set up to track remote branch 'koala/bear' from 'origin'. -ok 25 - checkout with --track fakes a sensible -b +HEAD is now at 4b301d4 Commit +rm 'fileA.t' +rm 'fileB.t' +Unstaged changes after reset: +D fileA.t +D fileB.t +ok 5 - LF delimiters -expecting success of 7201.26 'checkout with --track, but without -b, fails with too short tracked name': - test_must_fail git checkout --track renamer +expecting success of 7107.6 'no trailing delimiter': + restore_checkpoint && -fatal: missing branch name; try -b -ok 26 - checkout with --track, but without -b, fails with too short tracked name + git rm fileA.t fileB.t && + printf "fileA.t\nfileB.t" | git reset --pathspec-from-file=- && -expecting success of 7201.27 'checkout an unmerged path should fail': - setup_conflicting_index && - echo "none of the above" >sample && - cat sample >fild && - cat sample >file && - cat sample >filf && - test_must_fail git checkout fild file filf && - test_cmp sample fild && - test_cmp sample filf && - test_cmp sample file + cat >expect <<-\EOF && + D fileA.t + D fileB.t + EOF + verify_expect -error: path 'file' is unmerged -ok 27 - checkout an unmerged path should fail +HEAD is now at 4b301d4 Commit +rm 'fileA.t' +rm 'fileB.t' +Unstaged changes after reset: +D fileA.t +D fileB.t +ok 6 - no trailing delimiter -expecting success of 7201.28 'checkout with an unmerged path can be ignored': - setup_conflicting_index && - echo "none of the above" >sample && - echo ourside >expect && - cat sample >fild && - cat sample >file && - cat sample >filf && - git checkout -f fild file filf && - test_cmp expect fild && - test_cmp expect filf && - test_cmp sample file +expecting success of 7107.7 'CRLF delimiters': + restore_checkpoint && -warning: path 'file' is unmerged -Updated 2 paths from the index -ok 28 - checkout with an unmerged path can be ignored + git rm fileA.t fileB.t && + printf "fileA.t\r\nfileB.t\r\n" | git reset --pathspec-from-file=- && -expecting success of 7201.29 'checkout unmerged stage': - setup_conflicting_index && - echo "none of the above" >sample && - echo ourside >expect && - cat sample >fild && - cat sample >file && - cat sample >filf && - git checkout --ours . && - test_cmp expect fild && - test_cmp expect filf && - test_cmp expect file && - git checkout --theirs file && - test ztheirside = "z$(cat file)" + cat >expect <<-\EOF && + D fileA.t + D fileB.t + EOF + verify_expect -Updated 3 paths from the index -Updated 1 path from the index -ok 29 - checkout unmerged stage +HEAD is now at 4b301d4 Commit +rm 'fileA.t' +rm 'fileB.t' +Unstaged changes after reset: +D fileA.t +D fileB.t +ok 7 - CRLF delimiters -expecting success of 7201.30 'checkout with --merge': - setup_conflicting_index && - echo "none of the above" >sample && - echo ourside >expect && - cat sample >fild && - cat sample >file && - cat sample >filf && - git checkout -m -- fild file filf && - ( - echo "<<<<<<< ours" && - echo ourside && - echo "=======" && - echo theirside && - echo ">>>>>>> theirs" - ) >merged && - test_cmp expect fild && - test_cmp expect filf && - test_cmp merged file +expecting success of 7107.8 'quotes': + restore_checkpoint && -ok 30 - checkout with --merge + cat >list <<-\EOF && + "file\101.t" + EOF -expecting success of 7201.31 'checkout with --merge, in diff3 -m style': - git config merge.conflictstyle diff3 && - setup_conflicting_index && - echo "none of the above" >sample && - echo ourside >expect && - cat sample >fild && - cat sample >file && - cat sample >filf && - git checkout -m -- fild file filf && - ( - echo "<<<<<<< ours" && - echo ourside && - echo "||||||| base" && - echo original && - echo "=======" && - echo theirside && - echo ">>>>>>> theirs" - ) >merged && - test_cmp expect fild && - test_cmp expect filf && - test_cmp merged file + git rm fileA.t && + git reset --pathspec-from-file=list && -ok 31 - checkout with --merge, in diff3 -m style + cat >expect <<-\EOF && + D fileA.t + EOF + verify_expect -expecting success of 7201.32 'checkout --conflict=merge, overriding config': - git config merge.conflictstyle diff3 && - setup_conflicting_index && - echo "none of the above" >sample && - echo ourside >expect && - cat sample >fild && - cat sample >file && - cat sample >filf && - git checkout --conflict=merge -- fild file filf && - ( - echo "<<<<<<< ours" && - echo ourside && - echo "=======" && - echo theirside && - echo ">>>>>>> theirs" - ) >merged && - test_cmp expect fild && - test_cmp expect filf && - test_cmp merged file +HEAD is now at 4b301d4 Commit +rm 'fileA.t' +Unstaged changes after reset: +D fileA.t +ok 8 - quotes -ok 32 - checkout --conflict=merge, overriding config +expecting success of 7107.9 'quotes not compatible with --pathspec-file-nul': + restore_checkpoint && -expecting success of 7201.33 'checkout --conflict=diff3': - test_unconfig merge.conflictstyle && - setup_conflicting_index && - echo "none of the above" >sample && - echo ourside >expect && - cat sample >fild && - cat sample >file && - cat sample >filf && - git checkout --conflict=diff3 -- fild file filf && - ( - echo "<<<<<<< ours" && - echo ourside && - echo "||||||| base" && - echo original && - echo "=======" && - echo theirside && - echo ">>>>>>> theirs" - ) >merged && - test_cmp expect fild && - test_cmp expect filf && - test_cmp merged file + cat >list <<-\EOF && + "file\101.t" + EOF -ok 33 - checkout --conflict=diff3 + # Note: "git reset" has not yet learned to fail on wrong pathspecs + git reset --pathspec-from-file=list --pathspec-file-nul && -expecting success of 7201.34 'failing checkout -b should not break working tree': - git reset --hard master && - git symbolic-ref HEAD refs/heads/master && - test_must_fail git checkout -b renamer side^ && - test $(git symbolic-ref HEAD) = refs/heads/master && - git diff --exit-code && - git diff --cached --exit-code + cat >expect <<-\EOF && + D fileA.t + EOF + verify_expect ! -HEAD is now at 7329388 Initial A one, A two -fatal: A branch named 'renamer' already exists. -ok 34 - failing checkout -b should not break working tree +HEAD is now at 4b301d4 Commit +--- expect 2023-04-29 18:31:34.597215737 +0000 ++++ actual 2023-04-29 18:31:34.617213846 +0000 +@@ -1 +0,0 @@ +- D fileA.t +ok 9 - quotes not compatible with --pathspec-file-nul -expecting success of 7201.35 'switch out of non-branch': - git reset --hard master && - git checkout master^0 && - echo modified >one && - test_must_fail git checkout renamer 2>error.log && - ! grep "^Previous HEAD" error.log +expecting success of 7107.10 'only touches what was listed': + restore_checkpoint && -HEAD is now at 7329388 Initial A one, A two -Note: switching to 'master^0'. + git rm fileA.t fileB.t fileC.t fileD.t && + printf "fileB.t\nfileC.t\n" | git reset --pathspec-from-file=- && -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. + cat >expect <<-\EOF && + D fileA.t + D fileB.t + D fileC.t + D fileD.t + EOF + verify_expect -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: +HEAD is now at 4b301d4 Commit +rm 'fileA.t' +rm 'fileB.t' +rm 'fileC.t' +rm 'fileD.t' +Unstaged changes after reset: +D fileB.t +D fileC.t +ok 10 - only touches what was listed - git switch -c +expecting success of 7107.11 'error conditions': + restore_checkpoint && + echo fileA.t >list && + git rm fileA.t && -Or undo this operation with: + test_must_fail git reset --pathspec-from-file=list --patch 2>err && + test_i18ngrep -e "--pathspec-from-file is incompatible with --patch" err && - git switch - + test_must_fail git reset --pathspec-from-file=list -- fileA.t 2>err && + test_i18ngrep -e "--pathspec-from-file is incompatible with pathspec arguments" err && -Turn off this advice by setting config variable advice.detachedHead to false + test_must_fail git reset --pathspec-file-nul 2>err && + test_i18ngrep -e "--pathspec-file-nul requires --pathspec-from-file" err && -HEAD is now at 7329388 Initial A one, A two -ok 35 - switch out of non-branch + test_must_fail git reset --soft --pathspec-from-file=list 2>err && + test_i18ngrep -e "fatal: Cannot do soft reset with paths" err && -expecting success of 7201.36 'custom merge driver with checkout -m': - git reset --hard && + test_must_fail git reset --hard --pathspec-from-file=list 2>err && + test_i18ngrep -e "fatal: Cannot do hard reset with paths" err - git config merge.filfre.driver "./filfre.sh %O %A %B" && - git config merge.filfre.name "Feel-free merge driver" && - git config merge.filfre.recursive binary && - echo "arm merge=filfre" >.gitattributes && +HEAD is now at 4b301d4 Commit +rm 'fileA.t' +checking prerequisite: C_LOCALE_OUTPUT - git checkout -b left && - echo neutral >arm && - git add arm .gitattributes && - test_tick && - git commit -m neutral && - git branch right && +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false - echo left >arm && - test_tick && - git commit -a -m left && - git checkout right && +) +prerequisite C_LOCALE_OUTPUT ok +fatal: --pathspec-from-file is incompatible with --patch +fatal: --pathspec-from-file is incompatible with pathspec arguments +fatal: --pathspec-file-nul requires --pathspec-from-file +fatal: Cannot do soft reset with paths. +fatal: Cannot do hard reset with paths. +ok 11 - error conditions - echo right >arm && +# passed all 11 test(s) +1..11 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t7105-reset-patch.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7105-reset-patch/.git/ +expecting success of 7105.1 'setup': + mkdir dir && + echo parent > dir/foo && + echo dummy > bar && + git add dir && + git commit -m initial && test_tick && - git commit -a -m right && - - test_must_fail git merge left && - ( - for t in filfre-common left right - do - grep $t arm || exit 1 - done - ) && - - mv arm expect && - git checkout -m arm && - test_cmp expect arm + test_commit second dir/foo head && + set_and_save_state bar bar_work bar_index && + save_head -HEAD is now at 7329388 Initial A one, A two -Switched to a new branch 'left' -[left b257dc6] neutral - Author: A U Thor - 2 files changed, 2 insertions(+) - create mode 100644 .gitattributes - create mode 100644 arm -[left 2459c9d] left +[master (root-commit) e9a8876] initial Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -Switched to branch 'right' -[right 6b476b9] right + 1 file changed, 1 insertion(+) + create mode 100644 dir/foo +[master 3877f48] second Author: A U Thor 1 file changed, 1 insertion(+), 1 deletion(-) -Merging: -6b476b9 right -virtual left -found 1 common ancestor: -b257dc6 neutral -Auto-merging arm -CONFLICT (content): Merge conflict in arm -Automatic merge failed; fix conflicts and then commit the result. -||||||| filfre-common -left -right -Recreated 1 merge conflict -ok 36 - custom merge driver with checkout -m - -# passed all 36 test(s) -1..36 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t7300-clean.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7300-clean/.git/ -expecting success of 7300.1 'setup': - - mkdir -p src && - touch src/part1.c Makefile && - echo build >.gitignore && - echo \*.o >>.gitignore && - git add . && - git commit -m setup && - touch src/part2.c README && - git add . - - -[master (root-commit) c1a48e2] setup - Author: A U Thor - 3 files changed, 2 insertions(+) - create mode 100644 .gitignore - create mode 100644 Makefile - create mode 100644 src/part1.c ok 1 - setup -expecting success of 7300.2 'git clean with skip-worktree .gitignore': - git update-index --skip-worktree .gitignore && - rm .gitignore && - mkdir -p build docs && - touch a.out src/part3.c docs/manual.txt obj.o build/lib.so && - git clean && - test -f Makefile && - test -f README && - test -f src/part1.c && - test -f src/part2.c && - test ! -f a.out && - test ! -f src/part3.c && - test -f docs/manual.txt && - test -f obj.o && - test -f build/lib.so && - git update-index --no-skip-worktree .gitignore && - git checkout .gitignore - -Removing a.out -Removing src/part3.c -Updated 1 path from the index -ok 2 - git clean with skip-worktree .gitignore - -expecting success of 7300.3 'git clean': - - mkdir -p build docs && - touch a.out src/part3.c docs/manual.txt obj.o build/lib.so && - git clean && - test -f Makefile && - test -f README && - test -f src/part1.c && - test -f src/part2.c && - test ! -f a.out && - test ! -f src/part3.c && - test -f docs/manual.txt && - test -f obj.o && - test -f build/lib.so - - -Removing a.out -Removing src/part3.c -ok 3 - git clean - -expecting success of 7300.4 'git clean src/': - - mkdir -p build docs && - touch a.out src/part3.c docs/manual.txt obj.o build/lib.so && - git clean src/ && - test -f Makefile && - test -f README && - test -f src/part1.c && - test -f src/part2.c && - test -f a.out && - test ! -f src/part3.c && - test -f docs/manual.txt && - test -f obj.o && - test -f build/lib.so - - -Removing src/part3.c -ok 4 - git clean src/ - -expecting success of 7300.5 'git clean src/ src/': - - mkdir -p build docs && - touch a.out src/part3.c docs/manual.txt obj.o build/lib.so && - git clean src/ src/ && - test -f Makefile && - test -f README && - test -f src/part1.c && - test -f src/part2.c && - test -f a.out && - test ! -f src/part3.c && - test -f docs/manual.txt && - test -f obj.o && - test -f build/lib.so - - -Removing src/part3.c -ok 5 - git clean src/ src/ - -expecting success of 7300.6 'git clean with prefix': - - mkdir -p build docs src/test && - touch a.out src/part3.c docs/manual.txt obj.o build/lib.so src/test/1.c && - (cd src/ && git clean) && - test -f Makefile && - test -f README && - test -f src/part1.c && - test -f src/part2.c && - test -f a.out && - test ! -f src/part3.c && - test -f src/test/1.c && - test -f docs/manual.txt && - test -f obj.o && - test -f build/lib.so +expecting success of 7105.2 'saying "n" does nothing': + set_and_save_state dir/foo work work && + test_write_lines n n | git reset -p && + verify_saved_state dir/foo && + verify_saved_state bar +diff --git a/bar b/bar +new file mode 100644 +index 0000000..7780244 +--- /dev/null ++++ b/bar +@@ -0,0 +1 @@ ++bar_index +(1/1) Unstage this hunk [y,n,q,a,d,e,?]? +diff --git a/dir/foo b/dir/foo +index 564b12f..b8f99f5 100644 +--- a/dir/foo ++++ b/dir/foo +@@ -1 +1 @@ +-head ++work +(1/1) Unstage this hunk [y,n,q,a,d,e,?]? +ok 2 - saying "n" does nothing -Removing part3.c -ok 6 - git clean with prefix +expecting success of 7105.3 'git reset -p': + test_write_lines n y | git reset -p >output && + verify_state dir/foo work head && + verify_saved_state bar && + test_i18ngrep "Unstage" output checking prerequisite: C_LOCALE_OUTPUT @@ -345824,1027 +342756,1834 @@ ) prerequisite C_LOCALE_OUTPUT ok -expecting success of 7300.7 'git clean with relative prefix': - - mkdir -p build docs && - touch a.out src/part3.c docs/manual.txt obj.o build/lib.so && - would_clean=$( - cd docs && - git clean -n ../src | - grep part3 | - sed -n -e "s|^Would remove ||p" - ) && - verbose test "$would_clean" = ../src/part3.c - -ok 7 - git clean with relative prefix - -expecting success of 7300.8 'git clean with absolute path': - - mkdir -p build docs && - touch a.out src/part3.c docs/manual.txt obj.o build/lib.so && - would_clean=$( - cd docs && - git clean -n "$(pwd)/../src" | - grep part3 | - sed -n -e "s|^Would remove ||p" - ) && - verbose test "$would_clean" = ../src/part3.c - -ok 8 - git clean with absolute path - -expecting success of 7300.9 'git clean with out of work tree relative path': - - mkdir -p build docs && - touch a.out src/part3.c docs/manual.txt obj.o build/lib.so && - ( - cd docs && - test_must_fail git clean -n ../.. - ) - -fatal: ../..: '../..' is outside repository at '/build/git-2.30.2/t/trash directory.t7300-clean' -ok 9 - git clean with out of work tree relative path - -expecting success of 7300.10 'git clean with out of work tree absolute path': - - mkdir -p build docs && - touch a.out src/part3.c docs/manual.txt obj.o build/lib.so && - dd=$(cd .. && pwd) && - ( - cd docs && - test_must_fail git clean -n $dd - ) - -fatal: /build/git-2.30.2/t: '/build/git-2.30.2/t' is outside repository at '/build/git-2.30.2/t/trash directory.t7300-clean' -ok 10 - git clean with out of work tree absolute path - -expecting success of 7300.11 'git clean -d with prefix and path': - - mkdir -p build docs src/feature && - touch a.out src/part3.c src/feature/file.c docs/manual.txt obj.o build/lib.so && - (cd src/ && git clean -d feature/) && - test -f Makefile && - test -f README && - test -f src/part1.c && - test -f src/part2.c && - test -f a.out && - test -f src/part3.c && - test ! -f src/feature/file.c && - test -f docs/manual.txt && - test -f obj.o && - test -f build/lib.so - - -Removing feature/ -ok 11 - git clean -d with prefix and path - -checking prerequisite: SYMLINKS +(1/1) Unstage this hunk [y,n,q,a,d,e,?]? +(1/1) Unstage this hunk [y,n,q,a,d,e,?]? +ok 3 - git reset -p -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && - # test whether the filesystem supports symbolic links - ln -s x y && test -h y +expecting success of 7105.4 'git reset -p HEAD^': + test_write_lines n y | git reset -p HEAD^ >output && + verify_state dir/foo work parent && + verify_saved_state bar && + test_i18ngrep "Apply" output -) -prerequisite SYMLINKS ok -expecting success of 7300.12 'git clean symbolic link': +(1/1) Apply deletion to index [y,n,q,a,d,?]? +(1/1) Apply this hunk to index [y,n,q,a,d,e,?]? +ok 4 - git reset -p HEAD^ - mkdir -p build docs && - touch a.out src/part3.c docs/manual.txt obj.o build/lib.so && - ln -s docs/manual.txt src/part4.c && - git clean && - test -f Makefile && - test -f README && - test -f src/part1.c && - test -f src/part2.c && - test ! -f a.out && - test ! -f src/part3.c && - test ! -f src/part4.c && - test -f docs/manual.txt && - test -f obj.o && - test -f build/lib.so +expecting success of 7105.5 'git reset -p HEAD^^{tree}': + test_write_lines n y | git reset -p HEAD^^{tree} >output && + verify_state dir/foo work parent && + verify_saved_state bar && + test_i18ngrep "Apply" output +(1/1) Apply deletion to index [y,n,q,a,d,?]? +ok 5 - git reset -p HEAD^^{tree} -Removing a.out -Removing src/part3.c -Removing src/part4.c -ok 12 - git clean symbolic link +expecting success of 7105.6 'git reset -p HEAD^:dir/foo (blob fails)': + set_and_save_state dir/foo work work && + test_must_fail git reset -p HEAD^:dir/foo && + verify_saved_state dir/foo && + verify_saved_state bar -expecting success of 7300.13 'git clean with wildcard': +fatal: Could not parse object 'HEAD^:dir/foo'. +ok 6 - git reset -p HEAD^:dir/foo (blob fails) - touch a.clean b.clean other.c && - git clean "*.clean" && - test -f Makefile && - test -f README && - test -f src/part1.c && - test -f src/part2.c && - test ! -f a.clean && - test ! -f b.clean && - test -f other.c +expecting success of 7105.7 'git reset -p aaaaaaaa (unknown fails)': + set_and_save_state dir/foo work work && + test_must_fail git reset -p aaaaaaaa && + verify_saved_state dir/foo && + verify_saved_state bar +fatal: ambiguous argument 'aaaaaaaa': unknown revision or path not in the working tree. +Use '--' to separate paths from revisions, like this: +'git [...] -- [...]' +ok 7 - git reset -p aaaaaaaa (unknown fails) -Removing a.clean -Removing b.clean -ok 13 - git clean with wildcard +expecting success of 7105.8 'git reset -p dir': + set_state dir/foo work work && + test_write_lines y n | git reset -p dir && + verify_state dir/foo work head && + verify_saved_state bar -expecting success of 7300.14 'git clean -n': +diff --git a/dir/foo b/dir/foo +index 564b12f..b8f99f5 100644 +--- a/dir/foo ++++ b/dir/foo +@@ -1 +1 @@ +-head ++work +(1/1) Unstage this hunk [y,n,q,a,d,e,?]? +ok 8 - git reset -p dir - mkdir -p build docs && - touch a.out src/part3.c docs/manual.txt obj.o build/lib.so && - git clean -n && - test -f Makefile && - test -f README && - test -f src/part1.c && - test -f src/part2.c && - test -f a.out && - test -f src/part3.c && - test -f docs/manual.txt && - test -f obj.o && - test -f build/lib.so +expecting success of 7105.9 'git reset -p -- foo (inside dir)': + set_state dir/foo work work && + test_write_lines y n | (cd dir && git reset -p -- foo) && + verify_state dir/foo work head && + verify_saved_state bar +diff --git a/dir/foo b/dir/foo +index 564b12f..b8f99f5 100644 +--- a/dir/foo ++++ b/dir/foo +@@ -1 +1 @@ +-head ++work +(1/1) Unstage this hunk [y,n,q,a,d,e,?]? +ok 9 - git reset -p -- foo (inside dir) -Would remove a.out -Would remove other.c -Would remove src/part3.c -ok 14 - git clean -n +expecting success of 7105.10 'git reset -p HEAD^ -- dir': + test_write_lines y n | git reset -p HEAD^ -- dir && + verify_state dir/foo work parent && + verify_saved_state bar -expecting success of 7300.15 'git clean -d': +diff --git b/dir/foo a/dir/foo +index 564b12f..9676f5b 100644 +--- b/dir/foo ++++ a/dir/foo +@@ -1 +1 @@ +-head ++parent +(1/1) Apply this hunk to index [y,n,q,a,d,e,?]? +ok 10 - git reset -p HEAD^ -- dir - mkdir -p build docs && - touch a.out src/part3.c docs/manual.txt obj.o build/lib.so && - git clean -d && - test -f Makefile && - test -f README && - test -f src/part1.c && - test -f src/part2.c && - test ! -f a.out && - test ! -f src/part3.c && - test ! -d docs && - test -f obj.o && - test -f build/lib.so +expecting success of 7105.11 'none of this moved HEAD': + verify_saved_head +ok 11 - none of this moved HEAD -Removing a.out -Removing docs/ -Removing other.c -Removing src/part3.c -Removing src/test/ -ok 15 - git clean -d +# passed all 11 test(s) +1..11 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t7113-post-index-change-hook.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7113-post-index-change-hook/.git/ +expecting success of 7113.1 'setup': + mkdir -p dir1 && + touch dir1/file1.txt && + echo testing >dir1/file2.txt && + git add . && + git commit -m "initial" -expecting success of 7300.16 'git clean -d src/ examples/': +[master (root-commit) 7e53173] initial + Author: A U Thor + 2 files changed, 1 insertion(+) + create mode 100644 dir1/file1.txt + create mode 100644 dir1/file2.txt +ok 1 - setup - mkdir -p build docs examples && - touch a.out src/part3.c docs/manual.txt obj.o build/lib.so examples/1.c && - git clean -d src/ examples/ && - test -f Makefile && - test -f README && - test -f src/part1.c && - test -f src/part2.c && - test -f a.out && - test ! -f src/part3.c && - test ! -f examples/1.c && - test -f docs/manual.txt && - test -f obj.o && - test -f build/lib.so +expecting success of 7113.2 'test status, add, commit, others trigger hook without flags set': + mkdir -p .git/hooks && + write_script .git/hooks/post-index-change <<-\EOF && + if test "$1" -eq 1; then + echo "Invalid combination of flags passed to hook; updated_workdir is set." >testfailure + exit 1 + fi + if test "$2" -eq 1; then + echo "Invalid combination of flags passed to hook; updated_skipworktree is set." >testfailure + exit 1 + fi + if test -f ".git/index.lock"; then + echo ".git/index.lock exists" >testfailure + exit 3 + fi + if ! test -f ".git/index"; then + echo ".git/index does not exist" >testfailure + exit 3 + fi + echo "success" >testsuccess + EOF + mkdir -p dir2 && + touch dir2/file1.txt && + touch dir2/file2.txt && + : force index to be dirty && + test-tool chmtime +60 dir1/file1.txt && + git status && + test_path_is_file testsuccess && rm -f testsuccess && + test_path_is_missing testfailure && + git add . && + test_path_is_file testsuccess && rm -f testsuccess && + test_path_is_missing testfailure && + git commit -m "second" && + test_path_is_file testsuccess && rm -f testsuccess && + test_path_is_missing testfailure && + git checkout -- dir1/file1.txt && + test_path_is_file testsuccess && rm -f testsuccess && + test_path_is_missing testfailure && + git update-index && + test_path_is_missing testsuccess && + test_path_is_missing testfailure && + git reset --soft && + test_path_is_missing testsuccess && + test_path_is_missing testfailure +On branch master +Untracked files: + (use "git add ..." to include in what will be committed) + dir2/ -Removing examples/ -Removing src/part3.c -ok 16 - git clean -d src/ examples/ +nothing added to commit but untracked files present (use "git add" to track) +[master 5070ba9] second + Author: A U Thor + 2 files changed, 0 insertions(+), 0 deletions(-) + create mode 100644 dir2/file1.txt + create mode 100644 dir2/file2.txt +ok 2 - test status, add, commit, others trigger hook without flags set -expecting success of 7300.17 'git clean -x': +expecting success of 7113.3 'test checkout and reset trigger the hook': + write_script .git/hooks/post-index-change <<-\EOF && + if test "$1" -eq 1 && test "$2" -eq 1; then + echo "Invalid combination of flags passed to hook; updated_workdir and updated_skipworktree are both set." >testfailure + exit 1 + fi + if test "$1" -eq 0 && test "$2" -eq 0; then + echo "Invalid combination of flags passed to hook; neither updated_workdir or updated_skipworktree are set." >testfailure + exit 2 + fi + if test "$1" -eq 1; then + if test -f ".git/index.lock"; then + echo "updated_workdir set but .git/index.lock exists" >testfailure + exit 3 + fi + if ! test -f ".git/index"; then + echo "updated_workdir set but .git/index does not exist" >testfailure + exit 3 + fi + else + echo "update_workdir should be set for checkout" >testfailure + exit 4 + fi + echo "success" >testsuccess + EOF + : force index to be dirty && + test-tool chmtime +60 dir1/file1.txt && + git checkout master && + test_path_is_file testsuccess && rm -f testsuccess && + test_path_is_missing testfailure && + test-tool chmtime +60 dir1/file1.txt && + git checkout HEAD && + test_path_is_file testsuccess && rm -f testsuccess && + test_path_is_missing testfailure && + test-tool chmtime +60 dir1/file1.txt && + git reset --hard && + test_path_is_file testsuccess && rm -f testsuccess && + test_path_is_missing testfailure && + git checkout -B test && + test_path_is_file testsuccess && rm -f testsuccess && + test_path_is_missing testfailure - mkdir -p build docs && - touch a.out src/part3.c docs/manual.txt obj.o build/lib.so && - git clean -x && - test -f Makefile && - test -f README && - test -f src/part1.c && - test -f src/part2.c && - test ! -f a.out && - test ! -f src/part3.c && - test -f docs/manual.txt && - test ! -f obj.o && - test -f build/lib.so +Already on 'master' +HEAD is now at 5070ba9 second +Switched to a new branch 'test' +ok 3 - test checkout and reset trigger the hook +expecting success of 7113.4 'test reset --mixed and update-index triggers the hook': + write_script .git/hooks/post-index-change <<-\EOF && + if test "$1" -eq 1 && test "$2" -eq 1; then + echo "Invalid combination of flags passed to hook; updated_workdir and updated_skipworktree are both set." >testfailure + exit 1 + fi + if test "$1" -eq 0 && test "$2" -eq 0; then + echo "Invalid combination of flags passed to hook; neither updated_workdir or updated_skipworktree are set." >testfailure + exit 2 + fi + if test "$2" -eq 1; then + if test -f ".git/index.lock"; then + echo "updated_skipworktree set but .git/index.lock exists" >testfailure + exit 3 + fi + if ! test -f ".git/index"; then + echo "updated_skipworktree set but .git/index does not exist" >testfailure + exit 3 + fi + else + echo "updated_skipworktree should be set for reset --mixed and update-index" >testfailure + exit 4 + fi + echo "success" >testsuccess + EOF + : force index to be dirty && + test-tool chmtime +60 dir1/file1.txt && + git reset --mixed --quiet HEAD~1 && + test_path_is_file testsuccess && rm -f testsuccess && + test_path_is_missing testfailure && + git hash-object -w --stdin expect && + git update-index --cacheinfo 100644 "$(cat expect)" dir1/file1.txt && + test_path_is_file testsuccess && rm -f testsuccess && + test_path_is_missing testfailure && + git update-index --skip-worktree dir1/file2.txt && + git update-index --remove dir1/file2.txt && + test_path_is_file testsuccess && rm -f testsuccess && + test_path_is_missing testfailure -Removing a.out -Removing obj.o -Removing src/part3.c -ok 17 - git clean -x +ok 4 - test reset --mixed and update-index triggers the hook -expecting success of 7300.18 'git clean -d -x': +# passed all 4 test(s) +1..4 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t7110-reset-merge.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7110-reset-merge/.git/ +expecting success of 7110.1 'setup': + for i in 1 2 3; do echo line $i; done >file1 && + cat file1 >file2 && + git add file1 file2 && + test_tick && + git commit -m "Initial commit" && + git tag initial && + echo line 4 >>file1 && + cat file1 >file2 && + test_tick && + git commit -m "add line 4 to file1" file1 && + git tag second - mkdir -p build docs && - touch a.out src/part3.c docs/manual.txt obj.o build/lib.so && - git clean -d -x && - test -f Makefile && - test -f README && - test -f src/part1.c && - test -f src/part2.c && - test ! -f a.out && - test ! -f src/part3.c && - test ! -d docs && - test ! -f obj.o && - test ! -d build +[master (root-commit) 294b13e] Initial commit + Author: A U Thor + 2 files changed, 6 insertions(+) + create mode 100644 file1 + create mode 100644 file2 +[master 91b6f65] add line 4 to file1 + Author: A U Thor + 1 file changed, 1 insertion(+) +ok 1 - setup +expecting success of 7110.2 'reset --merge is ok with changes in file it does not touch': + git reset --merge HEAD^ && + ! grep 4 file1 && + grep 4 file2 && + test "$(git rev-parse HEAD)" = "$(git rev-parse initial)" && + test -z "$(git diff --cached)" -Removing a.out -Removing build/ -Removing docs/ -Removing obj.o -Removing src/part3.c -ok 18 - git clean -d -x +line 4 +ok 2 - reset --merge is ok with changes in file it does not touch -expecting success of 7300.19 'git clean -d -x with ignored tracked directory': +expecting success of 7110.3 'reset --merge is ok when switching back': + git reset --merge second && + grep 4 file1 && + grep 4 file2 && + test "$(git rev-parse HEAD)" = "$(git rev-parse second)" && + test -z "$(git diff --cached)" - mkdir -p build docs && - touch a.out src/part3.c docs/manual.txt obj.o build/lib.so && - git clean -d -x -e src && - test -f Makefile && - test -f README && - test -f src/part1.c && - test -f src/part2.c && - test ! -f a.out && - test -f src/part3.c && - test ! -d docs && - test ! -f obj.o && - test ! -d build +line 4 +line 4 +ok 3 - reset --merge is ok when switching back +expecting success of 7110.4 'reset --keep is ok with changes in file it does not touch': + git reset --hard second && + cat file1 >file2 && + git reset --keep HEAD^ && + ! grep 4 file1 && + grep 4 file2 && + test "$(git rev-parse HEAD)" = "$(git rev-parse initial)" && + test -z "$(git diff --cached)" -Removing a.out -Removing build/ -Removing docs/ -Removing obj.o -ok 19 - git clean -d -x with ignored tracked directory +HEAD is now at 91b6f65 add line 4 to file1 +line 4 +ok 4 - reset --keep is ok with changes in file it does not touch -expecting success of 7300.20 'git clean -X': +expecting success of 7110.5 'reset --keep is ok when switching back': + git reset --keep second && + grep 4 file1 && + grep 4 file2 && + test "$(git rev-parse HEAD)" = "$(git rev-parse second)" && + test -z "$(git diff --cached)" - mkdir -p build docs && - touch a.out src/part3.c docs/manual.txt obj.o build/lib.so && - git clean -X && - test -f Makefile && - test -f README && - test -f src/part1.c && - test -f src/part2.c && - test -f a.out && - test -f src/part3.c && - test -f docs/manual.txt && - test ! -f obj.o && - test -f build/lib.so +line 4 +line 4 +ok 5 - reset --keep is ok when switching back +expecting success of 7110.6 'reset --merge discards changes added to index (1)': + git reset --hard second && + cat file1 >file2 && + echo "line 5" >> file1 && + git add file1 && + git reset --merge HEAD^ && + ! grep 4 file1 && + ! grep 5 file1 && + grep 4 file2 && + test "$(git rev-parse HEAD)" = "$(git rev-parse initial)" && + test -z "$(git diff --cached)" -Removing obj.o -ok 20 - git clean -X +HEAD is now at 91b6f65 add line 4 to file1 +line 4 +ok 6 - reset --merge discards changes added to index (1) -expecting success of 7300.21 'git clean -d -X': +expecting success of 7110.7 'reset --merge is ok again when switching back (1)': + git reset --hard initial && + echo "line 5" >> file2 && + git add file2 && + git reset --merge second && + ! grep 4 file2 && + ! grep 5 file1 && + grep 4 file1 && + test "$(git rev-parse HEAD)" = "$(git rev-parse second)" && + test -z "$(git diff --cached)" - mkdir -p build docs && - touch a.out src/part3.c docs/manual.txt obj.o build/lib.so && - git clean -d -X && - test -f Makefile && - test -f README && - test -f src/part1.c && - test -f src/part2.c && - test -f a.out && - test -f src/part3.c && - test -f docs/manual.txt && - test ! -f obj.o && - test ! -d build +HEAD is now at 294b13e Initial commit +line 4 +ok 7 - reset --merge is ok again when switching back (1) +expecting success of 7110.8 'reset --keep fails with changes in index in files it touches': + git reset --hard second && + echo "line 5" >> file1 && + git add file1 && + test_must_fail git reset --keep HEAD^ -Removing build/ -Removing obj.o -ok 21 - git clean -d -X +HEAD is now at 91b6f65 add line 4 to file1 +error: Entry 'file1' would be overwritten by merge. Cannot merge. +fatal: Could not reset index file to revision 'HEAD^'. +ok 8 - reset --keep fails with changes in index in files it touches -expecting success of 7300.22 'git clean -d -X with ignored tracked directory': +expecting success of 7110.9 'reset --merge discards changes added to index (2)': + git reset --hard second && + echo "line 4" >> file2 && + git add file2 && + git reset --merge HEAD^ && + ! grep 4 file2 && + test "$(git rev-parse HEAD)" = "$(git rev-parse initial)" && + test -z "$(git diff)" && + test -z "$(git diff --cached)" - mkdir -p build docs && - touch a.out src/part3.c docs/manual.txt obj.o build/lib.so && - git clean -d -X -e src && - test -f Makefile && - test -f README && - test -f src/part1.c && - test -f src/part2.c && - test -f a.out && - test ! -f src/part3.c && - test -f docs/manual.txt && - test ! -f obj.o && - test ! -d build +HEAD is now at 91b6f65 add line 4 to file1 +ok 9 - reset --merge discards changes added to index (2) +expecting success of 7110.10 'reset --merge is ok again when switching back (2)': + git reset --hard initial && + git reset --merge second && + ! grep 4 file2 && + grep 4 file1 && + test "$(git rev-parse HEAD)" = "$(git rev-parse second)" && + test -z "$(git diff --cached)" -Removing build/ -Removing obj.o -Removing src/part3.c -ok 22 - git clean -d -X with ignored tracked directory +HEAD is now at 294b13e Initial commit +line 4 +ok 10 - reset --merge is ok again when switching back (2) -expecting success of 7300.23 'clean.requireForce defaults to true': +expecting success of 7110.11 'reset --keep keeps changes it does not touch': + git reset --hard second && + echo "line 4" >> file2 && + git add file2 && + git reset --keep HEAD^ && + grep 4 file2 && + test "$(git rev-parse HEAD)" = "$(git rev-parse initial)" && + test -z "$(git diff --cached)" - git config --unset clean.requireForce && - test_must_fail git clean +HEAD is now at 91b6f65 add line 4 to file1 +line 4 +ok 11 - reset --keep keeps changes it does not touch +expecting success of 7110.12 'reset --keep keeps changes when switching back': + git reset --keep second && + grep 4 file2 && + grep 4 file1 && + test "$(git rev-parse HEAD)" = "$(git rev-parse second)" && + test -z "$(git diff --cached)" -fatal: clean.requireForce defaults to true and neither -i, -n, nor -f given; refusing to clean -ok 23 - clean.requireForce defaults to true +line 4 +line 4 +ok 12 - reset --keep keeps changes when switching back -expecting success of 7300.24 'clean.requireForce': +expecting success of 7110.13 'reset --merge fails with changes in file it touches': + git reset --hard second && + echo "line 5" >> file1 && + test_tick && + git commit -m "add line 5" file1 && + sed -e "s/line 1/changed line 1/" file3 && + mv file3 file1 && + test_must_fail git reset --merge HEAD^ 2>err.log && + grep file1 err.log | grep "not uptodate" - git config clean.requireForce true && - test_must_fail git clean +HEAD is now at 91b6f65 add line 4 to file1 +[master 7799e7c] add line 5 + Author: A U Thor + 1 file changed, 1 insertion(+) +error: Entry 'file1' not uptodate. Cannot merge. +ok 13 - reset --merge fails with changes in file it touches +expecting success of 7110.14 'reset --keep fails with changes in file it touches': + git reset --hard second && + echo "line 5" >> file1 && + test_tick && + git commit -m "add line 5" file1 && + sed -e "s/line 1/changed line 1/" file3 && + mv file3 file1 && + test_must_fail git reset --keep HEAD^ 2>err.log && + grep file1 err.log | grep "not uptodate" -fatal: clean.requireForce set to true and neither -i, -n, nor -f given; refusing to clean -ok 24 - clean.requireForce +HEAD is now at 91b6f65 add line 4 to file1 +[master f1894d3] add line 5 + Author: A U Thor + 1 file changed, 1 insertion(+) +error: Entry 'file1' not uptodate. Cannot merge. +ok 14 - reset --keep fails with changes in file it touches -expecting success of 7300.25 'clean.requireForce and -n': +expecting success of 7110.15 'setup 3 different branches': + git reset --hard second && + git branch branch1 && + git branch branch2 && + git branch branch3 && + git checkout branch1 && + echo "line 5 in branch1" >> file1 && + test_tick && + git commit -a -m "change in branch1" && + git checkout branch2 && + echo "line 5 in branch2" >> file1 && + test_tick && + git commit -a -m "change in branch2" && + git tag third && + git checkout branch3 && + echo a new file >file3 && + rm -f file1 && + git add file3 && + test_tick && + git commit -a -m "change in branch3" - mkdir -p build docs && - touch a.out src/part3.c docs/manual.txt obj.o build/lib.so && - git clean -n && - test -f Makefile && - test -f README && - test -f src/part1.c && - test -f src/part2.c && - test -f a.out && - test -f src/part3.c && - test -f docs/manual.txt && - test -f obj.o && - test -f build/lib.so +HEAD is now at 91b6f65 add line 4 to file1 +Switched to branch 'branch1' +[branch1 4afd189] change in branch1 + Author: A U Thor + 1 file changed, 1 insertion(+) +Switched to branch 'branch2' +[branch2 077fd6d] change in branch2 + Author: A U Thor + 1 file changed, 1 insertion(+) +Switched to branch 'branch3' +[branch3 05419f2] change in branch3 + Author: A U Thor + 2 files changed, 1 insertion(+), 4 deletions(-) + delete mode 100644 file1 + create mode 100644 file3 +ok 15 - setup 3 different branches +expecting success of 7110.16 '"reset --merge HEAD^" is ok with pending merge': + git checkout third && + test_must_fail git merge branch1 && + git reset --merge HEAD^ && + test "$(git rev-parse HEAD)" = "$(git rev-parse second)" && + test -z "$(git diff --cached)" && + test -z "$(git diff)" -Would remove a.out -Would remove src/part3.c -ok 25 - clean.requireForce and -n +Note: switching to 'third'. -expecting success of 7300.26 'clean.requireForce and -f': +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. - git clean -f && - test -f README && - test -f src/part1.c && - test -f src/part2.c && - test ! -f a.out && - test ! -f src/part3.c && - test -f docs/manual.txt && - test -f obj.o && - test -f build/lib.so +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: + git switch -c -Removing a.out -Removing src/part3.c -ok 26 - clean.requireForce and -f +Or undo this operation with: -expecting success of 7300.27 'core.excludesfile': + git switch - - echo excludes >excludes && - echo included >included && - git config core.excludesfile excludes && - output=$(git clean -n excludes included 2>&1) && - expr "$output" : ".*included" >/dev/null && - ! expr "$output" : ".*excludes" >/dev/null +Turn off this advice by setting config variable advice.detachedHead to false +HEAD is now at 077fd6d change in branch2 +Merging: +077fd6d change in branch2 +virtual branch1 +found 1 common ancestor: +91b6f65 add line 4 to file1 +Auto-merging file1 +CONFLICT (content): Merge conflict in file1 +Automatic merge failed; fix conflicts and then commit the result. +ok 16 - "reset --merge HEAD^" is ok with pending merge -ok 27 - core.excludesfile +expecting success of 7110.17 '"reset --keep HEAD^" fails with pending merge': + git reset --hard third && + test_must_fail git merge branch1 && + test_must_fail git reset --keep HEAD^ 2>err.log && + test_i18ngrep "middle of a merge" err.log -checking prerequisite: SANITY +HEAD is now at 077fd6d change in branch2 +Merging: +077fd6d change in branch2 +virtual branch1 +found 1 common ancestor: +91b6f65 add line 4 to file1 +Auto-merging file1 +CONFLICT (content): Merge conflict in file1 +Automatic merge failed; fix conflicts and then commit the result. +checking prerequisite: C_LOCALE_OUTPUT -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SANITY" && +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && ( - cd "$TRASH_DIRECTORY/prereq-test-dir-SANITY" && - mkdir SANETESTD.1 SANETESTD.2 && - - chmod +w SANETESTD.1 SANETESTD.2 && - >SANETESTD.1/x 2>SANETESTD.2/x && - chmod -w SANETESTD.1 && - chmod -r SANETESTD.1/x && - chmod -rx SANETESTD.2 || - BUG "cannot prepare SANETESTD" + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false - ! test -r SANETESTD.1/x && - ! rm SANETESTD.1/x && ! test -f SANETESTD.2/x - status=$? +) +prerequisite C_LOCALE_OUTPUT ok +fatal: Cannot do a keep reset in the middle of a merge. +ok 17 - "reset --keep HEAD^" fails with pending merge - chmod +rwx SANETESTD.1 SANETESTD.2 && - rm -rf SANETESTD.1 SANETESTD.2 || - BUG "cannot clean SANETESTD" - return $status +expecting success of 7110.18 '"reset --merge HEAD" is ok with pending merge': + git reset --hard third && + test_must_fail git merge branch1 && + git reset --merge HEAD && + test "$(git rev-parse HEAD)" = "$(git rev-parse third)" && + test -z "$(git diff --cached)" && + test -z "$(git diff)" -) -rm: cannot remove 'SANETESTD.1/x': Permission denied -prerequisite SANITY ok -expecting success of 7300.28 'removal failure': +HEAD is now at 077fd6d change in branch2 +Merging: +077fd6d change in branch2 +virtual branch1 +found 1 common ancestor: +91b6f65 add line 4 to file1 +Auto-merging file1 +CONFLICT (content): Merge conflict in file1 +Automatic merge failed; fix conflicts and then commit the result. +ok 18 - "reset --merge HEAD" is ok with pending merge - mkdir foo && - touch foo/bar && - test_when_finished "chmod 755 foo" && - (exec err.log && + test_i18ngrep "middle of a merge" err.log -warning: could not open directory 'foo/': Permission denied -warning: failed to remove foo/: Directory not empty -Removing docs/ -Removing included -ok 28 - removal failure +HEAD is now at 077fd6d change in branch2 +Merging: +077fd6d change in branch2 +virtual branch1 +found 1 common ancestor: +91b6f65 add line 4 to file1 +Auto-merging file1 +CONFLICT (content): Merge conflict in file1 +Automatic merge failed; fix conflicts and then commit the result. +fatal: Cannot do a keep reset in the middle of a merge. +ok 19 - "reset --keep HEAD" fails with pending merge -expecting success of 7300.29 'nested git work tree': - rm -fr foo bar baz && - mkdir -p foo bar baz/boo && - ( - cd foo && - git init && - test_commit nested hello.world - ) && - ( - cd bar && - >goodbye.people - ) && - ( - cd baz/boo && - git init && - test_commit deeply.nested deeper.world - ) && - git clean -f -d && - test -f foo/.git/index && - test -f foo/hello.world && - test -f baz/boo/.git/index && - test -f baz/boo/deeper.world && - ! test -d bar +expecting success of 7110.20 '--merge is ok with added/deleted merge': + git reset --hard third && + rm -f file2 && + test_must_fail git merge branch3 && + ! test -f file2 && + test -f file3 && + git diff --exit-code file3 && + git diff --exit-code branch3 file3 && + git reset --merge HEAD && + ! test -f file3 && + ! test -f file2 && + git diff --exit-code --cached -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7300-clean/foo/.git/ -[master (root-commit) abd8674] nested - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 hello.world -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7300-clean/baz/boo/.git/ -[master (root-commit) 3f7f1fc] deeply.nested - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 deeper.world -Removing bar/ -Skipping repository baz/boo -ok 29 - nested git work tree +HEAD is now at 077fd6d change in branch2 +Merging: +077fd6d change in branch2 +virtual branch3 +found 1 common ancestor: +91b6f65 add line 4 to file1 +CONFLICT (modify/delete): file1 deleted in branch3 and modified in HEAD. Version HEAD of file1 left in tree. +Automatic merge failed; fix conflicts and then commit the result. +ok 20 - --merge is ok with added/deleted merge -expecting success of 7300.30 'should clean things that almost look like git but are not': - rm -fr almost_git almost_bare_git almost_submodule && - mkdir -p almost_git/.git/objects && - mkdir -p almost_git/.git/refs && - cat >almost_git/.git/HEAD <<-\EOF && - garbage - EOF - cp -r almost_git/.git/ almost_bare_git && - mkdir almost_submodule/ && - cat >almost_submodule/.git <<-\EOF && - garbage - EOF - test_when_finished "rm -rf almost_*" && - git clean -f -d && - test_path_is_missing almost_git && - test_path_is_missing almost_bare_git && - test_path_is_missing almost_submodule +expecting success of 7110.21 '--keep fails with added/deleted merge': + git reset --hard third && + rm -f file2 && + test_must_fail git merge branch3 && + ! test -f file2 && + test -f file3 && + git diff --exit-code file3 && + git diff --exit-code branch3 file3 && + test_must_fail git reset --keep HEAD 2>err.log && + test_i18ngrep "middle of a merge" err.log -Removing almost_bare_git/ -Removing almost_git/ -Removing almost_submodule/ -Skipping repository baz/boo -ok 30 - should clean things that almost look like git but are not +HEAD is now at 077fd6d change in branch2 +Merging: +077fd6d change in branch2 +virtual branch3 +found 1 common ancestor: +91b6f65 add line 4 to file1 +CONFLICT (modify/delete): file1 deleted in branch3 and modified in HEAD. Version HEAD of file1 left in tree. +Automatic merge failed; fix conflicts and then commit the result. +fatal: Cannot do a keep reset in the middle of a merge. +ok 21 - --keep fails with added/deleted merge -expecting success of 7300.31 'should not clean submodules': - rm -fr repo to_clean sub1 sub2 && - mkdir repo to_clean && - ( - cd repo && - git init && - test_commit msg hello.world - ) && - test_config_global protocol.file.allow always && - git submodule add ./repo/.git sub1 && - git commit -m "sub1" && - git branch before_sub2 && - git submodule add ./repo/.git sub2 && - git commit -m "sub2" && - git checkout before_sub2 && - >to_clean/should_clean.this && - git clean -f -d && - test_path_is_file repo/.git/index && - test_path_is_file repo/hello.world && - test_path_is_file sub1/.git && - test_path_is_file sub1/hello.world && - test_path_is_file sub2/.git && - test_path_is_file sub2/hello.world && - test_path_is_missing to_clean +# passed all 21 test(s) +1..21 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t7111-reset-table.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7111-reset-table/.git/ +expecting success of 7111.1 'creating initial commits': + test_commit E file1 && + test_commit D file1 && + test_commit C file1 -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7300-clean/repo/.git/ -[master (root-commit) 1af9d3b] msg +[master (root-commit) 8464dc0] E Author: A U Thor 1 file changed, 1 insertion(+) - create mode 100644 hello.world -Cloning into '/build/git-2.30.2/t/trash directory.t7300-clean/sub1'... -done. -[master a5d0902] sub1 + create mode 100644 file1 +[master 2131783] D Author: A U Thor - 4 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 100644 README - create mode 100644 src/part2.c - create mode 160000 sub1 -Cloning into '/build/git-2.30.2/t/trash directory.t7300-clean/sub2'... -done. -[master 8525980] sub2 + 1 file changed, 1 insertion(+), 1 deletion(-) +[master 4bb0b07] C Author: A U Thor - 2 files changed, 4 insertions(+) - create mode 160000 sub2 -warning: unable to rmdir 'sub2': Directory not empty -Switched to branch 'before_sub2' -Removing .gitconfig -Skipping repository baz/boo -Removing to_clean/ -ok 31 - should not clean submodules - -expecting success of 7300.32 'should avoid cleaning possible submodules': - rm -fr to_clean possible_sub1 && - mkdir to_clean possible_sub1 && - test_when_finished "rm -rf possible_sub*" && - echo "gitdir: foo" >possible_sub1/.git && - >possible_sub1/hello.world && - chmod 0 possible_sub1/.git && - >to_clean/should_clean.this && - git clean -f -d && - test_path_is_file possible_sub1/.git && - test_path_is_file possible_sub1/hello.world && - test_path_is_missing to_clean - -Skipping repository baz/boo -Removing to_clean/ -ok 32 - should avoid cleaning possible submodules + 1 file changed, 1 insertion(+), 1 deletion(-) +ok 1 - creating initial commits -expecting success of 7300.33 'nested (empty) git should be kept': - rm -fr empty_repo to_clean && - git init empty_repo && - mkdir to_clean && - >to_clean/should_clean.this && - git clean -f -d && - test_path_is_file empty_repo/.git/HEAD && - test_path_is_missing to_clean +expecting success of 7111.2 'check: A B C D --soft A B D': + git reset --hard C && + if test "$I1" != "$H1" + then + echo "$I1" >file1 && + git add file1 + fi && + if test "$W1" != "$I1" + then + echo "$W1" >file1 + fi && + if test "$W2" != "XXXXX" + then + git reset --$opt $T && + test "$(cat file1)" = "$W2" && + git checkout-index -f -- file1 && + test "$(cat file1)" = "$I2" && + git checkout -f HEAD -- file1 && + test "$(cat file1)" = "$H2" + else + test_must_fail git reset --$opt $T + fi + +HEAD is now at 4bb0b07 C +ok 2 - check: A B C D --soft A B D -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7300-clean/empty_repo/.git/ -Skipping repository baz/boo -Removing to_clean/ -ok 33 - nested (empty) git should be kept +expecting success of 7111.3 'check: A B C D --mixed A D D': + git reset --hard C && + if test "$I1" != "$H1" + then + echo "$I1" >file1 && + git add file1 + fi && + if test "$W1" != "$I1" + then + echo "$W1" >file1 + fi && + if test "$W2" != "XXXXX" + then + git reset --$opt $T && + test "$(cat file1)" = "$W2" && + git checkout-index -f -- file1 && + test "$(cat file1)" = "$I2" && + git checkout -f HEAD -- file1 && + test "$(cat file1)" = "$H2" + else + test_must_fail git reset --$opt $T + fi + +HEAD is now at 4bb0b07 C +Unstaged changes after reset: +M file1 +ok 3 - check: A B C D --mixed A D D -expecting success of 7300.34 'nested bare repositories should be cleaned': - rm -fr bare1 bare2 subdir && - git init --bare bare1 && - git clone --local --bare . bare2 && - mkdir subdir && - cp -r bare2 subdir/bare3 && - git clean -f -d && - test_path_is_missing bare1 && - test_path_is_missing bare2 && - test_path_is_missing subdir +expecting success of 7111.4 'check: A B C D --hard D D D': + git reset --hard C && + if test "$I1" != "$H1" + then + echo "$I1" >file1 && + git add file1 + fi && + if test "$W1" != "$I1" + then + echo "$W1" >file1 + fi && + if test "$W2" != "XXXXX" + then + git reset --$opt $T && + test "$(cat file1)" = "$W2" && + git checkout-index -f -- file1 && + test "$(cat file1)" = "$I2" && + git checkout -f HEAD -- file1 && + test "$(cat file1)" = "$H2" + else + test_must_fail git reset --$opt $T + fi + +HEAD is now at 4bb0b07 C +HEAD is now at 2131783 D +ok 4 - check: A B C D --hard D D D -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7300-clean/bare1/ -Cloning into bare repository 'bare2'... -done. -Removing bare1/ -Removing bare2/ -Skipping repository baz/boo -Removing subdir/ -ok 34 - nested bare repositories should be cleaned +expecting success of 7111.5 'check: A B C D --merge XXXXX ': + git reset --hard C && + if test "$I1" != "$H1" + then + echo "$I1" >file1 && + git add file1 + fi && + if test "$W1" != "$I1" + then + echo "$W1" >file1 + fi && + if test "$W2" != "XXXXX" + then + git reset --$opt $T && + test "$(cat file1)" = "$W2" && + git checkout-index -f -- file1 && + test "$(cat file1)" = "$I2" && + git checkout -f HEAD -- file1 && + test "$(cat file1)" = "$H2" + else + test_must_fail git reset --$opt $T + fi + +HEAD is now at 4bb0b07 C +error: Entry 'file1' not uptodate. Cannot merge. +fatal: Could not reset index file to revision 'D'. +ok 5 - check: A B C D --merge XXXXX -checking known breakage of 7300.35 'nested (empty) bare repositories should be cleaned even when in .git': - rm -fr strange_bare && - mkdir strange_bare && - git init --bare strange_bare/.git && - git clean -f -d && - test_path_is_missing strange_bare +expecting success of 7111.6 'check: A B C D --keep XXXXX ': + git reset --hard C && + if test "$I1" != "$H1" + then + echo "$I1" >file1 && + git add file1 + fi && + if test "$W1" != "$I1" + then + echo "$W1" >file1 + fi && + if test "$W2" != "XXXXX" + then + git reset --$opt $T && + test "$(cat file1)" = "$W2" && + git checkout-index -f -- file1 && + test "$(cat file1)" = "$I2" && + git checkout -f HEAD -- file1 && + test "$(cat file1)" = "$H2" + else + test_must_fail git reset --$opt $T + fi + +HEAD is now at 4bb0b07 C +error: Entry 'file1' would be overwritten by merge. Cannot merge. +fatal: Could not reset index file to revision 'D'. +ok 6 - check: A B C D --keep XXXXX -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7300-clean/strange_bare/.git/ -Skipping repository baz/boo -Path exists: -drwxr-xr-x 3 pbuilder1 pbuilder1 4096 Apr 29 16:42 strange_bare -strange_bare -not ok 35 - nested (empty) bare repositories should be cleaned even when in .git # TODO known breakage +expecting success of 7111.7 'check: A B C C --soft A B C': + git reset --hard C && + if test "$I1" != "$H1" + then + echo "$I1" >file1 && + git add file1 + fi && + if test "$W1" != "$I1" + then + echo "$W1" >file1 + fi && + if test "$W2" != "XXXXX" + then + git reset --$opt $T && + test "$(cat file1)" = "$W2" && + git checkout-index -f -- file1 && + test "$(cat file1)" = "$I2" && + git checkout -f HEAD -- file1 && + test "$(cat file1)" = "$H2" + else + test_must_fail git reset --$opt $T + fi + +HEAD is now at 4bb0b07 C +ok 7 - check: A B C C --soft A B C -checking known breakage of 7300.36 'nested (non-empty) bare repositories should be cleaned even when in .git': - rm -fr strange_bare && - mkdir strange_bare && - git clone --local --bare . strange_bare/.git && - git clean -f -d && - test_path_is_missing strange_bare +expecting success of 7111.8 'check: A B C C --mixed A C C': + git reset --hard C && + if test "$I1" != "$H1" + then + echo "$I1" >file1 && + git add file1 + fi && + if test "$W1" != "$I1" + then + echo "$W1" >file1 + fi && + if test "$W2" != "XXXXX" + then + git reset --$opt $T && + test "$(cat file1)" = "$W2" && + git checkout-index -f -- file1 && + test "$(cat file1)" = "$I2" && + git checkout -f HEAD -- file1 && + test "$(cat file1)" = "$H2" + else + test_must_fail git reset --$opt $T + fi + +HEAD is now at 4bb0b07 C +Unstaged changes after reset: +M file1 +ok 8 - check: A B C C --mixed A C C -Cloning into bare repository 'strange_bare/.git'... -done. -Skipping repository baz/boo -Path exists: -drwxr-xr-x 3 pbuilder1 pbuilder1 4096 Apr 29 16:42 strange_bare -strange_bare -not ok 36 - nested (non-empty) bare repositories should be cleaned even when in .git # TODO known breakage +expecting success of 7111.9 'check: A B C C --hard C C C': + git reset --hard C && + if test "$I1" != "$H1" + then + echo "$I1" >file1 && + git add file1 + fi && + if test "$W1" != "$I1" + then + echo "$W1" >file1 + fi && + if test "$W2" != "XXXXX" + then + git reset --$opt $T && + test "$(cat file1)" = "$W2" && + git checkout-index -f -- file1 && + test "$(cat file1)" = "$I2" && + git checkout -f HEAD -- file1 && + test "$(cat file1)" = "$H2" + else + test_must_fail git reset --$opt $T + fi + +HEAD is now at 4bb0b07 C +HEAD is now at 4bb0b07 C +ok 9 - check: A B C C --hard C C C -expecting success of 7300.37 'giving path in nested git work tree will NOT remove it': - rm -fr repo && - mkdir repo && - ( - cd repo && - git init && - mkdir -p bar/baz && - test_commit msg bar/baz/hello.world - ) && - git clean -f -d repo/bar/baz && - test_path_is_file repo/.git/HEAD && - test_path_is_dir repo/bar/ && - test_path_is_file repo/bar/baz/hello.world +expecting success of 7111.10 'check: A B C C --merge XXXXX ': + git reset --hard C && + if test "$I1" != "$H1" + then + echo "$I1" >file1 && + git add file1 + fi && + if test "$W1" != "$I1" + then + echo "$W1" >file1 + fi && + if test "$W2" != "XXXXX" + then + git reset --$opt $T && + test "$(cat file1)" = "$W2" && + git checkout-index -f -- file1 && + test "$(cat file1)" = "$I2" && + git checkout -f HEAD -- file1 && + test "$(cat file1)" = "$H2" + else + test_must_fail git reset --$opt $T + fi + +HEAD is now at 4bb0b07 C +error: Entry 'file1' not uptodate. Cannot merge. +fatal: Could not reset index file to revision 'C'. +ok 10 - check: A B C C --merge XXXXX -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7300-clean/repo/.git/ -[master (root-commit) 14dba50] msg - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 bar/baz/hello.world -ok 37 - giving path in nested git work tree will NOT remove it +expecting success of 7111.11 'check: A B C C --keep A C C': + git reset --hard C && + if test "$I1" != "$H1" + then + echo "$I1" >file1 && + git add file1 + fi && + if test "$W1" != "$I1" + then + echo "$W1" >file1 + fi && + if test "$W2" != "XXXXX" + then + git reset --$opt $T && + test "$(cat file1)" = "$W2" && + git checkout-index -f -- file1 && + test "$(cat file1)" = "$I2" && + git checkout -f HEAD -- file1 && + test "$(cat file1)" = "$H2" + else + test_must_fail git reset --$opt $T + fi + +HEAD is now at 4bb0b07 C +ok 11 - check: A B C C --keep A C C -expecting success of 7300.38 'giving path to nested .git will not remove it': - rm -fr repo && - mkdir repo untracked && - ( - cd repo && - git init && - test_commit msg hello.world - ) && - git clean -f -d repo/.git && - test_path_is_file repo/.git/HEAD && - test_path_is_dir repo/.git/refs && - test_path_is_dir repo/.git/objects && - test_path_is_dir untracked/ +expecting success of 7111.12 'check: B B C D --soft B B D': + git reset --hard C && + if test "$I1" != "$H1" + then + echo "$I1" >file1 && + git add file1 + fi && + if test "$W1" != "$I1" + then + echo "$W1" >file1 + fi && + if test "$W2" != "XXXXX" + then + git reset --$opt $T && + test "$(cat file1)" = "$W2" && + git checkout-index -f -- file1 && + test "$(cat file1)" = "$I2" && + git checkout -f HEAD -- file1 && + test "$(cat file1)" = "$H2" + else + test_must_fail git reset --$opt $T + fi + +HEAD is now at 4bb0b07 C +ok 12 - check: B B C D --soft B B D -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7300-clean/repo/.git/ -[master (root-commit) 1af9d3b] msg - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 hello.world -ok 38 - giving path to nested .git will not remove it +expecting success of 7111.13 'check: B B C D --mixed B D D': + git reset --hard C && + if test "$I1" != "$H1" + then + echo "$I1" >file1 && + git add file1 + fi && + if test "$W1" != "$I1" + then + echo "$W1" >file1 + fi && + if test "$W2" != "XXXXX" + then + git reset --$opt $T && + test "$(cat file1)" = "$W2" && + git checkout-index -f -- file1 && + test "$(cat file1)" = "$I2" && + git checkout -f HEAD -- file1 && + test "$(cat file1)" = "$H2" + else + test_must_fail git reset --$opt $T + fi + +HEAD is now at 4bb0b07 C +Unstaged changes after reset: +M file1 +ok 13 - check: B B C D --mixed B D D -expecting success of 7300.39 'giving path to nested .git/ will NOT remove contents': - rm -fr repo untracked && - mkdir repo untracked && - ( - cd repo && - git init && - test_commit msg hello.world - ) && - git clean -f -d repo/.git/ && - test_path_is_dir repo/.git && - test_path_is_file repo/.git/HEAD && - test_path_is_dir untracked/ +expecting success of 7111.14 'check: B B C D --hard D D D': + git reset --hard C && + if test "$I1" != "$H1" + then + echo "$I1" >file1 && + git add file1 + fi && + if test "$W1" != "$I1" + then + echo "$W1" >file1 + fi && + if test "$W2" != "XXXXX" + then + git reset --$opt $T && + test "$(cat file1)" = "$W2" && + git checkout-index -f -- file1 && + test "$(cat file1)" = "$I2" && + git checkout -f HEAD -- file1 && + test "$(cat file1)" = "$H2" + else + test_must_fail git reset --$opt $T + fi + +HEAD is now at 4bb0b07 C +HEAD is now at 2131783 D +ok 14 - check: B B C D --hard D D D -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7300-clean/repo/.git/ -[master (root-commit) 1af9d3b] msg - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 hello.world -ok 39 - giving path to nested .git/ will NOT remove contents +expecting success of 7111.15 'check: B B C D --merge D D D': + git reset --hard C && + if test "$I1" != "$H1" + then + echo "$I1" >file1 && + git add file1 + fi && + if test "$W1" != "$I1" + then + echo "$W1" >file1 + fi && + if test "$W2" != "XXXXX" + then + git reset --$opt $T && + test "$(cat file1)" = "$W2" && + git checkout-index -f -- file1 && + test "$(cat file1)" = "$I2" && + git checkout -f HEAD -- file1 && + test "$(cat file1)" = "$H2" + else + test_must_fail git reset --$opt $T + fi + +HEAD is now at 4bb0b07 C +ok 15 - check: B B C D --merge D D D -expecting success of 7300.40 'force removal of nested git work tree': - rm -fr foo bar baz && - mkdir -p foo bar baz/boo && - ( - cd foo && - git init && - test_commit nested hello.world - ) && - ( - cd bar && - >goodbye.people - ) && - ( - cd baz/boo && - git init && - test_commit deeply.nested deeper.world - ) && - git clean -f -f -d && - ! test -d foo && - ! test -d bar && - ! test -d baz +expecting success of 7111.16 'check: B B C D --keep XXXXX ': + git reset --hard C && + if test "$I1" != "$H1" + then + echo "$I1" >file1 && + git add file1 + fi && + if test "$W1" != "$I1" + then + echo "$W1" >file1 + fi && + if test "$W2" != "XXXXX" + then + git reset --$opt $T && + test "$(cat file1)" = "$W2" && + git checkout-index -f -- file1 && + test "$(cat file1)" = "$I2" && + git checkout -f HEAD -- file1 && + test "$(cat file1)" = "$H2" + else + test_must_fail git reset --$opt $T + fi + +HEAD is now at 4bb0b07 C +error: Entry 'file1' would be overwritten by merge. Cannot merge. +fatal: Could not reset index file to revision 'D'. +ok 16 - check: B B C D --keep XXXXX -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7300-clean/foo/.git/ -[master (root-commit) abd8674] nested - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 hello.world -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7300-clean/baz/boo/.git/ -[master (root-commit) 3f7f1fc] deeply.nested - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 deeper.world -Removing bar/ -Removing baz/ -Removing empty_repo/ -Removing foo/ -Removing repo/ -Removing strange_bare/ -Removing sub2/ -Removing untracked/ -ok 40 - force removal of nested git work tree +expecting success of 7111.17 'check: B B C C --soft B B C': + git reset --hard C && + if test "$I1" != "$H1" + then + echo "$I1" >file1 && + git add file1 + fi && + if test "$W1" != "$I1" + then + echo "$W1" >file1 + fi && + if test "$W2" != "XXXXX" + then + git reset --$opt $T && + test "$(cat file1)" = "$W2" && + git checkout-index -f -- file1 && + test "$(cat file1)" = "$I2" && + git checkout -f HEAD -- file1 && + test "$(cat file1)" = "$H2" + else + test_must_fail git reset --$opt $T + fi + +HEAD is now at 4bb0b07 C +ok 17 - check: B B C C --soft B B C -expecting success of 7300.41 'git clean -e': - rm -fr repo && - mkdir repo && - ( - cd repo && - git init && - touch known 1 2 3 && - git add known && - git clean -f -e 1 -e 2 && - test -e 1 && - test -e 2 && - ! (test -e 3) && - test -e known - ) +expecting success of 7111.18 'check: B B C C --mixed B C C': + git reset --hard C && + if test "$I1" != "$H1" + then + echo "$I1" >file1 && + git add file1 + fi && + if test "$W1" != "$I1" + then + echo "$W1" >file1 + fi && + if test "$W2" != "XXXXX" + then + git reset --$opt $T && + test "$(cat file1)" = "$W2" && + git checkout-index -f -- file1 && + test "$(cat file1)" = "$I2" && + git checkout -f HEAD -- file1 && + test "$(cat file1)" = "$H2" + else + test_must_fail git reset --$opt $T + fi + +HEAD is now at 4bb0b07 C +Unstaged changes after reset: +M file1 +ok 18 - check: B B C C --mixed B C C -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7300-clean/repo/.git/ -Removing 3 -ok 41 - git clean -e +expecting success of 7111.19 'check: B B C C --hard C C C': + git reset --hard C && + if test "$I1" != "$H1" + then + echo "$I1" >file1 && + git add file1 + fi && + if test "$W1" != "$I1" + then + echo "$W1" >file1 + fi && + if test "$W2" != "XXXXX" + then + git reset --$opt $T && + test "$(cat file1)" = "$W2" && + git checkout-index -f -- file1 && + test "$(cat file1)" = "$I2" && + git checkout -f HEAD -- file1 && + test "$(cat file1)" = "$H2" + else + test_must_fail git reset --$opt $T + fi + +HEAD is now at 4bb0b07 C +HEAD is now at 4bb0b07 C +ok 19 - check: B B C C --hard C C C -expecting success of 7300.42 'git clean -d with an unreadable empty directory': - mkdir foo && - chmod a= foo && - git clean -dfx foo && - ! test -d foo +expecting success of 7111.20 'check: B B C C --merge C C C': + git reset --hard C && + if test "$I1" != "$H1" + then + echo "$I1" >file1 && + git add file1 + fi && + if test "$W1" != "$I1" + then + echo "$W1" >file1 + fi && + if test "$W2" != "XXXXX" + then + git reset --$opt $T && + test "$(cat file1)" = "$W2" && + git checkout-index -f -- file1 && + test "$(cat file1)" = "$I2" && + git checkout -f HEAD -- file1 && + test "$(cat file1)" = "$H2" + else + test_must_fail git reset --$opt $T + fi + +HEAD is now at 4bb0b07 C +ok 20 - check: B B C C --merge C C C -warning: could not open directory 'foo/': Permission denied -Removing foo/ -ok 42 - git clean -d with an unreadable empty directory +expecting success of 7111.21 'check: B B C C --keep B C C': + git reset --hard C && + if test "$I1" != "$H1" + then + echo "$I1" >file1 && + git add file1 + fi && + if test "$W1" != "$I1" + then + echo "$W1" >file1 + fi && + if test "$W2" != "XXXXX" + then + git reset --$opt $T && + test "$(cat file1)" = "$W2" && + git checkout-index -f -- file1 && + test "$(cat file1)" = "$I2" && + git checkout -f HEAD -- file1 && + test "$(cat file1)" = "$H2" + else + test_must_fail git reset --$opt $T + fi + +HEAD is now at 4bb0b07 C +ok 21 - check: B B C C --keep B C C -expecting success of 7300.43 'git clean -d respects pathspecs (dir is prefix of pathspec)': - mkdir -p foo && - mkdir -p foobar && - git clean -df foobar && - test_path_is_dir foo && - test_path_is_missing foobar +expecting success of 7111.22 'check: B C C D --soft B C D': + git reset --hard C && + if test "$I1" != "$H1" + then + echo "$I1" >file1 && + git add file1 + fi && + if test "$W1" != "$I1" + then + echo "$W1" >file1 + fi && + if test "$W2" != "XXXXX" + then + git reset --$opt $T && + test "$(cat file1)" = "$W2" && + git checkout-index -f -- file1 && + test "$(cat file1)" = "$I2" && + git checkout -f HEAD -- file1 && + test "$(cat file1)" = "$H2" + else + test_must_fail git reset --$opt $T + fi + +HEAD is now at 4bb0b07 C +ok 22 - check: B C C D --soft B C D -Removing foobar/ -ok 43 - git clean -d respects pathspecs (dir is prefix of pathspec) +expecting success of 7111.23 'check: B C C D --mixed B D D': + git reset --hard C && + if test "$I1" != "$H1" + then + echo "$I1" >file1 && + git add file1 + fi && + if test "$W1" != "$I1" + then + echo "$W1" >file1 + fi && + if test "$W2" != "XXXXX" + then + git reset --$opt $T && + test "$(cat file1)" = "$W2" && + git checkout-index -f -- file1 && + test "$(cat file1)" = "$I2" && + git checkout -f HEAD -- file1 && + test "$(cat file1)" = "$H2" + else + test_must_fail git reset --$opt $T + fi + +HEAD is now at 4bb0b07 C +Unstaged changes after reset: +M file1 +ok 23 - check: B C C D --mixed B D D -expecting success of 7300.44 'git clean -d respects pathspecs (pathspec is prefix of dir)': - mkdir -p foo && - mkdir -p foobar && - git clean -df foo && - test_path_is_missing foo && - test_path_is_dir foobar +expecting success of 7111.24 'check: B C C D --hard D D D': + git reset --hard C && + if test "$I1" != "$H1" + then + echo "$I1" >file1 && + git add file1 + fi && + if test "$W1" != "$I1" + then + echo "$W1" >file1 + fi && + if test "$W2" != "XXXXX" + then + git reset --$opt $T && + test "$(cat file1)" = "$W2" && + git checkout-index -f -- file1 && + test "$(cat file1)" = "$I2" && + git checkout -f HEAD -- file1 && + test "$(cat file1)" = "$H2" + else + test_must_fail git reset --$opt $T + fi + +HEAD is now at 4bb0b07 C +HEAD is now at 2131783 D +ok 24 - check: B C C D --hard D D D -Removing foo/ -ok 44 - git clean -d respects pathspecs (pathspec is prefix of dir) +expecting success of 7111.25 'check: B C C D --merge XXXXX ': + git reset --hard C && + if test "$I1" != "$H1" + then + echo "$I1" >file1 && + git add file1 + fi && + if test "$W1" != "$I1" + then + echo "$W1" >file1 + fi && + if test "$W2" != "XXXXX" + then + git reset --$opt $T && + test "$(cat file1)" = "$W2" && + git checkout-index -f -- file1 && + test "$(cat file1)" = "$I2" && + git checkout -f HEAD -- file1 && + test "$(cat file1)" = "$H2" + else + test_must_fail git reset --$opt $T + fi + +HEAD is now at 4bb0b07 C +error: Entry 'file1' not uptodate. Cannot merge. +fatal: Could not reset index file to revision 'D'. +ok 25 - check: B C C D --merge XXXXX -expecting success of 7300.45 'git clean -d skips untracked dirs containing ignored files': - echo /foo/bar >.gitignore && - echo ignoreme >>.gitignore && - rm -rf foo && - mkdir -p foo/a/aa/aaa foo/b/bb/bbb && - touch foo/bar foo/baz foo/a/aa/ignoreme foo/b/ignoreme foo/b/bb/1 foo/b/bb/2 && - git clean -df && - test_path_is_dir foo && - test_path_is_file foo/bar && - test_path_is_missing foo/baz && - test_path_is_file foo/a/aa/ignoreme && - test_path_is_missing foo/a/aa/aaa && - test_path_is_file foo/b/ignoreme && - test_path_is_missing foo/b/bb +expecting success of 7111.26 'check: B C C D --keep XXXXX ': + git reset --hard C && + if test "$I1" != "$H1" + then + echo "$I1" >file1 && + git add file1 + fi && + if test "$W1" != "$I1" + then + echo "$W1" >file1 + fi && + if test "$W2" != "XXXXX" + then + git reset --$opt $T && + test "$(cat file1)" = "$W2" && + git checkout-index -f -- file1 && + test "$(cat file1)" = "$I2" && + git checkout -f HEAD -- file1 && + test "$(cat file1)" = "$H2" + else + test_must_fail git reset --$opt $T + fi + +HEAD is now at 4bb0b07 C +error: Entry 'file1' not uptodate. Cannot merge. +fatal: Could not reset index file to revision 'D'. +ok 26 - check: B C C D --keep XXXXX -Removing build/ -Removing foo/a/aa/aaa/ -Removing foo/b/bb/ -Removing foo/baz -Removing foobar/ -Removing obj.o -ok 45 - git clean -d skips untracked dirs containing ignored files +expecting success of 7111.27 'check: B C C C --soft B C C': + git reset --hard C && + if test "$I1" != "$H1" + then + echo "$I1" >file1 && + git add file1 + fi && + if test "$W1" != "$I1" + then + echo "$W1" >file1 + fi && + if test "$W2" != "XXXXX" + then + git reset --$opt $T && + test "$(cat file1)" = "$W2" && + git checkout-index -f -- file1 && + test "$(cat file1)" = "$I2" && + git checkout -f HEAD -- file1 && + test "$(cat file1)" = "$H2" + else + test_must_fail git reset --$opt $T + fi + +HEAD is now at 4bb0b07 C +ok 27 - check: B C C C --soft B C C -expecting success of 7300.46 'git clean -d skips nested repo containing ignored files': - test_when_finished "rm -rf nested-repo-with-ignored-file" && +expecting success of 7111.28 'check: B C C C --mixed B C C': + git reset --hard C && + if test "$I1" != "$H1" + then + echo "$I1" >file1 && + git add file1 + fi && + if test "$W1" != "$I1" + then + echo "$W1" >file1 + fi && + if test "$W2" != "XXXXX" + then + git reset --$opt $T && + test "$(cat file1)" = "$W2" && + git checkout-index -f -- file1 && + test "$(cat file1)" = "$I2" && + git checkout -f HEAD -- file1 && + test "$(cat file1)" = "$H2" + else + test_must_fail git reset --$opt $T + fi + +HEAD is now at 4bb0b07 C +Unstaged changes after reset: +M file1 +ok 28 - check: B C C C --mixed B C C - git init nested-repo-with-ignored-file && - ( - cd nested-repo-with-ignored-file && - >file && - git add file && - git commit -m Initial && +expecting success of 7111.29 'check: B C C C --hard C C C': + git reset --hard C && + if test "$I1" != "$H1" + then + echo "$I1" >file1 && + git add file1 + fi && + if test "$W1" != "$I1" + then + echo "$W1" >file1 + fi && + if test "$W2" != "XXXXX" + then + git reset --$opt $T && + test "$(cat file1)" = "$W2" && + git checkout-index -f -- file1 && + test "$(cat file1)" = "$I2" && + git checkout -f HEAD -- file1 && + test "$(cat file1)" = "$H2" + else + test_must_fail git reset --$opt $T + fi + +HEAD is now at 4bb0b07 C +HEAD is now at 4bb0b07 C +ok 29 - check: B C C C --hard C C C - # This file is ignored by a .gitignore rule in the outer repo - # added in the previous test. - >ignoreme - ) && +expecting success of 7111.30 'check: B C C C --merge B C C': + git reset --hard C && + if test "$I1" != "$H1" + then + echo "$I1" >file1 && + git add file1 + fi && + if test "$W1" != "$I1" + then + echo "$W1" >file1 + fi && + if test "$W2" != "XXXXX" + then + git reset --$opt $T && + test "$(cat file1)" = "$W2" && + git checkout-index -f -- file1 && + test "$(cat file1)" = "$I2" && + git checkout -f HEAD -- file1 && + test "$(cat file1)" = "$H2" + else + test_must_fail git reset --$opt $T + fi + +HEAD is now at 4bb0b07 C +ok 30 - check: B C C C --merge B C C - git clean -fd && +expecting success of 7111.31 'check: B C C C --keep B C C': + git reset --hard C && + if test "$I1" != "$H1" + then + echo "$I1" >file1 && + git add file1 + fi && + if test "$W1" != "$I1" + then + echo "$W1" >file1 + fi && + if test "$W2" != "XXXXX" + then + git reset --$opt $T && + test "$(cat file1)" = "$W2" && + git checkout-index -f -- file1 && + test "$(cat file1)" = "$I2" && + git checkout -f HEAD -- file1 && + test "$(cat file1)" = "$H2" + else + test_must_fail git reset --$opt $T + fi + +HEAD is now at 4bb0b07 C +ok 31 - check: B C C C --keep B C C - test_path_is_file nested-repo-with-ignored-file/.git/index && - test_path_is_file nested-repo-with-ignored-file/ignoreme && - test_path_is_file nested-repo-with-ignored-file/file +expecting success of 7111.32 'setting up branches to test with unmerged entries': + git reset --hard C && + git branch branch1 && + git branch branch2 && + git checkout branch1 && + test_commit B1 file1 && + git checkout branch2 && + test_commit B file1 -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7300-clean/nested-repo-with-ignored-file/.git/ -[master (root-commit) 4208a61] Initial +HEAD is now at 4bb0b07 C +Switched to branch 'branch1' +[branch1 5456cd2] B1 Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - create mode 100644 file -ok 46 - git clean -d skips nested repo containing ignored files - -expecting success of 7300.47 'git clean handles being told what to clean': - mkdir -p d1 d2 && - touch d1/ut d2/ut && - git clean -f */ut && - test_path_is_missing d1/ut && - test_path_is_missing d2/ut + 1 file changed, 1 insertion(+), 1 deletion(-) +Switched to branch 'branch2' +[branch2 aa272d3] B + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +ok 32 - setting up branches to test with unmerged entries -Removing d1/ut -Removing d2/ut -ok 47 - git clean handles being told what to clean +expecting success of 7111.33 'check: X U B C --soft XXXXX ': + git reset --hard B && + test_must_fail git merge branch1 && + cat file1 >X_file1 && + if test "$W2" != "XXXXX" + then + git reset --$opt $T && + if test "$W2" = "X" + then + test_cmp file1 X_file1 + else + test "$(cat file1)" = "$W2" + fi && + git checkout-index -f -- file1 && + test "$(cat file1)" = "$I2" && + git checkout -f HEAD -- file1 && + test "$(cat file1)" = "$H2" + else + test_must_fail git reset --$opt $T + fi + +HEAD is now at aa272d3 B +Merging: +aa272d3 B +virtual branch1 +found 1 common ancestor: +4bb0b07 C +Auto-merging file1 +CONFLICT (content): Merge conflict in file1 +Automatic merge failed; fix conflicts and then commit the result. +fatal: Cannot do a soft reset in the middle of a merge. +ok 33 - check: X U B C --soft XXXXX -expecting success of 7300.48 'git clean handles being told what to clean, with -d': - mkdir -p d1 d2 && - touch d1/ut d2/ut && - git clean -ffd */ut && - test_path_is_missing d1/ut && - test_path_is_missing d2/ut +expecting success of 7111.34 'check: X U B C --mixed X C C': + git reset --hard B && + test_must_fail git merge branch1 && + cat file1 >X_file1 && + if test "$W2" != "XXXXX" + then + git reset --$opt $T && + if test "$W2" = "X" + then + test_cmp file1 X_file1 + else + test "$(cat file1)" = "$W2" + fi && + git checkout-index -f -- file1 && + test "$(cat file1)" = "$I2" && + git checkout -f HEAD -- file1 && + test "$(cat file1)" = "$H2" + else + test_must_fail git reset --$opt $T + fi + +HEAD is now at aa272d3 B +Merging: +aa272d3 B +virtual branch1 +found 1 common ancestor: +4bb0b07 C +Auto-merging file1 +CONFLICT (content): Merge conflict in file1 +Automatic merge failed; fix conflicts and then commit the result. +Unstaged changes after reset: +M file1 +ok 34 - check: X U B C --mixed X C C -Removing d1/ut -Removing d2/ut -ok 48 - git clean handles being told what to clean, with -d +expecting success of 7111.35 'check: X U B C --hard C C C': + git reset --hard B && + test_must_fail git merge branch1 && + cat file1 >X_file1 && + if test "$W2" != "XXXXX" + then + git reset --$opt $T && + if test "$W2" = "X" + then + test_cmp file1 X_file1 + else + test "$(cat file1)" = "$W2" + fi && + git checkout-index -f -- file1 && + test "$(cat file1)" = "$I2" && + git checkout -f HEAD -- file1 && + test "$(cat file1)" = "$H2" + else + test_must_fail git reset --$opt $T + fi + +HEAD is now at aa272d3 B +Merging: +aa272d3 B +virtual branch1 +found 1 common ancestor: +4bb0b07 C +Auto-merging file1 +CONFLICT (content): Merge conflict in file1 +Automatic merge failed; fix conflicts and then commit the result. +HEAD is now at 4bb0b07 C +ok 35 - check: X U B C --hard C C C -expecting success of 7300.49 'git clean works if a glob is passed without -d': - mkdir -p d1 d2 && - touch d1/ut d2/ut && - git clean -f "*ut" && - test_path_is_missing d1/ut && - test_path_is_missing d2/ut +expecting success of 7111.36 'check: X U B C --merge C C C': + git reset --hard B && + test_must_fail git merge branch1 && + cat file1 >X_file1 && + if test "$W2" != "XXXXX" + then + git reset --$opt $T && + if test "$W2" = "X" + then + test_cmp file1 X_file1 + else + test "$(cat file1)" = "$W2" + fi && + git checkout-index -f -- file1 && + test "$(cat file1)" = "$I2" && + git checkout -f HEAD -- file1 && + test "$(cat file1)" = "$H2" + else + test_must_fail git reset --$opt $T + fi + +HEAD is now at aa272d3 B +Merging: +aa272d3 B +virtual branch1 +found 1 common ancestor: +4bb0b07 C +Auto-merging file1 +CONFLICT (content): Merge conflict in file1 +Automatic merge failed; fix conflicts and then commit the result. +ok 36 - check: X U B C --merge C C C -Removing d1/ut -Removing d2/ut -ok 49 - git clean works if a glob is passed without -d +expecting success of 7111.37 'check: X U B C --keep XXXXX ': + git reset --hard B && + test_must_fail git merge branch1 && + cat file1 >X_file1 && + if test "$W2" != "XXXXX" + then + git reset --$opt $T && + if test "$W2" = "X" + then + test_cmp file1 X_file1 + else + test "$(cat file1)" = "$W2" + fi && + git checkout-index -f -- file1 && + test "$(cat file1)" = "$I2" && + git checkout -f HEAD -- file1 && + test "$(cat file1)" = "$H2" + else + test_must_fail git reset --$opt $T + fi + +HEAD is now at aa272d3 B +Merging: +aa272d3 B +virtual branch1 +found 1 common ancestor: +4bb0b07 C +Auto-merging file1 +CONFLICT (content): Merge conflict in file1 +Automatic merge failed; fix conflicts and then commit the result. +fatal: Cannot do a keep reset in the middle of a merge. +ok 37 - check: X U B C --keep XXXXX -expecting success of 7300.50 'git clean works if a glob is passed with -d': - mkdir -p d1 d2 && - touch d1/ut d2/ut && - git clean -ffd "*ut" && - test_path_is_missing d1/ut && - test_path_is_missing d2/ut +expecting success of 7111.38 'check: X U B B --soft XXXXX ': + git reset --hard B && + test_must_fail git merge branch1 && + cat file1 >X_file1 && + if test "$W2" != "XXXXX" + then + git reset --$opt $T && + if test "$W2" = "X" + then + test_cmp file1 X_file1 + else + test "$(cat file1)" = "$W2" + fi && + git checkout-index -f -- file1 && + test "$(cat file1)" = "$I2" && + git checkout -f HEAD -- file1 && + test "$(cat file1)" = "$H2" + else + test_must_fail git reset --$opt $T + fi + +HEAD is now at aa272d3 B +Merging: +aa272d3 B +virtual branch1 +found 1 common ancestor: +4bb0b07 C +Auto-merging file1 +CONFLICT (content): Merge conflict in file1 +Automatic merge failed; fix conflicts and then commit the result. +fatal: Cannot do a soft reset in the middle of a merge. +ok 38 - check: X U B B --soft XXXXX -Removing d1/ut -Removing d2/ut -ok 50 - git clean works if a glob is passed with -d +expecting success of 7111.39 'check: X U B B --mixed X B B': + git reset --hard B && + test_must_fail git merge branch1 && + cat file1 >X_file1 && + if test "$W2" != "XXXXX" + then + git reset --$opt $T && + if test "$W2" = "X" + then + test_cmp file1 X_file1 + else + test "$(cat file1)" = "$W2" + fi && + git checkout-index -f -- file1 && + test "$(cat file1)" = "$I2" && + git checkout -f HEAD -- file1 && + test "$(cat file1)" = "$H2" + else + test_must_fail git reset --$opt $T + fi + +HEAD is now at aa272d3 B +Merging: +aa272d3 B +virtual branch1 +found 1 common ancestor: +4bb0b07 C +Auto-merging file1 +CONFLICT (content): Merge conflict in file1 +Automatic merge failed; fix conflicts and then commit the result. +Unstaged changes after reset: +M file1 +ok 39 - check: X U B B --mixed X B B -ok 51 # skip handle clean & core.longpaths = false nicely (missing MINGW) +expecting success of 7111.40 'check: X U B B --hard B B B': + git reset --hard B && + test_must_fail git merge branch1 && + cat file1 >X_file1 && + if test "$W2" != "XXXXX" + then + git reset --$opt $T && + if test "$W2" = "X" + then + test_cmp file1 X_file1 + else + test "$(cat file1)" = "$W2" + fi && + git checkout-index -f -- file1 && + test "$(cat file1)" = "$I2" && + git checkout -f HEAD -- file1 && + test "$(cat file1)" = "$H2" + else + test_must_fail git reset --$opt $T + fi + +HEAD is now at aa272d3 B +Merging: +aa272d3 B +virtual branch1 +found 1 common ancestor: +4bb0b07 C +Auto-merging file1 +CONFLICT (content): Merge conflict in file1 +Automatic merge failed; fix conflicts and then commit the result. +HEAD is now at aa272d3 B +ok 40 - check: X U B B --hard B B B -expecting success of 7300.52 'clean untracked paths by pathspec': - git init untracked && - mkdir untracked/dir && - echo >untracked/dir/file.txt && - git -C untracked clean -f dir/file.txt && - ls untracked/dir >actual && - test_must_be_empty actual +expecting success of 7111.41 'check: X U B B --merge B B B': + git reset --hard B && + test_must_fail git merge branch1 && + cat file1 >X_file1 && + if test "$W2" != "XXXXX" + then + git reset --$opt $T && + if test "$W2" = "X" + then + test_cmp file1 X_file1 + else + test "$(cat file1)" = "$W2" + fi && + git checkout-index -f -- file1 && + test "$(cat file1)" = "$I2" && + git checkout -f HEAD -- file1 && + test "$(cat file1)" = "$H2" + else + test_must_fail git reset --$opt $T + fi + +HEAD is now at aa272d3 B +Merging: +aa272d3 B +virtual branch1 +found 1 common ancestor: +4bb0b07 C +Auto-merging file1 +CONFLICT (content): Merge conflict in file1 +Automatic merge failed; fix conflicts and then commit the result. +ok 41 - check: X U B B --merge B B B -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7300-clean/untracked/.git/ -Removing dir/file.txt -ok 52 - clean untracked paths by pathspec +expecting success of 7111.42 'check: X U B B --keep XXXXX ': + git reset --hard B && + test_must_fail git merge branch1 && + cat file1 >X_file1 && + if test "$W2" != "XXXXX" + then + git reset --$opt $T && + if test "$W2" = "X" + then + test_cmp file1 X_file1 + else + test "$(cat file1)" = "$W2" + fi && + git checkout-index -f -- file1 && + test "$(cat file1)" = "$I2" && + git checkout -f HEAD -- file1 && + test "$(cat file1)" = "$H2" + else + test_must_fail git reset --$opt $T + fi + +HEAD is now at aa272d3 B +Merging: +aa272d3 B +virtual branch1 +found 1 common ancestor: +4bb0b07 C +Auto-merging file1 +CONFLICT (content): Merge conflict in file1 +Automatic merge failed; fix conflicts and then commit the result. +fatal: Cannot do a keep reset in the middle of a merge. +ok 42 - check: X U B B --keep XXXXX -# still have 2 known breakage(s) -# passed all remaining 50 test(s) -1..52 +# passed all 42 test(s) +1..42 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' *** t7301-clean-interactive.sh *** @@ -346986,7 +344725,7 @@ *** Commands *** 1: clean 2: filter by pattern 3: select by numbers 4: ask each 5: quit 6: help -What now> Huh ()? +What now> Huh (\04)? *** Commands *** 1: clean 2: filter by pattern 3: select by numbers 4: ask each 5: quit 6: help @@ -347680,6 +345419,7 @@ sh -c "test -t 1 && test -t 2" ) +died of signal 15 at /build/git-2.30.2/t/test-terminal.perl line 35. prerequisite TTY ok expecting success of 7301.23 'git clean -i paints the header in HEADER color': >a.out && @@ -347697,891 +345437,281 @@ 1..23 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t7401-submodule-summary.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7401-submodule-summary/.git/ -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7401-submodule-summary/sm1/.git/ -expecting success of 7401.1 'added submodule': - git add sm1 && - git submodule summary >actual && - cat >expected <<-EOF && - * sm1 0000000...a2c4dab (2): - > Add foo2 - - EOF - test_cmp expected actual - -warning: adding embedded git repository: sm1 -hint: You've added another git repository inside your current repository. -hint: Clones of the outer repository will not contain the contents of -hint: the embedded repository and will not know how to obtain it. -hint: If you meant to add a submodule, use: -hint: -hint: git submodule add sm1 -hint: -hint: If you added this path by mistake, you can remove it from the -hint: index with: -hint: -hint: git rm --cached sm1 -hint: -hint: See "git help submodule" for more information. -ok 1 - added submodule - -expecting success of 7401.2 'added submodule (subdirectory)': - mkdir sub && - ( - cd sub && - git submodule summary >../actual - ) && - cat >expected <<-EOF && - * ../sm1 0000000...a2c4dab (2): - > Add foo2 - - EOF - test_cmp expected actual - -ok 2 - added submodule (subdirectory) - -expecting success of 7401.3 'added submodule (subdirectory only)': - ( - cd sub && - git submodule summary . >../actual - ) && - test_must_be_empty actual - -ok 3 - added submodule (subdirectory only) - -expecting success of 7401.4 'added submodule (subdirectory with explicit path)': - ( - cd sub && - git submodule summary ../sm1 >../actual - ) && - cat >expected <<-EOF && - * ../sm1 0000000...a2c4dab (2): - > Add foo2 - - EOF - test_cmp expected actual - -ok 4 - added submodule (subdirectory with explicit path) - -expecting success of 7401.5 'modified submodule(forward)': - git submodule summary >actual && - cat >expected <<-EOF && - * sm1 a2c4dab...4c8d358 (1): - > Add foo3 - - EOF - test_cmp expected actual - -ok 5 - modified submodule(forward) - -expecting success of 7401.6 'modified submodule(forward), --files': - git submodule summary --files >actual && - cat >expected <<-EOF && - * sm1 a2c4dab...4c8d358 (1): - > Add foo3 - - EOF - test_cmp expected actual - -ok 6 - modified submodule(forward), --files - -expecting success of 7401.7 'no ignore=all setting has any effect': - git config -f .gitmodules submodule.sm1.path sm1 && - git config -f .gitmodules submodule.sm1.ignore all && - git config submodule.sm1.ignore all && - git config diff.ignoreSubmodules all && - git submodule summary >actual && - cat >expected <<-EOF && - * sm1 a2c4dab...4c8d358 (1): - > Add foo3 - - EOF - test_cmp expected actual && - git config --unset diff.ignoreSubmodules && - git config --remove-section submodule.sm1 && - git config -f .gitmodules --remove-section submodule.sm1 - -ok 7 - no ignore=all setting has any effect - -expecting success of 7401.8 'modified submodule(backward)': - git submodule summary >actual && - cat >expected <<-EOF && - * sm1 4c8d358...db425b6 (2): - < Add foo3 - < Add foo2 - - EOF - test_cmp expected actual - -ok 8 - modified submodule(backward) - -expecting success of 7401.9 'modified submodule(backward and forward)': - git submodule summary >actual && - cat >expected <<-EOF && - * sm1 4c8d358...41fbea9 (4): - > Add foo5 - > Add foo4 - < Add foo3 - < Add foo2 - - EOF - test_cmp expected actual - -ok 9 - modified submodule(backward and forward) - -expecting success of 7401.10 '--summary-limit': - git submodule summary -n 3 >actual && - cat >expected <<-EOF && - * sm1 4c8d358...41fbea9 (4): - > Add foo5 - > Add foo4 - < Add foo3 - - EOF - test_cmp expected actual - -ok 10 - --summary-limit - -expecting success of 7401.11 'typechanged submodule(submodule->blob), --cached': - git submodule summary --cached >actual && - cat >expected <<-EOF && - * sm1 41fbea9(submodule)->9da5fb8(blob) (3): - < Add foo5 - - EOF - test_i18ncmp expected actual - -checking prerequisite: C_LOCALE_OUTPUT - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false - -) -prerequisite C_LOCALE_OUTPUT ok -ok 11 - typechanged submodule(submodule->blob), --cached - -expecting success of 7401.12 'typechanged submodule(submodule->blob), --files': - git submodule summary --files >actual && - cat >expected <<-EOF && - * sm1 9da5fb8(blob)->41fbea9(submodule) (3): - > Add foo5 - - EOF - test_i18ncmp expected actual - -ok 12 - typechanged submodule(submodule->blob), --files - -expecting success of 7401.13 'typechanged submodule(submodule->blob)': - git submodule summary >actual && - cat >expected <<-EOF && - * sm1 41fbea9(submodule)->9da5fb8(blob): - - EOF - test_i18ncmp expected actual - -fatal: exec 'rev-parse': cd to 'sm1' failed: Not a directory -ok 13 - typechanged submodule(submodule->blob) - -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7401-submodule-summary/sm1/.git/ -expecting success of 7401.14 'nonexistent commit': - git submodule summary >actual && - cat >expected <<-EOF && - * sm1 41fbea9...6858906: - Warn: sm1 doesn't contain commit 41fbea99b81568012be3e9bcc31431971c1e5bc5 - - EOF - test_i18ncmp expected actual - -ok 14 - nonexistent commit - -expecting success of 7401.15 'typechanged submodule(blob->submodule)': - git submodule summary >actual && - cat >expected <<-EOF && - * sm1 9da5fb8(blob)->6858906(submodule) (2): - > Add foo7 - - EOF - test_i18ncmp expected actual - -ok 15 - typechanged submodule(blob->submodule) - -expecting success of 7401.16 'deleted submodule': - git submodule summary >actual && - cat >expected <<-EOF && - * sm1 6858906...0000000: - - EOF - test_cmp expected actual - -ok 16 - deleted submodule - -expecting success of 7401.17 'create second submodule': - test_create_repo sm2 && - head7=$(add_file sm2 foo8 foo9) && - git add sm2 - -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7401-submodule-summary/sm2/.git/ -warning: adding embedded git repository: sm2 -hint: You've added another git repository inside your current repository. -hint: Clones of the outer repository will not contain the contents of -hint: the embedded repository and will not know how to obtain it. -hint: If you meant to add a submodule, use: -hint: -hint: git submodule add sm2 -hint: -hint: If you added this path by mistake, you can remove it from the -hint: index with: -hint: -hint: git rm --cached sm2 -hint: -hint: See "git help submodule" for more information. -ok 17 - create second submodule - -expecting success of 7401.18 'multiple submodules': - git submodule summary >actual && - cat >expected <<-EOF && - * sm1 6858906...0000000: - - * sm2 0000000...fa9eeaf (2): - > Add foo9 - - EOF - test_cmp expected actual - -ok 18 - multiple submodules - -expecting success of 7401.19 'path filter': - git submodule summary sm2 >actual && - cat >expected <<-EOF && - * sm2 0000000...fa9eeaf (2): - > Add foo9 - - EOF - test_cmp expected actual - -ok 19 - path filter - -expecting success of 7401.20 'given commit': - git submodule summary HEAD^ >actual && - cat >expected <<-EOF && - * sm1 6858906...0000000: - - * sm2 0000000...fa9eeaf (2): - > Add foo9 - - EOF - test_cmp expected actual - -ok 20 - given commit - -expecting success of 7401.21 '--for-status': - git submodule summary --for-status HEAD^ >actual && - test_i18ncmp - actual <<-EOF - * sm1 6858906...0000000: - - * sm2 0000000...fa9eeaf (2): - > Add foo9 - - EOF - -ok 21 - --for-status - -expecting success of 7401.22 'fail when using --files together with --cached': - test_must_fail git submodule summary --files --cached - -fatal: --cached and --files are mutually exclusive -ok 22 - fail when using --files together with --cached - -expecting success of 7401.23 'should not fail in an empty repo': - git init xyzzy && - cd xyzzy && - git submodule summary >output 2>&1 && - test_must_be_empty output +*** t7201-co.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7201-co/.git/ +expecting success of 7201.1 'setup': + fill x y z >same && + fill 1 2 3 4 5 6 7 8 >one && + fill a b c d e >two && + git add same one two && + git commit -m "Initial A one, A two" && -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7401-submodule-summary/xyzzy/.git/ -ok 23 - should not fail in an empty repo + git checkout -b renamer && + rm -f one && + fill 1 3 4 5 6 7 8 >uno && + git add uno && + fill a b c d e f >two && + git commit -a -m "Renamer R one->uno, M two" && -# passed all 23 test(s) -1..23 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t7402-submodule-rebase.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7402-submodule-rebase/.git/ -expecting success of 7402.1 'setup': + git checkout -b side master && + fill 1 2 3 4 5 6 7 >one && + fill A B C D E >three && + rm -f two && + git update-index --add --remove one two three && + git commit -m "Side M one, D two, A three" && - echo file > file && - git add file && - test_tick && - git commit -m initial && - git clone . submodule && - git add submodule && - test_tick && - git commit -m submodule && - echo second line >> file && - (cd submodule && git pull) && - test_tick && - git commit -m file-and-submodule -a && - git branch added-submodule + git checkout -b simple master && + rm -f one && + fill a c e >two && + git commit -a -m "Simple D one, M two" && + git checkout master -[master (root-commit) ffefb50] initial +[master (root-commit) 7329388] Initial A one, A two Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -Cloning into 'submodule'... -done. -warning: adding embedded git repository: submodule -hint: You've added another git repository inside your current repository. -hint: Clones of the outer repository will not contain the contents of -hint: the embedded repository and will not know how to obtain it. -hint: If you meant to add a submodule, use: -hint: -hint: git submodule add submodule -hint: -hint: If you added this path by mistake, you can remove it from the -hint: index with: -hint: -hint: git rm --cached submodule -hint: -hint: See "git help submodule" for more information. -[master 9bd10db] submodule + 3 files changed, 16 insertions(+) + create mode 100644 one + create mode 100644 same + create mode 100644 two +Switched to a new branch 'renamer' +[renamer 0420b41] Renamer R one->uno, M two Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 160000 submodule -hint: Pulling without specifying how to reconcile divergent branches is -hint: discouraged. You can squelch this message by running one of the following -hint: commands sometime before your next pull: -hint: -hint: git config pull.rebase false # merge (the default strategy) -hint: git config pull.rebase true # rebase -hint: git config pull.ff only # fast-forward only -hint: -hint: You can replace "git config" with "git config --global" to set a default -hint: preference for all repositories. You can also pass --rebase, --no-rebase, -hint: or --ff-only on the command line to override the configured default per -hint: invocation. -From /build/git-2.30.2/t/trash directory.t7402-submodule-rebase/. - ffefb50..9bd10db master -> origin/master -Updating ffefb50..9bd10db -Fast-forward - submodule | 1 + - 1 file changed, 1 insertion(+) - create mode 160000 submodule -[master 041f541] file-and-submodule + 2 files changed, 1 insertion(+), 1 deletion(-) + rename one => uno (87%) +Switched to a new branch 'side' +[side ab76817] Side M one, D two, A three Author: A U Thor - 2 files changed, 2 insertions(+), 1 deletion(-) + 3 files changed, 5 insertions(+), 6 deletions(-) + create mode 100644 three + delete mode 100644 two +Switched to a new branch 'simple' +[simple 022ff9d] Simple D one, M two + Author: A U Thor + 2 files changed, 10 deletions(-) + delete mode 100644 one +Switched to branch 'master' ok 1 - setup -expecting success of 7402.2 'rebase with a dirty submodule': +expecting success of 7201.2 'checkout from non-existing branch': + git checkout -b delete-me master && + git update-ref -d --no-deref refs/heads/delete-me && + test refs/heads/delete-me = "$(git symbolic-ref HEAD)" && + git checkout master && + test refs/heads/master = "$(git symbolic-ref HEAD)" - (cd submodule && - echo 3rd line >> file && - test_tick && - git commit -m fork -a) && - echo unrelated >> file2 && - git add file2 && - test_tick && - git commit -m unrelated file2 && - echo other line >> file && - test_tick && - git commit -m update file && - CURRENT=$(cd submodule && git rev-parse HEAD) && - EXPECTED=$(git rev-parse HEAD~2:submodule) && - GIT_TRACE=1 git rebase --onto HEAD~2 HEAD^ && - STORED=$(git rev-parse HEAD:submodule) && - test $EXPECTED = $STORED && - test $CURRENT = $(cd submodule && git rev-parse HEAD) +Switched to a new branch 'delete-me' +Switched to branch 'master' +ok 2 - checkout from non-existing branch +expecting success of 7201.3 'checkout with dirty tree without -m': + fill 0 1 2 3 4 5 6 7 8 >one && + if git checkout side + then + echo Not happy + false + else + echo "happy - failed correctly" + fi -[master eb5e1a6] fork - Author: A U Thor - 1 file changed, 1 insertion(+) -[master b5e9d7b] unrelated - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file2 -[master a65f80c] update - Author: A U Thor - 1 file changed, 1 insertion(+) -trace: built-in: git rebase --onto 'HEAD~2' HEAD^ -trace: run_command: GIT_REFLOG_ACTION='rebase (start): checkout HEAD~2' git checkout 041f541f7d4ce41c4eda25e0e58871f126de234b -Rebasing (1/1) trace: run_command: git notes copy --for-rewrite=rebase -trace: built-in: git notes copy --for-rewrite=rebase - Successfully rebased and updated refs/heads/master. -ok 2 - rebase with a dirty submodule +error: Your local changes to the following files would be overwritten by checkout: + one +Please commit your changes or stash them before you switch branches. +Aborting +happy - failed correctly +ok 3 - checkout with dirty tree without -m -expecting success of 7402.3 'interactive rebase with a dirty submodule': +expecting success of 7201.4 'checkout with unrelated dirty tree without -m': + git checkout -f master && + fill 0 1 2 3 4 5 6 7 8 >same && + cp same kept && + git checkout side >messages && + test_cmp same kept && + printf "M\t%s\n" same >messages.expect && + test_cmp messages.expect messages - test submodule = $(git diff --name-only) && - HEAD=$(git rev-parse HEAD) && - GIT_EDITOR="\"$(pwd)/fake-editor.sh\"" EDITOR_TEXT="pick $HEAD" \ - git rebase -i HEAD^ && - test submodule = $(git diff --name-only) +Already on 'master' +Switched to branch 'side' +ok 4 - checkout with unrelated dirty tree without -m +expecting success of 7201.5 'checkout -m with dirty tree': + git checkout -f master && + git clean -f && -pick 81a011672801a6d53f73688ebde4d518274102e6 - Successfully rebased and updated refs/heads/master. -ok 3 - interactive rebase with a dirty submodule + fill 0 1 2 3 4 5 6 7 8 >one && + git checkout -m side >messages && -expecting success of 7402.4 'rebase with dirty file and submodule fails': + test "$(git symbolic-ref HEAD)" = "refs/heads/side" && - echo yet another line >> file && - test_tick && - git commit -m next file && - echo rewrite > file && - test_tick && - git commit -m rewrite file && - echo dirty > file && - test_must_fail git rebase --onto HEAD~2 HEAD^ + printf "M\t%s\n" one >expect.messages && + test_cmp expect.messages messages && + fill "M one" "A three" "D two" >expect.master && + git diff --name-status master >current.master && + test_cmp expect.master current.master && -[master 260764e] next - Author: A U Thor - 1 file changed, 1 insertion(+) -[master 63179b5] rewrite - Author: A U Thor - 1 file changed, 1 insertion(+), 4 deletions(-) -error: cannot rebase: You have unstaged changes. -error: Please commit or stash them. -ok 4 - rebase with dirty file and submodule fails + fill "M one" >expect.side && + git diff --name-status side >current.side && + test_cmp expect.side current.side && -expecting success of 7402.5 'stash with a dirty submodule': + git diff --cached >current.index && + test_must_be_empty current.index - echo new > file && - CURRENT=$(cd submodule && git rev-parse HEAD) && - git stash && - test new != $(cat file) && - test submodule = $(git diff --name-only) && - test $CURRENT = $(cd submodule && git rev-parse HEAD) && - git stash apply && - test new = $(cat file) && - test $CURRENT = $(cd submodule && git rev-parse HEAD) +Switched to branch 'master' +Removing kept +Removing messages +Removing messages.expect +Switched to branch 'side' +ok 5 - checkout -m with dirty tree +expecting success of 7201.6 'checkout -m with dirty tree, renamed': + git checkout -f master && git clean -f && -Saved working directory and index state WIP on master: 63179b5 rewrite -Merging Version stash was based on with Stashed changes -Merging: -virtual Version stash was based on -virtual Stashed changes -found 1 common ancestor: -virtual 8b045485d7af7da389e60eb467551e426da98c59 -On branch master -Changes not staged for commit: - (use "git add ..." to update what will be committed) - (use "git restore ..." to discard changes in working directory) - modified: file - modified: submodule (new commits) + fill 1 2 3 4 5 7 8 >one && + if git checkout renamer + then + echo Not happy + false + else + echo "happy - failed correctly" + fi && -Untracked files: - (use "git add ..." to include in what will be committed) - fake-editor.sh + git checkout -m renamer && + fill 1 3 4 5 7 8 >expect && + test_cmp expect uno && + ! test -f one && + git diff --cached >current && + test_must_be_empty current -no changes added to commit (use "git add" and/or "git commit -a") -ok 5 - stash with a dirty submodule +Switched to branch 'master' +Removing current.index +Removing current.master +Removing current.side +Removing expect.master +Removing expect.messages +Removing expect.side +Removing messages +error: Your local changes to the following files would be overwritten by checkout: + one +Please commit your changes or stash them before you switch branches. +Aborting +happy - failed correctly +Switched to branch 'renamer' +M uno +ok 6 - checkout -m with dirty tree, renamed -expecting success of 7402.6 'rebasing submodule that should conflict': - git reset --hard && - git checkout added-submodule && - git add submodule && - test_tick && - git commit -m third && - ( - cd submodule && - git commit --allow-empty -m extra - ) && - git add submodule && - test_tick && - git commit -m fourth && +expecting success of 7201.7 'checkout -m with merge conflict': + git checkout -f master && git clean -f && - test_must_fail git rebase --onto HEAD^^ HEAD^ HEAD^0 && - git ls-files -s submodule >actual && - ( - cd submodule && - echo "160000 $(git rev-parse HEAD^) 1 submodule" && - echo "160000 $(git rev-parse HEAD^^) 2 submodule" && - echo "160000 $(git rev-parse HEAD) 3 submodule" - ) >expect && - test_cmp expect actual + fill 1 T 3 4 5 6 S 8 >one && + if git checkout renamer + then + echo Not happy + false + else + echo "happy - failed correctly" + fi && -HEAD is now at 63179b5 rewrite -Switched to branch 'added-submodule' -M submodule -[added-submodule 3e80a7a] third - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -[master 7d89a17] extra - Author: A U Thor -[added-submodule b58fe73] fourth - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -Rebasing (1/1) error: could not apply b58fe73... fourth -Resolve all conflicts manually, mark them as resolved with -"git add/rm ", then run "git rebase --continue". -You can instead skip this commit: run "git rebase --skip". -To abort and get back to the state before "git rebase", run "git rebase --abort". -Could not apply b58fe73... fourth -Failed to merge submodule submodule (commits don't follow merge-base) -Auto-merging submodule -CONFLICT (submodule): Merge conflict in submodule -ok 6 - rebasing submodule that should conflict + git checkout -m renamer && -# passed all 6 test(s) -1..6 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t7403-submodule-sync.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7403-submodule-sync/.git/ -expecting success of 7403.1 'setup': - git config --global protocol.file.allow always && + git diff master:one :3:uno | + sed -e "1,/^@@/d" -e "/^ /d" -e "s/^-/d/" -e "s/^+/a/" >current && + fill d2 aT d7 aS >expect && + test_cmp expect current && + git diff --cached two >current && + test_must_be_empty current - echo file >file && - git add file && - test_tick && - git commit -m upstream && - git clone . super && - git clone super submodule && - ( - cd submodule && - git submodule add ../submodule sub-submodule && - test_tick && - git commit -m "sub-submodule" - ) && - ( - cd super && - git submodule add ../submodule submodule && - test_tick && - git commit -m "submodule" - ) && - git clone super super-clone && - ( - cd super-clone && - git submodule update --init --recursive - ) && - git clone super empty-clone && - ( - cd empty-clone && - git submodule init - ) && - git clone super top-only-clone && - git clone super relative-clone && - ( - cd relative-clone && - git submodule update --init --recursive - ) && - git clone super recursive-clone && - ( - cd recursive-clone && - git submodule update --init --recursive - ) +Switched to branch 'master' +Removing current +Removing expect +error: Your local changes to the following files would be overwritten by checkout: + one +Please commit your changes or stash them before you switch branches. +Aborting +happy - failed correctly +Switched to branch 'renamer' +M uno +ok 7 - checkout -m with merge conflict -[master (root-commit) 0c90624] upstream - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -Cloning into 'super'... -done. -Cloning into 'submodule'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t7403-submodule-sync/submodule/sub-submodule'... -done. -[master 5a446ba] sub-submodule - Author: A U Thor - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 sub-submodule -Cloning into '/build/git-2.30.2/t/trash directory.t7403-submodule-sync/super/submodule'... -done. -[master 78df3af] submodule - Author: A U Thor - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 submodule -Cloning into 'super-clone'... -done. -Submodule 'submodule' (/build/git-2.30.2/t/trash directory.t7403-submodule-sync/submodule) registered for path 'submodule' -Cloning into '/build/git-2.30.2/t/trash directory.t7403-submodule-sync/super-clone/submodule'... -done. -Submodule path 'submodule': checked out '5a446ba52b7cd49fd2fdd854f363e71780faa9a8' -Submodule 'sub-submodule' (/build/git-2.30.2/t/trash directory.t7403-submodule-sync/submodule) registered for path 'submodule/sub-submodule' -Cloning into '/build/git-2.30.2/t/trash directory.t7403-submodule-sync/super-clone/submodule/sub-submodule'... -done. -Submodule path 'submodule/sub-submodule': checked out '0c90624ab7f1aaa301d3bb79f60dcfed1ec4897f' -Cloning into 'empty-clone'... -done. -Submodule 'submodule' (/build/git-2.30.2/t/trash directory.t7403-submodule-sync/submodule) registered for path 'submodule' -Cloning into 'top-only-clone'... -done. -Cloning into 'relative-clone'... -done. -Submodule 'submodule' (/build/git-2.30.2/t/trash directory.t7403-submodule-sync/submodule) registered for path 'submodule' -Cloning into '/build/git-2.30.2/t/trash directory.t7403-submodule-sync/relative-clone/submodule'... -done. -Submodule path 'submodule': checked out '5a446ba52b7cd49fd2fdd854f363e71780faa9a8' -Submodule 'sub-submodule' (/build/git-2.30.2/t/trash directory.t7403-submodule-sync/submodule) registered for path 'submodule/sub-submodule' -Cloning into '/build/git-2.30.2/t/trash directory.t7403-submodule-sync/relative-clone/submodule/sub-submodule'... -done. -Submodule path 'submodule/sub-submodule': checked out '0c90624ab7f1aaa301d3bb79f60dcfed1ec4897f' -Cloning into 'recursive-clone'... -done. -Submodule 'submodule' (/build/git-2.30.2/t/trash directory.t7403-submodule-sync/submodule) registered for path 'submodule' -Cloning into '/build/git-2.30.2/t/trash directory.t7403-submodule-sync/recursive-clone/submodule'... -done. -Submodule path 'submodule': checked out '5a446ba52b7cd49fd2fdd854f363e71780faa9a8' -Submodule 'sub-submodule' (/build/git-2.30.2/t/trash directory.t7403-submodule-sync/submodule) registered for path 'submodule/sub-submodule' -Cloning into '/build/git-2.30.2/t/trash directory.t7403-submodule-sync/recursive-clone/submodule/sub-submodule'... -done. -Submodule path 'submodule/sub-submodule': checked out '0c90624ab7f1aaa301d3bb79f60dcfed1ec4897f' -ok 1 - setup +expecting success of 7201.8 'format of merge conflict from checkout -m': + git checkout -f master && + git clean -f && -expecting success of 7403.2 'change submodule': - ( - cd submodule && - echo second line >>file && - test_tick && - git commit -a -m "change submodule" - ) + fill b d >two && + git checkout -m simple && -[master c61fc01] change submodule - Author: A U Thor - 1 file changed, 1 insertion(+) -ok 2 - change submodule + git ls-files >current && + fill same two two two >expect && + test_cmp expect current && -expecting success of 7403.3 'change submodule url': - ( - cd super && - cd submodule && - git checkout master && - git pull - ) && - mv submodule moved-submodule && - ( - cd moved-submodule && - git config -f .gitmodules submodule.sub-submodule.url ../moved-submodule && - test_tick && - git commit -a -m moved-sub-submodule - ) && - ( - cd super && - git config -f .gitmodules submodule.submodule.url ../moved-submodule && - test_tick && - git commit -a -m moved-submodule - ) + cat <<-EOF >expect && + <<<<<<< simple + a + c + e + ======= + b + d + >>>>>>> local + EOF + test_cmp expect two -Already on 'master' -Your branch is up to date with 'origin/master'. -hint: Pulling without specifying how to reconcile divergent branches is -hint: discouraged. You can squelch this message by running one of the following -hint: commands sometime before your next pull: -hint: -hint: git config pull.rebase false # merge (the default strategy) -hint: git config pull.rebase true # rebase -hint: git config pull.ff only # fast-forward only -hint: -hint: You can replace "git config" with "git config --global" to set a default -hint: preference for all repositories. You can also pass --rebase, --no-rebase, -hint: or --ff-only on the command line to override the configured default per -hint: invocation. -From /build/git-2.30.2/t/trash directory.t7403-submodule-sync/submodule - 5a446ba..c61fc01 master -> origin/master -Updating 5a446ba..c61fc01 -Fast-forward - file | 1 + - 1 file changed, 1 insertion(+) -[master 9f583c0] moved-sub-submodule - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -[master f2e88dd] moved-submodule - Author: A U Thor - 2 files changed, 2 insertions(+), 2 deletions(-) -ok 3 - change submodule url +Switched to branch 'master' +Removing current +Removing expect +Switched to branch 'simple' +M two +ok 8 - format of merge conflict from checkout -m -expecting success of 7403.4 '"git submodule sync" should update submodule URLs': - ( - cd super-clone && - git pull --no-recurse-submodules && - git submodule sync - ) && - test -d "$( - cd super-clone/submodule && - git config remote.origin.url - )" && - test ! -d "$( - cd super-clone/submodule/sub-submodule && - git config remote.origin.url - )" && - ( - cd super-clone/submodule && - git checkout master && - git pull - ) && - ( - cd super-clone && - test -d "$(git config submodule.submodule.url)" - ) +expecting success of 7201.9 'checkout --merge --conflict=diff3 ': + git checkout -f master && + git reset --hard && + git clean -f && -hint: Pulling without specifying how to reconcile divergent branches is -hint: discouraged. You can squelch this message by running one of the following -hint: commands sometime before your next pull: -hint: -hint: git config pull.rebase false # merge (the default strategy) -hint: git config pull.rebase true # rebase -hint: git config pull.ff only # fast-forward only -hint: -hint: You can replace "git config" with "git config --global" to set a default -hint: preference for all repositories. You can also pass --rebase, --no-rebase, -hint: or --ff-only on the command line to override the configured default per -hint: invocation. -From /build/git-2.30.2/t/trash directory.t7403-submodule-sync/super - 78df3af..f2e88dd master -> origin/master -Updating 78df3af..f2e88dd -Fast-forward - .gitmodules | 2 +- - submodule | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) -Synchronizing submodule url for 'submodule' -Switched to branch 'master' -Your branch is up to date with 'origin/master'. -hint: Pulling without specifying how to reconcile divergent branches is -hint: discouraged. You can squelch this message by running one of the following -hint: commands sometime before your next pull: -hint: -hint: git config pull.rebase false # merge (the default strategy) -hint: git config pull.rebase true # rebase -hint: git config pull.ff only # fast-forward only -hint: -hint: You can replace "git config" with "git config --global" to set a default -hint: preference for all repositories. You can also pass --rebase, --no-rebase, -hint: or --ff-only on the command line to override the configured default per -hint: invocation. -From /build/git-2.30.2/t/trash directory.t7403-submodule-sync/moved-submodule - 5a446ba..9f583c0 master -> origin/master -Updating 5a446ba..9f583c0 -Fast-forward - .gitmodules | 2 +- - file | 1 + - 2 files changed, 2 insertions(+), 1 deletion(-) -ok 4 - "git submodule sync" should update submodule URLs + fill b d >two && + git checkout --merge --conflict=diff3 simple && -expecting success of 7403.5 '"git submodule sync --recursive" should update all submodule URLs': - ( - cd super-clone && - ( - cd submodule && - git pull --no-recurse-submodules - ) && - git submodule sync --recursive - ) && - test -d "$( - cd super-clone/submodule && - git config remote.origin.url - )" && - test -d "$( - cd super-clone/submodule/sub-submodule && - git config remote.origin.url - )" && - ( - cd super-clone/submodule/sub-submodule && - git checkout master && - git pull - ) + cat <<-EOF >expect && + <<<<<<< simple + a + c + e + ||||||| master + a + b + c + d + e + ======= + b + d + >>>>>>> local + EOF + test_cmp expect two -hint: Pulling without specifying how to reconcile divergent branches is -hint: discouraged. You can squelch this message by running one of the following -hint: commands sometime before your next pull: -hint: -hint: git config pull.rebase false # merge (the default strategy) -hint: git config pull.rebase true # rebase -hint: git config pull.ff only # fast-forward only -hint: -hint: You can replace "git config" with "git config --global" to set a default -hint: preference for all repositories. You can also pass --rebase, --no-rebase, -hint: or --ff-only on the command line to override the configured default per -hint: invocation. -Already up to date. -Synchronizing submodule url for 'submodule' -Synchronizing submodule url for 'submodule/sub-submodule' -Previous HEAD position was 0c90624 upstream Switched to branch 'master' -Your branch is up to date with 'origin/master'. -hint: Pulling without specifying how to reconcile divergent branches is -hint: discouraged. You can squelch this message by running one of the following -hint: commands sometime before your next pull: -hint: -hint: git config pull.rebase false # merge (the default strategy) -hint: git config pull.rebase true # rebase -hint: git config pull.ff only # fast-forward only -hint: -hint: You can replace "git config" with "git config --global" to set a default -hint: preference for all repositories. You can also pass --rebase, --no-rebase, -hint: or --ff-only on the command line to override the configured default per -hint: invocation. -From /build/git-2.30.2/t/trash directory.t7403-submodule-sync/moved-submodule - 5a446ba..9f583c0 master -> origin/master -Updating 5a446ba..9f583c0 -Fast-forward - .gitmodules | 2 +- - file | 1 + - 2 files changed, 2 insertions(+), 1 deletion(-) -ok 5 - "git submodule sync --recursive" should update all submodule URLs +HEAD is now at 7329388 Initial A one, A two +Removing current +Removing expect +Switched to branch 'simple' +M two +ok 9 - checkout --merge --conflict=diff3 -expecting success of 7403.6 'reset submodule URLs': - reset_submodule_urls super-clone +expecting success of 7201.10 'switch to another branch while carrying a deletion': + git checkout -f master && + git reset --hard && + git clean -f && + git rm two && -ok 6 - reset submodule URLs + test_must_fail git checkout simple 2>errs && + test_i18ngrep overwritten errs && -expecting success of 7403.7 '"git submodule sync" should update submodule URLs - subdirectory': - ( - cd super-clone && - git pull --no-recurse-submodules && - mkdir -p sub && - cd sub && - git submodule sync >../../output - ) && - test_i18ngrep "\\.\\./submodule" output && - test -d "$( - cd super-clone/submodule && - git config remote.origin.url - )" && - test ! -d "$( - cd super-clone/submodule/sub-submodule && - git config remote.origin.url - )" && - ( - cd super-clone/submodule && - git checkout master && - git pull - ) && - ( - cd super-clone && - test -d "$(git config submodule.submodule.url)" - ) + test_must_fail git read-tree --quiet -m -u HEAD simple 2>errs && + test_must_be_empty errs -hint: Pulling without specifying how to reconcile divergent branches is -hint: discouraged. You can squelch this message by running one of the following -hint: commands sometime before your next pull: -hint: -hint: git config pull.rebase false # merge (the default strategy) -hint: git config pull.rebase true # rebase -hint: git config pull.ff only # fast-forward only -hint: -hint: You can replace "git config" with "git config --global" to set a default -hint: preference for all repositories. You can also pass --rebase, --no-rebase, -hint: or --ff-only on the command line to override the configured default per -hint: invocation. -Already up to date. +Switched to branch 'master' +HEAD is now at 7329388 Initial A one, A two +Removing expect +rm 'two' checking prerequisite: C_LOCALE_OUTPUT mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && @@ -348591,864 +345721,583 @@ ) prerequisite C_LOCALE_OUTPUT ok -Synchronizing submodule url for '../submodule' -Already on 'master' -M sub-submodule -Your branch is up to date with 'origin/master'. -hint: Pulling without specifying how to reconcile divergent branches is -hint: discouraged. You can squelch this message by running one of the following -hint: commands sometime before your next pull: -hint: -hint: git config pull.rebase false # merge (the default strategy) -hint: git config pull.rebase true # rebase -hint: git config pull.ff only # fast-forward only -hint: -hint: You can replace "git config" with "git config --global" to set a default -hint: preference for all repositories. You can also pass --rebase, --no-rebase, -hint: or --ff-only on the command line to override the configured default per -hint: invocation. -Already up to date. -ok 7 - "git submodule sync" should update submodule URLs - subdirectory - -expecting success of 7403.8 '"git submodule sync --recursive" should update all submodule URLs - subdirectory': - ( - cd super-clone && - ( - cd submodule && - git pull --no-recurse-submodules - ) && - mkdir -p sub && - cd sub && - git submodule sync --recursive >../../output - ) && - test_i18ngrep "\\.\\./submodule/sub-submodule" output && - test -d "$( - cd super-clone/submodule && - git config remote.origin.url - )" && - test -d "$( - cd super-clone/submodule/sub-submodule && - git config remote.origin.url - )" && - ( - cd super-clone/submodule/sub-submodule && - git checkout master && - git pull - ) - -hint: Pulling without specifying how to reconcile divergent branches is -hint: discouraged. You can squelch this message by running one of the following -hint: commands sometime before your next pull: -hint: -hint: git config pull.rebase false # merge (the default strategy) -hint: git config pull.rebase true # rebase -hint: git config pull.ff only # fast-forward only -hint: -hint: You can replace "git config" with "git config --global" to set a default -hint: preference for all repositories. You can also pass --rebase, --no-rebase, -hint: or --ff-only on the command line to override the configured default per -hint: invocation. -Already up to date. -Synchronizing submodule url for '../submodule/sub-submodule' -Already on 'master' -Your branch is up to date with 'origin/master'. -hint: Pulling without specifying how to reconcile divergent branches is -hint: discouraged. You can squelch this message by running one of the following -hint: commands sometime before your next pull: -hint: -hint: git config pull.rebase false # merge (the default strategy) -hint: git config pull.rebase true # rebase -hint: git config pull.ff only # fast-forward only -hint: -hint: You can replace "git config" with "git config --global" to set a default -hint: preference for all repositories. You can also pass --rebase, --no-rebase, -hint: or --ff-only on the command line to override the configured default per -hint: invocation. -Already up to date. -ok 8 - "git submodule sync --recursive" should update all submodule URLs - subdirectory - -expecting success of 7403.9 '"git submodule sync" should update known submodule URLs': - ( - cd empty-clone && - git pull && - git submodule sync && - test -d "$(git config submodule.submodule.url)" - ) - -hint: Pulling without specifying how to reconcile divergent branches is -hint: discouraged. You can squelch this message by running one of the following -hint: commands sometime before your next pull: -hint: -hint: git config pull.rebase false # merge (the default strategy) -hint: git config pull.rebase true # rebase -hint: git config pull.ff only # fast-forward only -hint: -hint: You can replace "git config" with "git config --global" to set a default -hint: preference for all repositories. You can also pass --rebase, --no-rebase, -hint: or --ff-only on the command line to override the configured default per -hint: invocation. -From /build/git-2.30.2/t/trash directory.t7403-submodule-sync/super - 78df3af..f2e88dd master -> origin/master -Updating 78df3af..f2e88dd -Fast-forward - .gitmodules | 2 +- - submodule | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) -Synchronizing submodule url for 'submodule' -ok 9 - "git submodule sync" should update known submodule URLs - -expecting success of 7403.10 '"git submodule sync" should not vivify uninteresting submodule': - ( - cd top-only-clone && - git pull && - git submodule sync && - test -z "$(git config submodule.submodule.url)" && - git submodule sync submodule && - test -z "$(git config submodule.submodule.url)" - ) - -hint: Pulling without specifying how to reconcile divergent branches is -hint: discouraged. You can squelch this message by running one of the following -hint: commands sometime before your next pull: -hint: -hint: git config pull.rebase false # merge (the default strategy) -hint: git config pull.rebase true # rebase -hint: git config pull.ff only # fast-forward only -hint: -hint: You can replace "git config" with "git config --global" to set a default -hint: preference for all repositories. You can also pass --rebase, --no-rebase, -hint: or --ff-only on the command line to override the configured default per -hint: invocation. -From /build/git-2.30.2/t/trash directory.t7403-submodule-sync/super - 78df3af..f2e88dd master -> origin/master -Updating 78df3af..f2e88dd -Fast-forward - .gitmodules | 2 +- - submodule | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) -ok 10 - "git submodule sync" should not vivify uninteresting submodule - -expecting success of 7403.11 '"git submodule sync" handles origin URL of the form foo': - ( - cd relative-clone && - git remote set-url origin foo && - git submodule sync && - ( - cd submodule && - #actual fails with: "cannot strip off url foo - test "$(git config remote.origin.url)" = "../submodule" - ) - ) - -Synchronizing submodule url for 'submodule' -ok 11 - "git submodule sync" handles origin URL of the form foo - -expecting success of 7403.12 '"git submodule sync" handles origin URL of the form foo/bar': - ( - cd relative-clone && - git remote set-url origin foo/bar && - git submodule sync && - ( - cd submodule && - #actual foo/submodule - test "$(git config remote.origin.url)" = "../foo/submodule" - ) && - ( - cd submodule/sub-submodule && - test "$(git config remote.origin.url)" != "../../foo/submodule" - ) - ) - -Synchronizing submodule url for 'submodule' -ok 12 - "git submodule sync" handles origin URL of the form foo/bar - -expecting success of 7403.13 '"git submodule sync --recursive" propagates changes in origin': - ( - cd recursive-clone && - git remote set-url origin foo/bar && - git submodule sync --recursive && - ( - cd submodule && - #actual foo/submodule - test "$(git config remote.origin.url)" = "../foo/submodule" - ) && - ( - cd submodule/sub-submodule && - test "$(git config remote.origin.url)" = "../../foo/submodule" - ) - ) +error: Your local changes to the following files would be overwritten by checkout: +ok 10 - switch to another branch while carrying a deletion -Synchronizing submodule url for 'submodule' -Synchronizing submodule url for 'submodule/sub-submodule' -ok 13 - "git submodule sync --recursive" propagates changes in origin +expecting success of 7201.11 'checkout to detach HEAD (with advice declined)': + git config advice.detachedHead false && + rev=$(git rev-parse --short renamer^) && + git checkout -f renamer && + git clean -f && + git checkout renamer^ 2>messages && + test_i18ngrep "HEAD is now at $rev" messages && + test_line_count = 1 messages && + H=$(git rev-parse --verify HEAD) && + M=$(git show-ref -s --verify refs/heads/master) && + test "z$H" = "z$M" && + if git symbolic-ref HEAD >/dev/null 2>&1 + then + echo "OOPS, HEAD is still symbolic???" + false + else + : happy + fi -expecting success of 7403.14 '"git submodule sync" handles origin URL of the form ./foo': - ( - cd relative-clone && - git remote set-url origin ./foo && - git submodule sync && - ( - cd submodule && - #actual ./submodule - test "$(git config remote.origin.url)" = "../submodule" - ) - ) +Switched to branch 'renamer' +Removing errs +HEAD is now at 7329388 Initial A one, A two +ok 11 - checkout to detach HEAD (with advice declined) -Synchronizing submodule url for 'submodule' -ok 14 - "git submodule sync" handles origin URL of the form ./foo +expecting success of 7201.12 'checkout to detach HEAD': + git config advice.detachedHead true && + rev=$(git rev-parse --short renamer^) && + git checkout -f renamer && + git clean -f && + GIT_TEST_GETTEXT_POISON=false git checkout renamer^ 2>messages && + grep "HEAD is now at $rev" messages && + test_line_count -gt 1 messages && + H=$(git rev-parse --verify HEAD) && + M=$(git show-ref -s --verify refs/heads/master) && + test "z$H" = "z$M" && + if git symbolic-ref HEAD >/dev/null 2>&1 + then + echo "OOPS, HEAD is still symbolic???" + false + else + : happy + fi -expecting success of 7403.15 '"git submodule sync" handles origin URL of the form ./foo/bar': - ( - cd relative-clone && - git remote set-url origin ./foo/bar && - git submodule sync && - ( - cd submodule && - #actual ./foo/submodule - test "$(git config remote.origin.url)" = "../foo/submodule" - ) - ) +Previous HEAD position was 7329388 Initial A one, A two +Switched to branch 'renamer' +Removing messages +HEAD is now at 7329388 Initial A one, A two +ok 12 - checkout to detach HEAD -Synchronizing submodule url for 'submodule' -ok 15 - "git submodule sync" handles origin URL of the form ./foo/bar +expecting success of 7201.13 'checkout to detach HEAD with branchname^': + git checkout -f master && + git clean -f && + git checkout renamer^ && + H=$(git rev-parse --verify HEAD) && + M=$(git show-ref -s --verify refs/heads/master) && + test "z$H" = "z$M" && + if git symbolic-ref HEAD >/dev/null 2>&1 + then + echo "OOPS, HEAD is still symbolic???" + false + else + : happy + fi -expecting success of 7403.16 '"git submodule sync" handles origin URL of the form ../foo': - ( - cd relative-clone && - git remote set-url origin ../foo && - git submodule sync && - ( - cd submodule && - #actual ../submodule - test "$(git config remote.origin.url)" = "../../submodule" - ) - ) +Switched to branch 'master' +Removing messages +Note: switching to 'renamer^'. -Synchronizing submodule url for 'submodule' -ok 16 - "git submodule sync" handles origin URL of the form ../foo +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. -expecting success of 7403.17 '"git submodule sync" handles origin URL of the form ../foo/bar': - ( - cd relative-clone && - git remote set-url origin ../foo/bar && - git submodule sync && - ( - cd submodule && - #actual ../foo/submodule - test "$(git config remote.origin.url)" = "../../foo/submodule" - ) - ) +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: -Synchronizing submodule url for 'submodule' -ok 17 - "git submodule sync" handles origin URL of the form ../foo/bar + git switch -c -expecting success of 7403.18 '"git submodule sync" handles origin URL of the form ../foo/bar with deeply nested submodule': - ( - cd relative-clone && - git remote set-url origin ../foo/bar && - mkdir -p a/b/c && - ( - cd a/b/c && - git init && - >.gitignore && - git add .gitignore && - test_tick && - git commit -m "initial commit" - ) && - git submodule add ../bar/a/b/c ./a/b/c && - git submodule sync && - ( - cd a/b/c && - #actual ../foo/bar/a/b/c - test "$(git config remote.origin.url)" = "../../../../foo/bar/a/b/c" - ) - ) +Or undo this operation with: -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7403-submodule-sync/relative-clone/a/b/c/.git/ -[master (root-commit) 1f9e67a] initial commit - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - create mode 100644 .gitignore -Adding existing repo at 'a/b/c' to the index -Synchronizing submodule url for 'a/b/c' -Synchronizing submodule url for 'submodule' -ok 18 - "git submodule sync" handles origin URL of the form ../foo/bar with deeply nested submodule + git switch - -# passed all 18 test(s) -1..18 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t7400-submodule-basic.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7400-submodule-basic/.git/ -expecting success of 7400.1 'setup - enable local submodules': - git config --global protocol.file.allow always +Turn off this advice by setting config variable advice.detachedHead to false -ok 1 - setup - enable local submodules +HEAD is now at 7329388 Initial A one, A two +ok 13 - checkout to detach HEAD with branchname^ -expecting success of 7400.2 'submodule deinit works on empty repository': - git submodule deinit --all +expecting success of 7201.14 'checkout to detach HEAD with :/message': + git checkout -f master && + git clean -f && + git checkout ":/Initial" && + H=$(git rev-parse --verify HEAD) && + M=$(git show-ref -s --verify refs/heads/master) && + test "z$H" = "z$M" && + if git symbolic-ref HEAD >/dev/null 2>&1 + then + echo "OOPS, HEAD is still symbolic???" + false + else + : happy + fi -ok 2 - submodule deinit works on empty repository +Switched to branch 'master' +Note: switching to ':/Initial'. -expecting success of 7400.3 'setup - initial commit': - >t && - git add t && - git commit -m "initial commit" && - git branch initial +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. -[master (root-commit) 8f98e77] initial commit - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - create mode 100644 t -ok 3 - setup - initial commit +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: -expecting success of 7400.4 'submodule init aborts on missing .gitmodules file': - test_when_finished "git update-index --remove sub" && - git update-index --add --cacheinfo 160000,$(git rev-parse HEAD),sub && - # missing the .gitmodules file here - test_must_fail git submodule init 2>actual && - test_i18ngrep "No url found for submodule path" actual + git switch -c -checking prerequisite: C_LOCALE_OUTPUT +Or undo this operation with: -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false + git switch - -) -prerequisite C_LOCALE_OUTPUT ok -fatal: No url found for submodule path 'sub' in .gitmodules -ok 4 - submodule init aborts on missing .gitmodules file +Turn off this advice by setting config variable advice.detachedHead to false -expecting success of 7400.5 'submodule update aborts on missing .gitmodules file': - test_when_finished "git update-index --remove sub" && - git update-index --add --cacheinfo 160000,$(git rev-parse HEAD),sub && - # missing the .gitmodules file here - git submodule update sub 2>actual && - test_i18ngrep "Submodule path .sub. not initialized" actual +HEAD is now at 7329388 Initial A one, A two +ok 14 - checkout to detach HEAD with :/message -Submodule path 'sub' not initialized -ok 5 - submodule update aborts on missing .gitmodules file +expecting success of 7201.15 'checkout to detach HEAD with HEAD^0': + git checkout -f master && + git clean -f && + git checkout HEAD^0 && + H=$(git rev-parse --verify HEAD) && + M=$(git show-ref -s --verify refs/heads/master) && + test "z$H" = "z$M" && + if git symbolic-ref HEAD >/dev/null 2>&1 + then + echo "OOPS, HEAD is still symbolic???" + false + else + : happy + fi -expecting success of 7400.6 'submodule update aborts on missing gitmodules url': - test_when_finished "git update-index --remove sub" && - git update-index --add --cacheinfo 160000,$(git rev-parse HEAD),sub && - test_when_finished "rm -f .gitmodules" && - git config -f .gitmodules submodule.s.path sub && - test_must_fail git submodule init +Switched to branch 'master' +Note: switching to 'HEAD^0'. -fatal: No url found for submodule path 'sub' in .gitmodules -ok 6 - submodule update aborts on missing gitmodules url +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. -expecting success of 7400.7 'add aborts on repository with no commits': - cat >expect <<-\EOF && - 'repo-no-commits' does not have a commit checked out - EOF - git init repo-no-commits && - test_must_fail git submodule add ../a ./repo-no-commits 2>actual && - test_i18ncmp expect actual +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7400-submodule-basic/repo-no-commits/.git/ -ok 7 - add aborts on repository with no commits + git switch -c -expecting success of 7400.8 'status should ignore inner git repo when not added': - rm -fr inner && - mkdir inner && - ( - cd inner && - git init && - >t && - git add t && - git commit -m "initial" - ) && - test_must_fail git submodule status inner 2>output.err && - rm -fr inner && - test_i18ngrep "^error: .*did not match any file(s) known to git" output.err +Or undo this operation with: -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7400-submodule-basic/inner/.git/ -[master (root-commit) 0ce53a8] initial - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - create mode 100644 t -error: pathspec 'inner' did not match any file(s) known to git -ok 8 - status should ignore inner git repo when not added + git switch - -expecting success of 7400.9 'setup - repository in init subdirectory': - mkdir init && - ( - cd init && - git init && - echo a >a && - git add a && - git commit -m "submodule commit 1" && - git tag -a -m "rev-1" rev-1 - ) +Turn off this advice by setting config variable advice.detachedHead to false -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7400-submodule-basic/init/.git/ -[master (root-commit) 36aca32] submodule commit 1 - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 a -ok 9 - setup - repository in init subdirectory +HEAD is now at 7329388 Initial A one, A two +ok 15 - checkout to detach HEAD with HEAD^0 -expecting success of 7400.10 'setup - commit with gitlink': - echo a >a && - echo z >z && - git add a init z && - git commit -m "super commit 1" +expecting success of 7201.16 'checkout with ambiguous tag/branch names': + git tag both side && + git branch both master && + git reset --hard && + git checkout master && -warning: adding embedded git repository: init -hint: You've added another git repository inside your current repository. -hint: Clones of the outer repository will not contain the contents of -hint: the embedded repository and will not know how to obtain it. -hint: If you meant to add a submodule, use: -hint: -hint: git submodule add init -hint: -hint: If you added this path by mistake, you can remove it from the -hint: index with: -hint: -hint: git rm --cached init -hint: -hint: See "git help submodule" for more information. -[master 23ad8e1] super commit 1 - Author: A U Thor - 3 files changed, 3 insertions(+) - create mode 100644 a - create mode 160000 init - create mode 100644 z -ok 10 - setup - commit with gitlink + git checkout both && + H=$(git rev-parse --verify HEAD) && + M=$(git show-ref -s --verify refs/heads/master) && + test "z$H" = "z$M" && + name=$(git symbolic-ref HEAD 2>/dev/null) && + test "z$name" = zrefs/heads/both -expecting success of 7400.11 'setup - hide init subdirectory': - mv init .subrepo +HEAD is now at 7329388 Initial A one, A two +Switched to branch 'master' +warning: refname 'both' is ambiguous. +Switched to branch 'both' +ok 16 - checkout with ambiguous tag/branch names -ok 11 - setup - hide init subdirectory +expecting success of 7201.17 'checkout with ambiguous tag/branch names': + git reset --hard && + git checkout master && -expecting success of 7400.12 'setup - repository to add submodules to': - git init addtest && - git init addtest-ignore + git tag frotz side && + git branch frotz master && + git reset --hard && + git checkout master && -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7400-submodule-basic/addtest/.git/ -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7400-submodule-basic/addtest-ignore/.git/ -ok 12 - setup - repository to add submodules to + git checkout tags/frotz && + H=$(git rev-parse --verify HEAD) && + S=$(git show-ref -s --verify refs/heads/side) && + test "z$H" = "z$S" && + if name=$(git symbolic-ref HEAD 2>/dev/null) + then + echo "Bad -- should have detached" + false + else + : happy + fi -expecting success of 7400.13 'submodule add': - echo "refs/heads/master" >expect && +HEAD is now at 7329388 Initial A one, A two +Switched to branch 'master' +HEAD is now at 7329388 Initial A one, A two +Already on 'master' +Note: switching to 'tags/frotz'. - ( - cd addtest && - git submodule add -q "$submodurl" submod >actual && - test_must_be_empty actual && - echo "gitdir: ../.git/modules/submod" >expect && - test_cmp expect submod/.git && - ( - cd submod && - git config core.worktree >actual && - echo "../../../submod" >expect && - test_cmp expect actual && - rm -f actual expect - ) && - git submodule init - ) && +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. - rm -f heads head untracked && - inspect addtest/submod ../.. && - test_cmp expect heads && - test_cmp expect head && - test_must_be_empty untracked +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: -ok 13 - submodule add + git switch -c -expecting success of 7400.14 'setup parent and one repository': - test_create_repo parent && - test_commit -C parent one +Or undo this operation with: -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7400-submodule-basic/parent/.git/ -[master (root-commit) d79ce16] one - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 one.t -ok 14 - setup parent and one repository + git switch - -expecting success of 7400.15 'redirected submodule add does not show progress': - git -C addtest submodule add "file://$submodurl/parent" submod-redirected \ - 2>err && - ! grep % err && - test_i18ngrep ! "Checking connectivity" err +Turn off this advice by setting config variable advice.detachedHead to false -ok 15 - redirected submodule add does not show progress +HEAD is now at ab76817 Side M one, D two, A three +ok 17 - checkout with ambiguous tag/branch names -expecting success of 7400.16 'redirected submodule add --progress does show progress': - git -C addtest submodule add --progress "file://$submodurl/parent" \ - submod-redirected-progress 2>err && \ - grep % err +expecting success of 7201.18 'switch branches while in subdirectory': + git reset --hard && + git checkout master && -remote: Counting objects: 33% (1/3) remote: Counting objects: 66% (2/3) remote: Counting objects: 100% (3/3) remote: Counting objects: 100% (3/3), done. -Receiving objects: 33% (1/3) Receiving objects: 66% (2/3) Receiving objects: 100% (3/3) Receiving objects: 100% (3/3), done. -ok 16 - redirected submodule add --progress does show progress + mkdir subs && + git -C subs checkout side && + ! test -f subs/one && + rm -fr subs -expecting success of 7400.17 'submodule add to .gitignored path fails': - ( - cd addtest-ignore && - cat <<-\EOF >expect && - The following paths are ignored by one of your .gitignore files: - submod - hint: Use -f if you really want to add them. - hint: Turn this message off by running - hint: "git config advice.addIgnoredFile false" - EOF - # Does not use test_commit due to the ignore - echo "*" > .gitignore && - git add --force .gitignore && - git commit -m"Ignore everything" && - ! git submodule add "$submodurl" submod >actual 2>&1 && - test_i18ncmp expect actual - ) +HEAD is now at ab76817 Side M one, D two, A three +Previous HEAD position was ab76817 Side M one, D two, A three +Switched to branch 'master' +Switched to branch 'side' +ok 18 - switch branches while in subdirectory -[master (root-commit) 29c0beb] Ignore everything - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 .gitignore -ok 17 - submodule add to .gitignored path fails +expecting success of 7201.19 'checkout specific path while in subdirectory': + git reset --hard && + git checkout side && + mkdir subs && + >subs/bero && + git add subs/bero && + git commit -m "add subs/bero" && -expecting success of 7400.18 'submodule add to .gitignored path with --force': - ( - cd addtest-ignore && - git submodule add --force "$submodurl" submod - ) + git checkout master && + mkdir -p subs && + git -C subs checkout side -- bero && + test -f subs/bero -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/addtest-ignore/submod'... -done. -ok 18 - submodule add to .gitignored path with --force +HEAD is now at ab76817 Side M one, D two, A three +Already on 'side' +[side bb04aa0] add subs/bero + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 subs/bero +Switched to branch 'master' +ok 19 - checkout specific path while in subdirectory -expecting success of 7400.19 'submodule add to reconfigure existing submodule with --force': - ( - cd addtest-ignore && - bogus_url="$(pwd)/bogus-url" && - git submodule add --force "$bogus_url" submod && - git submodule add --force -b initial "$submodurl" submod-branch && - test "$bogus_url" = "$(git config -f .gitmodules submodule.submod.url)" && - test "$bogus_url" = "$(git config submodule.submod.url)" && - # Restore the url - git submodule add --force "$submodurl" submod && - test "$submodurl" = "$(git config -f .gitmodules submodule.submod.url)" && - test "$submodurl" = "$(git config submodule.submod.url)" - ) +expecting success of 7201.20 'checkout w/--track sets up tracking': + git config branch.autosetupmerge false && + git checkout master && + git checkout --track -b track1 && + test "$(git config branch.track1.remote)" && + test "$(git config branch.track1.merge)" -Adding existing repo at 'submod' to the index -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/addtest-ignore/submod-branch'... -done. -Adding existing repo at 'submod' to the index -ok 19 - submodule add to reconfigure existing submodule with --force +Already on 'master' +A subs/bero +Switched to a new branch 'track1' +A subs/bero +Branch 'track1' set up to track local branch 'master'. +ok 20 - checkout w/--track sets up tracking -expecting success of 7400.20 'submodule add relays add --dry-run stderr': - test_when_finished "rm -rf addtest/.git/index.lock" && - ( - cd addtest && - : >.git/index.lock && - ! git submodule add "$submodurl" sub-while-locked 2>output.err && - test_i18ngrep "^fatal: .*index\.lock" output.err && - test_path_is_missing sub-while-locked - ) +expecting success of 7201.21 'checkout w/autosetupmerge=always sets up tracking': + test_when_finished git config branch.autosetupmerge false && + git config branch.autosetupmerge always && + git checkout master && + git checkout -b track2 && + test "$(git config branch.track2.remote)" && + test "$(git config branch.track2.merge)" -fatal: Unable to create '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/addtest/.git/index.lock': File exists. -ok 20 - submodule add relays add --dry-run stderr +Switched to branch 'master' +A subs/bero +Switched to a new branch 'track2' +Branch 'track2' set up to track local branch 'master'. +ok 21 - checkout w/autosetupmerge=always sets up tracking -expecting success of 7400.21 'submodule add --branch': - echo "refs/heads/initial" >expect-head && - cat <<-\EOF >expect-heads && - refs/heads/initial - refs/heads/master - EOF +expecting success of 7201.22 'checkout w/--track from non-branch HEAD fails': + git checkout master^0 && + test_must_fail git symbolic-ref HEAD && + test_must_fail git checkout --track -b track && + test_must_fail git rev-parse --verify track && + test_must_fail git symbolic-ref HEAD && + test "z$(git rev-parse master^0)" = "z$(git rev-parse HEAD)" - ( - cd addtest && - git submodule add -b initial "$submodurl" submod-branch && - test "initial" = "$(git config -f .gitmodules submodule.submod-branch.branch)" && - git submodule init - ) && +Note: switching to 'master^0'. - rm -f heads head untracked && - inspect addtest/submod-branch ../.. && - test_cmp expect-heads heads && - test_cmp expect-head head && - test_must_be_empty untracked +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/addtest/submod-branch'... -done. -ok 21 - submodule add --branch +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: -expecting success of 7400.22 'submodule add with ./ in path': - echo "refs/heads/master" >expect && + git switch -c - ( - cd addtest && - git submodule add "$submodurl" ././dotsubmod/./frotz/./ && - git submodule init - ) && +Or undo this operation with: - rm -f heads head untracked && - inspect addtest/dotsubmod/frotz ../../.. && - test_cmp expect heads && - test_cmp expect head && - test_must_be_empty untracked + git switch - -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/addtest/dotsubmod/frotz'... -done. -ok 22 - submodule add with ./ in path +Turn off this advice by setting config variable advice.detachedHead to false -expecting success of 7400.23 'submodule add with /././ in path': - echo "refs/heads/master" >expect && +HEAD is now at 7329388 Initial A one, A two +A subs/bero +fatal: ref HEAD is not a symbolic ref +fatal: Cannot setup tracking information; starting point 'HEAD' is not a branch. +A subs/bero +fatal: Needed a single revision +fatal: ref HEAD is not a symbolic ref +ok 22 - checkout w/--track from non-branch HEAD fails - ( - cd addtest && - git submodule add "$submodurl" dotslashdotsubmod/././frotz/./ && - git submodule init - ) && +expecting success of 7201.23 'checkout w/--track from tag fails': + git checkout master^0 && + test_must_fail git symbolic-ref HEAD && + test_must_fail git checkout --track -b track frotz && + test_must_fail git rev-parse --verify track && + test_must_fail git symbolic-ref HEAD && + test "z$(git rev-parse master^0)" = "z$(git rev-parse HEAD)" - rm -f heads head untracked && - inspect addtest/dotslashdotsubmod/frotz ../../.. && - test_cmp expect heads && - test_cmp expect head && - test_must_be_empty untracked +HEAD is now at 7329388 Initial A one, A two +A subs/bero +fatal: ref HEAD is not a symbolic ref +warning: refname 'frotz' is ambiguous. +warning: refname 'frotz' is ambiguous. +fatal: Ambiguous object name: 'frotz'. +A subs/bero +fatal: Needed a single revision +fatal: ref HEAD is not a symbolic ref +ok 23 - checkout w/--track from tag fails -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/addtest/dotslashdotsubmod/frotz'... -done. -ok 23 - submodule add with /././ in path +expecting success of 7201.24 'detach a symbolic link HEAD': + git checkout master && + git config --bool core.prefersymlinkrefs yes && + git checkout side && + git checkout master && + it=$(git symbolic-ref HEAD) && + test "z$it" = zrefs/heads/master && + here=$(git rev-parse --verify refs/heads/master) && + git checkout side^ && + test "z$(git rev-parse --verify refs/heads/master)" = "z$here" -expecting success of 7400.24 'submodule add with // in path': - echo "refs/heads/master" >expect && +Switched to branch 'master' +A subs/bero +Switched to branch 'side' +Switched to branch 'master' +Note: switching to 'side^'. - ( - cd addtest && - git submodule add "$submodurl" slashslashsubmod///frotz// && - git submodule init - ) && +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. - rm -f heads head untracked && - inspect addtest/slashslashsubmod/frotz ../../.. && - test_cmp expect heads && - test_cmp expect head && - test_must_be_empty untracked +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/addtest/slashslashsubmod/frotz'... -done. -ok 24 - submodule add with // in path + git switch -c -expecting success of 7400.25 'submodule add with /.. in path': - echo "refs/heads/master" >expect && +Or undo this operation with: - ( - cd addtest && - git submodule add "$submodurl" dotdotsubmod/../realsubmod/frotz/.. && - git submodule init - ) && + git switch - - rm -f heads head untracked && - inspect addtest/realsubmod ../.. && - test_cmp expect heads && - test_cmp expect head && - test_must_be_empty untracked +Turn off this advice by setting config variable advice.detachedHead to false -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/addtest/realsubmod'... -done. -ok 25 - submodule add with /.. in path +HEAD is now at ab76817 Side M one, D two, A three +ok 24 - detach a symbolic link HEAD -expecting success of 7400.26 'submodule add with ./, /.. and // in path': - echo "refs/heads/master" >expect && +expecting success of 7201.25 'checkout with --track fakes a sensible -b ': + git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*" && + git update-ref refs/remotes/origin/koala/bear renamer && - ( - cd addtest && - git submodule add "$submodurl" dot/dotslashsubmod/./../..////realsubmod2/a/b/c/d/../../../../frotz//.. && - git submodule init - ) && + git checkout --track origin/koala/bear && + test "refs/heads/koala/bear" = "$(git symbolic-ref HEAD)" && + test "$(git rev-parse HEAD)" = "$(git rev-parse renamer)" && - rm -f heads head untracked && - inspect addtest/realsubmod2 ../.. && - test_cmp expect heads && - test_cmp expect head && - test_must_be_empty untracked + git checkout master && git branch -D koala/bear && -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/addtest/realsubmod2'... -done. -ok 26 - submodule add with ./, /.. and // in path + git checkout --track refs/remotes/origin/koala/bear && + test "refs/heads/koala/bear" = "$(git symbolic-ref HEAD)" && + test "$(git rev-parse HEAD)" = "$(git rev-parse renamer)" && -expecting success of 7400.27 'submodule add with \\ in path': - test_when_finished "rm -rf parent sub\\with\\backslash" && + git checkout master && git branch -D koala/bear && - # Initialize a repo with a backslash in its name - git init sub\\with\\backslash && - touch sub\\with\\backslash/empty.file && - git -C sub\\with\\backslash add empty.file && - git -C sub\\with\\backslash commit -m "Added empty.file" && + git checkout --track remotes/origin/koala/bear && + test "refs/heads/koala/bear" = "$(git symbolic-ref HEAD)" && + test "$(git rev-parse HEAD)" = "$(git rev-parse renamer)" - # Add that repository as a submodule - git init parent && - git -C parent submodule add ../sub\\with\\backslash +Previous HEAD position was ab76817 Side M one, D two, A three +Switched to a new branch 'koala/bear' +Branch 'koala/bear' set up to track remote branch 'koala/bear' from 'origin'. +Switched to branch 'master' +Deleted branch koala/bear (was 0420b41). +Switched to a new branch 'koala/bear' +Branch 'koala/bear' set up to track remote branch 'koala/bear' from 'origin'. +Switched to branch 'master' +Deleted branch koala/bear (was 0420b41). +Switched to a new branch 'koala/bear' +Branch 'koala/bear' set up to track remote branch 'koala/bear' from 'origin'. +ok 25 - checkout with --track fakes a sensible -b -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7400-submodule-basic/sub\with\backslash/.git/ -[master (root-commit) a129325] Added empty.file - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - create mode 100644 empty.file -Reinitialized existing Git repository in /build/git-2.30.2/t/trash directory.t7400-submodule-basic/parent/.git/ -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/parent/sub\with\backslash'... -done. -ok 27 - submodule add with \\ in path +expecting success of 7201.26 'checkout with --track, but without -b, fails with too short tracked name': + test_must_fail git checkout --track renamer -expecting success of 7400.28 'submodule add in subdirectory': - echo "refs/heads/master" >expect && +fatal: missing branch name; try -b +ok 26 - checkout with --track, but without -b, fails with too short tracked name - mkdir addtest/sub && - ( - cd addtest/sub && - git submodule add "$submodurl" ../realsubmod3 && - git submodule init - ) && +expecting success of 7201.27 'checkout an unmerged path should fail': + setup_conflicting_index && + echo "none of the above" >sample && + cat sample >fild && + cat sample >file && + cat sample >filf && + test_must_fail git checkout fild file filf && + test_cmp sample fild && + test_cmp sample filf && + test_cmp sample file - rm -f heads head untracked && - inspect addtest/realsubmod3 ../.. && - test_cmp expect heads && - test_cmp expect head && - test_must_be_empty untracked +error: path 'file' is unmerged +ok 27 - checkout an unmerged path should fail -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/addtest/realsubmod3'... -done. -ok 28 - submodule add in subdirectory +expecting success of 7201.28 'checkout with an unmerged path can be ignored': + setup_conflicting_index && + echo "none of the above" >sample && + echo ourside >expect && + cat sample >fild && + cat sample >file && + cat sample >filf && + git checkout -f fild file filf && + test_cmp expect fild && + test_cmp expect filf && + test_cmp sample file -expecting success of 7400.29 'submodule add in subdirectory with relative path should fail': - ( - cd addtest/sub && - test_must_fail git submodule add ../../ submod3 2>../../output.err - ) && - test_i18ngrep toplevel output.err +warning: path 'file' is unmerged +Updated 2 paths from the index +ok 28 - checkout with an unmerged path can be ignored -Relative path can only be used from the toplevel of the working tree -ok 29 - submodule add in subdirectory with relative path should fail +expecting success of 7201.29 'checkout unmerged stage': + setup_conflicting_index && + echo "none of the above" >sample && + echo ourside >expect && + cat sample >fild && + cat sample >file && + cat sample >filf && + git checkout --ours . && + test_cmp expect fild && + test_cmp expect filf && + test_cmp expect file && + git checkout --theirs file && + test ztheirside = "z$(cat file)" -expecting success of 7400.30 'setup - add an example entry to .gitmodules': - git config --file=.gitmodules submodule.example.url git://example.com/init.git +Updated 3 paths from the index +Updated 1 path from the index +ok 29 - checkout unmerged stage -ok 30 - setup - add an example entry to .gitmodules +expecting success of 7201.30 'checkout with --merge': + setup_conflicting_index && + echo "none of the above" >sample && + echo ourside >expect && + cat sample >fild && + cat sample >file && + cat sample >filf && + git checkout -m -- fild file filf && + ( + echo "<<<<<<< ours" && + echo ourside && + echo "=======" && + echo theirside && + echo ">>>>>>> theirs" + ) >merged && + test_cmp expect fild && + test_cmp expect filf && + test_cmp merged file -expecting success of 7400.31 'status should fail for unmapped paths': - test_must_fail git submodule status +ok 30 - checkout with --merge -fatal: no submodule mapping found in .gitmodules for path 'init' -ok 31 - status should fail for unmapped paths +expecting success of 7201.31 'checkout with --merge, in diff3 -m style': + git config merge.conflictstyle diff3 && + setup_conflicting_index && + echo "none of the above" >sample && + echo ourside >expect && + cat sample >fild && + cat sample >file && + cat sample >filf && + git checkout -m -- fild file filf && + ( + echo "<<<<<<< ours" && + echo ourside && + echo "||||||| base" && + echo original && + echo "=======" && + echo theirside && + echo ">>>>>>> theirs" + ) >merged && + test_cmp expect fild && + test_cmp expect filf && + test_cmp merged file -expecting success of 7400.32 'setup - map path in .gitmodules': - cat <<\EOF >expect && -[submodule "example"] - url = git://example.com/init.git - path = init -EOF +ok 31 - checkout with --merge, in diff3 -m style - git config --file=.gitmodules submodule.example.path init && +expecting success of 7201.32 'checkout --conflict=merge, overriding config': + git config merge.conflictstyle diff3 && + setup_conflicting_index && + echo "none of the above" >sample && + echo ourside >expect && + cat sample >fild && + cat sample >file && + cat sample >filf && + git checkout --conflict=merge -- fild file filf && + ( + echo "<<<<<<< ours" && + echo ourside && + echo "=======" && + echo theirside && + echo ">>>>>>> theirs" + ) >merged && + test_cmp expect fild && + test_cmp expect filf && + test_cmp merged file - test_cmp expect .gitmodules +ok 32 - checkout --conflict=merge, overriding config -ok 32 - setup - map path in .gitmodules +expecting success of 7201.33 'checkout --conflict=diff3': + test_unconfig merge.conflictstyle && + setup_conflicting_index && + echo "none of the above" >sample && + echo ourside >expect && + cat sample >fild && + cat sample >file && + cat sample >filf && + git checkout --conflict=diff3 -- fild file filf && + ( + echo "<<<<<<< ours" && + echo ourside && + echo "||||||| base" && + echo original && + echo "=======" && + echo theirside && + echo ">>>>>>> theirs" + ) >merged && + test_cmp expect fild && + test_cmp expect filf && + test_cmp merged file -expecting success of 7400.33 'status should only print one line': - git submodule status >lines && - test_line_count = 1 lines +ok 33 - checkout --conflict=diff3 -ok 33 - status should only print one line +expecting success of 7201.34 'failing checkout -b should not break working tree': + git reset --hard master && + git symbolic-ref HEAD refs/heads/master && + test_must_fail git checkout -b renamer side^ && + test $(git symbolic-ref HEAD) = refs/heads/master && + git diff --exit-code && + git diff --cached --exit-code -expecting success of 7400.34 'status from subdirectory should have the same SHA1': - test_when_finished "rmdir addtest/subdir" && - ( - cd addtest && - mkdir subdir && - git submodule status >output && - awk "{print \$1}" expect && - cd subdir && - git submodule status >../output && - awk "{print \$1}" <../output >../actual && - test_cmp ../expect ../actual && - git -C ../submod checkout HEAD^ && - git submodule status >../output && - awk "{print \$1}" <../output >../actual2 && - cd .. && - git submodule status >output && - awk "{print \$1}" expect2 && - test_cmp expect2 actual2 && - ! test_cmp actual actual2 - ) +HEAD is now at 7329388 Initial A one, A two +fatal: A branch named 'renamer' already exists. +ok 34 - failing checkout -b should not break working tree -Note: switching to 'HEAD^'. +expecting success of 7201.35 'switch out of non-branch': + git reset --hard master && + git checkout master^0 && + echo modified >one && + test_must_fail git checkout renamer 2>error.log && + ! grep "^Previous HEAD" error.log + +HEAD is now at 7329388 Initial A one, A two +Note: switching to 'master^0'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this @@ -349465,832 +346314,654 @@ Turn off this advice by setting config variable advice.detachedHead to false -HEAD is now at 8f98e77 initial commit ---- actual 2023-04-29 16:42:36.535929770 +0000 -+++ actual2 2023-04-29 16:42:37.371847687 +0000 -@@ -4,7 +4,7 @@ - 23ad8e191a506339bc2aa0ae92a950f35303f38b - 23ad8e191a506339bc2aa0ae92a950f35303f38b - 23ad8e191a506339bc2aa0ae92a950f35303f38b --23ad8e191a506339bc2aa0ae92a950f35303f38b -++8f98e7791903e3a21e37e7c040acf7518da96e03 - 8f98e7791903e3a21e37e7c040acf7518da96e03 - d79ce1670bdcb76e6d1da2ae095e890ccb326ae9 - d79ce1670bdcb76e6d1da2ae095e890ccb326ae9 -ok 34 - status from subdirectory should have the same SHA1 +HEAD is now at 7329388 Initial A one, A two +ok 35 - switch out of non-branch -expecting success of 7400.35 'setup - fetch commit name from submodule': - rev1=$(cd .subrepo && git rev-parse HEAD) && - printf "rev1: %s\n" "$rev1" && - test -n "$rev1" +expecting success of 7201.36 'custom merge driver with checkout -m': + git reset --hard && -rev1: 36aca326f3b39b6c280a410fa907ac252a2075c6 -ok 35 - setup - fetch commit name from submodule + git config merge.filfre.driver "./filfre.sh %O %A %B" && + git config merge.filfre.name "Feel-free merge driver" && + git config merge.filfre.recursive binary && + echo "arm merge=filfre" >.gitattributes && -expecting success of 7400.36 'status should initially be "missing"': - git submodule status >lines && - grep "^-$rev1" lines + git checkout -b left && + echo neutral >arm && + git add arm .gitattributes && + test_tick && + git commit -m neutral && + git branch right && --36aca326f3b39b6c280a410fa907ac252a2075c6 init -ok 36 - status should initially be "missing" + echo left >arm && + test_tick && + git commit -a -m left && + git checkout right && -expecting success of 7400.37 'init should register submodule url in .git/config': - echo git://example.com/init.git >expect && + echo right >arm && + test_tick && + git commit -a -m right && - git submodule init && - git config submodule.example.url >url && - git config submodule.example.url ./.subrepo && + test_must_fail git merge left && + ( + for t in filfre-common left right + do + grep $t arm || exit 1 + done + ) && - test_cmp expect url + mv arm expect && + git checkout -m arm && + test_cmp expect arm -Submodule 'example' (git://example.com/init.git) registered for path 'init' -ok 37 - init should register submodule url in .git/config +HEAD is now at 7329388 Initial A one, A two +Switched to a new branch 'left' +[left b257dc6] neutral + Author: A U Thor + 2 files changed, 2 insertions(+) + create mode 100644 .gitattributes + create mode 100644 arm +[left 2459c9d] left + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +Switched to branch 'right' +[right 6b476b9] right + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +Merging: +6b476b9 right +virtual left +found 1 common ancestor: +b257dc6 neutral +Auto-merging arm +CONFLICT (content): Merge conflict in arm +Automatic merge failed; fix conflicts and then commit the result. +||||||| filfre-common +left +right +Recreated 1 merge conflict +ok 36 - custom merge driver with checkout -m -expecting success of 7400.38 'status should still be "missing" after initializing': - rm -fr init && - mkdir init && - git submodule status >lines && - rm -fr init && - grep "^-$rev1" lines +# passed all 36 test(s) +1..36 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t7300-clean.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7300-clean/.git/ +expecting success of 7300.1 'setup': --36aca326f3b39b6c280a410fa907ac252a2075c6 init -ok 38 - status should still be "missing" after initializing + mkdir -p src && + touch src/part1.c Makefile && + echo build >.gitignore && + echo \*.o >>.gitignore && + git add . && + git commit -m setup && + touch src/part2.c README && + git add . -expecting success of 7400.39 'init should fail with unknown submodule': - test_failure_with_unknown_submodule init -error: pathspec 'no-such-submodule' did not match any file(s) known to git -ok 39 - init should fail with unknown submodule +[master (root-commit) c1a48e2] setup + Author: A U Thor + 3 files changed, 2 insertions(+) + create mode 100644 .gitignore + create mode 100644 Makefile + create mode 100644 src/part1.c +ok 1 - setup -expecting success of 7400.40 'update should fail with unknown submodule': - test_failure_with_unknown_submodule update +expecting success of 7300.2 'git clean with skip-worktree .gitignore': + git update-index --skip-worktree .gitignore && + rm .gitignore && + mkdir -p build docs && + touch a.out src/part3.c docs/manual.txt obj.o build/lib.so && + git clean && + test -f Makefile && + test -f README && + test -f src/part1.c && + test -f src/part2.c && + test ! -f a.out && + test ! -f src/part3.c && + test -f docs/manual.txt && + test -f obj.o && + test -f build/lib.so && + git update-index --no-skip-worktree .gitignore && + git checkout .gitignore -error: pathspec 'no-such-submodule' did not match any file(s) known to git -ok 40 - update should fail with unknown submodule +Removing a.out +Removing src/part3.c +Updated 1 path from the index +ok 2 - git clean with skip-worktree .gitignore -expecting success of 7400.41 'status should fail with unknown submodule': - test_failure_with_unknown_submodule status +expecting success of 7300.3 'git clean': -error: pathspec 'no-such-submodule' did not match any file(s) known to git -ok 41 - status should fail with unknown submodule + mkdir -p build docs && + touch a.out src/part3.c docs/manual.txt obj.o build/lib.so && + git clean && + test -f Makefile && + test -f README && + test -f src/part1.c && + test -f src/part2.c && + test ! -f a.out && + test ! -f src/part3.c && + test -f docs/manual.txt && + test -f obj.o && + test -f build/lib.so -expecting success of 7400.42 'sync should fail with unknown submodule': - test_failure_with_unknown_submodule sync -error: pathspec 'no-such-submodule' did not match any file(s) known to git -ok 42 - sync should fail with unknown submodule +Removing a.out +Removing src/part3.c +ok 3 - git clean -expecting success of 7400.43 'update should fail when path is used by a file': - echo hello >expect && +expecting success of 7300.4 'git clean src/': - echo "hello" >init && - test_must_fail git submodule update && + mkdir -p build docs && + touch a.out src/part3.c docs/manual.txt obj.o build/lib.so && + git clean src/ && + test -f Makefile && + test -f README && + test -f src/part1.c && + test -f src/part2.c && + test -f a.out && + test ! -f src/part3.c && + test -f docs/manual.txt && + test -f obj.o && + test -f build/lib.so - test_cmp expect init -fatal: destination path '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init' already exists and is not an empty directory. -fatal: clone of './.subrepo' into submodule path '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init' failed -Failed to clone 'init'. Retry scheduled -fatal: destination path '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init' already exists and is not an empty directory. -fatal: clone of './.subrepo' into submodule path '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init' failed -Failed to clone 'init' a second time, aborting -ok 43 - update should fail when path is used by a file +Removing src/part3.c +ok 4 - git clean src/ -expecting success of 7400.44 'update should fail when path is used by a nonempty directory': - echo hello >expect && +expecting success of 7300.5 'git clean src/ src/': - rm -fr init && - mkdir init && - echo "hello" >init/a && + mkdir -p build docs && + touch a.out src/part3.c docs/manual.txt obj.o build/lib.so && + git clean src/ src/ && + test -f Makefile && + test -f README && + test -f src/part1.c && + test -f src/part2.c && + test -f a.out && + test ! -f src/part3.c && + test -f docs/manual.txt && + test -f obj.o && + test -f build/lib.so - test_must_fail git submodule update && - test_cmp expect init/a +Removing src/part3.c +ok 5 - git clean src/ src/ -fatal: destination path '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init' already exists and is not an empty directory. -fatal: clone of './.subrepo' into submodule path '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init' failed -Failed to clone 'init'. Retry scheduled -fatal: destination path '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init' already exists and is not an empty directory. -fatal: clone of './.subrepo' into submodule path '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init' failed -Failed to clone 'init' a second time, aborting -ok 44 - update should fail when path is used by a nonempty directory +expecting success of 7300.6 'git clean with prefix': -expecting success of 7400.45 'update should work when path is an empty dir': - rm -fr init && - rm -f head-sha1 && - echo "$rev1" >expect && + mkdir -p build docs src/test && + touch a.out src/part3.c docs/manual.txt obj.o build/lib.so src/test/1.c && + (cd src/ && git clean) && + test -f Makefile && + test -f README && + test -f src/part1.c && + test -f src/part2.c && + test -f a.out && + test ! -f src/part3.c && + test -f src/test/1.c && + test -f docs/manual.txt && + test -f obj.o && + test -f build/lib.so - mkdir init && - git submodule update -q >update.out && - test_must_be_empty update.out && - inspect init && - test_cmp expect head-sha1 +Removing part3.c +ok 6 - git clean with prefix -fatal: ref HEAD is not a symbolic ref -ok 45 - update should work when path is an empty dir +checking prerequisite: C_LOCALE_OUTPUT -expecting success of 7400.46 'status should be "up-to-date" after update': - git submodule status >list && - grep "^ $rev1" list +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false - 36aca326f3b39b6c280a410fa907ac252a2075c6 init (rev-1) -ok 46 - status should be "up-to-date" after update +) +prerequisite C_LOCALE_OUTPUT ok +expecting success of 7300.7 'git clean with relative prefix': -expecting success of 7400.47 'status "up-to-date" from subdirectory': - mkdir -p sub && - ( - cd sub && - git submodule status >../list + mkdir -p build docs && + touch a.out src/part3.c docs/manual.txt obj.o build/lib.so && + would_clean=$( + cd docs && + git clean -n ../src | + grep part3 | + sed -n -e "s|^Would remove ||p" ) && - grep "^ $rev1" list && - grep "\\.\\./init" list - - 36aca326f3b39b6c280a410fa907ac252a2075c6 ../init (rev-1) - 36aca326f3b39b6c280a410fa907ac252a2075c6 ../init (rev-1) -ok 47 - status "up-to-date" from subdirectory + verbose test "$would_clean" = ../src/part3.c -expecting success of 7400.48 'status "up-to-date" from subdirectory with path': - mkdir -p sub && - ( - cd sub && - git submodule status ../init >../list - ) && - grep "^ $rev1" list && - grep "\\.\\./init" list +ok 7 - git clean with relative prefix - 36aca326f3b39b6c280a410fa907ac252a2075c6 ../init (rev-1) - 36aca326f3b39b6c280a410fa907ac252a2075c6 ../init (rev-1) -ok 48 - status "up-to-date" from subdirectory with path +expecting success of 7300.8 'git clean with absolute path': -expecting success of 7400.49 'status should be "modified" after submodule commit': - ( - cd init && - echo b >b && - git add b && - git commit -m "submodule commit 2" + mkdir -p build docs && + touch a.out src/part3.c docs/manual.txt obj.o build/lib.so && + would_clean=$( + cd docs && + git clean -n "$(pwd)/../src" | + grep part3 | + sed -n -e "s|^Would remove ||p" ) && + verbose test "$would_clean" = ../src/part3.c - rev2=$(cd init && git rev-parse HEAD) && - test -n "$rev2" && - git submodule status >list && - - grep "^+$rev2" list +ok 8 - git clean with absolute path -[detached HEAD 8eafb57] submodule commit 2 - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 b -+8eafb57b6146d899eeaa430c12864a09fcb0e7e1 init (rev-1-1-g8eafb57) -ok 49 - status should be "modified" after submodule commit +expecting success of 7300.9 'git clean with out of work tree relative path': -expecting success of 7400.50 'the --cached sha1 should be rev1': - git submodule --cached status >list && - grep "^+$rev1" list + mkdir -p build docs && + touch a.out src/part3.c docs/manual.txt obj.o build/lib.so && + ( + cd docs && + test_must_fail git clean -n ../.. + ) -+36aca326f3b39b6c280a410fa907ac252a2075c6 init (rev-1) -ok 50 - the --cached sha1 should be rev1 +fatal: ../..: '../..' is outside repository at '/build/git-2.30.2/t/trash directory.t7300-clean' +ok 9 - git clean with out of work tree relative path -expecting success of 7400.51 'git diff should report the SHA1 of the new submodule commit': - git diff >diff && - grep "^+Subproject commit $rev2" diff +expecting success of 7300.10 'git clean with out of work tree absolute path': -+Subproject commit 8eafb57b6146d899eeaa430c12864a09fcb0e7e1 -ok 51 - git diff should report the SHA1 of the new submodule commit + mkdir -p build docs && + touch a.out src/part3.c docs/manual.txt obj.o build/lib.so && + dd=$(cd .. && pwd) && + ( + cd docs && + test_must_fail git clean -n $dd + ) -expecting success of 7400.52 'update should checkout rev1': - rm -f head-sha1 && - echo "$rev1" >expect && +fatal: /build/git-2.30.2/t: '/build/git-2.30.2/t' is outside repository at '/build/git-2.30.2/t/trash directory.t7300-clean' +ok 10 - git clean with out of work tree absolute path - git submodule update init && - inspect init && +expecting success of 7300.11 'git clean -d with prefix and path': - test_cmp expect head-sha1 + mkdir -p build docs src/feature && + touch a.out src/part3.c src/feature/file.c docs/manual.txt obj.o build/lib.so && + (cd src/ && git clean -d feature/) && + test -f Makefile && + test -f README && + test -f src/part1.c && + test -f src/part2.c && + test -f a.out && + test -f src/part3.c && + test ! -f src/feature/file.c && + test -f docs/manual.txt && + test -f obj.o && + test -f build/lib.so -Submodule path 'init': checked out '36aca326f3b39b6c280a410fa907ac252a2075c6' -fatal: ref HEAD is not a symbolic ref -ok 52 - update should checkout rev1 -expecting success of 7400.53 'status should be "up-to-date" after update': - git submodule status >list && - grep "^ $rev1" list +Removing feature/ +ok 11 - git clean -d with prefix and path - 36aca326f3b39b6c280a410fa907ac252a2075c6 init (rev-1) -ok 53 - status should be "up-to-date" after update +checking prerequisite: SYMLINKS -expecting success of 7400.54 'checkout superproject with subproject already present': - git checkout initial && - git checkout master +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && + # test whether the filesystem supports symbolic links + ln -s x y && test -h y -warning: unable to rmdir 'init': Directory not empty -Switched to branch 'initial' -Switched to branch 'master' -ok 54 - checkout superproject with subproject already present +) +prerequisite SYMLINKS ok +expecting success of 7300.12 'git clean symbolic link': -expecting success of 7400.55 'apply submodule diff': - git branch second && - ( - cd init && - echo s >s && - git add s && - git commit -m "change subproject" - ) && - git update-index --add init && - git commit -m "change init" && - git format-patch -1 --stdout >P.diff && - git checkout second && - git apply --index P.diff && + mkdir -p build docs && + touch a.out src/part3.c docs/manual.txt obj.o build/lib.so && + ln -s docs/manual.txt src/part4.c && + git clean && + test -f Makefile && + test -f README && + test -f src/part1.c && + test -f src/part2.c && + test ! -f a.out && + test ! -f src/part3.c && + test ! -f src/part4.c && + test -f docs/manual.txt && + test -f obj.o && + test -f build/lib.so - git diff --cached master >staged && - test_must_be_empty staged -[detached HEAD da28091] change subproject - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 s -[master cb68a4b] change init - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -Switched to branch 'second' -M init -warning: unable to rmdir 'init': Directory not empty -ok 55 - apply submodule diff +Removing a.out +Removing src/part3.c +Removing src/part4.c +ok 12 - git clean symbolic link -expecting success of 7400.56 'update --init': - mv init init2 && - git config -f .gitmodules submodule.example.url "$(pwd)/init2" && - git config --remove-section submodule.example && - test_must_fail git config submodule.example.url && +expecting success of 7300.13 'git clean with wildcard': - git submodule update init 2> update.out && - test_i18ngrep "not initialized" update.out && - test_must_fail git rev-parse --resolve-git-dir init/.git && + touch a.clean b.clean other.c && + git clean "*.clean" && + test -f Makefile && + test -f README && + test -f src/part1.c && + test -f src/part2.c && + test ! -f a.clean && + test ! -f b.clean && + test -f other.c - git submodule update --init init && - git rev-parse --resolve-git-dir init/.git -Submodule path 'init' not initialized -fatal: not a gitdir 'init/.git' -Submodule 'example' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init2) registered for path 'init' -Submodule path 'init': checked out 'da28091fa1960864823ed381ef2a1c41222b8351' -/build/git-2.30.2/t/trash directory.t7400-submodule-basic/.git/modules/example -ok 56 - update --init +Removing a.clean +Removing b.clean +ok 13 - git clean with wildcard -expecting success of 7400.57 'update --init from subdirectory': - mv init init2 && - git config -f .gitmodules submodule.example.url "$(pwd)/init2" && - git config --remove-section submodule.example && - test_must_fail git config submodule.example.url && +expecting success of 7300.14 'git clean -n': - mkdir -p sub && - ( - cd sub && - git submodule update ../init 2>update.out && - test_i18ngrep "not initialized" update.out && - test_must_fail git rev-parse --resolve-git-dir ../init/.git && + mkdir -p build docs && + touch a.out src/part3.c docs/manual.txt obj.o build/lib.so && + git clean -n && + test -f Makefile && + test -f README && + test -f src/part1.c && + test -f src/part2.c && + test -f a.out && + test -f src/part3.c && + test -f docs/manual.txt && + test -f obj.o && + test -f build/lib.so - git submodule update --init ../init - ) && - git rev-parse --resolve-git-dir init/.git -Submodule path 'init' not initialized -fatal: not a gitdir '../init/.git' -Submodule 'example' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init2) registered for path '../init' -Submodule path '../init': checked out 'da28091fa1960864823ed381ef2a1c41222b8351' -/build/git-2.30.2/t/trash directory.t7400-submodule-basic/.git/modules/example -ok 57 - update --init from subdirectory +Would remove a.out +Would remove other.c +Would remove src/part3.c +ok 14 - git clean -n -expecting success of 7400.58 'do not add files from a submodule': +expecting success of 7300.15 'git clean -d': - git reset --hard && - test_must_fail git add init/a + mkdir -p build docs && + touch a.out src/part3.c docs/manual.txt obj.o build/lib.so && + git clean -d && + test -f Makefile && + test -f README && + test -f src/part1.c && + test -f src/part2.c && + test ! -f a.out && + test ! -f src/part3.c && + test ! -d docs && + test -f obj.o && + test -f build/lib.so -HEAD is now at 23ad8e1 super commit 1 -fatal: Pathspec 'init/a' is in submodule 'init' -ok 58 - do not add files from a submodule +Removing a.out +Removing docs/ +Removing other.c +Removing src/part3.c +Removing src/test/ +ok 15 - git clean -d -expecting success of 7400.59 'gracefully add/reset submodule with a trailing slash': +expecting success of 7300.16 'git clean -d src/ examples/': - git reset --hard && - git commit -m "commit subproject" init && - (cd init && - echo b > a) && - git add init/ && - git diff --exit-code --cached init && - commit=$(cd init && - git commit -m update a >/dev/null && - git rev-parse HEAD) && - git add init/ && - test_must_fail git diff --exit-code --cached init && - test $commit = $(git ls-files --stage | - sed -n "s/^160000 \([^ ]*\).*/\1/p") && - git reset init/ && - git diff --exit-code --cached init + mkdir -p build docs examples && + touch a.out src/part3.c docs/manual.txt obj.o build/lib.so examples/1.c && + git clean -d src/ examples/ && + test -f Makefile && + test -f README && + test -f src/part1.c && + test -f src/part2.c && + test -f a.out && + test ! -f src/part3.c && + test ! -f examples/1.c && + test -f docs/manual.txt && + test -f obj.o && + test -f build/lib.so -HEAD is now at 23ad8e1 super commit 1 -[second 365536a] commit subproject - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/init b/init -index da28091..cf4817b 160000 ---- a/init -+++ b/init -@@ -1 +1 @@ --Subproject commit da28091fa1960864823ed381ef2a1c41222b8351 -+Subproject commit cf4817bea522d7a895a8f804894e1254c741baae -Unstaged changes after reset: -M init -ok 59 - gracefully add/reset submodule with a trailing slash +Removing examples/ +Removing src/part3.c +ok 16 - git clean -d src/ examples/ -expecting success of 7400.60 'ls-files gracefully handles trailing slash': +expecting success of 7300.17 'git clean -x': - test "init" = "$(git ls-files init/)" + mkdir -p build docs && + touch a.out src/part3.c docs/manual.txt obj.o build/lib.so && + git clean -x && + test -f Makefile && + test -f README && + test -f src/part1.c && + test -f src/part2.c && + test ! -f a.out && + test ! -f src/part3.c && + test -f docs/manual.txt && + test ! -f obj.o && + test -f build/lib.so -ok 60 - ls-files gracefully handles trailing slash +Removing a.out +Removing obj.o +Removing src/part3.c +ok 17 - git clean -x -expecting success of 7400.61 'moving to a commit without submodule does not leave empty dir': - rm -rf init && - mkdir init && - git reset --hard && - git checkout initial && - test ! -d init && - git checkout second +expecting success of 7300.18 'git clean -d -x': -HEAD is now at 365536a commit subproject -Switched to branch 'initial' -Switched to branch 'second' -ok 61 - moving to a commit without submodule does not leave empty dir + mkdir -p build docs && + touch a.out src/part3.c docs/manual.txt obj.o build/lib.so && + git clean -d -x && + test -f Makefile && + test -f README && + test -f src/part1.c && + test -f src/part2.c && + test ! -f a.out && + test ! -f src/part3.c && + test ! -d docs && + test ! -f obj.o && + test ! -d build -expecting success of 7400.62 'submodule fails': - test_must_fail git submodule no-such-subcommand -usage: git submodule [--quiet] [--cached] - or: git submodule [--quiet] add [-b ] [-f|--force] [--name ] [--reference ] [--] [] - or: git submodule [--quiet] status [--cached] [--recursive] [--] [...] - or: git submodule [--quiet] init [--] [...] - or: git submodule [--quiet] deinit [-f|--force] (--all| [--] ...) - or: git submodule [--quiet] update [--init] [--remote] [-N|--no-fetch] [-f|--force] [--checkout|--merge|--rebase] [--[no-]recommend-shallow] [--reference ] [--recursive] [--[no-]single-branch] [--] [...] - or: git submodule [--quiet] set-branch (--default|--branch ) [--] - or: git submodule [--quiet] set-url [--] - or: git submodule [--quiet] summary [--cached|--files] [--summary-limit ] [commit] [--] [...] - or: git submodule [--quiet] foreach [--recursive] - or: git submodule [--quiet] sync [--recursive] [--] [...] - or: git submodule [--quiet] absorbgitdirs [--] [...] -ok 62 - submodule fails +Removing a.out +Removing build/ +Removing docs/ +Removing obj.o +Removing src/part3.c +ok 18 - git clean -d -x -expecting success of 7400.63 'add submodules without specifying an explicit path': - mkdir repo && - ( - cd repo && - git init && - echo r >r && - git add r && - git commit -m "repo commit 1" - ) && - git clone --bare repo/ bare.git && - ( - cd addtest && - git submodule add "$submodurl/repo" && - git config -f .gitmodules submodule.repo.path repo && - git submodule add "$submodurl/bare.git" && - git config -f .gitmodules submodule.bare.path bare - ) +expecting success of 7300.19 'git clean -d -x with ignored tracked directory': -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7400-submodule-basic/repo/.git/ -[master (root-commit) 0244caa] repo commit 1 - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 r -Cloning into bare repository 'bare.git'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/addtest/repo'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/addtest/bare'... -done. -ok 63 - add submodules without specifying an explicit path + mkdir -p build docs && + touch a.out src/part3.c docs/manual.txt obj.o build/lib.so && + git clean -d -x -e src && + test -f Makefile && + test -f README && + test -f src/part1.c && + test -f src/part2.c && + test ! -f a.out && + test -f src/part3.c && + test ! -d docs && + test ! -f obj.o && + test ! -d build -expecting success of 7400.64 'add should fail when path is used by a file': - ( - cd addtest && - touch file && - test_must_fail git submodule add "$submodurl/repo" file - ) -'file' already exists and is not a valid git repo -ok 64 - add should fail when path is used by a file +Removing a.out +Removing build/ +Removing docs/ +Removing obj.o +ok 19 - git clean -d -x with ignored tracked directory -expecting success of 7400.65 'add should fail when path is used by an existing directory': - ( - cd addtest && - mkdir empty-dir && - test_must_fail git submodule add "$submodurl/repo" empty-dir - ) +expecting success of 7300.20 'git clean -X': -'empty-dir' already exists and is not a valid git repo -ok 65 - add should fail when path is used by an existing directory + mkdir -p build docs && + touch a.out src/part3.c docs/manual.txt obj.o build/lib.so && + git clean -X && + test -f Makefile && + test -f README && + test -f src/part1.c && + test -f src/part2.c && + test -f a.out && + test -f src/part3.c && + test -f docs/manual.txt && + test ! -f obj.o && + test -f build/lib.so -expecting success of 7400.66 'use superproject as upstream when path is relative and no url is set there': - ( - cd addtest && - git submodule add ../repo relative && - test "$(git config -f .gitmodules submodule.relative.url)" = ../repo && - git submodule sync relative && - test "$(git config submodule.relative.url)" = "$submodurl/repo" - ) -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/addtest/relative'... -done. -Synchronizing submodule url for 'relative' -ok 66 - use superproject as upstream when path is relative and no url is set there +Removing obj.o +ok 20 - git clean -X -expecting success of 7400.67 'set up for relative path tests': - mkdir reltest && - ( - cd reltest && - git init && - mkdir sub && - ( - cd sub && - git init && - test_commit foo - ) && - git add sub && - git config -f .gitmodules submodule.sub.path sub && - git config -f .gitmodules submodule.sub.url ../subrepo && - cp .git/config pristine-.git-config && - cp .gitmodules pristine-.gitmodules - ) +expecting success of 7300.21 'git clean -d -X': -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7400-submodule-basic/reltest/.git/ -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7400-submodule-basic/reltest/sub/.git/ -[master (root-commit) 946e985] foo - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 foo.t -warning: adding embedded git repository: sub -hint: You've added another git repository inside your current repository. -hint: Clones of the outer repository will not contain the contents of -hint: the embedded repository and will not know how to obtain it. -hint: If you meant to add a submodule, use: -hint: -hint: git submodule add sub -hint: -hint: If you added this path by mistake, you can remove it from the -hint: index with: -hint: -hint: git rm --cached sub -hint: -hint: See "git help submodule" for more information. -ok 67 - set up for relative path tests + mkdir -p build docs && + touch a.out src/part3.c docs/manual.txt obj.o build/lib.so && + git clean -d -X && + test -f Makefile && + test -f README && + test -f src/part1.c && + test -f src/part2.c && + test -f a.out && + test -f src/part3.c && + test -f docs/manual.txt && + test ! -f obj.o && + test ! -d build -expecting success of 7400.68 '../subrepo works with URL - ssh://hostname/repo': - ( - cd reltest && - cp pristine-.git-config .git/config && - cp pristine-.gitmodules .gitmodules && - git config remote.origin.url ssh://hostname/repo && - git submodule init && - test "$(git config submodule.sub.url)" = ssh://hostname/subrepo - ) -Submodule 'sub' (ssh://hostname/subrepo) registered for path 'sub' -ok 68 - ../subrepo works with URL - ssh://hostname/repo +Removing build/ +Removing obj.o +ok 21 - git clean -d -X -expecting success of 7400.69 '../subrepo works with port-qualified URL - ssh://hostname:22/repo': - ( - cd reltest && - cp pristine-.git-config .git/config && - cp pristine-.gitmodules .gitmodules && - git config remote.origin.url ssh://hostname:22/repo && - git submodule init && - test "$(git config submodule.sub.url)" = ssh://hostname:22/subrepo - ) +expecting success of 7300.22 'git clean -d -X with ignored tracked directory': -Submodule 'sub' (ssh://hostname:22/subrepo) registered for path 'sub' -ok 69 - ../subrepo works with port-qualified URL - ssh://hostname:22/repo + mkdir -p build docs && + touch a.out src/part3.c docs/manual.txt obj.o build/lib.so && + git clean -d -X -e src && + test -f Makefile && + test -f README && + test -f src/part1.c && + test -f src/part2.c && + test -f a.out && + test ! -f src/part3.c && + test -f docs/manual.txt && + test ! -f obj.o && + test ! -d build -expecting success of 7400.70 '../subrepo path works with local path - //somewhere else/repo': - ( - cd reltest && - cp pristine-.git-config .git/config && - cp pristine-.gitmodules .gitmodules && - git config remote.origin.url "//somewhere else/repo" && - git submodule init && - test "$(git config submodule.sub.url)" = "//somewhere else/subrepo" - ) -Submodule 'sub' (//somewhere else/subrepo) registered for path 'sub' -ok 70 - ../subrepo path works with local path - //somewhere else/repo +Removing build/ +Removing obj.o +Removing src/part3.c +ok 22 - git clean -d -X with ignored tracked directory -expecting success of 7400.71 '../subrepo works with file URL - file:///tmp/repo': - ( - cd reltest && - cp pristine-.git-config .git/config && - cp pristine-.gitmodules .gitmodules && - git config remote.origin.url file:///tmp/repo && - git submodule init && - test "$(git config submodule.sub.url)" = file:///tmp/subrepo - ) +expecting success of 7300.23 'clean.requireForce defaults to true': -Submodule 'sub' (file:///tmp/subrepo) registered for path 'sub' -ok 71 - ../subrepo works with file URL - file:///tmp/repo + git config --unset clean.requireForce && + test_must_fail git clean -expecting success of 7400.72 '../subrepo works with helper URL- helper:://hostname/repo': - ( - cd reltest && - cp pristine-.git-config .git/config && - cp pristine-.gitmodules .gitmodules && - git config remote.origin.url helper:://hostname/repo && - git submodule init && - test "$(git config submodule.sub.url)" = helper:://hostname/subrepo - ) -Submodule 'sub' (helper:://hostname/subrepo) registered for path 'sub' -ok 72 - ../subrepo works with helper URL- helper:://hostname/repo +fatal: clean.requireForce defaults to true and neither -i, -n, nor -f given; refusing to clean +ok 23 - clean.requireForce defaults to true -expecting success of 7400.73 '../subrepo works with scp-style URL - user@host:repo': - ( - cd reltest && - cp pristine-.git-config .git/config && - git config remote.origin.url user@host:repo && - git submodule init && - test "$(git config submodule.sub.url)" = user@host:subrepo - ) +expecting success of 7300.24 'clean.requireForce': -Submodule 'sub' (user@host:subrepo) registered for path 'sub' -ok 73 - ../subrepo works with scp-style URL - user@host:repo + git config clean.requireForce true && + test_must_fail git clean -expecting success of 7400.74 '../subrepo works with scp-style URL - user@host:path/to/repo': - ( - cd reltest && - cp pristine-.git-config .git/config && - cp pristine-.gitmodules .gitmodules && - git config remote.origin.url user@host:path/to/repo && - git submodule init && - test "$(git config submodule.sub.url)" = user@host:path/to/subrepo - ) -Submodule 'sub' (user@host:path/to/subrepo) registered for path 'sub' -ok 74 - ../subrepo works with scp-style URL - user@host:path/to/repo +fatal: clean.requireForce set to true and neither -i, -n, nor -f given; refusing to clean +ok 24 - clean.requireForce -expecting success of 7400.75 '../subrepo works with relative local path - foo': - ( - cd reltest && - cp pristine-.git-config .git/config && - cp pristine-.gitmodules .gitmodules && - git config remote.origin.url foo && - # actual: fails with an error - git submodule init && - test "$(git config submodule.sub.url)" = subrepo - ) +expecting success of 7300.25 'clean.requireForce and -n': -Submodule 'sub' (subrepo) registered for path 'sub' -ok 75 - ../subrepo works with relative local path - foo + mkdir -p build docs && + touch a.out src/part3.c docs/manual.txt obj.o build/lib.so && + git clean -n && + test -f Makefile && + test -f README && + test -f src/part1.c && + test -f src/part2.c && + test -f a.out && + test -f src/part3.c && + test -f docs/manual.txt && + test -f obj.o && + test -f build/lib.so -expecting success of 7400.76 '../subrepo works with relative local path - foo/bar': - ( - cd reltest && - cp pristine-.git-config .git/config && - cp pristine-.gitmodules .gitmodules && - git config remote.origin.url foo/bar && - git submodule init && - test "$(git config submodule.sub.url)" = foo/subrepo - ) -Submodule 'sub' (foo/subrepo) registered for path 'sub' -ok 76 - ../subrepo works with relative local path - foo/bar +Would remove a.out +Would remove src/part3.c +ok 25 - clean.requireForce and -n -expecting success of 7400.77 '../subrepo works with relative local path - ./foo': - ( - cd reltest && - cp pristine-.git-config .git/config && - cp pristine-.gitmodules .gitmodules && - git config remote.origin.url ./foo && - git submodule init && - test "$(git config submodule.sub.url)" = subrepo - ) +expecting success of 7300.26 'clean.requireForce and -f': -Submodule 'sub' (subrepo) registered for path 'sub' -ok 77 - ../subrepo works with relative local path - ./foo + git clean -f && + test -f README && + test -f src/part1.c && + test -f src/part2.c && + test ! -f a.out && + test ! -f src/part3.c && + test -f docs/manual.txt && + test -f obj.o && + test -f build/lib.so -expecting success of 7400.78 '../subrepo works with relative local path - ./foo/bar': - ( - cd reltest && - cp pristine-.git-config .git/config && - cp pristine-.gitmodules .gitmodules && - git config remote.origin.url ./foo/bar && - git submodule init && - test "$(git config submodule.sub.url)" = foo/subrepo - ) -Submodule 'sub' (foo/subrepo) registered for path 'sub' -ok 78 - ../subrepo works with relative local path - ./foo/bar +Removing a.out +Removing src/part3.c +ok 26 - clean.requireForce and -f -expecting success of 7400.79 '../subrepo works with relative local path - ../foo': - ( - cd reltest && - cp pristine-.git-config .git/config && - cp pristine-.gitmodules .gitmodules && - git config remote.origin.url ../foo && - git submodule init && - test "$(git config submodule.sub.url)" = ../subrepo - ) +expecting success of 7300.27 'core.excludesfile': -Submodule 'sub' (../subrepo) registered for path 'sub' -ok 79 - ../subrepo works with relative local path - ../foo + echo excludes >excludes && + echo included >included && + git config core.excludesfile excludes && + output=$(git clean -n excludes included 2>&1) && + expr "$output" : ".*included" >/dev/null && + ! expr "$output" : ".*excludes" >/dev/null -expecting success of 7400.80 '../subrepo works with relative local path - ../foo/bar': - ( - cd reltest && - cp pristine-.git-config .git/config && - cp pristine-.gitmodules .gitmodules && - git config remote.origin.url ../foo/bar && - git submodule init && - test "$(git config submodule.sub.url)" = ../foo/subrepo - ) -Submodule 'sub' (../foo/subrepo) registered for path 'sub' -ok 80 - ../subrepo works with relative local path - ../foo/bar +ok 27 - core.excludesfile -expecting success of 7400.81 '../bar/a/b/c works with relative local path - ../foo/bar.git': - ( - cd reltest && - cp pristine-.git-config .git/config && - cp pristine-.gitmodules .gitmodules && - mkdir -p a/b/c && - (cd a/b/c && git init && test_commit msg) && - git config remote.origin.url ../foo/bar.git && - git submodule add ../bar/a/b/c ./a/b/c && - git submodule init && - test "$(git config submodule.a/b/c.url)" = ../foo/bar/a/b/c - ) +checking prerequisite: SANITY -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7400-submodule-basic/reltest/a/b/c/.git/ -[master (root-commit) 11e1cd7] msg - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 msg.t -Adding existing repo at 'a/b/c' to the index -Submodule 'sub' (../foo/subrepo) registered for path 'sub' -ok 81 - ../bar/a/b/c works with relative local path - ../foo/bar.git +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SANITY" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-SANITY" && + mkdir SANETESTD.1 SANETESTD.2 && -expecting success of 7400.82 'moving the superproject does not break submodules': - ( - cd addtest && - git submodule status >expect - ) && - mv addtest addtest2 && - ( - cd addtest2 && - git submodule status >actual && - test_cmp expect actual - ) + chmod +w SANETESTD.1 SANETESTD.2 && + >SANETESTD.1/x 2>SANETESTD.2/x && + chmod -w SANETESTD.1 && + chmod -r SANETESTD.1/x && + chmod -rx SANETESTD.2 || + BUG "cannot prepare SANETESTD" -ok 82 - moving the superproject does not break submodules + ! test -r SANETESTD.1/x && + ! rm SANETESTD.1/x && ! test -f SANETESTD.2/x + status=$? -expecting success of 7400.83 'moving the submodule does not break the superproject': - ( - cd addtest2 && - git submodule status - ) >actual && - sed -e "s/^ \([^ ]* repo\) .*/-\1/" expect && - mv addtest2/repo addtest2/repo.bak && - test_when_finished "mv addtest2/repo.bak addtest2/repo" && - ( - cd addtest2 && - git submodule status - ) >actual && - test_cmp expect actual + chmod +rwx SANETESTD.1 SANETESTD.2 && + rm -rf SANETESTD.1 SANETESTD.2 || + BUG "cannot clean SANETESTD" + return $status -ok 83 - moving the submodule does not break the superproject +) +rm: cannot remove 'SANETESTD.1/x': Permission denied +prerequisite SANITY ok +expecting success of 7300.28 'removal failure': -expecting success of 7400.84 'submodule add --name allows to replace a submodule with another at the same path': - ( - cd addtest2 && - ( - cd repo && - echo "$submodurl/repo" >expect && - git config remote.origin.url >actual && - test_cmp expect actual && - echo "gitdir: ../.git/modules/repo" >expect && - test_cmp expect .git - ) && - rm -rf repo && - git rm repo && - git submodule add -q --name repo_new "$submodurl/bare.git" repo >actual && - test_must_be_empty actual && - echo "gitdir: ../.git/modules/submod" >expect && - test_cmp expect submod/.git && - ( - cd repo && - echo "$submodurl/bare.git" >expect && - git config remote.origin.url >actual && - test_cmp expect actual && - echo "gitdir: ../.git/modules/repo_new" >expect && - test_cmp expect .git - ) && - echo "repo" >expect && - test_must_fail git config -f .gitmodules submodule.repo.path && - git config -f .gitmodules submodule.repo_new.path >actual && - test_cmp expect actual && - echo "$submodurl/repo" >expect && - test_must_fail git config -f .gitmodules submodule.repo.url && - echo "$submodurl/bare.git" >expect && - git config -f .gitmodules submodule.repo_new.url >actual && - test_cmp expect actual && - echo "$submodurl/repo" >expect && - git config submodule.repo.url >actual && - test_cmp expect actual && - echo "$submodurl/bare.git" >expect && - git config submodule.repo_new.url >actual && - test_cmp expect actual - ) + mkdir foo && + touch foo/bar && + test_when_finished "chmod 755 foo" && + (exec t && - git add t && - git commit -m "initial commit" + test_commit nested hello.world ) && - mkdir sub3 && ( - cd sub3 && - git init && - >t && - git add t && - git commit -m "initial commit" && - git submodule add ../subsub dirdir/subsub && - git commit -m "add submodule subsub" + cd bar && + >goodbye.people ) && - mkdir super && ( - cd super && + cd baz/boo && git init && - >t && - git add t && - git commit -m "initial commit" && - git submodule add ../sub3 && - git commit -m "add submodule sub" - ) && - git clone super clone2 && - ( - cd clone2 && - git submodule update --init --recursive && - echo "gitdir: ../.git/modules/sub3" >./sub3/.git_expect && - echo "gitdir: ../../../.git/modules/sub3/modules/dirdir/subsub" >./sub3/dirdir/subsub/.git_expect + test_commit deeply.nested deeper.world ) && - test_cmp clone2/sub3/.git_expect clone2/sub3/.git && - test_cmp clone2/sub3/dirdir/subsub/.git_expect clone2/sub3/dirdir/subsub/.git + git clean -f -d && + test -f foo/.git/index && + test -f foo/hello.world && + test -f baz/boo/.git/index && + test -f baz/boo/deeper.world && + ! test -d bar hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all @@ -350302,11 +346973,11 @@ hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7400-submodule-basic/subsub/.git/ -[master (root-commit) b53efa3] initial commit +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7300-clean/foo/.git/ +[master (root-commit) abd8674] nested Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - create mode 100644 t + 1 file changed, 1 insertion(+) + create mode 100644 hello.world hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all hint: of your new repositories, which will suppress this warning, call: @@ -350317,18 +346988,64 @@ hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7400-submodule-basic/sub3/.git/ -[master (root-commit) b53efa3] initial commit - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - create mode 100644 t -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/sub3/dirdir/subsub'... -done. -[master e6f2fcc] add submodule subsub +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7300-clean/baz/boo/.git/ +[master (root-commit) 3f7f1fc] deeply.nested Author: A U Thor - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 dirdir/subsub + 1 file changed, 1 insertion(+) + create mode 100644 deeper.world +Removing bar/ +Skipping repository baz/boo +ok 29 - nested git work tree + +expecting success of 7300.30 'should clean things that almost look like git but are not': + rm -fr almost_git almost_bare_git almost_submodule && + mkdir -p almost_git/.git/objects && + mkdir -p almost_git/.git/refs && + cat >almost_git/.git/HEAD <<-\EOF && + garbage + EOF + cp -r almost_git/.git/ almost_bare_git && + mkdir almost_submodule/ && + cat >almost_submodule/.git <<-\EOF && + garbage + EOF + test_when_finished "rm -rf almost_*" && + git clean -f -d && + test_path_is_missing almost_git && + test_path_is_missing almost_bare_git && + test_path_is_missing almost_submodule + +Removing almost_bare_git/ +Removing almost_git/ +Removing almost_submodule/ +Skipping repository baz/boo +ok 30 - should clean things that almost look like git but are not + +expecting success of 7300.31 'should not clean submodules': + rm -fr repo to_clean sub1 sub2 && + mkdir repo to_clean && + ( + cd repo && + git init && + test_commit msg hello.world + ) && + test_config_global protocol.file.allow always && + git submodule add ./repo/.git sub1 && + git commit -m "sub1" && + git branch before_sub2 && + git submodule add ./repo/.git sub2 && + git commit -m "sub2" && + git checkout before_sub2 && + >to_clean/should_clean.this && + git clean -f -d && + test_path_is_file repo/.git/index && + test_path_is_file repo/hello.world && + test_path_is_file sub1/.git && + test_path_is_file sub1/hello.world && + test_path_is_file sub2/.git && + test_path_is_file sub2/hello.world && + test_path_is_missing to_clean + hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all hint: of your new repositories, which will suppress this warning, call: @@ -350339,90 +347056,58 @@ hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7400-submodule-basic/super/.git/ -[master (root-commit) b53efa3] initial commit +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7300-clean/repo/.git/ +[master (root-commit) 1af9d3b] msg Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - create mode 100644 t -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/super/sub3'... + 1 file changed, 1 insertion(+) + create mode 100644 hello.world +Cloning into '/build/git-2.30.2/t/trash directory.t7300-clean/sub1'... done. -[master a307821] add submodule sub +[master a5d0902] sub1 Author: A U Thor - 2 files changed, 4 insertions(+) + 4 files changed, 4 insertions(+) create mode 100644 .gitmodules - create mode 160000 sub3 -Cloning into 'clone2'... -done. -Submodule 'sub3' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/sub3) registered for path 'sub3' -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/clone2/sub3'... -done. -Submodule path 'sub3': checked out 'e6f2fcc279299766e5fd82861e01a38b63aaaf3b' -Submodule 'dirdir/subsub' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/subsub) registered for path 'sub3/dirdir/subsub' -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/clone2/sub3/dirdir/subsub'... + create mode 100644 README + create mode 100644 src/part2.c + create mode 160000 sub1 +Cloning into '/build/git-2.30.2/t/trash directory.t7300-clean/sub2'... done. -Submodule path 'sub3/dirdir/subsub': checked out 'b53efa3ba7e36ac5829f9621027fbe0575deb58e' -ok 85 - recursive relative submodules stay relative - -expecting success of 7400.86 'submodule add with an existing name fails unless forced': - ( - cd addtest2 && - rm -rf repo && - git rm repo && - test_must_fail git submodule add -q --name repo_new "$submodurl/repo.git" repo && - test ! -d repo && - test_must_fail git config -f .gitmodules submodule.repo_new.path && - test_must_fail git config -f .gitmodules submodule.repo_new.url && - echo "$submodurl/bare.git" >expect && - git config submodule.repo_new.url >actual && - test_cmp expect actual && - git submodule add -f -q --name repo_new "$submodurl/repo.git" repo && - test -d repo && - echo "repo" >expect && - git config -f .gitmodules submodule.repo_new.path >actual && - test_cmp expect actual && - echo "$submodurl/repo.git" >expect && - git config -f .gitmodules submodule.repo_new.url >actual && - test_cmp expect actual && - echo "$submodurl/repo.git" >expect && - git config submodule.repo_new.url >actual && - test_cmp expect actual - ) - -rm 'repo' -A git directory for 'repo_new' is found locally with remote(s): - origin /build/git-2.30.2/t/trash directory.t7400-submodule-basic/bare.git -If you want to reuse this local git directory instead of cloning again from - /build/git-2.30.2/t/trash directory.t7400-submodule-basic/repo.git -use the '--force' option. If the local git directory is not the correct repo -or you are unsure what this means choose another name with the '--name' option. -Reactivating local git directory for submodule 'repo_new'. -ok 86 - submodule add with an existing name fails unless forced +[master 8525980] sub2 + Author: A U Thor + 2 files changed, 4 insertions(+) + create mode 160000 sub2 +warning: unable to rmdir 'sub2': Directory not empty +Switched to branch 'before_sub2' +Removing .gitconfig +Skipping repository baz/boo +Removing to_clean/ +ok 31 - should not clean submodules -expecting success of 7400.87 'set up a second submodule': - git submodule add ./init2 example2 && - git commit -m "submodule example2 added" +expecting success of 7300.32 'should avoid cleaning possible submodules': + rm -fr to_clean possible_sub1 && + mkdir to_clean possible_sub1 && + test_when_finished "rm -rf possible_sub*" && + echo "gitdir: foo" >possible_sub1/.git && + >possible_sub1/hello.world && + chmod 0 possible_sub1/.git && + >to_clean/should_clean.this && + git clean -f -d && + test_path_is_file possible_sub1/.git && + test_path_is_file possible_sub1/hello.world && + test_path_is_missing to_clean -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/example2'... -done. -[second 0a0f8a3] submodule example2 added - Author: A U Thor - 2 files changed, 7 insertions(+) - create mode 100644 .gitmodules - create mode 160000 example2 -ok 87 - set up a second submodule +Skipping repository baz/boo +Removing to_clean/ +ok 32 - should avoid cleaning possible submodules -expecting success of 7400.88 'submodule deinit works on repository without submodules': - test_when_finished "rm -rf newdirectory" && - mkdir newdirectory && - ( - cd newdirectory && - git init && - >file && - git add file && - git commit -m "repo should not be empty" && - git submodule deinit . && - git submodule deinit --all - ) +expecting success of 7300.33 'nested (empty) git should be kept': + rm -fr empty_repo to_clean && + git init empty_repo && + mkdir to_clean && + >to_clean/should_clean.this && + git clean -f -d && + test_path_is_file empty_repo/.git/HEAD && + test_path_is_missing to_clean hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all @@ -350434,264 +347119,93 @@ hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7400-submodule-basic/newdirectory/.git/ -[master (root-commit) 9bf0f79] repo should not be empty - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - create mode 100644 file -ok 88 - submodule deinit works on repository without submodules - -expecting success of 7400.89 'submodule deinit should remove the whole submodule section from .git/config': - git config submodule.example.foo bar && - git config submodule.example2.frotz nitfol && - git submodule deinit init && - test -z "$(git config --get-regexp "submodule\.example\.")" && - test -n "$(git config --get-regexp "submodule\.example2\.")" && - test -f example2/.git && - rmdir init - -Cleared directory 'init' -Submodule 'example' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init2) unregistered for path 'init' -ok 89 - submodule deinit should remove the whole submodule section from .git/config - -expecting success of 7400.90 'submodule deinit should unset core.worktree': - test_path_is_file .git/modules/example/config && - test_must_fail git config -f .git/modules/example/config core.worktree - -ok 90 - submodule deinit should unset core.worktree - -expecting success of 7400.91 'submodule deinit from subdirectory': - git submodule update --init && - git config submodule.example.foo bar && - mkdir -p sub && - ( - cd sub && - git submodule deinit ../init >../output - ) && - test_i18ngrep "\\.\\./init" output && - test -z "$(git config --get-regexp "submodule\.example\.")" && - test -n "$(git config --get-regexp "submodule\.example2\.")" && - test -f example2/.git && - rmdir init - -Submodule 'example' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init2) registered for path 'init' -Submodule path 'init': checked out 'da28091fa1960864823ed381ef2a1c41222b8351' -Cleared directory '../init' -Submodule 'example' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init2) unregistered for path '../init' -ok 91 - submodule deinit from subdirectory - -expecting success of 7400.92 'submodule deinit . deinits all initialized submodules': - git submodule update --init && - git config submodule.example.foo bar && - git config submodule.example2.frotz nitfol && - test_must_fail git submodule deinit && - git submodule deinit . >actual && - test -z "$(git config --get-regexp "submodule\.example\.")" && - test -z "$(git config --get-regexp "submodule\.example2\.")" && - test_i18ngrep "Cleared directory .init" actual && - test_i18ngrep "Cleared directory .example2" actual && - rmdir init example2 - -Submodule 'example' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init2) registered for path 'init' -Submodule path 'init': checked out 'da28091fa1960864823ed381ef2a1c41222b8351' -fatal: Use '--all' if you really want to deinitialize all submodules -Cleared directory 'init' -Cleared directory 'example2' -ok 92 - submodule deinit . deinits all initialized submodules - -expecting success of 7400.93 'submodule deinit --all deinits all initialized submodules': - git submodule update --init && - git config submodule.example.foo bar && - git config submodule.example2.frotz nitfol && - test_must_fail git submodule deinit && - git submodule deinit --all >actual && - test -z "$(git config --get-regexp "submodule\.example\.")" && - test -z "$(git config --get-regexp "submodule\.example2\.")" && - test_i18ngrep "Cleared directory .init" actual && - test_i18ngrep "Cleared directory .example2" actual && - rmdir init example2 - -warning: could not look up configuration 'remote.origin.url'. Assuming this repository is its own authoritative upstream. -Submodule 'example2' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init2) registered for path 'example2' -Submodule 'example' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init2) registered for path 'init' -Submodule path 'example2': checked out 'cf4817bea522d7a895a8f804894e1254c741baae' -Submodule path 'init': checked out 'da28091fa1960864823ed381ef2a1c41222b8351' -fatal: Use '--all' if you really want to deinitialize all submodules -Cleared directory 'init' -Cleared directory 'example2' -ok 93 - submodule deinit --all deinits all initialized submodules - -expecting success of 7400.94 'submodule deinit deinits a submodule when its work tree is missing or empty': - git submodule update --init && - rm -rf init example2/* example2/.git && - git submodule deinit init example2 >actual && - test -z "$(git config --get-regexp "submodule\.example\.")" && - test -z "$(git config --get-regexp "submodule\.example2\.")" && - test_i18ngrep ! "Cleared directory .init" actual && - test_i18ngrep "Cleared directory .example2" actual && - rmdir init - -warning: could not look up configuration 'remote.origin.url'. Assuming this repository is its own authoritative upstream. -Submodule 'example2' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init2) registered for path 'example2' -Submodule 'example' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init2) registered for path 'init' -Submodule path 'example2': checked out 'cf4817bea522d7a895a8f804894e1254c741baae' -Submodule path 'init': checked out 'da28091fa1960864823ed381ef2a1c41222b8351' -Cleared directory 'example2' -ok 94 - submodule deinit deinits a submodule when its work tree is missing or empty - -expecting success of 7400.95 'submodule deinit fails when the submodule contains modifications unless forced': - git submodule update --init && - echo X >>init/s && - test_must_fail git submodule deinit init && - test -n "$(git config --get-regexp "submodule\.example\.")" && - test -f example2/.git && - git submodule deinit -f init >actual && - test -z "$(git config --get-regexp "submodule\.example\.")" && - test_i18ngrep "Cleared directory .init" actual && - rmdir init - -warning: could not look up configuration 'remote.origin.url'. Assuming this repository is its own authoritative upstream. -Submodule 'example2' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init2) registered for path 'example2' -Submodule 'example' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init2) registered for path 'init' -Submodule path 'example2': checked out 'cf4817bea522d7a895a8f804894e1254c741baae' -Submodule path 'init': checked out 'da28091fa1960864823ed381ef2a1c41222b8351' -error: the following file has local modifications: - init -(use --cached to keep the file, or -f to force removal) -fatal: Submodule work tree 'init' contains local modifications; use '-f' to discard them -Cleared directory 'init' -ok 95 - submodule deinit fails when the submodule contains modifications unless forced - -expecting success of 7400.96 'submodule deinit fails when the submodule contains untracked files unless forced': - git submodule update --init && - echo X >>init/untracked && - test_must_fail git submodule deinit init && - test -n "$(git config --get-regexp "submodule\.example\.")" && - test -f example2/.git && - git submodule deinit -f init >actual && - test -z "$(git config --get-regexp "submodule\.example\.")" && - test_i18ngrep "Cleared directory .init" actual && - rmdir init - -Submodule 'example' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init2) registered for path 'init' -Submodule path 'init': checked out 'da28091fa1960864823ed381ef2a1c41222b8351' -error: the following file has local modifications: - init -(use --cached to keep the file, or -f to force removal) -fatal: Submodule work tree 'init' contains local modifications; use '-f' to discard them -Cleared directory 'init' -ok 96 - submodule deinit fails when the submodule contains untracked files unless forced - -expecting success of 7400.97 'submodule deinit fails when the submodule HEAD does not match unless forced': - git submodule update --init && - ( - cd init && - git checkout HEAD^ - ) && - test_must_fail git submodule deinit init && - test -n "$(git config --get-regexp "submodule\.example\.")" && - test -f example2/.git && - git submodule deinit -f init >actual && - test -z "$(git config --get-regexp "submodule\.example\.")" && - test_i18ngrep "Cleared directory .init" actual && - rmdir init - -Submodule 'example' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init2) registered for path 'init' -Submodule path 'init': checked out 'da28091fa1960864823ed381ef2a1c41222b8351' -Warning: you are leaving 1 commit behind, not connected to -any of your branches: - - da28091 change subproject - -If you want to keep it by creating a new branch, this may be a good time -to do so with: +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7300-clean/empty_repo/.git/ +Skipping repository baz/boo +Removing to_clean/ +ok 33 - nested (empty) git should be kept - git branch da28091 +expecting success of 7300.34 'nested bare repositories should be cleaned': + rm -fr bare1 bare2 subdir && + git init --bare bare1 && + git clone --local --bare . bare2 && + mkdir subdir && + cp -r bare2 subdir/bare3 && + git clean -f -d && + test_path_is_missing bare1 && + test_path_is_missing bare2 && + test_path_is_missing subdir -HEAD is now at 36aca32 submodule commit 1 -error: the following file has local modifications: - init -(use --cached to keep the file, or -f to force removal) -fatal: Submodule work tree 'init' contains local modifications; use '-f' to discard them -Cleared directory 'init' -ok 97 - submodule deinit fails when the submodule HEAD does not match unless forced +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7300-clean/bare1/ +Cloning into bare repository 'bare2'... +done. +Removing bare1/ +Removing bare2/ +Skipping repository baz/boo +Removing subdir/ +ok 34 - nested bare repositories should be cleaned -expecting success of 7400.98 'submodule deinit is silent when used on an uninitialized submodule': - git submodule update --init && - git submodule deinit init >actual && - test_i18ngrep "Submodule .example. (.*) unregistered for path .init" actual && - test_i18ngrep "Cleared directory .init" actual && - git submodule deinit init >actual && - test_i18ngrep ! "Submodule .example. (.*) unregistered for path .init" actual && - test_i18ngrep "Cleared directory .init" actual && - git submodule deinit . >actual && - test_i18ngrep ! "Submodule .example. (.*) unregistered for path .init" actual && - test_i18ngrep "Submodule .example2. (.*) unregistered for path .example2" actual && - test_i18ngrep "Cleared directory .init" actual && - git submodule deinit . >actual && - test_i18ngrep ! "Submodule .example. (.*) unregistered for path .init" actual && - test_i18ngrep ! "Submodule .example2. (.*) unregistered for path .example2" actual && - test_i18ngrep "Cleared directory .init" actual && - git submodule deinit --all >actual && - test_i18ngrep ! "Submodule .example. (.*) unregistered for path .init" actual && - test_i18ngrep ! "Submodule .example2. (.*) unregistered for path .example2" actual && - test_i18ngrep "Cleared directory .init" actual && - rmdir init example2 +checking known breakage of 7300.35 'nested (empty) bare repositories should be cleaned even when in .git': + rm -fr strange_bare && + mkdir strange_bare && + git init --bare strange_bare/.git && + git clean -f -d && + test_path_is_missing strange_bare -Submodule 'example' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init2) registered for path 'init' -From /build/git-2.30.2/t/trash directory.t7400-submodule-basic/./.subrepo - * branch da28091fa1960864823ed381ef2a1c41222b8351 -> FETCH_HEAD -Submodule path 'init': checked out 'da28091fa1960864823ed381ef2a1c41222b8351' -Submodule 'example' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init2) unregistered for path 'init' -Cleared directory 'init' -warning: Could not unset core.worktree setting in submodule 'init' -Cleared directory 'init' -warning: Could not unset core.worktree setting in submodule 'init' -Submodule 'example2' (./init2) unregistered for path 'example2' -Cleared directory 'init' -warning: Could not unset core.worktree setting in submodule 'example2' -warning: Could not unset core.worktree setting in submodule 'init' -Cleared directory 'init' -warning: Could not unset core.worktree setting in submodule 'example2' -warning: Could not unset core.worktree setting in submodule 'init' -Cleared directory 'init' -ok 98 - submodule deinit is silent when used on an uninitialized submodule +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7300-clean/strange_bare/.git/ +Skipping repository baz/boo +Path exists: +drwxr-xr-x 3 pbuilder2 pbuilder2 4096 Apr 29 18:31 strange_bare +strange_bare +not ok 35 - nested (empty) bare repositories should be cleaned even when in .git # TODO known breakage -expecting success of 7400.99 'submodule deinit fails when submodule has a .git directory even when forced': - git submodule update --init && - ( - cd init && - rm .git && - cp -R ../.git/modules/example .git && - GIT_WORK_TREE=. git config --unset core.worktree - ) && - test_must_fail git submodule deinit init && - test_must_fail git submodule deinit -f init && - test -d init/.git && - test -n "$(git config --get-regexp "submodule\.example\.")" +checking known breakage of 7300.36 'nested (non-empty) bare repositories should be cleaned even when in .git': + rm -fr strange_bare && + mkdir strange_bare && + git clone --local --bare . strange_bare/.git && + git clean -f -d && + test_path_is_missing strange_bare -warning: could not look up configuration 'remote.origin.url'. Assuming this repository is its own authoritative upstream. -Submodule 'example2' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init2) registered for path 'example2' -Submodule 'example' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init2) registered for path 'init' -Submodule path 'example2': checked out 'cf4817bea522d7a895a8f804894e1254c741baae' -Submodule path 'init': checked out 'da28091fa1960864823ed381ef2a1c41222b8351' -fatal: Submodule work tree 'init' contains a .git directory (use 'rm -rf' if you really want to remove it including all of its history) -fatal: Submodule work tree 'init' contains a .git directory (use 'rm -rf' if you really want to remove it including all of its history) -ok 99 - submodule deinit fails when submodule has a .git directory even when forced +Cloning into bare repository 'strange_bare/.git'... +done. +Skipping repository baz/boo +Path exists: +drwxr-xr-x 3 pbuilder2 pbuilder2 4096 Apr 29 18:31 strange_bare +strange_bare +not ok 36 - nested (non-empty) bare repositories should be cleaned even when in .git # TODO known breakage -expecting success of 7400.100 'submodule with UTF-8 name': - svname=$(printf "\303\245 \303\244\303\266") && - mkdir "$svname" && +expecting success of 7300.37 'giving path in nested git work tree will NOT remove it': + rm -fr repo && + mkdir repo && ( - cd "$svname" && + cd repo && git init && - >sub && - git add sub && - git commit -m "init sub" + mkdir -p bar/baz && + test_commit msg bar/baz/hello.world ) && - git submodule add ./"$svname" && - git submodule >&2 && - test -n "$(git submodule | grep "$svname")" + git clean -f -d repo/bar/baz && + test_path_is_file repo/.git/HEAD && + test_path_is_dir repo/bar/ && + test_path_is_file repo/bar/baz/hello.world hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all @@ -350703,29 +347217,26 @@ hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7400-submodule-basic/Ã¥ äö/.git/ -[master (root-commit) ea6909a] init sub +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7300-clean/repo/.git/ +[master (root-commit) 14dba50] msg Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - create mode 100644 sub -Adding existing repo at 'Ã¥ äö' to the index - cf4817bea522d7a895a8f804894e1254c741baae example2 (rev-1-2-gcf4817b) - da28091fa1960864823ed381ef2a1c41222b8351 init (rev-1-1-gda28091) - ea6909a6ccbadc034edc8c42d9d2b85a69afe610 Ã¥ äö (heads/master) -ok 100 - submodule with UTF-8 name + 1 file changed, 1 insertion(+) + create mode 100644 bar/baz/hello.world +ok 37 - giving path in nested git work tree will NOT remove it -expecting success of 7400.101 'submodule add clone shallow submodule': - mkdir super && - pwd=$(pwd) && +expecting success of 7300.38 'giving path to nested .git will not remove it': + rm -fr repo && + mkdir repo untracked && ( - cd super && + cd repo && git init && - git submodule add --depth=1 file://"$pwd"/example2 submodule && - ( - cd submodule && - test 1 = $(git log --oneline | wc -l) - ) - ) + test_commit msg hello.world + ) && + git clean -f -d repo/.git && + test_path_is_file repo/.git/HEAD && + test_path_is_dir repo/.git/refs && + test_path_is_dir repo/.git/objects && + test_path_is_dir untracked/ hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all @@ -350737,33 +347248,25 @@ hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7400-submodule-basic/super/.git/ -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/super/submodule'... -ok 101 - submodule add clone shallow submodule +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7300-clean/repo/.git/ +[master (root-commit) 1af9d3b] msg + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 hello.world +ok 38 - giving path to nested .git will not remove it -expecting success of 7400.102 'submodule helper list is not confused by common prefixes': - mkdir -p dir1/b && - ( - cd dir1/b && - git init && - echo hi >testfile2 && - git add . && - git commit -m "test1" - ) && - mkdir -p dir2/b && +expecting success of 7300.39 'giving path to nested .git/ will NOT remove contents': + rm -fr repo untracked && + mkdir repo untracked && ( - cd dir2/b && + cd repo && git init && - echo hello >testfile1 && - git add . && - git commit -m "test2" + test_commit msg hello.world ) && - git submodule add /dir1/b dir1/b && - git submodule add /dir2/b dir2/b && - git commit -m "first submodule commit" && - git submodule--helper list dir1/b | cut -f 2 >actual && - echo "dir1/b" >expect && - test_cmp expect actual + git clean -f -d repo/.git/ && + test_path_is_dir repo/.git && + test_path_is_file repo/.git/HEAD && + test_path_is_dir untracked/ hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all @@ -350775,11 +347278,35 @@ hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7400-submodule-basic/dir1/b/.git/ -[master (root-commit) 9e1c8ff] test1 +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7300-clean/repo/.git/ +[master (root-commit) 1af9d3b] msg Author: A U Thor 1 file changed, 1 insertion(+) - create mode 100644 testfile2 + create mode 100644 hello.world +ok 39 - giving path to nested .git/ will NOT remove contents + +expecting success of 7300.40 'force removal of nested git work tree': + rm -fr foo bar baz && + mkdir -p foo bar baz/boo && + ( + cd foo && + git init && + test_commit nested hello.world + ) && + ( + cd bar && + >goodbye.people + ) && + ( + cd baz/boo && + git init && + test_commit deeply.nested deeper.world + ) && + git clean -f -f -d && + ! test -d foo && + ! test -d bar && + ! test -d baz + hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all hint: of your new repositories, which will suppress this warning, call: @@ -350790,32 +347317,11 @@ hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7400-submodule-basic/dir2/b/.git/ -[master (root-commit) 0321a28] test2 +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7300-clean/foo/.git/ +[master (root-commit) abd8674] nested Author: A U Thor 1 file changed, 1 insertion(+) - create mode 100644 testfile1 -Adding existing repo at 'dir1/b' to the index -Adding existing repo at 'dir2/b' to the index -[second ed95fe2] first submodule commit - Author: A U Thor - 4 files changed, 12 insertions(+) - create mode 160000 dir1/b - create mode 160000 dir2/b - create mode 160000 "\303\245 \303\244\303\266" -ok 102 - submodule helper list is not confused by common prefixes - -expecting success of 7400.103 'setup superproject with submodules': - git init sub1 && - test_commit -C sub1 test && - test_commit -C sub1 test2 && - git init multisuper && - git -C multisuper submodule add ../sub1 sub0 && - git -C multisuper submodule add ../sub1 sub1 && - git -C multisuper submodule add ../sub1 sub2 && - git -C multisuper submodule add ../sub1 sub3 && - git -C multisuper commit -m "add some submodules" - + create mode 100644 hello.world hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all hint: of your new repositories, which will suppress this warning, call: @@ -350826,15 +347332,36 @@ hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7400-submodule-basic/sub1/.git/ -[master (root-commit) f9e7a82] test - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 test.t -[master 71cddcb] test2 +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7300-clean/baz/boo/.git/ +[master (root-commit) 3f7f1fc] deeply.nested Author: A U Thor 1 file changed, 1 insertion(+) - create mode 100644 test2.t + create mode 100644 deeper.world +Removing bar/ +Removing baz/ +Removing empty_repo/ +Removing foo/ +Removing repo/ +Removing strange_bare/ +Removing sub2/ +Removing untracked/ +ok 40 - force removal of nested git work tree + +expecting success of 7300.41 'git clean -e': + rm -fr repo && + mkdir repo && + ( + cd repo && + git init && + touch known 1 2 3 && + git add known && + git clean -f -e 1 -e 2 && + test -e 1 && + test -e 2 && + ! (test -e 3) && + test -e known + ) + hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all hint: of your new repositories, which will suppress this warning, call: @@ -350845,1740 +347372,701 @@ hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper/.git/ -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper/sub0'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper/sub2'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper/sub3'... -done. -[master (root-commit) a188ac0] add some submodules - Author: A U Thor - 5 files changed, 16 insertions(+) - create mode 100644 .gitmodules - create mode 160000 sub0 - create mode 160000 sub1 - create mode 160000 sub2 - create mode 160000 sub3 -ok 103 - setup superproject with submodules - -expecting success of 7400.104 'submodule update --init with a specification': - test_when_finished "rm -rf multisuper_clone" && - pwd=$(pwd) && - git clone file://"$pwd"/multisuper multisuper_clone && - git -C multisuper_clone submodule update --init . ":(exclude)sub0" && - git -C multisuper_clone submodule status | sed "s/$OID_REGEX //" >actual && - test_cmp expect actual - -Cloning into 'multisuper_clone'... -Submodule 'sub1' (file:///build/git-2.30.2/t/trash directory.t7400-submodule-basic/sub1) registered for path 'sub1' -Submodule 'sub2' (file:///build/git-2.30.2/t/trash directory.t7400-submodule-basic/sub1) registered for path 'sub2' -Submodule 'sub3' (file:///build/git-2.30.2/t/trash directory.t7400-submodule-basic/sub1) registered for path 'sub3' -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper_clone/sub1'... -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper_clone/sub2'... -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper_clone/sub3'... -Submodule path 'sub1': checked out '71cddcbcdbe5634f8172f69e2745e3c01ba0d1bb' -Submodule path 'sub2': checked out '71cddcbcdbe5634f8172f69e2745e3c01ba0d1bb' -Submodule path 'sub3': checked out '71cddcbcdbe5634f8172f69e2745e3c01ba0d1bb' -ok 104 - submodule update --init with a specification - -expecting success of 7400.105 'submodule update --init with submodule.active set': - test_when_finished "rm -rf multisuper_clone" && - pwd=$(pwd) && - git clone file://"$pwd"/multisuper multisuper_clone && - git -C multisuper_clone config submodule.active "." && - git -C multisuper_clone config --add submodule.active ":(exclude)sub0" && - git -C multisuper_clone submodule update --init && - git -C multisuper_clone submodule status | sed "s/$OID_REGEX //" >actual && - test_cmp expect actual +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7300-clean/repo/.git/ +Removing 3 +ok 41 - git clean -e -Cloning into 'multisuper_clone'... -Submodule 'sub1' (file:///build/git-2.30.2/t/trash directory.t7400-submodule-basic/sub1) registered for path 'sub1' -Submodule 'sub2' (file:///build/git-2.30.2/t/trash directory.t7400-submodule-basic/sub1) registered for path 'sub2' -Submodule 'sub3' (file:///build/git-2.30.2/t/trash directory.t7400-submodule-basic/sub1) registered for path 'sub3' -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper_clone/sub1'... -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper_clone/sub2'... -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper_clone/sub3'... -Submodule path 'sub1': checked out '71cddcbcdbe5634f8172f69e2745e3c01ba0d1bb' -Submodule path 'sub2': checked out '71cddcbcdbe5634f8172f69e2745e3c01ba0d1bb' -Submodule path 'sub3': checked out '71cddcbcdbe5634f8172f69e2745e3c01ba0d1bb' -ok 105 - submodule update --init with submodule.active set +expecting success of 7300.42 'git clean -d with an unreadable empty directory': + mkdir foo && + chmod a= foo && + git clean -dfx foo && + ! test -d foo -expecting success of 7400.106 'submodule update and setting submodule..active': - test_when_finished "rm -rf multisuper_clone" && - pwd=$(pwd) && - git clone file://"$pwd"/multisuper multisuper_clone && - git -C multisuper_clone config --bool submodule.sub0.active "true" && - git -C multisuper_clone config --bool submodule.sub1.active "false" && - git -C multisuper_clone config --bool submodule.sub2.active "true" && +warning: could not open directory 'foo/': Permission denied +Removing foo/ +ok 42 - git clean -d with an unreadable empty directory - cat >expect <<-\EOF && - sub0 (test2) - -sub1 - sub2 (test2) - -sub3 - EOF - git -C multisuper_clone submodule update && - git -C multisuper_clone submodule status | sed "s/$OID_REGEX //" >actual && - test_cmp expect actual +expecting success of 7300.43 'git clean -d respects pathspecs (dir is prefix of pathspec)': + mkdir -p foo && + mkdir -p foobar && + git clean -df foobar && + test_path_is_dir foo && + test_path_is_missing foobar -Cloning into 'multisuper_clone'... -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper_clone/sub0'... -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper_clone/sub2'... -Submodule path 'sub0': checked out '71cddcbcdbe5634f8172f69e2745e3c01ba0d1bb' -Submodule path 'sub2': checked out '71cddcbcdbe5634f8172f69e2745e3c01ba0d1bb' -ok 106 - submodule update and setting submodule..active +Removing foobar/ +ok 43 - git clean -d respects pathspecs (dir is prefix of pathspec) -expecting success of 7400.107 'clone active submodule without submodule url set': - test_when_finished "rm -rf test/test" && - mkdir test && - # another dir breaks accidental relative paths still being correct - git clone file://"$pwd"/multisuper test/test && - ( - cd test/test && - git config submodule.active "." && +expecting success of 7300.44 'git clean -d respects pathspecs (pathspec is prefix of dir)': + mkdir -p foo && + mkdir -p foobar && + git clean -df foo && + test_path_is_missing foo && + test_path_is_dir foobar - # do not pass --init flag, as the submodule is already active: - git submodule update && - git submodule status >actual_raw && +Removing foo/ +ok 44 - git clean -d respects pathspecs (pathspec is prefix of dir) - cut -d" " -f3- actual_raw >actual && - cat >expect <<-\EOF && - sub0 (test2) - sub1 (test2) - sub2 (test2) - sub3 (test2) - EOF - test_cmp expect actual - ) +expecting success of 7300.45 'git clean -d skips untracked dirs containing ignored files': + echo /foo/bar >.gitignore && + echo ignoreme >>.gitignore && + rm -rf foo && + mkdir -p foo/a/aa/aaa foo/b/bb/bbb && + touch foo/bar foo/baz foo/a/aa/ignoreme foo/b/ignoreme foo/b/bb/1 foo/b/bb/2 && + git clean -df && + test_path_is_dir foo && + test_path_is_file foo/bar && + test_path_is_missing foo/baz && + test_path_is_file foo/a/aa/ignoreme && + test_path_is_missing foo/a/aa/aaa && + test_path_is_file foo/b/ignoreme && + test_path_is_missing foo/b/bb -Cloning into 'test/test'... -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/test/test/sub0'... -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/test/test/sub1'... -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/test/test/sub2'... -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/test/test/sub3'... -Submodule path 'sub0': checked out '71cddcbcdbe5634f8172f69e2745e3c01ba0d1bb' -Submodule path 'sub1': checked out '71cddcbcdbe5634f8172f69e2745e3c01ba0d1bb' -Submodule path 'sub2': checked out '71cddcbcdbe5634f8172f69e2745e3c01ba0d1bb' -Submodule path 'sub3': checked out '71cddcbcdbe5634f8172f69e2745e3c01ba0d1bb' -ok 107 - clone active submodule without submodule url set +Removing build/ +Removing foo/a/aa/aaa/ +Removing foo/b/bb/ +Removing foo/baz +Removing foobar/ +Removing obj.o +ok 45 - git clean -d skips untracked dirs containing ignored files -expecting success of 7400.108 'clone --recurse-submodules with a pathspec works': - test_when_finished "rm -rf multisuper_clone" && - cat >expected <<-\EOF && - sub0 (test2) - -sub1 - -sub2 - -sub3 - EOF +expecting success of 7300.46 'git clean -d skips nested repo containing ignored files': + test_when_finished "rm -rf nested-repo-with-ignored-file" && - git clone --recurse-submodules="sub0" multisuper multisuper_clone && - git -C multisuper_clone submodule status | sed "s/$OID_REGEX //" >actual && - test_cmp expected actual + git init nested-repo-with-ignored-file && + ( + cd nested-repo-with-ignored-file && + >file && + git add file && + git commit -m Initial && -Cloning into 'multisuper_clone'... -done. -Submodule 'sub0' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/sub1) registered for path 'sub0' -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper_clone/sub0'... -done. -Submodule path 'sub0': checked out '71cddcbcdbe5634f8172f69e2745e3c01ba0d1bb' -ok 108 - clone --recurse-submodules with a pathspec works + # This file is ignored by a .gitignore rule in the outer repo + # added in the previous test. + >ignoreme + ) && -expecting success of 7400.109 'clone with multiple --recurse-submodules options': - test_when_finished "rm -rf multisuper_clone" && - cat >expect <<-\EOF && - -sub0 - sub1 (test2) - -sub2 - sub3 (test2) - EOF + git clean -fd && - git clone --recurse-submodules="." \ - --recurse-submodules=":(exclude)sub0" \ - --recurse-submodules=":(exclude)sub2" \ - multisuper multisuper_clone && - git -C multisuper_clone submodule status | sed "s/$OID_REGEX //" >actual && - test_cmp expect actual + test_path_is_file nested-repo-with-ignored-file/.git/index && + test_path_is_file nested-repo-with-ignored-file/ignoreme && + test_path_is_file nested-repo-with-ignored-file/file -Cloning into 'multisuper_clone'... -done. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/sub1) registered for path 'sub1' -Submodule 'sub3' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/sub1) registered for path 'sub3' -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper_clone/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper_clone/sub3'... -done. -Submodule path 'sub1': checked out '71cddcbcdbe5634f8172f69e2745e3c01ba0d1bb' -Submodule path 'sub3': checked out '71cddcbcdbe5634f8172f69e2745e3c01ba0d1bb' -ok 109 - clone with multiple --recurse-submodules options +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7300-clean/nested-repo-with-ignored-file/.git/ +[master (root-commit) 4208a61] Initial + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 file +ok 46 - git clean -d skips nested repo containing ignored files -expecting success of 7400.110 'clone and subsequent updates correctly auto-initialize submodules': - test_when_finished "rm -rf multisuper_clone" && - cat <<-\EOF >expect && - -sub0 - sub1 (test2) - -sub2 - sub3 (test2) - EOF +expecting success of 7300.47 'git clean handles being told what to clean': + mkdir -p d1 d2 && + touch d1/ut d2/ut && + git clean -f */ut && + test_path_is_missing d1/ut && + test_path_is_missing d2/ut - cat <<-\EOF >expect2 && - -sub0 - sub1 (test2) - -sub2 - sub3 (test2) - -sub4 - sub5 (test2) - EOF +Removing d1/ut +Removing d2/ut +ok 47 - git clean handles being told what to clean - git clone --recurse-submodules="." \ - --recurse-submodules=":(exclude)sub0" \ - --recurse-submodules=":(exclude)sub2" \ - --recurse-submodules=":(exclude)sub4" \ - multisuper multisuper_clone && +expecting success of 7300.48 'git clean handles being told what to clean, with -d': + mkdir -p d1 d2 && + touch d1/ut d2/ut && + git clean -ffd */ut && + test_path_is_missing d1/ut && + test_path_is_missing d2/ut - git -C multisuper_clone submodule status | sed "s/$OID_REGEX //" >actual && - test_cmp expect actual && +Removing d1/ut +Removing d2/ut +ok 48 - git clean handles being told what to clean, with -d - git -C multisuper submodule add ../sub1 sub4 && - git -C multisuper submodule add ../sub1 sub5 && - git -C multisuper commit -m "add more submodules" && - # obtain the new superproject - git -C multisuper_clone pull && - git -C multisuper_clone submodule update --init && - git -C multisuper_clone submodule status | sed "s/$OID_REGEX //" >actual && - test_cmp expect2 actual +expecting success of 7300.49 'git clean works if a glob is passed without -d': + mkdir -p d1 d2 && + touch d1/ut d2/ut && + git clean -f "*ut" && + test_path_is_missing d1/ut && + test_path_is_missing d2/ut -Cloning into 'multisuper_clone'... -done. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/sub1) registered for path 'sub1' -Submodule 'sub3' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/sub1) registered for path 'sub3' -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper_clone/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper_clone/sub3'... -done. -Submodule path 'sub1': checked out '71cddcbcdbe5634f8172f69e2745e3c01ba0d1bb' -Submodule path 'sub3': checked out '71cddcbcdbe5634f8172f69e2745e3c01ba0d1bb' -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper/sub4'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper/sub5'... -done. -[master 084f781] add more submodules - Author: A U Thor - 3 files changed, 8 insertions(+) - create mode 160000 sub4 - create mode 160000 sub5 -hint: Pulling without specifying how to reconcile divergent branches is -hint: discouraged. You can squelch this message by running one of the following -hint: commands sometime before your next pull: -hint: -hint: git config pull.rebase false # merge (the default strategy) -hint: git config pull.rebase true # rebase -hint: git config pull.ff only # fast-forward only -hint: -hint: You can replace "git config" with "git config --global" to set a default -hint: preference for all repositories. You can also pass --rebase, --no-rebase, -hint: or --ff-only on the command line to override the configured default per -hint: invocation. -From /build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper - a188ac0..084f781 master -> origin/master -Updating a188ac0..084f781 -Fast-forward - .gitmodules | 6 ++++++ - sub4 | 1 + - sub5 | 1 + - 3 files changed, 8 insertions(+) - create mode 160000 sub4 - create mode 160000 sub5 -Submodule 'sub5' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/sub1) registered for path 'sub5' -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper_clone/sub5'... -done. -Submodule path 'sub5': checked out '71cddcbcdbe5634f8172f69e2745e3c01ba0d1bb' -ok 110 - clone and subsequent updates correctly auto-initialize submodules +Removing d1/ut +Removing d2/ut +ok 49 - git clean works if a glob is passed without -d -expecting success of 7400.111 'init properly sets the config': - test_when_finished "rm -rf multisuper_clone" && - git clone --recurse-submodules="." \ - --recurse-submodules=":(exclude)sub0" \ - multisuper multisuper_clone && +expecting success of 7300.50 'git clean works if a glob is passed with -d': + mkdir -p d1 d2 && + touch d1/ut d2/ut && + git clean -ffd "*ut" && + test_path_is_missing d1/ut && + test_path_is_missing d2/ut - git -C multisuper_clone submodule init -- sub0 sub1 && - git -C multisuper_clone config --get submodule.sub0.active && - test_must_fail git -C multisuper_clone config --get submodule.sub1.active +Removing d1/ut +Removing d2/ut +ok 50 - git clean works if a glob is passed with -d -Cloning into 'multisuper_clone'... -done. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/sub1) registered for path 'sub1' -Submodule 'sub2' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/sub1) registered for path 'sub2' -Submodule 'sub3' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/sub1) registered for path 'sub3' -Submodule 'sub4' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/sub1) registered for path 'sub4' -Submodule 'sub5' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/sub1) registered for path 'sub5' -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper_clone/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper_clone/sub2'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper_clone/sub3'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper_clone/sub4'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper_clone/sub5'... -done. -Submodule path 'sub1': checked out '71cddcbcdbe5634f8172f69e2745e3c01ba0d1bb' -Submodule path 'sub2': checked out '71cddcbcdbe5634f8172f69e2745e3c01ba0d1bb' -Submodule path 'sub3': checked out '71cddcbcdbe5634f8172f69e2745e3c01ba0d1bb' -Submodule path 'sub4': checked out '71cddcbcdbe5634f8172f69e2745e3c01ba0d1bb' -Submodule path 'sub5': checked out '71cddcbcdbe5634f8172f69e2745e3c01ba0d1bb' -Submodule 'sub0' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/sub1) registered for path 'sub0' -true -ok 111 - init properly sets the config +ok 51 # skip handle clean & core.longpaths = false nicely (missing MINGW) -expecting success of 7400.112 'recursive clone respects -q': - test_when_finished "rm -rf multisuper_clone" && - git clone -q --recurse-submodules multisuper multisuper_clone >actual && +expecting success of 7300.52 'clean untracked paths by pathspec': + git init untracked && + mkdir untracked/dir && + echo >untracked/dir/file.txt && + git -C untracked clean -f dir/file.txt && + ls untracked/dir >actual && test_must_be_empty actual -ok 112 - recursive clone respects -q +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7300-clean/untracked/.git/ +Removing dir/file.txt +ok 52 - clean untracked paths by pathspec -# passed all 112 test(s) -1..112 +# still have 2 known breakage(s) +# passed all remaining 50 test(s) +1..52 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t7406-submodule-update.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7406-submodule-update/.git/ -expecting success of 7406.1 'setup a submodule tree': - git config --global protocol.file.allow always && +*** t7402-submodule-rebase.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7402-submodule-rebase/.git/ +expecting success of 7402.1 'setup': + echo file > file && git add file && test_tick && - git commit -m upstream && - git clone . super && - git clone super submodule && - git clone super rebasing && - git clone super merging && - git clone super none && - (cd super && - git submodule add ../submodule submodule && - test_tick && - git commit -m "submodule" && - git submodule init submodule - ) && - (cd submodule && - echo "line2" > file && - git add file && - git commit -m "Commit 2" - ) && - (cd super && - (cd submodule && - git pull --rebase origin - ) && - git add submodule && - git commit -m "submodule update" - ) && - (cd super && - git submodule add ../rebasing rebasing && - test_tick && - git commit -m "rebasing" - ) && - (cd super && - git submodule add ../merging merging && - test_tick && - git commit -m "rebasing" - ) && - (cd super && - git submodule add ../none none && - test_tick && - git commit -m "none" - ) && - git clone . recursivesuper && - ( cd recursivesuper && - git submodule add ../super super - ) + git commit -m initial && + git clone . submodule && + git add submodule && + test_tick && + git commit -m submodule && + echo second line >> file && + (cd submodule && git pull) && + test_tick && + git commit -m file-and-submodule -a && + git branch added-submodule -[master (root-commit) 0c90624] upstream + +[master (root-commit) ffefb50] initial Author: A U Thor 1 file changed, 1 insertion(+) create mode 100644 file -Cloning into 'super'... -done. Cloning into 'submodule'... done. -Cloning into 'rebasing'... -done. -Cloning into 'merging'... -done. -Cloning into 'none'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/super/submodule'... -done. -[master 3ae95bc] submodule +warning: adding embedded git repository: submodule +hint: You've added another git repository inside your current repository. +hint: Clones of the outer repository will not contain the contents of +hint: the embedded repository and will not know how to obtain it. +hint: If you meant to add a submodule, use: +hint: +hint: git submodule add submodule +hint: +hint: If you added this path by mistake, you can remove it from the +hint: index with: +hint: +hint: git rm --cached submodule +hint: +hint: See "git help submodule" for more information. +[master 9bd10db] submodule Author: A U Thor - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules + 1 file changed, 1 insertion(+) create mode 160000 submodule -[master 4301fd3] Commit 2 - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -From /build/git-2.30.2/t/trash directory.t7406-submodule-update/submodule - 0c90624..4301fd3 master -> origin/master -Updating 0c90624..4301fd3 +hint: Pulling without specifying how to reconcile divergent branches is +hint: discouraged. You can squelch this message by running one of the following +hint: commands sometime before your next pull: +hint: +hint: git config pull.rebase false # merge (the default strategy) +hint: git config pull.rebase true # rebase +hint: git config pull.ff only # fast-forward only +hint: +hint: You can replace "git config" with "git config --global" to set a default +hint: preference for all repositories. You can also pass --rebase, --no-rebase, +hint: or --ff-only on the command line to override the configured default per +hint: invocation. +From /build/git-2.30.2/t/trash directory.t7402-submodule-rebase/. + ffefb50..9bd10db master -> origin/master +Updating ffefb50..9bd10db Fast-forward - file | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) -[master fed7cea] submodule update - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/super/rebasing'... -done. -[master 5366fa1] rebasing - Author: A U Thor - 2 files changed, 4 insertions(+) - create mode 160000 rebasing -Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/super/merging'... -done. -[master 7cb8417] rebasing - Author: A U Thor - 2 files changed, 4 insertions(+) - create mode 160000 merging -Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/super/none'... -done. -[master e1c6586] none + submodule | 1 + + 1 file changed, 1 insertion(+) + create mode 160000 submodule +[master 041f541] file-and-submodule Author: A U Thor - 2 files changed, 4 insertions(+) - create mode 160000 none -Cloning into 'recursivesuper'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/recursivesuper/super'... -done. -ok 1 - setup a submodule tree - -expecting success of 7406.2 'update --remote falls back to using HEAD': - test_create_repo main-branch-submodule && - test_commit -C main-branch-submodule initial && + 2 files changed, 2 insertions(+), 1 deletion(-) +ok 1 - setup - test_create_repo main-branch && - git -C main-branch submodule add ../main-branch-submodule && - git -C main-branch commit -m add-submodule && +expecting success of 7402.2 'rebase with a dirty submodule': - git -C main-branch-submodule switch -c hello && - test_commit -C main-branch-submodule world && + (cd submodule && + echo 3rd line >> file && + test_tick && + git commit -m fork -a) && + echo unrelated >> file2 && + git add file2 && + test_tick && + git commit -m unrelated file2 && + echo other line >> file && + test_tick && + git commit -m update file && + CURRENT=$(cd submodule && git rev-parse HEAD) && + EXPECTED=$(git rev-parse HEAD~2:submodule) && + GIT_TRACE=1 git rebase --onto HEAD~2 HEAD^ && + STORED=$(git rev-parse HEAD:submodule) && + test $EXPECTED = $STORED && + test $CURRENT = $(cd submodule && git rev-parse HEAD) - git clone --recursive main-branch main-branch-clone && - git -C main-branch-clone submodule update --remote main-branch-submodule && - test_path_exists main-branch-clone/main-branch-submodule/world.t -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7406-submodule-update/main-branch-submodule/.git/ -[master (root-commit) 5e30013] initial +[master eb5e1a6] fork Author: A U Thor 1 file changed, 1 insertion(+) - create mode 100644 initial.t -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7406-submodule-update/main-branch/.git/ -Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/main-branch/main-branch-submodule'... -done. -[master (root-commit) afd8121] add-submodule +[master b5e9d7b] unrelated Author: A U Thor - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 main-branch-submodule -Switched to a new branch 'hello' -[hello 5390c56] world + 1 file changed, 1 insertion(+) + create mode 100644 file2 +[master a65f80c] update Author: A U Thor 1 file changed, 1 insertion(+) - create mode 100644 world.t -Cloning into 'main-branch-clone'... -done. -Submodule 'main-branch-submodule' (/build/git-2.30.2/t/trash directory.t7406-submodule-update/main-branch-submodule) registered for path 'main-branch-submodule' -Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/main-branch-clone/main-branch-submodule'... -done. -Submodule path 'main-branch-submodule': checked out '5e3001300c8a533bee3e24efd70fbfae3dfa27e3' -Submodule path 'main-branch-submodule': checked out '5390c56ee161c05a0e2e1d93e2ec9669e11defb7' -ok 2 - update --remote falls back to using HEAD - -expecting success of 7406.3 'submodule update detaching the HEAD ': - (cd super/submodule && - git reset --hard HEAD~1 - ) && - (cd super && - (cd submodule && - compare_head - ) && - git submodule update submodule && - cd submodule && - ! compare_head - ) - -HEAD is now at 0c90624 upstream -Submodule path 'submodule': checked out '4301fd3e4110d3b6212c19aed3094150392545b9' -ok 3 - submodule update detaching the HEAD - -expecting success of 7406.4 'submodule update from subdirectory': - (cd super/submodule && - git reset --hard HEAD~1 - ) && - mkdir super/sub && - (cd super/sub && - (cd ../submodule && - compare_head - ) && - git submodule update ../submodule && - cd ../submodule && - ! compare_head - ) - -HEAD is now at 0c90624 upstream -Submodule path '../submodule': checked out '4301fd3e4110d3b6212c19aed3094150392545b9' -ok 4 - submodule update from subdirectory +trace: built-in: git rebase --onto 'HEAD~2' HEAD^ +trace: run_command: GIT_REFLOG_ACTION='rebase (start): checkout HEAD~2' git checkout 041f541f7d4ce41c4eda25e0e58871f126de234b +Rebasing (1/1) trace: run_command: git notes copy --for-rewrite=rebase +trace: built-in: git notes copy --for-rewrite=rebase + Successfully rebased and updated refs/heads/master. +ok 2 - rebase with a dirty submodule -expecting success of 7406.5 'submodule update --init --recursive from subdirectory': - git -C recursivesuper/super reset --hard HEAD^ && - (cd recursivesuper && - mkdir tmp && - cd tmp && - git submodule update --init --recursive ../super >../../actual 2>../../actual2 - ) && - test_i18ncmp expect actual && - sort actual2 >actual2.sorted && - test_i18ncmp expect2 actual2.sorted +expecting success of 7402.3 'interactive rebase with a dirty submodule': -HEAD is now at 7cb8417 rebasing -checking prerequisite: C_LOCALE_OUTPUT + test submodule = $(git diff --name-only) && + HEAD=$(git rev-parse HEAD) && + GIT_EDITOR="\"$(pwd)/fake-editor.sh\"" EDITOR_TEXT="pick $HEAD" \ + git rebase -i HEAD^ && + test submodule = $(git diff --name-only) -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false -) -prerequisite C_LOCALE_OUTPUT ok -ok 5 - submodule update --init --recursive from subdirectory +pick 81a011672801a6d53f73688ebde4d518274102e6 + Successfully rebased and updated refs/heads/master. +ok 3 - interactive rebase with a dirty submodule -expecting success of 7406.6 'submodule update --init from and of subdirectory': - git init withsubs && - (cd withsubs && - mkdir foo && - git submodule add "$(pwd)/../rebasing" foo/sub && - (cd foo && - git submodule deinit -f sub && - git submodule update --init sub 2>../../actual2 - ) - ) && - test_i18ncmp expect2 actual2 +expecting success of 7402.4 'rebase with dirty file and submodule fails': -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7406-submodule-update/withsubs/.git/ -Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/withsubs/foo/sub'... -done. -Cleared directory 'sub' -Submodule 'foo/sub' (/build/git-2.30.2/t/trash directory.t7406-submodule-update/withsubs/../rebasing) unregistered for path 'sub' -Submodule path 'sub': checked out '0c90624ab7f1aaa301d3bb79f60dcfed1ec4897f' -ok 6 - submodule update --init from and of subdirectory + echo yet another line >> file && + test_tick && + git commit -m next file && + echo rewrite > file && + test_tick && + git commit -m rewrite file && + echo dirty > file && + test_must_fail git rebase --onto HEAD~2 HEAD^ -expecting success of 7406.7 'submodule update does not fetch already present commits': - (cd submodule && - echo line3 >> file && - git add file && - test_tick && - git commit -m "upstream line3" - ) && - (cd super/submodule && - head=$(git rev-parse --verify HEAD) && - echo "Submodule path ${SQ}submodule$SQ: checked out $SQ$head$SQ" > ../../expected && - git reset --hard HEAD~1 - ) && - (cd super && - git submodule update > ../actual 2> ../actual.err - ) && - test_i18ncmp expected actual && - test_must_be_empty actual.err -[master 640baa4] upstream line3 +[master 260764e] next Author: A U Thor 1 file changed, 1 insertion(+) -HEAD is now at 0c90624 upstream -ok 7 - submodule update does not fetch already present commits - -expecting success of 7406.8 'submodule update should fail due to local changes': - (cd super/submodule && - git reset --hard HEAD~1 && - echo "local change" > file - ) && - (cd super && - (cd submodule && - compare_head - ) && - test_must_fail git submodule update submodule - ) - -HEAD is now at 0c90624 upstream -error: Your local changes to the following files would be overwritten by checkout: - file -Please commit your changes or stash them before you switch branches. -Aborting -Unable to checkout '4301fd3e4110d3b6212c19aed3094150392545b9' in submodule path 'submodule' -ok 8 - submodule update should fail due to local changes +[master 63179b5] rewrite + Author: A U Thor + 1 file changed, 1 insertion(+), 4 deletions(-) +error: cannot rebase: You have unstaged changes. +error: Please commit or stash them. +ok 4 - rebase with dirty file and submodule fails -expecting success of 7406.9 'submodule update should throw away changes with --force ': - (cd super && - (cd submodule && - compare_head - ) && - git submodule update --force submodule && - cd submodule && - ! compare_head - ) +expecting success of 7402.5 'stash with a dirty submodule': -Submodule path 'submodule': checked out '4301fd3e4110d3b6212c19aed3094150392545b9' -ok 9 - submodule update should throw away changes with --force + echo new > file && + CURRENT=$(cd submodule && git rev-parse HEAD) && + git stash && + test new != $(cat file) && + test submodule = $(git diff --name-only) && + test $CURRENT = $(cd submodule && git rev-parse HEAD) && + git stash apply && + test new = $(cat file) && + test $CURRENT = $(cd submodule && git rev-parse HEAD) -expecting success of 7406.10 'submodule update --force forcibly checks out submodules': - (cd super && - (cd submodule && - rm -f file - ) && - git submodule update --force submodule && - (cd submodule && - test "$(git status -s file)" = "" - ) - ) -Submodule path 'submodule': checked out '4301fd3e4110d3b6212c19aed3094150392545b9' -ok 10 - submodule update --force forcibly checks out submodules +Saved working directory and index state WIP on master: 63179b5 rewrite +Merging Version stash was based on with Stashed changes +Merging: +virtual Version stash was based on +virtual Stashed changes +found 1 common ancestor: +virtual 8b045485d7af7da389e60eb467551e426da98c59 +On branch master +Changes not staged for commit: + (use "git add ..." to update what will be committed) + (use "git restore ..." to discard changes in working directory) + modified: file + modified: submodule (new commits) -expecting success of 7406.11 'submodule update --remote should fetch upstream changes': - (cd submodule && - echo line4 >> file && - git add file && - test_tick && - git commit -m "upstream line4" - ) && - (cd super && - git submodule update --remote --force submodule && - cd submodule && - test "$(git log -1 --oneline)" = "$(GIT_DIR=../../submodule/.git git log -1 --oneline)" - ) +Untracked files: + (use "git add ..." to include in what will be committed) + fake-editor.sh -[master 2758ea9] upstream line4 - Author: A U Thor - 1 file changed, 1 insertion(+) -From /build/git-2.30.2/t/trash directory.t7406-submodule-update/submodule - 4301fd3..2758ea9 master -> origin/master -Submodule path 'submodule': checked out '2758ea9cdd3f551b89e5fc3424c881031158c70d' -ok 11 - submodule update --remote should fetch upstream changes +no changes added to commit (use "git add" and/or "git commit -a") +ok 5 - stash with a dirty submodule -expecting success of 7406.12 'submodule update --remote should fetch upstream changes with .': - ( - cd super && - git config -f .gitmodules submodule."submodule".branch "." && - git add .gitmodules && - git commit -m "submodules: update from the respective superproject branch" - ) && +expecting success of 7402.6 'rebasing submodule that should conflict': + git reset --hard && + git checkout added-submodule && + git add submodule && + test_tick && + git commit -m third && ( cd submodule && - echo line4a >> file && - git add file && - test_tick && - git commit -m "upstream line4a" && - git checkout -b test-branch && - test_commit on-test-branch + git commit --allow-empty -m extra ) && + git add submodule && + test_tick && + git commit -m fourth && + + test_must_fail git rebase --onto HEAD^^ HEAD^ HEAD^0 && + git ls-files -s submodule >actual && ( - cd super && - git submodule update --remote --force submodule && - git -C submodule log -1 --oneline >actual && - git -C ../submodule log -1 --oneline master >expect && - test_cmp expect actual && - git checkout -b test-branch && - git submodule update --remote --force submodule && - git -C submodule log -1 --oneline >actual && - git -C ../submodule log -1 --oneline test-branch >expect && - test_cmp expect actual && - git checkout master && - git branch -d test-branch && - git reset --hard HEAD^ - ) + cd submodule && + echo "160000 $(git rev-parse HEAD^) 1 submodule" && + echo "160000 $(git rev-parse HEAD^^) 2 submodule" && + echo "160000 $(git rev-parse HEAD) 3 submodule" + ) >expect && + test_cmp expect actual -[master 5031a7c] submodules: update from the respective superproject branch - Author: A U Thor - 1 file changed, 1 insertion(+) -[master e64979d] upstream line4a - Author: A U Thor - 1 file changed, 1 insertion(+) -Switched to a new branch 'test-branch' -[test-branch 6b9ecc1] on-test-branch - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 on-test-branch.t -From /build/git-2.30.2/t/trash directory.t7406-submodule-update/submodule - 2758ea9..e64979d master -> origin/master - * [new branch] test-branch -> origin/test-branch - * [new tag] on-test-branch -> on-test-branch -Submodule path 'submodule': checked out 'e64979d13b9a9301a3030b8c005b1d9fd5397a44' -Switched to a new branch 'test-branch' -Submodule path 'submodule': checked out '6b9ecc16dba533ab8642ff93fc3b7fe9267a8c51' -Switched to branch 'master' +HEAD is now at 63179b5 rewrite +Switched to branch 'added-submodule' M submodule -Your branch is ahead of 'origin/master' by 6 commits. - (use "git push" to publish your local commits) -Deleted branch test-branch (was 5031a7c). -HEAD is now at e1c6586 none -ok 12 - submodule update --remote should fetch upstream changes with . - -expecting success of 7406.13 'local config should override .gitmodules branch': - (cd submodule && - git checkout test-branch && - echo line5 >> file && - git add file && - test_tick && - git commit -m "upstream line5" && - git checkout master - ) && - (cd super && - git config submodule.submodule.branch test-branch && - git submodule update --remote --force submodule && - cd submodule && - test "$(git log -1 --oneline)" = "$(GIT_DIR=../../submodule/.git git log -1 --oneline test-branch)" - ) - -Already on 'test-branch' -[test-branch 5124f33] upstream line5 +[added-submodule 3e80a7a] third Author: A U Thor - 1 file changed, 1 insertion(+) -Switched to branch 'master' -Your branch is ahead of 'origin/master' by 4 commits. - (use "git push" to publish your local commits) -From /build/git-2.30.2/t/trash directory.t7406-submodule-update/submodule - 6b9ecc1..5124f33 test-branch -> origin/test-branch -Submodule path 'submodule': checked out '5124f33c895d18ac768733c2d5ce5a12240babd9' -ok 13 - local config should override .gitmodules branch - -expecting success of 7406.14 'submodule update --rebase staying on master': - (cd super/submodule && - git checkout master - ) && - (cd super && - (cd submodule && - compare_head - ) && - git submodule update --rebase submodule && - cd submodule && - compare_head - ) - -Previous HEAD position was 5124f33 upstream line5 -Switched to branch 'master' -Your branch is behind 'origin/master' by 4 commits, and can be fast-forwarded. - (use "git pull" to update your local branch) - Successfully rebased and updated refs/heads/master. -Submodule path 'submodule': rebased into '4301fd3e4110d3b6212c19aed3094150392545b9' -ok 14 - submodule update --rebase staying on master - -expecting success of 7406.15 'submodule update --merge staying on master': - (cd super/submodule && - git reset --hard HEAD~1 - ) && - (cd super && - (cd submodule && - compare_head - ) && - git submodule update --merge submodule && - cd submodule && - compare_head - ) - -HEAD is now at 0c90624 upstream -Updating 0c90624..4301fd3 -Fast-forward - file | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) -Submodule path 'submodule': merged in '4301fd3e4110d3b6212c19aed3094150392545b9' -ok 15 - submodule update --merge staying on master - -expecting success of 7406.16 'submodule update - rebase in .git/config': - (cd super && - git config submodule.submodule.update rebase - ) && - (cd super/submodule && - git reset --hard HEAD~1 - ) && - (cd super && - (cd submodule && - compare_head - ) && - git submodule update submodule && - cd submodule && - compare_head - ) - -HEAD is now at 0c90624 upstream - Successfully rebased and updated refs/heads/master. -Submodule path 'submodule': rebased into '4301fd3e4110d3b6212c19aed3094150392545b9' -ok 16 - submodule update - rebase in .git/config - -expecting success of 7406.17 'submodule update - checkout in .git/config but --rebase given': - (cd super && - git config submodule.submodule.update checkout - ) && - (cd super/submodule && - git reset --hard HEAD~1 - ) && - (cd super && - (cd submodule && - compare_head - ) && - git submodule update --rebase submodule && - cd submodule && - compare_head - ) - -HEAD is now at 0c90624 upstream - Successfully rebased and updated refs/heads/master. -Submodule path 'submodule': rebased into '4301fd3e4110d3b6212c19aed3094150392545b9' -ok 17 - submodule update - checkout in .git/config but --rebase given - -expecting success of 7406.18 'submodule update - merge in .git/config': - (cd super && - git config submodule.submodule.update merge - ) && - (cd super/submodule && - git reset --hard HEAD~1 - ) && - (cd super && - (cd submodule && - compare_head - ) && - git submodule update submodule && - cd submodule && - compare_head - ) - -HEAD is now at 0c90624 upstream -Updating 0c90624..4301fd3 -Fast-forward - file | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) -Submodule path 'submodule': merged in '4301fd3e4110d3b6212c19aed3094150392545b9' -ok 18 - submodule update - merge in .git/config - -expecting success of 7406.19 'submodule update - checkout in .git/config but --merge given': - (cd super && - git config submodule.submodule.update checkout - ) && - (cd super/submodule && - git reset --hard HEAD~1 - ) && - (cd super && - (cd submodule && - compare_head - ) && - git submodule update --merge submodule && - cd submodule && - compare_head - ) - -HEAD is now at 0c90624 upstream -Updating 0c90624..4301fd3 -Fast-forward - file | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -Submodule path 'submodule': merged in '4301fd3e4110d3b6212c19aed3094150392545b9' -ok 19 - submodule update - checkout in .git/config but --merge given - -expecting success of 7406.20 'submodule update - checkout in .git/config': - (cd super && - git config submodule.submodule.update checkout - ) && - (cd super/submodule && - git reset --hard HEAD^ - ) && - (cd super && - (cd submodule && - compare_head - ) && - git submodule update submodule && - cd submodule && - ! compare_head - ) - -HEAD is now at 0c90624 upstream -Submodule path 'submodule': checked out '4301fd3e4110d3b6212c19aed3094150392545b9' -ok 20 - submodule update - checkout in .git/config - -expecting success of 7406.21 'submodule update - command in .git/config': - (cd super && - git config submodule.submodule.update "!git checkout" - ) && - (cd super/submodule && - git reset --hard HEAD^ - ) && - (cd super && - (cd submodule && - compare_head - ) && - git submodule update submodule && - cd submodule && - ! compare_head - ) - -HEAD is now at 0c90624 upstream -Previous HEAD position was 0c90624 upstream -HEAD is now at 4301fd3 Commit 2 -Submodule path 'submodule': 'git checkout 4301fd3e4110d3b6212c19aed3094150392545b9' -ok 21 - submodule update - command in .git/config - -expecting success of 7406.22 'submodule update - command in .gitmodules is rejected': - test_when_finished "git -C super reset --hard HEAD^" && - git -C super config -f .gitmodules submodule.submodule.update "!false" && - git -C super commit -a -m "add command to .gitmodules file" && - git -C super/submodule reset --hard $submodulesha1^ && - test_must_fail git -C super submodule update submodule - -[master 9916237] add command to .gitmodules file +[master 7d89a17] extra Author: A U Thor - 1 file changed, 1 insertion(+) -HEAD is now at 0c90624 upstream -fatal: invalid value for submodule.submodule.update -HEAD is now at e1c6586 none -ok 22 - submodule update - command in .gitmodules is rejected +[added-submodule b58fe73] fourth + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +Rebasing (1/1) error: could not apply b58fe73... fourth +Resolve all conflicts manually, mark them as resolved with +"git add/rm ", then run "git rebase --continue". +You can instead skip this commit: run "git rebase --skip". +To abort and get back to the state before "git rebase", run "git rebase --abort". +Could not apply b58fe73... fourth +Failed to merge submodule submodule (commits don't follow merge-base) +Auto-merging submodule +CONFLICT (submodule): Merge conflict in submodule +ok 6 - rebasing submodule that should conflict -expecting success of 7406.23 'fsck detects command in .gitmodules': - git init command-in-gitmodules && - ( - cd command-in-gitmodules && - git submodule add ../submodule submodule && - test_commit adding-submodule && +# passed all 6 test(s) +1..6 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t7401-submodule-summary.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7401-submodule-summary/.git/ +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7401-submodule-summary/sm1/.git/ +expecting success of 7401.1 'added submodule': + git add sm1 && + git submodule summary >actual && + cat >expected <<-EOF && + * sm1 0000000...a2c4dab (2): + > Add foo2 - git config -f .gitmodules submodule.submodule.update "!false" && - git add .gitmodules && - test_commit configuring-update && - test_must_fail git fsck - ) + EOF + test_cmp expected actual -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: +warning: adding embedded git repository: sm1 +hint: You've added another git repository inside your current repository. +hint: Clones of the outer repository will not contain the contents of +hint: the embedded repository and will not know how to obtain it. +hint: If you meant to add a submodule, use: hint: -hint: git config --global init.defaultBranch +hint: git submodule add sm1 hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: +hint: If you added this path by mistake, you can remove it from the +hint: index with: hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7406-submodule-update/command-in-gitmodules/.git/ -Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/command-in-gitmodules/submodule'... -done. -[master (root-commit) 54d926f] adding-submodule - Author: A U Thor - 3 files changed, 5 insertions(+) - create mode 100644 .gitmodules - create mode 100644 adding-submodule.t - create mode 160000 submodule -[master 663bd8b] configuring-update - Author: A U Thor - 2 files changed, 2 insertions(+) - create mode 100644 configuring-update.t -error in blob 34075c13cf76fa2281e921a63acb1c52594ee0a0: gitmodulesUpdate: disallowed submodule update setting: !false -ok 23 - fsck detects command in .gitmodules - -expecting success of 7406.24 'submodule update - command in .git/config catches failure': - (cd super && - git config submodule.submodule.update "!false" - ) && - (cd super/submodule && - git reset --hard $submodulesha1^ - ) && - (cd super && - test_must_fail git submodule update submodule 2>../actual - ) && - test_i18ncmp actual expect - -HEAD is now at 0c90624 upstream -ok 24 - submodule update - command in .git/config catches failure +hint: git rm --cached sm1 +hint: +hint: See "git help submodule" for more information. +ok 1 - added submodule -expecting success of 7406.25 'submodule update - command in .git/config catches failure -- subdirectory': - (cd super && - git config submodule.submodule.update "!false" - ) && - (cd super/submodule && - git reset --hard $submodulesha1^ - ) && - (cd super && - mkdir tmp && cd tmp && - test_must_fail git submodule update ../submodule 2>../../actual +expecting success of 7401.2 'added submodule (subdirectory)': + mkdir sub && + ( + cd sub && + git submodule summary >../actual ) && - test_i18ncmp actual expect - -HEAD is now at 0c90624 upstream -ok 25 - submodule update - command in .git/config catches failure -- subdirectory + cat >expected <<-EOF && + * ../sm1 0000000...a2c4dab (2): + > Add foo2 -expecting success of 7406.26 'submodule update - command run for initial population of submodule': - cat >expect <<-EOF && - Execution of 'false $submodulesha1' failed in submodule path 'submodule' EOF - rm -rf super/submodule && - test_must_fail git -C super submodule update 2>actual && - test_i18ncmp expect actual && - git -C super submodule update --checkout + test_cmp expected actual -Submodule path 'submodule': checked out '4301fd3e4110d3b6212c19aed3094150392545b9' -ok 26 - submodule update - command run for initial population of submodule +ok 2 - added submodule (subdirectory) -expecting success of 7406.27 'recursive submodule update - command in .git/config catches failure -- subdirectory': - (cd recursivesuper && - git submodule update --remote super && - git add super && - git commit -m "update to latest to have more than one commit in submodules" - ) && - git -C recursivesuper/super config submodule.submodule.update "!false" && - git -C recursivesuper/super/submodule reset --hard $submodulesha1^ && - (cd recursivesuper && - mkdir -p tmp && cd tmp && - test_must_fail git submodule update --recursive ../super 2>../../actual +expecting success of 7401.3 'added submodule (subdirectory only)': + ( + cd sub && + git submodule summary . >../actual ) && - test_i18ncmp actual expect - -[master eae22a2] update to latest to have more than one commit in submodules - Author: A U Thor - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 super -HEAD is now at 0c90624 upstream -ok 27 - recursive submodule update - command in .git/config catches failure -- subdirectory - -expecting success of 7406.28 'submodule init does not copy command into .git/config': - test_when_finished "git -C super update-index --force-remove submodule1" && - test_when_finished git config -f super/.gitmodules \ - --remove-section submodule.submodule1 && - (cd super && - git ls-files -s submodule >out && - H=$(cut -d" " -f2 out) && - mkdir submodule1 && - git update-index --add --cacheinfo 160000 $H submodule1 && - git config -f .gitmodules submodule.submodule1.path submodule1 && - git config -f .gitmodules submodule.submodule1.url ../submodule && - git config -f .gitmodules submodule.submodule1.update !false && - test_must_fail git submodule init submodule1 && - test_expect_code 1 git config submodule.submodule1.update >actual && - test_must_be_empty actual - ) - -fatal: invalid value for submodule.submodule1.update -ok 28 - submodule init does not copy command into .git/config - -expecting success of 7406.29 'submodule init picks up rebase': - (cd super && - git config -f .gitmodules submodule.rebasing.update rebase && - git submodule init rebasing && - test "rebase" = "$(git config submodule.rebasing.update)" - ) - -ok 29 - submodule init picks up rebase - -expecting success of 7406.30 'submodule init picks up merge': - (cd super && - git config -f .gitmodules submodule.merging.update merge && - git submodule init merging && - test "merge" = "$(git config submodule.merging.update)" - ) - -ok 30 - submodule init picks up merge - -expecting success of 7406.31 'submodule update --merge - ignores --merge for new submodules': - test_config -C super submodule.submodule.update checkout && - (cd super && - rm -rf submodule && - git submodule update submodule && - git status -s submodule >expect && - rm -rf submodule && - git submodule update --merge submodule && - git status -s submodule >actual && - test_cmp expect actual - ) - -Submodule path 'submodule': checked out '4301fd3e4110d3b6212c19aed3094150392545b9' -Submodule path 'submodule': checked out '4301fd3e4110d3b6212c19aed3094150392545b9' -ok 31 - submodule update --merge - ignores --merge for new submodules - -expecting success of 7406.32 'submodule update --rebase - ignores --rebase for new submodules': - test_config -C super submodule.submodule.update checkout && - (cd super && - rm -rf submodule && - git submodule update submodule && - git status -s submodule >expect && - rm -rf submodule && - git submodule update --rebase submodule && - git status -s submodule >actual && - test_cmp expect actual - ) - -Submodule path 'submodule': checked out '4301fd3e4110d3b6212c19aed3094150392545b9' -Submodule path 'submodule': checked out '4301fd3e4110d3b6212c19aed3094150392545b9' -ok 32 - submodule update --rebase - ignores --rebase for new submodules - -expecting success of 7406.33 'submodule update ignores update=merge config for new submodules': - (cd super && - rm -rf submodule && - git submodule update submodule && - git status -s submodule >expect && - rm -rf submodule && - git config submodule.submodule.update merge && - git submodule update submodule && - git status -s submodule >actual && - git config --unset submodule.submodule.update && - test_cmp expect actual - ) - -Submodule path 'submodule': checked out '4301fd3e4110d3b6212c19aed3094150392545b9' -Submodule path 'submodule': checked out '4301fd3e4110d3b6212c19aed3094150392545b9' -ok 33 - submodule update ignores update=merge config for new submodules + test_must_be_empty actual -expecting success of 7406.34 'submodule update ignores update=rebase config for new submodules': - (cd super && - rm -rf submodule && - git submodule update submodule && - git status -s submodule >expect && - rm -rf submodule && - git config submodule.submodule.update rebase && - git submodule update submodule && - git status -s submodule >actual && - git config --unset submodule.submodule.update && - test_cmp expect actual - ) +ok 3 - added submodule (subdirectory only) -Submodule path 'submodule': checked out '4301fd3e4110d3b6212c19aed3094150392545b9' -Submodule path 'submodule': checked out '4301fd3e4110d3b6212c19aed3094150392545b9' -ok 34 - submodule update ignores update=rebase config for new submodules +expecting success of 7401.4 'added submodule (subdirectory with explicit path)': + ( + cd sub && + git submodule summary ../sm1 >../actual + ) && + cat >expected <<-EOF && + * ../sm1 0000000...a2c4dab (2): + > Add foo2 -expecting success of 7406.35 'submodule init picks up update=none': - (cd super && - git config -f .gitmodules submodule.none.update none && - git submodule init none && - test "none" = "$(git config submodule.none.update)" - ) + EOF + test_cmp expected actual -ok 35 - submodule init picks up update=none +ok 4 - added submodule (subdirectory with explicit path) -expecting success of 7406.36 'submodule update - update=none in .git/config': - (cd super && - git config submodule.submodule.update none && - (cd submodule && - git checkout master && - compare_head - ) && - git diff --name-only >out && - grep ^submodule$ out && - git submodule update && - git diff --name-only >out && - grep ^submodule$ out && - (cd submodule && - compare_head - ) && - git config --unset submodule.submodule.update && - git submodule update submodule - ) +expecting success of 7401.5 'modified submodule(forward)': + git submodule summary >actual && + cat >expected <<-EOF && + * sm1 a2c4dab...4c8d358 (1): + > Add foo3 -Previous HEAD position was 4301fd3 Commit 2 -Switched to branch 'master' -Your branch is behind 'origin/master' by 4 commits, and can be fast-forwarded. - (use "git pull" to update your local branch) -submodule -Skipping submodule 'none' -Skipping submodule 'submodule' -submodule -Submodule path 'submodule': checked out '4301fd3e4110d3b6212c19aed3094150392545b9' -ok 36 - submodule update - update=none in .git/config + EOF + test_cmp expected actual -expecting success of 7406.37 'submodule update - update=none in .git/config but --checkout given': - (cd super && - git config submodule.submodule.update none && - (cd submodule && - git checkout master && - compare_head - ) && - git diff --name-only >out && - grep ^submodule$ out && - git submodule update --checkout && - git diff --name-only >out && - ! grep ^submodule$ out && - (cd submodule && - ! compare_head - ) && - git config --unset submodule.submodule.update - ) +ok 5 - modified submodule(forward) -Previous HEAD position was 4301fd3 Commit 2 -Switched to branch 'master' -Your branch is behind 'origin/master' by 4 commits, and can be fast-forwarded. - (use "git pull" to update your local branch) -submodule -Submodule path 'submodule': checked out '4301fd3e4110d3b6212c19aed3094150392545b9' -ok 37 - submodule update - update=none in .git/config but --checkout given +expecting success of 7401.6 'modified submodule(forward), --files': + git submodule summary --files >actual && + cat >expected <<-EOF && + * sm1 a2c4dab...4c8d358 (1): + > Add foo3 -expecting success of 7406.38 'submodule update --init skips submodule with update=none': - (cd super && - git add .gitmodules && - git commit -m ".gitmodules" - ) && - git clone super cloned && - (cd cloned && - git submodule update --init && - test_path_exists submodule/.git && - test_path_is_missing none/.git - ) + EOF + test_cmp expected actual -[master aaa14d4] .gitmodules - Author: A U Thor - 1 file changed, 3 insertions(+) -Cloning into 'cloned'... -done. -Submodule 'merging' (/build/git-2.30.2/t/trash directory.t7406-submodule-update/merging) registered for path 'merging' -Submodule 'none' (/build/git-2.30.2/t/trash directory.t7406-submodule-update/none) registered for path 'none' -Submodule 'rebasing' (/build/git-2.30.2/t/trash directory.t7406-submodule-update/rebasing) registered for path 'rebasing' -Submodule 'submodule' (/build/git-2.30.2/t/trash directory.t7406-submodule-update/submodule) registered for path 'submodule' -Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/cloned/merging'... -done. -Skipping submodule 'none' -Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/cloned/rebasing'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/cloned/submodule'... -done. -Submodule path 'merging': checked out '0c90624ab7f1aaa301d3bb79f60dcfed1ec4897f' -Submodule path 'rebasing': checked out '0c90624ab7f1aaa301d3bb79f60dcfed1ec4897f' -Submodule path 'submodule': checked out '4301fd3e4110d3b6212c19aed3094150392545b9' -ok 38 - submodule update --init skips submodule with update=none +ok 6 - modified submodule(forward), --files -expecting success of 7406.39 'submodule update continues after checkout error': - (cd super && - git reset --hard HEAD && - git submodule add ../submodule submodule2 && - git submodule init && - git commit -am "new_submodule" && - (cd submodule2 && - git rev-parse --verify HEAD >../expect - ) && - (cd submodule && - test_commit "update_submodule" file - ) && - (cd submodule2 && - test_commit "update_submodule2" file - ) && - git add submodule && - git add submodule2 && - git commit -m "two_new_submodule_commits" && - (cd submodule && - echo "" > file - ) && - git checkout HEAD^ && - test_must_fail git submodule update && - (cd submodule2 && - git rev-parse --verify HEAD >../actual - ) && - test_cmp expect actual - ) +expecting success of 7401.7 'no ignore=all setting has any effect': + git config -f .gitmodules submodule.sm1.path sm1 && + git config -f .gitmodules submodule.sm1.ignore all && + git config submodule.sm1.ignore all && + git config diff.ignoreSubmodules all && + git submodule summary >actual && + cat >expected <<-EOF && + * sm1 a2c4dab...4c8d358 (1): + > Add foo3 -HEAD is now at aaa14d4 .gitmodules -Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/super/submodule2'... -done. -[master eac0b19] new_submodule - Author: A U Thor - 2 files changed, 4 insertions(+) - create mode 160000 submodule2 -[detached HEAD bf859b9] update_submodule - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -[master a877e2d] update_submodule2 - Author: A U Thor - 1 file changed, 1 insertion(+), 4 deletions(-) -[master 589bc5b] two_new_submodule_commits - Author: A U Thor - 2 files changed, 2 insertions(+), 2 deletions(-) -Note: switching to 'HEAD^'. + EOF + test_cmp expected actual && + git config --unset diff.ignoreSubmodules && + git config --remove-section submodule.sm1 && + git config -f .gitmodules --remove-section submodule.sm1 -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. +ok 7 - no ignore=all setting has any effect -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: +expecting success of 7401.8 'modified submodule(backward)': + git submodule summary >actual && + cat >expected <<-EOF && + * sm1 4c8d358...db425b6 (2): + < Add foo3 + < Add foo2 - git switch -c + EOF + test_cmp expected actual -Or undo this operation with: +ok 8 - modified submodule(backward) - git switch - +expecting success of 7401.9 'modified submodule(backward and forward)': + git submodule summary >actual && + cat >expected <<-EOF && + * sm1 4c8d358...41fbea9 (4): + > Add foo5 + > Add foo4 + < Add foo3 + < Add foo2 -Turn off this advice by setting config variable advice.detachedHead to false + EOF + test_cmp expected actual -HEAD is now at eac0b19 new_submodule -M submodule -M submodule2 -Skipping submodule 'none' -error: Your local changes to the following files would be overwritten by checkout: - file -Please commit your changes or stash them before you switch branches. -Aborting -Submodule path 'submodule2': checked out 'e64979d13b9a9301a3030b8c005b1d9fd5397a44' -Unable to checkout '4301fd3e4110d3b6212c19aed3094150392545b9' in submodule path 'submodule' -ok 39 - submodule update continues after checkout error +ok 9 - modified submodule(backward and forward) -expecting success of 7406.40 'submodule update continues after recursive checkout error': - (cd super && - git reset --hard HEAD && - git checkout master && - git submodule update && - (cd submodule && - git submodule add ../submodule subsubmodule && - git submodule init && - git commit -m "new_subsubmodule" - ) && - git add submodule && - git commit -m "update_submodule" && - (cd submodule && - (cd subsubmodule && - test_commit "update_subsubmodule" file - ) && - git add subsubmodule && - test_commit "update_submodule_again" file && - (cd subsubmodule && - test_commit "update_subsubmodule_again" file - ) && - test_commit "update_submodule_again_again" file - ) && - (cd submodule2 && - git rev-parse --verify HEAD >../expect && - test_commit "update_submodule2_again" file - ) && - git add submodule && - git add submodule2 && - git commit -m "new_commits" && - git checkout HEAD^ && - (cd submodule && - git checkout HEAD^ && - (cd subsubmodule && - echo "" > file - ) - ) && - test_must_fail git submodule update --recursive && - (cd submodule2 && - git rev-parse --verify HEAD >../actual - ) && - test_cmp expect actual - ) +expecting success of 7401.10 '--summary-limit': + git submodule summary -n 3 >actual && + cat >expected <<-EOF && + * sm1 4c8d358...41fbea9 (4): + > Add foo5 + > Add foo4 + < Add foo3 -HEAD is now at eac0b19 new_submodule -Previous HEAD position was eac0b19 new_submodule -Switched to branch 'master' -M submodule -M submodule2 -Your branch is ahead of 'origin/master' by 8 commits. - (use "git push" to publish your local commits) -Skipping submodule 'none' -Submodule path 'submodule2': checked out 'a877e2d4bf03b4d9f4617d9894698a04062cafcb' -Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/super/submodule/subsubmodule'... -done. -[detached HEAD 13e98de] new_subsubmodule - Author: A U Thor - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 subsubmodule -[master 550d814] update_submodule - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -[master c5b9177] update_subsubmodule - Author: A U Thor - 1 file changed, 1 insertion(+), 4 deletions(-) -[detached HEAD 7a52240] update_submodule_again - Author: A U Thor - 2 files changed, 2 insertions(+), 2 deletions(-) -[master c86226f] update_subsubmodule_again - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -[detached HEAD 36cba07] update_submodule_again_again - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -[detached HEAD 6f5fed0] update_submodule2_again - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -[master ddd1b9e] new_commits - Author: A U Thor - 2 files changed, 2 insertions(+), 2 deletions(-) -Note: switching to 'HEAD^'. + EOF + test_cmp expected actual -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. +ok 10 - --summary-limit -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: +expecting success of 7401.11 'typechanged submodule(submodule->blob), --cached': + git submodule summary --cached >actual && + cat >expected <<-EOF && + * sm1 41fbea9(submodule)->9da5fb8(blob) (3): + < Add foo5 - git switch -c + EOF + test_i18ncmp expected actual -Or undo this operation with: +checking prerequisite: C_LOCALE_OUTPUT - git switch - +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false -Turn off this advice by setting config variable advice.detachedHead to false +) +prerequisite C_LOCALE_OUTPUT ok +ok 11 - typechanged submodule(submodule->blob), --cached -HEAD is now at 550d814 update_submodule -M submodule -M submodule2 -Previous HEAD position was 36cba07 update_submodule_again_again -HEAD is now at 7a52240 update_submodule_again -M subsubmodule -Skipping submodule 'none' -Submodule path 'submodule': checked out '13e98de6d21cfd4c0d0ac89f9801423fd4a8848c' -error: Your local changes to the following files would be overwritten by checkout: - file -Please commit your changes or stash them before you switch branches. -Aborting -Unable to checkout 'e64979d13b9a9301a3030b8c005b1d9fd5397a44' in submodule path 'submodule/subsubmodule' -Submodule path 'submodule2': checked out 'a877e2d4bf03b4d9f4617d9894698a04062cafcb' -Failed to recurse into submodule path 'submodule' -ok 40 - submodule update continues after recursive checkout error +expecting success of 7401.12 'typechanged submodule(submodule->blob), --files': + git submodule summary --files >actual && + cat >expected <<-EOF && + * sm1 9da5fb8(blob)->41fbea9(submodule) (3): + > Add foo5 -expecting success of 7406.41 'submodule update exit immediately in case of merge conflict': - (cd super && - git checkout master && - git reset --hard HEAD && - (cd submodule && - (cd subsubmodule && - git reset --hard HEAD - ) - ) && - git submodule update --recursive && - (cd submodule && - test_commit "update_submodule_2" file - ) && - (cd submodule2 && - test_commit "update_submodule2_2" file - ) && - git add submodule && - git add submodule2 && - git commit -m "two_new_submodule_commits" && - (cd submodule && - git checkout master && - test_commit "conflict" file && - echo "conflict" > file - ) && - git checkout HEAD^ && - (cd submodule2 && - git rev-parse --verify HEAD >../expect - ) && - git config submodule.submodule.update merge && - test_must_fail git submodule update && - (cd submodule2 && - git rev-parse --verify HEAD >../actual - ) && - test_cmp expect actual - ) + EOF + test_i18ncmp expected actual -Previous HEAD position was 550d814 update_submodule -Switched to branch 'master' -M submodule -M submodule2 -Your branch is ahead of 'origin/master' by 10 commits. - (use "git push" to publish your local commits) -HEAD is now at ddd1b9e new_commits -HEAD is now at c86226f update_subsubmodule_again -Skipping submodule 'none' -Submodule path 'submodule': checked out '36cba07de2dd3db68a7098ceff6e2441982207b1' -Submodule path 'submodule/subsubmodule': checked out 'c5b9177e5e719279dd558d927533a748252168f7' -Submodule path 'submodule2': checked out '6f5fed0da411cfed33516e12e385e026134bad56' -[detached HEAD ef00442] update_submodule_2 - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -[detached HEAD a8b9c2b] update_submodule2_2 - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -[master b5c2539] two_new_submodule_commits - Author: A U Thor - 2 files changed, 2 insertions(+), 2 deletions(-) -warning: unable to rmdir 'subsubmodule': Directory not empty -Previous HEAD position was ef00442 update_submodule_2 -Switched to branch 'master' -Your branch is behind 'origin/master' by 4 commits, and can be fast-forwarded. - (use "git pull" to update your local branch) -[master d727295] conflict - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -Note: switching to 'HEAD^'. +ok 12 - typechanged submodule(submodule->blob), --files -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. +expecting success of 7401.13 'typechanged submodule(submodule->blob)': + git submodule summary >actual && + cat >expected <<-EOF && + * sm1 41fbea9(submodule)->9da5fb8(blob): -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: + EOF + test_i18ncmp expected actual - git switch -c +fatal: exec 'rev-parse': cd to 'sm1' failed: Not a directory +ok 13 - typechanged submodule(submodule->blob) -Or undo this operation with: +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7401-submodule-summary/sm1/.git/ +expecting success of 7401.14 'nonexistent commit': + git submodule summary >actual && + cat >expected <<-EOF && + * sm1 41fbea9...6858906: + Warn: sm1 doesn't contain commit 41fbea99b81568012be3e9bcc31431971c1e5bc5 - git switch - + EOF + test_i18ncmp expected actual -Turn off this advice by setting config variable advice.detachedHead to false +ok 14 - nonexistent commit -HEAD is now at ddd1b9e new_commits -M submodule -M submodule2 -Skipping submodule 'none' -Merging: -d727295 conflict -virtual 36cba07de2dd3db68a7098ceff6e2441982207b1 -found 1 common ancestor: -0c90624 upstream -Auto-merging file -CONFLICT (content): Merge conflict in file -Automatic merge failed; fix conflicts and then commit the result. -Unable to merge '36cba07de2dd3db68a7098ceff6e2441982207b1' in submodule path 'submodule' -ok 41 - submodule update exit immediately in case of merge conflict +expecting success of 7401.15 'typechanged submodule(blob->submodule)': + git submodule summary >actual && + cat >expected <<-EOF && + * sm1 9da5fb8(blob)->6858906(submodule) (2): + > Add foo7 -expecting success of 7406.42 'submodule update exit immediately after recursive rebase error': - (cd super && - git checkout master && - git reset --hard HEAD && - (cd submodule && - git reset --hard HEAD && - git submodule update --recursive - ) && - (cd submodule && - test_commit "update_submodule_3" file - ) && - (cd submodule2 && - test_commit "update_submodule2_3" file - ) && - git add submodule && - git add submodule2 && - git commit -m "two_new_submodule_commits" && - (cd submodule && - git checkout master && - test_commit "conflict2" file && - echo "conflict" > file - ) && - git checkout HEAD^ && - (cd submodule2 && - git rev-parse --verify HEAD >../expect - ) && - git config submodule.submodule.update rebase && - test_must_fail git submodule update && - (cd submodule2 && - git rev-parse --verify HEAD >../actual - ) && - test_cmp expect actual - ) + EOF + test_i18ncmp expected actual -Previous HEAD position was ddd1b9e new_commits -Switched to branch 'master' -M submodule -Your branch is ahead of 'origin/master' by 11 commits. - (use "git push" to publish your local commits) -HEAD is now at b5c2539 two_new_submodule_commits -warning: unable to rmdir 'subsubmodule': Directory not empty -HEAD is now at d727295 conflict -[master b3ea5df] update_submodule_3 - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -[detached HEAD 9f300bf] update_submodule2_3 - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -[master 45a22d0] two_new_submodule_commits - Author: A U Thor - 2 files changed, 2 insertions(+), 2 deletions(-) -Already on 'master' -Your branch and 'origin/master' have diverged, -and have 2 and 4 different commits each, respectively. - (use "git pull" to merge the remote branch into yours) -[master cf8450a] conflict2 - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -Note: switching to 'HEAD^'. +ok 15 - typechanged submodule(blob->submodule) -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. +expecting success of 7401.16 'deleted submodule': + git submodule summary >actual && + cat >expected <<-EOF && + * sm1 6858906...0000000: -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: + EOF + test_cmp expected actual - git switch -c +ok 16 - deleted submodule -Or undo this operation with: +expecting success of 7401.17 'create second submodule': + test_create_repo sm2 && + head7=$(add_file sm2 foo8 foo9) && + git add sm2 - git switch - +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7401-submodule-summary/sm2/.git/ +warning: adding embedded git repository: sm2 +hint: You've added another git repository inside your current repository. +hint: Clones of the outer repository will not contain the contents of +hint: the embedded repository and will not know how to obtain it. +hint: If you meant to add a submodule, use: +hint: +hint: git submodule add sm2 +hint: +hint: If you added this path by mistake, you can remove it from the +hint: index with: +hint: +hint: git rm --cached sm2 +hint: +hint: See "git help submodule" for more information. +ok 17 - create second submodule -Turn off this advice by setting config variable advice.detachedHead to false +expecting success of 7401.18 'multiple submodules': + git submodule summary >actual && + cat >expected <<-EOF && + * sm1 6858906...0000000: -HEAD is now at b5c2539 two_new_submodule_commits -M submodule -M submodule2 -Skipping submodule 'none' -error: cannot rebase: You have unstaged changes. -error: Please commit or stash them. -Unable to rebase 'ef00442dab3d569479883a2d86505b87d824a88b' in submodule path 'submodule' -ok 42 - submodule update exit immediately after recursive rebase error + * sm2 0000000...fa9eeaf (2): + > Add foo9 -expecting success of 7406.43 'add different submodules to the same path': - (cd super && - git submodule add ../submodule s1 && - test_must_fail git submodule add ../merging s1 - ) + EOF + test_cmp expected actual -Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/super/s1'... -done. -'s1' already exists in the index -ok 43 - add different submodules to the same path +ok 18 - multiple submodules -expecting success of 7406.44 'submodule add places git-dir in superprojects git-dir': - (cd super && - mkdir deeper && - git submodule add ../submodule deeper/submodule && - (cd deeper/submodule && - git log > ../../expected - ) && - (cd .git/modules/deeper/submodule && - git log > ../../../../actual - ) && - test_cmp expected actual - ) +expecting success of 7401.19 'path filter': + git submodule summary sm2 >actual && + cat >expected <<-EOF && + * sm2 0000000...fa9eeaf (2): + > Add foo9 -Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/super/deeper/submodule'... -done. -ok 44 - submodule add places git-dir in superprojects git-dir + EOF + test_cmp expected actual -expecting success of 7406.45 'submodule update places git-dir in superprojects git-dir': - (cd super && - git commit -m "added submodule" - ) && - git clone super super2 && - (cd super2 && - git submodule init deeper/submodule && - git submodule update && - (cd deeper/submodule && - git log > ../../expected - ) && - (cd .git/modules/deeper/submodule && - git log > ../../../../actual - ) && - test_cmp expected actual - ) +ok 19 - path filter -[detached HEAD 3a6f187] added submodule - Author: A U Thor - 3 files changed, 8 insertions(+) - create mode 160000 deeper/submodule - create mode 160000 s1 -Cloning into 'super2'... -done. -Note: switching to '3a6f1872cb4f0ffb018914be6f6215cb5d81f789'. +expecting success of 7401.20 'given commit': + git submodule summary HEAD^ >actual && + cat >expected <<-EOF && + * sm1 6858906...0000000: -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. + * sm2 0000000...fa9eeaf (2): + > Add foo9 -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: + EOF + test_cmp expected actual - git switch -c +ok 20 - given commit -Or undo this operation with: +expecting success of 7401.21 '--for-status': + git submodule summary --for-status HEAD^ >actual && + test_i18ncmp - actual <<-EOF + * sm1 6858906...0000000: - git switch - + * sm2 0000000...fa9eeaf (2): + > Add foo9 -Turn off this advice by setting config variable advice.detachedHead to false + EOF -Submodule 'deeper/submodule' (/build/git-2.30.2/t/trash directory.t7406-submodule-update/submodule) registered for path 'deeper/submodule' -Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/super2/deeper/submodule'... -done. -Skipping submodule 'none' -Submodule path 'deeper/submodule': checked out 'e64979d13b9a9301a3030b8c005b1d9fd5397a44' -ok 45 - submodule update places git-dir in superprojects git-dir +ok 21 - --for-status -expecting success of 7406.46 'submodule add places git-dir in superprojects git-dir recursive': - (cd super2 && - (cd deeper/submodule && - git submodule add ../submodule subsubmodule && - (cd subsubmodule && - git log > ../../../expected - ) && - git commit -m "added subsubmodule" && - git push origin : - ) && - (cd .git/modules/deeper/submodule/modules/subsubmodule && - git log > ../../../../../actual - ) && - git add deeper/submodule && - git commit -m "update submodule" && - git push origin : && - test_cmp expected actual - ) +expecting success of 7401.22 'fail when using --files together with --cached': + test_must_fail git submodule summary --files --cached -Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/super2/deeper/submodule/subsubmodule'... -done. -[detached HEAD 0642c0f] added subsubmodule - Author: A U Thor - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 subsubmodule -Everything up-to-date -[detached HEAD 7b048b2] update submodule - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -Everything up-to-date -ok 46 - submodule add places git-dir in superprojects git-dir recursive +fatal: --cached and --files are mutually exclusive +ok 22 - fail when using --files together with --cached -expecting success of 7406.47 'submodule update places git-dir in superprojects git-dir recursive': - mkdir super_update_r && - (cd super_update_r && - git init --bare - ) && - mkdir subsuper_update_r && - (cd subsuper_update_r && - git init --bare - ) && - mkdir subsubsuper_update_r && - (cd subsubsuper_update_r && - git init --bare - ) && - git clone subsubsuper_update_r subsubsuper_update_r2 && - (cd subsubsuper_update_r2 && - test_commit "update_subsubsuper" file && - git push origin master - ) && - git clone subsuper_update_r subsuper_update_r2 && - (cd subsuper_update_r2 && - test_commit "update_subsuper" file && - git submodule add ../subsubsuper_update_r subsubmodule && - git commit -am "subsubmodule" && - git push origin master - ) && - git clone super_update_r super_update_r2 && - (cd super_update_r2 && - test_commit "update_super" file && - git submodule add ../subsuper_update_r submodule && - git commit -am "submodule" && - git push origin master - ) && - rm -rf super_update_r2 && - git clone super_update_r super_update_r2 && - (cd super_update_r2 && - git submodule update --init --recursive >actual && - test_i18ngrep "Submodule path .submodule/subsubmodule.: checked out" actual && - (cd submodule/subsubmodule && - git log > ../../expected - ) && - (cd .git/modules/submodule/modules/subsubmodule && - git log > ../../../../../actual - ) && - test_cmp expected actual - ) +expecting success of 7401.23 'should not fail in an empty repo': + git init xyzzy && + cd xyzzy && + git submodule summary >output 2>&1 && + test_must_be_empty output hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all @@ -352590,343 +348078,635 @@ hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7406-submodule-update/super_update_r/ -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7406-submodule-update/subsuper_update_r/ -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7406-submodule-update/subsubsuper_update_r/ -Cloning into 'subsubsuper_update_r2'... -warning: You appear to have cloned an empty repository. -done. -[master (root-commit) 0d20a78] update_subsubsuper +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7401-submodule-summary/xyzzy/.git/ +ok 23 - should not fail in an empty repo + +# passed all 23 test(s) +1..23 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t7403-submodule-sync.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7403-submodule-sync/.git/ +expecting success of 7403.1 'setup': + git config --global protocol.file.allow always && + + echo file >file && + git add file && + test_tick && + git commit -m upstream && + git clone . super && + git clone super submodule && + ( + cd submodule && + git submodule add ../submodule sub-submodule && + test_tick && + git commit -m "sub-submodule" + ) && + ( + cd super && + git submodule add ../submodule submodule && + test_tick && + git commit -m "submodule" + ) && + git clone super super-clone && + ( + cd super-clone && + git submodule update --init --recursive + ) && + git clone super empty-clone && + ( + cd empty-clone && + git submodule init + ) && + git clone super top-only-clone && + git clone super relative-clone && + ( + cd relative-clone && + git submodule update --init --recursive + ) && + git clone super recursive-clone && + ( + cd recursive-clone && + git submodule update --init --recursive + ) + +[master (root-commit) 0c90624] upstream Author: A U Thor 1 file changed, 1 insertion(+) create mode 100644 file -To /build/git-2.30.2/t/trash directory.t7406-submodule-update/subsubsuper_update_r - * [new branch] master -> master -Cloning into 'subsuper_update_r2'... -warning: You appear to have cloned an empty repository. +Cloning into 'super'... done. -[master (root-commit) 635883b] update_subsuper - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/subsuper_update_r2/subsubmodule'... +Cloning into 'submodule'... done. -[master 86a3496] subsubmodule +Cloning into '/build/git-2.30.2/t/trash directory.t7403-submodule-sync/submodule/sub-submodule'... +done. +[master 5a446ba] sub-submodule Author: A U Thor 2 files changed, 4 insertions(+) create mode 100644 .gitmodules - create mode 160000 subsubmodule -To /build/git-2.30.2/t/trash directory.t7406-submodule-update/subsuper_update_r - * [new branch] master -> master -Cloning into 'super_update_r2'... -warning: You appear to have cloned an empty repository. -done. -[master (root-commit) c2de1fa] update_super - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/super_update_r2/submodule'... + create mode 160000 sub-submodule +Cloning into '/build/git-2.30.2/t/trash directory.t7403-submodule-sync/super/submodule'... done. -[master 2d70acb] submodule +[master 78df3af] submodule Author: A U Thor 2 files changed, 4 insertions(+) create mode 100644 .gitmodules create mode 160000 submodule -To /build/git-2.30.2/t/trash directory.t7406-submodule-update/super_update_r - * [new branch] master -> master -Cloning into 'super_update_r2'... +Cloning into 'super-clone'... done. -Submodule 'submodule' (/build/git-2.30.2/t/trash directory.t7406-submodule-update/subsuper_update_r) registered for path 'submodule' -Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/super_update_r2/submodule'... +Submodule 'submodule' (/build/git-2.30.2/t/trash directory.t7403-submodule-sync/submodule) registered for path 'submodule' +Cloning into '/build/git-2.30.2/t/trash directory.t7403-submodule-sync/super-clone/submodule'... done. -Submodule 'subsubmodule' (/build/git-2.30.2/t/trash directory.t7406-submodule-update/subsubsuper_update_r) registered for path 'submodule/subsubmodule' -Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/super_update_r2/submodule/subsubmodule'... +Submodule path 'submodule': checked out '5a446ba52b7cd49fd2fdd854f363e71780faa9a8' +Submodule 'sub-submodule' (/build/git-2.30.2/t/trash directory.t7403-submodule-sync/submodule) registered for path 'submodule/sub-submodule' +Cloning into '/build/git-2.30.2/t/trash directory.t7403-submodule-sync/super-clone/submodule/sub-submodule'... done. -Submodule path 'submodule/subsubmodule': checked out '0d20a783d558db53f3b7ea74da7db3bb1a32b21b' -ok 47 - submodule update places git-dir in superprojects git-dir recursive +Submodule path 'submodule/sub-submodule': checked out '0c90624ab7f1aaa301d3bb79f60dcfed1ec4897f' +Cloning into 'empty-clone'... +done. +Submodule 'submodule' (/build/git-2.30.2/t/trash directory.t7403-submodule-sync/submodule) registered for path 'submodule' +Cloning into 'top-only-clone'... +done. +Cloning into 'relative-clone'... +done. +Submodule 'submodule' (/build/git-2.30.2/t/trash directory.t7403-submodule-sync/submodule) registered for path 'submodule' +Cloning into '/build/git-2.30.2/t/trash directory.t7403-submodule-sync/relative-clone/submodule'... +done. +Submodule path 'submodule': checked out '5a446ba52b7cd49fd2fdd854f363e71780faa9a8' +Submodule 'sub-submodule' (/build/git-2.30.2/t/trash directory.t7403-submodule-sync/submodule) registered for path 'submodule/sub-submodule' +Cloning into '/build/git-2.30.2/t/trash directory.t7403-submodule-sync/relative-clone/submodule/sub-submodule'... +done. +Submodule path 'submodule/sub-submodule': checked out '0c90624ab7f1aaa301d3bb79f60dcfed1ec4897f' +Cloning into 'recursive-clone'... +done. +Submodule 'submodule' (/build/git-2.30.2/t/trash directory.t7403-submodule-sync/submodule) registered for path 'submodule' +Cloning into '/build/git-2.30.2/t/trash directory.t7403-submodule-sync/recursive-clone/submodule'... +done. +Submodule path 'submodule': checked out '5a446ba52b7cd49fd2fdd854f363e71780faa9a8' +Submodule 'sub-submodule' (/build/git-2.30.2/t/trash directory.t7403-submodule-sync/submodule) registered for path 'submodule/sub-submodule' +Cloning into '/build/git-2.30.2/t/trash directory.t7403-submodule-sync/recursive-clone/submodule/sub-submodule'... +done. +Submodule path 'submodule/sub-submodule': checked out '0c90624ab7f1aaa301d3bb79f60dcfed1ec4897f' +ok 1 - setup -expecting success of 7406.48 'submodule add properly re-creates deeper level submodules': - (cd super && - git reset --hard master && - rm -rf deeper/ && - git submodule add --force ../submodule deeper/submodule +expecting success of 7403.2 'change submodule': + ( + cd submodule && + echo second line >>file && + test_tick && + git commit -a -m "change submodule" ) -warning: unable to rmdir 'deeper/submodule': Directory not empty -warning: unable to rmdir 's1': Directory not empty -HEAD is now at 45a22d0 two_new_submodule_commits -Reactivating local git directory for submodule 'deeper/submodule'. -ok 48 - submodule add properly re-creates deeper level submodules +[master c61fc01] change submodule + Author: A U Thor + 1 file changed, 1 insertion(+) +ok 2 - change submodule -expecting success of 7406.49 'submodule update properly revives a moved submodule': - (cd super && - H=$(git rev-parse --short HEAD) && - git commit -am "pre move" && - H2=$(git rev-parse --short HEAD) && - git status >out && - sed "s/$H/XXX/" out >expect && - H=$(cd submodule2 && git rev-parse HEAD) && - git rm --cached submodule2 && - rm -rf submodule2 && - mkdir -p "moved/sub module" && - git update-index --add --cacheinfo 160000 $H "moved/sub module" && - git config -f .gitmodules submodule.submodule2.path "moved/sub module" && - git commit -am "post move" && - git submodule update && - git status > out && - sed "s/$H2/XXX/" out >actual && - test_cmp expect actual +expecting success of 7403.3 'change submodule url': + ( + cd super && + cd submodule && + git checkout master && + git pull + ) && + mv submodule moved-submodule && + ( + cd moved-submodule && + git config -f .gitmodules submodule.sub-submodule.url ../moved-submodule && + test_tick && + git commit -a -m moved-sub-submodule + ) && + ( + cd super && + git config -f .gitmodules submodule.submodule.url ../moved-submodule && + test_tick && + git commit -a -m moved-submodule ) -[detached HEAD d262110] pre move +Already on 'master' +Your branch is up to date with 'origin/master'. +hint: Pulling without specifying how to reconcile divergent branches is +hint: discouraged. You can squelch this message by running one of the following +hint: commands sometime before your next pull: +hint: +hint: git config pull.rebase false # merge (the default strategy) +hint: git config pull.rebase true # rebase +hint: git config pull.ff only # fast-forward only +hint: +hint: You can replace "git config" with "git config --global" to set a default +hint: preference for all repositories. You can also pass --rebase, --no-rebase, +hint: or --ff-only on the command line to override the configured default per +hint: invocation. +From /build/git-2.30.2/t/trash directory.t7403-submodule-sync/submodule + 5a446ba..c61fc01 master -> origin/master +Updating 5a446ba..c61fc01 +Fast-forward + file | 1 + + 1 file changed, 1 insertion(+) +[master 9f583c0] moved-sub-submodule Author: A U Thor - 3 files changed, 5 insertions(+), 1 deletion(-) - create mode 160000 deeper/submodule -rm 'submodule2' -[detached HEAD db0a21b] post move + 1 file changed, 1 insertion(+), 1 deletion(-) +[master f2e88dd] moved-submodule Author: A U Thor - 2 files changed, 1 insertion(+), 1 deletion(-) - rename submodule2 => moved/sub module (100%) -Skipping submodule 'none' -Submodule path 'moved/sub module': checked out '9f300bf70a08f60a240990d98de1aaa8040994a1' -ok 49 - submodule update properly revives a moved submodule + 2 files changed, 2 insertions(+), 2 deletions(-) +ok 3 - change submodule url -checking prerequisite: SYMLINKS +expecting success of 7403.4 '"git submodule sync" should update submodule URLs': + ( + cd super-clone && + git pull --no-recurse-submodules && + git submodule sync + ) && + test -d "$( + cd super-clone/submodule && + git config remote.origin.url + )" && + test ! -d "$( + cd super-clone/submodule/sub-submodule && + git config remote.origin.url + )" && + ( + cd super-clone/submodule && + git checkout master && + git pull + ) && + ( + cd super-clone && + test -d "$(git config submodule.submodule.url)" + ) -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && +hint: Pulling without specifying how to reconcile divergent branches is +hint: discouraged. You can squelch this message by running one of the following +hint: commands sometime before your next pull: +hint: +hint: git config pull.rebase false # merge (the default strategy) +hint: git config pull.rebase true # rebase +hint: git config pull.ff only # fast-forward only +hint: +hint: You can replace "git config" with "git config --global" to set a default +hint: preference for all repositories. You can also pass --rebase, --no-rebase, +hint: or --ff-only on the command line to override the configured default per +hint: invocation. +From /build/git-2.30.2/t/trash directory.t7403-submodule-sync/super + 78df3af..f2e88dd master -> origin/master +Updating 78df3af..f2e88dd +Fast-forward + .gitmodules | 2 +- + submodule | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) +Synchronizing submodule url for 'submodule' +Switched to branch 'master' +Your branch is up to date with 'origin/master'. +hint: Pulling without specifying how to reconcile divergent branches is +hint: discouraged. You can squelch this message by running one of the following +hint: commands sometime before your next pull: +hint: +hint: git config pull.rebase false # merge (the default strategy) +hint: git config pull.rebase true # rebase +hint: git config pull.ff only # fast-forward only +hint: +hint: You can replace "git config" with "git config --global" to set a default +hint: preference for all repositories. You can also pass --rebase, --no-rebase, +hint: or --ff-only on the command line to override the configured default per +hint: invocation. +From /build/git-2.30.2/t/trash directory.t7403-submodule-sync/moved-submodule + 5a446ba..9f583c0 master -> origin/master +Updating 5a446ba..9f583c0 +Fast-forward + .gitmodules | 2 +- + file | 1 + + 2 files changed, 2 insertions(+), 1 deletion(-) +ok 4 - "git submodule sync" should update submodule URLs + +expecting success of 7403.5 '"git submodule sync --recursive" should update all submodule URLs': + ( + cd super-clone && + ( + cd submodule && + git pull --no-recurse-submodules + ) && + git submodule sync --recursive + ) && + test -d "$( + cd super-clone/submodule && + git config remote.origin.url + )" && + test -d "$( + cd super-clone/submodule/sub-submodule && + git config remote.origin.url + )" && + ( + cd super-clone/submodule/sub-submodule && + git checkout master && + git pull + ) + +hint: Pulling without specifying how to reconcile divergent branches is +hint: discouraged. You can squelch this message by running one of the following +hint: commands sometime before your next pull: +hint: +hint: git config pull.rebase false # merge (the default strategy) +hint: git config pull.rebase true # rebase +hint: git config pull.ff only # fast-forward only +hint: +hint: You can replace "git config" with "git config --global" to set a default +hint: preference for all repositories. You can also pass --rebase, --no-rebase, +hint: or --ff-only on the command line to override the configured default per +hint: invocation. +Already up to date. +Synchronizing submodule url for 'submodule' +Synchronizing submodule url for 'submodule/sub-submodule' +Previous HEAD position was 0c90624 upstream +Switched to branch 'master' +Your branch is up to date with 'origin/master'. +hint: Pulling without specifying how to reconcile divergent branches is +hint: discouraged. You can squelch this message by running one of the following +hint: commands sometime before your next pull: +hint: +hint: git config pull.rebase false # merge (the default strategy) +hint: git config pull.rebase true # rebase +hint: git config pull.ff only # fast-forward only +hint: +hint: You can replace "git config" with "git config --global" to set a default +hint: preference for all repositories. You can also pass --rebase, --no-rebase, +hint: or --ff-only on the command line to override the configured default per +hint: invocation. +From /build/git-2.30.2/t/trash directory.t7403-submodule-sync/moved-submodule + 5a446ba..9f583c0 master -> origin/master +Updating 5a446ba..9f583c0 +Fast-forward + .gitmodules | 2 +- + file | 1 + + 2 files changed, 2 insertions(+), 1 deletion(-) +ok 5 - "git submodule sync --recursive" should update all submodule URLs + +expecting success of 7403.6 'reset submodule URLs': + reset_submodule_urls super-clone + +ok 6 - reset submodule URLs + +expecting success of 7403.7 '"git submodule sync" should update submodule URLs - subdirectory': + ( + cd super-clone && + git pull --no-recurse-submodules && + mkdir -p sub && + cd sub && + git submodule sync >../../output + ) && + test_i18ngrep "\\.\\./submodule" output && + test -d "$( + cd super-clone/submodule && + git config remote.origin.url + )" && + test ! -d "$( + cd super-clone/submodule/sub-submodule && + git config remote.origin.url + )" && + ( + cd super-clone/submodule && + git checkout master && + git pull + ) && + ( + cd super-clone && + test -d "$(git config submodule.submodule.url)" + ) + +hint: Pulling without specifying how to reconcile divergent branches is +hint: discouraged. You can squelch this message by running one of the following +hint: commands sometime before your next pull: +hint: +hint: git config pull.rebase false # merge (the default strategy) +hint: git config pull.rebase true # rebase +hint: git config pull.ff only # fast-forward only +hint: +hint: You can replace "git config" with "git config --global" to set a default +hint: preference for all repositories. You can also pass --rebase, --no-rebase, +hint: or --ff-only on the command line to override the configured default per +hint: invocation. +Already up to date. +checking prerequisite: C_LOCALE_OUTPUT + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && ( - cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && - # test whether the filesystem supports symbolic links - ln -s x y && test -h y + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false ) -prerequisite SYMLINKS ok -expecting success of 7406.50 'submodule update can handle symbolic links in pwd': - mkdir -p linked/dir && - ln -s linked/dir linkto && - (cd linkto && - git clone "$TRASH_DIRECTORY"/super_update_r2 super && - (cd super && - git submodule update --init --recursive - ) +prerequisite C_LOCALE_OUTPUT ok +Synchronizing submodule url for '../submodule' +Already on 'master' +M sub-submodule +Your branch is up to date with 'origin/master'. +hint: Pulling without specifying how to reconcile divergent branches is +hint: discouraged. You can squelch this message by running one of the following +hint: commands sometime before your next pull: +hint: +hint: git config pull.rebase false # merge (the default strategy) +hint: git config pull.rebase true # rebase +hint: git config pull.ff only # fast-forward only +hint: +hint: You can replace "git config" with "git config --global" to set a default +hint: preference for all repositories. You can also pass --rebase, --no-rebase, +hint: or --ff-only on the command line to override the configured default per +hint: invocation. +Already up to date. +ok 7 - "git submodule sync" should update submodule URLs - subdirectory + +expecting success of 7403.8 '"git submodule sync --recursive" should update all submodule URLs - subdirectory': + ( + cd super-clone && + ( + cd submodule && + git pull --no-recurse-submodules + ) && + mkdir -p sub && + cd sub && + git submodule sync --recursive >../../output + ) && + test_i18ngrep "\\.\\./submodule/sub-submodule" output && + test -d "$( + cd super-clone/submodule && + git config remote.origin.url + )" && + test -d "$( + cd super-clone/submodule/sub-submodule && + git config remote.origin.url + )" && + ( + cd super-clone/submodule/sub-submodule && + git checkout master && + git pull ) -Cloning into 'super'... -done. -Submodule 'submodule' (/build/git-2.30.2/t/trash directory.t7406-submodule-update/subsuper_update_r) registered for path 'submodule' -Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/linked/dir/super/submodule'... -done. -Submodule path 'submodule': checked out '86a3496a1d60636ce953ea5245c2a0f63a7a2aa8' -Submodule 'subsubmodule' (/build/git-2.30.2/t/trash directory.t7406-submodule-update/subsubsuper_update_r) registered for path 'submodule/subsubmodule' -Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/linked/dir/super/submodule/subsubmodule'... -done. -Submodule path 'submodule/subsubmodule': checked out '0d20a783d558db53f3b7ea74da7db3bb1a32b21b' -ok 50 - submodule update can handle symbolic links in pwd +hint: Pulling without specifying how to reconcile divergent branches is +hint: discouraged. You can squelch this message by running one of the following +hint: commands sometime before your next pull: +hint: +hint: git config pull.rebase false # merge (the default strategy) +hint: git config pull.rebase true # rebase +hint: git config pull.ff only # fast-forward only +hint: +hint: You can replace "git config" with "git config --global" to set a default +hint: preference for all repositories. You can also pass --rebase, --no-rebase, +hint: or --ff-only on the command line to override the configured default per +hint: invocation. +Already up to date. +Synchronizing submodule url for '../submodule/sub-submodule' +Already on 'master' +Your branch is up to date with 'origin/master'. +hint: Pulling without specifying how to reconcile divergent branches is +hint: discouraged. You can squelch this message by running one of the following +hint: commands sometime before your next pull: +hint: +hint: git config pull.rebase false # merge (the default strategy) +hint: git config pull.rebase true # rebase +hint: git config pull.ff only # fast-forward only +hint: +hint: You can replace "git config" with "git config --global" to set a default +hint: preference for all repositories. You can also pass --rebase, --no-rebase, +hint: or --ff-only on the command line to override the configured default per +hint: invocation. +Already up to date. +ok 8 - "git submodule sync --recursive" should update all submodule URLs - subdirectory -expecting success of 7406.51 'submodule update clone shallow submodule': - test_when_finished "rm -rf super3" && - first=$(git -C cloned rev-parse HEAD:submodule) && - second=$(git -C submodule rev-parse HEAD) && - commit_count=$(git -C submodule rev-list --count $first^..$second) && - git clone cloned super3 && - pwd=$(pwd) && +expecting success of 7403.9 '"git submodule sync" should update known submodule URLs': ( - cd super3 && - sed -e "s#url = ../#url = file://$pwd/#" <.gitmodules >.gitmodules.tmp && - mv -f .gitmodules.tmp .gitmodules && - git submodule update --init --depth=$commit_count && - git -C submodule log --oneline >out && - test_line_count = 1 out + cd empty-clone && + git pull && + git submodule sync && + test -d "$(git config submodule.submodule.url)" ) -Cloning into 'super3'... -done. -Submodule 'merging' (file:///build/git-2.30.2/t/trash directory.t7406-submodule-update/merging) registered for path 'merging' -Submodule 'none' (file:///build/git-2.30.2/t/trash directory.t7406-submodule-update/none) registered for path 'none' -Submodule 'rebasing' (file:///build/git-2.30.2/t/trash directory.t7406-submodule-update/rebasing) registered for path 'rebasing' -Submodule 'submodule' (file:///build/git-2.30.2/t/trash directory.t7406-submodule-update/submodule) registered for path 'submodule' -Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/super3/merging'... -Skipping submodule 'none' -Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/super3/rebasing'... -Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/super3/submodule'... -Submodule path 'merging': checked out '0c90624ab7f1aaa301d3bb79f60dcfed1ec4897f' -Submodule path 'rebasing': checked out '0c90624ab7f1aaa301d3bb79f60dcfed1ec4897f' -Submodule path 'submodule': checked out '4301fd3e4110d3b6212c19aed3094150392545b9' -ok 51 - submodule update clone shallow submodule +hint: Pulling without specifying how to reconcile divergent branches is +hint: discouraged. You can squelch this message by running one of the following +hint: commands sometime before your next pull: +hint: +hint: git config pull.rebase false # merge (the default strategy) +hint: git config pull.rebase true # rebase +hint: git config pull.ff only # fast-forward only +hint: +hint: You can replace "git config" with "git config --global" to set a default +hint: preference for all repositories. You can also pass --rebase, --no-rebase, +hint: or --ff-only on the command line to override the configured default per +hint: invocation. +From /build/git-2.30.2/t/trash directory.t7403-submodule-sync/super + 78df3af..f2e88dd master -> origin/master +Updating 78df3af..f2e88dd +Fast-forward + .gitmodules | 2 +- + submodule | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) +Synchronizing submodule url for 'submodule' +ok 9 - "git submodule sync" should update known submodule URLs -expecting success of 7406.52 'submodule update clone shallow submodule outside of depth': - test_when_finished "rm -rf super3" && - git clone cloned super3 && - pwd=$(pwd) && +expecting success of 7403.10 '"git submodule sync" should not vivify uninteresting submodule': ( - cd super3 && - sed -e "s#url = ../#url = file://$pwd/#" <.gitmodules >.gitmodules.tmp && - mv -f .gitmodules.tmp .gitmodules && - # Some protocol versions (e.g. 2) support fetching - # unadvertised objects, so restrict this test to v0. - test_must_fail env GIT_TEST_PROTOCOL_VERSION=0 \ - git submodule update --init --depth=1 2>actual && - test_i18ngrep "Direct fetching of that commit failed." actual && - git -C ../submodule config uploadpack.allowReachableSHA1InWant true && - git submodule update --init --depth=1 >actual && - git -C submodule log --oneline >out && - test_line_count = 1 out + cd top-only-clone && + git pull && + git submodule sync && + test -z "$(git config submodule.submodule.url)" && + git submodule sync submodule && + test -z "$(git config submodule.submodule.url)" ) -Cloning into 'super3'... -done. -Submodule path 'merging': checked out '0c90624ab7f1aaa301d3bb79f60dcfed1ec4897f' -Submodule path 'rebasing': checked out '0c90624ab7f1aaa301d3bb79f60dcfed1ec4897f' -Fetched in submodule path 'submodule', but it did not contain 4301fd3e4110d3b6212c19aed3094150392545b9. Direct fetching of that commit failed. -Skipping submodule 'none' -From file:///build/git-2.30.2/t/trash directory.t7406-submodule-update/submodule - * branch 4301fd3e4110d3b6212c19aed3094150392545b9 -> FETCH_HEAD -ok 52 - submodule update clone shallow submodule outside of depth +hint: Pulling without specifying how to reconcile divergent branches is +hint: discouraged. You can squelch this message by running one of the following +hint: commands sometime before your next pull: +hint: +hint: git config pull.rebase false # merge (the default strategy) +hint: git config pull.rebase true # rebase +hint: git config pull.ff only # fast-forward only +hint: +hint: You can replace "git config" with "git config --global" to set a default +hint: preference for all repositories. You can also pass --rebase, --no-rebase, +hint: or --ff-only on the command line to override the configured default per +hint: invocation. +From /build/git-2.30.2/t/trash directory.t7403-submodule-sync/super + 78df3af..f2e88dd master -> origin/master +Updating 78df3af..f2e88dd +Fast-forward + .gitmodules | 2 +- + submodule | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) +ok 10 - "git submodule sync" should not vivify uninteresting submodule -expecting success of 7406.53 'submodule update --recursive drops module name before recursing': - (cd super2 && - (cd deeper/submodule/subsubmodule && - git checkout HEAD^ - ) && - git submodule update --recursive deeper/submodule >actual && - test_i18ngrep "Submodule path .deeper/submodule/subsubmodule.: checked out" actual +expecting success of 7403.11 '"git submodule sync" handles origin URL of the form foo': + ( + cd relative-clone && + git remote set-url origin foo && + git submodule sync && + ( + cd submodule && + #actual fails with: "cannot strip off url foo + test "$(git config remote.origin.url)" = "../submodule" + ) ) -Note: switching to 'HEAD^'. - -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. +Synchronizing submodule url for 'submodule' +ok 11 - "git submodule sync" handles origin URL of the form foo -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: +expecting success of 7403.12 '"git submodule sync" handles origin URL of the form foo/bar': + ( + cd relative-clone && + git remote set-url origin foo/bar && + git submodule sync && + ( + cd submodule && + #actual foo/submodule + test "$(git config remote.origin.url)" = "../foo/submodule" + ) && + ( + cd submodule/sub-submodule && + test "$(git config remote.origin.url)" != "../../foo/submodule" + ) + ) - git switch -c +Synchronizing submodule url for 'submodule' +ok 12 - "git submodule sync" handles origin URL of the form foo/bar -Or undo this operation with: +expecting success of 7403.13 '"git submodule sync --recursive" propagates changes in origin': + ( + cd recursive-clone && + git remote set-url origin foo/bar && + git submodule sync --recursive && + ( + cd submodule && + #actual foo/submodule + test "$(git config remote.origin.url)" = "../foo/submodule" + ) && + ( + cd submodule/sub-submodule && + test "$(git config remote.origin.url)" = "../../foo/submodule" + ) + ) - git switch - +Synchronizing submodule url for 'submodule' +Synchronizing submodule url for 'submodule/sub-submodule' +ok 13 - "git submodule sync --recursive" propagates changes in origin -Turn off this advice by setting config variable advice.detachedHead to false +expecting success of 7403.14 '"git submodule sync" handles origin URL of the form ./foo': + ( + cd relative-clone && + git remote set-url origin ./foo && + git submodule sync && + ( + cd submodule && + #actual ./submodule + test "$(git config remote.origin.url)" = "../submodule" + ) + ) -HEAD is now at 2758ea9 upstream line4 -Submodule path 'deeper/submodule/subsubmodule': checked out 'e64979d13b9a9301a3030b8c005b1d9fd5397a44' -ok 53 - submodule update --recursive drops module name before recursing +Synchronizing submodule url for 'submodule' +ok 14 - "git submodule sync" handles origin URL of the form ./foo -expecting success of 7406.54 'submodule update can be run in parallel': - (cd super2 && - GIT_TRACE=$(pwd)/trace.out git submodule update --jobs 7 && - grep "7 tasks" trace.out && - git config submodule.fetchJobs 8 && - GIT_TRACE=$(pwd)/trace.out git submodule update && - grep "8 tasks" trace.out && - GIT_TRACE=$(pwd)/trace.out git submodule update --jobs 9 && - grep "9 tasks" trace.out +expecting success of 7403.15 '"git submodule sync" handles origin URL of the form ./foo/bar': + ( + cd relative-clone && + git remote set-url origin ./foo/bar && + git submodule sync && + ( + cd submodule && + #actual ./foo/submodule + test "$(git config remote.origin.url)" = "../foo/submodule" + ) ) -Skipping submodule 'none' -run_processes_parallel: preparing to run up to 7 tasks -Skipping submodule 'none' -run_processes_parallel: preparing to run up to 8 tasks -Skipping submodule 'none' -run_processes_parallel: preparing to run up to 9 tasks -ok 54 - submodule update can be run in parallel +Synchronizing submodule url for 'submodule' +ok 15 - "git submodule sync" handles origin URL of the form ./foo/bar -expecting success of 7406.55 'git clone passes the parallel jobs config on to submodules': - test_when_finished "rm -rf super4" && - GIT_TRACE=$(pwd)/trace.out git clone --recurse-submodules --jobs 7 . super4 && - grep "7 tasks" trace.out && - rm -rf super4 && - git config --global submodule.fetchJobs 8 && - GIT_TRACE=$(pwd)/trace.out git clone --recurse-submodules . super4 && - grep "8 tasks" trace.out && - rm -rf super4 && - GIT_TRACE=$(pwd)/trace.out git clone --recurse-submodules --jobs 9 . super4 && - grep "9 tasks" trace.out && - rm -rf super4 +expecting success of 7403.16 '"git submodule sync" handles origin URL of the form ../foo': + ( + cd relative-clone && + git remote set-url origin ../foo && + git submodule sync && + ( + cd submodule && + #actual ../submodule + test "$(git config remote.origin.url)" = "../../submodule" + ) + ) -Cloning into 'super4'... -done. -run_processes_parallel: preparing to run up to 7 tasks -Cloning into 'super4'... -done. -run_processes_parallel: preparing to run up to 8 tasks -Cloning into 'super4'... -done. -run_processes_parallel: preparing to run up to 9 tasks -ok 55 - git clone passes the parallel jobs config on to submodules +Synchronizing submodule url for 'submodule' +ok 16 - "git submodule sync" handles origin URL of the form ../foo -expecting success of 7406.56 'submodule update --quiet passes quietness to merge/rebase': - (cd super && - test_commit -C rebasing message && - git submodule update --rebase --quiet >out 2>err && - test_must_be_empty out && - test_must_be_empty err && - git submodule update --rebase -v >out 2>err && - test_file_not_empty out && - test_must_be_empty err +expecting success of 7403.17 '"git submodule sync" handles origin URL of the form ../foo/bar': + ( + cd relative-clone && + git remote set-url origin ../foo/bar && + git submodule sync && + ( + cd submodule && + #actual ../foo/submodule + test "$(git config remote.origin.url)" = "../../foo/submodule" + ) ) -[master 271c4a7] message - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 message.t -ok 56 - submodule update --quiet passes quietness to merge/rebase +Synchronizing submodule url for 'submodule' +ok 17 - "git submodule sync" handles origin URL of the form ../foo/bar -# passed all 56 test(s) -1..56 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t7112-reset-submodule.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7112-reset-submodule/.git/ -expecting success of 7112.1 'git reset --keep --recurse-submodules: added submodule is checked out': - prolog && - reset_work_tree_to_interested no_submodule && +expecting success of 7403.18 '"git submodule sync" handles origin URL of the form ../foo/bar with deeply nested submodule': + ( + cd relative-clone && + git remote set-url origin ../foo/bar && + mkdir -p a/b/c && ( - cd submodule_update && - git branch -t add_sub1 origin/add_sub1 && - $command add_sub1 && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 + cd a/b/c && + git init && + >.gitignore && + git add .gitignore && + test_tick && + git commit -m "initial commit" + ) && + git submodule add ../bar/a/b/c ./a/b/c && + git submodule sync && + ( + cd a/b/c && + #actual ../foo/bar/a/b/c + test "$(git config remote.origin.url)" = "../../../../foo/bar/a/b/c" ) - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1/.git/ -[master (root-commit) 63c4304] Base inside first submodule - Author: A U Thor - 3 files changed, 4 insertions(+) - create mode 100644 .gitignore - create mode 100644 file1 - create mode 100644 file2 + ) + hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all hint: of your new repositories, which will suppress this warning, call: @@ -352937,388 +348717,141 @@ hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub2/.git/ -[master (root-commit) 27c5769] nested submodule base +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7403-submodule-sync/relative-clone/a/b/c/.git/ +[master (root-commit) 1f9e67a] initial commit Author: A U Thor - 3 files changed, 4 insertions(+) + 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 .gitignore - create mode 100644 file1 - create mode 100644 file2 -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_repo/.git/ -[master (root-commit) 27611a5] Base +Adding existing repo at 'a/b/c' to the index +Synchronizing submodule url for 'a/b/c' +Synchronizing submodule url for 'submodule' +ok 18 - "git submodule sync" handles origin URL of the form ../foo/bar with deeply nested submodule + +# passed all 18 test(s) +1..18 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t7407-submodule-foreach.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7407-submodule-foreach/.git/ +expecting success of 7407.1 'setup a submodule tree': + git config --global protocol.file.allow always && + echo file > file && + git add file && + test_tick && + git commit -m upstream && + git clone . super && + git clone super submodule && + ( + cd super && + git submodule add ../submodule sub1 && + git submodule add ../submodule sub2 && + git submodule add ../submodule sub3 && + git config -f .gitmodules --rename-section \ + submodule.sub1 submodule.foo1 && + git config -f .gitmodules --rename-section \ + submodule.sub2 submodule.foo2 && + git config -f .gitmodules --rename-section \ + submodule.sub3 submodule.foo3 && + git add .gitmodules && + test_tick && + git commit -m "submodules" && + git submodule init sub1 && + git submodule init sub2 && + git submodule init sub3 + ) && + ( + cd submodule && + echo different > file && + git add file && + test_tick && + git commit -m "different" + ) && + ( + cd super && + ( + cd sub3 && + git pull + ) && + git add sub3 && + test_tick && + git commit -m "update sub3" + ) + +[master (root-commit) 0c90624] upstream Author: A U Thor - 3 files changed, 4 insertions(+) - create mode 100644 .gitignore - create mode 100644 file1 - create mode 100644 file2 -Switched to a new branch 'add_sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_repo/sub1'... + 1 file changed, 1 insertion(+) + create mode 100644 file +Cloning into 'super'... done. -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_repo/uninitialized_sub'... +Cloning into 'submodule'... done. -[add_sub1 09bcf53] Add sub1 - Author: A U Thor - 2 files changed, 8 insertions(+) - create mode 100644 .gitmodules - create mode 160000 uninitialized_sub -Switched to a new branch 'remove_sub1' -Removing uninitialized_sub -Removing sub1 -Removing .gitmodules -[remove_sub1 d6ba723] Revert "Add sub1" - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 3 files changed, 9 deletions(-) - delete mode 100644 .gitmodules - delete mode 160000 sub1 - delete mode 160000 uninitialized_sub -Switched to a new branch 'modify_sub1' -Switched to a new branch 'modifications' -[modifications 03da4ea] modified file2 and added file3 - Author: A U Thor - 2 files changed, 2 insertions(+), 1 deletion(-) - create mode 100644 file3 -To /build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1 - * [new branch] modifications -> modifications -[modify_sub1 cb2bda7] Modify sub1 - Author: A U Thor -Switched to a new branch 'add_nested_sub' -Switched to a new branch 'add_nested_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_repo/sub1/sub2'... +Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/super/sub1'... done. -[add_nested_sub 8b3b335] add a nested submodule +Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/super/sub2'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/super/sub3'... +done. +[master 33b977a] submodules Author: A U Thor - 2 files changed, 5 insertions(+) + 4 files changed, 12 insertions(+) create mode 100644 .gitmodules + create mode 160000 sub1 create mode 160000 sub2 -[add_nested_sub 5bc57bf] update submodule, that updates a nested submodule - Author: A U Thor -Switched to a new branch 'modify_sub1_recursively' -Switched to a new branch 'modify_sub1_recursively' -Switched to a new branch 'modify_sub1_recursively' -[modify_sub1_recursively c7c4624] make a change in nested sub - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file3 -[modify_sub1_recursively 92fc14a] update nested sub + create mode 160000 sub3 +Submodule 'foo1' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/submodule) registered for path 'sub1' +Submodule 'foo2' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/submodule) registered for path 'sub2' +Submodule 'foo3' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/submodule) registered for path 'sub3' +[master 509f622] different Author: A U Thor 1 file changed, 1 insertion(+), 1 deletion(-) -[modify_sub1_recursively 953e869] update sub1, that updates nested sub - Author: A U Thor -To /build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1 - * [new branch] modify_sub1_recursively -> modify_sub1_recursively -To /build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub2 - * [new branch] modify_sub1_recursively -> modify_sub1_recursively -Cleared directory 'sub2' -Submodule 'sub2' (../submodule_update_sub2) unregistered for path 'sub2' -Switched to a new branch 'replace_sub1_with_directory' -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Previous HEAD position was 63c4304 Base inside first submodule -Switched to branch 'modifications' -rm 'sub1' -[replace_sub1_with_directory cb28587] Replace sub1 with directory - Author: A U Thor - 5 files changed, 3 insertions(+), 5 deletions(-) - delete mode 160000 sub1 - create mode 100644 sub1/file1 - create mode 100644 sub1/file2 - create mode 100644 sub1/file3 -Switched to a new branch 'replace_directory_with_sub1' -Removing sub1/file3 -Removing sub1/file2 -Removing sub1/file1 -Adding sub1 -[replace_directory_with_sub1 a2e65d5] Revert "Replace sub1 with directory" - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 4 files changed, 4 insertions(+), 3 deletions(-) - delete mode 100644 sub1/file1 - delete mode 100644 sub1/file2 - delete mode 100644 sub1/file3 -Switched to a new branch 'replace_sub1_with_file' -rm 'sub1' -[replace_sub1_with_file 2364f5a] Replace sub1 with file - Author: A U Thor - 2 files changed, 1 insertion(+), 5 deletions(-) - mode change 160000 => 100644 sub1 -Switched to a new branch 'replace_file_with_sub1' -[replace_file_with_sub1 8b6fdfc] Revert "Replace sub1 with file" - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 2 files changed, 5 insertions(+), 1 deletion(-) - mode change 100644 => 160000 sub1 -Switched to a new branch 'invalid_sub1' -[invalid_sub1 e6169bf] Invalid sub1 commit - Author: A U Thor -Switched to a new branch 'valid_sub1' -[valid_sub1 3036e4e] Revert "Invalid sub1 commit" +hint: Pulling without specifying how to reconcile divergent branches is +hint: discouraged. You can squelch this message by running one of the following +hint: commands sometime before your next pull: +hint: +hint: git config pull.rebase false # merge (the default strategy) +hint: git config pull.rebase true # rebase +hint: git config pull.ff only # fast-forward only +hint: +hint: You can replace "git config" with "git config --global" to set a default +hint: preference for all repositories. You can also pass --rebase, --no-rebase, +hint: or --ff-only on the command line to override the configured default per +hint: invocation. +From /build/git-2.30.2/t/trash directory.t7407-submodule-foreach/submodule + 0c90624..509f622 master -> origin/master +Updating 0c90624..509f622 +Fast-forward + file | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) +[master ed2a820] update sub3 Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 -warning: unable to rmdir 'uninitialized_sub': Directory not empty -Switched to branch 'master' -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -ok 1 - git reset --keep --recurse-submodules: added submodule is checked out - -expecting success of 7112.2 'git reset --keep --recurse-submodules: added submodule is checked out in empty dir': - prolog && - reset_work_tree_to_interested no_submodule && - ( - cd submodule_update && - mkdir sub1 && - git branch -t add_sub1 origin/add_sub1 && - $command add_sub1 && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -ok 2 - git reset --keep --recurse-submodules: added submodule is checked out in empty dir - -expecting success of 7112.3 'git reset --keep --recurse-submodules: replace tracked file with submodule checks out submodule': - prolog && - reset_work_tree_to_interested replace_sub1_with_file && - ( - cd submodule_update && - git branch -t replace_file_with_sub1 origin/replace_file_with_sub1 && - $command replace_file_with_sub1 && - test_superproject_content origin/replace_file_with_sub1 && - test_submodule_content sub1 origin/replace_file_with_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'replace_sub1_with_file' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -fatal: Needed a single revision -Branch 'replace_file_with_sub1' set up to track remote branch 'replace_file_with_sub1' from 'origin'. -ok 3 - git reset --keep --recurse-submodules: replace tracked file with submodule checks out submodule - -expecting success of 7112.4 'git reset --keep --recurse-submodules: replace directory with submodule': - prolog && - reset_work_tree_to_interested replace_sub1_with_directory && - ( - cd submodule_update && - git branch -t replace_directory_with_sub1 origin/replace_directory_with_sub1 && - $command replace_directory_with_sub1 && - test_superproject_content origin/replace_directory_with_sub1 && - test_submodule_content sub1 origin/replace_directory_with_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'replace_sub1_with_directory' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -fatal: Needed a single revision -Branch 'replace_directory_with_sub1' set up to track remote branch 'replace_directory_with_sub1' from 'origin'. -ok 4 - git reset --keep --recurse-submodules: replace directory with submodule - -expecting success of 7112.5 'git reset --keep --recurse-submodules: nested submodules are checked out': - prolog && - reset_work_tree_to_interested no_submodule && - ( - cd submodule_update && - git branch -t modify_sub1_recursively origin/modify_sub1_recursively && - $command modify_sub1_recursively && - test_superproject_content origin/modify_sub1_recursively && - test_submodule_content sub1 origin/modify_sub1_recursively && - test_submodule_content -C sub1 sub2 origin/modify_sub1_recursively - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'modify_sub1_recursively' set up to track remote branch 'modify_sub1_recursively' from 'origin'. -ok 5 - git reset --keep --recurse-submodules: nested submodules are checked out - -expecting success of 7112.6 'git reset --keep --recurse-submodules: removed submodule removes submodules working tree': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t remove_sub1 origin/remove_sub1 && - $command remove_sub1 && - test_superproject_content origin/remove_sub1 && - ! test -e sub1 && - test_must_fail git config -f .git/modules/sub1/config core.worktree - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. -ok 6 - git reset --keep --recurse-submodules: removed submodule removes submodules working tree - -expecting success of 7112.7 'git reset --keep --recurse-submodules: removed submodule absorbs submodules .git directory': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t remove_sub1 origin/remove_sub1 && - replace_gitfile_with_git_dir sub1 && - rm -rf .git/modules && - $command remove_sub1 && - test_superproject_content origin/remove_sub1 && - ! test -e sub1 && - test_git_directory_exists sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. -Migrating git directory of 'sub1' from -'/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1/.git' to -'/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/.git/modules/sub1' -ok 7 - git reset --keep --recurse-submodules: removed submodule absorbs submodules .git directory - -expecting success of 7112.8 'git reset --keep --recurse-submodules: replace submodule with a file': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_file origin/replace_sub1_with_file && - $command replace_sub1_with_file && - test_superproject_content origin/replace_sub1_with_file && - test -f sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -ok 8 - git reset --keep --recurse-submodules: replace submodule with a file - -checking known breakage of 7112.9 'git reset --keep --recurse-submodules: replace submodule with a file must fail with untracked files': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_file origin/replace_sub1_with_file && - : >sub1/untrackedfile && - test_must_fail $command replace_sub1_with_file && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 && - test -f sub1/untracked_file - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -test_must_fail: command succeeded: git reset --keep --recurse-submodules replace_sub1_with_file -not ok 9 - git reset --keep --recurse-submodules: replace submodule with a file must fail with untracked files # TODO known breakage + 1 file changed, 1 insertion(+), 1 deletion(-) +ok 1 - setup a submodule tree -expecting success of 7112.10 'git reset --keep --recurse-submodules: worktrees of nested submodules are removed': - prolog && - reset_work_tree_to_interested add_nested_sub && - ( - cd submodule_update && - git branch -t no_submodule origin/no_submodule && - $command no_submodule && - test_superproject_content origin/no_submodule && - ! test_path_is_dir sub1 && - test_must_fail git config -f .git/modules/sub1/config core.worktree && - test_must_fail git config -f .git/modules/sub1/modules/sub2/config core.worktree - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_nested_sub' -Branch 'add_nested_sub' set up to track remote branch 'add_nested_sub' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '8b3b3353ac8999eb3d8af8e947e0ef2a08a60008' -Submodule 'sub2' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub2) registered for path 'sub1/sub2' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1/sub2'... -done. -Submodule path 'sub1/sub2': checked out '27c5769ac0ebf2d924e34d3aa503345baaaa98b2' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Directory sub1 doesn't exist. -ok 10 - git reset --keep --recurse-submodules: worktrees of nested submodules are removed +expecting success of 7407.2 'test basic "submodule foreach" usage': + git clone super clone && + ( + cd clone && + git submodule update --init -- sub1 sub3 && + git submodule foreach "echo \$toplevel-\$name-\$path-\$sha1" > ../actual && + git config foo.bar zar && + git submodule foreach "git config --file \"\$toplevel/.git/config\" foo.bar" + ) && + test_i18ncmp expect actual -expecting success of 7112.11 'git reset --keep --recurse-submodules: modified submodule updates submodule work tree': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t modify_sub1 origin/modify_sub1 && - $command modify_sub1 && - test_superproject_content origin/modify_sub1 && - test_submodule_content sub1 origin/modify_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +Cloning into 'clone'... done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. -ok 11 - git reset --keep --recurse-submodules: modified submodule updates submodule work tree - -expecting success of 7112.12 'git reset --keep --recurse-submodules: updating to a missing submodule commit fails': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t invalid_sub1 origin/invalid_sub1 && - test_must_fail $command invalid_sub1 2>err && - test_i18ngrep sub1 err && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... +Submodule 'foo1' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/submodule) registered for path 'sub1' +Submodule 'foo3' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/submodule) registered for path 'sub3' +Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone/sub1'... done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone/sub3'... done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. +Submodule path 'sub1': checked out '0c90624ab7f1aaa301d3bb79f60dcfed1ec4897f' +Submodule path 'sub3': checked out '509f622a4f36a3e472affcf28fa959174f3dd5b5' +Entering 'sub1' +zar +Entering 'sub3' +zar checking prerequisite: C_LOCALE_OUTPUT mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && @@ -353328,1792 +348861,913 @@ ) prerequisite C_LOCALE_OUTPUT ok -error: Submodule 'sub1' could not be updated. -error: Submodule 'sub1' cannot checkout new HEAD. -fatal: Could not reset index file to revision 'invalid_sub1'. -ok 12 - git reset --keep --recurse-submodules: updating to a missing submodule commit fails +ok 2 - test basic "submodule foreach" usage -expecting success of 7112.13 'git reset --keep --recurse-submodules: submodule branch is not changed, detach HEAD instead': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git -C sub1 checkout -b keep_branch && - git -C sub1 rev-parse HEAD >expect && - git branch -t modify_sub1 origin/modify_sub1 && - $command modify_sub1 && - test_superproject_content origin/modify_sub1 && - test_submodule_content sub1 origin/modify_sub1 && - git -C sub1 rev-parse keep_branch >actual && - test_cmp expect actual && - test_must_fail git -C sub1 symbolic-ref HEAD - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Switched to a new branch 'keep_branch' -Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. -fatal: ref HEAD is not a symbolic ref -ok 13 - git reset --keep --recurse-submodules: submodule branch is not changed, detach HEAD instead +expecting success of 7407.3 'test "submodule foreach" from subdirectory': + mkdir clone/sub && + ( + cd clone/sub && + git submodule foreach "echo \$toplevel-\$name-\$sm_path-\$displaypath-\$sha1" >../../actual + ) && + test_i18ncmp expect actual -expecting success of 7112.14 'git reset --keep --recurse-submodules: added submodule doesn't remove untracked file with same name': - prolog && - reset_work_tree_to_interested no_submodule && - ( - cd submodule_update && - git branch -t add_sub1 origin/add_sub1 && - : >sub1 && - test_must_fail $command add_sub1 && - test_superproject_content origin/no_submodule && - test_must_be_empty sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -error: Untracked working tree file 'sub1' would be overwritten by merge. -fatal: Could not reset index file to revision 'add_sub1'. -ok 14 - git reset --keep --recurse-submodules: added submodule doesn't remove untracked file with same name +ok 3 - test "submodule foreach" from subdirectory -checking known breakage of 7112.15 'git reset --keep --recurse-submodules: added submodule removes an untracked ignored file': - test_when_finished "rm submodule_update/.git/info/exclude" && - prolog && - reset_work_tree_to_interested no_submodule && - ( - cd submodule_update && - git branch -t add_sub1 origin/add_sub1 && - : >sub1 && - echo sub1 >.git/info/exclude && - $command add_sub1 && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -error: Untracked working tree file 'sub1' would be overwritten by merge. -fatal: Could not reset index file to revision 'add_sub1'. -not ok 15 - git reset --keep --recurse-submodules: added submodule removes an untracked ignored file # TODO known breakage +expecting success of 7407.4 'setup nested submodules': + git clone submodule nested1 && + git clone submodule nested2 && + git clone submodule nested3 && + ( + cd nested3 && + git submodule add ../submodule submodule && + test_tick && + git commit -m "submodule" && + git submodule init submodule + ) && + ( + cd nested2 && + git submodule add ../nested3 nested3 && + test_tick && + git commit -m "nested3" && + git submodule init nested3 + ) && + ( + cd nested1 && + git submodule add ../nested2 nested2 && + test_tick && + git commit -m "nested2" && + git submodule init nested2 + ) && + ( + cd super && + git submodule add ../nested1 nested1 && + test_tick && + git commit -m "nested1" && + git submodule init nested1 + ) -checking known breakage of 7112.16 'git reset --keep --recurse-submodules: replace submodule with a directory': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && - $command replace_sub1_with_directory && - test_superproject_content origin/replace_sub1_with_directory && - test_submodule_content sub1 origin/replace_sub1_with_directory - ) - -Cloning into 'submodule_update'... +Cloning into 'nested1'... done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +Cloning into 'nested2'... done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -error: Untracked working tree file 'sub1/file1' would be overwritten by merge. -fatal: Could not reset index file to revision 'replace_sub1_with_directory'. -not ok 16 - git reset --keep --recurse-submodules: replace submodule with a directory # TODO known breakage - -checking known breakage of 7112.17 'git reset --keep --recurse-submodules: replace submodule containing a .git directory with a directory must absorb the git dir': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && - replace_gitfile_with_git_dir sub1 && - rm -rf .git/modules && - $command replace_sub1_with_directory && - test_superproject_content origin/replace_sub1_with_directory && - test_git_directory_exists sub1 - ) - -Cloning into 'submodule_update'... +Cloning into 'nested3'... done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/nested3/submodule'... done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -error: Untracked working tree file 'sub1/file1' would be overwritten by merge. -fatal: Could not reset index file to revision 'replace_sub1_with_directory'. -not ok 17 - git reset --keep --recurse-submodules: replace submodule containing a .git directory with a directory must absorb the git dir # TODO known breakage - -expecting success of 7112.18 'git reset --keep --recurse-submodules: replace submodule with a file works ignores ignored files in submodule': - test_when_finished "rm submodule_update/.git/modules/sub1/info/exclude" && - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_file origin/replace_sub1_with_file && - echo ignored >.git/modules/sub1/info/exclude && - : >sub1/ignored && - $command replace_sub1_with_file && - test_superproject_content origin/replace_sub1_with_file && - test -f sub1 - ) - -Cloning into 'submodule_update'... +[master 5ec8351] submodule + Author: A U Thor + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 submodule +Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/nested2/nested3'... done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +[master 2e69c85] nested3 + Author: A U Thor + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 nested3 +Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/nested1/nested2'... done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -ok 18 - git reset --keep --recurse-submodules: replace submodule with a file works ignores ignored files in submodule +[master b23f134] nested2 + Author: A U Thor + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 nested2 +Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/super/nested1'... +done. +[master 427ccd0] nested1 + Author: A U Thor + 2 files changed, 4 insertions(+) + create mode 160000 nested1 +ok 4 - setup nested submodules -expecting success of 7112.19 'git -c submodule.recurse=true reset --keep: modified submodule updates submodule work tree': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t modify_sub1 origin/modify_sub1 && - git -c submodule.recurse=true $cmd_args modify_sub1 && - test_superproject_content origin/modify_sub1 && - test_submodule_content sub1 origin/modify_sub1 - ) - -Cloning into 'submodule_update'... +expecting success of 7407.5 'use "submodule foreach" to checkout 2nd level submodule': + git clone super clone2 && + ( + cd clone2 && + test_must_fail git rev-parse --resolve-git-dir sub1/.git && + test_must_fail git rev-parse --resolve-git-dir sub2/.git && + test_must_fail git rev-parse --resolve-git-dir sub3/.git && + test_must_fail git rev-parse --resolve-git-dir nested1/.git && + git submodule update --init && + git rev-parse --resolve-git-dir sub1/.git && + git rev-parse --resolve-git-dir sub2/.git && + git rev-parse --resolve-git-dir sub3/.git && + git rev-parse --resolve-git-dir nested1/.git && + test_must_fail git rev-parse --resolve-git-dir nested1/nested2/.git && + git submodule foreach "git submodule update --init" && + git rev-parse --resolve-git-dir nested1/nested2/.git && + test_must_fail git rev-parse --resolve-git-dir nested1/nested2/nested3/.git + ) + +Cloning into 'clone2'... done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +fatal: not a gitdir 'sub1/.git' +fatal: not a gitdir 'sub2/.git' +fatal: not a gitdir 'sub3/.git' +fatal: not a gitdir 'nested1/.git' +Submodule 'nested1' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/nested1) registered for path 'nested1' +Submodule 'foo1' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/submodule) registered for path 'sub1' +Submodule 'foo2' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/submodule) registered for path 'sub2' +Submodule 'foo3' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/submodule) registered for path 'sub3' +Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone2/nested1'... done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. -ok 19 - git -c submodule.recurse=true reset --keep: modified submodule updates submodule work tree - -expecting success of 7112.20 'git reset --keep --recurse-submodules: modified submodule updates submodule recursively': - prolog && - reset_work_tree_to_interested add_nested_sub && - ( - cd submodule_update && - git branch -t modify_sub1_recursively origin/modify_sub1_recursively && - $command modify_sub1_recursively && - test_superproject_content origin/modify_sub1_recursively && - test_submodule_content sub1 origin/modify_sub1_recursively && - test_submodule_content -C sub1 sub2 origin/modify_sub1_recursively - ) - -Cloning into 'submodule_update'... +Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone2/sub1'... done. -Switched to a new branch 'add_nested_sub' -Branch 'add_nested_sub' set up to track remote branch 'add_nested_sub' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone2/sub2'... done. -Submodule path 'sub1': checked out '8b3b3353ac8999eb3d8af8e947e0ef2a08a60008' -Submodule 'sub2' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub2) registered for path 'sub1/sub2' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1/sub2'... +Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone2/sub3'... done. -Submodule path 'sub1/sub2': checked out '27c5769ac0ebf2d924e34d3aa503345baaaa98b2' -Branch 'modify_sub1_recursively' set up to track remote branch 'modify_sub1_recursively' from 'origin'. -ok 20 - git reset --keep --recurse-submodules: modified submodule updates submodule recursively - -expecting success of 7112.21 'git reset --hard --recurse-submodules: added submodule is checked out': - prolog && - reset_work_tree_to_interested no_submodule && - ( - cd submodule_update && - git branch -t add_sub1 origin/add_sub1 && - $command add_sub1 && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... +Submodule path 'nested1': checked out 'b23f134787d96fae589a6b76da41f4db112fc8db' +Submodule path 'sub1': checked out '0c90624ab7f1aaa301d3bb79f60dcfed1ec4897f' +Submodule path 'sub2': checked out '0c90624ab7f1aaa301d3bb79f60dcfed1ec4897f' +Submodule path 'sub3': checked out '509f622a4f36a3e472affcf28fa959174f3dd5b5' +/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone2/.git/modules/foo1 +/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone2/.git/modules/foo2 +/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone2/.git/modules/foo3 +/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone2/.git/modules/nested1 +fatal: not a gitdir 'nested1/nested2/.git' +Entering 'nested1' +Submodule 'nested2' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/nested2) registered for path 'nested2' +Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone2/nested1/nested2'... done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -HEAD is now at 09bcf53 Add sub1 -ok 21 - git reset --hard --recurse-submodules: added submodule is checked out +Submodule path 'nested2': checked out '2e69c85de92bf5f316f3c67b5e492f287f5a6542' +Entering 'sub1' +Entering 'sub2' +Entering 'sub3' +/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone2/.git/modules/nested1/modules/nested2 +fatal: not a gitdir 'nested1/nested2/nested3/.git' +ok 5 - use "submodule foreach" to checkout 2nd level submodule -expecting success of 7112.22 'git reset --hard --recurse-submodules: added submodule is checked out in empty dir': - prolog && - reset_work_tree_to_interested no_submodule && - ( - cd submodule_update && - mkdir sub1 && - git branch -t add_sub1 origin/add_sub1 && - $command add_sub1 && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -HEAD is now at 09bcf53 Add sub1 -ok 22 - git reset --hard --recurse-submodules: added submodule is checked out in empty dir +expecting success of 7407.6 'use "foreach --recursive" to checkout all submodules': + ( + cd clone2 && + git submodule foreach --recursive "git submodule update --init" && + git rev-parse --resolve-git-dir nested1/nested2/nested3/.git && + git rev-parse --resolve-git-dir nested1/nested2/nested3/submodule/.git + ) -expecting success of 7112.23 'git reset --hard --recurse-submodules: replace tracked file with submodule checks out submodule': - prolog && - reset_work_tree_to_interested replace_sub1_with_file && - ( - cd submodule_update && - git branch -t replace_file_with_sub1 origin/replace_file_with_sub1 && - $command replace_file_with_sub1 && - test_superproject_content origin/replace_file_with_sub1 && - test_submodule_content sub1 origin/replace_file_with_sub1 - ) - -Cloning into 'submodule_update'... +Entering 'nested1' +Entering 'nested1/nested2' +Submodule 'nested3' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/nested3) registered for path 'nested3' +Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone2/nested1/nested2/nested3'... done. -Switched to a new branch 'replace_sub1_with_file' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -fatal: Needed a single revision -Branch 'replace_file_with_sub1' set up to track remote branch 'replace_file_with_sub1' from 'origin'. -HEAD is now at 8b6fdfc Revert "Replace sub1 with file" -ok 23 - git reset --hard --recurse-submodules: replace tracked file with submodule checks out submodule - -expecting success of 7112.24 'git reset --hard --recurse-submodules: replace directory with submodule': - prolog && - reset_work_tree_to_interested replace_sub1_with_directory && - ( - cd submodule_update && - git branch -t replace_directory_with_sub1 origin/replace_directory_with_sub1 && - $command replace_directory_with_sub1 && - test_superproject_content origin/replace_directory_with_sub1 && - test_submodule_content sub1 origin/replace_directory_with_sub1 - ) - -Cloning into 'submodule_update'... +Submodule path 'nested3': checked out '5ec83512b76a0b8170b899f8e643913c3e9b72d9' +Entering 'nested1/nested2/nested3' +Submodule 'submodule' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/submodule) registered for path 'submodule' +Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone2/nested1/nested2/nested3/submodule'... done. -Switched to a new branch 'replace_sub1_with_directory' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -fatal: Needed a single revision -Branch 'replace_directory_with_sub1' set up to track remote branch 'replace_directory_with_sub1' from 'origin'. -HEAD is now at a2e65d5 Revert "Replace sub1 with directory" -ok 24 - git reset --hard --recurse-submodules: replace directory with submodule +Submodule path 'submodule': checked out '509f622a4f36a3e472affcf28fa959174f3dd5b5' +Entering 'nested1/nested2/nested3/submodule' +Entering 'sub1' +Entering 'sub2' +Entering 'sub3' +/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone2/.git/modules/nested1/modules/nested2/modules/nested3 +/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone2/.git/modules/nested1/modules/nested2/modules/nested3/modules/submodule +ok 6 - use "foreach --recursive" to checkout all submodules -expecting success of 7112.25 'git reset --hard --recurse-submodules: nested submodules are checked out': - prolog && - reset_work_tree_to_interested no_submodule && - ( - cd submodule_update && - git branch -t modify_sub1_recursively origin/modify_sub1_recursively && - $command modify_sub1_recursively && - test_superproject_content origin/modify_sub1_recursively && - test_submodule_content sub1 origin/modify_sub1_recursively && - test_submodule_content -C sub1 sub2 origin/modify_sub1_recursively - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'modify_sub1_recursively' set up to track remote branch 'modify_sub1_recursively' from 'origin'. -HEAD is now at 953e869 update sub1, that updates nested sub -ok 25 - git reset --hard --recurse-submodules: nested submodules are checked out +expecting success of 7407.7 'test messages from "foreach --recursive"': + ( + cd clone2 && + git submodule foreach --recursive "true" > ../actual + ) && + test_i18ncmp expect actual -expecting success of 7112.26 'git reset --hard --recurse-submodules: removed submodule removes submodules working tree': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t remove_sub1 origin/remove_sub1 && - $command remove_sub1 && - test_superproject_content origin/remove_sub1 && - ! test -e sub1 && - test_must_fail git config -f .git/modules/sub1/config core.worktree - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. -HEAD is now at d6ba723 Revert "Add sub1" -ok 26 - git reset --hard --recurse-submodules: removed submodule removes submodules working tree +ok 7 - test messages from "foreach --recursive" -expecting success of 7112.27 'git reset --hard --recurse-submodules: removed submodule absorbs submodules .git directory': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t remove_sub1 origin/remove_sub1 && - replace_gitfile_with_git_dir sub1 && - rm -rf .git/modules && - $command remove_sub1 && - test_superproject_content origin/remove_sub1 && - ! test -e sub1 && - test_git_directory_exists sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. -Migrating git directory of 'sub1' from -'/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1/.git' to -'/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/.git/modules/sub1' -HEAD is now at d6ba723 Revert "Add sub1" -ok 27 - git reset --hard --recurse-submodules: removed submodule absorbs submodules .git directory +expecting success of 7407.8 'test messages from "foreach --recursive" from subdirectory': + ( + cd clone2 && + mkdir untracked && + cd untracked && + git submodule foreach --recursive >../../actual + ) && + test_i18ncmp expect actual -expecting success of 7112.28 'git reset --hard --recurse-submodules: replace submodule with a file': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_file origin/replace_sub1_with_file && - $command replace_sub1_with_file && - test_superproject_content origin/replace_sub1_with_file && - test -f sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -HEAD is now at 2364f5a Replace sub1 with file -ok 28 - git reset --hard --recurse-submodules: replace submodule with a file +ok 8 - test messages from "foreach --recursive" from subdirectory -checking known breakage of 7112.29 'git reset --hard --recurse-submodules: replace submodule with a file must fail with untracked files': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_file origin/replace_sub1_with_file && - : >sub1/untrackedfile && - test_must_fail $command replace_sub1_with_file && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 && - test -f sub1/untracked_file - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -HEAD is now at 2364f5a Replace sub1 with file -test_must_fail: command succeeded: git reset --hard --recurse-submodules replace_sub1_with_file -not ok 29 - git reset --hard --recurse-submodules: replace submodule with a file must fail with untracked files # TODO known breakage +expecting success of 7407.9 'test "submodule foreach --recursive" from subdirectory': + ( + cd clone2/untracked && + git submodule foreach --recursive "echo toplevel: \$toplevel name: \$name path: \$sm_path displaypath: \$displaypath hash: \$sha1" >../../actual + ) && + test_i18ncmp expect actual -expecting success of 7112.30 'git reset --hard --recurse-submodules: worktrees of nested submodules are removed': - prolog && - reset_work_tree_to_interested add_nested_sub && - ( - cd submodule_update && - git branch -t no_submodule origin/no_submodule && - $command no_submodule && - test_superproject_content origin/no_submodule && - ! test_path_is_dir sub1 && - test_must_fail git config -f .git/modules/sub1/config core.worktree && - test_must_fail git config -f .git/modules/sub1/modules/sub2/config core.worktree - ) - -Cloning into 'submodule_update'... +ok 9 - test "submodule foreach --recursive" from subdirectory + +expecting success of 7407.10 'test "foreach --quiet --recursive"': + ( + cd clone2 && + git submodule foreach -q --recursive "echo \$name-\$path" > ../actual + ) && + test_cmp expect actual + +ok 10 - test "foreach --quiet --recursive" + +expecting success of 7407.11 'use "update --recursive" to checkout all submodules': + git clone super clone3 && + ( + cd clone3 && + test_must_fail git rev-parse --resolve-git-dir sub1/.git && + test_must_fail git rev-parse --resolve-git-dir sub2/.git && + test_must_fail git rev-parse --resolve-git-dir sub3/.git && + test_must_fail git rev-parse --resolve-git-dir nested1/.git && + git submodule update --init --recursive && + git rev-parse --resolve-git-dir sub1/.git && + git rev-parse --resolve-git-dir sub2/.git && + git rev-parse --resolve-git-dir sub3/.git && + git rev-parse --resolve-git-dir nested1/.git && + git rev-parse --resolve-git-dir nested1/nested2/.git && + git rev-parse --resolve-git-dir nested1/nested2/nested3/.git && + git rev-parse --resolve-git-dir nested1/nested2/nested3/submodule/.git + ) + +Cloning into 'clone3'... done. -Switched to a new branch 'add_nested_sub' -Branch 'add_nested_sub' set up to track remote branch 'add_nested_sub' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +fatal: not a gitdir 'sub1/.git' +fatal: not a gitdir 'sub2/.git' +fatal: not a gitdir 'sub3/.git' +fatal: not a gitdir 'nested1/.git' +Submodule 'nested1' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/nested1) registered for path 'nested1' +Submodule 'foo1' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/submodule) registered for path 'sub1' +Submodule 'foo2' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/submodule) registered for path 'sub2' +Submodule 'foo3' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/submodule) registered for path 'sub3' +Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone3/nested1'... done. -Submodule path 'sub1': checked out '8b3b3353ac8999eb3d8af8e947e0ef2a08a60008' -Submodule 'sub2' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub2) registered for path 'sub1/sub2' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1/sub2'... +Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone3/sub1'... done. -Submodule path 'sub1/sub2': checked out '27c5769ac0ebf2d924e34d3aa503345baaaa98b2' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -HEAD is now at 27611a5 Base -Directory sub1 doesn't exist. -ok 30 - git reset --hard --recurse-submodules: worktrees of nested submodules are removed - -expecting success of 7112.31 'git reset --hard --recurse-submodules: modified submodule updates submodule work tree': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t modify_sub1 origin/modify_sub1 && - $command modify_sub1 && - test_superproject_content origin/modify_sub1 && - test_submodule_content sub1 origin/modify_sub1 - ) - -Cloning into 'submodule_update'... +Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone3/sub2'... done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone3/sub3'... done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. -HEAD is now at cb2bda7 Modify sub1 -ok 31 - git reset --hard --recurse-submodules: modified submodule updates submodule work tree - -expecting success of 7112.32 'git reset --hard --recurse-submodules: updating to a missing submodule commit fails': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t invalid_sub1 origin/invalid_sub1 && - test_must_fail $command invalid_sub1 2>err && - test_i18ngrep sub1 err && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... +Submodule path 'nested1': checked out 'b23f134787d96fae589a6b76da41f4db112fc8db' +Submodule 'nested2' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/nested2) registered for path 'nested1/nested2' +Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone3/nested1/nested2'... done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +Submodule path 'nested1/nested2': checked out '2e69c85de92bf5f316f3c67b5e492f287f5a6542' +Submodule 'nested3' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/nested3) registered for path 'nested1/nested2/nested3' +Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone3/nested1/nested2/nested3'... done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. -checking prerequisite: C_LOCALE_OUTPUT +Submodule path 'nested1/nested2/nested3': checked out '5ec83512b76a0b8170b899f8e643913c3e9b72d9' +Submodule 'submodule' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/submodule) registered for path 'nested1/nested2/nested3/submodule' +Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone3/nested1/nested2/nested3/submodule'... +done. +Submodule path 'nested1/nested2/nested3/submodule': checked out '509f622a4f36a3e472affcf28fa959174f3dd5b5' +Submodule path 'sub1': checked out '0c90624ab7f1aaa301d3bb79f60dcfed1ec4897f' +Submodule path 'sub2': checked out '0c90624ab7f1aaa301d3bb79f60dcfed1ec4897f' +Submodule path 'sub3': checked out '509f622a4f36a3e472affcf28fa959174f3dd5b5' +/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone3/.git/modules/foo1 +/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone3/.git/modules/foo2 +/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone3/.git/modules/foo3 +/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone3/.git/modules/nested1 +/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone3/.git/modules/nested1/modules/nested2 +/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone3/.git/modules/nested1/modules/nested2/modules/nested3 +/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone3/.git/modules/nested1/modules/nested2/modules/nested3/modules/submodule +ok 11 - use "update --recursive" to checkout all submodules -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false +expecting success of 7407.12 'test "status --recursive"': + ( + cd clone3 && + git submodule status --recursive > ../actual + ) && + test_cmp expect actual -) -prerequisite C_LOCALE_OUTPUT ok -error: Submodule 'sub1' could not be updated. -error: Submodule 'sub1' cannot checkout new HEAD. -fatal: Could not reset index file to revision 'invalid_sub1'. -ok 32 - git reset --hard --recurse-submodules: updating to a missing submodule commit fails +ok 12 - test "status --recursive" -expecting success of 7112.33 'git reset --hard --recurse-submodules: submodule branch is not changed, detach HEAD instead': - prolog && - reset_work_tree_to_interested add_sub1 && +expecting success of 7407.13 'ensure "status --cached --recursive" preserves the --cached flag': + ( + cd clone3 && ( - cd submodule_update && - git -C sub1 checkout -b keep_branch && - git -C sub1 rev-parse HEAD >expect && - git branch -t modify_sub1 origin/modify_sub1 && - $command modify_sub1 && - test_superproject_content origin/modify_sub1 && - test_submodule_content sub1 origin/modify_sub1 && - git -C sub1 rev-parse keep_branch >actual && - test_cmp expect actual && - test_must_fail git -C sub1 symbolic-ref HEAD - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Switched to a new branch 'keep_branch' -Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. -HEAD is now at cb2bda7 Modify sub1 -fatal: ref HEAD is not a symbolic ref -ok 33 - git reset --hard --recurse-submodules: submodule branch is not changed, detach HEAD instead + cd nested1/nested2 && + test_commit file2 + ) && + git submodule status --cached --recursive -- nested1 > ../actual + ) && + test_cmp expect actual -expecting success of 7112.34 'git reset --hard --recurse-submodules: added submodule does remove untracked unignored file with same name when forced': - prolog && - reset_work_tree_to_interested no_submodule && - ( - cd submodule_update && - git branch -t add_sub1 origin/add_sub1 && - >sub1 && - $command add_sub1 && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -HEAD is now at 09bcf53 Add sub1 -ok 34 - git reset --hard --recurse-submodules: added submodule does remove untracked unignored file with same name when forced +[detached HEAD 25d56d1] file2 + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file2.t +ok 13 - ensure "status --cached --recursive" preserves the --cached flag -expecting success of 7112.35 'git reset --hard --recurse-submodules: replace submodule with a directory': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && - $command replace_sub1_with_directory && - test_superproject_content origin/replace_sub1_with_directory - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -HEAD is now at cb28587 Replace sub1 with directory -ok 35 - git reset --hard --recurse-submodules: replace submodule with a directory +expecting success of 7407.14 'test "status --recursive" from sub directory': + ( + cd clone3 && + mkdir tmp && cd tmp && + git submodule status --recursive > ../../actual + ) && + test_cmp expect actual -expecting success of 7112.36 'git reset --hard --recurse-submodules: replace submodule containing a .git directory with a directory must fail': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && - replace_gitfile_with_git_dir sub1 && - rm -rf .git/modules/sub1 && - $command replace_sub1_with_directory && - test_superproject_content origin/replace_sub1_with_directory && - test_git_directory_exists sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -Migrating git directory of 'sub1' from -'/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1/.git' to -'/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/.git/modules/sub1' -HEAD is now at cb28587 Replace sub1 with directory -ok 36 - git reset --hard --recurse-submodules: replace submodule containing a .git directory with a directory must fail +ok 14 - test "status --recursive" from sub directory -expecting success of 7112.37 'git reset --hard --recurse-submodules: replace submodule with a file ignoring ignored files': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_file origin/replace_sub1_with_file && - : >sub1/expect && - $command replace_sub1_with_file && - test_superproject_content origin/replace_sub1_with_file - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -HEAD is now at 2364f5a Replace sub1 with file -ok 37 - git reset --hard --recurse-submodules: replace submodule with a file ignoring ignored files +expecting success of 7407.15 'use "git clone --recursive" to checkout all submodules': + git clone --recursive super clone4 && + ( + cd clone4 && + git rev-parse --resolve-git-dir .git && + git rev-parse --resolve-git-dir sub1/.git && + git rev-parse --resolve-git-dir sub2/.git && + git rev-parse --resolve-git-dir sub3/.git && + git rev-parse --resolve-git-dir nested1/.git && + git rev-parse --resolve-git-dir nested1/nested2/.git && + git rev-parse --resolve-git-dir nested1/nested2/nested3/.git && + git rev-parse --resolve-git-dir nested1/nested2/nested3/submodule/.git + ) -expecting success of 7112.38 'git reset --hard --recurse-submodules: modified submodule does update submodule work tree from invalid commit': - prolog && - reset_work_tree_to_interested invalid_sub1 && - ( - cd submodule_update && - git branch -t valid_sub1 origin/valid_sub1 && - $command valid_sub1 && - test_superproject_content origin/valid_sub1 && - test_submodule_content sub1 origin/valid_sub1 - ) - -Cloning into 'submodule_update'... +Cloning into 'clone4'... done. -Switched to a new branch 'invalid_sub1' -Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. -fatal: Needed a single revision -Branch 'valid_sub1' set up to track remote branch 'valid_sub1' from 'origin'. -HEAD is now at 3036e4e Revert "Invalid sub1 commit" -ok 38 - git reset --hard --recurse-submodules: modified submodule does update submodule work tree from invalid commit - -expecting success of 7112.39 'git reset --hard --recurse-submodules: updating submodules fixes .git links': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - git branch -t modify_sub1 origin/modify_sub1 && - echo "gitdir: bogus/path" >sub1/.git && - $command modify_sub1 && - test_superproject_content origin/modify_sub1 && - test_submodule_content sub1 origin/modify_sub1 - ) - -Cloning into 'submodule_update'... +Submodule 'nested1' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/nested1) registered for path 'nested1' +Submodule 'foo1' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/submodule) registered for path 'sub1' +Submodule 'foo2' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/submodule) registered for path 'sub2' +Submodule 'foo3' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/submodule) registered for path 'sub3' +Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone4/nested1'... done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone4/sub1'... done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. -HEAD is now at cb2bda7 Modify sub1 -ok 39 - git reset --hard --recurse-submodules: updating submodules fixes .git links - -expecting success of 7112.40 'git reset --hard --recurse-submodules: changed submodule worktree is reset': - prolog && - reset_work_tree_to_interested add_sub1 && - ( - cd submodule_update && - rm sub1/file1 && - : >sub1/new_file && - git -C sub1 add new_file && - $command HEAD && - test_path_is_file sub1/file1 && - test_path_is_missing sub1/new_file - ) - -Cloning into 'submodule_update'... +Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone4/sub2'... done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone4/sub3'... done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -HEAD is now at 09bcf53 Add sub1 -ok 40 - git reset --hard --recurse-submodules: changed submodule worktree is reset - -expecting success of 7112.41 'git_test_func: added submodule creates empty directory': - prolog && - reset_work_tree_to no_submodule && - ( - cd submodule_update && - git branch -t add_sub1 origin/add_sub1 && - $command add_sub1 && - test_superproject_content origin/add_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... +Submodule path 'nested1': checked out 'b23f134787d96fae589a6b76da41f4db112fc8db' +Submodule 'nested2' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/nested2) registered for path 'nested1/nested2' +Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone4/nested1/nested2'... done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +Submodule path 'nested1/nested2': checked out '2e69c85de92bf5f316f3c67b5e492f287f5a6542' +Submodule 'nested3' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/nested3) registered for path 'nested1/nested2/nested3' +Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone4/nested1/nested2/nested3'... done. -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/uninitialized_sub'... +Submodule path 'nested1/nested2/nested3': checked out '5ec83512b76a0b8170b899f8e643913c3e9b72d9' +Submodule 'submodule' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/submodule) registered for path 'nested1/nested2/nested3/submodule' +Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone4/nested1/nested2/nested3/submodule'... done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -ok 41 - git_test_func: added submodule creates empty directory +Submodule path 'nested1/nested2/nested3/submodule': checked out '509f622a4f36a3e472affcf28fa959174f3dd5b5' +Submodule path 'sub1': checked out '0c90624ab7f1aaa301d3bb79f60dcfed1ec4897f' +Submodule path 'sub2': checked out '0c90624ab7f1aaa301d3bb79f60dcfed1ec4897f' +Submodule path 'sub3': checked out '509f622a4f36a3e472affcf28fa959174f3dd5b5' +.git +/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone4/.git/modules/foo1 +/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone4/.git/modules/foo2 +/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone4/.git/modules/foo3 +/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone4/.git/modules/nested1 +/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone4/.git/modules/nested1/modules/nested2 +/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone4/.git/modules/nested1/modules/nested2/modules/nested3 +/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone4/.git/modules/nested1/modules/nested2/modules/nested3/modules/submodule +ok 15 - use "git clone --recursive" to checkout all submodules -expecting success of 7112.42 'git_test_func: added submodule leaves existing empty directory alone': - prolog && - reset_work_tree_to no_submodule && - ( - cd submodule_update && - mkdir sub1 && - git branch -t add_sub1 origin/add_sub1 && - $command add_sub1 && - test_superproject_content origin/add_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... +expecting success of 7407.16 'test "update --recursive" with a flag with spaces': + git clone super "common objects" && + git clone super clone5 && + ( + cd clone5 && + test_must_fail git rev-parse --resolve-git-dir d nested1/.git && + git submodule update --init --recursive --reference="$(dirname "$PWD")/common objects" && + git rev-parse --resolve-git-dir nested1/.git && + git rev-parse --resolve-git-dir nested1/nested2/.git && + git rev-parse --resolve-git-dir nested1/nested2/nested3/.git && + test -f .git/modules/nested1/objects/info/alternates && + test -f .git/modules/nested1/modules/nested2/objects/info/alternates && + test -f .git/modules/nested1/modules/nested2/modules/nested3/objects/info/alternates + ) + +Cloning into 'common objects'... done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +Cloning into 'clone5'... done. -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/uninitialized_sub'... +fatal: not a gitdir 'd' +Submodule 'nested1' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/nested1) registered for path 'nested1' +Submodule 'foo1' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/submodule) registered for path 'sub1' +Submodule 'foo2' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/submodule) registered for path 'sub2' +Submodule 'foo3' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/submodule) registered for path 'sub3' +Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone5/nested1'... done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -ok 42 - git_test_func: added submodule leaves existing empty directory alone - -expecting success of 7112.43 'git_test_func: replace tracked file with submodule creates empty directory': - prolog && - reset_work_tree_to replace_sub1_with_file && - ( - cd submodule_update && - git branch -t replace_file_with_sub1 origin/replace_file_with_sub1 && - $command replace_file_with_sub1 && - test_superproject_content origin/replace_file_with_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/replace_file_with_sub1 - ) - -Cloning into 'submodule_update'... +Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone5/sub1'... done. -Switched to a new branch 'replace_sub1_with_file' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -fatal: Needed a single revision -Branch 'replace_file_with_sub1' set up to track remote branch 'replace_file_with_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone5/sub2'... done. -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/uninitialized_sub'... +Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone5/sub3'... done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -ok 43 - git_test_func: replace tracked file with submodule creates empty directory - -expecting success of 7112.44 'git_test_func: replace directory with submodule': - prolog && - reset_work_tree_to replace_sub1_with_directory && - ( - cd submodule_update && - git branch -t replace_directory_with_sub1 origin/replace_directory_with_sub1 && - $command replace_directory_with_sub1 && - test_superproject_content origin/replace_directory_with_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/replace_directory_with_sub1 - ) - -Cloning into 'submodule_update'... +Submodule path 'nested1': checked out 'b23f134787d96fae589a6b76da41f4db112fc8db' +Submodule 'nested2' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/nested2) registered for path 'nested1/nested2' +Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone5/nested1/nested2'... done. -Switched to a new branch 'replace_sub1_with_directory' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -fatal: Needed a single revision -Branch 'replace_directory_with_sub1' set up to track remote branch 'replace_directory_with_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +Submodule path 'nested1/nested2': checked out '2e69c85de92bf5f316f3c67b5e492f287f5a6542' +Submodule 'nested3' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/nested3) registered for path 'nested1/nested2/nested3' +Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone5/nested1/nested2/nested3'... done. -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/uninitialized_sub'... +Submodule path 'nested1/nested2/nested3': checked out '5ec83512b76a0b8170b899f8e643913c3e9b72d9' +Submodule 'submodule' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/submodule) registered for path 'nested1/nested2/nested3/submodule' +Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone5/nested1/nested2/nested3/submodule'... done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -ok 44 - git_test_func: replace directory with submodule +Submodule path 'nested1/nested2/nested3/submodule': checked out '509f622a4f36a3e472affcf28fa959174f3dd5b5' +Submodule path 'sub1': checked out '0c90624ab7f1aaa301d3bb79f60dcfed1ec4897f' +Submodule path 'sub2': checked out '0c90624ab7f1aaa301d3bb79f60dcfed1ec4897f' +Submodule path 'sub3': checked out '509f622a4f36a3e472affcf28fa959174f3dd5b5' +/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone5/.git/modules/nested1 +/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone5/.git/modules/nested1/modules/nested2 +/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone5/.git/modules/nested1/modules/nested2/modules/nested3 +ok 16 - test "update --recursive" with a flag with spaces -expecting success of 7112.45 'git_test_func: removed submodule leaves submodule directory and its contents in place': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t remove_sub1 origin/remove_sub1 && - $command remove_sub1 && - test_superproject_content origin/remove_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. -warning: unable to rmdir 'sub1': Directory not empty -ok 45 - git_test_func: removed submodule leaves submodule directory and its contents in place +expecting success of 7407.17 'use "update --recursive nested1" to checkout all submodules rooted in nested1': + git clone super clone6 && + ( + cd clone6 && + test_must_fail git rev-parse --resolve-git-dir sub1/.git && + test_must_fail git rev-parse --resolve-git-dir sub2/.git && + test_must_fail git rev-parse --resolve-git-dir sub3/.git && + test_must_fail git rev-parse --resolve-git-dir nested1/.git && + git submodule update --init --recursive -- nested1 && + test_must_fail git rev-parse --resolve-git-dir sub1/.git && + test_must_fail git rev-parse --resolve-git-dir sub2/.git && + test_must_fail git rev-parse --resolve-git-dir sub3/.git && + git rev-parse --resolve-git-dir nested1/.git && + git rev-parse --resolve-git-dir nested1/nested2/.git && + git rev-parse --resolve-git-dir nested1/nested2/nested3/.git && + git rev-parse --resolve-git-dir nested1/nested2/nested3/submodule/.git + ) -expecting success of 7112.46 'git_test_func: removed submodule leaves submodule containing a .git directory alone': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t remove_sub1 origin/remove_sub1 && - replace_gitfile_with_git_dir sub1 && - $command remove_sub1 && - test_superproject_content origin/remove_sub1 && - test_git_directory_is_unchanged sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +Cloning into 'clone6'... done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. -warning: unable to rmdir 'sub1': Directory not empty -ok 46 - git_test_func: removed submodule leaves submodule containing a .git directory alone - -expecting success of 7112.47 'git_test_func: replace submodule with a directory must fail': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && - $command replace_sub1_with_directory test_must_fail && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... +fatal: not a gitdir 'sub1/.git' +fatal: not a gitdir 'sub2/.git' +fatal: not a gitdir 'sub3/.git' +fatal: not a gitdir 'nested1/.git' +Submodule 'nested1' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/nested1) registered for path 'nested1' +Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone6/nested1'... done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +Submodule path 'nested1': checked out 'b23f134787d96fae589a6b76da41f4db112fc8db' +Submodule 'nested2' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/nested2) registered for path 'nested1/nested2' +Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone6/nested1/nested2'... done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -error: Untracked working tree file 'sub1/file1' would be overwritten by merge. -fatal: Could not reset index file to revision 'replace_sub1_with_directory'. -ok 47 - git_test_func: replace submodule with a directory must fail - -expecting success of 7112.48 'git_test_func: replace submodule containing a .git directory with a directory must fail': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && - replace_gitfile_with_git_dir sub1 && - $command replace_sub1_with_directory test_must_fail && - test_superproject_content origin/add_sub1 && - test_git_directory_is_unchanged sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... +Submodule path 'nested1/nested2': checked out '2e69c85de92bf5f316f3c67b5e492f287f5a6542' +Submodule 'nested3' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/nested3) registered for path 'nested1/nested2/nested3' +Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone6/nested1/nested2/nested3'... done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +Submodule path 'nested1/nested2/nested3': checked out '5ec83512b76a0b8170b899f8e643913c3e9b72d9' +Submodule 'submodule' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/submodule) registered for path 'nested1/nested2/nested3/submodule' +Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone6/nested1/nested2/nested3/submodule'... done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -error: Untracked working tree file 'sub1/file1' would be overwritten by merge. -fatal: Could not reset index file to revision 'replace_sub1_with_directory'. -ok 48 - git_test_func: replace submodule containing a .git directory with a directory must fail +Submodule path 'nested1/nested2/nested3/submodule': checked out '509f622a4f36a3e472affcf28fa959174f3dd5b5' +fatal: not a gitdir 'sub1/.git' +fatal: not a gitdir 'sub2/.git' +fatal: not a gitdir 'sub3/.git' +/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone6/.git/modules/nested1 +/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone6/.git/modules/nested1/modules/nested2 +/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone6/.git/modules/nested1/modules/nested2/modules/nested3 +/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone6/.git/modules/nested1/modules/nested2/modules/nested3/modules/submodule +ok 17 - use "update --recursive nested1" to checkout all submodules rooted in nested1 -checking known breakage of 7112.49 'git_test_func: replace submodule with a file must fail': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_file origin/replace_sub1_with_file && - $command replace_sub1_with_file test_must_fail && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -test_must_fail: command succeeded: git reset --keep replace_sub1_with_file -not ok 49 - git_test_func: replace submodule with a file must fail # TODO known breakage +expecting success of 7407.18 'command passed to foreach retains notion of stdin': + ( + cd super && + git submodule foreach echo success >../expected && + yes | git submodule foreach "read y && test \"x\$y\" = xy && echo success" >../actual + ) && + test_cmp expected actual -checking known breakage of 7112.50 'git_test_func: replace submodule containing a .git directory with a file must fail': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_file origin/replace_sub1_with_file && - replace_gitfile_with_git_dir sub1 && - $command replace_sub1_with_file test_must_fail && - test_superproject_content origin/add_sub1 && - test_git_directory_is_unchanged sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -test_must_fail: command succeeded: git reset --keep replace_sub1_with_file -not ok 50 - git_test_func: replace submodule containing a .git directory with a file must fail # TODO known breakage +ok 18 - command passed to foreach retains notion of stdin -expecting success of 7112.51 'git_test_func: modified submodule does not update submodule work tree': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t modify_sub1 origin/modify_sub1 && - $command modify_sub1 && - test_superproject_content origin/modify_sub1 && - test_submodule_content sub1 origin/add_sub1 && - git submodule update && - test_submodule_content sub1 origin/modify_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. -Submodule path 'sub1': checked out '03da4ea88bb165bd26ee0b2e5c657f2858b23f53' -ok 51 - git_test_func: modified submodule does not update submodule work tree +expecting success of 7407.19 'command passed to foreach --recursive retains notion of stdin': + ( + cd clone2 && + git submodule foreach --recursive echo success >../expected && + yes | git submodule foreach --recursive "read y && test \"x\$y\" = xy && echo success" >../actual + ) && + test_cmp expected actual -expecting success of 7112.52 'git_test_func: modified submodule does not update submodule work tree to invalid commit': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t invalid_sub1 origin/invalid_sub1 && - $command invalid_sub1 && - test_superproject_content origin/invalid_sub1 && - test_submodule_content sub1 origin/add_sub1 && - test_must_fail git submodule update && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. -fatal: git upload-pack: not our ref 0123456789012345678901234567890123456789 -fatal: remote error: upload-pack: not our ref 0123456789012345678901234567890123456789 -Fetched in submodule path 'sub1', but it did not contain 0123456789012345678901234567890123456789. Direct fetching of that commit failed. -ok 52 - git_test_func: modified submodule does not update submodule work tree to invalid commit +ok 19 - command passed to foreach --recursive retains notion of stdin -expecting success of 7112.53 'git_test_func: modified submodule does not update submodule work tree from invalid commit': - prolog && - reset_work_tree_to invalid_sub1 && - ( - cd submodule_update && - git branch -t valid_sub1 origin/valid_sub1 && - $command valid_sub1 && - test_superproject_content origin/valid_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/valid_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'invalid_sub1' -Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. -fatal: Needed a single revision -Branch 'valid_sub1' set up to track remote branch 'valid_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -ok 53 - git_test_func: modified submodule does not update submodule work tree from invalid commit +expecting success of 7407.20 'multi-argument command passed to foreach is not shell-evaluated twice': + ( + cd super && + git submodule foreach "echo \\\"quoted\\\"" > ../expected && + git submodule foreach echo \"quoted\" > ../actual + ) && + test_cmp expected actual -expecting success of 7112.54 'git_test_func: added submodule doesn't remove untracked unignored file with same name': - prolog && - reset_work_tree_to no_submodule && - ( - cd submodule_update && - git branch -t add_sub1 origin/add_sub1 && - >sub1 && - $command add_sub1 test_must_fail && - test_superproject_content origin/no_submodule && - test_must_be_empty sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -error: Untracked working tree file 'sub1' would be overwritten by merge. -fatal: Could not reset index file to revision 'add_sub1'. -ok 54 - git_test_func: added submodule doesn't remove untracked unignored file with same name +ok 20 - multi-argument command passed to foreach is not shell-evaluated twice -expecting success of 7112.55 'git_test_func: added submodule creates empty directory': - prolog && - reset_work_tree_to no_submodule && - ( - cd submodule_update && - git branch -t add_sub1 origin/add_sub1 && - $command add_sub1 && - test_superproject_content origin/add_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -ok 55 - git_test_func: added submodule creates empty directory +expecting success of 7407.21 'option-like arguments passed to foreach commands are not lost': + ( + cd super && + git submodule foreach "echo be --quiet" > ../expected && + git submodule foreach echo be --quiet > ../actual + ) && + grep -sq -e "--quiet" expected && + test_cmp expected actual -expecting success of 7112.56 'git_test_func: added submodule leaves existing empty directory alone': - prolog && - reset_work_tree_to no_submodule && - ( - cd submodule_update && - mkdir sub1 && - git branch -t add_sub1 origin/add_sub1 && - $command add_sub1 && - test_superproject_content origin/add_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -ok 56 - git_test_func: added submodule leaves existing empty directory alone +ok 21 - option-like arguments passed to foreach commands are not lost -expecting success of 7112.57 'git_test_func: replace tracked file with submodule creates empty directory': - prolog && - reset_work_tree_to replace_sub1_with_file && - ( - cd submodule_update && - git branch -t replace_file_with_sub1 origin/replace_file_with_sub1 && - $command replace_file_with_sub1 && - test_superproject_content origin/replace_file_with_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/replace_file_with_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'replace_sub1_with_file' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -fatal: Needed a single revision -Branch 'replace_file_with_sub1' set up to track remote branch 'replace_file_with_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -ok 57 - git_test_func: replace tracked file with submodule creates empty directory +expecting success of 7407.22 'option-like arguments passed to foreach recurse correctly': + git -C clone2 submodule foreach --recursive "echo be --an-option" >expect && + git -C clone2 submodule foreach --recursive echo be --an-option >actual && + grep -e "--an-option" expect && + test_cmp expect actual -expecting success of 7112.58 'git_test_func: replace directory with submodule': - prolog && - reset_work_tree_to replace_sub1_with_directory && - ( - cd submodule_update && - git branch -t replace_directory_with_sub1 origin/replace_directory_with_sub1 && - $command replace_directory_with_sub1 && - test_superproject_content origin/replace_directory_with_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/replace_directory_with_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'replace_sub1_with_directory' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -fatal: Needed a single revision -Branch 'replace_directory_with_sub1' set up to track remote branch 'replace_directory_with_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -ok 58 - git_test_func: replace directory with submodule +be --an-option +be --an-option +be --an-option +be --an-option +be --an-option +be --an-option +be --an-option +ok 22 - option-like arguments passed to foreach recurse correctly -expecting success of 7112.59 'git_test_func: removed submodule leaves submodule directory and its contents in place': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t remove_sub1 origin/remove_sub1 && - $command remove_sub1 && - test_superproject_content origin/remove_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. -warning: unable to rmdir 'sub1': Directory not empty -ok 59 - git_test_func: removed submodule leaves submodule directory and its contents in place +# passed all 22 test(s) +1..22 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t7408-submodule-reference.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7408-submodule-reference/.git/ +expecting success of 7408.1 'setup': + git config --global protocol.file.allow always -expecting success of 7112.60 'git_test_func: removed submodule leaves submodule containing a .git directory alone': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t remove_sub1 origin/remove_sub1 && - replace_gitfile_with_git_dir sub1 && - $command remove_sub1 && - test_superproject_content origin/remove_sub1 && - test_git_directory_is_unchanged sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. -warning: unable to rmdir 'sub1': Directory not empty -ok 60 - git_test_func: removed submodule leaves submodule containing a .git directory alone +ok 1 - setup -expecting success of 7112.61 'git_test_func: replace submodule with a directory must fail': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && - $command replace_sub1_with_directory test_must_fail && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -error: Untracked working tree file 'sub1/file1' would be overwritten by merge. -fatal: Could not reset index file to revision 'replace_sub1_with_directory'. -ok 61 - git_test_func: replace submodule with a directory must fail +expecting success of 7408.2 'preparing first repository': + test_create_repo A && + ( + cd A && + echo first >file1 && + git add file1 && + git commit -m A-initial + ) -expecting success of 7112.62 'git_test_func: replace submodule containing a .git directory with a directory must fail': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && - replace_gitfile_with_git_dir sub1 && - $command replace_sub1_with_directory test_must_fail && - test_superproject_content origin/add_sub1 && - test_git_directory_is_unchanged sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -error: Untracked working tree file 'sub1/file1' would be overwritten by merge. -fatal: Could not reset index file to revision 'replace_sub1_with_directory'. -ok 62 - git_test_func: replace submodule containing a .git directory with a directory must fail +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7408-submodule-reference/A/.git/ +[master (root-commit) 3f492fa] A-initial + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file1 +ok 2 - preparing first repository -checking known breakage of 7112.63 'git_test_func: replace submodule with a file must fail': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_file origin/replace_sub1_with_file && - $command replace_sub1_with_file test_must_fail && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -test_must_fail: command succeeded: git reset --merge replace_sub1_with_file -not ok 63 - git_test_func: replace submodule with a file must fail # TODO known breakage +expecting success of 7408.3 'preparing second repository': + git clone A B && + ( + cd B && + echo second >file2 && + git add file2 && + git commit -m B-addition && + git repack -a -d && + git prune + ) -checking known breakage of 7112.64 'git_test_func: replace submodule containing a .git directory with a file must fail': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_file origin/replace_sub1_with_file && - replace_gitfile_with_git_dir sub1 && - $command replace_sub1_with_file test_must_fail && - test_superproject_content origin/add_sub1 && - test_git_directory_is_unchanged sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +Cloning into 'B'... done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -test_must_fail: command succeeded: git reset --merge replace_sub1_with_file -not ok 64 - git_test_func: replace submodule containing a .git directory with a file must fail # TODO known breakage +[master c9a83e7] B-addition + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file2 +ok 3 - preparing second repository -expecting success of 7112.65 'git_test_func: modified submodule does not update submodule work tree': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t modify_sub1 origin/modify_sub1 && - $command modify_sub1 && - test_superproject_content origin/modify_sub1 && - test_submodule_content sub1 origin/add_sub1 && - git submodule update && - test_submodule_content sub1 origin/modify_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. -Submodule path 'sub1': checked out '03da4ea88bb165bd26ee0b2e5c657f2858b23f53' -ok 65 - git_test_func: modified submodule does not update submodule work tree +expecting success of 7408.4 'preparing superproject': + test_create_repo super && + ( + cd super && + echo file >file && + git add file && + git commit -m B-super-initial + ) -expecting success of 7112.66 'git_test_func: modified submodule does not update submodule work tree to invalid commit': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t invalid_sub1 origin/invalid_sub1 && - $command invalid_sub1 && - test_superproject_content origin/invalid_sub1 && - test_submodule_content sub1 origin/add_sub1 && - test_must_fail git submodule update && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. -fatal: git upload-pack: not our ref 0123456789012345678901234567890123456789 -fatal: remote error: upload-pack: not our ref 0123456789012345678901234567890123456789 -Fetched in submodule path 'sub1', but it did not contain 0123456789012345678901234567890123456789. Direct fetching of that commit failed. -ok 66 - git_test_func: modified submodule does not update submodule work tree to invalid commit +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7408-submodule-reference/super/.git/ +[master (root-commit) 0776138] B-super-initial + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file +ok 4 - preparing superproject -expecting success of 7112.67 'git_test_func: modified submodule does not update submodule work tree from invalid commit': - prolog && - reset_work_tree_to invalid_sub1 && - ( - cd submodule_update && - git branch -t valid_sub1 origin/valid_sub1 && - $command valid_sub1 && - test_superproject_content origin/valid_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/valid_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'invalid_sub1' -Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. -fatal: Needed a single revision -Branch 'valid_sub1' set up to track remote branch 'valid_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -ok 67 - git_test_func: modified submodule does not update submodule work tree from invalid commit +expecting success of 7408.5 'submodule add --reference uses alternates': + ( + cd super && + git submodule add --reference ../B "file://$base_dir/A" sub && + git commit -m B-super-added && + git repack -ad + ) && + test_alternate_is_used super/.git/modules/sub/objects/info/alternates super/sub -expecting success of 7112.68 'git_test_func: added submodule doesn't remove untracked unignored file with same name': - prolog && - reset_work_tree_to no_submodule && - ( - cd submodule_update && - git branch -t add_sub1 origin/add_sub1 && - >sub1 && - $command add_sub1 test_must_fail && - test_superproject_content origin/no_submodule && - test_must_be_empty sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -error: Untracked working tree file 'sub1' would be overwritten by merge. -fatal: Could not reset index file to revision 'add_sub1'. -ok 68 - git_test_func: added submodule doesn't remove untracked unignored file with same name +Cloning into '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/super/sub'... +[master c19e902] B-super-added + Author: A U Thor + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 sub +ok 5 - submodule add --reference uses alternates -expecting success of 7112.69 'git_test_func: added submodule creates empty directory': - prolog && - reset_work_tree_to no_submodule && - ( - cd submodule_update && - git branch -t add_sub1 origin/add_sub1 && - $command add_sub1 && - test_superproject_content origin/add_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -HEAD is now at 09bcf53 Add sub1 -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -ok 69 - git_test_func: added submodule creates empty directory +expecting success of 7408.6 'submodule add --reference with --dissociate does not use alternates': + ( + cd super && + git submodule add --reference ../B --dissociate "file://$base_dir/A" sub-dissociate && + git commit -m B-super-added && + git repack -ad + ) && + test_path_is_missing super/.git/modules/sub-dissociate/objects/info/alternates -expecting success of 7112.70 'git_test_func: added submodule leaves existing empty directory alone': - prolog && - reset_work_tree_to no_submodule && - ( - cd submodule_update && - mkdir sub1 && - git branch -t add_sub1 origin/add_sub1 && - $command add_sub1 && - test_superproject_content origin/add_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -HEAD is now at 09bcf53 Add sub1 -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -ok 70 - git_test_func: added submodule leaves existing empty directory alone +Cloning into '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/super/sub-dissociate'... +[master 5dcb138] B-super-added + Author: A U Thor + 2 files changed, 4 insertions(+) + create mode 160000 sub-dissociate +ok 6 - submodule add --reference with --dissociate does not use alternates -expecting success of 7112.71 'git_test_func: replace tracked file with submodule creates empty directory': - prolog && - reset_work_tree_to replace_sub1_with_file && - ( - cd submodule_update && - git branch -t replace_file_with_sub1 origin/replace_file_with_sub1 && - $command replace_file_with_sub1 && - test_superproject_content origin/replace_file_with_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/replace_file_with_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'replace_sub1_with_file' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -fatal: Needed a single revision -Branch 'replace_file_with_sub1' set up to track remote branch 'replace_file_with_sub1' from 'origin'. -HEAD is now at 8b6fdfc Revert "Replace sub1 with file" -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -ok 71 - git_test_func: replace tracked file with submodule creates empty directory +expecting success of 7408.7 'that reference gets used with add': + ( + cd super/sub && + echo "0 objects, 0 kilobytes" >expected && + git count-objects >current && + diff expected current + ) -expecting success of 7112.72 'git_test_func: replace directory with submodule': - prolog && - reset_work_tree_to replace_sub1_with_directory && - ( - cd submodule_update && - git branch -t replace_directory_with_sub1 origin/replace_directory_with_sub1 && - $command replace_directory_with_sub1 && - test_superproject_content origin/replace_directory_with_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/replace_directory_with_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'replace_sub1_with_directory' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -fatal: Needed a single revision -Branch 'replace_directory_with_sub1' set up to track remote branch 'replace_directory_with_sub1' from 'origin'. -HEAD is now at a2e65d5 Revert "Replace sub1 with directory" -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/uninitialized_sub'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -ok 72 - git_test_func: replace directory with submodule +ok 7 - that reference gets used with add -expecting success of 7112.73 'git_test_func: removed submodule leaves submodule directory and its contents in place': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t remove_sub1 origin/remove_sub1 && - $command remove_sub1 && - test_superproject_content origin/remove_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. -warning: unable to rmdir 'sub1': Directory not empty -HEAD is now at d6ba723 Revert "Add sub1" -ok 73 - git_test_func: removed submodule leaves submodule directory and its contents in place +expecting success of 7408.8 'updating superproject keeps alternates': + test_when_finished "rm -rf super-clone" && + git clone super super-clone && + git -C super-clone submodule update --init --reference ../B && + test_alternate_is_used super-clone/.git/modules/sub/objects/info/alternates super-clone/sub -expecting success of 7112.74 'git_test_func: removed submodule leaves submodule containing a .git directory alone': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t remove_sub1 origin/remove_sub1 && - replace_gitfile_with_git_dir sub1 && - $command remove_sub1 && - test_superproject_content origin/remove_sub1 && - test_git_directory_is_unchanged sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +Cloning into 'super-clone'... done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. -warning: unable to rmdir 'sub1': Directory not empty -HEAD is now at d6ba723 Revert "Add sub1" -ok 74 - git_test_func: removed submodule leaves submodule containing a .git directory alone +Submodule 'sub' (file:///build/git-2.30.2/t/trash directory.t7408-submodule-reference/A) registered for path 'sub' +Submodule 'sub-dissociate' (file:///build/git-2.30.2/t/trash directory.t7408-submodule-reference/A) registered for path 'sub-dissociate' +Cloning into '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/super-clone/sub'... +Cloning into '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/super-clone/sub-dissociate'... +Submodule path 'sub': checked out '3f492fa355d2b55bd9e19f5535ac5e32c035e10f' +Submodule path 'sub-dissociate': checked out '3f492fa355d2b55bd9e19f5535ac5e32c035e10f' +ok 8 - updating superproject keeps alternates -checking known breakage of 7112.75 'git_test_func: replace submodule with a directory must fail': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && - $command replace_sub1_with_directory test_must_fail && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -warning: unable to rmdir 'sub1': Directory not empty -HEAD is now at cb28587 Replace sub1 with directory -test_must_fail: command succeeded: git reset --hard replace_sub1_with_directory -not ok 75 - git_test_func: replace submodule with a directory must fail # TODO known breakage +expecting success of 7408.9 'updating superproject with --dissociate does not keep alternates': + test_when_finished "rm -rf super-clone" && + git clone super super-clone && + git -C super-clone submodule update --init --reference ../B --dissociate && + test_path_is_missing super-clone/.git/modules/sub/objects/info/alternates -checking known breakage of 7112.76 'git_test_func: replace submodule containing a .git directory with a directory must fail': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && - replace_gitfile_with_git_dir sub1 && - $command replace_sub1_with_directory test_must_fail && - test_superproject_content origin/add_sub1 && - test_git_directory_is_unchanged sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... +Cloning into 'super-clone'... done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +Submodule 'sub' (file:///build/git-2.30.2/t/trash directory.t7408-submodule-reference/A) registered for path 'sub' +Submodule 'sub-dissociate' (file:///build/git-2.30.2/t/trash directory.t7408-submodule-reference/A) registered for path 'sub-dissociate' +Cloning into '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/super-clone/sub'... +Cloning into '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/super-clone/sub-dissociate'... +Submodule path 'sub': checked out '3f492fa355d2b55bd9e19f5535ac5e32c035e10f' +Submodule path 'sub-dissociate': checked out '3f492fa355d2b55bd9e19f5535ac5e32c035e10f' +ok 9 - updating superproject with --dissociate does not keep alternates + +expecting success of 7408.10 'submodules use alternates when cloning a superproject': + test_when_finished "rm -rf super-clone" && + git clone --reference super --recursive super super-clone && + ( + cd super-clone && + # test superproject has alternates setup correctly + test_alternate_is_used .git/objects/info/alternates . && + # test submodule has correct setup + test_alternate_is_used .git/modules/sub/objects/info/alternates sub + ) + +Cloning into 'super-clone'... done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. -warning: unable to rmdir 'sub1': Directory not empty -HEAD is now at cb28587 Replace sub1 with directory -test_must_fail: command succeeded: git reset --hard replace_sub1_with_directory -not ok 76 - git_test_func: replace submodule containing a .git directory with a directory must fail # TODO known breakage +Submodule 'sub' (file:///build/git-2.30.2/t/trash directory.t7408-submodule-reference/A) registered for path 'sub' +Submodule 'sub-dissociate' (file:///build/git-2.30.2/t/trash directory.t7408-submodule-reference/A) registered for path 'sub-dissociate' +Cloning into '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/super-clone/sub'... +Cloning into '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/super-clone/sub-dissociate'... +Submodule path 'sub': checked out '3f492fa355d2b55bd9e19f5535ac5e32c035e10f' +Submodule path 'sub-dissociate': checked out '3f492fa355d2b55bd9e19f5535ac5e32c035e10f' +ok 10 - submodules use alternates when cloning a superproject -checking known breakage of 7112.77 'git_test_func: replace submodule with a file must fail': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_file origin/replace_sub1_with_file && - $command replace_sub1_with_file test_must_fail && - test_superproject_content origin/add_sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... +expecting success of 7408.11 'missing submodule alternate fails clone and submodule update': + test_when_finished "rm -rf super-clone" && + git clone super super2 && + test_must_fail git clone --recursive --reference super2 super2 super-clone && + ( + cd super-clone && + # test superproject has alternates setup correctly + test_alternate_is_used .git/objects/info/alternates . && + # update of the submodule succeeds + test_must_fail git submodule update --init && + # and we have no alternates: + test_path_is_missing .git/modules/sub/objects/info/alternates && + test_path_is_missing sub/file1 + ) + +Cloning into 'super2'... done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +Cloning into 'super-clone'... done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -HEAD is now at 2364f5a Replace sub1 with file -test_must_fail: command succeeded: git reset --hard replace_sub1_with_file -not ok 77 - git_test_func: replace submodule with a file must fail # TODO known breakage +Submodule 'sub' (file:///build/git-2.30.2/t/trash directory.t7408-submodule-reference/A) registered for path 'sub' +Submodule 'sub-dissociate' (file:///build/git-2.30.2/t/trash directory.t7408-submodule-reference/A) registered for path 'sub-dissociate' +hint: An alternate computed from a superproject's alternate is invalid. +hint: To allow Git to clone without an alternate in such a case, set +hint: submodule.alternateErrorStrategy to 'info' or, equivalently, clone with +hint: '--reference-if-able' instead of '--reference'. +fatal: submodule 'sub' cannot add alternate: path '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/super2/.git/modules/sub/' does not exist +Failed to clone 'sub'. Retry scheduled +hint: An alternate computed from a superproject's alternate is invalid. +hint: To allow Git to clone without an alternate in such a case, set +hint: submodule.alternateErrorStrategy to 'info' or, equivalently, clone with +hint: '--reference-if-able' instead of '--reference'. +fatal: submodule 'sub-dissociate' cannot add alternate: path '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/super2/.git/modules/sub-dissociate/' does not exist +Failed to clone 'sub-dissociate'. Retry scheduled +hint: An alternate computed from a superproject's alternate is invalid. +hint: To allow Git to clone without an alternate in such a case, set +hint: submodule.alternateErrorStrategy to 'info' or, equivalently, clone with +hint: '--reference-if-able' instead of '--reference'. +fatal: submodule 'sub' cannot add alternate: path '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/super2/.git/modules/sub/' does not exist +Failed to clone 'sub' a second time, aborting +hint: An alternate computed from a superproject's alternate is invalid. +hint: To allow Git to clone without an alternate in such a case, set +hint: submodule.alternateErrorStrategy to 'info' or, equivalently, clone with +hint: '--reference-if-able' instead of '--reference'. +fatal: submodule 'sub' cannot add alternate: path '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/super2/.git/modules/sub/' does not exist +Failed to clone 'sub'. Retry scheduled +hint: An alternate computed from a superproject's alternate is invalid. +hint: To allow Git to clone without an alternate in such a case, set +hint: submodule.alternateErrorStrategy to 'info' or, equivalently, clone with +hint: '--reference-if-able' instead of '--reference'. +fatal: submodule 'sub-dissociate' cannot add alternate: path '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/super2/.git/modules/sub-dissociate/' does not exist +Failed to clone 'sub-dissociate'. Retry scheduled +hint: An alternate computed from a superproject's alternate is invalid. +hint: To allow Git to clone without an alternate in such a case, set +hint: submodule.alternateErrorStrategy to 'info' or, equivalently, clone with +hint: '--reference-if-able' instead of '--reference'. +fatal: submodule 'sub' cannot add alternate: path '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/super2/.git/modules/sub/' does not exist +Failed to clone 'sub' a second time, aborting +ok 11 - missing submodule alternate fails clone and submodule update + +expecting success of 7408.12 'ignoring missing submodule alternates passes clone and submodule update': + test_when_finished "rm -rf super-clone" && + git clone --reference-if-able super2 --recursive super2 super-clone && + ( + cd super-clone && + # test superproject has alternates setup correctly + test_alternate_is_used .git/objects/info/alternates . && + # update of the submodule succeeds + git submodule update --init && + # and we have no alternates: + test_path_is_missing .git/modules/sub/objects/info/alternates && + test_path_is_file sub/file1 + ) -checking known breakage of 7112.78 'git_test_func: replace submodule containing a .git directory with a file must fail': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t replace_sub1_with_file origin/replace_sub1_with_file && - replace_gitfile_with_git_dir sub1 && - $command replace_sub1_with_file test_must_fail && - test_superproject_content origin/add_sub1 && - test_git_directory_is_unchanged sub1 && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +Cloning into 'super-clone'... done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. -HEAD is now at 2364f5a Replace sub1 with file -test_must_fail: command succeeded: git reset --hard replace_sub1_with_file -not ok 78 - git_test_func: replace submodule containing a .git directory with a file must fail # TODO known breakage +Submodule 'sub' (file:///build/git-2.30.2/t/trash directory.t7408-submodule-reference/A) registered for path 'sub' +Submodule 'sub-dissociate' (file:///build/git-2.30.2/t/trash directory.t7408-submodule-reference/A) registered for path 'sub-dissociate' +submodule 'sub' cannot add alternate: path '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/super2/.git/modules/sub/' does not exist +Cloning into '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/super-clone/sub'... +submodule 'sub-dissociate' cannot add alternate: path '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/super2/.git/modules/sub-dissociate/' does not exist +Cloning into '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/super-clone/sub-dissociate'... +Submodule path 'sub': checked out '3f492fa355d2b55bd9e19f5535ac5e32c035e10f' +Submodule path 'sub-dissociate': checked out '3f492fa355d2b55bd9e19f5535ac5e32c035e10f' +ok 12 - ignoring missing submodule alternates passes clone and submodule update -expecting success of 7112.79 'git_test_func: modified submodule does not update submodule work tree': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t modify_sub1 origin/modify_sub1 && - $command modify_sub1 && - test_superproject_content origin/modify_sub1 && - test_submodule_content sub1 origin/add_sub1 && - git submodule update && - test_submodule_content sub1 origin/modify_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... -done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. -HEAD is now at cb2bda7 Modify sub1 -Submodule path 'sub1': checked out '03da4ea88bb165bd26ee0b2e5c657f2858b23f53' -ok 79 - git_test_func: modified submodule does not update submodule work tree +expecting success of 7408.13 'preparing second superproject with a nested submodule plus partial clone': + test_create_repo supersuper && + ( + cd supersuper && + echo "I am super super." >file && + git add file && + git commit -m B-super-super-initial && + git submodule add "file://$base_dir/super" subwithsub && + git commit -m B-super-super-added && + git submodule update --init --recursive && + git repack -ad + ) && + git clone supersuper supersuper2 && + ( + cd supersuper2 && + git submodule update --init + ) -expecting success of 7112.80 'git_test_func: modified submodule does not update submodule work tree to invalid commit': - prolog && - reset_work_tree_to add_sub1 && - ( - cd submodule_update && - git branch -t invalid_sub1 origin/invalid_sub1 && - $command invalid_sub1 && - test_superproject_content origin/invalid_sub1 && - test_submodule_content sub1 origin/add_sub1 && - test_must_fail git submodule update && - test_submodule_content sub1 origin/add_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'add_sub1' -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7408-submodule-reference/supersuper/.git/ +[master (root-commit) c928525] B-super-super-initial + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file +Cloning into '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/supersuper/subwithsub'... +[master 1964b89] B-super-super-added + Author: A U Thor + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 subwithsub +Submodule 'sub' (file:///build/git-2.30.2/t/trash directory.t7408-submodule-reference/A) registered for path 'subwithsub/sub' +Submodule 'sub-dissociate' (file:///build/git-2.30.2/t/trash directory.t7408-submodule-reference/A) registered for path 'subwithsub/sub-dissociate' +Cloning into '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/supersuper/subwithsub/sub'... +Cloning into '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/supersuper/subwithsub/sub-dissociate'... +Submodule path 'subwithsub/sub': checked out '3f492fa355d2b55bd9e19f5535ac5e32c035e10f' +Submodule path 'subwithsub/sub-dissociate': checked out '3f492fa355d2b55bd9e19f5535ac5e32c035e10f' +Cloning into 'supersuper2'... done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. -HEAD is now at e6169bf Invalid sub1 commit -fatal: git upload-pack: not our ref 0123456789012345678901234567890123456789 -fatal: remote error: upload-pack: not our ref 0123456789012345678901234567890123456789 -Fetched in submodule path 'sub1', but it did not contain 0123456789012345678901234567890123456789. Direct fetching of that commit failed. -ok 80 - git_test_func: modified submodule does not update submodule work tree to invalid commit +Submodule 'subwithsub' (file:///build/git-2.30.2/t/trash directory.t7408-submodule-reference/super) registered for path 'subwithsub' +Cloning into '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/supersuper2/subwithsub'... +Submodule path 'subwithsub': checked out '5dcb13829d0ea3a902800d87e74675154e078d3c' +ok 13 - preparing second superproject with a nested submodule plus partial clone -expecting success of 7112.81 'git_test_func: modified submodule does not update submodule work tree from invalid commit': - prolog && - reset_work_tree_to invalid_sub1 && - ( - cd submodule_update && - git branch -t valid_sub1 origin/valid_sub1 && - $command valid_sub1 && - test_superproject_content origin/valid_sub1 && - test_dir_is_empty sub1 && - git submodule update --init --recursive && - test_submodule_content sub1 origin/valid_sub1 - ) - -Cloning into 'submodule_update'... -done. -Switched to a new branch 'invalid_sub1' -Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. -fatal: Needed a single revision -Branch 'valid_sub1' set up to track remote branch 'valid_sub1' from 'origin'. -HEAD is now at 3036e4e Revert "Invalid sub1 commit" -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' -Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +expecting success of 7408.14 'nested submodule alternate in works and is actually used': + test_when_finished "rm -rf supersuper-clone" && + git clone --recursive --reference supersuper supersuper supersuper-clone && + ( + cd supersuper-clone && + # test superproject has alternates setup correctly + test_alternate_is_used .git/objects/info/alternates . && + # immediate submodule has alternate: + test_alternate_is_used .git/modules/subwithsub/objects/info/alternates subwithsub && + # nested submodule also has alternate: + test_alternate_is_used .git/modules/subwithsub/modules/sub/objects/info/alternates subwithsub/sub + ) + +Cloning into 'supersuper-clone'... done. -Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/uninitialized_sub'... +Submodule 'subwithsub' (file:///build/git-2.30.2/t/trash directory.t7408-submodule-reference/super) registered for path 'subwithsub' +Cloning into '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/supersuper-clone/subwithsub'... +Submodule path 'subwithsub': checked out '5dcb13829d0ea3a902800d87e74675154e078d3c' +Submodule 'sub' (file:///build/git-2.30.2/t/trash directory.t7408-submodule-reference/A) registered for path 'subwithsub/sub' +Submodule 'sub-dissociate' (file:///build/git-2.30.2/t/trash directory.t7408-submodule-reference/A) registered for path 'subwithsub/sub-dissociate' +Cloning into '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/supersuper-clone/subwithsub/sub'... +Cloning into '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/supersuper-clone/subwithsub/sub-dissociate'... +Submodule path 'subwithsub/sub': checked out '3f492fa355d2b55bd9e19f5535ac5e32c035e10f' +Submodule path 'subwithsub/sub-dissociate': checked out '3f492fa355d2b55bd9e19f5535ac5e32c035e10f' +ok 14 - nested submodule alternate in works and is actually used + +expecting success of 7408.15 'missing nested submodule alternate fails clone and submodule update': + test_when_finished "rm -rf supersuper-clone" && + test_must_fail git clone --recursive --reference supersuper2 supersuper2 supersuper-clone && + ( + cd supersuper-clone && + check_that_two_of_three_alternates_are_used && + # update of the submodule fails + test_must_fail git submodule update --init --recursive + ) + +Cloning into 'supersuper-clone'... done. -Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' -ok 81 - git_test_func: modified submodule does not update submodule work tree from invalid commit +Submodule 'subwithsub' (file:///build/git-2.30.2/t/trash directory.t7408-submodule-reference/super) registered for path 'subwithsub' +Cloning into '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/supersuper-clone/subwithsub'... +Submodule path 'subwithsub': checked out '5dcb13829d0ea3a902800d87e74675154e078d3c' +Submodule 'sub' (file:///build/git-2.30.2/t/trash directory.t7408-submodule-reference/A) registered for path 'subwithsub/sub' +Submodule 'sub-dissociate' (file:///build/git-2.30.2/t/trash directory.t7408-submodule-reference/A) registered for path 'subwithsub/sub-dissociate' +hint: An alternate computed from a superproject's alternate is invalid. +hint: To allow Git to clone without an alternate in such a case, set +hint: submodule.alternateErrorStrategy to 'info' or, equivalently, clone with +hint: '--reference-if-able' instead of '--reference'. +fatal: submodule 'sub' cannot add alternate: path '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/supersuper2/.git/modules/subwithsub/modules/sub/' does not exist +Failed to clone 'sub'. Retry scheduled +hint: An alternate computed from a superproject's alternate is invalid. +hint: To allow Git to clone without an alternate in such a case, set +hint: submodule.alternateErrorStrategy to 'info' or, equivalently, clone with +hint: '--reference-if-able' instead of '--reference'. +fatal: submodule 'sub-dissociate' cannot add alternate: path '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/supersuper2/.git/modules/subwithsub/modules/sub-dissociate/' does not exist +Failed to clone 'sub-dissociate'. Retry scheduled +hint: An alternate computed from a superproject's alternate is invalid. +hint: To allow Git to clone without an alternate in such a case, set +hint: submodule.alternateErrorStrategy to 'info' or, equivalently, clone with +hint: '--reference-if-able' instead of '--reference'. +fatal: submodule 'sub' cannot add alternate: path '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/supersuper2/.git/modules/subwithsub/modules/sub/' does not exist +Failed to clone 'sub' a second time, aborting +Failed to recurse into submodule path 'subwithsub' +hint: An alternate computed from a superproject's alternate is invalid. +hint: To allow Git to clone without an alternate in such a case, set +hint: submodule.alternateErrorStrategy to 'info' or, equivalently, clone with +hint: '--reference-if-able' instead of '--reference'. +fatal: submodule 'sub' cannot add alternate: path '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/supersuper2/.git/modules/subwithsub/modules/sub/' does not exist +Failed to clone 'sub'. Retry scheduled +hint: An alternate computed from a superproject's alternate is invalid. +hint: To allow Git to clone without an alternate in such a case, set +hint: submodule.alternateErrorStrategy to 'info' or, equivalently, clone with +hint: '--reference-if-able' instead of '--reference'. +fatal: submodule 'sub-dissociate' cannot add alternate: path '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/supersuper2/.git/modules/subwithsub/modules/sub-dissociate/' does not exist +Failed to clone 'sub-dissociate'. Retry scheduled +hint: An alternate computed from a superproject's alternate is invalid. +hint: To allow Git to clone without an alternate in such a case, set +hint: submodule.alternateErrorStrategy to 'info' or, equivalently, clone with +hint: '--reference-if-able' instead of '--reference'. +fatal: submodule 'sub' cannot add alternate: path '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/supersuper2/.git/modules/subwithsub/modules/sub/' does not exist +Failed to clone 'sub' a second time, aborting +Failed to recurse into submodule path 'subwithsub' +ok 15 - missing nested submodule alternate fails clone and submodule update -expecting success of 7112.82 'git_test_func: added submodule does remove untracked unignored file with same name when forced': - prolog && - reset_work_tree_to no_submodule && - ( - cd submodule_update && - git branch -t add_sub1 origin/add_sub1 && - >sub1 && - $command add_sub1 && - test_superproject_content origin/add_sub1 && - test_dir_is_empty sub1 - ) - -Cloning into 'submodule_update'... +expecting success of 7408.16 'missing nested submodule alternate in --reference-if-able mode': + test_when_finished "rm -rf supersuper-clone" && + git clone --recursive --reference-if-able supersuper2 supersuper2 supersuper-clone && + ( + cd supersuper-clone && + check_that_two_of_three_alternates_are_used && + # update of the submodule succeeds + git submodule update --init --recursive + ) + +Cloning into 'supersuper-clone'... done. -Switched to a new branch 'no_submodule' -Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. -Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. -HEAD is now at 09bcf53 Add sub1 -ok 82 - git_test_func: added submodule does remove untracked unignored file with same name when forced +Submodule 'subwithsub' (file:///build/git-2.30.2/t/trash directory.t7408-submodule-reference/super) registered for path 'subwithsub' +Cloning into '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/supersuper-clone/subwithsub'... +Submodule path 'subwithsub': checked out '5dcb13829d0ea3a902800d87e74675154e078d3c' +Submodule 'sub' (file:///build/git-2.30.2/t/trash directory.t7408-submodule-reference/A) registered for path 'subwithsub/sub' +Submodule 'sub-dissociate' (file:///build/git-2.30.2/t/trash directory.t7408-submodule-reference/A) registered for path 'subwithsub/sub-dissociate' +submodule 'sub' cannot add alternate: path '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/supersuper2/.git/modules/subwithsub/modules/sub/' does not exist +Cloning into '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/supersuper-clone/subwithsub/sub'... +submodule 'sub-dissociate' cannot add alternate: path '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/supersuper2/.git/modules/subwithsub/modules/sub-dissociate/' does not exist +Cloning into '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/supersuper-clone/subwithsub/sub-dissociate'... +Submodule path 'subwithsub/sub': checked out '3f492fa355d2b55bd9e19f5535ac5e32c035e10f' +Submodule path 'subwithsub/sub-dissociate': checked out '3f492fa355d2b55bd9e19f5535ac5e32c035e10f' +ok 16 - missing nested submodule alternate in --reference-if-able mode -# still have 13 known breakage(s) -# passed all remaining 69 test(s) -1..82 +# passed all 16 test(s) +1..16 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' *** t7409-submodule-detached-work-tree.sh *** @@ -355636,407 +350290,3695 @@ 1..20 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t7408-submodule-reference.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7408-submodule-reference/.git/ -expecting success of 7408.1 'setup': - git config --global protocol.file.allow always +*** t7406-submodule-update.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7406-submodule-update/.git/ +expecting success of 7406.1 'setup a submodule tree': + git config --global protocol.file.allow always && + echo file > file && + git add file && + test_tick && + git commit -m upstream && + git clone . super && + git clone super submodule && + git clone super rebasing && + git clone super merging && + git clone super none && + (cd super && + git submodule add ../submodule submodule && + test_tick && + git commit -m "submodule" && + git submodule init submodule + ) && + (cd submodule && + echo "line2" > file && + git add file && + git commit -m "Commit 2" + ) && + (cd super && + (cd submodule && + git pull --rebase origin + ) && + git add submodule && + git commit -m "submodule update" + ) && + (cd super && + git submodule add ../rebasing rebasing && + test_tick && + git commit -m "rebasing" + ) && + (cd super && + git submodule add ../merging merging && + test_tick && + git commit -m "rebasing" + ) && + (cd super && + git submodule add ../none none && + test_tick && + git commit -m "none" + ) && + git clone . recursivesuper && + ( cd recursivesuper && + git submodule add ../super super + ) -ok 1 - setup +[master (root-commit) 0c90624] upstream + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file +Cloning into 'super'... +done. +Cloning into 'submodule'... +done. +Cloning into 'rebasing'... +done. +Cloning into 'merging'... +done. +Cloning into 'none'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/super/submodule'... +done. +[master 3ae95bc] submodule + Author: A U Thor + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 submodule +[master 4301fd3] Commit 2 + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +From /build/git-2.30.2/t/trash directory.t7406-submodule-update/submodule + 0c90624..4301fd3 master -> origin/master +Updating 0c90624..4301fd3 +Fast-forward + file | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) +[master fed7cea] submodule update + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/super/rebasing'... +done. +[master 5366fa1] rebasing + Author: A U Thor + 2 files changed, 4 insertions(+) + create mode 160000 rebasing +Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/super/merging'... +done. +[master 7cb8417] rebasing + Author: A U Thor + 2 files changed, 4 insertions(+) + create mode 160000 merging +Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/super/none'... +done. +[master e1c6586] none + Author: A U Thor + 2 files changed, 4 insertions(+) + create mode 160000 none +Cloning into 'recursivesuper'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/recursivesuper/super'... +done. +ok 1 - setup a submodule tree -expecting success of 7408.2 'preparing first repository': - test_create_repo A && - ( - cd A && - echo first >file1 && - git add file1 && - git commit -m A-initial - ) +expecting success of 7406.2 'update --remote falls back to using HEAD': + test_create_repo main-branch-submodule && + test_commit -C main-branch-submodule initial && -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7408-submodule-reference/A/.git/ -[master (root-commit) 3f492fa] A-initial + test_create_repo main-branch && + git -C main-branch submodule add ../main-branch-submodule && + git -C main-branch commit -m add-submodule && + + git -C main-branch-submodule switch -c hello && + test_commit -C main-branch-submodule world && + + git clone --recursive main-branch main-branch-clone && + git -C main-branch-clone submodule update --remote main-branch-submodule && + test_path_exists main-branch-clone/main-branch-submodule/world.t + +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7406-submodule-update/main-branch-submodule/.git/ +[master (root-commit) 5e30013] initial Author: A U Thor 1 file changed, 1 insertion(+) - create mode 100644 file1 -ok 2 - preparing first repository + create mode 100644 initial.t +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7406-submodule-update/main-branch/.git/ +Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/main-branch/main-branch-submodule'... +done. +[master (root-commit) afd8121] add-submodule + Author: A U Thor + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 main-branch-submodule +Switched to a new branch 'hello' +[hello 5390c56] world + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 world.t +Cloning into 'main-branch-clone'... +done. +Submodule 'main-branch-submodule' (/build/git-2.30.2/t/trash directory.t7406-submodule-update/main-branch-submodule) registered for path 'main-branch-submodule' +Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/main-branch-clone/main-branch-submodule'... +done. +Submodule path 'main-branch-submodule': checked out '5e3001300c8a533bee3e24efd70fbfae3dfa27e3' +Submodule path 'main-branch-submodule': checked out '5390c56ee161c05a0e2e1d93e2ec9669e11defb7' +ok 2 - update --remote falls back to using HEAD -expecting success of 7408.3 'preparing second repository': - git clone A B && - ( - cd B && - echo second >file2 && - git add file2 && - git commit -m B-addition && - git repack -a -d && - git prune +expecting success of 7406.3 'submodule update detaching the HEAD ': + (cd super/submodule && + git reset --hard HEAD~1 + ) && + (cd super && + (cd submodule && + compare_head + ) && + git submodule update submodule && + cd submodule && + ! compare_head ) -Cloning into 'B'... +HEAD is now at 0c90624 upstream +Submodule path 'submodule': checked out '4301fd3e4110d3b6212c19aed3094150392545b9' +ok 3 - submodule update detaching the HEAD + +expecting success of 7406.4 'submodule update from subdirectory': + (cd super/submodule && + git reset --hard HEAD~1 + ) && + mkdir super/sub && + (cd super/sub && + (cd ../submodule && + compare_head + ) && + git submodule update ../submodule && + cd ../submodule && + ! compare_head + ) + +HEAD is now at 0c90624 upstream +Submodule path '../submodule': checked out '4301fd3e4110d3b6212c19aed3094150392545b9' +ok 4 - submodule update from subdirectory + +expecting success of 7406.5 'submodule update --init --recursive from subdirectory': + git -C recursivesuper/super reset --hard HEAD^ && + (cd recursivesuper && + mkdir tmp && + cd tmp && + git submodule update --init --recursive ../super >../../actual 2>../../actual2 + ) && + test_i18ncmp expect actual && + sort actual2 >actual2.sorted && + test_i18ncmp expect2 actual2.sorted + +HEAD is now at 7cb8417 rebasing +checking prerequisite: C_LOCALE_OUTPUT + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false + +) +prerequisite C_LOCALE_OUTPUT ok +ok 5 - submodule update --init --recursive from subdirectory + +expecting success of 7406.6 'submodule update --init from and of subdirectory': + git init withsubs && + (cd withsubs && + mkdir foo && + git submodule add "$(pwd)/../rebasing" foo/sub && + (cd foo && + git submodule deinit -f sub && + git submodule update --init sub 2>../../actual2 + ) + ) && + test_i18ncmp expect2 actual2 + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7406-submodule-update/withsubs/.git/ +Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/withsubs/foo/sub'... done. -[master c9a83e7] B-addition +Cleared directory 'sub' +Submodule 'foo/sub' (/build/git-2.30.2/t/trash directory.t7406-submodule-update/withsubs/../rebasing) unregistered for path 'sub' +Submodule path 'sub': checked out '0c90624ab7f1aaa301d3bb79f60dcfed1ec4897f' +ok 6 - submodule update --init from and of subdirectory + +expecting success of 7406.7 'submodule update does not fetch already present commits': + (cd submodule && + echo line3 >> file && + git add file && + test_tick && + git commit -m "upstream line3" + ) && + (cd super/submodule && + head=$(git rev-parse --verify HEAD) && + echo "Submodule path ${SQ}submodule$SQ: checked out $SQ$head$SQ" > ../../expected && + git reset --hard HEAD~1 + ) && + (cd super && + git submodule update > ../actual 2> ../actual.err + ) && + test_i18ncmp expected actual && + test_must_be_empty actual.err + +[master 640baa4] upstream line3 Author: A U Thor 1 file changed, 1 insertion(+) - create mode 100644 file2 -ok 3 - preparing second repository +HEAD is now at 0c90624 upstream +ok 7 - submodule update does not fetch already present commits -expecting success of 7408.4 'preparing superproject': - test_create_repo super && +expecting success of 7406.8 'submodule update should fail due to local changes': + (cd super/submodule && + git reset --hard HEAD~1 && + echo "local change" > file + ) && + (cd super && + (cd submodule && + compare_head + ) && + test_must_fail git submodule update submodule + ) + +HEAD is now at 0c90624 upstream +error: Your local changes to the following files would be overwritten by checkout: + file +Please commit your changes or stash them before you switch branches. +Aborting +Unable to checkout '4301fd3e4110d3b6212c19aed3094150392545b9' in submodule path 'submodule' +ok 8 - submodule update should fail due to local changes + +expecting success of 7406.9 'submodule update should throw away changes with --force ': + (cd super && + (cd submodule && + compare_head + ) && + git submodule update --force submodule && + cd submodule && + ! compare_head + ) + +Submodule path 'submodule': checked out '4301fd3e4110d3b6212c19aed3094150392545b9' +ok 9 - submodule update should throw away changes with --force + +expecting success of 7406.10 'submodule update --force forcibly checks out submodules': + (cd super && + (cd submodule && + rm -f file + ) && + git submodule update --force submodule && + (cd submodule && + test "$(git status -s file)" = "" + ) + ) + +Submodule path 'submodule': checked out '4301fd3e4110d3b6212c19aed3094150392545b9' +ok 10 - submodule update --force forcibly checks out submodules + +expecting success of 7406.11 'submodule update --remote should fetch upstream changes': + (cd submodule && + echo line4 >> file && + git add file && + test_tick && + git commit -m "upstream line4" + ) && + (cd super && + git submodule update --remote --force submodule && + cd submodule && + test "$(git log -1 --oneline)" = "$(GIT_DIR=../../submodule/.git git log -1 --oneline)" + ) + +[master 2758ea9] upstream line4 + Author: A U Thor + 1 file changed, 1 insertion(+) +From /build/git-2.30.2/t/trash directory.t7406-submodule-update/submodule + 4301fd3..2758ea9 master -> origin/master +Submodule path 'submodule': checked out '2758ea9cdd3f551b89e5fc3424c881031158c70d' +ok 11 - submodule update --remote should fetch upstream changes + +expecting success of 7406.12 'submodule update --remote should fetch upstream changes with .': ( cd super && - echo file >file && + git config -f .gitmodules submodule."submodule".branch "." && + git add .gitmodules && + git commit -m "submodules: update from the respective superproject branch" + ) && + ( + cd submodule && + echo line4a >> file && git add file && - git commit -m B-super-initial + test_tick && + git commit -m "upstream line4a" && + git checkout -b test-branch && + test_commit on-test-branch + ) && + ( + cd super && + git submodule update --remote --force submodule && + git -C submodule log -1 --oneline >actual && + git -C ../submodule log -1 --oneline master >expect && + test_cmp expect actual && + git checkout -b test-branch && + git submodule update --remote --force submodule && + git -C submodule log -1 --oneline >actual && + git -C ../submodule log -1 --oneline test-branch >expect && + test_cmp expect actual && + git checkout master && + git branch -d test-branch && + git reset --hard HEAD^ ) -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7408-submodule-reference/super/.git/ -[master (root-commit) 0776138] B-super-initial +[master 5031a7c] submodules: update from the respective superproject branch Author: A U Thor 1 file changed, 1 insertion(+) - create mode 100644 file -ok 4 - preparing superproject +[master e64979d] upstream line4a + Author: A U Thor + 1 file changed, 1 insertion(+) +Switched to a new branch 'test-branch' +[test-branch 6b9ecc1] on-test-branch + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 on-test-branch.t +From /build/git-2.30.2/t/trash directory.t7406-submodule-update/submodule + 2758ea9..e64979d master -> origin/master + * [new branch] test-branch -> origin/test-branch + * [new tag] on-test-branch -> on-test-branch +Submodule path 'submodule': checked out 'e64979d13b9a9301a3030b8c005b1d9fd5397a44' +Switched to a new branch 'test-branch' +Submodule path 'submodule': checked out '6b9ecc16dba533ab8642ff93fc3b7fe9267a8c51' +Switched to branch 'master' +M submodule +Your branch is ahead of 'origin/master' by 6 commits. + (use "git push" to publish your local commits) +Deleted branch test-branch (was 5031a7c). +HEAD is now at e1c6586 none +ok 12 - submodule update --remote should fetch upstream changes with . -expecting success of 7408.5 'submodule add --reference uses alternates': +expecting success of 7406.13 'local config should override .gitmodules branch': + (cd submodule && + git checkout test-branch && + echo line5 >> file && + git add file && + test_tick && + git commit -m "upstream line5" && + git checkout master + ) && + (cd super && + git config submodule.submodule.branch test-branch && + git submodule update --remote --force submodule && + cd submodule && + test "$(git log -1 --oneline)" = "$(GIT_DIR=../../submodule/.git git log -1 --oneline test-branch)" + ) + +Already on 'test-branch' +[test-branch 5124f33] upstream line5 + Author: A U Thor + 1 file changed, 1 insertion(+) +Switched to branch 'master' +Your branch is ahead of 'origin/master' by 4 commits. + (use "git push" to publish your local commits) +From /build/git-2.30.2/t/trash directory.t7406-submodule-update/submodule + 6b9ecc1..5124f33 test-branch -> origin/test-branch +Submodule path 'submodule': checked out '5124f33c895d18ac768733c2d5ce5a12240babd9' +ok 13 - local config should override .gitmodules branch + +expecting success of 7406.14 'submodule update --rebase staying on master': + (cd super/submodule && + git checkout master + ) && + (cd super && + (cd submodule && + compare_head + ) && + git submodule update --rebase submodule && + cd submodule && + compare_head + ) + +Previous HEAD position was 5124f33 upstream line5 +Switched to branch 'master' +Your branch is behind 'origin/master' by 4 commits, and can be fast-forwarded. + (use "git pull" to update your local branch) + Successfully rebased and updated refs/heads/master. +Submodule path 'submodule': rebased into '4301fd3e4110d3b6212c19aed3094150392545b9' +ok 14 - submodule update --rebase staying on master + +expecting success of 7406.15 'submodule update --merge staying on master': + (cd super/submodule && + git reset --hard HEAD~1 + ) && + (cd super && + (cd submodule && + compare_head + ) && + git submodule update --merge submodule && + cd submodule && + compare_head + ) + +HEAD is now at 0c90624 upstream +Updating 0c90624..4301fd3 +Fast-forward + file | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) +Submodule path 'submodule': merged in '4301fd3e4110d3b6212c19aed3094150392545b9' +ok 15 - submodule update --merge staying on master + +expecting success of 7406.16 'submodule update - rebase in .git/config': + (cd super && + git config submodule.submodule.update rebase + ) && + (cd super/submodule && + git reset --hard HEAD~1 + ) && + (cd super && + (cd submodule && + compare_head + ) && + git submodule update submodule && + cd submodule && + compare_head + ) + +HEAD is now at 0c90624 upstream + Successfully rebased and updated refs/heads/master. +Submodule path 'submodule': rebased into '4301fd3e4110d3b6212c19aed3094150392545b9' +ok 16 - submodule update - rebase in .git/config + +expecting success of 7406.17 'submodule update - checkout in .git/config but --rebase given': + (cd super && + git config submodule.submodule.update checkout + ) && + (cd super/submodule && + git reset --hard HEAD~1 + ) && + (cd super && + (cd submodule && + compare_head + ) && + git submodule update --rebase submodule && + cd submodule && + compare_head + ) + +HEAD is now at 0c90624 upstream + Successfully rebased and updated refs/heads/master. +Submodule path 'submodule': rebased into '4301fd3e4110d3b6212c19aed3094150392545b9' +ok 17 - submodule update - checkout in .git/config but --rebase given + +expecting success of 7406.18 'submodule update - merge in .git/config': + (cd super && + git config submodule.submodule.update merge + ) && + (cd super/submodule && + git reset --hard HEAD~1 + ) && + (cd super && + (cd submodule && + compare_head + ) && + git submodule update submodule && + cd submodule && + compare_head + ) + +HEAD is now at 0c90624 upstream +Updating 0c90624..4301fd3 +Fast-forward + file | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) +Submodule path 'submodule': merged in '4301fd3e4110d3b6212c19aed3094150392545b9' +ok 18 - submodule update - merge in .git/config + +expecting success of 7406.19 'submodule update - checkout in .git/config but --merge given': + (cd super && + git config submodule.submodule.update checkout + ) && + (cd super/submodule && + git reset --hard HEAD~1 + ) && + (cd super && + (cd submodule && + compare_head + ) && + git submodule update --merge submodule && + cd submodule && + compare_head + ) + +HEAD is now at 0c90624 upstream +Updating 0c90624..4301fd3 +Fast-forward + file | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) +Submodule path 'submodule': merged in '4301fd3e4110d3b6212c19aed3094150392545b9' +ok 19 - submodule update - checkout in .git/config but --merge given + +expecting success of 7406.20 'submodule update - checkout in .git/config': + (cd super && + git config submodule.submodule.update checkout + ) && + (cd super/submodule && + git reset --hard HEAD^ + ) && + (cd super && + (cd submodule && + compare_head + ) && + git submodule update submodule && + cd submodule && + ! compare_head + ) + +HEAD is now at 0c90624 upstream +Submodule path 'submodule': checked out '4301fd3e4110d3b6212c19aed3094150392545b9' +ok 20 - submodule update - checkout in .git/config + +expecting success of 7406.21 'submodule update - command in .git/config': + (cd super && + git config submodule.submodule.update "!git checkout" + ) && + (cd super/submodule && + git reset --hard HEAD^ + ) && + (cd super && + (cd submodule && + compare_head + ) && + git submodule update submodule && + cd submodule && + ! compare_head + ) + +HEAD is now at 0c90624 upstream +Previous HEAD position was 0c90624 upstream +HEAD is now at 4301fd3 Commit 2 +Submodule path 'submodule': 'git checkout 4301fd3e4110d3b6212c19aed3094150392545b9' +ok 21 - submodule update - command in .git/config + +expecting success of 7406.22 'submodule update - command in .gitmodules is rejected': + test_when_finished "git -C super reset --hard HEAD^" && + git -C super config -f .gitmodules submodule.submodule.update "!false" && + git -C super commit -a -m "add command to .gitmodules file" && + git -C super/submodule reset --hard $submodulesha1^ && + test_must_fail git -C super submodule update submodule + +[master 9916237] add command to .gitmodules file + Author: A U Thor + 1 file changed, 1 insertion(+) +HEAD is now at 0c90624 upstream +fatal: invalid value for submodule.submodule.update +HEAD is now at e1c6586 none +ok 22 - submodule update - command in .gitmodules is rejected + +expecting success of 7406.23 'fsck detects command in .gitmodules': + git init command-in-gitmodules && ( - cd super && - git submodule add --reference ../B "file://$base_dir/A" sub && - git commit -m B-super-added && - git repack -ad + cd command-in-gitmodules && + git submodule add ../submodule submodule && + test_commit adding-submodule && + + git config -f .gitmodules submodule.submodule.update "!false" && + git add .gitmodules && + test_commit configuring-update && + test_must_fail git fsck + ) + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7406-submodule-update/command-in-gitmodules/.git/ +Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/command-in-gitmodules/submodule'... +done. +[master (root-commit) 54d926f] adding-submodule + Author: A U Thor + 3 files changed, 5 insertions(+) + create mode 100644 .gitmodules + create mode 100644 adding-submodule.t + create mode 160000 submodule +[master 663bd8b] configuring-update + Author: A U Thor + 2 files changed, 2 insertions(+) + create mode 100644 configuring-update.t +error in blob 34075c13cf76fa2281e921a63acb1c52594ee0a0: gitmodulesUpdate: disallowed submodule update setting: !false +ok 23 - fsck detects command in .gitmodules + +expecting success of 7406.24 'submodule update - command in .git/config catches failure': + (cd super && + git config submodule.submodule.update "!false" ) && - test_alternate_is_used super/.git/modules/sub/objects/info/alternates super/sub + (cd super/submodule && + git reset --hard $submodulesha1^ + ) && + (cd super && + test_must_fail git submodule update submodule 2>../actual + ) && + test_i18ncmp actual expect -Cloning into '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/super/sub'... -[master c19e902] B-super-added +HEAD is now at 0c90624 upstream +ok 24 - submodule update - command in .git/config catches failure + +expecting success of 7406.25 'submodule update - command in .git/config catches failure -- subdirectory': + (cd super && + git config submodule.submodule.update "!false" + ) && + (cd super/submodule && + git reset --hard $submodulesha1^ + ) && + (cd super && + mkdir tmp && cd tmp && + test_must_fail git submodule update ../submodule 2>../../actual + ) && + test_i18ncmp actual expect + +HEAD is now at 0c90624 upstream +ok 25 - submodule update - command in .git/config catches failure -- subdirectory + +expecting success of 7406.26 'submodule update - command run for initial population of submodule': + cat >expect <<-EOF && + Execution of 'false $submodulesha1' failed in submodule path 'submodule' + EOF + rm -rf super/submodule && + test_must_fail git -C super submodule update 2>actual && + test_i18ncmp expect actual && + git -C super submodule update --checkout + +Submodule path 'submodule': checked out '4301fd3e4110d3b6212c19aed3094150392545b9' +ok 26 - submodule update - command run for initial population of submodule + +expecting success of 7406.27 'recursive submodule update - command in .git/config catches failure -- subdirectory': + (cd recursivesuper && + git submodule update --remote super && + git add super && + git commit -m "update to latest to have more than one commit in submodules" + ) && + git -C recursivesuper/super config submodule.submodule.update "!false" && + git -C recursivesuper/super/submodule reset --hard $submodulesha1^ && + (cd recursivesuper && + mkdir -p tmp && cd tmp && + test_must_fail git submodule update --recursive ../super 2>../../actual + ) && + test_i18ncmp actual expect + +[master eae22a2] update to latest to have more than one commit in submodules Author: A U Thor 2 files changed, 4 insertions(+) create mode 100644 .gitmodules - create mode 160000 sub -ok 5 - submodule add --reference uses alternates + create mode 160000 super +HEAD is now at 0c90624 upstream +ok 27 - recursive submodule update - command in .git/config catches failure -- subdirectory -expecting success of 7408.6 'submodule add --reference with --dissociate does not use alternates': - ( - cd super && - git submodule add --reference ../B --dissociate "file://$base_dir/A" sub-dissociate && - git commit -m B-super-added && - git repack -ad +expecting success of 7406.28 'submodule init does not copy command into .git/config': + test_when_finished "git -C super update-index --force-remove submodule1" && + test_when_finished git config -f super/.gitmodules \ + --remove-section submodule.submodule1 && + (cd super && + git ls-files -s submodule >out && + H=$(cut -d" " -f2 out) && + mkdir submodule1 && + git update-index --add --cacheinfo 160000 $H submodule1 && + git config -f .gitmodules submodule.submodule1.path submodule1 && + git config -f .gitmodules submodule.submodule1.url ../submodule && + git config -f .gitmodules submodule.submodule1.update !false && + test_must_fail git submodule init submodule1 && + test_expect_code 1 git config submodule.submodule1.update >actual && + test_must_be_empty actual + ) + +fatal: invalid value for submodule.submodule1.update +ok 28 - submodule init does not copy command into .git/config + +expecting success of 7406.29 'submodule init picks up rebase': + (cd super && + git config -f .gitmodules submodule.rebasing.update rebase && + git submodule init rebasing && + test "rebase" = "$(git config submodule.rebasing.update)" + ) + +ok 29 - submodule init picks up rebase + +expecting success of 7406.30 'submodule init picks up merge': + (cd super && + git config -f .gitmodules submodule.merging.update merge && + git submodule init merging && + test "merge" = "$(git config submodule.merging.update)" + ) + +ok 30 - submodule init picks up merge + +expecting success of 7406.31 'submodule update --merge - ignores --merge for new submodules': + test_config -C super submodule.submodule.update checkout && + (cd super && + rm -rf submodule && + git submodule update submodule && + git status -s submodule >expect && + rm -rf submodule && + git submodule update --merge submodule && + git status -s submodule >actual && + test_cmp expect actual + ) + +Submodule path 'submodule': checked out '4301fd3e4110d3b6212c19aed3094150392545b9' +Submodule path 'submodule': checked out '4301fd3e4110d3b6212c19aed3094150392545b9' +ok 31 - submodule update --merge - ignores --merge for new submodules + +expecting success of 7406.32 'submodule update --rebase - ignores --rebase for new submodules': + test_config -C super submodule.submodule.update checkout && + (cd super && + rm -rf submodule && + git submodule update submodule && + git status -s submodule >expect && + rm -rf submodule && + git submodule update --rebase submodule && + git status -s submodule >actual && + test_cmp expect actual + ) + +Submodule path 'submodule': checked out '4301fd3e4110d3b6212c19aed3094150392545b9' +Submodule path 'submodule': checked out '4301fd3e4110d3b6212c19aed3094150392545b9' +ok 32 - submodule update --rebase - ignores --rebase for new submodules + +expecting success of 7406.33 'submodule update ignores update=merge config for new submodules': + (cd super && + rm -rf submodule && + git submodule update submodule && + git status -s submodule >expect && + rm -rf submodule && + git config submodule.submodule.update merge && + git submodule update submodule && + git status -s submodule >actual && + git config --unset submodule.submodule.update && + test_cmp expect actual + ) + +Submodule path 'submodule': checked out '4301fd3e4110d3b6212c19aed3094150392545b9' +Submodule path 'submodule': checked out '4301fd3e4110d3b6212c19aed3094150392545b9' +ok 33 - submodule update ignores update=merge config for new submodules + +expecting success of 7406.34 'submodule update ignores update=rebase config for new submodules': + (cd super && + rm -rf submodule && + git submodule update submodule && + git status -s submodule >expect && + rm -rf submodule && + git config submodule.submodule.update rebase && + git submodule update submodule && + git status -s submodule >actual && + git config --unset submodule.submodule.update && + test_cmp expect actual + ) + +Submodule path 'submodule': checked out '4301fd3e4110d3b6212c19aed3094150392545b9' +Submodule path 'submodule': checked out '4301fd3e4110d3b6212c19aed3094150392545b9' +ok 34 - submodule update ignores update=rebase config for new submodules + +expecting success of 7406.35 'submodule init picks up update=none': + (cd super && + git config -f .gitmodules submodule.none.update none && + git submodule init none && + test "none" = "$(git config submodule.none.update)" + ) + +ok 35 - submodule init picks up update=none + +expecting success of 7406.36 'submodule update - update=none in .git/config': + (cd super && + git config submodule.submodule.update none && + (cd submodule && + git checkout master && + compare_head + ) && + git diff --name-only >out && + grep ^submodule$ out && + git submodule update && + git diff --name-only >out && + grep ^submodule$ out && + (cd submodule && + compare_head + ) && + git config --unset submodule.submodule.update && + git submodule update submodule + ) + +Previous HEAD position was 4301fd3 Commit 2 +Switched to branch 'master' +Your branch is behind 'origin/master' by 4 commits, and can be fast-forwarded. + (use "git pull" to update your local branch) +submodule +Skipping submodule 'none' +Skipping submodule 'submodule' +submodule +Submodule path 'submodule': checked out '4301fd3e4110d3b6212c19aed3094150392545b9' +ok 36 - submodule update - update=none in .git/config + +expecting success of 7406.37 'submodule update - update=none in .git/config but --checkout given': + (cd super && + git config submodule.submodule.update none && + (cd submodule && + git checkout master && + compare_head + ) && + git diff --name-only >out && + grep ^submodule$ out && + git submodule update --checkout && + git diff --name-only >out && + ! grep ^submodule$ out && + (cd submodule && + ! compare_head + ) && + git config --unset submodule.submodule.update + ) + +Previous HEAD position was 4301fd3 Commit 2 +Switched to branch 'master' +Your branch is behind 'origin/master' by 4 commits, and can be fast-forwarded. + (use "git pull" to update your local branch) +submodule +Submodule path 'submodule': checked out '4301fd3e4110d3b6212c19aed3094150392545b9' +ok 37 - submodule update - update=none in .git/config but --checkout given + +expecting success of 7406.38 'submodule update --init skips submodule with update=none': + (cd super && + git add .gitmodules && + git commit -m ".gitmodules" ) && - test_path_is_missing super/.git/modules/sub-dissociate/objects/info/alternates + git clone super cloned && + (cd cloned && + git submodule update --init && + test_path_exists submodule/.git && + test_path_is_missing none/.git + ) -Cloning into '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/super/sub-dissociate'... -[master 5dcb138] B-super-added +[master aaa14d4] .gitmodules Author: A U Thor - 2 files changed, 4 insertions(+) - create mode 160000 sub-dissociate -ok 6 - submodule add --reference with --dissociate does not use alternates + 1 file changed, 3 insertions(+) +Cloning into 'cloned'... +done. +Submodule 'merging' (/build/git-2.30.2/t/trash directory.t7406-submodule-update/merging) registered for path 'merging' +Submodule 'none' (/build/git-2.30.2/t/trash directory.t7406-submodule-update/none) registered for path 'none' +Submodule 'rebasing' (/build/git-2.30.2/t/trash directory.t7406-submodule-update/rebasing) registered for path 'rebasing' +Submodule 'submodule' (/build/git-2.30.2/t/trash directory.t7406-submodule-update/submodule) registered for path 'submodule' +Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/cloned/merging'... +done. +Skipping submodule 'none' +Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/cloned/rebasing'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/cloned/submodule'... +done. +Submodule path 'merging': checked out '0c90624ab7f1aaa301d3bb79f60dcfed1ec4897f' +Submodule path 'rebasing': checked out '0c90624ab7f1aaa301d3bb79f60dcfed1ec4897f' +Submodule path 'submodule': checked out '4301fd3e4110d3b6212c19aed3094150392545b9' +ok 38 - submodule update --init skips submodule with update=none -expecting success of 7408.7 'that reference gets used with add': - ( - cd super/sub && - echo "0 objects, 0 kilobytes" >expected && - git count-objects >current && - diff expected current +expecting success of 7406.39 'submodule update continues after checkout error': + (cd super && + git reset --hard HEAD && + git submodule add ../submodule submodule2 && + git submodule init && + git commit -am "new_submodule" && + (cd submodule2 && + git rev-parse --verify HEAD >../expect + ) && + (cd submodule && + test_commit "update_submodule" file + ) && + (cd submodule2 && + test_commit "update_submodule2" file + ) && + git add submodule && + git add submodule2 && + git commit -m "two_new_submodule_commits" && + (cd submodule && + echo "" > file + ) && + git checkout HEAD^ && + test_must_fail git submodule update && + (cd submodule2 && + git rev-parse --verify HEAD >../actual + ) && + test_cmp expect actual ) -ok 7 - that reference gets used with add +HEAD is now at aaa14d4 .gitmodules +Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/super/submodule2'... +done. +[master eac0b19] new_submodule + Author: A U Thor + 2 files changed, 4 insertions(+) + create mode 160000 submodule2 +[detached HEAD bf859b9] update_submodule + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +[master a877e2d] update_submodule2 + Author: A U Thor + 1 file changed, 1 insertion(+), 4 deletions(-) +[master 589bc5b] two_new_submodule_commits + Author: A U Thor + 2 files changed, 2 insertions(+), 2 deletions(-) +Note: switching to 'HEAD^'. -expecting success of 7408.8 'updating superproject keeps alternates': - test_when_finished "rm -rf super-clone" && - git clone super super-clone && - git -C super-clone submodule update --init --reference ../B && - test_alternate_is_used super-clone/.git/modules/sub/objects/info/alternates super-clone/sub +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. -Cloning into 'super-clone'... +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: + + git switch -c + +Or undo this operation with: + + git switch - + +Turn off this advice by setting config variable advice.detachedHead to false + +HEAD is now at eac0b19 new_submodule +M submodule +M submodule2 +Skipping submodule 'none' +error: Your local changes to the following files would be overwritten by checkout: + file +Please commit your changes or stash them before you switch branches. +Aborting +Submodule path 'submodule2': checked out 'e64979d13b9a9301a3030b8c005b1d9fd5397a44' +Unable to checkout '4301fd3e4110d3b6212c19aed3094150392545b9' in submodule path 'submodule' +ok 39 - submodule update continues after checkout error + +expecting success of 7406.40 'submodule update continues after recursive checkout error': + (cd super && + git reset --hard HEAD && + git checkout master && + git submodule update && + (cd submodule && + git submodule add ../submodule subsubmodule && + git submodule init && + git commit -m "new_subsubmodule" + ) && + git add submodule && + git commit -m "update_submodule" && + (cd submodule && + (cd subsubmodule && + test_commit "update_subsubmodule" file + ) && + git add subsubmodule && + test_commit "update_submodule_again" file && + (cd subsubmodule && + test_commit "update_subsubmodule_again" file + ) && + test_commit "update_submodule_again_again" file + ) && + (cd submodule2 && + git rev-parse --verify HEAD >../expect && + test_commit "update_submodule2_again" file + ) && + git add submodule && + git add submodule2 && + git commit -m "new_commits" && + git checkout HEAD^ && + (cd submodule && + git checkout HEAD^ && + (cd subsubmodule && + echo "" > file + ) + ) && + test_must_fail git submodule update --recursive && + (cd submodule2 && + git rev-parse --verify HEAD >../actual + ) && + test_cmp expect actual + ) + +HEAD is now at eac0b19 new_submodule +Previous HEAD position was eac0b19 new_submodule +Switched to branch 'master' +M submodule +M submodule2 +Your branch is ahead of 'origin/master' by 8 commits. + (use "git push" to publish your local commits) +Skipping submodule 'none' +Submodule path 'submodule2': checked out 'a877e2d4bf03b4d9f4617d9894698a04062cafcb' +Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/super/submodule/subsubmodule'... done. -Submodule 'sub' (file:///build/git-2.30.2/t/trash directory.t7408-submodule-reference/A) registered for path 'sub' -Submodule 'sub-dissociate' (file:///build/git-2.30.2/t/trash directory.t7408-submodule-reference/A) registered for path 'sub-dissociate' -Cloning into '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/super-clone/sub'... -Cloning into '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/super-clone/sub-dissociate'... -Submodule path 'sub': checked out '3f492fa355d2b55bd9e19f5535ac5e32c035e10f' -Submodule path 'sub-dissociate': checked out '3f492fa355d2b55bd9e19f5535ac5e32c035e10f' -ok 8 - updating superproject keeps alternates +[detached HEAD 13e98de] new_subsubmodule + Author: A U Thor + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 subsubmodule +[master 550d814] update_submodule + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +[master c5b9177] update_subsubmodule + Author: A U Thor + 1 file changed, 1 insertion(+), 4 deletions(-) +[detached HEAD 7a52240] update_submodule_again + Author: A U Thor + 2 files changed, 2 insertions(+), 2 deletions(-) +[master c86226f] update_subsubmodule_again + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +[detached HEAD 36cba07] update_submodule_again_again + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +[detached HEAD 6f5fed0] update_submodule2_again + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +[master ddd1b9e] new_commits + Author: A U Thor + 2 files changed, 2 insertions(+), 2 deletions(-) +Note: switching to 'HEAD^'. -expecting success of 7408.9 'updating superproject with --dissociate does not keep alternates': - test_when_finished "rm -rf super-clone" && - git clone super super-clone && - git -C super-clone submodule update --init --reference ../B --dissociate && - test_path_is_missing super-clone/.git/modules/sub/objects/info/alternates +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. -Cloning into 'super-clone'... +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: + + git switch -c + +Or undo this operation with: + + git switch - + +Turn off this advice by setting config variable advice.detachedHead to false + +HEAD is now at 550d814 update_submodule +M submodule +M submodule2 +Previous HEAD position was 36cba07 update_submodule_again_again +HEAD is now at 7a52240 update_submodule_again +M subsubmodule +Skipping submodule 'none' +Submodule path 'submodule': checked out '13e98de6d21cfd4c0d0ac89f9801423fd4a8848c' +error: Your local changes to the following files would be overwritten by checkout: + file +Please commit your changes or stash them before you switch branches. +Aborting +Unable to checkout 'e64979d13b9a9301a3030b8c005b1d9fd5397a44' in submodule path 'submodule/subsubmodule' +Submodule path 'submodule2': checked out 'a877e2d4bf03b4d9f4617d9894698a04062cafcb' +Failed to recurse into submodule path 'submodule' +ok 40 - submodule update continues after recursive checkout error + +expecting success of 7406.41 'submodule update exit immediately in case of merge conflict': + (cd super && + git checkout master && + git reset --hard HEAD && + (cd submodule && + (cd subsubmodule && + git reset --hard HEAD + ) + ) && + git submodule update --recursive && + (cd submodule && + test_commit "update_submodule_2" file + ) && + (cd submodule2 && + test_commit "update_submodule2_2" file + ) && + git add submodule && + git add submodule2 && + git commit -m "two_new_submodule_commits" && + (cd submodule && + git checkout master && + test_commit "conflict" file && + echo "conflict" > file + ) && + git checkout HEAD^ && + (cd submodule2 && + git rev-parse --verify HEAD >../expect + ) && + git config submodule.submodule.update merge && + test_must_fail git submodule update && + (cd submodule2 && + git rev-parse --verify HEAD >../actual + ) && + test_cmp expect actual + ) + +Previous HEAD position was 550d814 update_submodule +Switched to branch 'master' +M submodule +M submodule2 +Your branch is ahead of 'origin/master' by 10 commits. + (use "git push" to publish your local commits) +HEAD is now at ddd1b9e new_commits +HEAD is now at c86226f update_subsubmodule_again +Skipping submodule 'none' +Submodule path 'submodule': checked out '36cba07de2dd3db68a7098ceff6e2441982207b1' +Submodule path 'submodule/subsubmodule': checked out 'c5b9177e5e719279dd558d927533a748252168f7' +Submodule path 'submodule2': checked out '6f5fed0da411cfed33516e12e385e026134bad56' +[detached HEAD ef00442] update_submodule_2 + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +[detached HEAD a8b9c2b] update_submodule2_2 + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +[master b5c2539] two_new_submodule_commits + Author: A U Thor + 2 files changed, 2 insertions(+), 2 deletions(-) +warning: unable to rmdir 'subsubmodule': Directory not empty +Previous HEAD position was ef00442 update_submodule_2 +Switched to branch 'master' +Your branch is behind 'origin/master' by 4 commits, and can be fast-forwarded. + (use "git pull" to update your local branch) +[master d727295] conflict + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +Note: switching to 'HEAD^'. + +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. + +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: + + git switch -c + +Or undo this operation with: + + git switch - + +Turn off this advice by setting config variable advice.detachedHead to false + +HEAD is now at ddd1b9e new_commits +M submodule +M submodule2 +Skipping submodule 'none' +Merging: +d727295 conflict +virtual 36cba07de2dd3db68a7098ceff6e2441982207b1 +found 1 common ancestor: +0c90624 upstream +Auto-merging file +CONFLICT (content): Merge conflict in file +Automatic merge failed; fix conflicts and then commit the result. +Unable to merge '36cba07de2dd3db68a7098ceff6e2441982207b1' in submodule path 'submodule' +ok 41 - submodule update exit immediately in case of merge conflict + +expecting success of 7406.42 'submodule update exit immediately after recursive rebase error': + (cd super && + git checkout master && + git reset --hard HEAD && + (cd submodule && + git reset --hard HEAD && + git submodule update --recursive + ) && + (cd submodule && + test_commit "update_submodule_3" file + ) && + (cd submodule2 && + test_commit "update_submodule2_3" file + ) && + git add submodule && + git add submodule2 && + git commit -m "two_new_submodule_commits" && + (cd submodule && + git checkout master && + test_commit "conflict2" file && + echo "conflict" > file + ) && + git checkout HEAD^ && + (cd submodule2 && + git rev-parse --verify HEAD >../expect + ) && + git config submodule.submodule.update rebase && + test_must_fail git submodule update && + (cd submodule2 && + git rev-parse --verify HEAD >../actual + ) && + test_cmp expect actual + ) + +Previous HEAD position was ddd1b9e new_commits +Switched to branch 'master' +M submodule +Your branch is ahead of 'origin/master' by 11 commits. + (use "git push" to publish your local commits) +HEAD is now at b5c2539 two_new_submodule_commits +warning: unable to rmdir 'subsubmodule': Directory not empty +HEAD is now at d727295 conflict +[master b3ea5df] update_submodule_3 + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +[detached HEAD 9f300bf] update_submodule2_3 + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +[master 45a22d0] two_new_submodule_commits + Author: A U Thor + 2 files changed, 2 insertions(+), 2 deletions(-) +Already on 'master' +Your branch and 'origin/master' have diverged, +and have 2 and 4 different commits each, respectively. + (use "git pull" to merge the remote branch into yours) +[master cf8450a] conflict2 + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +Note: switching to 'HEAD^'. + +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. + +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: + + git switch -c + +Or undo this operation with: + + git switch - + +Turn off this advice by setting config variable advice.detachedHead to false + +HEAD is now at b5c2539 two_new_submodule_commits +M submodule +M submodule2 +Skipping submodule 'none' +error: cannot rebase: You have unstaged changes. +error: Please commit or stash them. +Unable to rebase 'ef00442dab3d569479883a2d86505b87d824a88b' in submodule path 'submodule' +ok 42 - submodule update exit immediately after recursive rebase error + +expecting success of 7406.43 'add different submodules to the same path': + (cd super && + git submodule add ../submodule s1 && + test_must_fail git submodule add ../merging s1 + ) + +Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/super/s1'... done. -Submodule 'sub' (file:///build/git-2.30.2/t/trash directory.t7408-submodule-reference/A) registered for path 'sub' -Submodule 'sub-dissociate' (file:///build/git-2.30.2/t/trash directory.t7408-submodule-reference/A) registered for path 'sub-dissociate' -Cloning into '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/super-clone/sub'... -Cloning into '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/super-clone/sub-dissociate'... -Submodule path 'sub': checked out '3f492fa355d2b55bd9e19f5535ac5e32c035e10f' -Submodule path 'sub-dissociate': checked out '3f492fa355d2b55bd9e19f5535ac5e32c035e10f' -ok 9 - updating superproject with --dissociate does not keep alternates +'s1' already exists in the index +ok 43 - add different submodules to the same path -expecting success of 7408.10 'submodules use alternates when cloning a superproject': - test_when_finished "rm -rf super-clone" && - git clone --reference super --recursive super super-clone && - ( - cd super-clone && - # test superproject has alternates setup correctly - test_alternate_is_used .git/objects/info/alternates . && - # test submodule has correct setup - test_alternate_is_used .git/modules/sub/objects/info/alternates sub +expecting success of 7406.44 'submodule add places git-dir in superprojects git-dir': + (cd super && + mkdir deeper && + git submodule add ../submodule deeper/submodule && + (cd deeper/submodule && + git log > ../../expected + ) && + (cd .git/modules/deeper/submodule && + git log > ../../../../actual + ) && + test_cmp expected actual ) -Cloning into 'super-clone'... +Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/super/deeper/submodule'... done. -Submodule 'sub' (file:///build/git-2.30.2/t/trash directory.t7408-submodule-reference/A) registered for path 'sub' -Submodule 'sub-dissociate' (file:///build/git-2.30.2/t/trash directory.t7408-submodule-reference/A) registered for path 'sub-dissociate' -Cloning into '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/super-clone/sub'... -Cloning into '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/super-clone/sub-dissociate'... -Submodule path 'sub': checked out '3f492fa355d2b55bd9e19f5535ac5e32c035e10f' -Submodule path 'sub-dissociate': checked out '3f492fa355d2b55bd9e19f5535ac5e32c035e10f' -ok 10 - submodules use alternates when cloning a superproject +ok 44 - submodule add places git-dir in superprojects git-dir -expecting success of 7408.11 'missing submodule alternate fails clone and submodule update': - test_when_finished "rm -rf super-clone" && +expecting success of 7406.45 'submodule update places git-dir in superprojects git-dir': + (cd super && + git commit -m "added submodule" + ) && git clone super super2 && - test_must_fail git clone --recursive --reference super2 super2 super-clone && - ( - cd super-clone && - # test superproject has alternates setup correctly - test_alternate_is_used .git/objects/info/alternates . && - # update of the submodule succeeds - test_must_fail git submodule update --init && - # and we have no alternates: - test_path_is_missing .git/modules/sub/objects/info/alternates && - test_path_is_missing sub/file1 + (cd super2 && + git submodule init deeper/submodule && + git submodule update && + (cd deeper/submodule && + git log > ../../expected + ) && + (cd .git/modules/deeper/submodule && + git log > ../../../../actual + ) && + test_cmp expected actual ) +[detached HEAD 3a6f187] added submodule + Author: A U Thor + 3 files changed, 8 insertions(+) + create mode 160000 deeper/submodule + create mode 160000 s1 Cloning into 'super2'... done. -Cloning into 'super-clone'... +Note: switching to '3a6f1872cb4f0ffb018914be6f6215cb5d81f789'. + +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. + +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: + + git switch -c + +Or undo this operation with: + + git switch - + +Turn off this advice by setting config variable advice.detachedHead to false + +Submodule 'deeper/submodule' (/build/git-2.30.2/t/trash directory.t7406-submodule-update/submodule) registered for path 'deeper/submodule' +Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/super2/deeper/submodule'... done. -Submodule 'sub' (file:///build/git-2.30.2/t/trash directory.t7408-submodule-reference/A) registered for path 'sub' -Submodule 'sub-dissociate' (file:///build/git-2.30.2/t/trash directory.t7408-submodule-reference/A) registered for path 'sub-dissociate' -hint: An alternate computed from a superproject's alternate is invalid. -hint: To allow Git to clone without an alternate in such a case, set -hint: submodule.alternateErrorStrategy to 'info' or, equivalently, clone with -hint: '--reference-if-able' instead of '--reference'. -fatal: submodule 'sub' cannot add alternate: path '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/super2/.git/modules/sub/' does not exist -Failed to clone 'sub'. Retry scheduled -hint: An alternate computed from a superproject's alternate is invalid. -hint: To allow Git to clone without an alternate in such a case, set -hint: submodule.alternateErrorStrategy to 'info' or, equivalently, clone with -hint: '--reference-if-able' instead of '--reference'. -fatal: submodule 'sub-dissociate' cannot add alternate: path '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/super2/.git/modules/sub-dissociate/' does not exist -Failed to clone 'sub-dissociate'. Retry scheduled -hint: An alternate computed from a superproject's alternate is invalid. -hint: To allow Git to clone without an alternate in such a case, set -hint: submodule.alternateErrorStrategy to 'info' or, equivalently, clone with -hint: '--reference-if-able' instead of '--reference'. -fatal: submodule 'sub' cannot add alternate: path '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/super2/.git/modules/sub/' does not exist -Failed to clone 'sub' a second time, aborting -hint: An alternate computed from a superproject's alternate is invalid. -hint: To allow Git to clone without an alternate in such a case, set -hint: submodule.alternateErrorStrategy to 'info' or, equivalently, clone with -hint: '--reference-if-able' instead of '--reference'. -fatal: submodule 'sub' cannot add alternate: path '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/super2/.git/modules/sub/' does not exist -Failed to clone 'sub'. Retry scheduled -hint: An alternate computed from a superproject's alternate is invalid. -hint: To allow Git to clone without an alternate in such a case, set -hint: submodule.alternateErrorStrategy to 'info' or, equivalently, clone with -hint: '--reference-if-able' instead of '--reference'. -fatal: submodule 'sub-dissociate' cannot add alternate: path '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/super2/.git/modules/sub-dissociate/' does not exist -Failed to clone 'sub-dissociate'. Retry scheduled -hint: An alternate computed from a superproject's alternate is invalid. -hint: To allow Git to clone without an alternate in such a case, set -hint: submodule.alternateErrorStrategy to 'info' or, equivalently, clone with -hint: '--reference-if-able' instead of '--reference'. -fatal: submodule 'sub' cannot add alternate: path '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/super2/.git/modules/sub/' does not exist -Failed to clone 'sub' a second time, aborting -ok 11 - missing submodule alternate fails clone and submodule update +Skipping submodule 'none' +Submodule path 'deeper/submodule': checked out 'e64979d13b9a9301a3030b8c005b1d9fd5397a44' +ok 45 - submodule update places git-dir in superprojects git-dir -expecting success of 7408.12 'ignoring missing submodule alternates passes clone and submodule update': - test_when_finished "rm -rf super-clone" && - git clone --reference-if-able super2 --recursive super2 super-clone && - ( - cd super-clone && - # test superproject has alternates setup correctly - test_alternate_is_used .git/objects/info/alternates . && - # update of the submodule succeeds - git submodule update --init && - # and we have no alternates: - test_path_is_missing .git/modules/sub/objects/info/alternates && - test_path_is_file sub/file1 +expecting success of 7406.46 'submodule add places git-dir in superprojects git-dir recursive': + (cd super2 && + (cd deeper/submodule && + git submodule add ../submodule subsubmodule && + (cd subsubmodule && + git log > ../../../expected + ) && + git commit -m "added subsubmodule" && + git push origin : + ) && + (cd .git/modules/deeper/submodule/modules/subsubmodule && + git log > ../../../../../actual + ) && + git add deeper/submodule && + git commit -m "update submodule" && + git push origin : && + test_cmp expected actual ) -Cloning into 'super-clone'... +Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/super2/deeper/submodule/subsubmodule'... done. -Submodule 'sub' (file:///build/git-2.30.2/t/trash directory.t7408-submodule-reference/A) registered for path 'sub' -Submodule 'sub-dissociate' (file:///build/git-2.30.2/t/trash directory.t7408-submodule-reference/A) registered for path 'sub-dissociate' -submodule 'sub' cannot add alternate: path '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/super2/.git/modules/sub/' does not exist -Cloning into '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/super-clone/sub'... -submodule 'sub-dissociate' cannot add alternate: path '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/super2/.git/modules/sub-dissociate/' does not exist -Cloning into '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/super-clone/sub-dissociate'... -Submodule path 'sub': checked out '3f492fa355d2b55bd9e19f5535ac5e32c035e10f' -Submodule path 'sub-dissociate': checked out '3f492fa355d2b55bd9e19f5535ac5e32c035e10f' -ok 12 - ignoring missing submodule alternates passes clone and submodule update +[detached HEAD 0642c0f] added subsubmodule + Author: A U Thor + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 subsubmodule +Everything up-to-date +[detached HEAD 7b048b2] update submodule + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +Everything up-to-date +ok 46 - submodule add places git-dir in superprojects git-dir recursive -expecting success of 7408.13 'preparing second superproject with a nested submodule plus partial clone': - test_create_repo supersuper && - ( - cd supersuper && - echo "I am super super." >file && - git add file && - git commit -m B-super-super-initial && - git submodule add "file://$base_dir/super" subwithsub && - git commit -m B-super-super-added && - git submodule update --init --recursive && - git repack -ad +expecting success of 7406.47 'submodule update places git-dir in superprojects git-dir recursive': + mkdir super_update_r && + (cd super_update_r && + git init --bare ) && - git clone supersuper supersuper2 && - ( - cd supersuper2 && - git submodule update --init + mkdir subsuper_update_r && + (cd subsuper_update_r && + git init --bare + ) && + mkdir subsubsuper_update_r && + (cd subsubsuper_update_r && + git init --bare + ) && + git clone subsubsuper_update_r subsubsuper_update_r2 && + (cd subsubsuper_update_r2 && + test_commit "update_subsubsuper" file && + git push origin master + ) && + git clone subsuper_update_r subsuper_update_r2 && + (cd subsuper_update_r2 && + test_commit "update_subsuper" file && + git submodule add ../subsubsuper_update_r subsubmodule && + git commit -am "subsubmodule" && + git push origin master + ) && + git clone super_update_r super_update_r2 && + (cd super_update_r2 && + test_commit "update_super" file && + git submodule add ../subsuper_update_r submodule && + git commit -am "submodule" && + git push origin master + ) && + rm -rf super_update_r2 && + git clone super_update_r super_update_r2 && + (cd super_update_r2 && + git submodule update --init --recursive >actual && + test_i18ngrep "Submodule path .submodule/subsubmodule.: checked out" actual && + (cd submodule/subsubmodule && + git log > ../../expected + ) && + (cd .git/modules/submodule/modules/subsubmodule && + git log > ../../../../../actual + ) && + test_cmp expected actual ) -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7408-submodule-reference/supersuper/.git/ -[master (root-commit) c928525] B-super-super-initial +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7406-submodule-update/super_update_r/ +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7406-submodule-update/subsuper_update_r/ +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7406-submodule-update/subsubsuper_update_r/ +Cloning into 'subsubsuper_update_r2'... +warning: You appear to have cloned an empty repository. +done. +[master (root-commit) 0d20a78] update_subsubsuper Author: A U Thor 1 file changed, 1 insertion(+) create mode 100644 file -Cloning into '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/supersuper/subwithsub'... -[master 1964b89] B-super-super-added +To /build/git-2.30.2/t/trash directory.t7406-submodule-update/subsubsuper_update_r + * [new branch] master -> master +Cloning into 'subsuper_update_r2'... +warning: You appear to have cloned an empty repository. +done. +[master (root-commit) 635883b] update_subsuper + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file +Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/subsuper_update_r2/subsubmodule'... +done. +[master 86a3496] subsubmodule Author: A U Thor 2 files changed, 4 insertions(+) create mode 100644 .gitmodules - create mode 160000 subwithsub -Submodule 'sub' (file:///build/git-2.30.2/t/trash directory.t7408-submodule-reference/A) registered for path 'subwithsub/sub' -Submodule 'sub-dissociate' (file:///build/git-2.30.2/t/trash directory.t7408-submodule-reference/A) registered for path 'subwithsub/sub-dissociate' -Cloning into '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/supersuper/subwithsub/sub'... -Cloning into '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/supersuper/subwithsub/sub-dissociate'... -Submodule path 'subwithsub/sub': checked out '3f492fa355d2b55bd9e19f5535ac5e32c035e10f' -Submodule path 'subwithsub/sub-dissociate': checked out '3f492fa355d2b55bd9e19f5535ac5e32c035e10f' -Cloning into 'supersuper2'... + create mode 160000 subsubmodule +To /build/git-2.30.2/t/trash directory.t7406-submodule-update/subsuper_update_r + * [new branch] master -> master +Cloning into 'super_update_r2'... +warning: You appear to have cloned an empty repository. done. -Submodule 'subwithsub' (file:///build/git-2.30.2/t/trash directory.t7408-submodule-reference/super) registered for path 'subwithsub' -Cloning into '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/supersuper2/subwithsub'... -Submodule path 'subwithsub': checked out '5dcb13829d0ea3a902800d87e74675154e078d3c' -ok 13 - preparing second superproject with a nested submodule plus partial clone +[master (root-commit) c2de1fa] update_super + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file +Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/super_update_r2/submodule'... +done. +[master 2d70acb] submodule + Author: A U Thor + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 submodule +To /build/git-2.30.2/t/trash directory.t7406-submodule-update/super_update_r + * [new branch] master -> master +Cloning into 'super_update_r2'... +done. +Submodule 'submodule' (/build/git-2.30.2/t/trash directory.t7406-submodule-update/subsuper_update_r) registered for path 'submodule' +Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/super_update_r2/submodule'... +done. +Submodule 'subsubmodule' (/build/git-2.30.2/t/trash directory.t7406-submodule-update/subsubsuper_update_r) registered for path 'submodule/subsubmodule' +Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/super_update_r2/submodule/subsubmodule'... +done. +Submodule path 'submodule/subsubmodule': checked out '0d20a783d558db53f3b7ea74da7db3bb1a32b21b' +ok 47 - submodule update places git-dir in superprojects git-dir recursive -expecting success of 7408.14 'nested submodule alternate in works and is actually used': - test_when_finished "rm -rf supersuper-clone" && - git clone --recursive --reference supersuper supersuper supersuper-clone && +expecting success of 7406.48 'submodule add properly re-creates deeper level submodules': + (cd super && + git reset --hard master && + rm -rf deeper/ && + git submodule add --force ../submodule deeper/submodule + ) + +warning: unable to rmdir 'deeper/submodule': Directory not empty +warning: unable to rmdir 's1': Directory not empty +HEAD is now at 45a22d0 two_new_submodule_commits +Reactivating local git directory for submodule 'deeper/submodule'. +ok 48 - submodule add properly re-creates deeper level submodules + +expecting success of 7406.49 'submodule update properly revives a moved submodule': + (cd super && + H=$(git rev-parse --short HEAD) && + git commit -am "pre move" && + H2=$(git rev-parse --short HEAD) && + git status >out && + sed "s/$H/XXX/" out >expect && + H=$(cd submodule2 && git rev-parse HEAD) && + git rm --cached submodule2 && + rm -rf submodule2 && + mkdir -p "moved/sub module" && + git update-index --add --cacheinfo 160000 $H "moved/sub module" && + git config -f .gitmodules submodule.submodule2.path "moved/sub module" && + git commit -am "post move" && + git submodule update && + git status > out && + sed "s/$H2/XXX/" out >actual && + test_cmp expect actual + ) + +[detached HEAD d262110] pre move + Author: A U Thor + 3 files changed, 5 insertions(+), 1 deletion(-) + create mode 160000 deeper/submodule +rm 'submodule2' +[detached HEAD db0a21b] post move + Author: A U Thor + 2 files changed, 1 insertion(+), 1 deletion(-) + rename submodule2 => moved/sub module (100%) +Skipping submodule 'none' +Submodule path 'moved/sub module': checked out '9f300bf70a08f60a240990d98de1aaa8040994a1' +ok 49 - submodule update properly revives a moved submodule + +checking prerequisite: SYMLINKS + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && + # test whether the filesystem supports symbolic links + ln -s x y && test -h y + +) +prerequisite SYMLINKS ok +expecting success of 7406.50 'submodule update can handle symbolic links in pwd': + mkdir -p linked/dir && + ln -s linked/dir linkto && + (cd linkto && + git clone "$TRASH_DIRECTORY"/super_update_r2 super && + (cd super && + git submodule update --init --recursive + ) + ) + +Cloning into 'super'... +done. +Submodule 'submodule' (/build/git-2.30.2/t/trash directory.t7406-submodule-update/subsuper_update_r) registered for path 'submodule' +Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/linked/dir/super/submodule'... +done. +Submodule path 'submodule': checked out '86a3496a1d60636ce953ea5245c2a0f63a7a2aa8' +Submodule 'subsubmodule' (/build/git-2.30.2/t/trash directory.t7406-submodule-update/subsubsuper_update_r) registered for path 'submodule/subsubmodule' +Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/linked/dir/super/submodule/subsubmodule'... +done. +Submodule path 'submodule/subsubmodule': checked out '0d20a783d558db53f3b7ea74da7db3bb1a32b21b' +ok 50 - submodule update can handle symbolic links in pwd + +expecting success of 7406.51 'submodule update clone shallow submodule': + test_when_finished "rm -rf super3" && + first=$(git -C cloned rev-parse HEAD:submodule) && + second=$(git -C submodule rev-parse HEAD) && + commit_count=$(git -C submodule rev-list --count $first^..$second) && + git clone cloned super3 && + pwd=$(pwd) && ( - cd supersuper-clone && - # test superproject has alternates setup correctly - test_alternate_is_used .git/objects/info/alternates . && - # immediate submodule has alternate: - test_alternate_is_used .git/modules/subwithsub/objects/info/alternates subwithsub && - # nested submodule also has alternate: - test_alternate_is_used .git/modules/subwithsub/modules/sub/objects/info/alternates subwithsub/sub + cd super3 && + sed -e "s#url = ../#url = file://$pwd/#" <.gitmodules >.gitmodules.tmp && + mv -f .gitmodules.tmp .gitmodules && + git submodule update --init --depth=$commit_count && + git -C submodule log --oneline >out && + test_line_count = 1 out ) -Cloning into 'supersuper-clone'... +Cloning into 'super3'... done. -Submodule 'subwithsub' (file:///build/git-2.30.2/t/trash directory.t7408-submodule-reference/super) registered for path 'subwithsub' -Cloning into '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/supersuper-clone/subwithsub'... -Submodule path 'subwithsub': checked out '5dcb13829d0ea3a902800d87e74675154e078d3c' -Submodule 'sub' (file:///build/git-2.30.2/t/trash directory.t7408-submodule-reference/A) registered for path 'subwithsub/sub' -Submodule 'sub-dissociate' (file:///build/git-2.30.2/t/trash directory.t7408-submodule-reference/A) registered for path 'subwithsub/sub-dissociate' -Cloning into '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/supersuper-clone/subwithsub/sub'... -Cloning into '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/supersuper-clone/subwithsub/sub-dissociate'... -Submodule path 'subwithsub/sub': checked out '3f492fa355d2b55bd9e19f5535ac5e32c035e10f' -Submodule path 'subwithsub/sub-dissociate': checked out '3f492fa355d2b55bd9e19f5535ac5e32c035e10f' -ok 14 - nested submodule alternate in works and is actually used +Submodule 'merging' (file:///build/git-2.30.2/t/trash directory.t7406-submodule-update/merging) registered for path 'merging' +Submodule 'none' (file:///build/git-2.30.2/t/trash directory.t7406-submodule-update/none) registered for path 'none' +Submodule 'rebasing' (file:///build/git-2.30.2/t/trash directory.t7406-submodule-update/rebasing) registered for path 'rebasing' +Submodule 'submodule' (file:///build/git-2.30.2/t/trash directory.t7406-submodule-update/submodule) registered for path 'submodule' +Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/super3/merging'... +Skipping submodule 'none' +Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/super3/rebasing'... +Cloning into '/build/git-2.30.2/t/trash directory.t7406-submodule-update/super3/submodule'... +Submodule path 'merging': checked out '0c90624ab7f1aaa301d3bb79f60dcfed1ec4897f' +Submodule path 'rebasing': checked out '0c90624ab7f1aaa301d3bb79f60dcfed1ec4897f' +Submodule path 'submodule': checked out '4301fd3e4110d3b6212c19aed3094150392545b9' +ok 51 - submodule update clone shallow submodule -expecting success of 7408.15 'missing nested submodule alternate fails clone and submodule update': - test_when_finished "rm -rf supersuper-clone" && - test_must_fail git clone --recursive --reference supersuper2 supersuper2 supersuper-clone && +expecting success of 7406.52 'submodule update clone shallow submodule outside of depth': + test_when_finished "rm -rf super3" && + git clone cloned super3 && + pwd=$(pwd) && ( - cd supersuper-clone && - check_that_two_of_three_alternates_are_used && - # update of the submodule fails - test_must_fail git submodule update --init --recursive + cd super3 && + sed -e "s#url = ../#url = file://$pwd/#" <.gitmodules >.gitmodules.tmp && + mv -f .gitmodules.tmp .gitmodules && + # Some protocol versions (e.g. 2) support fetching + # unadvertised objects, so restrict this test to v0. + test_must_fail env GIT_TEST_PROTOCOL_VERSION=0 \ + git submodule update --init --depth=1 2>actual && + test_i18ngrep "Direct fetching of that commit failed." actual && + git -C ../submodule config uploadpack.allowReachableSHA1InWant true && + git submodule update --init --depth=1 >actual && + git -C submodule log --oneline >out && + test_line_count = 1 out ) -Cloning into 'supersuper-clone'... +Cloning into 'super3'... done. -Submodule 'subwithsub' (file:///build/git-2.30.2/t/trash directory.t7408-submodule-reference/super) registered for path 'subwithsub' -Cloning into '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/supersuper-clone/subwithsub'... -Submodule path 'subwithsub': checked out '5dcb13829d0ea3a902800d87e74675154e078d3c' -Submodule 'sub' (file:///build/git-2.30.2/t/trash directory.t7408-submodule-reference/A) registered for path 'subwithsub/sub' -Submodule 'sub-dissociate' (file:///build/git-2.30.2/t/trash directory.t7408-submodule-reference/A) registered for path 'subwithsub/sub-dissociate' -hint: An alternate computed from a superproject's alternate is invalid. -hint: To allow Git to clone without an alternate in such a case, set -hint: submodule.alternateErrorStrategy to 'info' or, equivalently, clone with -hint: '--reference-if-able' instead of '--reference'. -fatal: submodule 'sub' cannot add alternate: path '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/supersuper2/.git/modules/subwithsub/modules/sub/' does not exist -Failed to clone 'sub'. Retry scheduled -hint: An alternate computed from a superproject's alternate is invalid. -hint: To allow Git to clone without an alternate in such a case, set -hint: submodule.alternateErrorStrategy to 'info' or, equivalently, clone with -hint: '--reference-if-able' instead of '--reference'. -fatal: submodule 'sub-dissociate' cannot add alternate: path '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/supersuper2/.git/modules/subwithsub/modules/sub-dissociate/' does not exist -Failed to clone 'sub-dissociate'. Retry scheduled -hint: An alternate computed from a superproject's alternate is invalid. -hint: To allow Git to clone without an alternate in such a case, set -hint: submodule.alternateErrorStrategy to 'info' or, equivalently, clone with -hint: '--reference-if-able' instead of '--reference'. -fatal: submodule 'sub' cannot add alternate: path '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/supersuper2/.git/modules/subwithsub/modules/sub/' does not exist -Failed to clone 'sub' a second time, aborting -Failed to recurse into submodule path 'subwithsub' -hint: An alternate computed from a superproject's alternate is invalid. -hint: To allow Git to clone without an alternate in such a case, set -hint: submodule.alternateErrorStrategy to 'info' or, equivalently, clone with -hint: '--reference-if-able' instead of '--reference'. -fatal: submodule 'sub' cannot add alternate: path '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/supersuper2/.git/modules/subwithsub/modules/sub/' does not exist -Failed to clone 'sub'. Retry scheduled -hint: An alternate computed from a superproject's alternate is invalid. -hint: To allow Git to clone without an alternate in such a case, set -hint: submodule.alternateErrorStrategy to 'info' or, equivalently, clone with -hint: '--reference-if-able' instead of '--reference'. -fatal: submodule 'sub-dissociate' cannot add alternate: path '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/supersuper2/.git/modules/subwithsub/modules/sub-dissociate/' does not exist -Failed to clone 'sub-dissociate'. Retry scheduled -hint: An alternate computed from a superproject's alternate is invalid. -hint: To allow Git to clone without an alternate in such a case, set -hint: submodule.alternateErrorStrategy to 'info' or, equivalently, clone with -hint: '--reference-if-able' instead of '--reference'. -fatal: submodule 'sub' cannot add alternate: path '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/supersuper2/.git/modules/subwithsub/modules/sub/' does not exist -Failed to clone 'sub' a second time, aborting -Failed to recurse into submodule path 'subwithsub' -ok 15 - missing nested submodule alternate fails clone and submodule update +Submodule path 'merging': checked out '0c90624ab7f1aaa301d3bb79f60dcfed1ec4897f' +Submodule path 'rebasing': checked out '0c90624ab7f1aaa301d3bb79f60dcfed1ec4897f' +Fetched in submodule path 'submodule', but it did not contain 4301fd3e4110d3b6212c19aed3094150392545b9. Direct fetching of that commit failed. +Skipping submodule 'none' +From file:///build/git-2.30.2/t/trash directory.t7406-submodule-update/submodule + * branch 4301fd3e4110d3b6212c19aed3094150392545b9 -> FETCH_HEAD +ok 52 - submodule update clone shallow submodule outside of depth -expecting success of 7408.16 'missing nested submodule alternate in --reference-if-able mode': - test_when_finished "rm -rf supersuper-clone" && - git clone --recursive --reference-if-able supersuper2 supersuper2 supersuper-clone && +expecting success of 7406.53 'submodule update --recursive drops module name before recursing': + (cd super2 && + (cd deeper/submodule/subsubmodule && + git checkout HEAD^ + ) && + git submodule update --recursive deeper/submodule >actual && + test_i18ngrep "Submodule path .deeper/submodule/subsubmodule.: checked out" actual + ) + +Note: switching to 'HEAD^'. + +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. + +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: + + git switch -c + +Or undo this operation with: + + git switch - + +Turn off this advice by setting config variable advice.detachedHead to false + +HEAD is now at 2758ea9 upstream line4 +Submodule path 'deeper/submodule/subsubmodule': checked out 'e64979d13b9a9301a3030b8c005b1d9fd5397a44' +ok 53 - submodule update --recursive drops module name before recursing + +expecting success of 7406.54 'submodule update can be run in parallel': + (cd super2 && + GIT_TRACE=$(pwd)/trace.out git submodule update --jobs 7 && + grep "7 tasks" trace.out && + git config submodule.fetchJobs 8 && + GIT_TRACE=$(pwd)/trace.out git submodule update && + grep "8 tasks" trace.out && + GIT_TRACE=$(pwd)/trace.out git submodule update --jobs 9 && + grep "9 tasks" trace.out + ) + +Skipping submodule 'none' +run_processes_parallel: preparing to run up to 7 tasks +Skipping submodule 'none' +run_processes_parallel: preparing to run up to 8 tasks +Skipping submodule 'none' +run_processes_parallel: preparing to run up to 9 tasks +ok 54 - submodule update can be run in parallel + +expecting success of 7406.55 'git clone passes the parallel jobs config on to submodules': + test_when_finished "rm -rf super4" && + GIT_TRACE=$(pwd)/trace.out git clone --recurse-submodules --jobs 7 . super4 && + grep "7 tasks" trace.out && + rm -rf super4 && + git config --global submodule.fetchJobs 8 && + GIT_TRACE=$(pwd)/trace.out git clone --recurse-submodules . super4 && + grep "8 tasks" trace.out && + rm -rf super4 && + GIT_TRACE=$(pwd)/trace.out git clone --recurse-submodules --jobs 9 . super4 && + grep "9 tasks" trace.out && + rm -rf super4 + +Cloning into 'super4'... +done. +run_processes_parallel: preparing to run up to 7 tasks +Cloning into 'super4'... +done. +run_processes_parallel: preparing to run up to 8 tasks +Cloning into 'super4'... +done. +run_processes_parallel: preparing to run up to 9 tasks +ok 55 - git clone passes the parallel jobs config on to submodules + +expecting success of 7406.56 'submodule update --quiet passes quietness to merge/rebase': + (cd super && + test_commit -C rebasing message && + git submodule update --rebase --quiet >out 2>err && + test_must_be_empty out && + test_must_be_empty err && + git submodule update --rebase -v >out 2>err && + test_file_not_empty out && + test_must_be_empty err + ) + +[master 271c4a7] message + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 message.t +ok 56 - submodule update --quiet passes quietness to merge/rebase + +# passed all 56 test(s) +1..56 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t7413-submodule-is-active.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7413-submodule-is-active/.git/ +expecting success of 7413.1 'setup': + git config --global protocol.file.allow always && + git init sub && + test_commit -C sub initial && + git init super && + test_commit -C super initial && + git -C super submodule add ../sub sub1 && + git -C super submodule add ../sub sub2 && + + # Remove submodule..active entries in order to test in an + # environment where only URLs are present in the conifg + git -C super config --unset submodule.sub1.active && + git -C super config --unset submodule.sub2.active && + + git -C super commit -a -m "add 2 submodules at sub{1,2}" + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7413-submodule-is-active/sub/.git/ +[master (root-commit) 24b24cf] initial + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 initial.t +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7413-submodule-is-active/super/.git/ +[master (root-commit) 5e30013] initial + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 initial.t +Cloning into '/build/git-2.30.2/t/trash directory.t7413-submodule-is-active/super/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t7413-submodule-is-active/super/sub2'... +done. +[master b6e0cac] add 2 submodules at sub{1,2} + Author: A U Thor + 3 files changed, 8 insertions(+) + create mode 100644 .gitmodules + create mode 160000 sub1 + create mode 160000 sub2 +ok 1 - setup + +expecting success of 7413.2 'is-active works with urls': + git -C super submodule--helper is-active sub1 && + git -C super submodule--helper is-active sub2 && + + git -C super config --unset submodule.sub1.URL && + test_must_fail git -C super submodule--helper is-active sub1 && + git -C super config submodule.sub1.URL ../sub && + git -C super submodule--helper is-active sub1 + +ok 2 - is-active works with urls + +expecting success of 7413.3 'is-active works with submodule..active config': + test_when_finished "git -C super config --unset submodule.sub1.active" && + test_when_finished "git -C super config submodule.sub1.URL ../sub" && + + git -C super config --bool submodule.sub1.active "false" && + test_must_fail git -C super submodule--helper is-active sub1 && + + git -C super config --bool submodule.sub1.active "true" && + git -C super config --unset submodule.sub1.URL && + git -C super submodule--helper is-active sub1 + +ok 3 - is-active works with submodule..active config + +expecting success of 7413.4 'is-active works with basic submodule.active config': + test_when_finished "git -C super config submodule.sub1.URL ../sub" && + test_when_finished "git -C super config --unset-all submodule.active" && + + git -C super config --add submodule.active "." && + git -C super config --unset submodule.sub1.URL && + + git -C super submodule--helper is-active sub1 && + git -C super submodule--helper is-active sub2 + +ok 4 - is-active works with basic submodule.active config + +expecting success of 7413.5 'is-active correctly works with paths that are not submodules': + test_when_finished "git -C super config --unset-all submodule.active" && + + test_must_fail git -C super submodule--helper is-active not-a-submodule && + + git -C super config --add submodule.active "." && + test_must_fail git -C super submodule--helper is-active not-a-submodule + +ok 5 - is-active correctly works with paths that are not submodules + +expecting success of 7413.6 'is-active works with exclusions in submodule.active config': + test_when_finished "git -C super config --unset-all submodule.active" && + + git -C super config --add submodule.active "." && + git -C super config --add submodule.active ":(exclude)sub1" && + + test_must_fail git -C super submodule--helper is-active sub1 && + git -C super submodule--helper is-active sub2 + +ok 6 - is-active works with exclusions in submodule.active config + +expecting success of 7413.7 'is-active with submodule.active and submodule..active': + test_when_finished "git -C super config --unset-all submodule.active" && + test_when_finished "git -C super config --unset submodule.sub1.active" && + test_when_finished "git -C super config --unset submodule.sub2.active" && + + git -C super config --add submodule.active "sub1" && + git -C super config --bool submodule.sub1.active "false" && + git -C super config --bool submodule.sub2.active "true" && + + test_must_fail git -C super submodule--helper is-active sub1 && + git -C super submodule--helper is-active sub2 + +ok 7 - is-active with submodule.active and submodule..active + +expecting success of 7413.8 'is-active, submodule.active and submodule add': + test_when_finished "rm -rf super2" && + git init super2 && + test_commit -C super2 initial && + git -C super2 config --add submodule.active "sub*" && + + # submodule add should only add submodule..active + # to the config if not matched by the pathspec + git -C super2 submodule add ../sub sub1 && + test_must_fail git -C super2 config --get submodule.sub1.active && + + git -C super2 submodule add ../sub mod && + git -C super2 config --get submodule.mod.active + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7413-submodule-is-active/super2/.git/ +[master (root-commit) d39e3de] initial + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 initial.t +Cloning into '/build/git-2.30.2/t/trash directory.t7413-submodule-is-active/super2/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t7413-submodule-is-active/super2/mod'... +done. +true +ok 8 - is-active, submodule.active and submodule add + +# passed all 8 test(s) +1..8 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t7412-submodule-absorbgitdirs.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7412-submodule-absorbgitdirs/.git/ +expecting success of 7412.1 'setup a real submodule': + git init sub1 && + test_commit -C sub1 first && + git submodule add ./sub1 && + test_tick && + git commit -m superproject + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7412-submodule-absorbgitdirs/sub1/.git/ +[master (root-commit) 50e526b] first + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 first.t +Adding existing repo at 'sub1' to the index +[master (root-commit) 807c578] superproject + Author: A U Thor + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 sub1 +ok 1 - setup a real submodule + +expecting success of 7412.2 'absorb the git dir': + >expect.1 && + >expect.2 && + >actual.1 && + >actual.2 && + git status >expect.1 && + git -C sub1 rev-parse HEAD >expect.2 && + git submodule absorbgitdirs && + git fsck && + test -f sub1/.git && + test -d .git/modules/sub1 && + git status >actual.1 && + git -C sub1 rev-parse HEAD >actual.2 && + test_cmp expect.1 actual.1 && + test_cmp expect.2 actual.2 + +Migrating git directory of 'sub1' from +'/build/git-2.30.2/t/trash directory.t7412-submodule-absorbgitdirs/sub1/.git' to +'/build/git-2.30.2/t/trash directory.t7412-submodule-absorbgitdirs/.git/modules/sub1' +ok 2 - absorb the git dir + +expecting success of 7412.3 'absorbing does not fail for deinitialized submodules': + test_when_finished "git submodule update --init" && + git submodule deinit --all && + git submodule absorbgitdirs && + test -d .git/modules/sub1 && + test -d sub1 && + ! test -e sub1/.git + +Cleared directory 'sub1' +Submodule 'sub1' (./sub1) unregistered for path 'sub1' +warning: could not look up configuration 'remote.origin.url'. Assuming this repository is its own authoritative upstream. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7412-submodule-absorbgitdirs/sub1) registered for path 'sub1' +Submodule path 'sub1': checked out '50e526bb426771f6036ad3a8b0c81d511d91fc2a' +ok 3 - absorbing does not fail for deinitialized submodules + +expecting success of 7412.4 'setup nested submodule': + git init sub1/nested && + test_commit -C sub1/nested first_nested && + git -C sub1 submodule add ./nested && + test_tick && + git -C sub1 commit -m "add nested" && + git add sub1 && + git commit -m "sub1 to include nested submodule" + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7412-submodule-absorbgitdirs/sub1/nested/.git/ +[master (root-commit) 2139925] first_nested + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 first_nested.t +Adding existing repo at 'nested' to the index +[detached HEAD 838ca49] add nested + Author: A U Thor + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 nested +[master 4a7bb23] sub1 to include nested submodule + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +ok 4 - setup nested submodule + +expecting success of 7412.5 'absorb the git dir in a nested submodule': + git status >expect.1 && + git -C sub1/nested rev-parse HEAD >expect.2 && + git submodule absorbgitdirs && + test -f sub1/nested/.git && + test -d .git/modules/sub1/modules/nested && + git status >actual.1 && + git -C sub1/nested rev-parse HEAD >actual.2 && + test_cmp expect.1 actual.1 && + test_cmp expect.2 actual.2 + +Migrating git directory of 'sub1/nested' from +'/build/git-2.30.2/t/trash directory.t7412-submodule-absorbgitdirs/sub1/nested/.git' to +'/build/git-2.30.2/t/trash directory.t7412-submodule-absorbgitdirs/.git/modules/sub1/modules/nested' +ok 5 - absorb the git dir in a nested submodule + +expecting success of 7412.6 're-setup nested submodule': + # un-absorb the direct submodule, to test if the nested submodule + # is still correct (needs a rewrite of the gitfile only) + rm -rf sub1/.git && + mv .git/modules/sub1 sub1/.git && + GIT_WORK_TREE=. git -C sub1 config --unset core.worktree && + # fixup the nested submodule + echo "gitdir: ../.git/modules/nested" >sub1/nested/.git && + GIT_WORK_TREE=../../../nested git -C sub1/.git/modules/nested config \ + core.worktree "../../../nested" && + # make sure this re-setup is correct + git status --ignore-submodules=none && + + # also make sure this old setup does not regress + git submodule update --init --recursive >out 2>err && + test_must_be_empty out && + test_must_be_empty err + +On branch master +Untracked files: + (use "git add ..." to include in what will be committed) + actual.1 + actual.2 + expect.1 + expect.2 + +nothing added to commit but untracked files present (use "git add" to track) +ok 6 - re-setup nested submodule + +expecting success of 7412.7 'absorb the git dir in a nested submodule': + git status >expect.1 && + git -C sub1/nested rev-parse HEAD >expect.2 && + git submodule absorbgitdirs && + test -f sub1/.git && + test -f sub1/nested/.git && + test -d .git/modules/sub1/modules/nested && + git status >actual.1 && + git -C sub1/nested rev-parse HEAD >actual.2 && + test_cmp expect.1 actual.1 && + test_cmp expect.2 actual.2 + +Migrating git directory of 'sub1' from +'/build/git-2.30.2/t/trash directory.t7412-submodule-absorbgitdirs/sub1/.git' to +'/build/git-2.30.2/t/trash directory.t7412-submodule-absorbgitdirs/.git/modules/sub1' +ok 7 - absorb the git dir in a nested submodule + +expecting success of 7412.8 'setup a gitlink with missing .gitmodules entry': + git init sub2 && + test_commit -C sub2 first && + git add sub2 && + git commit -m superproject + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7412-submodule-absorbgitdirs/sub2/.git/ +[master (root-commit) 33e7427] first + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 first.t +warning: adding embedded git repository: sub2 +hint: You've added another git repository inside your current repository. +hint: Clones of the outer repository will not contain the contents of +hint: the embedded repository and will not know how to obtain it. +hint: If you meant to add a submodule, use: +hint: +hint: git submodule add sub2 +hint: +hint: If you added this path by mistake, you can remove it from the +hint: index with: +hint: +hint: git rm --cached sub2 +hint: +hint: See "git help submodule" for more information. +[master 23d83a4] superproject + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 160000 sub2 +ok 8 - setup a gitlink with missing .gitmodules entry + +expecting success of 7412.9 'absorbing the git dir fails for incomplete submodules': + git status >expect.1 && + git -C sub2 rev-parse HEAD >expect.2 && + test_must_fail git submodule absorbgitdirs && + git -C sub2 fsck && + test -d sub2/.git && + git status >actual && + git -C sub2 rev-parse HEAD >actual.2 && + test_cmp expect.1 actual.1 && + test_cmp expect.2 actual.2 + +fatal: could not lookup name for submodule 'sub2' +ok 9 - absorbing the git dir fails for incomplete submodules + +expecting success of 7412.10 'setup a submodule with multiple worktrees': + # first create another unembedded git dir in a new submodule + git init sub3 && + test_commit -C sub3 first && + git submodule add ./sub3 && + test_tick && + git commit -m "add another submodule" && + git -C sub3 worktree add ../sub3_second_work_tree + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7412-submodule-absorbgitdirs/sub3/.git/ +[master (root-commit) b9419e0] first + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 first.t +Adding existing repo at 'sub3' to the index +[master 8b0ea5c] add another submodule + Author: A U Thor + 2 files changed, 4 insertions(+) + create mode 160000 sub3 +Preparing worktree (new branch 'sub3_second_work_tree') +HEAD is now at b9419e0 first +ok 10 - setup a submodule with multiple worktrees + +expecting success of 7412.11 'absorbing fails for a submodule with multiple worktrees': + test_must_fail git submodule absorbgitdirs sub3 2>error && + test_i18ngrep "not supported" error + +checking prerequisite: C_LOCALE_OUTPUT + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false + +) +prerequisite C_LOCALE_OUTPUT ok +fatal: relocate_gitdir for submodule 'sub3' with more than one worktree not supported +ok 11 - absorbing fails for a submodule with multiple worktrees + +# passed all 11 test(s) +1..11 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t7414-submodule-mistakes.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7414-submodule-mistakes/.git/ +expecting success of 7414.1 'create embedded repository': + git init embed && + test_commit -C embed one + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7414-submodule-mistakes/embed/.git/ +[master (root-commit) d79ce16] one + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 one.t +ok 1 - create embedded repository + +expecting success of 7414.2 'git-add on embedded repository warns': + test_when_finished "git rm --cached -f embed" && + git add embed 2>stderr && + test_i18ngrep warning stderr + +checking prerequisite: C_LOCALE_OUTPUT + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false + +) +prerequisite C_LOCALE_OUTPUT ok +warning: adding embedded git repository: embed +rm 'embed' +ok 2 - git-add on embedded repository warns + +expecting success of 7414.3 '--no-warn-embedded-repo suppresses warning': + test_when_finished "git rm --cached -f embed" && + git add --no-warn-embedded-repo embed 2>stderr && + test_i18ngrep ! warning stderr + +rm 'embed' +ok 3 - --no-warn-embedded-repo suppresses warning + +expecting success of 7414.4 'no warning when updating entry': + test_when_finished "git rm --cached -f embed" && + git add embed && + git -C embed commit --allow-empty -m two && + git add embed 2>stderr && + test_i18ngrep ! warning stderr + +warning: adding embedded git repository: embed +hint: You've added another git repository inside your current repository. +hint: Clones of the outer repository will not contain the contents of +hint: the embedded repository and will not know how to obtain it. +hint: If you meant to add a submodule, use: +hint: +hint: git submodule add embed +hint: +hint: If you added this path by mistake, you can remove it from the +hint: index with: +hint: +hint: git rm --cached embed +hint: +hint: See "git help submodule" for more information. +[master b0129aa] two + Author: A U Thor +rm 'embed' +ok 4 - no warning when updating entry + +expecting success of 7414.5 'submodule add does not warn': + test_when_finished "git rm -rf submodule .gitmodules" && + git -c protocol.file.allow=always \ + submodule add ./embed submodule 2>stderr && + test_i18ngrep ! warning stderr + +rm '.gitmodules' +rm 'submodule' +ok 5 - submodule add does not warn + +# passed all 5 test(s) +1..5 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t7400-submodule-basic.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7400-submodule-basic/.git/ +expecting success of 7400.1 'setup - enable local submodules': + git config --global protocol.file.allow always + +ok 1 - setup - enable local submodules + +expecting success of 7400.2 'submodule deinit works on empty repository': + git submodule deinit --all + +ok 2 - submodule deinit works on empty repository + +expecting success of 7400.3 'setup - initial commit': + >t && + git add t && + git commit -m "initial commit" && + git branch initial + +[master (root-commit) 8f98e77] initial commit + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 t +ok 3 - setup - initial commit + +expecting success of 7400.4 'submodule init aborts on missing .gitmodules file': + test_when_finished "git update-index --remove sub" && + git update-index --add --cacheinfo 160000,$(git rev-parse HEAD),sub && + # missing the .gitmodules file here + test_must_fail git submodule init 2>actual && + test_i18ngrep "No url found for submodule path" actual + +checking prerequisite: C_LOCALE_OUTPUT + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false + +) +prerequisite C_LOCALE_OUTPUT ok +fatal: No url found for submodule path 'sub' in .gitmodules +ok 4 - submodule init aborts on missing .gitmodules file + +expecting success of 7400.5 'submodule update aborts on missing .gitmodules file': + test_when_finished "git update-index --remove sub" && + git update-index --add --cacheinfo 160000,$(git rev-parse HEAD),sub && + # missing the .gitmodules file here + git submodule update sub 2>actual && + test_i18ngrep "Submodule path .sub. not initialized" actual + +Submodule path 'sub' not initialized +ok 5 - submodule update aborts on missing .gitmodules file + +expecting success of 7400.6 'submodule update aborts on missing gitmodules url': + test_when_finished "git update-index --remove sub" && + git update-index --add --cacheinfo 160000,$(git rev-parse HEAD),sub && + test_when_finished "rm -f .gitmodules" && + git config -f .gitmodules submodule.s.path sub && + test_must_fail git submodule init + +fatal: No url found for submodule path 'sub' in .gitmodules +ok 6 - submodule update aborts on missing gitmodules url + +expecting success of 7400.7 'add aborts on repository with no commits': + cat >expect <<-\EOF && + 'repo-no-commits' does not have a commit checked out + EOF + git init repo-no-commits && + test_must_fail git submodule add ../a ./repo-no-commits 2>actual && + test_i18ncmp expect actual + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7400-submodule-basic/repo-no-commits/.git/ +ok 7 - add aborts on repository with no commits + +expecting success of 7400.8 'status should ignore inner git repo when not added': + rm -fr inner && + mkdir inner && + ( + cd inner && + git init && + >t && + git add t && + git commit -m "initial" + ) && + test_must_fail git submodule status inner 2>output.err && + rm -fr inner && + test_i18ngrep "^error: .*did not match any file(s) known to git" output.err + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7400-submodule-basic/inner/.git/ +[master (root-commit) 0ce53a8] initial + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 t +error: pathspec 'inner' did not match any file(s) known to git +ok 8 - status should ignore inner git repo when not added + +expecting success of 7400.9 'setup - repository in init subdirectory': + mkdir init && + ( + cd init && + git init && + echo a >a && + git add a && + git commit -m "submodule commit 1" && + git tag -a -m "rev-1" rev-1 + ) + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7400-submodule-basic/init/.git/ +[master (root-commit) 36aca32] submodule commit 1 + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 a +ok 9 - setup - repository in init subdirectory + +expecting success of 7400.10 'setup - commit with gitlink': + echo a >a && + echo z >z && + git add a init z && + git commit -m "super commit 1" + +warning: adding embedded git repository: init +hint: You've added another git repository inside your current repository. +hint: Clones of the outer repository will not contain the contents of +hint: the embedded repository and will not know how to obtain it. +hint: If you meant to add a submodule, use: +hint: +hint: git submodule add init +hint: +hint: If you added this path by mistake, you can remove it from the +hint: index with: +hint: +hint: git rm --cached init +hint: +hint: See "git help submodule" for more information. +[master 23ad8e1] super commit 1 + Author: A U Thor + 3 files changed, 3 insertions(+) + create mode 100644 a + create mode 160000 init + create mode 100644 z +ok 10 - setup - commit with gitlink + +expecting success of 7400.11 'setup - hide init subdirectory': + mv init .subrepo + +ok 11 - setup - hide init subdirectory + +expecting success of 7400.12 'setup - repository to add submodules to': + git init addtest && + git init addtest-ignore + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7400-submodule-basic/addtest/.git/ +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7400-submodule-basic/addtest-ignore/.git/ +ok 12 - setup - repository to add submodules to + +expecting success of 7400.13 'submodule add': + echo "refs/heads/master" >expect && + + ( + cd addtest && + git submodule add -q "$submodurl" submod >actual && + test_must_be_empty actual && + echo "gitdir: ../.git/modules/submod" >expect && + test_cmp expect submod/.git && + ( + cd submod && + git config core.worktree >actual && + echo "../../../submod" >expect && + test_cmp expect actual && + rm -f actual expect + ) && + git submodule init + ) && + + rm -f heads head untracked && + inspect addtest/submod ../.. && + test_cmp expect heads && + test_cmp expect head && + test_must_be_empty untracked + +ok 13 - submodule add + +expecting success of 7400.14 'setup parent and one repository': + test_create_repo parent && + test_commit -C parent one + +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7400-submodule-basic/parent/.git/ +[master (root-commit) d79ce16] one + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 one.t +ok 14 - setup parent and one repository + +expecting success of 7400.15 'redirected submodule add does not show progress': + git -C addtest submodule add "file://$submodurl/parent" submod-redirected \ + 2>err && + ! grep % err && + test_i18ngrep ! "Checking connectivity" err + +ok 15 - redirected submodule add does not show progress + +expecting success of 7400.16 'redirected submodule add --progress does show progress': + git -C addtest submodule add --progress "file://$submodurl/parent" \ + submod-redirected-progress 2>err && \ + grep % err + +remote: Counting objects: 33% (1/3) remote: Counting objects: 66% (2/3) remote: Counting objects: 100% (3/3) remote: Counting objects: 100% (3/3), done. +Receiving objects: 33% (1/3) Receiving objects: 66% (2/3) Receiving objects: 100% (3/3) Receiving objects: 100% (3/3), done. +ok 16 - redirected submodule add --progress does show progress + +expecting success of 7400.17 'submodule add to .gitignored path fails': + ( + cd addtest-ignore && + cat <<-\EOF >expect && + The following paths are ignored by one of your .gitignore files: + submod + hint: Use -f if you really want to add them. + hint: Turn this message off by running + hint: "git config advice.addIgnoredFile false" + EOF + # Does not use test_commit due to the ignore + echo "*" > .gitignore && + git add --force .gitignore && + git commit -m"Ignore everything" && + ! git submodule add "$submodurl" submod >actual 2>&1 && + test_i18ncmp expect actual + ) + +[master (root-commit) 29c0beb] Ignore everything + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 .gitignore +ok 17 - submodule add to .gitignored path fails + +expecting success of 7400.18 'submodule add to .gitignored path with --force': + ( + cd addtest-ignore && + git submodule add --force "$submodurl" submod + ) + +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/addtest-ignore/submod'... +done. +ok 18 - submodule add to .gitignored path with --force + +expecting success of 7400.19 'submodule add to reconfigure existing submodule with --force': + ( + cd addtest-ignore && + bogus_url="$(pwd)/bogus-url" && + git submodule add --force "$bogus_url" submod && + git submodule add --force -b initial "$submodurl" submod-branch && + test "$bogus_url" = "$(git config -f .gitmodules submodule.submod.url)" && + test "$bogus_url" = "$(git config submodule.submod.url)" && + # Restore the url + git submodule add --force "$submodurl" submod && + test "$submodurl" = "$(git config -f .gitmodules submodule.submod.url)" && + test "$submodurl" = "$(git config submodule.submod.url)" + ) + +Adding existing repo at 'submod' to the index +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/addtest-ignore/submod-branch'... +done. +Adding existing repo at 'submod' to the index +ok 19 - submodule add to reconfigure existing submodule with --force + +expecting success of 7400.20 'submodule add relays add --dry-run stderr': + test_when_finished "rm -rf addtest/.git/index.lock" && + ( + cd addtest && + : >.git/index.lock && + ! git submodule add "$submodurl" sub-while-locked 2>output.err && + test_i18ngrep "^fatal: .*index\.lock" output.err && + test_path_is_missing sub-while-locked + ) + +fatal: Unable to create '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/addtest/.git/index.lock': File exists. +ok 20 - submodule add relays add --dry-run stderr + +expecting success of 7400.21 'submodule add --branch': + echo "refs/heads/initial" >expect-head && + cat <<-\EOF >expect-heads && + refs/heads/initial + refs/heads/master + EOF + + ( + cd addtest && + git submodule add -b initial "$submodurl" submod-branch && + test "initial" = "$(git config -f .gitmodules submodule.submod-branch.branch)" && + git submodule init + ) && + + rm -f heads head untracked && + inspect addtest/submod-branch ../.. && + test_cmp expect-heads heads && + test_cmp expect-head head && + test_must_be_empty untracked + +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/addtest/submod-branch'... +done. +ok 21 - submodule add --branch + +expecting success of 7400.22 'submodule add with ./ in path': + echo "refs/heads/master" >expect && + + ( + cd addtest && + git submodule add "$submodurl" ././dotsubmod/./frotz/./ && + git submodule init + ) && + + rm -f heads head untracked && + inspect addtest/dotsubmod/frotz ../../.. && + test_cmp expect heads && + test_cmp expect head && + test_must_be_empty untracked + +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/addtest/dotsubmod/frotz'... +done. +ok 22 - submodule add with ./ in path + +expecting success of 7400.23 'submodule add with /././ in path': + echo "refs/heads/master" >expect && + + ( + cd addtest && + git submodule add "$submodurl" dotslashdotsubmod/././frotz/./ && + git submodule init + ) && + + rm -f heads head untracked && + inspect addtest/dotslashdotsubmod/frotz ../../.. && + test_cmp expect heads && + test_cmp expect head && + test_must_be_empty untracked + +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/addtest/dotslashdotsubmod/frotz'... +done. +ok 23 - submodule add with /././ in path + +expecting success of 7400.24 'submodule add with // in path': + echo "refs/heads/master" >expect && + + ( + cd addtest && + git submodule add "$submodurl" slashslashsubmod///frotz// && + git submodule init + ) && + + rm -f heads head untracked && + inspect addtest/slashslashsubmod/frotz ../../.. && + test_cmp expect heads && + test_cmp expect head && + test_must_be_empty untracked + +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/addtest/slashslashsubmod/frotz'... +done. +ok 24 - submodule add with // in path + +expecting success of 7400.25 'submodule add with /.. in path': + echo "refs/heads/master" >expect && + + ( + cd addtest && + git submodule add "$submodurl" dotdotsubmod/../realsubmod/frotz/.. && + git submodule init + ) && + + rm -f heads head untracked && + inspect addtest/realsubmod ../.. && + test_cmp expect heads && + test_cmp expect head && + test_must_be_empty untracked + +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/addtest/realsubmod'... +done. +ok 25 - submodule add with /.. in path + +expecting success of 7400.26 'submodule add with ./, /.. and // in path': + echo "refs/heads/master" >expect && + + ( + cd addtest && + git submodule add "$submodurl" dot/dotslashsubmod/./../..////realsubmod2/a/b/c/d/../../../../frotz//.. && + git submodule init + ) && + + rm -f heads head untracked && + inspect addtest/realsubmod2 ../.. && + test_cmp expect heads && + test_cmp expect head && + test_must_be_empty untracked + +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/addtest/realsubmod2'... +done. +ok 26 - submodule add with ./, /.. and // in path + +expecting success of 7400.27 'submodule add with \\ in path': + test_when_finished "rm -rf parent sub\\with\\backslash" && + + # Initialize a repo with a backslash in its name + git init sub\\with\\backslash && + touch sub\\with\\backslash/empty.file && + git -C sub\\with\\backslash add empty.file && + git -C sub\\with\\backslash commit -m "Added empty.file" && + + # Add that repository as a submodule + git init parent && + git -C parent submodule add ../sub\\with\\backslash + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7400-submodule-basic/sub\with\backslash/.git/ +[master (root-commit) a129325] Added empty.file + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 empty.file +Reinitialized existing Git repository in /build/git-2.30.2/t/trash directory.t7400-submodule-basic/parent/.git/ +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/parent/sub\with\backslash'... +done. +ok 27 - submodule add with \\ in path + +expecting success of 7400.28 'submodule add in subdirectory': + echo "refs/heads/master" >expect && + + mkdir addtest/sub && + ( + cd addtest/sub && + git submodule add "$submodurl" ../realsubmod3 && + git submodule init + ) && + + rm -f heads head untracked && + inspect addtest/realsubmod3 ../.. && + test_cmp expect heads && + test_cmp expect head && + test_must_be_empty untracked + +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/addtest/realsubmod3'... +done. +ok 28 - submodule add in subdirectory + +expecting success of 7400.29 'submodule add in subdirectory with relative path should fail': + ( + cd addtest/sub && + test_must_fail git submodule add ../../ submod3 2>../../output.err + ) && + test_i18ngrep toplevel output.err + +Relative path can only be used from the toplevel of the working tree +ok 29 - submodule add in subdirectory with relative path should fail + +expecting success of 7400.30 'setup - add an example entry to .gitmodules': + git config --file=.gitmodules submodule.example.url git://example.com/init.git + +ok 30 - setup - add an example entry to .gitmodules + +expecting success of 7400.31 'status should fail for unmapped paths': + test_must_fail git submodule status + +fatal: no submodule mapping found in .gitmodules for path 'init' +ok 31 - status should fail for unmapped paths + +expecting success of 7400.32 'setup - map path in .gitmodules': + cat <<\EOF >expect && +[submodule "example"] + url = git://example.com/init.git + path = init +EOF + + git config --file=.gitmodules submodule.example.path init && + + test_cmp expect .gitmodules + +ok 32 - setup - map path in .gitmodules + +expecting success of 7400.33 'status should only print one line': + git submodule status >lines && + test_line_count = 1 lines + +ok 33 - status should only print one line + +expecting success of 7400.34 'status from subdirectory should have the same SHA1': + test_when_finished "rmdir addtest/subdir" && + ( + cd addtest && + mkdir subdir && + git submodule status >output && + awk "{print \$1}" expect && + cd subdir && + git submodule status >../output && + awk "{print \$1}" <../output >../actual && + test_cmp ../expect ../actual && + git -C ../submod checkout HEAD^ && + git submodule status >../output && + awk "{print \$1}" <../output >../actual2 && + cd .. && + git submodule status >output && + awk "{print \$1}" expect2 && + test_cmp expect2 actual2 && + ! test_cmp actual actual2 + ) + +Note: switching to 'HEAD^'. + +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. + +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: + + git switch -c + +Or undo this operation with: + + git switch - + +Turn off this advice by setting config variable advice.detachedHead to false + +HEAD is now at 8f98e77 initial commit +--- actual 2023-04-29 18:32:38.039216450 +0000 ++++ actual2 2023-04-29 18:32:39.611067815 +0000 +@@ -4,7 +4,7 @@ + 23ad8e191a506339bc2aa0ae92a950f35303f38b + 23ad8e191a506339bc2aa0ae92a950f35303f38b + 23ad8e191a506339bc2aa0ae92a950f35303f38b +-23ad8e191a506339bc2aa0ae92a950f35303f38b +++8f98e7791903e3a21e37e7c040acf7518da96e03 + 8f98e7791903e3a21e37e7c040acf7518da96e03 + d79ce1670bdcb76e6d1da2ae095e890ccb326ae9 + d79ce1670bdcb76e6d1da2ae095e890ccb326ae9 +ok 34 - status from subdirectory should have the same SHA1 + +expecting success of 7400.35 'setup - fetch commit name from submodule': + rev1=$(cd .subrepo && git rev-parse HEAD) && + printf "rev1: %s\n" "$rev1" && + test -n "$rev1" + +rev1: 36aca326f3b39b6c280a410fa907ac252a2075c6 +ok 35 - setup - fetch commit name from submodule + +expecting success of 7400.36 'status should initially be "missing"': + git submodule status >lines && + grep "^-$rev1" lines + +-36aca326f3b39b6c280a410fa907ac252a2075c6 init +ok 36 - status should initially be "missing" + +expecting success of 7400.37 'init should register submodule url in .git/config': + echo git://example.com/init.git >expect && + + git submodule init && + git config submodule.example.url >url && + git config submodule.example.url ./.subrepo && + + test_cmp expect url + +Submodule 'example' (git://example.com/init.git) registered for path 'init' +ok 37 - init should register submodule url in .git/config + +expecting success of 7400.38 'status should still be "missing" after initializing': + rm -fr init && + mkdir init && + git submodule status >lines && + rm -fr init && + grep "^-$rev1" lines + +-36aca326f3b39b6c280a410fa907ac252a2075c6 init +ok 38 - status should still be "missing" after initializing + +expecting success of 7400.39 'init should fail with unknown submodule': + test_failure_with_unknown_submodule init + +error: pathspec 'no-such-submodule' did not match any file(s) known to git +ok 39 - init should fail with unknown submodule + +expecting success of 7400.40 'update should fail with unknown submodule': + test_failure_with_unknown_submodule update + +error: pathspec 'no-such-submodule' did not match any file(s) known to git +ok 40 - update should fail with unknown submodule + +expecting success of 7400.41 'status should fail with unknown submodule': + test_failure_with_unknown_submodule status + +error: pathspec 'no-such-submodule' did not match any file(s) known to git +ok 41 - status should fail with unknown submodule + +expecting success of 7400.42 'sync should fail with unknown submodule': + test_failure_with_unknown_submodule sync + +error: pathspec 'no-such-submodule' did not match any file(s) known to git +ok 42 - sync should fail with unknown submodule + +expecting success of 7400.43 'update should fail when path is used by a file': + echo hello >expect && + + echo "hello" >init && + test_must_fail git submodule update && + + test_cmp expect init + +fatal: destination path '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init' already exists and is not an empty directory. +fatal: clone of './.subrepo' into submodule path '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init' failed +Failed to clone 'init'. Retry scheduled +fatal: destination path '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init' already exists and is not an empty directory. +fatal: clone of './.subrepo' into submodule path '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init' failed +Failed to clone 'init' a second time, aborting +ok 43 - update should fail when path is used by a file + +expecting success of 7400.44 'update should fail when path is used by a nonempty directory': + echo hello >expect && + + rm -fr init && + mkdir init && + echo "hello" >init/a && + + test_must_fail git submodule update && + + test_cmp expect init/a + +fatal: destination path '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init' already exists and is not an empty directory. +fatal: clone of './.subrepo' into submodule path '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init' failed +Failed to clone 'init'. Retry scheduled +fatal: destination path '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init' already exists and is not an empty directory. +fatal: clone of './.subrepo' into submodule path '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init' failed +Failed to clone 'init' a second time, aborting +ok 44 - update should fail when path is used by a nonempty directory + +expecting success of 7400.45 'update should work when path is an empty dir': + rm -fr init && + rm -f head-sha1 && + echo "$rev1" >expect && + + mkdir init && + git submodule update -q >update.out && + test_must_be_empty update.out && + + inspect init && + test_cmp expect head-sha1 + +fatal: ref HEAD is not a symbolic ref +ok 45 - update should work when path is an empty dir + +expecting success of 7400.46 'status should be "up-to-date" after update': + git submodule status >list && + grep "^ $rev1" list + + 36aca326f3b39b6c280a410fa907ac252a2075c6 init (rev-1) +ok 46 - status should be "up-to-date" after update + +expecting success of 7400.47 'status "up-to-date" from subdirectory': + mkdir -p sub && + ( + cd sub && + git submodule status >../list + ) && + grep "^ $rev1" list && + grep "\\.\\./init" list + + 36aca326f3b39b6c280a410fa907ac252a2075c6 ../init (rev-1) + 36aca326f3b39b6c280a410fa907ac252a2075c6 ../init (rev-1) +ok 47 - status "up-to-date" from subdirectory + +expecting success of 7400.48 'status "up-to-date" from subdirectory with path': + mkdir -p sub && + ( + cd sub && + git submodule status ../init >../list + ) && + grep "^ $rev1" list && + grep "\\.\\./init" list + + 36aca326f3b39b6c280a410fa907ac252a2075c6 ../init (rev-1) + 36aca326f3b39b6c280a410fa907ac252a2075c6 ../init (rev-1) +ok 48 - status "up-to-date" from subdirectory with path + +expecting success of 7400.49 'status should be "modified" after submodule commit': + ( + cd init && + echo b >b && + git add b && + git commit -m "submodule commit 2" + ) && + + rev2=$(cd init && git rev-parse HEAD) && + test -n "$rev2" && + git submodule status >list && + + grep "^+$rev2" list + +[detached HEAD 8eafb57] submodule commit 2 + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 b ++8eafb57b6146d899eeaa430c12864a09fcb0e7e1 init (rev-1-1-g8eafb57) +ok 49 - status should be "modified" after submodule commit + +expecting success of 7400.50 'the --cached sha1 should be rev1': + git submodule --cached status >list && + grep "^+$rev1" list + ++36aca326f3b39b6c280a410fa907ac252a2075c6 init (rev-1) +ok 50 - the --cached sha1 should be rev1 + +expecting success of 7400.51 'git diff should report the SHA1 of the new submodule commit': + git diff >diff && + grep "^+Subproject commit $rev2" diff + ++Subproject commit 8eafb57b6146d899eeaa430c12864a09fcb0e7e1 +ok 51 - git diff should report the SHA1 of the new submodule commit + +expecting success of 7400.52 'update should checkout rev1': + rm -f head-sha1 && + echo "$rev1" >expect && + + git submodule update init && + inspect init && + + test_cmp expect head-sha1 + +Submodule path 'init': checked out '36aca326f3b39b6c280a410fa907ac252a2075c6' +fatal: ref HEAD is not a symbolic ref +ok 52 - update should checkout rev1 + +expecting success of 7400.53 'status should be "up-to-date" after update': + git submodule status >list && + grep "^ $rev1" list + + 36aca326f3b39b6c280a410fa907ac252a2075c6 init (rev-1) +ok 53 - status should be "up-to-date" after update + +expecting success of 7400.54 'checkout superproject with subproject already present': + git checkout initial && + git checkout master + +warning: unable to rmdir 'init': Directory not empty +Switched to branch 'initial' +Switched to branch 'master' +ok 54 - checkout superproject with subproject already present + +expecting success of 7400.55 'apply submodule diff': + git branch second && + ( + cd init && + echo s >s && + git add s && + git commit -m "change subproject" + ) && + git update-index --add init && + git commit -m "change init" && + git format-patch -1 --stdout >P.diff && + git checkout second && + git apply --index P.diff && + + git diff --cached master >staged && + test_must_be_empty staged + +[detached HEAD da28091] change subproject + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 s +[master cb68a4b] change init + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +Switched to branch 'second' +M init +warning: unable to rmdir 'init': Directory not empty +ok 55 - apply submodule diff + +expecting success of 7400.56 'update --init': + mv init init2 && + git config -f .gitmodules submodule.example.url "$(pwd)/init2" && + git config --remove-section submodule.example && + test_must_fail git config submodule.example.url && + + git submodule update init 2> update.out && + test_i18ngrep "not initialized" update.out && + test_must_fail git rev-parse --resolve-git-dir init/.git && + + git submodule update --init init && + git rev-parse --resolve-git-dir init/.git + +Submodule path 'init' not initialized +fatal: not a gitdir 'init/.git' +Submodule 'example' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init2) registered for path 'init' +Submodule path 'init': checked out 'da28091fa1960864823ed381ef2a1c41222b8351' +/build/git-2.30.2/t/trash directory.t7400-submodule-basic/.git/modules/example +ok 56 - update --init + +expecting success of 7400.57 'update --init from subdirectory': + mv init init2 && + git config -f .gitmodules submodule.example.url "$(pwd)/init2" && + git config --remove-section submodule.example && + test_must_fail git config submodule.example.url && + + mkdir -p sub && + ( + cd sub && + git submodule update ../init 2>update.out && + test_i18ngrep "not initialized" update.out && + test_must_fail git rev-parse --resolve-git-dir ../init/.git && + + git submodule update --init ../init + ) && + git rev-parse --resolve-git-dir init/.git + +Submodule path 'init' not initialized +fatal: not a gitdir '../init/.git' +Submodule 'example' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init2) registered for path '../init' +Submodule path '../init': checked out 'da28091fa1960864823ed381ef2a1c41222b8351' +/build/git-2.30.2/t/trash directory.t7400-submodule-basic/.git/modules/example +ok 57 - update --init from subdirectory + +expecting success of 7400.58 'do not add files from a submodule': + + git reset --hard && + test_must_fail git add init/a + + +HEAD is now at 23ad8e1 super commit 1 +fatal: Pathspec 'init/a' is in submodule 'init' +ok 58 - do not add files from a submodule + +expecting success of 7400.59 'gracefully add/reset submodule with a trailing slash': + + git reset --hard && + git commit -m "commit subproject" init && + (cd init && + echo b > a) && + git add init/ && + git diff --exit-code --cached init && + commit=$(cd init && + git commit -m update a >/dev/null && + git rev-parse HEAD) && + git add init/ && + test_must_fail git diff --exit-code --cached init && + test $commit = $(git ls-files --stage | + sed -n "s/^160000 \([^ ]*\).*/\1/p") && + git reset init/ && + git diff --exit-code --cached init + + +HEAD is now at 23ad8e1 super commit 1 +[second 365536a] commit subproject + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +diff --git a/init b/init +index da28091..cf4817b 160000 +--- a/init ++++ b/init +@@ -1 +1 @@ +-Subproject commit da28091fa1960864823ed381ef2a1c41222b8351 ++Subproject commit cf4817bea522d7a895a8f804894e1254c741baae +Unstaged changes after reset: +M init +ok 59 - gracefully add/reset submodule with a trailing slash + +expecting success of 7400.60 'ls-files gracefully handles trailing slash': + + test "init" = "$(git ls-files init/)" + + +ok 60 - ls-files gracefully handles trailing slash + +expecting success of 7400.61 'moving to a commit without submodule does not leave empty dir': + rm -rf init && + mkdir init && + git reset --hard && + git checkout initial && + test ! -d init && + git checkout second + +HEAD is now at 365536a commit subproject +Switched to branch 'initial' +Switched to branch 'second' +ok 61 - moving to a commit without submodule does not leave empty dir + +expecting success of 7400.62 'submodule fails': + test_must_fail git submodule no-such-subcommand + +usage: git submodule [--quiet] [--cached] + or: git submodule [--quiet] add [-b ] [-f|--force] [--name ] [--reference ] [--] [] + or: git submodule [--quiet] status [--cached] [--recursive] [--] [...] + or: git submodule [--quiet] init [--] [...] + or: git submodule [--quiet] deinit [-f|--force] (--all| [--] ...) + or: git submodule [--quiet] update [--init] [--remote] [-N|--no-fetch] [-f|--force] [--checkout|--merge|--rebase] [--[no-]recommend-shallow] [--reference ] [--recursive] [--[no-]single-branch] [--] [...] + or: git submodule [--quiet] set-branch (--default|--branch ) [--] + or: git submodule [--quiet] set-url [--] + or: git submodule [--quiet] summary [--cached|--files] [--summary-limit ] [commit] [--] [...] + or: git submodule [--quiet] foreach [--recursive] + or: git submodule [--quiet] sync [--recursive] [--] [...] + or: git submodule [--quiet] absorbgitdirs [--] [...] +ok 62 - submodule fails + +expecting success of 7400.63 'add submodules without specifying an explicit path': + mkdir repo && + ( + cd repo && + git init && + echo r >r && + git add r && + git commit -m "repo commit 1" + ) && + git clone --bare repo/ bare.git && + ( + cd addtest && + git submodule add "$submodurl/repo" && + git config -f .gitmodules submodule.repo.path repo && + git submodule add "$submodurl/bare.git" && + git config -f .gitmodules submodule.bare.path bare + ) + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7400-submodule-basic/repo/.git/ +[master (root-commit) 0244caa] repo commit 1 + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 r +Cloning into bare repository 'bare.git'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/addtest/repo'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/addtest/bare'... +done. +ok 63 - add submodules without specifying an explicit path + +expecting success of 7400.64 'add should fail when path is used by a file': + ( + cd addtest && + touch file && + test_must_fail git submodule add "$submodurl/repo" file + ) + +'file' already exists and is not a valid git repo +ok 64 - add should fail when path is used by a file + +expecting success of 7400.65 'add should fail when path is used by an existing directory': + ( + cd addtest && + mkdir empty-dir && + test_must_fail git submodule add "$submodurl/repo" empty-dir + ) + +'empty-dir' already exists and is not a valid git repo +ok 65 - add should fail when path is used by an existing directory + +expecting success of 7400.66 'use superproject as upstream when path is relative and no url is set there': + ( + cd addtest && + git submodule add ../repo relative && + test "$(git config -f .gitmodules submodule.relative.url)" = ../repo && + git submodule sync relative && + test "$(git config submodule.relative.url)" = "$submodurl/repo" + ) + +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/addtest/relative'... +done. +Synchronizing submodule url for 'relative' +ok 66 - use superproject as upstream when path is relative and no url is set there + +expecting success of 7400.67 'set up for relative path tests': + mkdir reltest && + ( + cd reltest && + git init && + mkdir sub && + ( + cd sub && + git init && + test_commit foo + ) && + git add sub && + git config -f .gitmodules submodule.sub.path sub && + git config -f .gitmodules submodule.sub.url ../subrepo && + cp .git/config pristine-.git-config && + cp .gitmodules pristine-.gitmodules + ) + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7400-submodule-basic/reltest/.git/ +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7400-submodule-basic/reltest/sub/.git/ +[master (root-commit) 946e985] foo + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 foo.t +warning: adding embedded git repository: sub +hint: You've added another git repository inside your current repository. +hint: Clones of the outer repository will not contain the contents of +hint: the embedded repository and will not know how to obtain it. +hint: If you meant to add a submodule, use: +hint: +hint: git submodule add sub +hint: +hint: If you added this path by mistake, you can remove it from the +hint: index with: +hint: +hint: git rm --cached sub +hint: +hint: See "git help submodule" for more information. +ok 67 - set up for relative path tests + +expecting success of 7400.68 '../subrepo works with URL - ssh://hostname/repo': + ( + cd reltest && + cp pristine-.git-config .git/config && + cp pristine-.gitmodules .gitmodules && + git config remote.origin.url ssh://hostname/repo && + git submodule init && + test "$(git config submodule.sub.url)" = ssh://hostname/subrepo + ) + +Submodule 'sub' (ssh://hostname/subrepo) registered for path 'sub' +ok 68 - ../subrepo works with URL - ssh://hostname/repo + +expecting success of 7400.69 '../subrepo works with port-qualified URL - ssh://hostname:22/repo': + ( + cd reltest && + cp pristine-.git-config .git/config && + cp pristine-.gitmodules .gitmodules && + git config remote.origin.url ssh://hostname:22/repo && + git submodule init && + test "$(git config submodule.sub.url)" = ssh://hostname:22/subrepo + ) + +Submodule 'sub' (ssh://hostname:22/subrepo) registered for path 'sub' +ok 69 - ../subrepo works with port-qualified URL - ssh://hostname:22/repo + +expecting success of 7400.70 '../subrepo path works with local path - //somewhere else/repo': + ( + cd reltest && + cp pristine-.git-config .git/config && + cp pristine-.gitmodules .gitmodules && + git config remote.origin.url "//somewhere else/repo" && + git submodule init && + test "$(git config submodule.sub.url)" = "//somewhere else/subrepo" + ) + +Submodule 'sub' (//somewhere else/subrepo) registered for path 'sub' +ok 70 - ../subrepo path works with local path - //somewhere else/repo + +expecting success of 7400.71 '../subrepo works with file URL - file:///tmp/repo': + ( + cd reltest && + cp pristine-.git-config .git/config && + cp pristine-.gitmodules .gitmodules && + git config remote.origin.url file:///tmp/repo && + git submodule init && + test "$(git config submodule.sub.url)" = file:///tmp/subrepo + ) + +Submodule 'sub' (file:///tmp/subrepo) registered for path 'sub' +ok 71 - ../subrepo works with file URL - file:///tmp/repo + +expecting success of 7400.72 '../subrepo works with helper URL- helper:://hostname/repo': + ( + cd reltest && + cp pristine-.git-config .git/config && + cp pristine-.gitmodules .gitmodules && + git config remote.origin.url helper:://hostname/repo && + git submodule init && + test "$(git config submodule.sub.url)" = helper:://hostname/subrepo + ) + +Submodule 'sub' (helper:://hostname/subrepo) registered for path 'sub' +ok 72 - ../subrepo works with helper URL- helper:://hostname/repo + +expecting success of 7400.73 '../subrepo works with scp-style URL - user@host:repo': + ( + cd reltest && + cp pristine-.git-config .git/config && + git config remote.origin.url user@host:repo && + git submodule init && + test "$(git config submodule.sub.url)" = user@host:subrepo + ) + +Submodule 'sub' (user@host:subrepo) registered for path 'sub' +ok 73 - ../subrepo works with scp-style URL - user@host:repo + +expecting success of 7400.74 '../subrepo works with scp-style URL - user@host:path/to/repo': + ( + cd reltest && + cp pristine-.git-config .git/config && + cp pristine-.gitmodules .gitmodules && + git config remote.origin.url user@host:path/to/repo && + git submodule init && + test "$(git config submodule.sub.url)" = user@host:path/to/subrepo + ) + +Submodule 'sub' (user@host:path/to/subrepo) registered for path 'sub' +ok 74 - ../subrepo works with scp-style URL - user@host:path/to/repo + +expecting success of 7400.75 '../subrepo works with relative local path - foo': + ( + cd reltest && + cp pristine-.git-config .git/config && + cp pristine-.gitmodules .gitmodules && + git config remote.origin.url foo && + # actual: fails with an error + git submodule init && + test "$(git config submodule.sub.url)" = subrepo + ) + +Submodule 'sub' (subrepo) registered for path 'sub' +ok 75 - ../subrepo works with relative local path - foo + +expecting success of 7400.76 '../subrepo works with relative local path - foo/bar': + ( + cd reltest && + cp pristine-.git-config .git/config && + cp pristine-.gitmodules .gitmodules && + git config remote.origin.url foo/bar && + git submodule init && + test "$(git config submodule.sub.url)" = foo/subrepo + ) + +Submodule 'sub' (foo/subrepo) registered for path 'sub' +ok 76 - ../subrepo works with relative local path - foo/bar + +expecting success of 7400.77 '../subrepo works with relative local path - ./foo': + ( + cd reltest && + cp pristine-.git-config .git/config && + cp pristine-.gitmodules .gitmodules && + git config remote.origin.url ./foo && + git submodule init && + test "$(git config submodule.sub.url)" = subrepo + ) + +Submodule 'sub' (subrepo) registered for path 'sub' +ok 77 - ../subrepo works with relative local path - ./foo + +expecting success of 7400.78 '../subrepo works with relative local path - ./foo/bar': + ( + cd reltest && + cp pristine-.git-config .git/config && + cp pristine-.gitmodules .gitmodules && + git config remote.origin.url ./foo/bar && + git submodule init && + test "$(git config submodule.sub.url)" = foo/subrepo + ) + +Submodule 'sub' (foo/subrepo) registered for path 'sub' +ok 78 - ../subrepo works with relative local path - ./foo/bar + +expecting success of 7400.79 '../subrepo works with relative local path - ../foo': + ( + cd reltest && + cp pristine-.git-config .git/config && + cp pristine-.gitmodules .gitmodules && + git config remote.origin.url ../foo && + git submodule init && + test "$(git config submodule.sub.url)" = ../subrepo + ) + +Submodule 'sub' (../subrepo) registered for path 'sub' +ok 79 - ../subrepo works with relative local path - ../foo + +expecting success of 7400.80 '../subrepo works with relative local path - ../foo/bar': + ( + cd reltest && + cp pristine-.git-config .git/config && + cp pristine-.gitmodules .gitmodules && + git config remote.origin.url ../foo/bar && + git submodule init && + test "$(git config submodule.sub.url)" = ../foo/subrepo + ) + +Submodule 'sub' (../foo/subrepo) registered for path 'sub' +ok 80 - ../subrepo works with relative local path - ../foo/bar + +expecting success of 7400.81 '../bar/a/b/c works with relative local path - ../foo/bar.git': + ( + cd reltest && + cp pristine-.git-config .git/config && + cp pristine-.gitmodules .gitmodules && + mkdir -p a/b/c && + (cd a/b/c && git init && test_commit msg) && + git config remote.origin.url ../foo/bar.git && + git submodule add ../bar/a/b/c ./a/b/c && + git submodule init && + test "$(git config submodule.a/b/c.url)" = ../foo/bar/a/b/c + ) + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7400-submodule-basic/reltest/a/b/c/.git/ +[master (root-commit) 11e1cd7] msg + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 msg.t +Adding existing repo at 'a/b/c' to the index +Submodule 'sub' (../foo/subrepo) registered for path 'sub' +ok 81 - ../bar/a/b/c works with relative local path - ../foo/bar.git + +expecting success of 7400.82 'moving the superproject does not break submodules': + ( + cd addtest && + git submodule status >expect + ) && + mv addtest addtest2 && + ( + cd addtest2 && + git submodule status >actual && + test_cmp expect actual + ) + +ok 82 - moving the superproject does not break submodules + +expecting success of 7400.83 'moving the submodule does not break the superproject': + ( + cd addtest2 && + git submodule status + ) >actual && + sed -e "s/^ \([^ ]* repo\) .*/-\1/" expect && + mv addtest2/repo addtest2/repo.bak && + test_when_finished "mv addtest2/repo.bak addtest2/repo" && + ( + cd addtest2 && + git submodule status + ) >actual && + test_cmp expect actual + +ok 83 - moving the submodule does not break the superproject + +expecting success of 7400.84 'submodule add --name allows to replace a submodule with another at the same path': ( - cd supersuper-clone && - check_that_two_of_three_alternates_are_used && - # update of the submodule succeeds - git submodule update --init --recursive + cd addtest2 && + ( + cd repo && + echo "$submodurl/repo" >expect && + git config remote.origin.url >actual && + test_cmp expect actual && + echo "gitdir: ../.git/modules/repo" >expect && + test_cmp expect .git + ) && + rm -rf repo && + git rm repo && + git submodule add -q --name repo_new "$submodurl/bare.git" repo >actual && + test_must_be_empty actual && + echo "gitdir: ../.git/modules/submod" >expect && + test_cmp expect submod/.git && + ( + cd repo && + echo "$submodurl/bare.git" >expect && + git config remote.origin.url >actual && + test_cmp expect actual && + echo "gitdir: ../.git/modules/repo_new" >expect && + test_cmp expect .git + ) && + echo "repo" >expect && + test_must_fail git config -f .gitmodules submodule.repo.path && + git config -f .gitmodules submodule.repo_new.path >actual && + test_cmp expect actual && + echo "$submodurl/repo" >expect && + test_must_fail git config -f .gitmodules submodule.repo.url && + echo "$submodurl/bare.git" >expect && + git config -f .gitmodules submodule.repo_new.url >actual && + test_cmp expect actual && + echo "$submodurl/repo" >expect && + git config submodule.repo.url >actual && + test_cmp expect actual && + echo "$submodurl/bare.git" >expect && + git config submodule.repo_new.url >actual && + test_cmp expect actual ) -Cloning into 'supersuper-clone'... -done. -Submodule 'subwithsub' (file:///build/git-2.30.2/t/trash directory.t7408-submodule-reference/super) registered for path 'subwithsub' -Cloning into '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/supersuper-clone/subwithsub'... -Submodule path 'subwithsub': checked out '5dcb13829d0ea3a902800d87e74675154e078d3c' -Submodule 'sub' (file:///build/git-2.30.2/t/trash directory.t7408-submodule-reference/A) registered for path 'subwithsub/sub' -Submodule 'sub-dissociate' (file:///build/git-2.30.2/t/trash directory.t7408-submodule-reference/A) registered for path 'subwithsub/sub-dissociate' -submodule 'sub' cannot add alternate: path '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/supersuper2/.git/modules/subwithsub/modules/sub/' does not exist -Cloning into '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/supersuper-clone/subwithsub/sub'... -submodule 'sub-dissociate' cannot add alternate: path '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/supersuper2/.git/modules/subwithsub/modules/sub-dissociate/' does not exist -Cloning into '/build/git-2.30.2/t/trash directory.t7408-submodule-reference/supersuper-clone/subwithsub/sub-dissociate'... -Submodule path 'subwithsub/sub': checked out '3f492fa355d2b55bd9e19f5535ac5e32c035e10f' -Submodule path 'subwithsub/sub-dissociate': checked out '3f492fa355d2b55bd9e19f5535ac5e32c035e10f' -ok 16 - missing nested submodule alternate in --reference-if-able mode +rm 'repo' +ok 84 - submodule add --name allows to replace a submodule with another at the same path -# passed all 16 test(s) -1..16 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t7412-submodule-absorbgitdirs.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7412-submodule-absorbgitdirs/.git/ -expecting success of 7412.1 'setup a real submodule': - git init sub1 && - test_commit -C sub1 first && - git submodule add ./sub1 && - test_tick && - git commit -m superproject +expecting success of 7400.85 'recursive relative submodules stay relative': + test_when_finished "rm -rf super clone2 subsub sub3" && + mkdir subsub && + ( + cd subsub && + git init && + >t && + git add t && + git commit -m "initial commit" + ) && + mkdir sub3 && + ( + cd sub3 && + git init && + >t && + git add t && + git commit -m "initial commit" && + git submodule add ../subsub dirdir/subsub && + git commit -m "add submodule subsub" + ) && + mkdir super && + ( + cd super && + git init && + >t && + git add t && + git commit -m "initial commit" && + git submodule add ../sub3 && + git commit -m "add submodule sub" + ) && + git clone super clone2 && + ( + cd clone2 && + git submodule update --init --recursive && + echo "gitdir: ../.git/modules/sub3" >./sub3/.git_expect && + echo "gitdir: ../../../.git/modules/sub3/modules/dirdir/subsub" >./sub3/dirdir/subsub/.git_expect + ) && + test_cmp clone2/sub3/.git_expect clone2/sub3/.git && + test_cmp clone2/sub3/dirdir/subsub/.git_expect clone2/sub3/dirdir/subsub/.git hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all @@ -356048,63 +353990,127 @@ hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7412-submodule-absorbgitdirs/sub1/.git/ -[master (root-commit) 50e526b] first +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7400-submodule-basic/subsub/.git/ +[master (root-commit) b53efa3] initial commit Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 first.t -Adding existing repo at 'sub1' to the index -[master (root-commit) 807c578] superproject + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 t +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7400-submodule-basic/sub3/.git/ +[master (root-commit) b53efa3] initial commit + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 t +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/sub3/dirdir/subsub'... +done. +[master e6f2fcc] add submodule subsub Author: A U Thor 2 files changed, 4 insertions(+) create mode 100644 .gitmodules - create mode 160000 sub1 -ok 1 - setup a real submodule + create mode 160000 dirdir/subsub +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7400-submodule-basic/super/.git/ +[master (root-commit) b53efa3] initial commit + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 t +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/super/sub3'... +done. +[master a307821] add submodule sub + Author: A U Thor + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 sub3 +Cloning into 'clone2'... +done. +Submodule 'sub3' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/sub3) registered for path 'sub3' +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/clone2/sub3'... +done. +Submodule path 'sub3': checked out 'e6f2fcc279299766e5fd82861e01a38b63aaaf3b' +Submodule 'dirdir/subsub' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/subsub) registered for path 'sub3/dirdir/subsub' +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/clone2/sub3/dirdir/subsub'... +done. +Submodule path 'sub3/dirdir/subsub': checked out 'b53efa3ba7e36ac5829f9621027fbe0575deb58e' +ok 85 - recursive relative submodules stay relative -expecting success of 7412.2 'absorb the git dir': - >expect.1 && - >expect.2 && - >actual.1 && - >actual.2 && - git status >expect.1 && - git -C sub1 rev-parse HEAD >expect.2 && - git submodule absorbgitdirs && - git fsck && - test -f sub1/.git && - test -d .git/modules/sub1 && - git status >actual.1 && - git -C sub1 rev-parse HEAD >actual.2 && - test_cmp expect.1 actual.1 && - test_cmp expect.2 actual.2 +expecting success of 7400.86 'submodule add with an existing name fails unless forced': + ( + cd addtest2 && + rm -rf repo && + git rm repo && + test_must_fail git submodule add -q --name repo_new "$submodurl/repo.git" repo && + test ! -d repo && + test_must_fail git config -f .gitmodules submodule.repo_new.path && + test_must_fail git config -f .gitmodules submodule.repo_new.url && + echo "$submodurl/bare.git" >expect && + git config submodule.repo_new.url >actual && + test_cmp expect actual && + git submodule add -f -q --name repo_new "$submodurl/repo.git" repo && + test -d repo && + echo "repo" >expect && + git config -f .gitmodules submodule.repo_new.path >actual && + test_cmp expect actual && + echo "$submodurl/repo.git" >expect && + git config -f .gitmodules submodule.repo_new.url >actual && + test_cmp expect actual && + echo "$submodurl/repo.git" >expect && + git config submodule.repo_new.url >actual && + test_cmp expect actual + ) -Migrating git directory of 'sub1' from -'/build/git-2.30.2/t/trash directory.t7412-submodule-absorbgitdirs/sub1/.git' to -'/build/git-2.30.2/t/trash directory.t7412-submodule-absorbgitdirs/.git/modules/sub1' -ok 2 - absorb the git dir +rm 'repo' +A git directory for 'repo_new' is found locally with remote(s): + origin /build/git-2.30.2/t/trash directory.t7400-submodule-basic/bare.git +If you want to reuse this local git directory instead of cloning again from + /build/git-2.30.2/t/trash directory.t7400-submodule-basic/repo.git +use the '--force' option. If the local git directory is not the correct repo +or you are unsure what this means choose another name with the '--name' option. +Reactivating local git directory for submodule 'repo_new'. +ok 86 - submodule add with an existing name fails unless forced -expecting success of 7412.3 'absorbing does not fail for deinitialized submodules': - test_when_finished "git submodule update --init" && - git submodule deinit --all && - git submodule absorbgitdirs && - test -d .git/modules/sub1 && - test -d sub1 && - ! test -e sub1/.git +expecting success of 7400.87 'set up a second submodule': + git submodule add ./init2 example2 && + git commit -m "submodule example2 added" -Cleared directory 'sub1' -Submodule 'sub1' (./sub1) unregistered for path 'sub1' -warning: could not look up configuration 'remote.origin.url'. Assuming this repository is its own authoritative upstream. -Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7412-submodule-absorbgitdirs/sub1) registered for path 'sub1' -Submodule path 'sub1': checked out '50e526bb426771f6036ad3a8b0c81d511d91fc2a' -ok 3 - absorbing does not fail for deinitialized submodules +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/example2'... +done. +[second 0a0f8a3] submodule example2 added + Author: A U Thor + 2 files changed, 7 insertions(+) + create mode 100644 .gitmodules + create mode 160000 example2 +ok 87 - set up a second submodule -expecting success of 7412.4 'setup nested submodule': - git init sub1/nested && - test_commit -C sub1/nested first_nested && - git -C sub1 submodule add ./nested && - test_tick && - git -C sub1 commit -m "add nested" && - git add sub1 && - git commit -m "sub1 to include nested submodule" +expecting success of 7400.88 'submodule deinit works on repository without submodules': + test_when_finished "rm -rf newdirectory" && + mkdir newdirectory && + ( + cd newdirectory && + git init && + >file && + git add file && + git commit -m "repo should not be empty" && + git submodule deinit . && + git submodule deinit --all + ) hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all @@ -356116,89 +354122,264 @@ hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7412-submodule-absorbgitdirs/sub1/nested/.git/ -[master (root-commit) 2139925] first_nested - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 first_nested.t -Adding existing repo at 'nested' to the index -[detached HEAD 838ca49] add nested - Author: A U Thor - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 nested -[master 4a7bb23] sub1 to include nested submodule +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7400-submodule-basic/newdirectory/.git/ +[master (root-commit) 9bf0f79] repo should not be empty Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -ok 4 - setup nested submodule + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 file +ok 88 - submodule deinit works on repository without submodules -expecting success of 7412.5 'absorb the git dir in a nested submodule': - git status >expect.1 && - git -C sub1/nested rev-parse HEAD >expect.2 && - git submodule absorbgitdirs && - test -f sub1/nested/.git && - test -d .git/modules/sub1/modules/nested && - git status >actual.1 && - git -C sub1/nested rev-parse HEAD >actual.2 && - test_cmp expect.1 actual.1 && - test_cmp expect.2 actual.2 +expecting success of 7400.89 'submodule deinit should remove the whole submodule section from .git/config': + git config submodule.example.foo bar && + git config submodule.example2.frotz nitfol && + git submodule deinit init && + test -z "$(git config --get-regexp "submodule\.example\.")" && + test -n "$(git config --get-regexp "submodule\.example2\.")" && + test -f example2/.git && + rmdir init -Migrating git directory of 'sub1/nested' from -'/build/git-2.30.2/t/trash directory.t7412-submodule-absorbgitdirs/sub1/nested/.git' to -'/build/git-2.30.2/t/trash directory.t7412-submodule-absorbgitdirs/.git/modules/sub1/modules/nested' -ok 5 - absorb the git dir in a nested submodule +Cleared directory 'init' +Submodule 'example' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init2) unregistered for path 'init' +ok 89 - submodule deinit should remove the whole submodule section from .git/config -expecting success of 7412.6 're-setup nested submodule': - # un-absorb the direct submodule, to test if the nested submodule - # is still correct (needs a rewrite of the gitfile only) - rm -rf sub1/.git && - mv .git/modules/sub1 sub1/.git && - GIT_WORK_TREE=. git -C sub1 config --unset core.worktree && - # fixup the nested submodule - echo "gitdir: ../.git/modules/nested" >sub1/nested/.git && - GIT_WORK_TREE=../../../nested git -C sub1/.git/modules/nested config \ - core.worktree "../../../nested" && - # make sure this re-setup is correct - git status --ignore-submodules=none && +expecting success of 7400.90 'submodule deinit should unset core.worktree': + test_path_is_file .git/modules/example/config && + test_must_fail git config -f .git/modules/example/config core.worktree - # also make sure this old setup does not regress - git submodule update --init --recursive >out 2>err && - test_must_be_empty out && - test_must_be_empty err +ok 90 - submodule deinit should unset core.worktree -On branch master -Untracked files: - (use "git add ..." to include in what will be committed) - actual.1 - actual.2 - expect.1 - expect.2 +expecting success of 7400.91 'submodule deinit from subdirectory': + git submodule update --init && + git config submodule.example.foo bar && + mkdir -p sub && + ( + cd sub && + git submodule deinit ../init >../output + ) && + test_i18ngrep "\\.\\./init" output && + test -z "$(git config --get-regexp "submodule\.example\.")" && + test -n "$(git config --get-regexp "submodule\.example2\.")" && + test -f example2/.git && + rmdir init -nothing added to commit but untracked files present (use "git add" to track) -ok 6 - re-setup nested submodule +Submodule 'example' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init2) registered for path 'init' +Submodule path 'init': checked out 'da28091fa1960864823ed381ef2a1c41222b8351' +Cleared directory '../init' +Submodule 'example' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init2) unregistered for path '../init' +ok 91 - submodule deinit from subdirectory -expecting success of 7412.7 'absorb the git dir in a nested submodule': - git status >expect.1 && - git -C sub1/nested rev-parse HEAD >expect.2 && - git submodule absorbgitdirs && - test -f sub1/.git && - test -f sub1/nested/.git && - test -d .git/modules/sub1/modules/nested && - git status >actual.1 && - git -C sub1/nested rev-parse HEAD >actual.2 && - test_cmp expect.1 actual.1 && - test_cmp expect.2 actual.2 +expecting success of 7400.92 'submodule deinit . deinits all initialized submodules': + git submodule update --init && + git config submodule.example.foo bar && + git config submodule.example2.frotz nitfol && + test_must_fail git submodule deinit && + git submodule deinit . >actual && + test -z "$(git config --get-regexp "submodule\.example\.")" && + test -z "$(git config --get-regexp "submodule\.example2\.")" && + test_i18ngrep "Cleared directory .init" actual && + test_i18ngrep "Cleared directory .example2" actual && + rmdir init example2 -Migrating git directory of 'sub1' from -'/build/git-2.30.2/t/trash directory.t7412-submodule-absorbgitdirs/sub1/.git' to -'/build/git-2.30.2/t/trash directory.t7412-submodule-absorbgitdirs/.git/modules/sub1' -ok 7 - absorb the git dir in a nested submodule +Submodule 'example' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init2) registered for path 'init' +Submodule path 'init': checked out 'da28091fa1960864823ed381ef2a1c41222b8351' +fatal: Use '--all' if you really want to deinitialize all submodules +Cleared directory 'init' +Cleared directory 'example2' +ok 92 - submodule deinit . deinits all initialized submodules -expecting success of 7412.8 'setup a gitlink with missing .gitmodules entry': - git init sub2 && - test_commit -C sub2 first && - git add sub2 && - git commit -m superproject +expecting success of 7400.93 'submodule deinit --all deinits all initialized submodules': + git submodule update --init && + git config submodule.example.foo bar && + git config submodule.example2.frotz nitfol && + test_must_fail git submodule deinit && + git submodule deinit --all >actual && + test -z "$(git config --get-regexp "submodule\.example\.")" && + test -z "$(git config --get-regexp "submodule\.example2\.")" && + test_i18ngrep "Cleared directory .init" actual && + test_i18ngrep "Cleared directory .example2" actual && + rmdir init example2 + +warning: could not look up configuration 'remote.origin.url'. Assuming this repository is its own authoritative upstream. +Submodule 'example2' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init2) registered for path 'example2' +Submodule 'example' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init2) registered for path 'init' +Submodule path 'example2': checked out 'cf4817bea522d7a895a8f804894e1254c741baae' +Submodule path 'init': checked out 'da28091fa1960864823ed381ef2a1c41222b8351' +fatal: Use '--all' if you really want to deinitialize all submodules +Cleared directory 'init' +Cleared directory 'example2' +ok 93 - submodule deinit --all deinits all initialized submodules + +expecting success of 7400.94 'submodule deinit deinits a submodule when its work tree is missing or empty': + git submodule update --init && + rm -rf init example2/* example2/.git && + git submodule deinit init example2 >actual && + test -z "$(git config --get-regexp "submodule\.example\.")" && + test -z "$(git config --get-regexp "submodule\.example2\.")" && + test_i18ngrep ! "Cleared directory .init" actual && + test_i18ngrep "Cleared directory .example2" actual && + rmdir init + +warning: could not look up configuration 'remote.origin.url'. Assuming this repository is its own authoritative upstream. +Submodule 'example2' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init2) registered for path 'example2' +Submodule 'example' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init2) registered for path 'init' +Submodule path 'example2': checked out 'cf4817bea522d7a895a8f804894e1254c741baae' +Submodule path 'init': checked out 'da28091fa1960864823ed381ef2a1c41222b8351' +Cleared directory 'example2' +ok 94 - submodule deinit deinits a submodule when its work tree is missing or empty + +expecting success of 7400.95 'submodule deinit fails when the submodule contains modifications unless forced': + git submodule update --init && + echo X >>init/s && + test_must_fail git submodule deinit init && + test -n "$(git config --get-regexp "submodule\.example\.")" && + test -f example2/.git && + git submodule deinit -f init >actual && + test -z "$(git config --get-regexp "submodule\.example\.")" && + test_i18ngrep "Cleared directory .init" actual && + rmdir init + +warning: could not look up configuration 'remote.origin.url'. Assuming this repository is its own authoritative upstream. +Submodule 'example2' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init2) registered for path 'example2' +Submodule 'example' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init2) registered for path 'init' +Submodule path 'example2': checked out 'cf4817bea522d7a895a8f804894e1254c741baae' +Submodule path 'init': checked out 'da28091fa1960864823ed381ef2a1c41222b8351' +error: the following file has local modifications: + init +(use --cached to keep the file, or -f to force removal) +fatal: Submodule work tree 'init' contains local modifications; use '-f' to discard them +Cleared directory 'init' +ok 95 - submodule deinit fails when the submodule contains modifications unless forced + +expecting success of 7400.96 'submodule deinit fails when the submodule contains untracked files unless forced': + git submodule update --init && + echo X >>init/untracked && + test_must_fail git submodule deinit init && + test -n "$(git config --get-regexp "submodule\.example\.")" && + test -f example2/.git && + git submodule deinit -f init >actual && + test -z "$(git config --get-regexp "submodule\.example\.")" && + test_i18ngrep "Cleared directory .init" actual && + rmdir init + +Submodule 'example' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init2) registered for path 'init' +Submodule path 'init': checked out 'da28091fa1960864823ed381ef2a1c41222b8351' +error: the following file has local modifications: + init +(use --cached to keep the file, or -f to force removal) +fatal: Submodule work tree 'init' contains local modifications; use '-f' to discard them +Cleared directory 'init' +ok 96 - submodule deinit fails when the submodule contains untracked files unless forced + +expecting success of 7400.97 'submodule deinit fails when the submodule HEAD does not match unless forced': + git submodule update --init && + ( + cd init && + git checkout HEAD^ + ) && + test_must_fail git submodule deinit init && + test -n "$(git config --get-regexp "submodule\.example\.")" && + test -f example2/.git && + git submodule deinit -f init >actual && + test -z "$(git config --get-regexp "submodule\.example\.")" && + test_i18ngrep "Cleared directory .init" actual && + rmdir init + +Submodule 'example' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init2) registered for path 'init' +Submodule path 'init': checked out 'da28091fa1960864823ed381ef2a1c41222b8351' +Warning: you are leaving 1 commit behind, not connected to +any of your branches: + + da28091 change subproject + +If you want to keep it by creating a new branch, this may be a good time +to do so with: + + git branch da28091 + +HEAD is now at 36aca32 submodule commit 1 +error: the following file has local modifications: + init +(use --cached to keep the file, or -f to force removal) +fatal: Submodule work tree 'init' contains local modifications; use '-f' to discard them +Cleared directory 'init' +ok 97 - submodule deinit fails when the submodule HEAD does not match unless forced + +expecting success of 7400.98 'submodule deinit is silent when used on an uninitialized submodule': + git submodule update --init && + git submodule deinit init >actual && + test_i18ngrep "Submodule .example. (.*) unregistered for path .init" actual && + test_i18ngrep "Cleared directory .init" actual && + git submodule deinit init >actual && + test_i18ngrep ! "Submodule .example. (.*) unregistered for path .init" actual && + test_i18ngrep "Cleared directory .init" actual && + git submodule deinit . >actual && + test_i18ngrep ! "Submodule .example. (.*) unregistered for path .init" actual && + test_i18ngrep "Submodule .example2. (.*) unregistered for path .example2" actual && + test_i18ngrep "Cleared directory .init" actual && + git submodule deinit . >actual && + test_i18ngrep ! "Submodule .example. (.*) unregistered for path .init" actual && + test_i18ngrep ! "Submodule .example2. (.*) unregistered for path .example2" actual && + test_i18ngrep "Cleared directory .init" actual && + git submodule deinit --all >actual && + test_i18ngrep ! "Submodule .example. (.*) unregistered for path .init" actual && + test_i18ngrep ! "Submodule .example2. (.*) unregistered for path .example2" actual && + test_i18ngrep "Cleared directory .init" actual && + rmdir init example2 + +Submodule 'example' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init2) registered for path 'init' +From /build/git-2.30.2/t/trash directory.t7400-submodule-basic/./.subrepo + * branch da28091fa1960864823ed381ef2a1c41222b8351 -> FETCH_HEAD +Submodule path 'init': checked out 'da28091fa1960864823ed381ef2a1c41222b8351' +Submodule 'example' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init2) unregistered for path 'init' +Cleared directory 'init' +warning: Could not unset core.worktree setting in submodule 'init' +Cleared directory 'init' +warning: Could not unset core.worktree setting in submodule 'init' +Submodule 'example2' (./init2) unregistered for path 'example2' +Cleared directory 'init' +warning: Could not unset core.worktree setting in submodule 'example2' +warning: Could not unset core.worktree setting in submodule 'init' +Cleared directory 'init' +warning: Could not unset core.worktree setting in submodule 'example2' +warning: Could not unset core.worktree setting in submodule 'init' +Cleared directory 'init' +ok 98 - submodule deinit is silent when used on an uninitialized submodule + +expecting success of 7400.99 'submodule deinit fails when submodule has a .git directory even when forced': + git submodule update --init && + ( + cd init && + rm .git && + cp -R ../.git/modules/example .git && + GIT_WORK_TREE=. git config --unset core.worktree + ) && + test_must_fail git submodule deinit init && + test_must_fail git submodule deinit -f init && + test -d init/.git && + test -n "$(git config --get-regexp "submodule\.example\.")" + +warning: could not look up configuration 'remote.origin.url'. Assuming this repository is its own authoritative upstream. +Submodule 'example2' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init2) registered for path 'example2' +Submodule 'example' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/init2) registered for path 'init' +Submodule path 'example2': checked out 'cf4817bea522d7a895a8f804894e1254c741baae' +Submodule path 'init': checked out 'da28091fa1960864823ed381ef2a1c41222b8351' +fatal: Submodule work tree 'init' contains a .git directory (use 'rm -rf' if you really want to remove it including all of its history) +fatal: Submodule work tree 'init' contains a .git directory (use 'rm -rf' if you really want to remove it including all of its history) +ok 99 - submodule deinit fails when submodule has a .git directory even when forced + +expecting success of 7400.100 'submodule with UTF-8 name': + svname=$(printf "\303\245 \303\244\303\266") && + mkdir "$svname" && + ( + cd "$svname" && + git init && + >sub && + git add sub && + git commit -m "init sub" + ) && + git submodule add ./"$svname" && + git submodule >&2 && + test -n "$(git submodule | grep "$svname")" hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all @@ -356210,54 +354391,83 @@ hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7412-submodule-absorbgitdirs/sub2/.git/ -[master (root-commit) 33e7427] first +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7400-submodule-basic/Ã¥ äö/.git/ +[master (root-commit) ea6909a] init sub Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 first.t -warning: adding embedded git repository: sub2 -hint: You've added another git repository inside your current repository. -hint: Clones of the outer repository will not contain the contents of -hint: the embedded repository and will not know how to obtain it. -hint: If you meant to add a submodule, use: + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 sub +Adding existing repo at 'Ã¥ äö' to the index + cf4817bea522d7a895a8f804894e1254c741baae example2 (rev-1-2-gcf4817b) + da28091fa1960864823ed381ef2a1c41222b8351 init (rev-1-1-gda28091) + ea6909a6ccbadc034edc8c42d9d2b85a69afe610 Ã¥ äö (heads/master) +ok 100 - submodule with UTF-8 name + +expecting success of 7400.101 'submodule add clone shallow submodule': + mkdir super && + pwd=$(pwd) && + ( + cd super && + git init && + git submodule add --depth=1 file://"$pwd"/example2 submodule && + ( + cd submodule && + test 1 = $(git log --oneline | wc -l) + ) + ) + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: hint: -hint: git submodule add sub2 +hint: git config --global init.defaultBranch hint: -hint: If you added this path by mistake, you can remove it from the -hint: index with: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: hint: -hint: git rm --cached sub2 +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7400-submodule-basic/super/.git/ +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/super/submodule'... +ok 101 - submodule add clone shallow submodule + +expecting success of 7400.102 'submodule helper list is not confused by common prefixes': + mkdir -p dir1/b && + ( + cd dir1/b && + git init && + echo hi >testfile2 && + git add . && + git commit -m "test1" + ) && + mkdir -p dir2/b && + ( + cd dir2/b && + git init && + echo hello >testfile1 && + git add . && + git commit -m "test2" + ) && + git submodule add /dir1/b dir1/b && + git submodule add /dir2/b dir2/b && + git commit -m "first submodule commit" && + git submodule--helper list dir1/b | cut -f 2 >actual && + echo "dir1/b" >expect && + test_cmp expect actual + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: hint: -hint: See "git help submodule" for more information. -[master 23d83a4] superproject +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7400-submodule-basic/dir1/b/.git/ +[master (root-commit) 9e1c8ff] test1 Author: A U Thor 1 file changed, 1 insertion(+) - create mode 160000 sub2 -ok 8 - setup a gitlink with missing .gitmodules entry - -expecting success of 7412.9 'absorbing the git dir fails for incomplete submodules': - git status >expect.1 && - git -C sub2 rev-parse HEAD >expect.2 && - test_must_fail git submodule absorbgitdirs && - git -C sub2 fsck && - test -d sub2/.git && - git status >actual && - git -C sub2 rev-parse HEAD >actual.2 && - test_cmp expect.1 actual.1 && - test_cmp expect.2 actual.2 - -fatal: could not lookup name for submodule 'sub2' -ok 9 - absorbing the git dir fails for incomplete submodules - -expecting success of 7412.10 'setup a submodule with multiple worktrees': - # first create another unembedded git dir in a new submodule - git init sub3 && - test_commit -C sub3 first && - git submodule add ./sub3 && - test_tick && - git commit -m "add another submodule" && - git -C sub3 worktree add ../sub3_second_work_tree - + create mode 100644 testfile2 hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all hint: of your new repositories, which will suppress this warning, call: @@ -356268,57 +354478,31 @@ hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7412-submodule-absorbgitdirs/sub3/.git/ -[master (root-commit) b9419e0] first +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7400-submodule-basic/dir2/b/.git/ +[master (root-commit) 0321a28] test2 Author: A U Thor 1 file changed, 1 insertion(+) - create mode 100644 first.t -Adding existing repo at 'sub3' to the index -[master 8b0ea5c] add another submodule + create mode 100644 testfile1 +Adding existing repo at 'dir1/b' to the index +Adding existing repo at 'dir2/b' to the index +[second ed95fe2] first submodule commit Author: A U Thor - 2 files changed, 4 insertions(+) - create mode 160000 sub3 -Preparing worktree (new branch 'sub3_second_work_tree') -HEAD is now at b9419e0 first -ok 10 - setup a submodule with multiple worktrees - -expecting success of 7412.11 'absorbing fails for a submodule with multiple worktrees': - test_must_fail git submodule absorbgitdirs sub3 2>error && - test_i18ngrep "not supported" error - -checking prerequisite: C_LOCALE_OUTPUT - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false - -) -prerequisite C_LOCALE_OUTPUT ok -fatal: relocate_gitdir for submodule 'sub3' with more than one worktree not supported -ok 11 - absorbing fails for a submodule with multiple worktrees - -# passed all 11 test(s) -1..11 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t7413-submodule-is-active.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7413-submodule-is-active/.git/ -expecting success of 7413.1 'setup': - git config --global protocol.file.allow always && - git init sub && - test_commit -C sub initial && - git init super && - test_commit -C super initial && - git -C super submodule add ../sub sub1 && - git -C super submodule add ../sub sub2 && - - # Remove submodule..active entries in order to test in an - # environment where only URLs are present in the conifg - git -C super config --unset submodule.sub1.active && - git -C super config --unset submodule.sub2.active && + 4 files changed, 12 insertions(+) + create mode 160000 dir1/b + create mode 160000 dir2/b + create mode 160000 "\303\245 \303\244\303\266" +ok 102 - submodule helper list is not confused by common prefixes - git -C super commit -a -m "add 2 submodules at sub{1,2}" +expecting success of 7400.103 'setup superproject with submodules': + git init sub1 && + test_commit -C sub1 test && + test_commit -C sub1 test2 && + git init multisuper && + git -C multisuper submodule add ../sub1 sub0 && + git -C multisuper submodule add ../sub1 sub1 && + git -C multisuper submodule add ../sub1 sub2 && + git -C multisuper submodule add ../sub1 sub3 && + git -C multisuper commit -m "add some submodules" hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all @@ -356330,11 +354514,15 @@ hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7413-submodule-is-active/sub/.git/ -[master (root-commit) 24b24cf] initial +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7400-submodule-basic/sub1/.git/ +[master (root-commit) f9e7a82] test Author: A U Thor 1 file changed, 1 insertion(+) - create mode 100644 initial.t + create mode 100644 test.t +[master 71cddcb] test2 + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 test2.t hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all hint: of your new repositories, which will suppress this warning, call: @@ -356345,139 +354533,318 @@ hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7413-submodule-is-active/super/.git/ -[master (root-commit) 5e30013] initial - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 initial.t -Cloning into '/build/git-2.30.2/t/trash directory.t7413-submodule-is-active/super/sub1'... +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper/.git/ +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper/sub0'... done. -Cloning into '/build/git-2.30.2/t/trash directory.t7413-submodule-is-active/super/sub2'... +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper/sub1'... done. -[master b6e0cac] add 2 submodules at sub{1,2} +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper/sub2'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper/sub3'... +done. +[master (root-commit) a188ac0] add some submodules Author: A U Thor - 3 files changed, 8 insertions(+) + 5 files changed, 16 insertions(+) create mode 100644 .gitmodules + create mode 160000 sub0 create mode 160000 sub1 create mode 160000 sub2 -ok 1 - setup - -expecting success of 7413.2 'is-active works with urls': - git -C super submodule--helper is-active sub1 && - git -C super submodule--helper is-active sub2 && + create mode 160000 sub3 +ok 103 - setup superproject with submodules - git -C super config --unset submodule.sub1.URL && - test_must_fail git -C super submodule--helper is-active sub1 && - git -C super config submodule.sub1.URL ../sub && - git -C super submodule--helper is-active sub1 +expecting success of 7400.104 'submodule update --init with a specification': + test_when_finished "rm -rf multisuper_clone" && + pwd=$(pwd) && + git clone file://"$pwd"/multisuper multisuper_clone && + git -C multisuper_clone submodule update --init . ":(exclude)sub0" && + git -C multisuper_clone submodule status | sed "s/$OID_REGEX //" >actual && + test_cmp expect actual -ok 2 - is-active works with urls +Cloning into 'multisuper_clone'... +Submodule 'sub1' (file:///build/git-2.30.2/t/trash directory.t7400-submodule-basic/sub1) registered for path 'sub1' +Submodule 'sub2' (file:///build/git-2.30.2/t/trash directory.t7400-submodule-basic/sub1) registered for path 'sub2' +Submodule 'sub3' (file:///build/git-2.30.2/t/trash directory.t7400-submodule-basic/sub1) registered for path 'sub3' +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper_clone/sub1'... +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper_clone/sub2'... +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper_clone/sub3'... +Submodule path 'sub1': checked out '71cddcbcdbe5634f8172f69e2745e3c01ba0d1bb' +Submodule path 'sub2': checked out '71cddcbcdbe5634f8172f69e2745e3c01ba0d1bb' +Submodule path 'sub3': checked out '71cddcbcdbe5634f8172f69e2745e3c01ba0d1bb' +ok 104 - submodule update --init with a specification -expecting success of 7413.3 'is-active works with submodule..active config': - test_when_finished "git -C super config --unset submodule.sub1.active" && - test_when_finished "git -C super config submodule.sub1.URL ../sub" && +expecting success of 7400.105 'submodule update --init with submodule.active set': + test_when_finished "rm -rf multisuper_clone" && + pwd=$(pwd) && + git clone file://"$pwd"/multisuper multisuper_clone && + git -C multisuper_clone config submodule.active "." && + git -C multisuper_clone config --add submodule.active ":(exclude)sub0" && + git -C multisuper_clone submodule update --init && + git -C multisuper_clone submodule status | sed "s/$OID_REGEX //" >actual && + test_cmp expect actual - git -C super config --bool submodule.sub1.active "false" && - test_must_fail git -C super submodule--helper is-active sub1 && +Cloning into 'multisuper_clone'... +Submodule 'sub1' (file:///build/git-2.30.2/t/trash directory.t7400-submodule-basic/sub1) registered for path 'sub1' +Submodule 'sub2' (file:///build/git-2.30.2/t/trash directory.t7400-submodule-basic/sub1) registered for path 'sub2' +Submodule 'sub3' (file:///build/git-2.30.2/t/trash directory.t7400-submodule-basic/sub1) registered for path 'sub3' +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper_clone/sub1'... +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper_clone/sub2'... +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper_clone/sub3'... +Submodule path 'sub1': checked out '71cddcbcdbe5634f8172f69e2745e3c01ba0d1bb' +Submodule path 'sub2': checked out '71cddcbcdbe5634f8172f69e2745e3c01ba0d1bb' +Submodule path 'sub3': checked out '71cddcbcdbe5634f8172f69e2745e3c01ba0d1bb' +ok 105 - submodule update --init with submodule.active set - git -C super config --bool submodule.sub1.active "true" && - git -C super config --unset submodule.sub1.URL && - git -C super submodule--helper is-active sub1 +expecting success of 7400.106 'submodule update and setting submodule..active': + test_when_finished "rm -rf multisuper_clone" && + pwd=$(pwd) && + git clone file://"$pwd"/multisuper multisuper_clone && + git -C multisuper_clone config --bool submodule.sub0.active "true" && + git -C multisuper_clone config --bool submodule.sub1.active "false" && + git -C multisuper_clone config --bool submodule.sub2.active "true" && -ok 3 - is-active works with submodule..active config + cat >expect <<-\EOF && + sub0 (test2) + -sub1 + sub2 (test2) + -sub3 + EOF + git -C multisuper_clone submodule update && + git -C multisuper_clone submodule status | sed "s/$OID_REGEX //" >actual && + test_cmp expect actual -expecting success of 7413.4 'is-active works with basic submodule.active config': - test_when_finished "git -C super config submodule.sub1.URL ../sub" && - test_when_finished "git -C super config --unset-all submodule.active" && +Cloning into 'multisuper_clone'... +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper_clone/sub0'... +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper_clone/sub2'... +Submodule path 'sub0': checked out '71cddcbcdbe5634f8172f69e2745e3c01ba0d1bb' +Submodule path 'sub2': checked out '71cddcbcdbe5634f8172f69e2745e3c01ba0d1bb' +ok 106 - submodule update and setting submodule..active - git -C super config --add submodule.active "." && - git -C super config --unset submodule.sub1.URL && +expecting success of 7400.107 'clone active submodule without submodule url set': + test_when_finished "rm -rf test/test" && + mkdir test && + # another dir breaks accidental relative paths still being correct + git clone file://"$pwd"/multisuper test/test && + ( + cd test/test && + git config submodule.active "." && - git -C super submodule--helper is-active sub1 && - git -C super submodule--helper is-active sub2 + # do not pass --init flag, as the submodule is already active: + git submodule update && + git submodule status >actual_raw && -ok 4 - is-active works with basic submodule.active config + cut -d" " -f3- actual_raw >actual && + cat >expect <<-\EOF && + sub0 (test2) + sub1 (test2) + sub2 (test2) + sub3 (test2) + EOF + test_cmp expect actual + ) -expecting success of 7413.5 'is-active correctly works with paths that are not submodules': - test_when_finished "git -C super config --unset-all submodule.active" && +Cloning into 'test/test'... +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/test/test/sub0'... +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/test/test/sub1'... +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/test/test/sub2'... +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/test/test/sub3'... +Submodule path 'sub0': checked out '71cddcbcdbe5634f8172f69e2745e3c01ba0d1bb' +Submodule path 'sub1': checked out '71cddcbcdbe5634f8172f69e2745e3c01ba0d1bb' +Submodule path 'sub2': checked out '71cddcbcdbe5634f8172f69e2745e3c01ba0d1bb' +Submodule path 'sub3': checked out '71cddcbcdbe5634f8172f69e2745e3c01ba0d1bb' +ok 107 - clone active submodule without submodule url set - test_must_fail git -C super submodule--helper is-active not-a-submodule && +expecting success of 7400.108 'clone --recurse-submodules with a pathspec works': + test_when_finished "rm -rf multisuper_clone" && + cat >expected <<-\EOF && + sub0 (test2) + -sub1 + -sub2 + -sub3 + EOF - git -C super config --add submodule.active "." && - test_must_fail git -C super submodule--helper is-active not-a-submodule + git clone --recurse-submodules="sub0" multisuper multisuper_clone && + git -C multisuper_clone submodule status | sed "s/$OID_REGEX //" >actual && + test_cmp expected actual -ok 5 - is-active correctly works with paths that are not submodules +Cloning into 'multisuper_clone'... +done. +Submodule 'sub0' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/sub1) registered for path 'sub0' +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper_clone/sub0'... +done. +Submodule path 'sub0': checked out '71cddcbcdbe5634f8172f69e2745e3c01ba0d1bb' +ok 108 - clone --recurse-submodules with a pathspec works -expecting success of 7413.6 'is-active works with exclusions in submodule.active config': - test_when_finished "git -C super config --unset-all submodule.active" && +expecting success of 7400.109 'clone with multiple --recurse-submodules options': + test_when_finished "rm -rf multisuper_clone" && + cat >expect <<-\EOF && + -sub0 + sub1 (test2) + -sub2 + sub3 (test2) + EOF - git -C super config --add submodule.active "." && - git -C super config --add submodule.active ":(exclude)sub1" && + git clone --recurse-submodules="." \ + --recurse-submodules=":(exclude)sub0" \ + --recurse-submodules=":(exclude)sub2" \ + multisuper multisuper_clone && + git -C multisuper_clone submodule status | sed "s/$OID_REGEX //" >actual && + test_cmp expect actual - test_must_fail git -C super submodule--helper is-active sub1 && - git -C super submodule--helper is-active sub2 +Cloning into 'multisuper_clone'... +done. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/sub1) registered for path 'sub1' +Submodule 'sub3' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/sub1) registered for path 'sub3' +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper_clone/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper_clone/sub3'... +done. +Submodule path 'sub1': checked out '71cddcbcdbe5634f8172f69e2745e3c01ba0d1bb' +Submodule path 'sub3': checked out '71cddcbcdbe5634f8172f69e2745e3c01ba0d1bb' +ok 109 - clone with multiple --recurse-submodules options -ok 6 - is-active works with exclusions in submodule.active config +expecting success of 7400.110 'clone and subsequent updates correctly auto-initialize submodules': + test_when_finished "rm -rf multisuper_clone" && + cat <<-\EOF >expect && + -sub0 + sub1 (test2) + -sub2 + sub3 (test2) + EOF -expecting success of 7413.7 'is-active with submodule.active and submodule..active': - test_when_finished "git -C super config --unset-all submodule.active" && - test_when_finished "git -C super config --unset submodule.sub1.active" && - test_when_finished "git -C super config --unset submodule.sub2.active" && + cat <<-\EOF >expect2 && + -sub0 + sub1 (test2) + -sub2 + sub3 (test2) + -sub4 + sub5 (test2) + EOF - git -C super config --add submodule.active "sub1" && - git -C super config --bool submodule.sub1.active "false" && - git -C super config --bool submodule.sub2.active "true" && + git clone --recurse-submodules="." \ + --recurse-submodules=":(exclude)sub0" \ + --recurse-submodules=":(exclude)sub2" \ + --recurse-submodules=":(exclude)sub4" \ + multisuper multisuper_clone && - test_must_fail git -C super submodule--helper is-active sub1 && - git -C super submodule--helper is-active sub2 + git -C multisuper_clone submodule status | sed "s/$OID_REGEX //" >actual && + test_cmp expect actual && -ok 7 - is-active with submodule.active and submodule..active + git -C multisuper submodule add ../sub1 sub4 && + git -C multisuper submodule add ../sub1 sub5 && + git -C multisuper commit -m "add more submodules" && + # obtain the new superproject + git -C multisuper_clone pull && + git -C multisuper_clone submodule update --init && + git -C multisuper_clone submodule status | sed "s/$OID_REGEX //" >actual && + test_cmp expect2 actual -expecting success of 7413.8 'is-active, submodule.active and submodule add': - test_when_finished "rm -rf super2" && - git init super2 && - test_commit -C super2 initial && - git -C super2 config --add submodule.active "sub*" && +Cloning into 'multisuper_clone'... +done. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/sub1) registered for path 'sub1' +Submodule 'sub3' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/sub1) registered for path 'sub3' +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper_clone/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper_clone/sub3'... +done. +Submodule path 'sub1': checked out '71cddcbcdbe5634f8172f69e2745e3c01ba0d1bb' +Submodule path 'sub3': checked out '71cddcbcdbe5634f8172f69e2745e3c01ba0d1bb' +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper/sub4'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper/sub5'... +done. +[master 084f781] add more submodules + Author: A U Thor + 3 files changed, 8 insertions(+) + create mode 160000 sub4 + create mode 160000 sub5 +hint: Pulling without specifying how to reconcile divergent branches is +hint: discouraged. You can squelch this message by running one of the following +hint: commands sometime before your next pull: +hint: +hint: git config pull.rebase false # merge (the default strategy) +hint: git config pull.rebase true # rebase +hint: git config pull.ff only # fast-forward only +hint: +hint: You can replace "git config" with "git config --global" to set a default +hint: preference for all repositories. You can also pass --rebase, --no-rebase, +hint: or --ff-only on the command line to override the configured default per +hint: invocation. +From /build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper + a188ac0..084f781 master -> origin/master +Updating a188ac0..084f781 +Fast-forward + .gitmodules | 6 ++++++ + sub4 | 1 + + sub5 | 1 + + 3 files changed, 8 insertions(+) + create mode 160000 sub4 + create mode 160000 sub5 +Submodule 'sub5' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/sub1) registered for path 'sub5' +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper_clone/sub5'... +done. +Submodule path 'sub5': checked out '71cddcbcdbe5634f8172f69e2745e3c01ba0d1bb' +ok 110 - clone and subsequent updates correctly auto-initialize submodules - # submodule add should only add submodule..active - # to the config if not matched by the pathspec - git -C super2 submodule add ../sub sub1 && - test_must_fail git -C super2 config --get submodule.sub1.active && +expecting success of 7400.111 'init properly sets the config': + test_when_finished "rm -rf multisuper_clone" && + git clone --recurse-submodules="." \ + --recurse-submodules=":(exclude)sub0" \ + multisuper multisuper_clone && - git -C super2 submodule add ../sub mod && - git -C super2 config --get submodule.mod.active + git -C multisuper_clone submodule init -- sub0 sub1 && + git -C multisuper_clone config --get submodule.sub0.active && + test_must_fail git -C multisuper_clone config --get submodule.sub1.active -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7413-submodule-is-active/super2/.git/ -[master (root-commit) d39e3de] initial - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 initial.t -Cloning into '/build/git-2.30.2/t/trash directory.t7413-submodule-is-active/super2/sub1'... +Cloning into 'multisuper_clone'... done. -Cloning into '/build/git-2.30.2/t/trash directory.t7413-submodule-is-active/super2/mod'... +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/sub1) registered for path 'sub1' +Submodule 'sub2' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/sub1) registered for path 'sub2' +Submodule 'sub3' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/sub1) registered for path 'sub3' +Submodule 'sub4' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/sub1) registered for path 'sub4' +Submodule 'sub5' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/sub1) registered for path 'sub5' +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper_clone/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper_clone/sub2'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper_clone/sub3'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper_clone/sub4'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t7400-submodule-basic/multisuper_clone/sub5'... done. +Submodule path 'sub1': checked out '71cddcbcdbe5634f8172f69e2745e3c01ba0d1bb' +Submodule path 'sub2': checked out '71cddcbcdbe5634f8172f69e2745e3c01ba0d1bb' +Submodule path 'sub3': checked out '71cddcbcdbe5634f8172f69e2745e3c01ba0d1bb' +Submodule path 'sub4': checked out '71cddcbcdbe5634f8172f69e2745e3c01ba0d1bb' +Submodule path 'sub5': checked out '71cddcbcdbe5634f8172f69e2745e3c01ba0d1bb' +Submodule 'sub0' (/build/git-2.30.2/t/trash directory.t7400-submodule-basic/sub1) registered for path 'sub0' true -ok 8 - is-active, submodule.active and submodule add +ok 111 - init properly sets the config -# passed all 8 test(s) -1..8 +expecting success of 7400.112 'recursive clone respects -q': + test_when_finished "rm -rf multisuper_clone" && + git clone -q --recurse-submodules multisuper multisuper_clone >actual && + test_must_be_empty actual + +ok 112 - recursive clone respects -q + +# passed all 112 test(s) +1..112 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t7414-submodule-mistakes.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7414-submodule-mistakes/.git/ -expecting success of 7414.1 'create embedded repository': - git init embed && - test_commit -C embed one +*** t7417-submodule-path-url.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7417-submodule-path-url/.git/ +expecting success of 7417.1 'setup': + git config --global protocol.file.allow always + +ok 1 - setup + +expecting success of 7417.2 'create submodule with dash in path': + git init upstream && + git -C upstream commit --allow-empty -m base && + git submodule add ./upstream sub && + git mv sub ./-sub && + git commit -m submodule hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all @@ -356489,17 +354856,23 @@ hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7414-submodule-mistakes/embed/.git/ -[master (root-commit) d79ce16] one +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7417-submodule-path-url/upstream/.git/ +[master (root-commit) a4b5938] base Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 one.t -ok 1 - create embedded repository +Cloning into '/build/git-2.30.2/t/trash directory.t7417-submodule-path-url/sub'... +done. +warning: ignoring 'submodule.sub.path' which may be interpreted as a command-line option: -sub +[master (root-commit) c0215d8] submodule + Author: A U Thor + 2 files changed, 4 insertions(+) + create mode 160000 -sub + create mode 100644 .gitmodules +ok 2 - create submodule with dash in path -expecting success of 7414.2 'git-add on embedded repository warns': - test_when_finished "git rm --cached -f embed" && - git add embed 2>stderr && - test_i18ngrep warning stderr +expecting success of 7417.3 'clone rejects unprotected dash': + test_when_finished "rm -rf dst" && + git clone --recurse-submodules . dst 2>err && + test_i18ngrep ignoring err checking prerequisite: C_LOCALE_OUTPUT @@ -356510,53 +354883,32 @@ ) prerequisite C_LOCALE_OUTPUT ok -warning: adding embedded git repository: embed -rm 'embed' -ok 2 - git-add on embedded repository warns - -expecting success of 7414.3 '--no-warn-embedded-repo suppresses warning': - test_when_finished "git rm --cached -f embed" && - git add --no-warn-embedded-repo embed 2>stderr && - test_i18ngrep ! warning stderr - -rm 'embed' -ok 3 - --no-warn-embedded-repo suppresses warning +warning: ignoring 'submodule.sub.path' which may be interpreted as a command-line option: -sub +warning: ignoring 'submodule.sub.path' which may be interpreted as a command-line option: -sub +ok 3 - clone rejects unprotected dash -expecting success of 7414.4 'no warning when updating entry': - test_when_finished "git rm --cached -f embed" && - git add embed && - git -C embed commit --allow-empty -m two && - git add embed 2>stderr && - test_i18ngrep ! warning stderr +expecting success of 7417.4 'fsck rejects unprotected dash': + test_when_finished "rm -rf dst" && + git init --bare dst && + git -C dst config transfer.fsckObjects true && + test_must_fail git push dst HEAD 2>err && + grep gitmodulesPath err -warning: adding embedded git repository: embed -hint: You've added another git repository inside your current repository. -hint: Clones of the outer repository will not contain the contents of -hint: the embedded repository and will not know how to obtain it. -hint: If you meant to add a submodule, use: -hint: -hint: git submodule add embed +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: hint: -hint: If you added this path by mistake, you can remove it from the -hint: index with: +hint: git config --global init.defaultBranch hint: -hint: git rm --cached embed +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: hint: -hint: See "git help submodule" for more information. -[master b0129aa] two - Author: A U Thor -rm 'embed' -ok 4 - no warning when updating entry - -expecting success of 7414.5 'submodule add does not warn': - test_when_finished "git rm -rf submodule .gitmodules" && - git -c protocol.file.allow=always \ - submodule add ./embed submodule 2>stderr && - test_i18ngrep ! warning stderr +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7417-submodule-path-url/dst/ +remote: error: object 7e03af04dae731f9aa8e2febaf8b530bdafd3aa1: gitmodulesPath: disallowed submodule path: -sub +ok 4 - fsck rejects unprotected dash -rm '.gitmodules' -rm 'submodule' -ok 5 - submodule add does not warn +ok 5 # skip submodule paths disallows trailing spaces (missing MINGW) # passed all 5 test(s) 1..5 @@ -356819,13 +355171,13 @@ create mode 100644 .gitmodules 143+0 records in 143+0 records out -143 bytes copied, 0.00112481 s, 127 kB/s +143 bytes copied, 0.00152772 s, 93.6 kB/s 49+0 records in 49+0 records out -49 bytes copied, 0.000521109 s, 94.0 kB/s +49 bytes copied, 0.00063336 s, 77.4 kB/s 127+0 records in 127+0 records out -127 bytes copied, 0.00119078 s, 107 kB/s +127 bytes copied, 0.00142512 s, 89.1 kB/s ok 11 - create oddly ordered pack expecting success of 7415.12 'transfer.fsckObjects handles odd pack (unpack)': @@ -357633,734 +355985,6 @@ 1..18 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t7407-submodule-foreach.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7407-submodule-foreach/.git/ -expecting success of 7407.1 'setup a submodule tree': - git config --global protocol.file.allow always && - echo file > file && - git add file && - test_tick && - git commit -m upstream && - git clone . super && - git clone super submodule && - ( - cd super && - git submodule add ../submodule sub1 && - git submodule add ../submodule sub2 && - git submodule add ../submodule sub3 && - git config -f .gitmodules --rename-section \ - submodule.sub1 submodule.foo1 && - git config -f .gitmodules --rename-section \ - submodule.sub2 submodule.foo2 && - git config -f .gitmodules --rename-section \ - submodule.sub3 submodule.foo3 && - git add .gitmodules && - test_tick && - git commit -m "submodules" && - git submodule init sub1 && - git submodule init sub2 && - git submodule init sub3 - ) && - ( - cd submodule && - echo different > file && - git add file && - test_tick && - git commit -m "different" - ) && - ( - cd super && - ( - cd sub3 && - git pull - ) && - git add sub3 && - test_tick && - git commit -m "update sub3" - ) - -[master (root-commit) 0c90624] upstream - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -Cloning into 'super'... -done. -Cloning into 'submodule'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/super/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/super/sub2'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/super/sub3'... -done. -[master 33b977a] submodules - Author: A U Thor - 4 files changed, 12 insertions(+) - create mode 100644 .gitmodules - create mode 160000 sub1 - create mode 160000 sub2 - create mode 160000 sub3 -Submodule 'foo1' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/submodule) registered for path 'sub1' -Submodule 'foo2' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/submodule) registered for path 'sub2' -Submodule 'foo3' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/submodule) registered for path 'sub3' -[master 509f622] different - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -hint: Pulling without specifying how to reconcile divergent branches is -hint: discouraged. You can squelch this message by running one of the following -hint: commands sometime before your next pull: -hint: -hint: git config pull.rebase false # merge (the default strategy) -hint: git config pull.rebase true # rebase -hint: git config pull.ff only # fast-forward only -hint: -hint: You can replace "git config" with "git config --global" to set a default -hint: preference for all repositories. You can also pass --rebase, --no-rebase, -hint: or --ff-only on the command line to override the configured default per -hint: invocation. -From /build/git-2.30.2/t/trash directory.t7407-submodule-foreach/submodule - 0c90624..509f622 master -> origin/master -Updating 0c90624..509f622 -Fast-forward - file | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) -[master ed2a820] update sub3 - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -ok 1 - setup a submodule tree - -expecting success of 7407.2 'test basic "submodule foreach" usage': - git clone super clone && - ( - cd clone && - git submodule update --init -- sub1 sub3 && - git submodule foreach "echo \$toplevel-\$name-\$path-\$sha1" > ../actual && - git config foo.bar zar && - git submodule foreach "git config --file \"\$toplevel/.git/config\" foo.bar" - ) && - test_i18ncmp expect actual - -Cloning into 'clone'... -done. -Submodule 'foo1' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/submodule) registered for path 'sub1' -Submodule 'foo3' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/submodule) registered for path 'sub3' -Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone/sub3'... -done. -Submodule path 'sub1': checked out '0c90624ab7f1aaa301d3bb79f60dcfed1ec4897f' -Submodule path 'sub3': checked out '509f622a4f36a3e472affcf28fa959174f3dd5b5' -Entering 'sub1' -zar -Entering 'sub3' -zar -checking prerequisite: C_LOCALE_OUTPUT - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false - -) -prerequisite C_LOCALE_OUTPUT ok -ok 2 - test basic "submodule foreach" usage - -expecting success of 7407.3 'test "submodule foreach" from subdirectory': - mkdir clone/sub && - ( - cd clone/sub && - git submodule foreach "echo \$toplevel-\$name-\$sm_path-\$displaypath-\$sha1" >../../actual - ) && - test_i18ncmp expect actual - -ok 3 - test "submodule foreach" from subdirectory - -expecting success of 7407.4 'setup nested submodules': - git clone submodule nested1 && - git clone submodule nested2 && - git clone submodule nested3 && - ( - cd nested3 && - git submodule add ../submodule submodule && - test_tick && - git commit -m "submodule" && - git submodule init submodule - ) && - ( - cd nested2 && - git submodule add ../nested3 nested3 && - test_tick && - git commit -m "nested3" && - git submodule init nested3 - ) && - ( - cd nested1 && - git submodule add ../nested2 nested2 && - test_tick && - git commit -m "nested2" && - git submodule init nested2 - ) && - ( - cd super && - git submodule add ../nested1 nested1 && - test_tick && - git commit -m "nested1" && - git submodule init nested1 - ) - -Cloning into 'nested1'... -done. -Cloning into 'nested2'... -done. -Cloning into 'nested3'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/nested3/submodule'... -done. -[master 5ec8351] submodule - Author: A U Thor - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 submodule -Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/nested2/nested3'... -done. -[master 2e69c85] nested3 - Author: A U Thor - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 nested3 -Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/nested1/nested2'... -done. -[master b23f134] nested2 - Author: A U Thor - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 nested2 -Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/super/nested1'... -done. -[master 427ccd0] nested1 - Author: A U Thor - 2 files changed, 4 insertions(+) - create mode 160000 nested1 -ok 4 - setup nested submodules - -expecting success of 7407.5 'use "submodule foreach" to checkout 2nd level submodule': - git clone super clone2 && - ( - cd clone2 && - test_must_fail git rev-parse --resolve-git-dir sub1/.git && - test_must_fail git rev-parse --resolve-git-dir sub2/.git && - test_must_fail git rev-parse --resolve-git-dir sub3/.git && - test_must_fail git rev-parse --resolve-git-dir nested1/.git && - git submodule update --init && - git rev-parse --resolve-git-dir sub1/.git && - git rev-parse --resolve-git-dir sub2/.git && - git rev-parse --resolve-git-dir sub3/.git && - git rev-parse --resolve-git-dir nested1/.git && - test_must_fail git rev-parse --resolve-git-dir nested1/nested2/.git && - git submodule foreach "git submodule update --init" && - git rev-parse --resolve-git-dir nested1/nested2/.git && - test_must_fail git rev-parse --resolve-git-dir nested1/nested2/nested3/.git - ) - -Cloning into 'clone2'... -done. -fatal: not a gitdir 'sub1/.git' -fatal: not a gitdir 'sub2/.git' -fatal: not a gitdir 'sub3/.git' -fatal: not a gitdir 'nested1/.git' -Submodule 'nested1' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/nested1) registered for path 'nested1' -Submodule 'foo1' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/submodule) registered for path 'sub1' -Submodule 'foo2' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/submodule) registered for path 'sub2' -Submodule 'foo3' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/submodule) registered for path 'sub3' -Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone2/nested1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone2/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone2/sub2'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone2/sub3'... -done. -Submodule path 'nested1': checked out 'b23f134787d96fae589a6b76da41f4db112fc8db' -Submodule path 'sub1': checked out '0c90624ab7f1aaa301d3bb79f60dcfed1ec4897f' -Submodule path 'sub2': checked out '0c90624ab7f1aaa301d3bb79f60dcfed1ec4897f' -Submodule path 'sub3': checked out '509f622a4f36a3e472affcf28fa959174f3dd5b5' -/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone2/.git/modules/foo1 -/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone2/.git/modules/foo2 -/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone2/.git/modules/foo3 -/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone2/.git/modules/nested1 -fatal: not a gitdir 'nested1/nested2/.git' -Entering 'nested1' -Submodule 'nested2' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/nested2) registered for path 'nested2' -Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone2/nested1/nested2'... -done. -Submodule path 'nested2': checked out '2e69c85de92bf5f316f3c67b5e492f287f5a6542' -Entering 'sub1' -Entering 'sub2' -Entering 'sub3' -/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone2/.git/modules/nested1/modules/nested2 -fatal: not a gitdir 'nested1/nested2/nested3/.git' -ok 5 - use "submodule foreach" to checkout 2nd level submodule - -expecting success of 7407.6 'use "foreach --recursive" to checkout all submodules': - ( - cd clone2 && - git submodule foreach --recursive "git submodule update --init" && - git rev-parse --resolve-git-dir nested1/nested2/nested3/.git && - git rev-parse --resolve-git-dir nested1/nested2/nested3/submodule/.git - ) - -Entering 'nested1' -Entering 'nested1/nested2' -Submodule 'nested3' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/nested3) registered for path 'nested3' -Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone2/nested1/nested2/nested3'... -done. -Submodule path 'nested3': checked out '5ec83512b76a0b8170b899f8e643913c3e9b72d9' -Entering 'nested1/nested2/nested3' -Submodule 'submodule' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/submodule) registered for path 'submodule' -Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone2/nested1/nested2/nested3/submodule'... -done. -Submodule path 'submodule': checked out '509f622a4f36a3e472affcf28fa959174f3dd5b5' -Entering 'nested1/nested2/nested3/submodule' -Entering 'sub1' -Entering 'sub2' -Entering 'sub3' -/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone2/.git/modules/nested1/modules/nested2/modules/nested3 -/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone2/.git/modules/nested1/modules/nested2/modules/nested3/modules/submodule -ok 6 - use "foreach --recursive" to checkout all submodules - -expecting success of 7407.7 'test messages from "foreach --recursive"': - ( - cd clone2 && - git submodule foreach --recursive "true" > ../actual - ) && - test_i18ncmp expect actual - -ok 7 - test messages from "foreach --recursive" - -expecting success of 7407.8 'test messages from "foreach --recursive" from subdirectory': - ( - cd clone2 && - mkdir untracked && - cd untracked && - git submodule foreach --recursive >../../actual - ) && - test_i18ncmp expect actual - -ok 8 - test messages from "foreach --recursive" from subdirectory - -expecting success of 7407.9 'test "submodule foreach --recursive" from subdirectory': - ( - cd clone2/untracked && - git submodule foreach --recursive "echo toplevel: \$toplevel name: \$name path: \$sm_path displaypath: \$displaypath hash: \$sha1" >../../actual - ) && - test_i18ncmp expect actual - -ok 9 - test "submodule foreach --recursive" from subdirectory - -expecting success of 7407.10 'test "foreach --quiet --recursive"': - ( - cd clone2 && - git submodule foreach -q --recursive "echo \$name-\$path" > ../actual - ) && - test_cmp expect actual - -ok 10 - test "foreach --quiet --recursive" - -expecting success of 7407.11 'use "update --recursive" to checkout all submodules': - git clone super clone3 && - ( - cd clone3 && - test_must_fail git rev-parse --resolve-git-dir sub1/.git && - test_must_fail git rev-parse --resolve-git-dir sub2/.git && - test_must_fail git rev-parse --resolve-git-dir sub3/.git && - test_must_fail git rev-parse --resolve-git-dir nested1/.git && - git submodule update --init --recursive && - git rev-parse --resolve-git-dir sub1/.git && - git rev-parse --resolve-git-dir sub2/.git && - git rev-parse --resolve-git-dir sub3/.git && - git rev-parse --resolve-git-dir nested1/.git && - git rev-parse --resolve-git-dir nested1/nested2/.git && - git rev-parse --resolve-git-dir nested1/nested2/nested3/.git && - git rev-parse --resolve-git-dir nested1/nested2/nested3/submodule/.git - ) - -Cloning into 'clone3'... -done. -fatal: not a gitdir 'sub1/.git' -fatal: not a gitdir 'sub2/.git' -fatal: not a gitdir 'sub3/.git' -fatal: not a gitdir 'nested1/.git' -Submodule 'nested1' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/nested1) registered for path 'nested1' -Submodule 'foo1' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/submodule) registered for path 'sub1' -Submodule 'foo2' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/submodule) registered for path 'sub2' -Submodule 'foo3' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/submodule) registered for path 'sub3' -Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone3/nested1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone3/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone3/sub2'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone3/sub3'... -done. -Submodule path 'nested1': checked out 'b23f134787d96fae589a6b76da41f4db112fc8db' -Submodule 'nested2' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/nested2) registered for path 'nested1/nested2' -Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone3/nested1/nested2'... -done. -Submodule path 'nested1/nested2': checked out '2e69c85de92bf5f316f3c67b5e492f287f5a6542' -Submodule 'nested3' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/nested3) registered for path 'nested1/nested2/nested3' -Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone3/nested1/nested2/nested3'... -done. -Submodule path 'nested1/nested2/nested3': checked out '5ec83512b76a0b8170b899f8e643913c3e9b72d9' -Submodule 'submodule' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/submodule) registered for path 'nested1/nested2/nested3/submodule' -Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone3/nested1/nested2/nested3/submodule'... -done. -Submodule path 'nested1/nested2/nested3/submodule': checked out '509f622a4f36a3e472affcf28fa959174f3dd5b5' -Submodule path 'sub1': checked out '0c90624ab7f1aaa301d3bb79f60dcfed1ec4897f' -Submodule path 'sub2': checked out '0c90624ab7f1aaa301d3bb79f60dcfed1ec4897f' -Submodule path 'sub3': checked out '509f622a4f36a3e472affcf28fa959174f3dd5b5' -/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone3/.git/modules/foo1 -/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone3/.git/modules/foo2 -/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone3/.git/modules/foo3 -/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone3/.git/modules/nested1 -/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone3/.git/modules/nested1/modules/nested2 -/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone3/.git/modules/nested1/modules/nested2/modules/nested3 -/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone3/.git/modules/nested1/modules/nested2/modules/nested3/modules/submodule -ok 11 - use "update --recursive" to checkout all submodules - -expecting success of 7407.12 'test "status --recursive"': - ( - cd clone3 && - git submodule status --recursive > ../actual - ) && - test_cmp expect actual - -ok 12 - test "status --recursive" - -expecting success of 7407.13 'ensure "status --cached --recursive" preserves the --cached flag': - ( - cd clone3 && - ( - cd nested1/nested2 && - test_commit file2 - ) && - git submodule status --cached --recursive -- nested1 > ../actual - ) && - test_cmp expect actual - -[detached HEAD 25d56d1] file2 - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file2.t -ok 13 - ensure "status --cached --recursive" preserves the --cached flag - -expecting success of 7407.14 'test "status --recursive" from sub directory': - ( - cd clone3 && - mkdir tmp && cd tmp && - git submodule status --recursive > ../../actual - ) && - test_cmp expect actual - -ok 14 - test "status --recursive" from sub directory - -expecting success of 7407.15 'use "git clone --recursive" to checkout all submodules': - git clone --recursive super clone4 && - ( - cd clone4 && - git rev-parse --resolve-git-dir .git && - git rev-parse --resolve-git-dir sub1/.git && - git rev-parse --resolve-git-dir sub2/.git && - git rev-parse --resolve-git-dir sub3/.git && - git rev-parse --resolve-git-dir nested1/.git && - git rev-parse --resolve-git-dir nested1/nested2/.git && - git rev-parse --resolve-git-dir nested1/nested2/nested3/.git && - git rev-parse --resolve-git-dir nested1/nested2/nested3/submodule/.git - ) - -Cloning into 'clone4'... -done. -Submodule 'nested1' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/nested1) registered for path 'nested1' -Submodule 'foo1' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/submodule) registered for path 'sub1' -Submodule 'foo2' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/submodule) registered for path 'sub2' -Submodule 'foo3' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/submodule) registered for path 'sub3' -Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone4/nested1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone4/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone4/sub2'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone4/sub3'... -done. -Submodule path 'nested1': checked out 'b23f134787d96fae589a6b76da41f4db112fc8db' -Submodule 'nested2' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/nested2) registered for path 'nested1/nested2' -Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone4/nested1/nested2'... -done. -Submodule path 'nested1/nested2': checked out '2e69c85de92bf5f316f3c67b5e492f287f5a6542' -Submodule 'nested3' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/nested3) registered for path 'nested1/nested2/nested3' -Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone4/nested1/nested2/nested3'... -done. -Submodule path 'nested1/nested2/nested3': checked out '5ec83512b76a0b8170b899f8e643913c3e9b72d9' -Submodule 'submodule' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/submodule) registered for path 'nested1/nested2/nested3/submodule' -Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone4/nested1/nested2/nested3/submodule'... -done. -Submodule path 'nested1/nested2/nested3/submodule': checked out '509f622a4f36a3e472affcf28fa959174f3dd5b5' -Submodule path 'sub1': checked out '0c90624ab7f1aaa301d3bb79f60dcfed1ec4897f' -Submodule path 'sub2': checked out '0c90624ab7f1aaa301d3bb79f60dcfed1ec4897f' -Submodule path 'sub3': checked out '509f622a4f36a3e472affcf28fa959174f3dd5b5' -.git -/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone4/.git/modules/foo1 -/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone4/.git/modules/foo2 -/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone4/.git/modules/foo3 -/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone4/.git/modules/nested1 -/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone4/.git/modules/nested1/modules/nested2 -/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone4/.git/modules/nested1/modules/nested2/modules/nested3 -/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone4/.git/modules/nested1/modules/nested2/modules/nested3/modules/submodule -ok 15 - use "git clone --recursive" to checkout all submodules - -expecting success of 7407.16 'test "update --recursive" with a flag with spaces': - git clone super "common objects" && - git clone super clone5 && - ( - cd clone5 && - test_must_fail git rev-parse --resolve-git-dir d nested1/.git && - git submodule update --init --recursive --reference="$(dirname "$PWD")/common objects" && - git rev-parse --resolve-git-dir nested1/.git && - git rev-parse --resolve-git-dir nested1/nested2/.git && - git rev-parse --resolve-git-dir nested1/nested2/nested3/.git && - test -f .git/modules/nested1/objects/info/alternates && - test -f .git/modules/nested1/modules/nested2/objects/info/alternates && - test -f .git/modules/nested1/modules/nested2/modules/nested3/objects/info/alternates - ) - -Cloning into 'common objects'... -done. -Cloning into 'clone5'... -done. -fatal: not a gitdir 'd' -Submodule 'nested1' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/nested1) registered for path 'nested1' -Submodule 'foo1' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/submodule) registered for path 'sub1' -Submodule 'foo2' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/submodule) registered for path 'sub2' -Submodule 'foo3' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/submodule) registered for path 'sub3' -Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone5/nested1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone5/sub1'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone5/sub2'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone5/sub3'... -done. -Submodule path 'nested1': checked out 'b23f134787d96fae589a6b76da41f4db112fc8db' -Submodule 'nested2' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/nested2) registered for path 'nested1/nested2' -Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone5/nested1/nested2'... -done. -Submodule path 'nested1/nested2': checked out '2e69c85de92bf5f316f3c67b5e492f287f5a6542' -Submodule 'nested3' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/nested3) registered for path 'nested1/nested2/nested3' -Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone5/nested1/nested2/nested3'... -done. -Submodule path 'nested1/nested2/nested3': checked out '5ec83512b76a0b8170b899f8e643913c3e9b72d9' -Submodule 'submodule' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/submodule) registered for path 'nested1/nested2/nested3/submodule' -Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone5/nested1/nested2/nested3/submodule'... -done. -Submodule path 'nested1/nested2/nested3/submodule': checked out '509f622a4f36a3e472affcf28fa959174f3dd5b5' -Submodule path 'sub1': checked out '0c90624ab7f1aaa301d3bb79f60dcfed1ec4897f' -Submodule path 'sub2': checked out '0c90624ab7f1aaa301d3bb79f60dcfed1ec4897f' -Submodule path 'sub3': checked out '509f622a4f36a3e472affcf28fa959174f3dd5b5' -/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone5/.git/modules/nested1 -/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone5/.git/modules/nested1/modules/nested2 -/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone5/.git/modules/nested1/modules/nested2/modules/nested3 -ok 16 - test "update --recursive" with a flag with spaces - -expecting success of 7407.17 'use "update --recursive nested1" to checkout all submodules rooted in nested1': - git clone super clone6 && - ( - cd clone6 && - test_must_fail git rev-parse --resolve-git-dir sub1/.git && - test_must_fail git rev-parse --resolve-git-dir sub2/.git && - test_must_fail git rev-parse --resolve-git-dir sub3/.git && - test_must_fail git rev-parse --resolve-git-dir nested1/.git && - git submodule update --init --recursive -- nested1 && - test_must_fail git rev-parse --resolve-git-dir sub1/.git && - test_must_fail git rev-parse --resolve-git-dir sub2/.git && - test_must_fail git rev-parse --resolve-git-dir sub3/.git && - git rev-parse --resolve-git-dir nested1/.git && - git rev-parse --resolve-git-dir nested1/nested2/.git && - git rev-parse --resolve-git-dir nested1/nested2/nested3/.git && - git rev-parse --resolve-git-dir nested1/nested2/nested3/submodule/.git - ) - -Cloning into 'clone6'... -done. -fatal: not a gitdir 'sub1/.git' -fatal: not a gitdir 'sub2/.git' -fatal: not a gitdir 'sub3/.git' -fatal: not a gitdir 'nested1/.git' -Submodule 'nested1' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/nested1) registered for path 'nested1' -Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone6/nested1'... -done. -Submodule path 'nested1': checked out 'b23f134787d96fae589a6b76da41f4db112fc8db' -Submodule 'nested2' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/nested2) registered for path 'nested1/nested2' -Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone6/nested1/nested2'... -done. -Submodule path 'nested1/nested2': checked out '2e69c85de92bf5f316f3c67b5e492f287f5a6542' -Submodule 'nested3' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/nested3) registered for path 'nested1/nested2/nested3' -Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone6/nested1/nested2/nested3'... -done. -Submodule path 'nested1/nested2/nested3': checked out '5ec83512b76a0b8170b899f8e643913c3e9b72d9' -Submodule 'submodule' (/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/submodule) registered for path 'nested1/nested2/nested3/submodule' -Cloning into '/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone6/nested1/nested2/nested3/submodule'... -done. -Submodule path 'nested1/nested2/nested3/submodule': checked out '509f622a4f36a3e472affcf28fa959174f3dd5b5' -fatal: not a gitdir 'sub1/.git' -fatal: not a gitdir 'sub2/.git' -fatal: not a gitdir 'sub3/.git' -/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone6/.git/modules/nested1 -/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone6/.git/modules/nested1/modules/nested2 -/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone6/.git/modules/nested1/modules/nested2/modules/nested3 -/build/git-2.30.2/t/trash directory.t7407-submodule-foreach/clone6/.git/modules/nested1/modules/nested2/modules/nested3/modules/submodule -ok 17 - use "update --recursive nested1" to checkout all submodules rooted in nested1 - -expecting success of 7407.18 'command passed to foreach retains notion of stdin': - ( - cd super && - git submodule foreach echo success >../expected && - yes | git submodule foreach "read y && test \"x\$y\" = xy && echo success" >../actual - ) && - test_cmp expected actual - -ok 18 - command passed to foreach retains notion of stdin - -expecting success of 7407.19 'command passed to foreach --recursive retains notion of stdin': - ( - cd clone2 && - git submodule foreach --recursive echo success >../expected && - yes | git submodule foreach --recursive "read y && test \"x\$y\" = xy && echo success" >../actual - ) && - test_cmp expected actual - -ok 19 - command passed to foreach --recursive retains notion of stdin - -expecting success of 7407.20 'multi-argument command passed to foreach is not shell-evaluated twice': - ( - cd super && - git submodule foreach "echo \\\"quoted\\\"" > ../expected && - git submodule foreach echo \"quoted\" > ../actual - ) && - test_cmp expected actual - -ok 20 - multi-argument command passed to foreach is not shell-evaluated twice - -expecting success of 7407.21 'option-like arguments passed to foreach commands are not lost': - ( - cd super && - git submodule foreach "echo be --quiet" > ../expected && - git submodule foreach echo be --quiet > ../actual - ) && - grep -sq -e "--quiet" expected && - test_cmp expected actual - -ok 21 - option-like arguments passed to foreach commands are not lost - -expecting success of 7407.22 'option-like arguments passed to foreach recurse correctly': - git -C clone2 submodule foreach --recursive "echo be --an-option" >expect && - git -C clone2 submodule foreach --recursive echo be --an-option >actual && - grep -e "--an-option" expect && - test_cmp expect actual - -be --an-option -be --an-option -be --an-option -be --an-option -be --an-option -be --an-option -be --an-option -ok 22 - option-like arguments passed to foreach recurse correctly - -# passed all 22 test(s) -1..22 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t7417-submodule-path-url.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7417-submodule-path-url/.git/ -expecting success of 7417.1 'setup': - git config --global protocol.file.allow always - -ok 1 - setup - -expecting success of 7417.2 'create submodule with dash in path': - git init upstream && - git -C upstream commit --allow-empty -m base && - git submodule add ./upstream sub && - git mv sub ./-sub && - git commit -m submodule - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7417-submodule-path-url/upstream/.git/ -[master (root-commit) a4b5938] base - Author: A U Thor -Cloning into '/build/git-2.30.2/t/trash directory.t7417-submodule-path-url/sub'... -done. -warning: ignoring 'submodule.sub.path' which may be interpreted as a command-line option: -sub -[master (root-commit) c0215d8] submodule - Author: A U Thor - 2 files changed, 4 insertions(+) - create mode 160000 -sub - create mode 100644 .gitmodules -ok 2 - create submodule with dash in path - -expecting success of 7417.3 'clone rejects unprotected dash': - test_when_finished "rm -rf dst" && - git clone --recurse-submodules . dst 2>err && - test_i18ngrep ignoring err - -checking prerequisite: C_LOCALE_OUTPUT - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false - -) -prerequisite C_LOCALE_OUTPUT ok -warning: ignoring 'submodule.sub.path' which may be interpreted as a command-line option: -sub -warning: ignoring 'submodule.sub.path' which may be interpreted as a command-line option: -sub -ok 3 - clone rejects unprotected dash - -expecting success of 7417.4 'fsck rejects unprotected dash': - test_when_finished "rm -rf dst" && - git init --bare dst && - git -C dst config transfer.fsckObjects true && - test_must_fail git push dst HEAD 2>err && - grep gitmodulesPath err - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7417-submodule-path-url/dst/ -remote: error: object 7e03af04dae731f9aa8e2febaf8b530bdafd3aa1: gitmodulesPath: disallowed submodule path: -sub -ok 4 - fsck rejects unprotected dash - -ok 5 # skip submodule paths disallows trailing spaces (missing MINGW) - -# passed all 5 test(s) -1..5 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' *** t7420-submodule-set-url.sh *** expecting success of 7420.1 'setup': git config --global protocol.file.allow always @@ -358460,166 +356084,6 @@ 1..3 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t7419-submodule-set-branch.sh *** -expecting success of 7419.1 'setup': - git config --global protocol.file.allow always - -ok 1 - setup - -expecting success of 7419.2 'submodule config cache setup': - mkdir submodule && - (cd submodule && - git init && - echo a >a && - git add . && - git commit -ma && - git checkout -b topic && - echo b >a && - git add . && - git commit -mb - ) && - mkdir super && - (cd super && - git init && - git submodule add ../submodule && - git commit -m "add submodule" - ) - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7419-submodule-set-branch/submodule/.git/ -[master (root-commit) 7bdc13c] a - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 a -Switched to a new branch 'topic' -[topic 45d819c] b - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7419-submodule-set-branch/super/.git/ -Cloning into '/build/git-2.30.2/t/trash directory.t7419-submodule-set-branch/super/submodule'... -done. -[master (root-commit) c72afe3] add submodule - Author: A U Thor - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 submodule -ok 2 - submodule config cache setup - -expecting success of 7419.3 'ensure submodule branch is unset': - (cd super && - ! grep branch .gitmodules - ) - -ok 3 - ensure submodule branch is unset - -expecting success of 7419.4 'test submodule set-branch --branch': - (cd super && - git submodule set-branch --branch topic submodule && - grep "branch = topic" .gitmodules && - git submodule update --remote && - cat <<-\EOF >expect && - b - EOF - git -C submodule show -s --pretty=%s >actual && - test_cmp expect actual - ) - - branch = topic -ok 4 - test submodule set-branch --branch - -expecting success of 7419.5 'test submodule set-branch --default': - test_commit -C submodule c && - (cd super && - git submodule set-branch --default submodule && - ! grep branch .gitmodules && - git submodule update --remote && - cat <<-\EOF >expect && - c - EOF - git -C submodule show -s --pretty=%s >actual && - test_cmp expect actual - ) - -[topic b6374c0] c - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 c.t -From /build/git-2.30.2/t/trash directory.t7419-submodule-set-branch/submodule - 45d819c..b6374c0 topic -> origin/topic - * [new tag] c -> c -Submodule path 'submodule': checked out 'b6374c0adf91ec6b1b212e588788d842307a2277' -ok 5 - test submodule set-branch --default - -expecting success of 7419.6 'test submodule set-branch -b': - test_commit -C submodule b && - (cd super && - git submodule set-branch -b topic submodule && - grep "branch = topic" .gitmodules && - git submodule update --remote && - cat <<-\EOF >expect && - b - EOF - git -C submodule show -s --pretty=%s >actual && - test_cmp expect actual - ) - -[topic 6fa1e23] b - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 b.t - branch = topic -From /build/git-2.30.2/t/trash directory.t7419-submodule-set-branch/submodule - b6374c0..6fa1e23 topic -> origin/topic - * [new tag] b -> b -Submodule path 'submodule': checked out '6fa1e237438f9aaef5109afed920ac4730aa4c8d' -ok 6 - test submodule set-branch -b - -expecting success of 7419.7 'test submodule set-branch -d': - test_commit -C submodule d && - (cd super && - git submodule set-branch -d submodule && - ! grep branch .gitmodules && - git submodule update --remote && - cat <<-\EOF >expect && - d - EOF - git -C submodule show -s --pretty=%s >actual && - test_cmp expect actual - ) - -[topic 79f1aa7] d - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 d.t -From /build/git-2.30.2/t/trash directory.t7419-submodule-set-branch/submodule - 6fa1e23..79f1aa7 topic -> origin/topic - * [new tag] d -> d -Submodule path 'submodule': checked out '79f1aa7bcd4311dec63be21d2bb72e96c4a9adec' -ok 7 - test submodule set-branch -d - -# passed all 7 test(s) -1..7 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' *** t7418-submodule-sparse-gitmodules.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7418-submodule-sparse-gitmodules/.git/ expecting success of 7418.1 'setup': @@ -358837,6 +356301,166 @@ 1..9 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t7419-submodule-set-branch.sh *** +expecting success of 7419.1 'setup': + git config --global protocol.file.allow always + +ok 1 - setup + +expecting success of 7419.2 'submodule config cache setup': + mkdir submodule && + (cd submodule && + git init && + echo a >a && + git add . && + git commit -ma && + git checkout -b topic && + echo b >a && + git add . && + git commit -mb + ) && + mkdir super && + (cd super && + git init && + git submodule add ../submodule && + git commit -m "add submodule" + ) + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7419-submodule-set-branch/submodule/.git/ +[master (root-commit) 7bdc13c] a + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 a +Switched to a new branch 'topic' +[topic 45d819c] b + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7419-submodule-set-branch/super/.git/ +Cloning into '/build/git-2.30.2/t/trash directory.t7419-submodule-set-branch/super/submodule'... +done. +[master (root-commit) c72afe3] add submodule + Author: A U Thor + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 submodule +ok 2 - submodule config cache setup + +expecting success of 7419.3 'ensure submodule branch is unset': + (cd super && + ! grep branch .gitmodules + ) + +ok 3 - ensure submodule branch is unset + +expecting success of 7419.4 'test submodule set-branch --branch': + (cd super && + git submodule set-branch --branch topic submodule && + grep "branch = topic" .gitmodules && + git submodule update --remote && + cat <<-\EOF >expect && + b + EOF + git -C submodule show -s --pretty=%s >actual && + test_cmp expect actual + ) + + branch = topic +ok 4 - test submodule set-branch --branch + +expecting success of 7419.5 'test submodule set-branch --default': + test_commit -C submodule c && + (cd super && + git submodule set-branch --default submodule && + ! grep branch .gitmodules && + git submodule update --remote && + cat <<-\EOF >expect && + c + EOF + git -C submodule show -s --pretty=%s >actual && + test_cmp expect actual + ) + +[topic b6374c0] c + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 c.t +From /build/git-2.30.2/t/trash directory.t7419-submodule-set-branch/submodule + 45d819c..b6374c0 topic -> origin/topic + * [new tag] c -> c +Submodule path 'submodule': checked out 'b6374c0adf91ec6b1b212e588788d842307a2277' +ok 5 - test submodule set-branch --default + +expecting success of 7419.6 'test submodule set-branch -b': + test_commit -C submodule b && + (cd super && + git submodule set-branch -b topic submodule && + grep "branch = topic" .gitmodules && + git submodule update --remote && + cat <<-\EOF >expect && + b + EOF + git -C submodule show -s --pretty=%s >actual && + test_cmp expect actual + ) + +[topic 6fa1e23] b + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 b.t + branch = topic +From /build/git-2.30.2/t/trash directory.t7419-submodule-set-branch/submodule + b6374c0..6fa1e23 topic -> origin/topic + * [new tag] b -> b +Submodule path 'submodule': checked out '6fa1e237438f9aaef5109afed920ac4730aa4c8d' +ok 6 - test submodule set-branch -b + +expecting success of 7419.7 'test submodule set-branch -d': + test_commit -C submodule d && + (cd super && + git submodule set-branch -d submodule && + ! grep branch .gitmodules && + git submodule update --remote && + cat <<-\EOF >expect && + d + EOF + git -C submodule show -s --pretty=%s >actual && + test_cmp expect actual + ) + +[topic 79f1aa7] d + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 d.t +From /build/git-2.30.2/t/trash directory.t7419-submodule-set-branch/submodule + 6fa1e23..79f1aa7 topic -> origin/topic + * [new tag] d -> d +Submodule path 'submodule': checked out '79f1aa7bcd4311dec63be21d2bb72e96c4a9adec' +ok 7 - test submodule set-branch -d + +# passed all 7 test(s) +1..7 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t7421-submodule-summary-add.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7421-submodule-summary-add/.git/ expecting success of 7421.1 'setup': @@ -359361,145 +356985,2364 @@ 1 file changed, 1 insertion(+) ok 30 - commit --squash works with -c -expecting success of 7500.31 'commit --squash works with -C for same commit': - commit_for_rebase_autosquash_setup && - git commit --squash HEAD -C HEAD && - commit_msg_is "squash! intermediate commit" +expecting success of 7500.31 'commit --squash works with -C for same commit': + commit_for_rebase_autosquash_setup && + git commit --squash HEAD -C HEAD && + commit_msg_is "squash! intermediate commit" + +[master 2b9d772] target message subject line + Author: A U Thor + 1 file changed, 1 insertion(+) +[master 4770413] intermediate commit + Author: A U Thor + 1 file changed, 1 insertion(+) +[master 8dec803] squash! intermediate commit + Author: A U Thor + Date: Fri Apr 1 13:14:15 2005 +0200 + 1 file changed, 1 insertion(+) +ok 31 - commit --squash works with -C for same commit + +expecting success of 7500.32 'commit --squash works with -c for same commit': + commit_for_rebase_autosquash_setup && + test_set_editor "$TEST_DIRECTORY"/t7500/edit-content && + git commit --squash HEAD -c HEAD && + commit_msg_is "squash! edited commit" + +[master 2a48106] target message subject line + Author: A U Thor + 1 file changed, 1 insertion(+) +[master 52a1c51] intermediate commit + Author: A U Thor + 1 file changed, 1 insertion(+) +[master 112e98e] squash! edited commit + Author: A U Thor + Date: Fri Apr 1 13:14:15 2005 +0200 + 1 file changed, 1 insertion(+) +ok 32 - commit --squash works with -c for same commit + +expecting success of 7500.33 'commit --squash works with editor': + commit_for_rebase_autosquash_setup && + test_set_editor "$TEST_DIRECTORY"/t7500/add-content && + git commit --squash HEAD~1 && + commit_msg_is "squash! target message subject linecommit message" + +[master c2cab45] target message subject line + Author: A U Thor + 1 file changed, 1 insertion(+) +[master 829783f] intermediate commit + Author: A U Thor + 1 file changed, 1 insertion(+) +[master 08f36d0] squash! target message subject line + Author: A U Thor + 1 file changed, 1 insertion(+) +ok 33 - commit --squash works with editor + +expecting success of 7500.34 'invalid message options when using --fixup': + echo changes >>foo && + echo "message" >log && + git add foo && + test_must_fail git commit --fixup HEAD~1 --squash HEAD~2 && + test_must_fail git commit --fixup HEAD~1 -C HEAD~2 && + test_must_fail git commit --fixup HEAD~1 -c HEAD~2 && + test_must_fail git commit --fixup HEAD~1 -F log + +fatal: Options --squash and --fixup cannot be used together +fatal: Only one of -c/-C/-F/--fixup can be used. +fatal: Only one of -c/-C/-F/--fixup can be used. +fatal: Only one of -c/-C/-F/--fixup can be used. +ok 34 - invalid message options when using --fixup + +expecting success of 7500.35 'new line found before status message in commit template': + git checkout -b commit-template-check && + git reset --hard HEAD && + touch commit-template-check && + git add commit-template-check && + GIT_EDITOR="cat >editor-input" git commit --untracked-files=no --allow-empty-message && + test_i18ncmp expected-template editor-input + +Switched to a new branch 'commit-template-check' +HEAD is now at 08f36d0 squash! target message subject line +[commit-template-check a9144e1] + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 commit-template-check +ok 35 - new line found before status message in commit template + +expecting success of 7500.36 'setup empty commit with unstaged rename and copy': + test_create_repo unstaged_rename_and_copy && + ( + cd unstaged_rename_and_copy && + + echo content >orig && + git add orig && + test_commit orig && + + cp orig new_copy && + mv orig new_rename && + git add -N new_copy new_rename + ) + +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7500-commit-template-squash-signoff/unstaged_rename_and_copy/.git/ +[master (root-commit) bac0952] orig + Author: A U Thor + 2 files changed, 2 insertions(+) + create mode 100644 orig + create mode 100644 orig.t +ok 36 - setup empty commit with unstaged rename and copy + +expecting success of 7500.37 'check commit with unstaged rename and copy': + ( + cd unstaged_rename_and_copy && + + test_must_fail git -c diff.renames=copy commit + ) + +On branch master +Changes not staged for commit: + (use "git add ..." to update what will be committed) + (use "git restore ..." to discard changes in working directory) + copied: orig -> new_copy + renamed: orig -> new_rename + +no changes added to commit (use "git add" and/or "git commit -a") +ok 37 - check commit with unstaged rename and copy + +expecting success of 7500.38 'commit without staging files fails and displays hints': + echo "initial" >file && + git add file && + git commit -m initial && + echo "changes" >>file && + test_must_fail git commit -m update >actual && + test_i18ngrep "no changes added to commit (use \"git add\" and/or \"git commit -a\")" actual + +[commit-template-check 5e78649] initial + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file +no changes added to commit (use "git add" and/or "git commit -a") +ok 38 - commit without staging files fails and displays hints + +# passed all 38 test(s) +1..38 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t7112-reset-submodule.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7112-reset-submodule/.git/ +expecting success of 7112.1 'git reset --keep --recurse-submodules: added submodule is checked out': + prolog && + reset_work_tree_to_interested no_submodule && + ( + cd submodule_update && + git branch -t add_sub1 origin/add_sub1 && + $command add_sub1 && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1/.git/ +[master (root-commit) 63c4304] Base inside first submodule + Author: A U Thor + 3 files changed, 4 insertions(+) + create mode 100644 .gitignore + create mode 100644 file1 + create mode 100644 file2 +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub2/.git/ +[master (root-commit) 27c5769] nested submodule base + Author: A U Thor + 3 files changed, 4 insertions(+) + create mode 100644 .gitignore + create mode 100644 file1 + create mode 100644 file2 +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_repo/.git/ +[master (root-commit) 27611a5] Base + Author: A U Thor + 3 files changed, 4 insertions(+) + create mode 100644 .gitignore + create mode 100644 file1 + create mode 100644 file2 +Switched to a new branch 'add_sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_repo/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_repo/uninitialized_sub'... +done. +[add_sub1 09bcf53] Add sub1 + Author: A U Thor + 2 files changed, 8 insertions(+) + create mode 100644 .gitmodules + create mode 160000 uninitialized_sub +Switched to a new branch 'remove_sub1' +Removing uninitialized_sub +Removing sub1 +Removing .gitmodules +[remove_sub1 d6ba723] Revert "Add sub1" + Author: A U Thor + Date: Fri Apr 1 13:14:15 2005 +0200 + 3 files changed, 9 deletions(-) + delete mode 100644 .gitmodules + delete mode 160000 sub1 + delete mode 160000 uninitialized_sub +Switched to a new branch 'modify_sub1' +Switched to a new branch 'modifications' +[modifications 03da4ea] modified file2 and added file3 + Author: A U Thor + 2 files changed, 2 insertions(+), 1 deletion(-) + create mode 100644 file3 +To /build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1 + * [new branch] modifications -> modifications +[modify_sub1 cb2bda7] Modify sub1 + Author: A U Thor +Switched to a new branch 'add_nested_sub' +Switched to a new branch 'add_nested_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_repo/sub1/sub2'... +done. +[add_nested_sub 8b3b335] add a nested submodule + Author: A U Thor + 2 files changed, 5 insertions(+) + create mode 100644 .gitmodules + create mode 160000 sub2 +[add_nested_sub 5bc57bf] update submodule, that updates a nested submodule + Author: A U Thor +Switched to a new branch 'modify_sub1_recursively' +Switched to a new branch 'modify_sub1_recursively' +Switched to a new branch 'modify_sub1_recursively' +[modify_sub1_recursively c7c4624] make a change in nested sub + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file3 +[modify_sub1_recursively 92fc14a] update nested sub + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +[modify_sub1_recursively 953e869] update sub1, that updates nested sub + Author: A U Thor +To /build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1 + * [new branch] modify_sub1_recursively -> modify_sub1_recursively +To /build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub2 + * [new branch] modify_sub1_recursively -> modify_sub1_recursively +Cleared directory 'sub2' +Submodule 'sub2' (../submodule_update_sub2) unregistered for path 'sub2' +Switched to a new branch 'replace_sub1_with_directory' +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Previous HEAD position was 63c4304 Base inside first submodule +Switched to branch 'modifications' +rm 'sub1' +[replace_sub1_with_directory cb28587] Replace sub1 with directory + Author: A U Thor + 5 files changed, 3 insertions(+), 5 deletions(-) + delete mode 160000 sub1 + create mode 100644 sub1/file1 + create mode 100644 sub1/file2 + create mode 100644 sub1/file3 +Switched to a new branch 'replace_directory_with_sub1' +Removing sub1/file3 +Removing sub1/file2 +Removing sub1/file1 +Adding sub1 +[replace_directory_with_sub1 a2e65d5] Revert "Replace sub1 with directory" + Author: A U Thor + Date: Fri Apr 1 13:14:15 2005 +0200 + 4 files changed, 4 insertions(+), 3 deletions(-) + delete mode 100644 sub1/file1 + delete mode 100644 sub1/file2 + delete mode 100644 sub1/file3 +Switched to a new branch 'replace_sub1_with_file' +rm 'sub1' +[replace_sub1_with_file 2364f5a] Replace sub1 with file + Author: A U Thor + 2 files changed, 1 insertion(+), 5 deletions(-) + mode change 160000 => 100644 sub1 +Switched to a new branch 'replace_file_with_sub1' +[replace_file_with_sub1 8b6fdfc] Revert "Replace sub1 with file" + Author: A U Thor + Date: Fri Apr 1 13:14:15 2005 +0200 + 2 files changed, 5 insertions(+), 1 deletion(-) + mode change 100644 => 160000 sub1 +Switched to a new branch 'invalid_sub1' +[invalid_sub1 e6169bf] Invalid sub1 commit + Author: A U Thor +Switched to a new branch 'valid_sub1' +[valid_sub1 3036e4e] Revert "Invalid sub1 commit" + Author: A U Thor + Date: Fri Apr 1 13:14:15 2005 +0200 +warning: unable to rmdir 'uninitialized_sub': Directory not empty +Switched to branch 'master' +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +ok 1 - git reset --keep --recurse-submodules: added submodule is checked out + +expecting success of 7112.2 'git reset --keep --recurse-submodules: added submodule is checked out in empty dir': + prolog && + reset_work_tree_to_interested no_submodule && + ( + cd submodule_update && + mkdir sub1 && + git branch -t add_sub1 origin/add_sub1 && + $command add_sub1 && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +ok 2 - git reset --keep --recurse-submodules: added submodule is checked out in empty dir + +expecting success of 7112.3 'git reset --keep --recurse-submodules: replace tracked file with submodule checks out submodule': + prolog && + reset_work_tree_to_interested replace_sub1_with_file && + ( + cd submodule_update && + git branch -t replace_file_with_sub1 origin/replace_file_with_sub1 && + $command replace_file_with_sub1 && + test_superproject_content origin/replace_file_with_sub1 && + test_submodule_content sub1 origin/replace_file_with_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'replace_sub1_with_file' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +fatal: Needed a single revision +Branch 'replace_file_with_sub1' set up to track remote branch 'replace_file_with_sub1' from 'origin'. +ok 3 - git reset --keep --recurse-submodules: replace tracked file with submodule checks out submodule + +expecting success of 7112.4 'git reset --keep --recurse-submodules: replace directory with submodule': + prolog && + reset_work_tree_to_interested replace_sub1_with_directory && + ( + cd submodule_update && + git branch -t replace_directory_with_sub1 origin/replace_directory_with_sub1 && + $command replace_directory_with_sub1 && + test_superproject_content origin/replace_directory_with_sub1 && + test_submodule_content sub1 origin/replace_directory_with_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'replace_sub1_with_directory' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +fatal: Needed a single revision +Branch 'replace_directory_with_sub1' set up to track remote branch 'replace_directory_with_sub1' from 'origin'. +ok 4 - git reset --keep --recurse-submodules: replace directory with submodule + +expecting success of 7112.5 'git reset --keep --recurse-submodules: nested submodules are checked out': + prolog && + reset_work_tree_to_interested no_submodule && + ( + cd submodule_update && + git branch -t modify_sub1_recursively origin/modify_sub1_recursively && + $command modify_sub1_recursively && + test_superproject_content origin/modify_sub1_recursively && + test_submodule_content sub1 origin/modify_sub1_recursively && + test_submodule_content -C sub1 sub2 origin/modify_sub1_recursively + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'modify_sub1_recursively' set up to track remote branch 'modify_sub1_recursively' from 'origin'. +ok 5 - git reset --keep --recurse-submodules: nested submodules are checked out + +expecting success of 7112.6 'git reset --keep --recurse-submodules: removed submodule removes submodules working tree': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t remove_sub1 origin/remove_sub1 && + $command remove_sub1 && + test_superproject_content origin/remove_sub1 && + ! test -e sub1 && + test_must_fail git config -f .git/modules/sub1/config core.worktree + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. +ok 6 - git reset --keep --recurse-submodules: removed submodule removes submodules working tree + +expecting success of 7112.7 'git reset --keep --recurse-submodules: removed submodule absorbs submodules .git directory': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t remove_sub1 origin/remove_sub1 && + replace_gitfile_with_git_dir sub1 && + rm -rf .git/modules && + $command remove_sub1 && + test_superproject_content origin/remove_sub1 && + ! test -e sub1 && + test_git_directory_exists sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. +Migrating git directory of 'sub1' from +'/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1/.git' to +'/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/.git/modules/sub1' +ok 7 - git reset --keep --recurse-submodules: removed submodule absorbs submodules .git directory + +expecting success of 7112.8 'git reset --keep --recurse-submodules: replace submodule with a file': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_file origin/replace_sub1_with_file && + $command replace_sub1_with_file && + test_superproject_content origin/replace_sub1_with_file && + test -f sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +ok 8 - git reset --keep --recurse-submodules: replace submodule with a file + +checking known breakage of 7112.9 'git reset --keep --recurse-submodules: replace submodule with a file must fail with untracked files': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_file origin/replace_sub1_with_file && + : >sub1/untrackedfile && + test_must_fail $command replace_sub1_with_file && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 && + test -f sub1/untracked_file + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +test_must_fail: command succeeded: git reset --keep --recurse-submodules replace_sub1_with_file +not ok 9 - git reset --keep --recurse-submodules: replace submodule with a file must fail with untracked files # TODO known breakage + +expecting success of 7112.10 'git reset --keep --recurse-submodules: worktrees of nested submodules are removed': + prolog && + reset_work_tree_to_interested add_nested_sub && + ( + cd submodule_update && + git branch -t no_submodule origin/no_submodule && + $command no_submodule && + test_superproject_content origin/no_submodule && + ! test_path_is_dir sub1 && + test_must_fail git config -f .git/modules/sub1/config core.worktree && + test_must_fail git config -f .git/modules/sub1/modules/sub2/config core.worktree + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_nested_sub' +Branch 'add_nested_sub' set up to track remote branch 'add_nested_sub' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '8b3b3353ac8999eb3d8af8e947e0ef2a08a60008' +Submodule 'sub2' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub2) registered for path 'sub1/sub2' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1/sub2'... +done. +Submodule path 'sub1/sub2': checked out '27c5769ac0ebf2d924e34d3aa503345baaaa98b2' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Directory sub1 doesn't exist. +ok 10 - git reset --keep --recurse-submodules: worktrees of nested submodules are removed + +expecting success of 7112.11 'git reset --keep --recurse-submodules: modified submodule updates submodule work tree': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t modify_sub1 origin/modify_sub1 && + $command modify_sub1 && + test_superproject_content origin/modify_sub1 && + test_submodule_content sub1 origin/modify_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. +ok 11 - git reset --keep --recurse-submodules: modified submodule updates submodule work tree + +expecting success of 7112.12 'git reset --keep --recurse-submodules: updating to a missing submodule commit fails': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t invalid_sub1 origin/invalid_sub1 && + test_must_fail $command invalid_sub1 2>err && + test_i18ngrep sub1 err && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. +checking prerequisite: C_LOCALE_OUTPUT + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false + +) +prerequisite C_LOCALE_OUTPUT ok +error: Submodule 'sub1' could not be updated. +error: Submodule 'sub1' cannot checkout new HEAD. +fatal: Could not reset index file to revision 'invalid_sub1'. +ok 12 - git reset --keep --recurse-submodules: updating to a missing submodule commit fails + +expecting success of 7112.13 'git reset --keep --recurse-submodules: submodule branch is not changed, detach HEAD instead': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git -C sub1 checkout -b keep_branch && + git -C sub1 rev-parse HEAD >expect && + git branch -t modify_sub1 origin/modify_sub1 && + $command modify_sub1 && + test_superproject_content origin/modify_sub1 && + test_submodule_content sub1 origin/modify_sub1 && + git -C sub1 rev-parse keep_branch >actual && + test_cmp expect actual && + test_must_fail git -C sub1 symbolic-ref HEAD + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Switched to a new branch 'keep_branch' +Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. +fatal: ref HEAD is not a symbolic ref +ok 13 - git reset --keep --recurse-submodules: submodule branch is not changed, detach HEAD instead + +expecting success of 7112.14 'git reset --keep --recurse-submodules: added submodule doesn't remove untracked file with same name': + prolog && + reset_work_tree_to_interested no_submodule && + ( + cd submodule_update && + git branch -t add_sub1 origin/add_sub1 && + : >sub1 && + test_must_fail $command add_sub1 && + test_superproject_content origin/no_submodule && + test_must_be_empty sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +error: Untracked working tree file 'sub1' would be overwritten by merge. +fatal: Could not reset index file to revision 'add_sub1'. +ok 14 - git reset --keep --recurse-submodules: added submodule doesn't remove untracked file with same name + +checking known breakage of 7112.15 'git reset --keep --recurse-submodules: added submodule removes an untracked ignored file': + test_when_finished "rm submodule_update/.git/info/exclude" && + prolog && + reset_work_tree_to_interested no_submodule && + ( + cd submodule_update && + git branch -t add_sub1 origin/add_sub1 && + : >sub1 && + echo sub1 >.git/info/exclude && + $command add_sub1 && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +error: Untracked working tree file 'sub1' would be overwritten by merge. +fatal: Could not reset index file to revision 'add_sub1'. +not ok 15 - git reset --keep --recurse-submodules: added submodule removes an untracked ignored file # TODO known breakage + +checking known breakage of 7112.16 'git reset --keep --recurse-submodules: replace submodule with a directory': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && + $command replace_sub1_with_directory && + test_superproject_content origin/replace_sub1_with_directory && + test_submodule_content sub1 origin/replace_sub1_with_directory + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +error: Untracked working tree file 'sub1/file1' would be overwritten by merge. +fatal: Could not reset index file to revision 'replace_sub1_with_directory'. +not ok 16 - git reset --keep --recurse-submodules: replace submodule with a directory # TODO known breakage + +checking known breakage of 7112.17 'git reset --keep --recurse-submodules: replace submodule containing a .git directory with a directory must absorb the git dir': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && + replace_gitfile_with_git_dir sub1 && + rm -rf .git/modules && + $command replace_sub1_with_directory && + test_superproject_content origin/replace_sub1_with_directory && + test_git_directory_exists sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +error: Untracked working tree file 'sub1/file1' would be overwritten by merge. +fatal: Could not reset index file to revision 'replace_sub1_with_directory'. +not ok 17 - git reset --keep --recurse-submodules: replace submodule containing a .git directory with a directory must absorb the git dir # TODO known breakage + +expecting success of 7112.18 'git reset --keep --recurse-submodules: replace submodule with a file works ignores ignored files in submodule': + test_when_finished "rm submodule_update/.git/modules/sub1/info/exclude" && + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_file origin/replace_sub1_with_file && + echo ignored >.git/modules/sub1/info/exclude && + : >sub1/ignored && + $command replace_sub1_with_file && + test_superproject_content origin/replace_sub1_with_file && + test -f sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +ok 18 - git reset --keep --recurse-submodules: replace submodule with a file works ignores ignored files in submodule + +expecting success of 7112.19 'git -c submodule.recurse=true reset --keep: modified submodule updates submodule work tree': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t modify_sub1 origin/modify_sub1 && + git -c submodule.recurse=true $cmd_args modify_sub1 && + test_superproject_content origin/modify_sub1 && + test_submodule_content sub1 origin/modify_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. +ok 19 - git -c submodule.recurse=true reset --keep: modified submodule updates submodule work tree + +expecting success of 7112.20 'git reset --keep --recurse-submodules: modified submodule updates submodule recursively': + prolog && + reset_work_tree_to_interested add_nested_sub && + ( + cd submodule_update && + git branch -t modify_sub1_recursively origin/modify_sub1_recursively && + $command modify_sub1_recursively && + test_superproject_content origin/modify_sub1_recursively && + test_submodule_content sub1 origin/modify_sub1_recursively && + test_submodule_content -C sub1 sub2 origin/modify_sub1_recursively + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_nested_sub' +Branch 'add_nested_sub' set up to track remote branch 'add_nested_sub' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '8b3b3353ac8999eb3d8af8e947e0ef2a08a60008' +Submodule 'sub2' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub2) registered for path 'sub1/sub2' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1/sub2'... +done. +Submodule path 'sub1/sub2': checked out '27c5769ac0ebf2d924e34d3aa503345baaaa98b2' +Branch 'modify_sub1_recursively' set up to track remote branch 'modify_sub1_recursively' from 'origin'. +ok 20 - git reset --keep --recurse-submodules: modified submodule updates submodule recursively + +expecting success of 7112.21 'git reset --hard --recurse-submodules: added submodule is checked out': + prolog && + reset_work_tree_to_interested no_submodule && + ( + cd submodule_update && + git branch -t add_sub1 origin/add_sub1 && + $command add_sub1 && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +HEAD is now at 09bcf53 Add sub1 +ok 21 - git reset --hard --recurse-submodules: added submodule is checked out + +expecting success of 7112.22 'git reset --hard --recurse-submodules: added submodule is checked out in empty dir': + prolog && + reset_work_tree_to_interested no_submodule && + ( + cd submodule_update && + mkdir sub1 && + git branch -t add_sub1 origin/add_sub1 && + $command add_sub1 && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +HEAD is now at 09bcf53 Add sub1 +ok 22 - git reset --hard --recurse-submodules: added submodule is checked out in empty dir + +expecting success of 7112.23 'git reset --hard --recurse-submodules: replace tracked file with submodule checks out submodule': + prolog && + reset_work_tree_to_interested replace_sub1_with_file && + ( + cd submodule_update && + git branch -t replace_file_with_sub1 origin/replace_file_with_sub1 && + $command replace_file_with_sub1 && + test_superproject_content origin/replace_file_with_sub1 && + test_submodule_content sub1 origin/replace_file_with_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'replace_sub1_with_file' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +fatal: Needed a single revision +Branch 'replace_file_with_sub1' set up to track remote branch 'replace_file_with_sub1' from 'origin'. +HEAD is now at 8b6fdfc Revert "Replace sub1 with file" +ok 23 - git reset --hard --recurse-submodules: replace tracked file with submodule checks out submodule + +expecting success of 7112.24 'git reset --hard --recurse-submodules: replace directory with submodule': + prolog && + reset_work_tree_to_interested replace_sub1_with_directory && + ( + cd submodule_update && + git branch -t replace_directory_with_sub1 origin/replace_directory_with_sub1 && + $command replace_directory_with_sub1 && + test_superproject_content origin/replace_directory_with_sub1 && + test_submodule_content sub1 origin/replace_directory_with_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'replace_sub1_with_directory' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +fatal: Needed a single revision +Branch 'replace_directory_with_sub1' set up to track remote branch 'replace_directory_with_sub1' from 'origin'. +HEAD is now at a2e65d5 Revert "Replace sub1 with directory" +ok 24 - git reset --hard --recurse-submodules: replace directory with submodule + +expecting success of 7112.25 'git reset --hard --recurse-submodules: nested submodules are checked out': + prolog && + reset_work_tree_to_interested no_submodule && + ( + cd submodule_update && + git branch -t modify_sub1_recursively origin/modify_sub1_recursively && + $command modify_sub1_recursively && + test_superproject_content origin/modify_sub1_recursively && + test_submodule_content sub1 origin/modify_sub1_recursively && + test_submodule_content -C sub1 sub2 origin/modify_sub1_recursively + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'modify_sub1_recursively' set up to track remote branch 'modify_sub1_recursively' from 'origin'. +HEAD is now at 953e869 update sub1, that updates nested sub +ok 25 - git reset --hard --recurse-submodules: nested submodules are checked out + +expecting success of 7112.26 'git reset --hard --recurse-submodules: removed submodule removes submodules working tree': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t remove_sub1 origin/remove_sub1 && + $command remove_sub1 && + test_superproject_content origin/remove_sub1 && + ! test -e sub1 && + test_must_fail git config -f .git/modules/sub1/config core.worktree + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. +HEAD is now at d6ba723 Revert "Add sub1" +ok 26 - git reset --hard --recurse-submodules: removed submodule removes submodules working tree + +expecting success of 7112.27 'git reset --hard --recurse-submodules: removed submodule absorbs submodules .git directory': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t remove_sub1 origin/remove_sub1 && + replace_gitfile_with_git_dir sub1 && + rm -rf .git/modules && + $command remove_sub1 && + test_superproject_content origin/remove_sub1 && + ! test -e sub1 && + test_git_directory_exists sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. +Migrating git directory of 'sub1' from +'/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1/.git' to +'/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/.git/modules/sub1' +HEAD is now at d6ba723 Revert "Add sub1" +ok 27 - git reset --hard --recurse-submodules: removed submodule absorbs submodules .git directory + +expecting success of 7112.28 'git reset --hard --recurse-submodules: replace submodule with a file': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_file origin/replace_sub1_with_file && + $command replace_sub1_with_file && + test_superproject_content origin/replace_sub1_with_file && + test -f sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +HEAD is now at 2364f5a Replace sub1 with file +ok 28 - git reset --hard --recurse-submodules: replace submodule with a file + +checking known breakage of 7112.29 'git reset --hard --recurse-submodules: replace submodule with a file must fail with untracked files': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_file origin/replace_sub1_with_file && + : >sub1/untrackedfile && + test_must_fail $command replace_sub1_with_file && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 && + test -f sub1/untracked_file + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +HEAD is now at 2364f5a Replace sub1 with file +test_must_fail: command succeeded: git reset --hard --recurse-submodules replace_sub1_with_file +not ok 29 - git reset --hard --recurse-submodules: replace submodule with a file must fail with untracked files # TODO known breakage + +expecting success of 7112.30 'git reset --hard --recurse-submodules: worktrees of nested submodules are removed': + prolog && + reset_work_tree_to_interested add_nested_sub && + ( + cd submodule_update && + git branch -t no_submodule origin/no_submodule && + $command no_submodule && + test_superproject_content origin/no_submodule && + ! test_path_is_dir sub1 && + test_must_fail git config -f .git/modules/sub1/config core.worktree && + test_must_fail git config -f .git/modules/sub1/modules/sub2/config core.worktree + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_nested_sub' +Branch 'add_nested_sub' set up to track remote branch 'add_nested_sub' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '8b3b3353ac8999eb3d8af8e947e0ef2a08a60008' +Submodule 'sub2' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub2) registered for path 'sub1/sub2' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1/sub2'... +done. +Submodule path 'sub1/sub2': checked out '27c5769ac0ebf2d924e34d3aa503345baaaa98b2' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +HEAD is now at 27611a5 Base +Directory sub1 doesn't exist. +ok 30 - git reset --hard --recurse-submodules: worktrees of nested submodules are removed + +expecting success of 7112.31 'git reset --hard --recurse-submodules: modified submodule updates submodule work tree': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t modify_sub1 origin/modify_sub1 && + $command modify_sub1 && + test_superproject_content origin/modify_sub1 && + test_submodule_content sub1 origin/modify_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. +HEAD is now at cb2bda7 Modify sub1 +ok 31 - git reset --hard --recurse-submodules: modified submodule updates submodule work tree + +expecting success of 7112.32 'git reset --hard --recurse-submodules: updating to a missing submodule commit fails': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t invalid_sub1 origin/invalid_sub1 && + test_must_fail $command invalid_sub1 2>err && + test_i18ngrep sub1 err && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. +checking prerequisite: C_LOCALE_OUTPUT + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false + +) +prerequisite C_LOCALE_OUTPUT ok +error: Submodule 'sub1' could not be updated. +error: Submodule 'sub1' cannot checkout new HEAD. +fatal: Could not reset index file to revision 'invalid_sub1'. +ok 32 - git reset --hard --recurse-submodules: updating to a missing submodule commit fails + +expecting success of 7112.33 'git reset --hard --recurse-submodules: submodule branch is not changed, detach HEAD instead': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git -C sub1 checkout -b keep_branch && + git -C sub1 rev-parse HEAD >expect && + git branch -t modify_sub1 origin/modify_sub1 && + $command modify_sub1 && + test_superproject_content origin/modify_sub1 && + test_submodule_content sub1 origin/modify_sub1 && + git -C sub1 rev-parse keep_branch >actual && + test_cmp expect actual && + test_must_fail git -C sub1 symbolic-ref HEAD + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Switched to a new branch 'keep_branch' +Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. +HEAD is now at cb2bda7 Modify sub1 +fatal: ref HEAD is not a symbolic ref +ok 33 - git reset --hard --recurse-submodules: submodule branch is not changed, detach HEAD instead + +expecting success of 7112.34 'git reset --hard --recurse-submodules: added submodule does remove untracked unignored file with same name when forced': + prolog && + reset_work_tree_to_interested no_submodule && + ( + cd submodule_update && + git branch -t add_sub1 origin/add_sub1 && + >sub1 && + $command add_sub1 && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +HEAD is now at 09bcf53 Add sub1 +ok 34 - git reset --hard --recurse-submodules: added submodule does remove untracked unignored file with same name when forced + +expecting success of 7112.35 'git reset --hard --recurse-submodules: replace submodule with a directory': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && + $command replace_sub1_with_directory && + test_superproject_content origin/replace_sub1_with_directory + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +HEAD is now at cb28587 Replace sub1 with directory +ok 35 - git reset --hard --recurse-submodules: replace submodule with a directory + +expecting success of 7112.36 'git reset --hard --recurse-submodules: replace submodule containing a .git directory with a directory must fail': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && + replace_gitfile_with_git_dir sub1 && + rm -rf .git/modules/sub1 && + $command replace_sub1_with_directory && + test_superproject_content origin/replace_sub1_with_directory && + test_git_directory_exists sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +Migrating git directory of 'sub1' from +'/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1/.git' to +'/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/.git/modules/sub1' +HEAD is now at cb28587 Replace sub1 with directory +ok 36 - git reset --hard --recurse-submodules: replace submodule containing a .git directory with a directory must fail + +expecting success of 7112.37 'git reset --hard --recurse-submodules: replace submodule with a file ignoring ignored files': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_file origin/replace_sub1_with_file && + : >sub1/expect && + $command replace_sub1_with_file && + test_superproject_content origin/replace_sub1_with_file + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +HEAD is now at 2364f5a Replace sub1 with file +ok 37 - git reset --hard --recurse-submodules: replace submodule with a file ignoring ignored files + +expecting success of 7112.38 'git reset --hard --recurse-submodules: modified submodule does update submodule work tree from invalid commit': + prolog && + reset_work_tree_to_interested invalid_sub1 && + ( + cd submodule_update && + git branch -t valid_sub1 origin/valid_sub1 && + $command valid_sub1 && + test_superproject_content origin/valid_sub1 && + test_submodule_content sub1 origin/valid_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'invalid_sub1' +Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. +fatal: Needed a single revision +Branch 'valid_sub1' set up to track remote branch 'valid_sub1' from 'origin'. +HEAD is now at 3036e4e Revert "Invalid sub1 commit" +ok 38 - git reset --hard --recurse-submodules: modified submodule does update submodule work tree from invalid commit + +expecting success of 7112.39 'git reset --hard --recurse-submodules: updating submodules fixes .git links': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + git branch -t modify_sub1 origin/modify_sub1 && + echo "gitdir: bogus/path" >sub1/.git && + $command modify_sub1 && + test_superproject_content origin/modify_sub1 && + test_submodule_content sub1 origin/modify_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. +HEAD is now at cb2bda7 Modify sub1 +ok 39 - git reset --hard --recurse-submodules: updating submodules fixes .git links + +expecting success of 7112.40 'git reset --hard --recurse-submodules: changed submodule worktree is reset': + prolog && + reset_work_tree_to_interested add_sub1 && + ( + cd submodule_update && + rm sub1/file1 && + : >sub1/new_file && + git -C sub1 add new_file && + $command HEAD && + test_path_is_file sub1/file1 && + test_path_is_missing sub1/new_file + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +HEAD is now at 09bcf53 Add sub1 +ok 40 - git reset --hard --recurse-submodules: changed submodule worktree is reset + +expecting success of 7112.41 'git_test_func: added submodule creates empty directory': + prolog && + reset_work_tree_to no_submodule && + ( + cd submodule_update && + git branch -t add_sub1 origin/add_sub1 && + $command add_sub1 && + test_superproject_content origin/add_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +ok 41 - git_test_func: added submodule creates empty directory + +expecting success of 7112.42 'git_test_func: added submodule leaves existing empty directory alone': + prolog && + reset_work_tree_to no_submodule && + ( + cd submodule_update && + mkdir sub1 && + git branch -t add_sub1 origin/add_sub1 && + $command add_sub1 && + test_superproject_content origin/add_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +ok 42 - git_test_func: added submodule leaves existing empty directory alone + +expecting success of 7112.43 'git_test_func: replace tracked file with submodule creates empty directory': + prolog && + reset_work_tree_to replace_sub1_with_file && + ( + cd submodule_update && + git branch -t replace_file_with_sub1 origin/replace_file_with_sub1 && + $command replace_file_with_sub1 && + test_superproject_content origin/replace_file_with_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/replace_file_with_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'replace_sub1_with_file' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +fatal: Needed a single revision +Branch 'replace_file_with_sub1' set up to track remote branch 'replace_file_with_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +ok 43 - git_test_func: replace tracked file with submodule creates empty directory + +expecting success of 7112.44 'git_test_func: replace directory with submodule': + prolog && + reset_work_tree_to replace_sub1_with_directory && + ( + cd submodule_update && + git branch -t replace_directory_with_sub1 origin/replace_directory_with_sub1 && + $command replace_directory_with_sub1 && + test_superproject_content origin/replace_directory_with_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/replace_directory_with_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'replace_sub1_with_directory' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +fatal: Needed a single revision +Branch 'replace_directory_with_sub1' set up to track remote branch 'replace_directory_with_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +ok 44 - git_test_func: replace directory with submodule + +expecting success of 7112.45 'git_test_func: removed submodule leaves submodule directory and its contents in place': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t remove_sub1 origin/remove_sub1 && + $command remove_sub1 && + test_superproject_content origin/remove_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. +warning: unable to rmdir 'sub1': Directory not empty +ok 45 - git_test_func: removed submodule leaves submodule directory and its contents in place + +expecting success of 7112.46 'git_test_func: removed submodule leaves submodule containing a .git directory alone': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t remove_sub1 origin/remove_sub1 && + replace_gitfile_with_git_dir sub1 && + $command remove_sub1 && + test_superproject_content origin/remove_sub1 && + test_git_directory_is_unchanged sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. +warning: unable to rmdir 'sub1': Directory not empty +ok 46 - git_test_func: removed submodule leaves submodule containing a .git directory alone + +expecting success of 7112.47 'git_test_func: replace submodule with a directory must fail': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && + $command replace_sub1_with_directory test_must_fail && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +error: Untracked working tree file 'sub1/file1' would be overwritten by merge. +fatal: Could not reset index file to revision 'replace_sub1_with_directory'. +ok 47 - git_test_func: replace submodule with a directory must fail + +expecting success of 7112.48 'git_test_func: replace submodule containing a .git directory with a directory must fail': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && + replace_gitfile_with_git_dir sub1 && + $command replace_sub1_with_directory test_must_fail && + test_superproject_content origin/add_sub1 && + test_git_directory_is_unchanged sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +error: Untracked working tree file 'sub1/file1' would be overwritten by merge. +fatal: Could not reset index file to revision 'replace_sub1_with_directory'. +ok 48 - git_test_func: replace submodule containing a .git directory with a directory must fail + +checking known breakage of 7112.49 'git_test_func: replace submodule with a file must fail': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_file origin/replace_sub1_with_file && + $command replace_sub1_with_file test_must_fail && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +test_must_fail: command succeeded: git reset --keep replace_sub1_with_file +not ok 49 - git_test_func: replace submodule with a file must fail # TODO known breakage + +checking known breakage of 7112.50 'git_test_func: replace submodule containing a .git directory with a file must fail': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_file origin/replace_sub1_with_file && + replace_gitfile_with_git_dir sub1 && + $command replace_sub1_with_file test_must_fail && + test_superproject_content origin/add_sub1 && + test_git_directory_is_unchanged sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +test_must_fail: command succeeded: git reset --keep replace_sub1_with_file +not ok 50 - git_test_func: replace submodule containing a .git directory with a file must fail # TODO known breakage + +expecting success of 7112.51 'git_test_func: modified submodule does not update submodule work tree': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t modify_sub1 origin/modify_sub1 && + $command modify_sub1 && + test_superproject_content origin/modify_sub1 && + test_submodule_content sub1 origin/add_sub1 && + git submodule update && + test_submodule_content sub1 origin/modify_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. +Submodule path 'sub1': checked out '03da4ea88bb165bd26ee0b2e5c657f2858b23f53' +ok 51 - git_test_func: modified submodule does not update submodule work tree + +expecting success of 7112.52 'git_test_func: modified submodule does not update submodule work tree to invalid commit': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t invalid_sub1 origin/invalid_sub1 && + $command invalid_sub1 && + test_superproject_content origin/invalid_sub1 && + test_submodule_content sub1 origin/add_sub1 && + test_must_fail git submodule update && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. +fatal: git upload-pack: not our ref 0123456789012345678901234567890123456789 +fatal: remote error: upload-pack: not our ref 0123456789012345678901234567890123456789 +Fetched in submodule path 'sub1', but it did not contain 0123456789012345678901234567890123456789. Direct fetching of that commit failed. +ok 52 - git_test_func: modified submodule does not update submodule work tree to invalid commit + +expecting success of 7112.53 'git_test_func: modified submodule does not update submodule work tree from invalid commit': + prolog && + reset_work_tree_to invalid_sub1 && + ( + cd submodule_update && + git branch -t valid_sub1 origin/valid_sub1 && + $command valid_sub1 && + test_superproject_content origin/valid_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/valid_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'invalid_sub1' +Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. +fatal: Needed a single revision +Branch 'valid_sub1' set up to track remote branch 'valid_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +ok 53 - git_test_func: modified submodule does not update submodule work tree from invalid commit + +expecting success of 7112.54 'git_test_func: added submodule doesn't remove untracked unignored file with same name': + prolog && + reset_work_tree_to no_submodule && + ( + cd submodule_update && + git branch -t add_sub1 origin/add_sub1 && + >sub1 && + $command add_sub1 test_must_fail && + test_superproject_content origin/no_submodule && + test_must_be_empty sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +error: Untracked working tree file 'sub1' would be overwritten by merge. +fatal: Could not reset index file to revision 'add_sub1'. +ok 54 - git_test_func: added submodule doesn't remove untracked unignored file with same name + +expecting success of 7112.55 'git_test_func: added submodule creates empty directory': + prolog && + reset_work_tree_to no_submodule && + ( + cd submodule_update && + git branch -t add_sub1 origin/add_sub1 && + $command add_sub1 && + test_superproject_content origin/add_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +ok 55 - git_test_func: added submodule creates empty directory + +expecting success of 7112.56 'git_test_func: added submodule leaves existing empty directory alone': + prolog && + reset_work_tree_to no_submodule && + ( + cd submodule_update && + mkdir sub1 && + git branch -t add_sub1 origin/add_sub1 && + $command add_sub1 && + test_superproject_content origin/add_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +ok 56 - git_test_func: added submodule leaves existing empty directory alone + +expecting success of 7112.57 'git_test_func: replace tracked file with submodule creates empty directory': + prolog && + reset_work_tree_to replace_sub1_with_file && + ( + cd submodule_update && + git branch -t replace_file_with_sub1 origin/replace_file_with_sub1 && + $command replace_file_with_sub1 && + test_superproject_content origin/replace_file_with_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/replace_file_with_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'replace_sub1_with_file' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +fatal: Needed a single revision +Branch 'replace_file_with_sub1' set up to track remote branch 'replace_file_with_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +ok 57 - git_test_func: replace tracked file with submodule creates empty directory + +expecting success of 7112.58 'git_test_func: replace directory with submodule': + prolog && + reset_work_tree_to replace_sub1_with_directory && + ( + cd submodule_update && + git branch -t replace_directory_with_sub1 origin/replace_directory_with_sub1 && + $command replace_directory_with_sub1 && + test_superproject_content origin/replace_directory_with_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/replace_directory_with_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'replace_sub1_with_directory' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +fatal: Needed a single revision +Branch 'replace_directory_with_sub1' set up to track remote branch 'replace_directory_with_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +ok 58 - git_test_func: replace directory with submodule + +expecting success of 7112.59 'git_test_func: removed submodule leaves submodule directory and its contents in place': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t remove_sub1 origin/remove_sub1 && + $command remove_sub1 && + test_superproject_content origin/remove_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. +warning: unable to rmdir 'sub1': Directory not empty +ok 59 - git_test_func: removed submodule leaves submodule directory and its contents in place + +expecting success of 7112.60 'git_test_func: removed submodule leaves submodule containing a .git directory alone': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t remove_sub1 origin/remove_sub1 && + replace_gitfile_with_git_dir sub1 && + $command remove_sub1 && + test_superproject_content origin/remove_sub1 && + test_git_directory_is_unchanged sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. +warning: unable to rmdir 'sub1': Directory not empty +ok 60 - git_test_func: removed submodule leaves submodule containing a .git directory alone + +expecting success of 7112.61 'git_test_func: replace submodule with a directory must fail': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && + $command replace_sub1_with_directory test_must_fail && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +error: Untracked working tree file 'sub1/file1' would be overwritten by merge. +fatal: Could not reset index file to revision 'replace_sub1_with_directory'. +ok 61 - git_test_func: replace submodule with a directory must fail + +expecting success of 7112.62 'git_test_func: replace submodule containing a .git directory with a directory must fail': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && + replace_gitfile_with_git_dir sub1 && + $command replace_sub1_with_directory test_must_fail && + test_superproject_content origin/add_sub1 && + test_git_directory_is_unchanged sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +error: Untracked working tree file 'sub1/file1' would be overwritten by merge. +fatal: Could not reset index file to revision 'replace_sub1_with_directory'. +ok 62 - git_test_func: replace submodule containing a .git directory with a directory must fail + +checking known breakage of 7112.63 'git_test_func: replace submodule with a file must fail': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_file origin/replace_sub1_with_file && + $command replace_sub1_with_file test_must_fail && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +test_must_fail: command succeeded: git reset --merge replace_sub1_with_file +not ok 63 - git_test_func: replace submodule with a file must fail # TODO known breakage -[master 2b9d772] target message subject line - Author: A U Thor - 1 file changed, 1 insertion(+) -[master 4770413] intermediate commit - Author: A U Thor - 1 file changed, 1 insertion(+) -[master 8dec803] squash! intermediate commit - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 1 file changed, 1 insertion(+) -ok 31 - commit --squash works with -C for same commit +checking known breakage of 7112.64 'git_test_func: replace submodule containing a .git directory with a file must fail': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_file origin/replace_sub1_with_file && + replace_gitfile_with_git_dir sub1 && + $command replace_sub1_with_file test_must_fail && + test_superproject_content origin/add_sub1 && + test_git_directory_is_unchanged sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +test_must_fail: command succeeded: git reset --merge replace_sub1_with_file +not ok 64 - git_test_func: replace submodule containing a .git directory with a file must fail # TODO known breakage -expecting success of 7500.32 'commit --squash works with -c for same commit': - commit_for_rebase_autosquash_setup && - test_set_editor "$TEST_DIRECTORY"/t7500/edit-content && - git commit --squash HEAD -c HEAD && - commit_msg_is "squash! edited commit" +expecting success of 7112.65 'git_test_func: modified submodule does not update submodule work tree': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t modify_sub1 origin/modify_sub1 && + $command modify_sub1 && + test_superproject_content origin/modify_sub1 && + test_submodule_content sub1 origin/add_sub1 && + git submodule update && + test_submodule_content sub1 origin/modify_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. +Submodule path 'sub1': checked out '03da4ea88bb165bd26ee0b2e5c657f2858b23f53' +ok 65 - git_test_func: modified submodule does not update submodule work tree -[master 2a48106] target message subject line - Author: A U Thor - 1 file changed, 1 insertion(+) -[master 52a1c51] intermediate commit - Author: A U Thor - 1 file changed, 1 insertion(+) -[master 112e98e] squash! edited commit - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 1 file changed, 1 insertion(+) -ok 32 - commit --squash works with -c for same commit +expecting success of 7112.66 'git_test_func: modified submodule does not update submodule work tree to invalid commit': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t invalid_sub1 origin/invalid_sub1 && + $command invalid_sub1 && + test_superproject_content origin/invalid_sub1 && + test_submodule_content sub1 origin/add_sub1 && + test_must_fail git submodule update && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. +fatal: git upload-pack: not our ref 0123456789012345678901234567890123456789 +fatal: remote error: upload-pack: not our ref 0123456789012345678901234567890123456789 +Fetched in submodule path 'sub1', but it did not contain 0123456789012345678901234567890123456789. Direct fetching of that commit failed. +ok 66 - git_test_func: modified submodule does not update submodule work tree to invalid commit -expecting success of 7500.33 'commit --squash works with editor': - commit_for_rebase_autosquash_setup && - test_set_editor "$TEST_DIRECTORY"/t7500/add-content && - git commit --squash HEAD~1 && - commit_msg_is "squash! target message subject linecommit message" +expecting success of 7112.67 'git_test_func: modified submodule does not update submodule work tree from invalid commit': + prolog && + reset_work_tree_to invalid_sub1 && + ( + cd submodule_update && + git branch -t valid_sub1 origin/valid_sub1 && + $command valid_sub1 && + test_superproject_content origin/valid_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/valid_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'invalid_sub1' +Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. +fatal: Needed a single revision +Branch 'valid_sub1' set up to track remote branch 'valid_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +ok 67 - git_test_func: modified submodule does not update submodule work tree from invalid commit -[master c2cab45] target message subject line - Author: A U Thor - 1 file changed, 1 insertion(+) -[master 829783f] intermediate commit - Author: A U Thor - 1 file changed, 1 insertion(+) -[master 08f36d0] squash! target message subject line - Author: A U Thor - 1 file changed, 1 insertion(+) -ok 33 - commit --squash works with editor +expecting success of 7112.68 'git_test_func: added submodule doesn't remove untracked unignored file with same name': + prolog && + reset_work_tree_to no_submodule && + ( + cd submodule_update && + git branch -t add_sub1 origin/add_sub1 && + >sub1 && + $command add_sub1 test_must_fail && + test_superproject_content origin/no_submodule && + test_must_be_empty sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +error: Untracked working tree file 'sub1' would be overwritten by merge. +fatal: Could not reset index file to revision 'add_sub1'. +ok 68 - git_test_func: added submodule doesn't remove untracked unignored file with same name -expecting success of 7500.34 'invalid message options when using --fixup': - echo changes >>foo && - echo "message" >log && - git add foo && - test_must_fail git commit --fixup HEAD~1 --squash HEAD~2 && - test_must_fail git commit --fixup HEAD~1 -C HEAD~2 && - test_must_fail git commit --fixup HEAD~1 -c HEAD~2 && - test_must_fail git commit --fixup HEAD~1 -F log +expecting success of 7112.69 'git_test_func: added submodule creates empty directory': + prolog && + reset_work_tree_to no_submodule && + ( + cd submodule_update && + git branch -t add_sub1 origin/add_sub1 && + $command add_sub1 && + test_superproject_content origin/add_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +HEAD is now at 09bcf53 Add sub1 +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +ok 69 - git_test_func: added submodule creates empty directory -fatal: Options --squash and --fixup cannot be used together -fatal: Only one of -c/-C/-F/--fixup can be used. -fatal: Only one of -c/-C/-F/--fixup can be used. -fatal: Only one of -c/-C/-F/--fixup can be used. -ok 34 - invalid message options when using --fixup +expecting success of 7112.70 'git_test_func: added submodule leaves existing empty directory alone': + prolog && + reset_work_tree_to no_submodule && + ( + cd submodule_update && + mkdir sub1 && + git branch -t add_sub1 origin/add_sub1 && + $command add_sub1 && + test_superproject_content origin/add_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +HEAD is now at 09bcf53 Add sub1 +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +ok 70 - git_test_func: added submodule leaves existing empty directory alone -expecting success of 7500.35 'new line found before status message in commit template': - git checkout -b commit-template-check && - git reset --hard HEAD && - touch commit-template-check && - git add commit-template-check && - GIT_EDITOR="cat >editor-input" git commit --untracked-files=no --allow-empty-message && - test_i18ncmp expected-template editor-input +expecting success of 7112.71 'git_test_func: replace tracked file with submodule creates empty directory': + prolog && + reset_work_tree_to replace_sub1_with_file && + ( + cd submodule_update && + git branch -t replace_file_with_sub1 origin/replace_file_with_sub1 && + $command replace_file_with_sub1 && + test_superproject_content origin/replace_file_with_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/replace_file_with_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'replace_sub1_with_file' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +fatal: Needed a single revision +Branch 'replace_file_with_sub1' set up to track remote branch 'replace_file_with_sub1' from 'origin'. +HEAD is now at 8b6fdfc Revert "Replace sub1 with file" +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +ok 71 - git_test_func: replace tracked file with submodule creates empty directory -Switched to a new branch 'commit-template-check' -HEAD is now at 08f36d0 squash! target message subject line -[commit-template-check a9144e1] - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - create mode 100644 commit-template-check -ok 35 - new line found before status message in commit template +expecting success of 7112.72 'git_test_func: replace directory with submodule': + prolog && + reset_work_tree_to replace_sub1_with_directory && + ( + cd submodule_update && + git branch -t replace_directory_with_sub1 origin/replace_directory_with_sub1 && + $command replace_directory_with_sub1 && + test_superproject_content origin/replace_directory_with_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/replace_directory_with_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'replace_sub1_with_directory' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +fatal: Needed a single revision +Branch 'replace_directory_with_sub1' set up to track remote branch 'replace_directory_with_sub1' from 'origin'. +HEAD is now at a2e65d5 Revert "Replace sub1 with directory" +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +ok 72 - git_test_func: replace directory with submodule -expecting success of 7500.36 'setup empty commit with unstaged rename and copy': - test_create_repo unstaged_rename_and_copy && - ( - cd unstaged_rename_and_copy && +expecting success of 7112.73 'git_test_func: removed submodule leaves submodule directory and its contents in place': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t remove_sub1 origin/remove_sub1 && + $command remove_sub1 && + test_superproject_content origin/remove_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. +warning: unable to rmdir 'sub1': Directory not empty +HEAD is now at d6ba723 Revert "Add sub1" +ok 73 - git_test_func: removed submodule leaves submodule directory and its contents in place - echo content >orig && - git add orig && - test_commit orig && +expecting success of 7112.74 'git_test_func: removed submodule leaves submodule containing a .git directory alone': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t remove_sub1 origin/remove_sub1 && + replace_gitfile_with_git_dir sub1 && + $command remove_sub1 && + test_superproject_content origin/remove_sub1 && + test_git_directory_is_unchanged sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'remove_sub1' set up to track remote branch 'remove_sub1' from 'origin'. +warning: unable to rmdir 'sub1': Directory not empty +HEAD is now at d6ba723 Revert "Add sub1" +ok 74 - git_test_func: removed submodule leaves submodule containing a .git directory alone - cp orig new_copy && - mv orig new_rename && - git add -N new_copy new_rename - ) +checking known breakage of 7112.75 'git_test_func: replace submodule with a directory must fail': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && + $command replace_sub1_with_directory test_must_fail && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +warning: unable to rmdir 'sub1': Directory not empty +HEAD is now at cb28587 Replace sub1 with directory +test_must_fail: command succeeded: git reset --hard replace_sub1_with_directory +not ok 75 - git_test_func: replace submodule with a directory must fail # TODO known breakage -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7500-commit-template-squash-signoff/unstaged_rename_and_copy/.git/ -[master (root-commit) bac0952] orig - Author: A U Thor - 2 files changed, 2 insertions(+) - create mode 100644 orig - create mode 100644 orig.t -ok 36 - setup empty commit with unstaged rename and copy +checking known breakage of 7112.76 'git_test_func: replace submodule containing a .git directory with a directory must fail': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_directory origin/replace_sub1_with_directory && + replace_gitfile_with_git_dir sub1 && + $command replace_sub1_with_directory test_must_fail && + test_superproject_content origin/add_sub1 && + test_git_directory_is_unchanged sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_directory' set up to track remote branch 'replace_sub1_with_directory' from 'origin'. +warning: unable to rmdir 'sub1': Directory not empty +HEAD is now at cb28587 Replace sub1 with directory +test_must_fail: command succeeded: git reset --hard replace_sub1_with_directory +not ok 76 - git_test_func: replace submodule containing a .git directory with a directory must fail # TODO known breakage -expecting success of 7500.37 'check commit with unstaged rename and copy': - ( - cd unstaged_rename_and_copy && +checking known breakage of 7112.77 'git_test_func: replace submodule with a file must fail': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_file origin/replace_sub1_with_file && + $command replace_sub1_with_file test_must_fail && + test_superproject_content origin/add_sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +HEAD is now at 2364f5a Replace sub1 with file +test_must_fail: command succeeded: git reset --hard replace_sub1_with_file +not ok 77 - git_test_func: replace submodule with a file must fail # TODO known breakage - test_must_fail git -c diff.renames=copy commit - ) +checking known breakage of 7112.78 'git_test_func: replace submodule containing a .git directory with a file must fail': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t replace_sub1_with_file origin/replace_sub1_with_file && + replace_gitfile_with_git_dir sub1 && + $command replace_sub1_with_file test_must_fail && + test_superproject_content origin/add_sub1 && + test_git_directory_is_unchanged sub1 && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'replace_sub1_with_file' set up to track remote branch 'replace_sub1_with_file' from 'origin'. +HEAD is now at 2364f5a Replace sub1 with file +test_must_fail: command succeeded: git reset --hard replace_sub1_with_file +not ok 78 - git_test_func: replace submodule containing a .git directory with a file must fail # TODO known breakage -On branch master -Changes not staged for commit: - (use "git add ..." to update what will be committed) - (use "git restore ..." to discard changes in working directory) - copied: orig -> new_copy - renamed: orig -> new_rename +expecting success of 7112.79 'git_test_func: modified submodule does not update submodule work tree': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t modify_sub1 origin/modify_sub1 && + $command modify_sub1 && + test_superproject_content origin/modify_sub1 && + test_submodule_content sub1 origin/add_sub1 && + git submodule update && + test_submodule_content sub1 origin/modify_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'modify_sub1' set up to track remote branch 'modify_sub1' from 'origin'. +HEAD is now at cb2bda7 Modify sub1 +Submodule path 'sub1': checked out '03da4ea88bb165bd26ee0b2e5c657f2858b23f53' +ok 79 - git_test_func: modified submodule does not update submodule work tree -no changes added to commit (use "git add" and/or "git commit -a") -ok 37 - check commit with unstaged rename and copy +expecting success of 7112.80 'git_test_func: modified submodule does not update submodule work tree to invalid commit': + prolog && + reset_work_tree_to add_sub1 && + ( + cd submodule_update && + git branch -t invalid_sub1 origin/invalid_sub1 && + $command invalid_sub1 && + test_superproject_content origin/invalid_sub1 && + test_submodule_content sub1 origin/add_sub1 && + test_must_fail git submodule update && + test_submodule_content sub1 origin/add_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'add_sub1' +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. +HEAD is now at e6169bf Invalid sub1 commit +fatal: git upload-pack: not our ref 0123456789012345678901234567890123456789 +fatal: remote error: upload-pack: not our ref 0123456789012345678901234567890123456789 +Fetched in submodule path 'sub1', but it did not contain 0123456789012345678901234567890123456789. Direct fetching of that commit failed. +ok 80 - git_test_func: modified submodule does not update submodule work tree to invalid commit -expecting success of 7500.38 'commit without staging files fails and displays hints': - echo "initial" >file && - git add file && - git commit -m initial && - echo "changes" >>file && - test_must_fail git commit -m update >actual && - test_i18ngrep "no changes added to commit (use \"git add\" and/or \"git commit -a\")" actual +expecting success of 7112.81 'git_test_func: modified submodule does not update submodule work tree from invalid commit': + prolog && + reset_work_tree_to invalid_sub1 && + ( + cd submodule_update && + git branch -t valid_sub1 origin/valid_sub1 && + $command valid_sub1 && + test_superproject_content origin/valid_sub1 && + test_dir_is_empty sub1 && + git submodule update --init --recursive && + test_submodule_content sub1 origin/valid_sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'invalid_sub1' +Branch 'invalid_sub1' set up to track remote branch 'invalid_sub1' from 'origin'. +fatal: Needed a single revision +Branch 'valid_sub1' set up to track remote branch 'valid_sub1' from 'origin'. +HEAD is now at 3036e4e Revert "Invalid sub1 commit" +Submodule 'sub1' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'sub1' +Submodule 'uninitialized_sub' (/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update_sub1) registered for path 'uninitialized_sub' +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/sub1'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t7112-reset-submodule/submodule_update/uninitialized_sub'... +done. +Submodule path 'sub1': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +Submodule path 'uninitialized_sub': checked out '63c430421a9604f896526f8a04236bdfe3ac1fc1' +ok 81 - git_test_func: modified submodule does not update submodule work tree from invalid commit -[commit-template-check 5e78649] initial - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -no changes added to commit (use "git add" and/or "git commit -a") -ok 38 - commit without staging files fails and displays hints +expecting success of 7112.82 'git_test_func: added submodule does remove untracked unignored file with same name when forced': + prolog && + reset_work_tree_to no_submodule && + ( + cd submodule_update && + git branch -t add_sub1 origin/add_sub1 && + >sub1 && + $command add_sub1 && + test_superproject_content origin/add_sub1 && + test_dir_is_empty sub1 + ) + +Cloning into 'submodule_update'... +done. +Switched to a new branch 'no_submodule' +Branch 'no_submodule' set up to track remote branch 'no_submodule' from 'origin'. +Branch 'add_sub1' set up to track remote branch 'add_sub1' from 'origin'. +HEAD is now at 09bcf53 Add sub1 +ok 82 - git_test_func: added submodule does remove untracked unignored file with same name when forced -# passed all 38 test(s) -1..38 +# still have 13 known breakage(s) +# passed all remaining 69 test(s) +1..82 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' *** t7503-pre-commit-and-pre-merge-commit-hooks.sh *** @@ -361137,6 +360980,401 @@ 1..69 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t7504-commit-msg-hook.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7504-commit-msg-hook/.git/ +expecting success of 7504.1 'with no hook': + + echo "foo" > file && + git add file && + git commit -m "first" + + +[master (root-commit) d6ab80b] first + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file +ok 1 - with no hook + +expecting success of 7504.2 'with no hook (editor)': + + echo "more foo" >> file && + git add file && + echo "more foo" > FAKE_MSG && + GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit + + +[master 8164a21] more foo + Author: A U Thor + 1 file changed, 1 insertion(+) +ok 2 - with no hook (editor) + +expecting success of 7504.3 '--no-verify with no hook': + + echo "bar" > file && + git add file && + git commit --no-verify -m "bar" + + +[master 854c7e2] bar + Author: A U Thor + 1 file changed, 1 insertion(+), 2 deletions(-) +ok 3 - --no-verify with no hook + +expecting success of 7504.4 '--no-verify with no hook (editor)': + + echo "more bar" > file && + git add file && + echo "more bar" > FAKE_MSG && + GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit --no-verify + + +[master 0b79d34] more bar + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +ok 4 - --no-verify with no hook (editor) + +expecting success of 7504.5 'with succeeding hook': + + echo "more" >> file && + git add file && + git commit -m "more" + + +[master 329307f] more + Author: A U Thor + 1 file changed, 1 insertion(+) +ok 5 - with succeeding hook + +expecting success of 7504.6 'with succeeding hook (editor)': + + echo "more more" >> file && + git add file && + echo "more more" > FAKE_MSG && + GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit + + +[master 1c57244] more more + Author: A U Thor + 1 file changed, 1 insertion(+) +ok 6 - with succeeding hook (editor) + +expecting success of 7504.7 '--no-verify with succeeding hook': + + echo "even more" >> file && + git add file && + git commit --no-verify -m "even more" + + +[master f6c9c8b] even more + Author: A U Thor + 1 file changed, 1 insertion(+) +ok 7 - --no-verify with succeeding hook + +expecting success of 7504.8 '--no-verify with succeeding hook (editor)': + + echo "even more more" >> file && + git add file && + echo "even more more" > FAKE_MSG && + GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit --no-verify + + +[master 64f8392] even more more + Author: A U Thor + 1 file changed, 1 insertion(+) +ok 8 - --no-verify with succeeding hook (editor) + +expecting success of 7504.9 'with failing hook': + + echo "another" >> file && + git add file && + test_must_fail git commit -m "another" + + +ok 9 - with failing hook + +expecting success of 7504.10 'with failing hook (editor)': + + echo "more another" >> file && + git add file && + echo "more another" > FAKE_MSG && + ! (GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit) + + +ok 10 - with failing hook (editor) + +expecting success of 7504.11 '--no-verify with failing hook': + + echo "stuff" >> file && + git add file && + git commit --no-verify -m "stuff" + + +[master 95dce17] stuff + Author: A U Thor + 1 file changed, 3 insertions(+) +ok 11 - --no-verify with failing hook + +expecting success of 7504.12 '--no-verify with failing hook (editor)': + + echo "more stuff" >> file && + git add file && + echo "more stuff" > FAKE_MSG && + GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit --no-verify + + +[master 2bcc534] more stuff + Author: A U Thor + 1 file changed, 1 insertion(+) +ok 12 - --no-verify with failing hook (editor) + +expecting success of 7504.13 'merge fails with failing hook': + + test_when_finished "git branch -D newbranch" && + test_when_finished "git checkout -f master" && + git checkout --orphan newbranch && + : >file2 && + git add file2 && + git commit --no-verify file2 -m in-side-branch && + test_must_fail git merge --allow-unrelated-histories master && + commit_msg_is "in-side-branch" # HEAD before merge + + +Switched to a new branch 'newbranch' +[newbranch (root-commit) 73906b9] in-side-branch + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 file2 +error: Your local changes to the following files would be overwritten by merge: + file +Switched to branch 'master' +Deleted branch newbranch (was 73906b9). +ok 13 - merge fails with failing hook + +expecting success of 7504.14 'merge bypasses failing hook with --no-verify': + + test_when_finished "git branch -D newbranch" && + test_when_finished "git checkout -f master" && + git checkout --orphan newbranch && + git rm -f file && + : >file2 && + git add file2 && + git commit --no-verify file2 -m in-side-branch && + git merge --no-verify --allow-unrelated-histories master && + commit_msg_is "Merge branch 'master' into newbranch" + +Switched to a new branch 'newbranch' +rm 'file' +[newbranch (root-commit) 73906b9] in-side-branch + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 file2 +Merging: +73906b9 in-side-branch +virtual master +found 0 common ancestors: +Merge made by the 'recursive' strategy. + file | 9 +++++++++ + 1 file changed, 9 insertions(+) + create mode 100644 file +Switched to branch 'master' +Deleted branch newbranch (was 6738ebf). +ok 14 - merge bypasses failing hook with --no-verify + +expecting success of 7504.15 'with non-executable hook': + + echo "content" >file && + git add file && + git commit -m "content" + + +hint: The '.git/hooks/commit-msg' hook was ignored because it's not set as executable. +hint: You can disable this warning with `git config advice.ignoredHook false`. +[master 98746ca] content + Author: A U Thor + 1 file changed, 1 insertion(+), 9 deletions(-) +ok 15 - with non-executable hook + +expecting success of 7504.16 'with non-executable hook (editor)': + + echo "content again" >> file && + git add file && + echo "content again" > FAKE_MSG && + GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit -m "content again" + + +hint: The '.git/hooks/commit-msg' hook was ignored because it's not set as executable. +hint: You can disable this warning with `git config advice.ignoredHook false`. +[master 794c2c6] content again + Author: A U Thor + 1 file changed, 1 insertion(+) +ok 16 - with non-executable hook (editor) + +expecting success of 7504.17 '--no-verify with non-executable hook': + + echo "more content" >> file && + git add file && + git commit --no-verify -m "more content" + + +[master b1fd6aa] more content + Author: A U Thor + 1 file changed, 1 insertion(+) +ok 17 - --no-verify with non-executable hook + +expecting success of 7504.18 '--no-verify with non-executable hook (editor)': + + echo "even more content" >> file && + git add file && + echo "even more content" > FAKE_MSG && + GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit --no-verify + + +[master 7161524] even more content + Author: A U Thor + 1 file changed, 1 insertion(+) +ok 18 - --no-verify with non-executable hook (editor) + +expecting success of 7504.19 'hook edits commit message': + + echo "additional" >> file && + git add file && + git commit -m "additional" && + commit_msg_is "new message" + + +[master 4cc0fa8] new message + Author: A U Thor + 1 file changed, 1 insertion(+) +ok 19 - hook edits commit message + +expecting success of 7504.20 'hook edits commit message (editor)': + + echo "additional content" >> file && + git add file && + echo "additional content" > FAKE_MSG && + GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit && + commit_msg_is "new message" + + +[master d054b2b] new message + Author: A U Thor + 1 file changed, 1 insertion(+) +ok 20 - hook edits commit message (editor) + +expecting success of 7504.21 'hook doesn't edit commit message': + + echo "plus" >> file && + git add file && + git commit --no-verify -m "plus" && + commit_msg_is "plus" + + +[master 1a561e6] plus + Author: A U Thor + 1 file changed, 1 insertion(+) +ok 21 - hook doesn't edit commit message + +expecting success of 7504.22 'hook doesn't edit commit message (editor)': + + echo "more plus" >> file && + git add file && + echo "more plus" > FAKE_MSG && + GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit --no-verify && + commit_msg_is "more plus" + +[master 9b5e9f7] more plus + Author: A U Thor + 1 file changed, 1 insertion(+) +ok 22 - hook doesn't edit commit message (editor) + +expecting success of 7504.23 'hook called in git-merge picks up commit message': + test_when_finished "git branch -D newbranch" && + test_when_finished "git checkout -f master" && + git checkout --orphan newbranch && + git rm -f file && + : >file2 && + git add file2 && + git commit --no-verify file2 -m in-side-branch && + git merge --allow-unrelated-histories master && + commit_msg_is "new message" + +Switched to a new branch 'newbranch' +rm 'file' +[newbranch (root-commit) 73906b9] in-side-branch + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 file2 +Merging: +73906b9 in-side-branch +virtual master +found 0 common ancestors: +Merge made by the 'recursive' strategy. + file | 8 ++++++++ + 1 file changed, 8 insertions(+) + create mode 100644 file +Switched to branch 'master' +Deleted branch newbranch (was 6804d5d). +ok 23 - hook called in git-merge picks up commit message + +checking known breakage of 7504.24 'merge --continue remembers --no-verify': + test_when_finished "git branch -D newbranch" && + test_when_finished "git checkout -f master" && + git checkout master && + echo a >file2 && + git add file2 && + git commit --no-verify -m "add file2 to master" && + git checkout -b newbranch master^ && + echo b >file2 && + git add file2 && + git commit --no-verify file2 -m in-side-branch && + git merge --no-verify -m not-rewritten-by-hook master && + # resolve conflict: + echo c >file2 && + git add file2 && + git merge --continue && + commit_msg_is not-rewritten-by-hook + +Already on 'master' +[master 69ea59e] add file2 to master + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file2 +Switched to a new branch 'newbranch' +[newbranch a21e298] in-side-branch + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file2 +Merging: +a21e298 in-side-branch +virtual master +found 1 common ancestor: +9b5e9f7 more plus +CONFLICT (add/add): Merge conflict in file2 +Auto-merging file2 +Automatic merge failed; fix conflicts and then commit the result. +Switched to branch 'master' +Deleted branch newbranch (was a21e298). +not ok 24 - merge --continue remembers --no-verify # TODO known breakage + +expecting success of 7504.25 'hook is called for reword during `rebase -i`': + + GIT_SEQUENCE_EDITOR="\"$REWORD_EDITOR\"" git rebase -i HEAD^ && + commit_msg_is "new message" + + +Rebasing (1/1) [detached HEAD 4f714e6] new message + Author: A U Thor + Date: Fri Apr 1 13:14:15 2005 +0200 + 1 file changed, 1 insertion(+) + create mode 100644 file2 + Successfully rebased and updated refs/heads/master. +ok 25 - hook is called for reword during `rebase -i` + +# still have 1 known breakage(s) +# passed all remaining 24 test(s) +1..25 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t7502-commit-porcelain.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7502-commit-porcelain/.git/ expecting success of 7502.1 'output summary format': @@ -361629,21 +361867,38 @@ git var GIT_AUTHOR_IDENT ) -Author identity unknown +second user 1112912533 -0700 +prerequisite AUTOIDENT ok +expecting success of 7502.34 'message shows committer when it is automatic': -*** Please tell me who you are. + echo >>negative && + ( + sane_unset GIT_COMMITTER_EMAIL && + sane_unset GIT_COMMITTER_NAME && + git commit -e -m "sample" -a + ) && + # the ident is calculated from the system, so we cannot + # check the actual value, only that it is there + test_i18ngrep "^# Committer: " .git/COMMIT_EDITMSG -Run +[master 89926ba] sample + Author: A U Thor + Committer: second user +Your name and email address were configured automatically based +on your username and hostname. Please check that they are accurate. +You can suppress this message by setting them explicitly. Run the +following command and follow the instructions in your editor to edit +your configuration file: - git config --global user.email "you@example.com" - git config --global user.name "Your Name" + git config --global --edit -to set your account's default identity. -Omit --global to set the identity only in this repository. +After doing this, you may fix the identity used for this commit with: -fatal: empty ident name (for ) not allowed -prerequisite AUTOIDENT not satisfied -ok 34 # skip message shows committer when it is automatic (missing AUTOIDENT) + git commit --amend --reset-author + + 1 file changed, 1 insertion(+) +# Committer: second user +ok 34 - message shows committer when it is automatic checking prerequisite: FAIL_PREREQS @@ -361654,33 +361909,7 @@ ) prerequisite FAIL_PREREQS not satisfied -expecting success of 7502.35 'do not fire editor when committer is bogus': - >.git/result && - - echo >>negative && - ( - sane_unset GIT_COMMITTER_EMAIL && - sane_unset GIT_COMMITTER_NAME && - GIT_EDITOR="\"$(pwd)/.git/FAKE_EDITOR\"" && - export GIT_EDITOR && - test_must_fail git commit -e -m sample -a - ) && - test_must_be_empty .git/result - -Committer identity unknown - -*** Please tell me who you are. - -Run - - git config --global user.email "you@example.com" - git config --global user.name "Your Name" - -to set your account's default identity. -Omit --global to set the identity only in this repository. - -fatal: empty ident name (for ) not allowed -ok 35 - do not fire editor when committer is bogus +ok 35 # skip do not fire editor when committer is bogus (missing !AUTOIDENT of !FAIL_PREREQS,!AUTOIDENT) expecting success of 7502.36 'do not fire editor if -m was given': echo tick >file && @@ -361689,7 +361918,7 @@ (GIT_EDITOR="\"$(pwd)/.git/FAKE_EDITOR\"" git commit -m tick) && test "$(cat .git/result)" = "editor not started" -[master aec1a61] tick +[master b727533] tick Author: A U Thor 1 file changed, 1 insertion(+), 7 deletions(-) ok 36 - do not fire editor if -m was given @@ -361702,7 +361931,7 @@ git commit -m "" --allow-empty-message) && test "$(cat .git/result)" = "editor not started" -[master 4b7f1d9] +[master 93c39de] Author: A U Thor 1 file changed, 1 insertion(+), 1 deletion(-) ok 37 - do not fire editor if -m "" was given @@ -361745,22 +361974,21 @@ Removing ident Removing raw Removing text -[master 3ff9a0e] add g +[master 385b135] add g Author: A U Thor 1 file changed, 1 insertion(+) create mode 100644 g -[master 5dec94d] modify g and add h +[master fe70512] modify g and add h Author: A U Thor 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 h Switched to branch 'second' -M negative -[second 1280b60] second +[second debe794] second Author: A U Thor 1 file changed, 1 insertion(+), 1 deletion(-) Auto-merging g CONFLICT (content): Merge conflict in g -error: could not apply 5dec94d... modify g and add h +error: could not apply fe70512... modify g and add h hint: after resolving the conflicts, mark the corrected paths hint: with 'git add ' or 'git rm ' error: Committing is not possible because you have unmerged files. @@ -361797,12 +362025,12 @@ virtual second virtual master found 1 common ancestor: -3ff9a0e add g +385b135 add g Auto-merging g CONFLICT (content): Merge conflict in g Automatic merge failed; fix conflicts and then commit the result. -Updated 1 path from 08d1379 -[second a7f8177] Merge branch 'master' into second +Updated 1 path from 21bda51 +[second e1ffef7] Merge branch 'master' into second Author: A U Thor ok 40 - Hand committing of a redundant merge removes dups @@ -361815,8 +362043,8 @@ test_line_count = 3 actual -HEAD is now at a7f8177 Merge branch 'master' into second -[second 2e95f37] hello: kitty +HEAD is now at e1ffef7 Merge branch 'master' into second +[second d7449f2] hello: kitty Author: A U Thor ok 41 - A single-liner subject with a token plus colon is not a footer @@ -361831,7 +362059,7 @@ sed -e "/^#/d" -e "s/^:.*//" .git/COMMIT_EDITMSG >actual && test_cmp expect actual -[second ffd414a] Signed-off-by: C O Mitter +[second 393fb4e] Signed-off-by: C O Mitter Author: A U Thor ok 42 - commit -s places sob on third line after two empty lines @@ -361839,8 +362067,8 @@ try_commit "" && test_i18ngrep "^# Changes to be committed:" .git/COMMIT_EDITMSG -HEAD is now at ffd414a Signed-off-by: C O Mitter -[second 9d1d908] message +HEAD is now at 393fb4e Signed-off-by: C O Mitter +[second dd96e2a] message Author: A U Thor 1 file changed, 1 insertion(+) # Changes to be committed: @@ -361850,8 +362078,8 @@ try_commit --status && test_i18ngrep "^# Changes to be committed:" .git/COMMIT_EDITMSG -HEAD is now at 9d1d908 message -[second 163b75c] message +HEAD is now at dd96e2a message +[second 0ecb16a] message Author: A U Thor 1 file changed, 1 insertion(+) # Changes to be committed: @@ -361861,8 +362089,8 @@ try_commit --no-status && test_i18ngrep ! "^# Changes to be committed:" .git/COMMIT_EDITMSG -HEAD is now at 163b75c message -[second 257ad01] message +HEAD is now at 0ecb16a message +[second 837dcde] message Author: A U Thor 1 file changed, 1 insertion(+) ok 45 - commit --no-status @@ -361872,8 +362100,8 @@ try_commit "" && test_i18ngrep "^# Changes to be committed:" .git/COMMIT_EDITMSG -HEAD is now at 257ad01 message -[second 0a95875] message +HEAD is now at 837dcde message +[second 919e576] message Author: A U Thor 1 file changed, 1 insertion(+) # Changes to be committed: @@ -361884,8 +362112,8 @@ try_commit "" && test_i18ngrep ! "^# Changes to be committed:" .git/COMMIT_EDITMSG -HEAD is now at 0a95875 message -[second 06f9db0] message +HEAD is now at 919e576 message +[second 851143a] message Author: A U Thor 1 file changed, 1 insertion(+) ok 47 - commit with commit.status = no @@ -361895,8 +362123,8 @@ try_commit --status && test_i18ngrep "^# Changes to be committed:" .git/COMMIT_EDITMSG -HEAD is now at 06f9db0 message -[second ec82c00] message +HEAD is now at 851143a message +[second 5bb863e] message Author: A U Thor 1 file changed, 1 insertion(+) # Changes to be committed: @@ -361907,8 +362135,8 @@ try_commit --no-status && test_i18ngrep ! "^# Changes to be committed:" .git/COMMIT_EDITMSG -HEAD is now at ec82c00 message -[second 26a4e77] message +HEAD is now at 5bb863e message +[second 18a082f] message Author: A U Thor 1 file changed, 1 insertion(+) ok 49 - commit --no-status with commit.status = yes @@ -361918,8 +362146,8 @@ try_commit --status && test_i18ngrep "^# Changes to be committed:" .git/COMMIT_EDITMSG -HEAD is now at 26a4e77 message -[second 88c22f0] message +HEAD is now at 18a082f message +[second c92c303] message Author: A U Thor 1 file changed, 1 insertion(+) # Changes to be committed: @@ -361930,8 +362158,8 @@ try_commit --no-status && test_i18ngrep ! "^# Changes to be committed:" .git/COMMIT_EDITMSG -HEAD is now at 88c22f0 message -[second 4162d6a] message +HEAD is now at c92c303 message +[second 89116ce] message Author: A U Thor 1 file changed, 1 insertion(+) ok 51 - commit --no-status with commit.status = no @@ -361940,8 +362168,8 @@ try_commit "" && test_i18ngrep "^# Changes to be committed:" .git/COMMIT_EDITMSG -HEAD is now at 4162d6a message -[second 979a7d8] message +HEAD is now at 89116ce message +[second 557fb0b] message Author: A U Thor 1 file changed, 1 insertion(+) ## Custom template @@ -361952,8 +362180,8 @@ try_commit --status && test_i18ngrep "^# Changes to be committed:" .git/COMMIT_EDITMSG -HEAD is now at 979a7d8 message -[second b35d24b] message +HEAD is now at 557fb0b message +[second 4ca0e11] message Author: A U Thor 1 file changed, 1 insertion(+) ## Custom template @@ -361964,8 +362192,8 @@ try_commit --no-status && test_i18ngrep ! "^# Changes to be committed:" .git/COMMIT_EDITMSG -HEAD is now at b35d24b message -[second 286a37c] message +HEAD is now at 4ca0e11 message +[second 999e05c] message Author: A U Thor 1 file changed, 1 insertion(+) ## Custom template @@ -361976,8 +362204,8 @@ try_commit "" && test_i18ngrep "^# Changes to be committed:" .git/COMMIT_EDITMSG -HEAD is now at 286a37c message -[second 0a3b97e] message +HEAD is now at 999e05c message +[second bd310bf] message Author: A U Thor 1 file changed, 1 insertion(+) ## Custom template @@ -361989,8 +362217,8 @@ try_commit "" && test_i18ngrep ! "^# Changes to be committed:" .git/COMMIT_EDITMSG -HEAD is now at 0a3b97e message -[second e5e0da2] message +HEAD is now at bd310bf message +[second c813050] message Author: A U Thor 1 file changed, 1 insertion(+) ## Custom template @@ -362001,8 +362229,8 @@ try_commit --status && test_i18ngrep "^# Changes to be committed:" .git/COMMIT_EDITMSG -HEAD is now at e5e0da2 message -[second cfd2dca] message +HEAD is now at c813050 message +[second a5b8f3e] message Author: A U Thor 1 file changed, 1 insertion(+) ## Custom template @@ -362014,8 +362242,8 @@ try_commit --no-status && test_i18ngrep ! "^# Changes to be committed:" .git/COMMIT_EDITMSG -HEAD is now at cfd2dca message -[second b990741] message +HEAD is now at a5b8f3e message +[second e1eb796] message Author: A U Thor 1 file changed, 1 insertion(+) ## Custom template @@ -362026,8 +362254,8 @@ try_commit --status && test_i18ngrep "^# Changes to be committed:" .git/COMMIT_EDITMSG -HEAD is now at b990741 message -[second 16eedb9] message +HEAD is now at e1eb796 message +[second 7dc0bd1] message Author: A U Thor 1 file changed, 1 insertion(+) ## Custom template @@ -362039,8 +362267,8 @@ try_commit --no-status && test_i18ngrep ! "^# Changes to be committed:" .git/COMMIT_EDITMSG -HEAD is now at 16eedb9 message -[second c2eb408] message +HEAD is now at 7dc0bd1 message +[second ec4bfe0] message Author: A U Thor 1 file changed, 1 insertion(+) ## Custom template @@ -362051,8 +362279,8 @@ try_commit --status && test_i18ngrep "^; Changes to be committed:" .git/COMMIT_EDITMSG -HEAD is now at c2eb408 message -[second 18cb8f8] message ## Custom template +HEAD is now at ec4bfe0 message +[second bfa9973] message ## Custom template Author: A U Thor 1 file changed, 1 insertion(+) ## Custom template @@ -362064,11 +362292,11 @@ GIT_EDITOR=.git/FAKE_EDITOR git -c core.commentChar=auto commit --amend && test_i18ngrep "^; Changes to be committed:" .git/COMMIT_EDITMSG -[second 97533e0] #foo +[second 0510522] #foo Author: A U Thor 1 file changed, 1 insertion(+) create mode 100644 foo -[second 8598a1a] message #foo +[second 0112958] message #foo Author: A U Thor Date: Thu Apr 7 15:23:13 2005 -0700 1 file changed, 1 insertion(+) @@ -362095,7 +362323,7 @@ test_must_fail git -c core.commentChar=auto commit --amend ) -[second 1655339] # 1 ; 2 @ 3 ! 4 $ 5 % 6 ^ 7 & 8 | 9 : 10 +[second 406569a] # 1 ; 2 @ 3 ! 4 $ 5 % 6 ^ 7 & 8 | 9 : 10 Author: A U Thor Date: Thu Apr 7 15:23:13 2005 -0700 1 file changed, 1 insertion(+) @@ -362108,399 +362336,584 @@ 1..63 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t7504-commit-msg-hook.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7504-commit-msg-hook/.git/ -expecting success of 7504.1 'with no hook': - - echo "foo" > file && +*** t7507-commit-verbose.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7507-commit-verbose/.git/ +expecting success of 7507.1 'setup': + echo content >file && git add file && - git commit -m "first" - + git commit -F message -[master (root-commit) d6ab80b] first +[master (root-commit) 5621fbe] subject Author: A U Thor 1 file changed, 1 insertion(+) create mode 100644 file -ok 1 - with no hook - -expecting success of 7504.2 'with no hook (editor)': - - echo "more foo" >> file && - git add file && - echo "more foo" > FAKE_MSG && - GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit +ok 1 - setup +expecting success of 7507.2 'initial commit shows verbose diff': + git commit --amend -v && + test_line_count = 1 out -[master 8164a21] more foo +[master 5621fbe] subject Author: A U Thor + Date: Fri Apr 1 13:14:15 2005 +0200 1 file changed, 1 insertion(+) -ok 2 - with no hook (editor) - -expecting success of 7504.3 '--no-verify with no hook': + create mode 100644 file +ok 2 - initial commit shows verbose diff - echo "bar" > file && +expecting success of 7507.3 'second commit': + echo content modified >file && git add file && - git commit --no-verify -m "bar" - + git commit -F message -[master 854c7e2] bar +[master aa8777f] subject Author: A U Thor - 1 file changed, 1 insertion(+), 2 deletions(-) -ok 3 - --no-verify with no hook - -expecting success of 7504.4 '--no-verify with no hook (editor)': - - echo "more bar" > file && - git add file && - echo "more bar" > FAKE_MSG && - GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit --no-verify + 1 file changed, 1 insertion(+), 1 deletion(-) +ok 3 - second commit +expecting success of 7507.4 'verbose diff is stripped out': + git commit --amend -v && + check_message message && + test_line_count = 1 out -[master 0b79d34] more bar +[master aa8777f] subject Author: A U Thor + Date: Fri Apr 1 13:14:15 2005 +0200 1 file changed, 1 insertion(+), 1 deletion(-) -ok 4 - --no-verify with no hook (editor) - -expecting success of 7504.5 'with succeeding hook': - - echo "more" >> file && - git add file && - git commit -m "more" +ok 4 - verbose diff is stripped out +expecting success of 7507.5 'verbose diff is stripped out (mnemonicprefix)': + git config diff.mnemonicprefix true && + git commit --amend -v && + check_message message && + test_line_count = 1 out -[master 329307f] more +[master aa8777f] subject Author: A U Thor - 1 file changed, 1 insertion(+) -ok 5 - with succeeding hook - -expecting success of 7504.6 'with succeeding hook (editor)': - - echo "more more" >> file && - git add file && - echo "more more" > FAKE_MSG && - GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit + Date: Fri Apr 1 13:14:15 2005 +0200 + 1 file changed, 1 insertion(+), 1 deletion(-) +ok 5 - verbose diff is stripped out (mnemonicprefix) +expecting success of 7507.6 'diff in message is retained without -v': + git commit --amend -F diff && + check_message diff -[master 1c57244] more more +[master 5165ef5] This is an example commit message that contains a diff. Author: A U Thor - 1 file changed, 1 insertion(+) -ok 6 - with succeeding hook (editor) - -expecting success of 7504.7 '--no-verify with succeeding hook': - - echo "even more" >> file && - git add file && - git commit --no-verify -m "even more" + Date: Fri Apr 1 13:14:15 2005 +0200 + 1 file changed, 1 insertion(+), 1 deletion(-) +ok 6 - diff in message is retained without -v +expecting success of 7507.7 'diff in message is retained with -v': + git commit --amend -F diff -v && + check_message diff -[master f6c9c8b] even more +[master 5165ef5] This is an example commit message that contains a diff. Author: A U Thor - 1 file changed, 1 insertion(+) -ok 7 - --no-verify with succeeding hook - -expecting success of 7504.8 '--no-verify with succeeding hook (editor)': - - echo "even more more" >> file && - git add file && - echo "even more more" > FAKE_MSG && - GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit --no-verify + Date: Fri Apr 1 13:14:15 2005 +0200 + 1 file changed, 1 insertion(+), 1 deletion(-) +ok 7 - diff in message is retained with -v +expecting success of 7507.8 'submodule log is stripped out too with -v': + git config diff.submodule log && + test_config_global protocol.file.allow always && + git submodule add ./. sub && + git commit -m "sub added" && + ( + cd sub && + echo "more" >>file && + git commit -a -m "submodule commit" + ) && + ( + GIT_EDITOR=cat && + export GIT_EDITOR && + test_must_fail git commit -a -v 2>err + ) && + test_i18ngrep "Aborting commit due to empty commit message." err -[master 64f8392] even more more +Cloning into '/build/git-2.30.2/t/trash directory.t7507-commit-verbose/sub'... +done. +[master 2f750a4] sub added + Author: A U Thor + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 sub +[master 2b9398c] submodule commit Author: A U Thor 1 file changed, 1 insertion(+) -ok 8 - --no-verify with succeeding hook (editor) - -expecting success of 7504.9 'with failing hook': - echo "another" >> file && - git add file && - test_must_fail git commit -m "another" +# Please enter the commit message for your changes. Lines starting +# with '#' will be ignored, and an empty message aborts the commit. +# +# Author: A U Thor +# +# On branch master +# Changes to be committed: +# modified: sub +# +# Untracked files: +# .gitconfig +# actual +# check-for-diff +# diff +# err +# message +# out +# +# ------------------------ >8 ------------------------ +# Do not modify or remove the line above. +# Everything below it will be ignored. +Submodule sub 5165ef5..2b9398c: + > submodule commit +checking prerequisite: C_LOCALE_OUTPUT +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false -ok 9 - with failing hook +) +prerequisite C_LOCALE_OUTPUT ok +Aborting commit due to empty commit message. +ok 8 - submodule log is stripped out too with -v -expecting success of 7504.10 'with failing hook (editor)': +expecting success of 7507.9 'verbose diff is stripped out with set core.commentChar': + ( + GIT_EDITOR=cat && + export GIT_EDITOR && + test_must_fail git -c core.commentchar=";" commit -a -v 2>err + ) && + test_i18ngrep "Aborting commit due to empty commit message." err - echo "more another" >> file && - git add file && - echo "more another" > FAKE_MSG && - ! (GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit) +; Please enter the commit message for your changes. Lines starting +; with ';' will be ignored, and an empty message aborts the commit. +; +; Author: A U Thor +; +; On branch master +; Changes to be committed: +; modified: sub +; +; Untracked files: +; .gitconfig +; actual +; check-for-diff +; diff +; err +; message +; out +; +; ------------------------ >8 ------------------------ +; Do not modify or remove the line above. +; Everything below it will be ignored. +Submodule sub 5165ef5..2b9398c: + > submodule commit +Aborting commit due to empty commit message. +ok 9 - verbose diff is stripped out with set core.commentChar -ok 10 - with failing hook (editor) +expecting success of 7507.10 'status does not verbose without --verbose': + git status >actual && + ! grep "^diff --git" actual -expecting success of 7504.11 '--no-verify with failing hook': +ok 10 - status does not verbose without --verbose - echo "stuff" >> file && - git add file && - git commit --no-verify -m "stuff" +expecting success of 7507.11 'setup -v -v': + echo dirty >file +ok 11 - setup -v -v -[master 95dce17] stuff +expecting success of 7507.12 'commit.verbose=true and --verbose omitted': + git -c commit.verbose=true commit --amend && + test_line_count = 1 out + +[master 2f750a4] sub added Author: A U Thor - 1 file changed, 3 insertions(+) -ok 11 - --no-verify with failing hook - -expecting success of 7504.12 '--no-verify with failing hook (editor)': - - echo "more stuff" >> file && - git add file && - echo "more stuff" > FAKE_MSG && - GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit --no-verify - + Date: Fri Apr 1 13:14:15 2005 +0200 + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 sub +ok 12 - commit.verbose=true and --verbose omitted -[master 2bcc534] more stuff +expecting success of 7507.13 'commit.verbose=1 and --verbose omitted': + git -c commit.verbose=1 commit --amend && + test_line_count = 1 out + +[master 2f750a4] sub added Author: A U Thor - 1 file changed, 1 insertion(+) -ok 12 - --no-verify with failing hook (editor) - -expecting success of 7504.13 'merge fails with failing hook': - - test_when_finished "git branch -D newbranch" && - test_when_finished "git checkout -f master" && - git checkout --orphan newbranch && - : >file2 && - git add file2 && - git commit --no-verify file2 -m in-side-branch && - test_must_fail git merge --allow-unrelated-histories master && - commit_msg_is "in-side-branch" # HEAD before merge - + Date: Fri Apr 1 13:14:15 2005 +0200 + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 sub +ok 13 - commit.verbose=1 and --verbose omitted -Switched to a new branch 'newbranch' -[newbranch (root-commit) 73906b9] in-side-branch +expecting success of 7507.14 'commit.verbose=false and --verbose omitted': + git -c commit.verbose=false commit --amend && + test_line_count = 0 out + +[master 2f750a4] sub added Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - create mode 100644 file2 -error: Your local changes to the following files would be overwritten by merge: - file -Switched to branch 'master' -Deleted branch newbranch (was 73906b9). -ok 13 - merge fails with failing hook - -expecting success of 7504.14 'merge bypasses failing hook with --no-verify': - - test_when_finished "git branch -D newbranch" && - test_when_finished "git checkout -f master" && - git checkout --orphan newbranch && - git rm -f file && - : >file2 && - git add file2 && - git commit --no-verify file2 -m in-side-branch && - git merge --no-verify --allow-unrelated-histories master && - commit_msg_is "Merge branch 'master' into newbranch" + Date: Fri Apr 1 13:14:15 2005 +0200 + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 sub +ok 14 - commit.verbose=false and --verbose omitted -Switched to a new branch 'newbranch' -rm 'file' -[newbranch (root-commit) 73906b9] in-side-branch +expecting success of 7507.15 'commit.verbose=-2 and --verbose omitted': + git -c commit.verbose=-2 commit --amend && + test_line_count = 0 out + +[master 2f750a4] sub added Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - create mode 100644 file2 -Merging: -73906b9 in-side-branch -virtual master -found 0 common ancestors: -Merge made by the 'recursive' strategy. - file | 9 +++++++++ - 1 file changed, 9 insertions(+) - create mode 100644 file -Switched to branch 'master' -Deleted branch newbranch (was 6738ebf). -ok 14 - merge bypasses failing hook with --no-verify - -expecting success of 7504.15 'with non-executable hook': - - echo "content" >file && - git add file && - git commit -m "content" - + Date: Fri Apr 1 13:14:15 2005 +0200 + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 sub +ok 15 - commit.verbose=-2 and --verbose omitted -hint: The '.git/hooks/commit-msg' hook was ignored because it's not set as executable. -hint: You can disable this warning with `git config advice.ignoredHook false`. -[master 98746ca] content +expecting success of 7507.16 'commit.verbose=-1 and --verbose omitted': + git -c commit.verbose=-1 commit --amend && + test_line_count = 0 out + +[master 2f750a4] sub added Author: A U Thor - 1 file changed, 1 insertion(+), 9 deletions(-) -ok 15 - with non-executable hook - -expecting success of 7504.16 'with non-executable hook (editor)': - - echo "content again" >> file && - git add file && - echo "content again" > FAKE_MSG && - GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit -m "content again" - + Date: Fri Apr 1 13:14:15 2005 +0200 + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 sub +ok 16 - commit.verbose=-1 and --verbose omitted -hint: The '.git/hooks/commit-msg' hook was ignored because it's not set as executable. -hint: You can disable this warning with `git config advice.ignoredHook false`. -[master 794c2c6] content again +expecting success of 7507.17 'commit.verbose=0 and --verbose omitted': + git -c commit.verbose=0 commit --amend && + test_line_count = 0 out + +[master 2f750a4] sub added Author: A U Thor - 1 file changed, 1 insertion(+) -ok 16 - with non-executable hook (editor) - -expecting success of 7504.17 '--no-verify with non-executable hook': - - echo "more content" >> file && - git add file && - git commit --no-verify -m "more content" - + Date: Fri Apr 1 13:14:15 2005 +0200 + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 sub +ok 17 - commit.verbose=0 and --verbose omitted -[master b1fd6aa] more content +expecting success of 7507.18 'commit.verbose=2 and --verbose omitted': + git -c commit.verbose=2 commit --amend && + test_line_count = 2 out + +[master 2f750a4] sub added Author: A U Thor - 1 file changed, 1 insertion(+) -ok 17 - --no-verify with non-executable hook - -expecting success of 7504.18 '--no-verify with non-executable hook (editor)': - - echo "even more content" >> file && - git add file && - echo "even more content" > FAKE_MSG && - GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit --no-verify - + Date: Fri Apr 1 13:14:15 2005 +0200 + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 sub +ok 18 - commit.verbose=2 and --verbose omitted -[master 7161524] even more content +expecting success of 7507.19 'commit.verbose=3 and --verbose omitted': + git -c commit.verbose=3 commit --amend && + test_line_count = 2 out + +[master 2f750a4] sub added Author: A U Thor - 1 file changed, 1 insertion(+) -ok 18 - --no-verify with non-executable hook (editor) + Date: Fri Apr 1 13:14:15 2005 +0200 + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 sub +ok 19 - commit.verbose=3 and --verbose omitted -expecting success of 7504.19 'hook edits commit message': +expecting success of 7507.20 'commit.verbose=true and --verbose': + git -c commit.verbose=true commit --amend --verbose && + test_line_count = 1 out + +[master 2f750a4] sub added + Author: A U Thor + Date: Fri Apr 1 13:14:15 2005 +0200 + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 sub +ok 20 - commit.verbose=true and --verbose - echo "additional" >> file && - git add file && - git commit -m "additional" && - commit_msg_is "new message" +expecting success of 7507.21 'commit.verbose=true and --no-verbose': + git -c commit.verbose=true commit --amend --no-verbose && + test_line_count = 0 out + +[master 2f750a4] sub added + Author: A U Thor + Date: Fri Apr 1 13:14:15 2005 +0200 + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 sub +ok 21 - commit.verbose=true and --no-verbose +expecting success of 7507.22 'commit.verbose=true and -v -v': + git -c commit.verbose=true commit --amend -v -v && + test_line_count = 2 out + +[master 2f750a4] sub added + Author: A U Thor + Date: Fri Apr 1 13:14:15 2005 +0200 + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 sub +ok 22 - commit.verbose=true and -v -v -[master 4cc0fa8] new message +expecting success of 7507.23 'commit.verbose=false and --verbose': + git -c commit.verbose=false commit --amend --verbose && + test_line_count = 1 out + +[master 2f750a4] sub added Author: A U Thor - 1 file changed, 1 insertion(+) -ok 19 - hook edits commit message + Date: Fri Apr 1 13:14:15 2005 +0200 + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 sub +ok 23 - commit.verbose=false and --verbose -expecting success of 7504.20 'hook edits commit message (editor)': +expecting success of 7507.24 'commit.verbose=false and --no-verbose': + git -c commit.verbose=false commit --amend --no-verbose && + test_line_count = 0 out + +[master 2f750a4] sub added + Author: A U Thor + Date: Fri Apr 1 13:14:15 2005 +0200 + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 sub +ok 24 - commit.verbose=false and --no-verbose - echo "additional content" >> file && - git add file && - echo "additional content" > FAKE_MSG && - GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit && - commit_msg_is "new message" +expecting success of 7507.25 'commit.verbose=false and -v -v': + git -c commit.verbose=false commit --amend -v -v && + test_line_count = 2 out + +[master 2f750a4] sub added + Author: A U Thor + Date: Fri Apr 1 13:14:15 2005 +0200 + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 sub +ok 25 - commit.verbose=false and -v -v +expecting success of 7507.26 'commit.verbose=-2 and --verbose': + git -c commit.verbose=-2 commit --amend --verbose && + test_line_count = 1 out + +[master 2f750a4] sub added + Author: A U Thor + Date: Fri Apr 1 13:14:15 2005 +0200 + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 sub +ok 26 - commit.verbose=-2 and --verbose -[master d054b2b] new message +expecting success of 7507.27 'commit.verbose=-2 and --no-verbose': + git -c commit.verbose=-2 commit --amend --no-verbose && + test_line_count = 0 out + +[master 2f750a4] sub added Author: A U Thor - 1 file changed, 1 insertion(+) -ok 20 - hook edits commit message (editor) + Date: Fri Apr 1 13:14:15 2005 +0200 + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 sub +ok 27 - commit.verbose=-2 and --no-verbose -expecting success of 7504.21 'hook doesn't edit commit message': +expecting success of 7507.28 'commit.verbose=-2 and -v -v': + git -c commit.verbose=-2 commit --amend -v -v && + test_line_count = 2 out + +[master 2f750a4] sub added + Author: A U Thor + Date: Fri Apr 1 13:14:15 2005 +0200 + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 sub +ok 28 - commit.verbose=-2 and -v -v - echo "plus" >> file && - git add file && - git commit --no-verify -m "plus" && - commit_msg_is "plus" +expecting success of 7507.29 'commit.verbose=-1 and --verbose': + git -c commit.verbose=-1 commit --amend --verbose && + test_line_count = 1 out + +[master 2f750a4] sub added + Author: A U Thor + Date: Fri Apr 1 13:14:15 2005 +0200 + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 sub +ok 29 - commit.verbose=-1 and --verbose +expecting success of 7507.30 'commit.verbose=-1 and --no-verbose': + git -c commit.verbose=-1 commit --amend --no-verbose && + test_line_count = 0 out + +[master 2f750a4] sub added + Author: A U Thor + Date: Fri Apr 1 13:14:15 2005 +0200 + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 sub +ok 30 - commit.verbose=-1 and --no-verbose -[master 1a561e6] plus +expecting success of 7507.31 'commit.verbose=-1 and -v -v': + git -c commit.verbose=-1 commit --amend -v -v && + test_line_count = 2 out + +[master 2f750a4] sub added Author: A U Thor - 1 file changed, 1 insertion(+) -ok 21 - hook doesn't edit commit message + Date: Fri Apr 1 13:14:15 2005 +0200 + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 sub +ok 31 - commit.verbose=-1 and -v -v -expecting success of 7504.22 'hook doesn't edit commit message (editor)': +expecting success of 7507.32 'commit.verbose=0 and --verbose': + git -c commit.verbose=0 commit --amend --verbose && + test_line_count = 1 out + +[master 2f750a4] sub added + Author: A U Thor + Date: Fri Apr 1 13:14:15 2005 +0200 + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 sub +ok 32 - commit.verbose=0 and --verbose - echo "more plus" >> file && - git add file && - echo "more plus" > FAKE_MSG && - GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit --no-verify && - commit_msg_is "more plus" +expecting success of 7507.33 'commit.verbose=0 and --no-verbose': + git -c commit.verbose=0 commit --amend --no-verbose && + test_line_count = 0 out + +[master 2f750a4] sub added + Author: A U Thor + Date: Fri Apr 1 13:14:15 2005 +0200 + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 sub +ok 33 - commit.verbose=0 and --no-verbose -[master 9b5e9f7] more plus +expecting success of 7507.34 'commit.verbose=0 and -v -v': + git -c commit.verbose=0 commit --amend -v -v && + test_line_count = 2 out + +[master 2f750a4] sub added Author: A U Thor - 1 file changed, 1 insertion(+) -ok 22 - hook doesn't edit commit message (editor) + Date: Fri Apr 1 13:14:15 2005 +0200 + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 sub +ok 34 - commit.verbose=0 and -v -v -expecting success of 7504.23 'hook called in git-merge picks up commit message': - test_when_finished "git branch -D newbranch" && - test_when_finished "git checkout -f master" && - git checkout --orphan newbranch && - git rm -f file && - : >file2 && - git add file2 && - git commit --no-verify file2 -m in-side-branch && - git merge --allow-unrelated-histories master && - commit_msg_is "new message" +expecting success of 7507.35 'commit.verbose=1 and --verbose': + git -c commit.verbose=1 commit --amend --verbose && + test_line_count = 1 out + +[master 2f750a4] sub added + Author: A U Thor + Date: Fri Apr 1 13:14:15 2005 +0200 + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 sub +ok 35 - commit.verbose=1 and --verbose -Switched to a new branch 'newbranch' -rm 'file' -[newbranch (root-commit) 73906b9] in-side-branch +expecting success of 7507.36 'commit.verbose=1 and --no-verbose': + git -c commit.verbose=1 commit --amend --no-verbose && + test_line_count = 0 out + +[master 2f750a4] sub added Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - create mode 100644 file2 -Merging: -73906b9 in-side-branch -virtual master -found 0 common ancestors: -Merge made by the 'recursive' strategy. - file | 8 ++++++++ - 1 file changed, 8 insertions(+) - create mode 100644 file -Switched to branch 'master' -Deleted branch newbranch (was 6804d5d). -ok 23 - hook called in git-merge picks up commit message + Date: Fri Apr 1 13:14:15 2005 +0200 + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 sub +ok 36 - commit.verbose=1 and --no-verbose -checking known breakage of 7504.24 'merge --continue remembers --no-verify': - test_when_finished "git branch -D newbranch" && - test_when_finished "git checkout -f master" && - git checkout master && - echo a >file2 && - git add file2 && - git commit --no-verify -m "add file2 to master" && - git checkout -b newbranch master^ && - echo b >file2 && - git add file2 && - git commit --no-verify file2 -m in-side-branch && - git merge --no-verify -m not-rewritten-by-hook master && - # resolve conflict: - echo c >file2 && - git add file2 && - git merge --continue && - commit_msg_is not-rewritten-by-hook +expecting success of 7507.37 'commit.verbose=1 and -v -v': + git -c commit.verbose=1 commit --amend -v -v && + test_line_count = 2 out + +[master 2f750a4] sub added + Author: A U Thor + Date: Fri Apr 1 13:14:15 2005 +0200 + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 sub +ok 37 - commit.verbose=1 and -v -v -Already on 'master' -[master 69ea59e] add file2 to master +expecting success of 7507.38 'commit.verbose=2 and --verbose': + git -c commit.verbose=2 commit --amend --verbose && + test_line_count = 1 out + +[master 2f750a4] sub added Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file2 -Switched to a new branch 'newbranch' -[newbranch a21e298] in-side-branch + Date: Fri Apr 1 13:14:15 2005 +0200 + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 sub +ok 38 - commit.verbose=2 and --verbose + +expecting success of 7507.39 'commit.verbose=2 and --no-verbose': + git -c commit.verbose=2 commit --amend --no-verbose && + test_line_count = 0 out + +[master 2f750a4] sub added Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file2 -Merging: -a21e298 in-side-branch -virtual master -found 1 common ancestor: -9b5e9f7 more plus -CONFLICT (add/add): Merge conflict in file2 -Auto-merging file2 -Automatic merge failed; fix conflicts and then commit the result. -Switched to branch 'master' -Deleted branch newbranch (was a21e298). -not ok 24 - merge --continue remembers --no-verify # TODO known breakage + Date: Fri Apr 1 13:14:15 2005 +0200 + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 sub +ok 39 - commit.verbose=2 and --no-verbose -expecting success of 7504.25 'hook is called for reword during `rebase -i`': +expecting success of 7507.40 'commit.verbose=2 and -v -v': + git -c commit.verbose=2 commit --amend -v -v && + test_line_count = 2 out + +[master 2f750a4] sub added + Author: A U Thor + Date: Fri Apr 1 13:14:15 2005 +0200 + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 sub +ok 40 - commit.verbose=2 and -v -v - GIT_SEQUENCE_EDITOR="\"$REWORD_EDITOR\"" git rebase -i HEAD^ && - commit_msg_is "new message" +expecting success of 7507.41 'commit.verbose=3 and --verbose': + git -c commit.verbose=3 commit --amend --verbose && + test_line_count = 1 out + +[master 2f750a4] sub added + Author: A U Thor + Date: Fri Apr 1 13:14:15 2005 +0200 + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 sub +ok 41 - commit.verbose=3 and --verbose +expecting success of 7507.42 'commit.verbose=3 and --no-verbose': + git -c commit.verbose=3 commit --amend --no-verbose && + test_line_count = 0 out + +[master 2f750a4] sub added + Author: A U Thor + Date: Fri Apr 1 13:14:15 2005 +0200 + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 sub +ok 42 - commit.verbose=3 and --no-verbose -Rebasing (1/1) [detached HEAD 4f714e6] new message +expecting success of 7507.43 'commit.verbose=3 and -v -v': + git -c commit.verbose=3 commit --amend -v -v && + test_line_count = 2 out + +[master 2f750a4] sub added Author: A U Thor Date: Fri Apr 1 13:14:15 2005 +0200 - 1 file changed, 1 insertion(+) - create mode 100644 file2 - Successfully rebased and updated refs/heads/master. -ok 25 - hook is called for reword during `rebase -i` + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 sub +ok 43 - commit.verbose=3 and -v -v -# still have 1 known breakage(s) -# passed all remaining 24 test(s) -1..25 +expecting success of 7507.44 'status ignores commit.verbose=true': + git -c commit.verbose=true status >actual && + ! grep "^diff --git actual" + +ok 44 - status ignores commit.verbose=true + +# passed all 44 test(s) +1..44 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' *** t7506-status-submodule.sh *** @@ -363033,586 +363446,6 @@ 1..40 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t7507-commit-verbose.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7507-commit-verbose/.git/ -expecting success of 7507.1 'setup': - echo content >file && - git add file && - git commit -F message - -[master (root-commit) 5621fbe] subject - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -ok 1 - setup - -expecting success of 7507.2 'initial commit shows verbose diff': - git commit --amend -v && - test_line_count = 1 out - -[master 5621fbe] subject - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 1 file changed, 1 insertion(+) - create mode 100644 file -ok 2 - initial commit shows verbose diff - -expecting success of 7507.3 'second commit': - echo content modified >file && - git add file && - git commit -F message - -[master aa8777f] subject - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -ok 3 - second commit - -expecting success of 7507.4 'verbose diff is stripped out': - git commit --amend -v && - check_message message && - test_line_count = 1 out - -[master aa8777f] subject - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 1 file changed, 1 insertion(+), 1 deletion(-) -ok 4 - verbose diff is stripped out - -expecting success of 7507.5 'verbose diff is stripped out (mnemonicprefix)': - git config diff.mnemonicprefix true && - git commit --amend -v && - check_message message && - test_line_count = 1 out - -[master aa8777f] subject - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 1 file changed, 1 insertion(+), 1 deletion(-) -ok 5 - verbose diff is stripped out (mnemonicprefix) - -expecting success of 7507.6 'diff in message is retained without -v': - git commit --amend -F diff && - check_message diff - -[master 5165ef5] This is an example commit message that contains a diff. - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 1 file changed, 1 insertion(+), 1 deletion(-) -ok 6 - diff in message is retained without -v - -expecting success of 7507.7 'diff in message is retained with -v': - git commit --amend -F diff -v && - check_message diff - -[master 5165ef5] This is an example commit message that contains a diff. - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 1 file changed, 1 insertion(+), 1 deletion(-) -ok 7 - diff in message is retained with -v - -expecting success of 7507.8 'submodule log is stripped out too with -v': - git config diff.submodule log && - test_config_global protocol.file.allow always && - git submodule add ./. sub && - git commit -m "sub added" && - ( - cd sub && - echo "more" >>file && - git commit -a -m "submodule commit" - ) && - ( - GIT_EDITOR=cat && - export GIT_EDITOR && - test_must_fail git commit -a -v 2>err - ) && - test_i18ngrep "Aborting commit due to empty commit message." err - -Cloning into '/build/git-2.30.2/t/trash directory.t7507-commit-verbose/sub'... -done. -[master 2f750a4] sub added - Author: A U Thor - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 sub -[master 2b9398c] submodule commit - Author: A U Thor - 1 file changed, 1 insertion(+) - -# Please enter the commit message for your changes. Lines starting -# with '#' will be ignored, and an empty message aborts the commit. -# -# Author: A U Thor -# -# On branch master -# Changes to be committed: -# modified: sub -# -# Untracked files: -# .gitconfig -# actual -# check-for-diff -# diff -# err -# message -# out -# -# ------------------------ >8 ------------------------ -# Do not modify or remove the line above. -# Everything below it will be ignored. -Submodule sub 5165ef5..2b9398c: - > submodule commit -checking prerequisite: C_LOCALE_OUTPUT - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false - -) -prerequisite C_LOCALE_OUTPUT ok -Aborting commit due to empty commit message. -ok 8 - submodule log is stripped out too with -v - -expecting success of 7507.9 'verbose diff is stripped out with set core.commentChar': - ( - GIT_EDITOR=cat && - export GIT_EDITOR && - test_must_fail git -c core.commentchar=";" commit -a -v 2>err - ) && - test_i18ngrep "Aborting commit due to empty commit message." err - - -; Please enter the commit message for your changes. Lines starting -; with ';' will be ignored, and an empty message aborts the commit. -; -; Author: A U Thor -; -; On branch master -; Changes to be committed: -; modified: sub -; -; Untracked files: -; .gitconfig -; actual -; check-for-diff -; diff -; err -; message -; out -; -; ------------------------ >8 ------------------------ -; Do not modify or remove the line above. -; Everything below it will be ignored. -Submodule sub 5165ef5..2b9398c: - > submodule commit -Aborting commit due to empty commit message. -ok 9 - verbose diff is stripped out with set core.commentChar - -expecting success of 7507.10 'status does not verbose without --verbose': - git status >actual && - ! grep "^diff --git" actual - -ok 10 - status does not verbose without --verbose - -expecting success of 7507.11 'setup -v -v': - echo dirty >file - -ok 11 - setup -v -v - -expecting success of 7507.12 'commit.verbose=true and --verbose omitted': - git -c commit.verbose=true commit --amend && - test_line_count = 1 out - -[master 2f750a4] sub added - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 sub -ok 12 - commit.verbose=true and --verbose omitted - -expecting success of 7507.13 'commit.verbose=1 and --verbose omitted': - git -c commit.verbose=1 commit --amend && - test_line_count = 1 out - -[master 2f750a4] sub added - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 sub -ok 13 - commit.verbose=1 and --verbose omitted - -expecting success of 7507.14 'commit.verbose=false and --verbose omitted': - git -c commit.verbose=false commit --amend && - test_line_count = 0 out - -[master 2f750a4] sub added - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 sub -ok 14 - commit.verbose=false and --verbose omitted - -expecting success of 7507.15 'commit.verbose=-2 and --verbose omitted': - git -c commit.verbose=-2 commit --amend && - test_line_count = 0 out - -[master 2f750a4] sub added - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 sub -ok 15 - commit.verbose=-2 and --verbose omitted - -expecting success of 7507.16 'commit.verbose=-1 and --verbose omitted': - git -c commit.verbose=-1 commit --amend && - test_line_count = 0 out - -[master 2f750a4] sub added - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 sub -ok 16 - commit.verbose=-1 and --verbose omitted - -expecting success of 7507.17 'commit.verbose=0 and --verbose omitted': - git -c commit.verbose=0 commit --amend && - test_line_count = 0 out - -[master 2f750a4] sub added - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 sub -ok 17 - commit.verbose=0 and --verbose omitted - -expecting success of 7507.18 'commit.verbose=2 and --verbose omitted': - git -c commit.verbose=2 commit --amend && - test_line_count = 2 out - -[master 2f750a4] sub added - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 sub -ok 18 - commit.verbose=2 and --verbose omitted - -expecting success of 7507.19 'commit.verbose=3 and --verbose omitted': - git -c commit.verbose=3 commit --amend && - test_line_count = 2 out - -[master 2f750a4] sub added - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 sub -ok 19 - commit.verbose=3 and --verbose omitted - -expecting success of 7507.20 'commit.verbose=true and --verbose': - git -c commit.verbose=true commit --amend --verbose && - test_line_count = 1 out - -[master 2f750a4] sub added - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 sub -ok 20 - commit.verbose=true and --verbose - -expecting success of 7507.21 'commit.verbose=true and --no-verbose': - git -c commit.verbose=true commit --amend --no-verbose && - test_line_count = 0 out - -[master 2f750a4] sub added - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 sub -ok 21 - commit.verbose=true and --no-verbose - -expecting success of 7507.22 'commit.verbose=true and -v -v': - git -c commit.verbose=true commit --amend -v -v && - test_line_count = 2 out - -[master 2f750a4] sub added - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 sub -ok 22 - commit.verbose=true and -v -v - -expecting success of 7507.23 'commit.verbose=false and --verbose': - git -c commit.verbose=false commit --amend --verbose && - test_line_count = 1 out - -[master 2f750a4] sub added - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 sub -ok 23 - commit.verbose=false and --verbose - -expecting success of 7507.24 'commit.verbose=false and --no-verbose': - git -c commit.verbose=false commit --amend --no-verbose && - test_line_count = 0 out - -[master 2f750a4] sub added - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 sub -ok 24 - commit.verbose=false and --no-verbose - -expecting success of 7507.25 'commit.verbose=false and -v -v': - git -c commit.verbose=false commit --amend -v -v && - test_line_count = 2 out - -[master 2f750a4] sub added - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 sub -ok 25 - commit.verbose=false and -v -v - -expecting success of 7507.26 'commit.verbose=-2 and --verbose': - git -c commit.verbose=-2 commit --amend --verbose && - test_line_count = 1 out - -[master 2f750a4] sub added - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 sub -ok 26 - commit.verbose=-2 and --verbose - -expecting success of 7507.27 'commit.verbose=-2 and --no-verbose': - git -c commit.verbose=-2 commit --amend --no-verbose && - test_line_count = 0 out - -[master 2f750a4] sub added - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 sub -ok 27 - commit.verbose=-2 and --no-verbose - -expecting success of 7507.28 'commit.verbose=-2 and -v -v': - git -c commit.verbose=-2 commit --amend -v -v && - test_line_count = 2 out - -[master 2f750a4] sub added - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 sub -ok 28 - commit.verbose=-2 and -v -v - -expecting success of 7507.29 'commit.verbose=-1 and --verbose': - git -c commit.verbose=-1 commit --amend --verbose && - test_line_count = 1 out - -[master 2f750a4] sub added - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 sub -ok 29 - commit.verbose=-1 and --verbose - -expecting success of 7507.30 'commit.verbose=-1 and --no-verbose': - git -c commit.verbose=-1 commit --amend --no-verbose && - test_line_count = 0 out - -[master 2f750a4] sub added - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 sub -ok 30 - commit.verbose=-1 and --no-verbose - -expecting success of 7507.31 'commit.verbose=-1 and -v -v': - git -c commit.verbose=-1 commit --amend -v -v && - test_line_count = 2 out - -[master 2f750a4] sub added - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 sub -ok 31 - commit.verbose=-1 and -v -v - -expecting success of 7507.32 'commit.verbose=0 and --verbose': - git -c commit.verbose=0 commit --amend --verbose && - test_line_count = 1 out - -[master 2f750a4] sub added - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 sub -ok 32 - commit.verbose=0 and --verbose - -expecting success of 7507.33 'commit.verbose=0 and --no-verbose': - git -c commit.verbose=0 commit --amend --no-verbose && - test_line_count = 0 out - -[master 2f750a4] sub added - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 sub -ok 33 - commit.verbose=0 and --no-verbose - -expecting success of 7507.34 'commit.verbose=0 and -v -v': - git -c commit.verbose=0 commit --amend -v -v && - test_line_count = 2 out - -[master 2f750a4] sub added - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 sub -ok 34 - commit.verbose=0 and -v -v - -expecting success of 7507.35 'commit.verbose=1 and --verbose': - git -c commit.verbose=1 commit --amend --verbose && - test_line_count = 1 out - -[master 2f750a4] sub added - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 sub -ok 35 - commit.verbose=1 and --verbose - -expecting success of 7507.36 'commit.verbose=1 and --no-verbose': - git -c commit.verbose=1 commit --amend --no-verbose && - test_line_count = 0 out - -[master 2f750a4] sub added - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 sub -ok 36 - commit.verbose=1 and --no-verbose - -expecting success of 7507.37 'commit.verbose=1 and -v -v': - git -c commit.verbose=1 commit --amend -v -v && - test_line_count = 2 out - -[master 2f750a4] sub added - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 sub -ok 37 - commit.verbose=1 and -v -v - -expecting success of 7507.38 'commit.verbose=2 and --verbose': - git -c commit.verbose=2 commit --amend --verbose && - test_line_count = 1 out - -[master 2f750a4] sub added - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 sub -ok 38 - commit.verbose=2 and --verbose - -expecting success of 7507.39 'commit.verbose=2 and --no-verbose': - git -c commit.verbose=2 commit --amend --no-verbose && - test_line_count = 0 out - -[master 2f750a4] sub added - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 sub -ok 39 - commit.verbose=2 and --no-verbose - -expecting success of 7507.40 'commit.verbose=2 and -v -v': - git -c commit.verbose=2 commit --amend -v -v && - test_line_count = 2 out - -[master 2f750a4] sub added - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 sub -ok 40 - commit.verbose=2 and -v -v - -expecting success of 7507.41 'commit.verbose=3 and --verbose': - git -c commit.verbose=3 commit --amend --verbose && - test_line_count = 1 out - -[master 2f750a4] sub added - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 sub -ok 41 - commit.verbose=3 and --verbose - -expecting success of 7507.42 'commit.verbose=3 and --no-verbose': - git -c commit.verbose=3 commit --amend --no-verbose && - test_line_count = 0 out - -[master 2f750a4] sub added - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 sub -ok 42 - commit.verbose=3 and --no-verbose - -expecting success of 7507.43 'commit.verbose=3 and -v -v': - git -c commit.verbose=3 commit --amend -v -v && - test_line_count = 2 out - -[master 2f750a4] sub added - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 sub -ok 43 - commit.verbose=3 and -v -v - -expecting success of 7507.44 'status ignores commit.verbose=true': - git -c commit.verbose=true status >actual && - ! grep "^diff --git actual" - -ok 44 - status ignores commit.verbose=true - -# passed all 44 test(s) -1..44 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' *** t7509-commit-authorship.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7509-commit-authorship/.git/ expecting success of 7509.1 '-C option copies authorship and message': @@ -365792,6 +365625,173 @@ 1..21 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t7514-commit-patch.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7514-commit-patch/.git/ +expecting success of 7514.1 'setup (initial)': + echo line1 >file && + git add file && + git commit -m commit1 + +[master (root-commit) 8d800e1] commit1 + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file +ok 1 - setup (initial) + +expecting success of 7514.2 'edit hunk "commit -p -m message"': + test_when_finished "rm -f editor_was_started" && + rm -f editor_was_started && + echo more >>file && + echo e | env GIT_EDITOR=": >editor_was_started" git commit -p -m commit2 file && + test -r editor_was_started + +diff --git a/file b/file +index a29bdeb..3049d20 100644 +--- a/file ++++ b/file +@@ -1 +1,2 @@ + line1 ++more +(1/1) Stage this hunk [y,n,q,a,d,e,?]? +[master 1e5318c] commit2 + Author: A U Thor + 1 file changed, 1 insertion(+) +ok 2 - edit hunk "commit -p -m message" + +expecting success of 7514.3 'edit hunk "commit --dry-run -p -m message"': + test_when_finished "rm -f editor_was_started" && + rm -f editor_was_started && + echo more >>file && + echo e | env GIT_EDITOR=": >editor_was_started" git commit -p -m commit3 file && + test -r editor_was_started + +diff --git a/file b/file +index 3049d20..c1dcbdb 100644 +--- a/file ++++ b/file +@@ -1,2 +1,3 @@ + line1 + more ++more +(1/1) Stage this hunk [y,n,q,a,d,e,?]? +[master 0e7b2ea] commit3 + Author: A U Thor + 1 file changed, 1 insertion(+) +ok 3 - edit hunk "commit --dry-run -p -m message" + +# passed all 3 test(s) +1..3 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t7515-status-symlinks.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7515-status-symlinks/.git/ +expecting success of 7515.1 'setup': + echo .gitignore >.gitignore && + echo actual >>.gitignore && + echo expect >>.gitignore && + mkdir dir && + echo x >dir/file1 && + echo y >dir/file2 && + git add dir && + git commit -m initial && + git tag initial + +[master (root-commit) 1048606] initial + Author: A U Thor + 2 files changed, 2 insertions(+) + create mode 100644 dir/file1 + create mode 100644 dir/file2 +ok 1 - setup + +checking prerequisite: SYMLINKS + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && + # test whether the filesystem supports symbolic links + ln -s x y && test -h y + +) +prerequisite SYMLINKS ok +expecting success of 7515.2 'symlink to a directory': + test_when_finished "rm symlink" && + ln -s dir symlink && + echo "?? symlink" >expect && + git status --porcelain >actual && + test_cmp expect actual + +ok 2 - symlink to a directory + +expecting success of 7515.3 'symlink replacing a directory': + test_when_finished "rm -rf copy && git reset --hard initial" && + mkdir copy && + cp dir/file1 copy/file1 && + echo "changed in copy" >copy/file2 && + git add copy && + git commit -m second && + rm -rf copy && + ln -s dir copy && + echo " D copy/file1" >expect && + echo " D copy/file2" >>expect && + echo "?? copy" >>expect && + git status --porcelain >actual && + test_cmp expect actual + +[master a9708ba] second + Author: A U Thor + 2 files changed, 2 insertions(+) + create mode 100644 copy/file1 + create mode 100644 copy/file2 +HEAD is now at 1048606 initial +ok 3 - symlink replacing a directory + +# passed all 3 test(s) +1..3 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t7516-commit-races.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7516-commit-races/.git/ +expecting success of 7516.1 'race to create orphan commit': + write_script hare-editor <<-\EOF && + git commit --allow-empty -m hare + EOF + test_must_fail env EDITOR=./hare-editor git commit --allow-empty -m tortoise -e && + git show -s --pretty=format:%s >subject && + grep hare subject && + test -z "$(git show -s --pretty=format:%P)" + +[master (root-commit) ba9015c] hare + Author: A U Thor +fatal: cannot lock ref 'HEAD': reference already exists +hare +ok 1 - race to create orphan commit + +expecting success of 7516.2 'race to create non-orphan commit': + write_script airplane-editor <<-\EOF && + git commit --allow-empty -m airplane + EOF + git checkout --orphan branch && + git commit --allow-empty -m base && + git rev-parse HEAD >base && + test_must_fail env EDITOR=./airplane-editor git commit --allow-empty -m ship -e && + git show -s --pretty=format:%s >subject && + grep airplane subject && + git rev-parse HEAD^ >parent && + test_cmp base parent + +Switched to a new branch 'branch' +[branch (root-commit) a4b5938] base + Author: A U Thor +[branch 7381062] airplane + Author: A U Thor +fatal: cannot lock ref 'HEAD': is at 7381062986c200ad56d9a48e7a49719e434604a0 but expected a4b5938bdb0638bd7b0fd149a017cda4db88b551 +airplane +ok 2 - race to create non-orphan commit + +# passed all 2 test(s) +1..2 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t7513-interpret-trailers.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7513-interpret-trailers/.git/ expecting success of 7513.1 'setup': @@ -367400,171 +367400,80 @@ 1..82 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t7514-commit-patch.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7514-commit-patch/.git/ -expecting success of 7514.1 'setup (initial)': - echo line1 >file && - git add file && - git commit -m commit1 - -[master (root-commit) 8d800e1] commit1 - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -ok 1 - setup (initial) +*** t7518-ident-corner-cases.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7518-ident-corner-cases/.git/ +expecting success of 7518.1 'empty name and missing email': + ( + sane_unset GIT_AUTHOR_EMAIL && + GIT_AUTHOR_NAME= && + test_must_fail git commit --allow-empty -m foo 2>err && + test_i18ngrep ! "(null)" err + ) -expecting success of 7514.2 'edit hunk "commit -p -m message"': - test_when_finished "rm -f editor_was_started" && - rm -f editor_was_started && - echo more >>file && - echo e | env GIT_EDITOR=": >editor_was_started" git commit -p -m commit2 file && - test -r editor_was_started +checking prerequisite: C_LOCALE_OUTPUT -diff --git a/file b/file -index a29bdeb..3049d20 100644 ---- a/file -+++ b/file -@@ -1 +1,2 @@ - line1 -+more -(1/1) Stage this hunk [y,n,q,a,d,e,?]? -[master 1e5318c] commit2 - Author: A U Thor - 1 file changed, 1 insertion(+) -ok 2 - edit hunk "commit -p -m message" +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false -expecting success of 7514.3 'edit hunk "commit --dry-run -p -m message"': - test_when_finished "rm -f editor_was_started" && - rm -f editor_was_started && - echo more >>file && - echo e | env GIT_EDITOR=": >editor_was_started" git commit -p -m commit3 file && - test -r editor_was_started +) +prerequisite C_LOCALE_OUTPUT ok +ok 1 - empty name and missing email -diff --git a/file b/file -index 3049d20..c1dcbdb 100644 ---- a/file -+++ b/file -@@ -1,2 +1,3 @@ - line1 - more -+more -(1/1) Stage this hunk [y,n,q,a,d,e,?]? -[master 0e7b2ea] commit3 - Author: A U Thor - 1 file changed, 1 insertion(+) -ok 3 - edit hunk "commit --dry-run -p -m message" +expecting success of 7518.2 'commit rejects all-crud name': + test_must_fail env GIT_AUTHOR_NAME=" .;<>" \ + git commit --allow-empty -m foo -# passed all 3 test(s) -1..3 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t7515-status-symlinks.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7515-status-symlinks/.git/ -expecting success of 7515.1 'setup': - echo .gitignore >.gitignore && - echo actual >>.gitignore && - echo expect >>.gitignore && - mkdir dir && - echo x >dir/file1 && - echo y >dir/file2 && - git add dir && - git commit -m initial && - git tag initial +fatal: name consists only of disallowed characters: .;<> +ok 2 - commit rejects all-crud name -[master (root-commit) 1048606] initial - Author: A U Thor - 2 files changed, 2 insertions(+) - create mode 100644 dir/file1 - create mode 100644 dir/file2 -ok 1 - setup +expecting success of 7518.3 'empty configured name does not auto-detect': + ( + sane_unset GIT_AUTHOR_NAME && + test_must_fail \ + git -c user.name= commit --allow-empty -m foo 2>err && + test_i18ngrep "empty ident name" err && + test_i18ngrep "Author identity unknown" err + ) -checking prerequisite: SYMLINKS +checking prerequisite: C_LOCALE_OUTPUT -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && ( - cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && - # test whether the filesystem supports symbolic links - ln -s x y && test -h y + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false ) -prerequisite SYMLINKS ok -expecting success of 7515.2 'symlink to a directory': - test_when_finished "rm symlink" && - ln -s dir symlink && - echo "?? symlink" >expect && - git status --porcelain >actual && - test_cmp expect actual - -ok 2 - symlink to a directory - -expecting success of 7515.3 'symlink replacing a directory': - test_when_finished "rm -rf copy && git reset --hard initial" && - mkdir copy && - cp dir/file1 copy/file1 && - echo "changed in copy" >copy/file2 && - git add copy && - git commit -m second && - rm -rf copy && - ln -s dir copy && - echo " D copy/file1" >expect && - echo " D copy/file2" >>expect && - echo "?? copy" >>expect && - git status --porcelain >actual && - test_cmp expect actual - -[master a9708ba] second - Author: A U Thor - 2 files changed, 2 insertions(+) - create mode 100644 copy/file1 - create mode 100644 copy/file2 -HEAD is now at 1048606 initial -ok 3 - symlink replacing a directory +prerequisite C_LOCALE_OUTPUT ok +fatal: empty ident name (for ) not allowed +Author identity unknown +ok 3 - empty configured name does not auto-detect -# passed all 3 test(s) -1..3 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t7516-commit-races.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7516-commit-races/.git/ -expecting success of 7516.1 'race to create orphan commit': - write_script hare-editor <<-\EOF && - git commit --allow-empty -m hare - EOF - test_must_fail env EDITOR=./hare-editor git commit --allow-empty -m tortoise -e && - git show -s --pretty=format:%s >subject && - grep hare subject && - test -z "$(git show -s --pretty=format:%P)" +expecting success of 7518.4 'empty configured name does not auto-detect for committer': + ( + sane_unset GIT_COMMITTER_NAME && + test_must_fail \ + git -c user.name= commit --allow-empty -m foo 2>err && + test_i18ngrep "empty ident name" err && + test_i18ngrep "Committer identity unknown" err + ) -[master (root-commit) ba9015c] hare - Author: A U Thor -fatal: cannot lock ref 'HEAD': reference already exists -hare -ok 1 - race to create orphan commit +checking prerequisite: C_LOCALE_OUTPUT -expecting success of 7516.2 'race to create non-orphan commit': - write_script airplane-editor <<-\EOF && - git commit --allow-empty -m airplane - EOF - git checkout --orphan branch && - git commit --allow-empty -m base && - git rev-parse HEAD >base && - test_must_fail env EDITOR=./airplane-editor git commit --allow-empty -m ship -e && - git show -s --pretty=format:%s >subject && - grep airplane subject && - git rev-parse HEAD^ >parent && - test_cmp base parent +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false -Switched to a new branch 'branch' -[branch (root-commit) a4b5938] base - Author: A U Thor -[branch 7381062] airplane - Author: A U Thor -fatal: cannot lock ref 'HEAD': is at 7381062986c200ad56d9a48e7a49719e434604a0 but expected a4b5938bdb0638bd7b0fd149a017cda4db88b551 -airplane -ok 2 - race to create non-orphan commit +) +prerequisite C_LOCALE_OUTPUT ok +fatal: empty ident name (for ) not allowed +Committer identity unknown +ok 4 - empty configured name does not auto-detect for committer -# passed all 2 test(s) -1..2 +# passed all 4 test(s) +1..4 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' *** t7512-status-help.sh *** @@ -369352,43 +369261,24 @@ 1..44 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t7518-ident-corner-cases.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7518-ident-corner-cases/.git/ -expecting success of 7518.1 'empty name and missing email': - ( - sane_unset GIT_AUTHOR_EMAIL && - GIT_AUTHOR_NAME= && - test_must_fail git commit --allow-empty -m foo 2>err && - test_i18ngrep ! "(null)" err - ) - -checking prerequisite: C_LOCALE_OUTPUT - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false - -) -prerequisite C_LOCALE_OUTPUT ok -ok 1 - empty name and missing email - -expecting success of 7518.2 'commit rejects all-crud name': - test_must_fail env GIT_AUTHOR_NAME=" .;<>" \ - git commit --allow-empty -m foo +*** t7520-ignored-hook-warning.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7520-ignored-hook-warning/.git/ +expecting success of 7520.1 'setup': + hookdir="$(git rev-parse --git-dir)/hooks" && + hook="$hookdir/pre-commit" && + mkdir -p "$hookdir" && + write_script "$hook" <<-\EOF + exit 0 + EOF -fatal: name consists only of disallowed characters: .;<> -ok 2 - commit rejects all-crud name +ok 1 - setup -expecting success of 7518.3 'empty configured name does not auto-detect': - ( - sane_unset GIT_AUTHOR_NAME && - test_must_fail \ - git -c user.name= commit --allow-empty -m foo 2>err && - test_i18ngrep "empty ident name" err && - test_i18ngrep "Author identity unknown" err - ) +expecting success of 7520.2 'no warning if hook is not ignored': + git commit --allow-empty -m "more" 2>message && + test_i18ngrep ! -e "hook was ignored" message +[master (root-commit) 4140ed5] more + Author: A U Thor checking prerequisite: C_LOCALE_OUTPUT mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && @@ -369398,34 +369288,40 @@ ) prerequisite C_LOCALE_OUTPUT ok -fatal: empty ident name (for ) not allowed -Author identity unknown -ok 3 - empty configured name does not auto-detect +ok 2 - no warning if hook is not ignored -expecting success of 7518.4 'empty configured name does not auto-detect for committer': - ( - sane_unset GIT_COMMITTER_NAME && - test_must_fail \ - git -c user.name= commit --allow-empty -m foo 2>err && - test_i18ngrep "empty ident name" err && - test_i18ngrep "Committer identity unknown" err - ) +expecting success of 7520.3 'warning if hook is ignored': + chmod -x "$hook" && + git commit --allow-empty -m "even more" 2>message && + test_i18ngrep -e "hook was ignored" message -checking prerequisite: C_LOCALE_OUTPUT +[master d262933] even more + Author: A U Thor +hint: The '.git/hooks/pre-commit' hook was ignored because it's not set as executable. +ok 3 - warning if hook is ignored -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false +expecting success of 7520.4 'no warning if advice.ignoredHook set to false': + test_config advice.ignoredHook false && + chmod -x "$hook" && + git commit --allow-empty -m "even more" 2>message && + test_i18ngrep ! -e "hook was ignored" message -) -prerequisite C_LOCALE_OUTPUT ok -fatal: empty ident name (for ) not allowed -Committer identity unknown -ok 4 - empty configured name does not auto-detect for committer +[master 9fbd7b1] even more + Author: A U Thor +ok 4 - no warning if advice.ignoredHook set to false -# passed all 4 test(s) -1..4 +expecting success of 7520.5 'no warning if unset advice.ignoredHook and hook removed': + rm -f "$hook" && + test_unconfig advice.ignoredHook && + git commit --allow-empty -m "even more" 2>message && + test_i18ngrep ! -e "hook was ignored" message + +[master f4891a6] even more + Author: A U Thor +ok 5 - no warning if unset advice.ignoredHook and hook removed + +# passed all 5 test(s) +1..5 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' *** t7517-per-repo-email.sh *** @@ -369724,69 +369620,6 @@ 1..18 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t7520-ignored-hook-warning.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7520-ignored-hook-warning/.git/ -expecting success of 7520.1 'setup': - hookdir="$(git rev-parse --git-dir)/hooks" && - hook="$hookdir/pre-commit" && - mkdir -p "$hookdir" && - write_script "$hook" <<-\EOF - exit 0 - EOF - -ok 1 - setup - -expecting success of 7520.2 'no warning if hook is not ignored': - git commit --allow-empty -m "more" 2>message && - test_i18ngrep ! -e "hook was ignored" message - -[master (root-commit) 4140ed5] more - Author: A U Thor -checking prerequisite: C_LOCALE_OUTPUT - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false - -) -prerequisite C_LOCALE_OUTPUT ok -ok 2 - no warning if hook is not ignored - -expecting success of 7520.3 'warning if hook is ignored': - chmod -x "$hook" && - git commit --allow-empty -m "even more" 2>message && - test_i18ngrep -e "hook was ignored" message - -[master d262933] even more - Author: A U Thor -hint: The '.git/hooks/pre-commit' hook was ignored because it's not set as executable. -ok 3 - warning if hook is ignored - -expecting success of 7520.4 'no warning if advice.ignoredHook set to false': - test_config advice.ignoredHook false && - chmod -x "$hook" && - git commit --allow-empty -m "even more" 2>message && - test_i18ngrep ! -e "hook was ignored" message - -[master 9fbd7b1] even more - Author: A U Thor -ok 4 - no warning if advice.ignoredHook set to false - -expecting success of 7520.5 'no warning if unset advice.ignoredHook and hook removed': - rm -f "$hook" && - test_unconfig advice.ignoredHook && - git commit --allow-empty -m "even more" 2>message && - test_i18ngrep ! -e "hook was ignored" message - -[master f4891a6] even more - Author: A U Thor -ok 5 - no warning if unset advice.ignoredHook and hook removed - -# passed all 5 test(s) -1..5 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' *** t7521-ignored-mode.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7521-ignored-mode/.git/ expecting success of 7521.1 'setup initial commit and ignore file': @@ -370113,6 +369946,173 @@ 1..12 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t7525-status-rename.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7525-status-rename/.git/ +expecting success of 7525.1 'setup': + echo 1 >original && + git add . && + git commit -m"Adding original file." && + mv original renamed && + echo 2 >> renamed && + git add . && + cat >.gitignore <<-\EOF + .gitignore + expect* + actual* + EOF + +[master (root-commit) 8050378] Adding original file. + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 original +ok 1 - setup + +expecting success of 7525.2 'status no-options': + git status >actual && + test_i18ngrep "renamed:" actual + +checking prerequisite: C_LOCALE_OUTPUT + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false + +) +prerequisite C_LOCALE_OUTPUT ok + renamed: original -> renamed +ok 2 - status no-options + +expecting success of 7525.3 'status --no-renames': + git status --no-renames >actual && + test_i18ngrep "deleted:" actual && + test_i18ngrep "new file:" actual + + deleted: original + new file: renamed +ok 3 - status --no-renames + +expecting success of 7525.4 'status.renames inherits from diff.renames false': + git -c diff.renames=false status >actual && + test_i18ngrep "deleted:" actual && + test_i18ngrep "new file:" actual + + deleted: original + new file: renamed +ok 4 - status.renames inherits from diff.renames false + +expecting success of 7525.5 'status.renames inherits from diff.renames true': + git -c diff.renames=true status >actual && + test_i18ngrep "renamed:" actual + + renamed: original -> renamed +ok 5 - status.renames inherits from diff.renames true + +expecting success of 7525.6 'status.renames overrides diff.renames false': + git -c diff.renames=true -c status.renames=false status >actual && + test_i18ngrep "deleted:" actual && + test_i18ngrep "new file:" actual + + deleted: original + new file: renamed +ok 6 - status.renames overrides diff.renames false + +expecting success of 7525.7 'status.renames overrides from diff.renames true': + git -c diff.renames=false -c status.renames=true status >actual && + test_i18ngrep "renamed:" actual + + renamed: original -> renamed +ok 7 - status.renames overrides from diff.renames true + +expecting success of 7525.8 'status status.renames=false': + git -c status.renames=false status >actual && + test_i18ngrep "deleted:" actual && + test_i18ngrep "new file:" actual + + deleted: original + new file: renamed +ok 8 - status status.renames=false + +expecting success of 7525.9 'status status.renames=true': + git -c status.renames=true status >actual && + test_i18ngrep "renamed:" actual + + renamed: original -> renamed +ok 9 - status status.renames=true + +expecting success of 7525.10 'commit honors status.renames=false': + git -c status.renames=false commit --dry-run >actual && + test_i18ngrep "deleted:" actual && + test_i18ngrep "new file:" actual + + deleted: original + new file: renamed +ok 10 - commit honors status.renames=false + +expecting success of 7525.11 'commit honors status.renames=true': + git -c status.renames=true commit --dry-run >actual && + test_i18ngrep "renamed:" actual + + renamed: original -> renamed +ok 11 - commit honors status.renames=true + +expecting success of 7525.12 'status config overridden': + git -c status.renames=true status --no-renames >actual && + test_i18ngrep "deleted:" actual && + test_i18ngrep "new file:" actual + + deleted: original + new file: renamed +ok 12 - status config overridden + +expecting success of 7525.13 'status score=100%': + git status -M=100% >actual && + test_i18ngrep "deleted:" actual && + test_i18ngrep "new file:" actual && + + git status --find-renames=100% >actual && + test_i18ngrep "deleted:" actual && + test_i18ngrep "new file:" actual + + deleted: original + new file: renamed + deleted: original + new file: renamed +ok 13 - status score=100% + +expecting success of 7525.14 'status score=01%': + git status -M=01% >actual && + test_i18ngrep "renamed:" actual && + + git status --find-renames=01% >actual && + test_i18ngrep "renamed:" actual + + renamed: original -> renamed + renamed: original -> renamed +ok 14 - status score=01% + +expecting success of 7525.15 'copies not overridden by find-renames': + cp renamed copy && + git add copy && + + git -c status.renames=copies status -M=01% >actual && + test_i18ngrep "copied:" actual && + test_i18ngrep "renamed:" actual && + + git -c status.renames=copies status --find-renames=01% >actual && + test_i18ngrep "copied:" actual && + test_i18ngrep "renamed:" actual + + copied: original -> copy + renamed: original -> renamed + copied: original -> copy + renamed: original -> renamed +ok 15 - copies not overridden by find-renames + +# passed all 15 test(s) +1..15 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t7519-status-fsmonitor.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7519-status-fsmonitor/.git/ expecting success of 7519.1 'setup': @@ -370160,7 +370160,7 @@ fatal: cannot run .git/hooks/fsmonitor-test: No such file or directory fatal: cannot run .git/hooks/fsmonitor-test: No such file or directory -fsmonitor last update 1682786724122824587 +fsmonitor last update 1682793415433287495 ok 3 - update-index --fsmonitor" adds the fsmonitor extension expecting success of 7519.4 'update-index --no-fsmonitor" removes the fsmonitor extension': @@ -370564,7 +370564,7 @@ fsmonitor last update last_update_token ------ fsmonitor last update last_update_token - +--- ok 26 - splitting the index results in the same state expecting success of 7519.27 'ignore .git changes when invalidating UNTR': @@ -370777,173 +370777,6 @@ 1..29 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t7525-status-rename.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7525-status-rename/.git/ -expecting success of 7525.1 'setup': - echo 1 >original && - git add . && - git commit -m"Adding original file." && - mv original renamed && - echo 2 >> renamed && - git add . && - cat >.gitignore <<-\EOF - .gitignore - expect* - actual* - EOF - -[master (root-commit) 8050378] Adding original file. - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 original -ok 1 - setup - -expecting success of 7525.2 'status no-options': - git status >actual && - test_i18ngrep "renamed:" actual - -checking prerequisite: C_LOCALE_OUTPUT - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false - -) -prerequisite C_LOCALE_OUTPUT ok - renamed: original -> renamed -ok 2 - status no-options - -expecting success of 7525.3 'status --no-renames': - git status --no-renames >actual && - test_i18ngrep "deleted:" actual && - test_i18ngrep "new file:" actual - - deleted: original - new file: renamed -ok 3 - status --no-renames - -expecting success of 7525.4 'status.renames inherits from diff.renames false': - git -c diff.renames=false status >actual && - test_i18ngrep "deleted:" actual && - test_i18ngrep "new file:" actual - - deleted: original - new file: renamed -ok 4 - status.renames inherits from diff.renames false - -expecting success of 7525.5 'status.renames inherits from diff.renames true': - git -c diff.renames=true status >actual && - test_i18ngrep "renamed:" actual - - renamed: original -> renamed -ok 5 - status.renames inherits from diff.renames true - -expecting success of 7525.6 'status.renames overrides diff.renames false': - git -c diff.renames=true -c status.renames=false status >actual && - test_i18ngrep "deleted:" actual && - test_i18ngrep "new file:" actual - - deleted: original - new file: renamed -ok 6 - status.renames overrides diff.renames false - -expecting success of 7525.7 'status.renames overrides from diff.renames true': - git -c diff.renames=false -c status.renames=true status >actual && - test_i18ngrep "renamed:" actual - - renamed: original -> renamed -ok 7 - status.renames overrides from diff.renames true - -expecting success of 7525.8 'status status.renames=false': - git -c status.renames=false status >actual && - test_i18ngrep "deleted:" actual && - test_i18ngrep "new file:" actual - - deleted: original - new file: renamed -ok 8 - status status.renames=false - -expecting success of 7525.9 'status status.renames=true': - git -c status.renames=true status >actual && - test_i18ngrep "renamed:" actual - - renamed: original -> renamed -ok 9 - status status.renames=true - -expecting success of 7525.10 'commit honors status.renames=false': - git -c status.renames=false commit --dry-run >actual && - test_i18ngrep "deleted:" actual && - test_i18ngrep "new file:" actual - - deleted: original - new file: renamed -ok 10 - commit honors status.renames=false - -expecting success of 7525.11 'commit honors status.renames=true': - git -c status.renames=true commit --dry-run >actual && - test_i18ngrep "renamed:" actual - - renamed: original -> renamed -ok 11 - commit honors status.renames=true - -expecting success of 7525.12 'status config overridden': - git -c status.renames=true status --no-renames >actual && - test_i18ngrep "deleted:" actual && - test_i18ngrep "new file:" actual - - deleted: original - new file: renamed -ok 12 - status config overridden - -expecting success of 7525.13 'status score=100%': - git status -M=100% >actual && - test_i18ngrep "deleted:" actual && - test_i18ngrep "new file:" actual && - - git status --find-renames=100% >actual && - test_i18ngrep "deleted:" actual && - test_i18ngrep "new file:" actual - - deleted: original - new file: renamed - deleted: original - new file: renamed -ok 13 - status score=100% - -expecting success of 7525.14 'status score=01%': - git status -M=01% >actual && - test_i18ngrep "renamed:" actual && - - git status --find-renames=01% >actual && - test_i18ngrep "renamed:" actual - - renamed: original -> renamed - renamed: original -> renamed -ok 14 - status score=01% - -expecting success of 7525.15 'copies not overridden by find-renames': - cp renamed copy && - git add copy && - - git -c status.renames=copies status -M=01% >actual && - test_i18ngrep "copied:" actual && - test_i18ngrep "renamed:" actual && - - git -c status.renames=copies status --find-renames=01% >actual && - test_i18ngrep "copied:" actual && - test_i18ngrep "renamed:" actual - - copied: original -> copy - renamed: original -> renamed - copied: original -> copy - renamed: original -> renamed -ok 15 - copies not overridden by find-renames - -# passed all 15 test(s) -1..15 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' *** t7526-commit-pathspec-file.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7526-commit-pathspec-file/.git/ expecting success of 7526.1 'setup': @@ -372701,8 +372534,8 @@ git -c status.branch=true status -s >actual && ! test_cmp expected_nobranch actual ---- expected_nobranch 2023-04-29 16:45:28.819036726 +0000 -+++ actual 2023-04-29 16:45:28.859032810 +0000 +--- expected_nobranch 2023-04-29 18:37:09.717529813 +0000 ++++ actual 2023-04-29 18:37:09.813520738 +0000 @@ -1,2 +1,3 @@ +## master...upstream [ahead 2, behind 2] M dir1/modified @@ -373454,6 +373287,184 @@ 1..23 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t7604-merge-custom-message.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7604-merge-custom-message/.git/ +expecting success of 7604.1 'setup': + echo c0 >c0.c && + git add c0.c && + git commit -m c0 && + git tag c0 && + echo c1 >c1.c && + git add c1.c && + git commit -m c1 && + git tag c1 && + git reset --hard c0 && + echo c2 >c2.c && + git add c2.c && + git commit -m c2 && + git tag c2 && + create_merge_msgs + +[master (root-commit) e4f5a3c] c0 + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 c0.c +[master 429abf0] c1 + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 c1.c +HEAD is now at e4f5a3c c0 +[master 028ea41] c2 + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 c2.c +ok 1 - setup + +expecting success of 7604.2 'merge c2 with a custom message': + git reset --hard c1 && + git merge -m "$(cat exp.subject)" c2 && + git cat-file commit HEAD >raw && + sed -e "1,/^$/d" raw >actual && + test_cmp exp.subject actual + +HEAD is now at 429abf0 c1 +Merging: +429abf0 c1 +virtual c2 +found 1 common ancestor: +e4f5a3c c0 +Merge made by the 'recursive' strategy. + c2.c | 1 + + 1 file changed, 1 insertion(+) + create mode 100644 c2.c +ok 2 - merge c2 with a custom message + +expecting success of 7604.3 'merge --log appends to custom message': + git reset --hard c1 && + git merge --log -m "$(cat exp.subject)" c2 && + git cat-file commit HEAD >raw && + sed -e "1,/^$/d" raw >actual && + test_cmp exp.log actual + +HEAD is now at 429abf0 c1 +Merging: +429abf0 c1 +virtual c2 +found 1 common ancestor: +e4f5a3c c0 +Merge made by the 'recursive' strategy. + c2.c | 1 + + 1 file changed, 1 insertion(+) + create mode 100644 c2.c +ok 3 - merge --log appends to custom message + +expecting success of 7604.4 'prepare file with comment line and trailing newlines': + printf "%s" "$mesg_with_comment_and_newlines" >expect + +ok 4 - prepare file with comment line and trailing newlines + +expecting success of 7604.5 'cleanup commit messages (verbatim option)': + git reset --hard c1 && + git merge --cleanup=verbatim -F expect c2 && + git cat-file commit HEAD >raw && + sed -e "1,/^$/d" raw >actual && + test_cmp expect actual + +HEAD is now at 429abf0 c1 +Merging: +429abf0 c1 +virtual c2 +found 1 common ancestor: +e4f5a3c c0 +Merge made by the 'recursive' strategy. + c2.c | 1 + + 1 file changed, 1 insertion(+) + create mode 100644 c2.c +ok 5 - cleanup commit messages (verbatim option) + +expecting success of 7604.6 'cleanup commit messages (whitespace option)': + git reset --hard c1 && + test_write_lines "" "# text" "" >text && + echo "# text" >expect && + git merge --cleanup=whitespace -F text c2 && + git cat-file commit HEAD >raw && + sed -e "1,/^$/d" raw >actual && + test_cmp expect actual + +HEAD is now at 429abf0 c1 +Merging: +429abf0 c1 +virtual c2 +found 1 common ancestor: +e4f5a3c c0 +Merge made by the 'recursive' strategy. + c2.c | 1 + + 1 file changed, 1 insertion(+) + create mode 100644 c2.c +ok 6 - cleanup commit messages (whitespace option) + +expecting success of 7604.7 'cleanup merge messages (scissors option)': + git reset --hard c1 && + cat >text <<-\EOF && + + # to be kept + + # ------------------------ >8 ------------------------ + # to be kept, too + # ------------------------ >8 ------------------------ + to be removed + # ------------------------ >8 ------------------------ + to be removed, too + EOF + + cat >expect <<-\EOF && + # to be kept + + # ------------------------ >8 ------------------------ + # to be kept, too + EOF + git merge --cleanup=scissors -e -F text c2 && + git cat-file commit HEAD >raw && + sed -e "1,/^$/d" raw >actual && + test_cmp expect actual + +HEAD is now at 429abf0 c1 +Merging: +429abf0 c1 +virtual c2 +found 1 common ancestor: +e4f5a3c c0 +Merge made by the 'recursive' strategy. + c2.c | 1 + + 1 file changed, 1 insertion(+) + create mode 100644 c2.c +ok 7 - cleanup merge messages (scissors option) + +expecting success of 7604.8 'cleanup commit messages (strip option)': + git reset --hard c1 && + test_write_lines "" "# text" "sample" "" >text && + echo sample >expect && + git merge --cleanup=strip -F text c2 && + git cat-file commit HEAD >raw && + sed -e "1,/^$/d" raw >actual && + test_cmp expect actual + +HEAD is now at 429abf0 c1 +Merging: +429abf0 c1 +virtual c2 +found 1 common ancestor: +e4f5a3c c0 +Merge made by the 'recursive' strategy. + c2.c | 1 + + 1 file changed, 1 insertion(+) + create mode 100644 c2.c +ok 8 - cleanup commit messages (strip option) + +# passed all 8 test(s) +1..8 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t7602-merge-octopus-many.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7602-merge-octopus-many/.git/ expecting success of 7602.1 'setup': @@ -373786,23 +373797,27 @@ 1..5 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t7604-merge-custom-message.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7604-merge-custom-message/.git/ -expecting success of 7604.1 'setup': - echo c0 >c0.c && +*** t7605-merge-resolve.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7605-merge-resolve/.git/ +expecting success of 7605.1 'setup': + echo c0 > c0.c && git add c0.c && git commit -m c0 && git tag c0 && - echo c1 >c1.c && + echo c1 > c1.c && git add c1.c && git commit -m c1 && git tag c1 && git reset --hard c0 && - echo c2 >c2.c && + echo c2 > c2.c && git add c2.c && git commit -m c2 && git tag c2 && - create_merge_msgs + git reset --hard c0 && + echo c3 > c2.c && + git add c2.c && + git commit -m c3 && + git tag c3 [master (root-commit) e4f5a3c] c0 Author: A U Thor @@ -373817,151 +373832,202 @@ Author: A U Thor 1 file changed, 1 insertion(+) create mode 100644 c2.c +HEAD is now at e4f5a3c c0 +[master c984a5f] c3 + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 c2.c ok 1 - setup -expecting success of 7604.2 'merge c2 with a custom message': +expecting success of 7605.2 'merge c1 to c2': git reset --hard c1 && - git merge -m "$(cat exp.subject)" c2 && - git cat-file commit HEAD >raw && - sed -e "1,/^$/d" raw >actual && - test_cmp exp.subject actual + git merge -s resolve c2 && + test "$(git rev-parse c1)" != "$(git rev-parse HEAD)" && + test "$(git rev-parse c1)" = "$(git rev-parse HEAD^1)" && + test "$(git rev-parse c2)" = "$(git rev-parse HEAD^2)" && + git diff --exit-code && + test -f c0.c && + test -f c1.c && + test -f c2.c && + test 3 = $(git ls-tree -r HEAD | wc -l) && + test 3 = $(git ls-files | wc -l) HEAD is now at 429abf0 c1 -Merging: -429abf0 c1 -virtual c2 -found 1 common ancestor: -e4f5a3c c0 -Merge made by the 'recursive' strategy. +Trying really trivial in-index merge... +Wonderful. +In-index merge c2.c | 1 + 1 file changed, 1 insertion(+) create mode 100644 c2.c -ok 2 - merge c2 with a custom message +ok 2 - merge c1 to c2 -expecting success of 7604.3 'merge --log appends to custom message': +expecting success of 7605.3 'merge c1 to c2, again': git reset --hard c1 && - git merge --log -m "$(cat exp.subject)" c2 && - git cat-file commit HEAD >raw && - sed -e "1,/^$/d" raw >actual && - test_cmp exp.log actual + git merge -s resolve c2 && + test "$(git rev-parse c1)" != "$(git rev-parse HEAD)" && + test "$(git rev-parse c1)" = "$(git rev-parse HEAD^1)" && + test "$(git rev-parse c2)" = "$(git rev-parse HEAD^2)" && + git diff --exit-code && + test -f c0.c && + test -f c1.c && + test -f c2.c && + test 3 = $(git ls-tree -r HEAD | wc -l) && + test 3 = $(git ls-files | wc -l) HEAD is now at 429abf0 c1 -Merging: -429abf0 c1 -virtual c2 -found 1 common ancestor: -e4f5a3c c0 -Merge made by the 'recursive' strategy. +Trying really trivial in-index merge... +Wonderful. +In-index merge c2.c | 1 + 1 file changed, 1 insertion(+) create mode 100644 c2.c -ok 3 - merge --log appends to custom message +ok 3 - merge c1 to c2, again -expecting success of 7604.4 'prepare file with comment line and trailing newlines': - printf "%s" "$mesg_with_comment_and_newlines" >expect +expecting success of 7605.4 'merge c2 to c3 (fails)': + git reset --hard c2 && + test_must_fail git merge -s resolve c3 -ok 4 - prepare file with comment line and trailing newlines +HEAD is now at 028ea41 c2 +error: Merge requires file-level merging +Trying really trivial in-index merge... +Nope. +Trying simple merge. +Simple merge failed, trying Automatic merge. +Added c2.c in both, but differently. +fatal: unable to read blob object e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 +error: Could not stat : No such file or directory +ERROR: content conflict in c2.c +fatal: merge program failed +Automatic merge failed; fix conflicts and then commit the result. +ok 4 - merge c2 to c3 (fails) -expecting success of 7604.5 'cleanup commit messages (verbatim option)': - git reset --hard c1 && - git merge --cleanup=verbatim -F expect c2 && - git cat-file commit HEAD >raw && - sed -e "1,/^$/d" raw >actual && - test_cmp expect actual +# passed all 4 test(s) +1..4 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t7606-merge-custom.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7606-merge-custom/.git/ +expecting success of 7606.1 'set up custom strategy': + cat >git-merge-theirs <<-EOF && + #!$SHELL_PATH + eval git read-tree --reset -u \\\$\$# + EOF -HEAD is now at 429abf0 c1 -Merging: -429abf0 c1 -virtual c2 -found 1 common ancestor: -e4f5a3c c0 -Merge made by the 'recursive' strategy. - c2.c | 1 + - 1 file changed, 1 insertion(+) - create mode 100644 c2.c -ok 5 - cleanup commit messages (verbatim option) + chmod +x git-merge-theirs && + PATH=.:$PATH && + export PATH -expecting success of 7604.6 'cleanup commit messages (whitespace option)': - git reset --hard c1 && - test_write_lines "" "# text" "" >text && - echo "# text" >expect && - git merge --cleanup=whitespace -F text c2 && - git cat-file commit HEAD >raw && - sed -e "1,/^$/d" raw >actual && - test_cmp expect actual +ok 1 - set up custom strategy -HEAD is now at 429abf0 c1 -Merging: -429abf0 c1 -virtual c2 -found 1 common ancestor: -e4f5a3c c0 -Merge made by the 'recursive' strategy. - c2.c | 1 + +expecting success of 7606.2 'setup': + test_commit c0 c0.c && + test_commit c1 c1.c && + git reset --keep c0 && + echo c1c1 >c1.c && + git add c1.c && + test_commit c2 c2.c && + git reset --keep c0 && + test_commit c3 c3.c + +[master (root-commit) 934056f] c0 + Author: A U Thor 1 file changed, 1 insertion(+) + create mode 100644 c0.c +[master 7b51d7c] c1 + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 c1.c +[master f06910a] c2 + Author: A U Thor + 2 files changed, 2 insertions(+) + create mode 100644 c1.c create mode 100644 c2.c -ok 6 - cleanup commit messages (whitespace option) +[master 934e277] c3 + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 c3.c +ok 2 - setup -expecting success of 7604.7 'cleanup merge messages (scissors option)': +expecting success of 7606.3 'merge c2 with a custom strategy': git reset --hard c1 && - cat >text <<-\EOF && - - # to be kept - # ------------------------ >8 ------------------------ - # to be kept, too - # ------------------------ >8 ------------------------ - to be removed - # ------------------------ >8 ------------------------ - to be removed, too - EOF + git rev-parse c1 >head.old && + git rev-parse c2 >second-parent.expected && + git rev-parse c2^{tree} >tree.expected && + git merge -s theirs c2 && - cat >expect <<-\EOF && - # to be kept + git rev-parse HEAD >head.new && + git rev-parse HEAD^1 >first-parent && + git rev-parse HEAD^2 >second-parent && + git rev-parse HEAD^{tree} >tree && + git update-index --refresh && + git diff --exit-code && + git diff --exit-code c2 HEAD && + git diff --exit-code c2 && - # ------------------------ >8 ------------------------ - # to be kept, too - EOF - git merge --cleanup=scissors -e -F text c2 && - git cat-file commit HEAD >raw && - sed -e "1,/^$/d" raw >actual && - test_cmp expect actual + ! test_cmp head.old head.new && + test_cmp head.old first-parent && + test_cmp second-parent.expected second-parent && + test_cmp tree.expected tree && + test -f c0.c && + grep c1c1 c1.c && + test -f c2.c -HEAD is now at 429abf0 c1 -Merging: -429abf0 c1 -virtual c2 -found 1 common ancestor: -e4f5a3c c0 -Merge made by the 'recursive' strategy. +HEAD is now at 7b51d7c c1 +Merge made by the 'theirs' strategy. + c1.c | 2 +- c2.c | 1 + - 1 file changed, 1 insertion(+) + 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 c2.c -ok 7 - cleanup merge messages (scissors option) +--- head.old 2023-04-29 18:37:38.542804826 +0000 ++++ head.new 2023-04-29 18:37:38.854775335 +0000 +@@ -1 +1 @@ +-7b51d7cdbd54b8c470d864639e1136d88ce718ef ++5127482d58f03334905cdbe3564c8d092aa56dbe +c1c1 +ok 3 - merge c2 with a custom strategy -expecting success of 7604.8 'cleanup commit messages (strip option)': +expecting success of 7606.4 'trivial merge with custom strategy': git reset --hard c1 && - test_write_lines "" "# text" "sample" "" >text && - echo sample >expect && - git merge --cleanup=strip -F text c2 && - git cat-file commit HEAD >raw && - sed -e "1,/^$/d" raw >actual && - test_cmp expect actual -HEAD is now at 429abf0 c1 -Merging: -429abf0 c1 -virtual c2 -found 1 common ancestor: -e4f5a3c c0 -Merge made by the 'recursive' strategy. - c2.c | 1 + - 1 file changed, 1 insertion(+) - create mode 100644 c2.c -ok 8 - cleanup commit messages (strip option) + git rev-parse c1 >head.old && + git rev-parse c3 >second-parent.expected && + git rev-parse c3^{tree} >tree.expected && + git merge -s theirs c3 && -# passed all 8 test(s) -1..8 + git rev-parse HEAD >head.new && + git rev-parse HEAD^1 >first-parent && + git rev-parse HEAD^2 >second-parent && + git rev-parse HEAD^{tree} >tree && + git update-index --refresh && + git diff --exit-code && + git diff --exit-code c3 HEAD && + git diff --exit-code c3 && + + ! test_cmp head.old head.new && + test_cmp head.old first-parent && + test_cmp second-parent.expected second-parent && + test_cmp tree.expected tree && + test -f c0.c && + ! test -e c1.c && + test -f c3.c + +HEAD is now at 7b51d7c c1 +Merge made by the 'theirs' strategy. + c1.c | 1 - + c3.c | 1 + + 2 files changed, 1 insertion(+), 1 deletion(-) + delete mode 100644 c1.c + create mode 100644 c3.c +--- head.old 2023-04-29 18:37:39.446719376 +0000 ++++ head.new 2023-04-29 18:37:39.770688750 +0000 +@@ -1 +1 @@ +-7b51d7cdbd54b8c470d864639e1136d88ce718ef ++f5f2abda42595469639ae786a37808202e35dcf0 +ok 4 - trivial merge with custom strategy + +# passed all 4 test(s) +1..4 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' *** t7603-merge-reduce-heads.sh *** @@ -374299,239 +374365,6 @@ 1..13 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t7605-merge-resolve.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7605-merge-resolve/.git/ -expecting success of 7605.1 'setup': - echo c0 > c0.c && - git add c0.c && - git commit -m c0 && - git tag c0 && - echo c1 > c1.c && - git add c1.c && - git commit -m c1 && - git tag c1 && - git reset --hard c0 && - echo c2 > c2.c && - git add c2.c && - git commit -m c2 && - git tag c2 && - git reset --hard c0 && - echo c3 > c2.c && - git add c2.c && - git commit -m c3 && - git tag c3 - -[master (root-commit) e4f5a3c] c0 - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 c0.c -[master 429abf0] c1 - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 c1.c -HEAD is now at e4f5a3c c0 -[master 028ea41] c2 - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 c2.c -HEAD is now at e4f5a3c c0 -[master c984a5f] c3 - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 c2.c -ok 1 - setup - -expecting success of 7605.2 'merge c1 to c2': - git reset --hard c1 && - git merge -s resolve c2 && - test "$(git rev-parse c1)" != "$(git rev-parse HEAD)" && - test "$(git rev-parse c1)" = "$(git rev-parse HEAD^1)" && - test "$(git rev-parse c2)" = "$(git rev-parse HEAD^2)" && - git diff --exit-code && - test -f c0.c && - test -f c1.c && - test -f c2.c && - test 3 = $(git ls-tree -r HEAD | wc -l) && - test 3 = $(git ls-files | wc -l) - -HEAD is now at 429abf0 c1 -Trying really trivial in-index merge... -Wonderful. -In-index merge - c2.c | 1 + - 1 file changed, 1 insertion(+) - create mode 100644 c2.c -ok 2 - merge c1 to c2 - -expecting success of 7605.3 'merge c1 to c2, again': - git reset --hard c1 && - git merge -s resolve c2 && - test "$(git rev-parse c1)" != "$(git rev-parse HEAD)" && - test "$(git rev-parse c1)" = "$(git rev-parse HEAD^1)" && - test "$(git rev-parse c2)" = "$(git rev-parse HEAD^2)" && - git diff --exit-code && - test -f c0.c && - test -f c1.c && - test -f c2.c && - test 3 = $(git ls-tree -r HEAD | wc -l) && - test 3 = $(git ls-files | wc -l) - -HEAD is now at 429abf0 c1 -Trying really trivial in-index merge... -Wonderful. -In-index merge - c2.c | 1 + - 1 file changed, 1 insertion(+) - create mode 100644 c2.c -ok 3 - merge c1 to c2, again - -expecting success of 7605.4 'merge c2 to c3 (fails)': - git reset --hard c2 && - test_must_fail git merge -s resolve c3 - -HEAD is now at 028ea41 c2 -error: Merge requires file-level merging -Trying really trivial in-index merge... -Nope. -Trying simple merge. -Simple merge failed, trying Automatic merge. -Added c2.c in both, but differently. -fatal: unable to read blob object e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 -error: Could not stat : No such file or directory -ERROR: content conflict in c2.c -fatal: merge program failed -Automatic merge failed; fix conflicts and then commit the result. -ok 4 - merge c2 to c3 (fails) - -# passed all 4 test(s) -1..4 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t7606-merge-custom.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7606-merge-custom/.git/ -expecting success of 7606.1 'set up custom strategy': - cat >git-merge-theirs <<-EOF && - #!$SHELL_PATH - eval git read-tree --reset -u \\\$\$# - EOF - - chmod +x git-merge-theirs && - PATH=.:$PATH && - export PATH - -ok 1 - set up custom strategy - -expecting success of 7606.2 'setup': - test_commit c0 c0.c && - test_commit c1 c1.c && - git reset --keep c0 && - echo c1c1 >c1.c && - git add c1.c && - test_commit c2 c2.c && - git reset --keep c0 && - test_commit c3 c3.c - -[master (root-commit) 934056f] c0 - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 c0.c -[master 7b51d7c] c1 - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 c1.c -[master f06910a] c2 - Author: A U Thor - 2 files changed, 2 insertions(+) - create mode 100644 c1.c - create mode 100644 c2.c -[master 934e277] c3 - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 c3.c -ok 2 - setup - -expecting success of 7606.3 'merge c2 with a custom strategy': - git reset --hard c1 && - - git rev-parse c1 >head.old && - git rev-parse c2 >second-parent.expected && - git rev-parse c2^{tree} >tree.expected && - git merge -s theirs c2 && - - git rev-parse HEAD >head.new && - git rev-parse HEAD^1 >first-parent && - git rev-parse HEAD^2 >second-parent && - git rev-parse HEAD^{tree} >tree && - git update-index --refresh && - git diff --exit-code && - git diff --exit-code c2 HEAD && - git diff --exit-code c2 && - - ! test_cmp head.old head.new && - test_cmp head.old first-parent && - test_cmp second-parent.expected second-parent && - test_cmp tree.expected tree && - test -f c0.c && - grep c1c1 c1.c && - test -f c2.c - -HEAD is now at 7b51d7c c1 -Merge made by the 'theirs' strategy. - c1.c | 2 +- - c2.c | 1 + - 2 files changed, 2 insertions(+), 1 deletion(-) - create mode 100644 c2.c ---- head.old 2023-04-29 16:45:53.212648729 +0000 -+++ head.new 2023-04-29 16:45:53.320638160 +0000 -@@ -1 +1 @@ --7b51d7cdbd54b8c470d864639e1136d88ce718ef -+5127482d58f03334905cdbe3564c8d092aa56dbe -c1c1 -ok 3 - merge c2 with a custom strategy - -expecting success of 7606.4 'trivial merge with custom strategy': - git reset --hard c1 && - - git rev-parse c1 >head.old && - git rev-parse c3 >second-parent.expected && - git rev-parse c3^{tree} >tree.expected && - git merge -s theirs c3 && - - git rev-parse HEAD >head.new && - git rev-parse HEAD^1 >first-parent && - git rev-parse HEAD^2 >second-parent && - git rev-parse HEAD^{tree} >tree && - git update-index --refresh && - git diff --exit-code && - git diff --exit-code c3 HEAD && - git diff --exit-code c3 && - - ! test_cmp head.old head.new && - test_cmp head.old first-parent && - test_cmp second-parent.expected second-parent && - test_cmp tree.expected tree && - test -f c0.c && - ! test -e c1.c && - test -f c3.c - -HEAD is now at 7b51d7c c1 -Merge made by the 'theirs' strategy. - c1.c | 1 - - c3.c | 1 + - 2 files changed, 1 insertion(+), 1 deletion(-) - delete mode 100644 c1.c - create mode 100644 c3.c ---- head.old 2023-04-29 16:45:53.516618978 +0000 -+++ head.new 2023-04-29 16:45:53.608609975 +0000 -@@ -1 +1 @@ --7b51d7cdbd54b8c470d864639e1136d88ce718ef -+f5f2abda42595469639ae786a37808202e35dcf0 -ok 4 - trivial merge with custom strategy - -# passed all 4 test(s) -1..4 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' *** t7608-merge-messages.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7608-merge-messages/.git/ expecting success of 7608.1 'merge local branch': @@ -374688,8 +374521,93 @@ create mode 100644 remote-1.t ok 5 - remote-tracking branch -# passed all 5 test(s) -1..5 +# passed all 5 test(s) +1..5 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t7612-merge-verify-signatures.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7612-merge-verify-signatures/.git/ +checking prerequisite: GPG + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-GPG" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-GPG" && + gpg_version=$(gpg --version 2>&1) + test $? != 127 || exit 1 + + # As said here: http://www.gnupg.org/documentation/faqs.html#q6.19 + # the gpg version 1.0.6 did not parse trust packets correctly, so for + # that version, creation of signed tags using the generated key fails. + case "$gpg_version" in + "gpg (GnuPG) 1.0.6"*) + say "Your version of gpg (1.0.6) is too buggy for testing" + exit 1 + ;; + *) + # Available key info: + # * Type DSA and Elgamal, size 2048 bits, no expiration date, + # name and email: C O Mitter + # * Type RSA, size 2048 bits, no expiration date, + # name and email: Eris Discordia + # No password given, to enable non-interactive operation. + # To generate new key: + # gpg --homedir /tmp/gpghome --gen-key + # To write armored exported key to keyring: + # gpg --homedir /tmp/gpghome --export-secret-keys \ + # --armor 0xDEADBEEF >> lib-gpg/keyring.gpg + # gpg --homedir /tmp/gpghome --export \ + # --armor 0xDEADBEEF >> lib-gpg/keyring.gpg + # To export ownertrust: + # gpg --homedir /tmp/gpghome --export-ownertrust \ + # > lib-gpg/ownertrust + mkdir "$GNUPGHOME" && + chmod 0700 "$GNUPGHOME" && + (gpgconf --kill gpg-agent || : ) && + gpg --homedir "${GNUPGHOME}" --import \ + "$TEST_DIRECTORY"/lib-gpg/keyring.gpg && + gpg --homedir "${GNUPGHOME}" --import-ownertrust \ + "$TEST_DIRECTORY"/lib-gpg/ownertrust && + gpg --homedir "${GNUPGHOME}" /dev/null \ + --sign -u committer@example.com + ;; + esac + +) +prerequisite GPG not satisfied +ok 1 # skip create signed commits (missing GPG) + +ok 2 # skip merge unsigned commit with verification (missing GPG) + +ok 3 # skip merge unsigned commit with merge.verifySignatures=true (missing GPG) + +ok 4 # skip merge commit with bad signature with verification (missing GPG) + +ok 5 # skip merge commit with bad signature with merge.verifySignatures=true (missing GPG) + +ok 6 # skip merge commit with untrusted signature with verification (missing GPG) + +ok 7 # skip merge commit with untrusted signature with verification and high minTrustLevel (missing GPG) + +ok 8 # skip merge commit with untrusted signature with verification and low minTrustLevel (missing GPG) + +ok 9 # skip merge commit with untrusted signature with merge.verifySignatures=true (missing GPG) + +ok 10 # skip merge commit with untrusted signature with merge.verifySignatures=true and minTrustLevel (missing GPG) + +ok 11 # skip merge signed commit with verification (missing GPG) + +ok 12 # skip merge signed commit with merge.verifySignatures=true (missing GPG) + +ok 13 # skip merge commit with bad signature without verification (missing GPG) + +ok 14 # skip merge commit with bad signature with merge.verifySignatures=false (missing GPG) + +ok 15 # skip merge commit with bad signature with merge.verifySignatures=true and --no-verify-signatures (missing GPG) + +ok 16 # skip merge unsigned commit into unborn branch (missing GPG) + +# passed all 16 test(s) +1..16 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' *** t7611-merge-abort.sh *** @@ -375003,86 +374921,633 @@ 1..19 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t7612-merge-verify-signatures.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7612-merge-verify-signatures/.git/ -checking prerequisite: GPG +*** t7614-merge-signoff.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7614-merge-signoff/.git/ +expecting success of 7614.1 'setup': + test_setup -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-GPG" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-GPG" && - gpg_version=$(gpg --version 2>&1) - test $? != 127 || exit 1 +[master (root-commit) 6c54391] Initial empty commit + Author: A U Thor +Switched to a new branch 'other-branch' +[other-branch 5599d17] other-branch + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file1 +ok 1 - setup - # As said here: http://www.gnupg.org/documentation/faqs.html#q6.19 - # the gpg version 1.0.6 did not parse trust packets correctly, so for - # that version, creation of signed tags using the generated key fails. - case "$gpg_version" in - "gpg (GnuPG) 1.0.6"*) - say "Your version of gpg (1.0.6) is too buggy for testing" - exit 1 - ;; - *) - # Available key info: - # * Type DSA and Elgamal, size 2048 bits, no expiration date, - # name and email: C O Mitter - # * Type RSA, size 2048 bits, no expiration date, - # name and email: Eris Discordia - # No password given, to enable non-interactive operation. - # To generate new key: - # gpg --homedir /tmp/gpghome --gen-key - # To write armored exported key to keyring: - # gpg --homedir /tmp/gpghome --export-secret-keys \ - # --armor 0xDEADBEEF >> lib-gpg/keyring.gpg - # gpg --homedir /tmp/gpghome --export \ - # --armor 0xDEADBEEF >> lib-gpg/keyring.gpg - # To export ownertrust: - # gpg --homedir /tmp/gpghome --export-ownertrust \ - # > lib-gpg/ownertrust - mkdir "$GNUPGHOME" && - chmod 0700 "$GNUPGHOME" && - (gpgconf --kill gpg-agent || : ) && - gpg --homedir "${GNUPGHOME}" --import \ - "$TEST_DIRECTORY"/lib-gpg/keyring.gpg && - gpg --homedir "${GNUPGHOME}" --import-ownertrust \ - "$TEST_DIRECTORY"/lib-gpg/ownertrust && - gpg --homedir "${GNUPGHOME}" /dev/null \ - --sign -u committer@example.com - ;; - esac +expecting success of 7614.2 'git merge --signoff adds a sign-off line': + git checkout master && + test_commit master-branch-2 file2 2 && + git checkout other-branch && + git merge master --signoff --no-edit && + git cat-file commit HEAD | sed -e "1,/^\$/d" >actual && + test_cmp expected-signed actual -) -prerequisite GPG not satisfied -ok 1 # skip create signed commits (missing GPG) +Switched to branch 'master' +[master 7242d44] master-branch-2 + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file2 +warning: refname 'other-branch' is ambiguous. +Switched to branch 'other-branch' +Merging: +5599d17 other-branch +virtual master +found 1 common ancestor: +6c54391 Initial empty commit +Merge made by the 'recursive' strategy. + file2 | 1 + + 1 file changed, 1 insertion(+) + create mode 100644 file2 +ok 2 - git merge --signoff adds a sign-off line -ok 2 # skip merge unsigned commit with verification (missing GPG) +expecting success of 7614.3 'git merge does not add a sign-off line': + git checkout master && + test_commit master-branch-3 file3 3 && + git checkout other-branch && + git merge master --no-edit && + git cat-file commit HEAD | sed -e "1,/^\$/d" >actual && + test_cmp expected-unsigned actual -ok 3 # skip merge unsigned commit with merge.verifySignatures=true (missing GPG) +Switched to branch 'master' +[master 7190076] master-branch-3 + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file3 +warning: refname 'other-branch' is ambiguous. +Switched to branch 'other-branch' +Merging: +f02bd43 Merge branch 'master' into other-branch +virtual master +found 1 common ancestor: +7242d44 master-branch-2 +Merge made by the 'recursive' strategy. + file3 | 1 + + 1 file changed, 1 insertion(+) + create mode 100644 file3 +ok 3 - git merge does not add a sign-off line -ok 4 # skip merge commit with bad signature with verification (missing GPG) +expecting success of 7614.4 'git merge --no-signoff flag cancels --signoff flag': + git checkout master && + test_commit master-branch-4 file4 4 && + git checkout other-branch && + git merge master --no-edit --signoff --no-signoff && + git cat-file commit HEAD | sed -e "1,/^\$/d" >actual && + test_cmp expected-unsigned actual -ok 5 # skip merge commit with bad signature with merge.verifySignatures=true (missing GPG) +Switched to branch 'master' +[master 2c7d97b] master-branch-4 + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file4 +warning: refname 'other-branch' is ambiguous. +Switched to branch 'other-branch' +Merging: +e7d0cd8 Merge branch 'master' into other-branch +virtual master +found 1 common ancestor: +7190076 master-branch-3 +Merge made by the 'recursive' strategy. + file4 | 1 + + 1 file changed, 1 insertion(+) + create mode 100644 file4 +ok 4 - git merge --no-signoff flag cancels --signoff flag -ok 6 # skip merge commit with untrusted signature with verification (missing GPG) +# passed all 4 test(s) +1..4 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t7701-repack-unpack-unreachable.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7701-repack-unpack-unreachable/.git/ +expecting success of 7701.1 '-A with -d option leaves unreachable objects unpacked': + echo content > file1 && + git add . && + test_tick && + git commit -m initial_commit && + # create a transient branch with unique content + git checkout -b transient_branch && + echo more content >> file1 && + # record the objects created in the database for file, commit, tree + fsha1=$(git hash-object file1) && + test_tick && + git commit -a -m more_content && + csha1=$(git rev-parse HEAD^{commit}) && + tsha1=$(git rev-parse HEAD^{tree}) && + git checkout master && + echo even more content >> file1 && + test_tick && + git commit -a -m even_more_content && + # delete the transient branch + git branch -D transient_branch && + # pack the repo + git repack -A -d -l && + # verify objects are packed in repository + test 3 = $(git verify-pack -v -- .git/objects/pack/*.idx | + egrep "^($fsha1|$csha1|$tsha1) " | + sort | uniq | wc -l) && + git show $fsha1 && + git show $csha1 && + git show $tsha1 && + # now expire the reflog, while keeping reachable ones but expiring + # unreachables immediately + test_tick && + sometimeago=$(( $test_tick - 10000 )) && + git reflog expire --expire=$sometimeago --expire-unreachable=$test_tick --all && + # and repack + git repack -A -d -l && + # verify objects are retained unpacked + test 0 = $(git verify-pack -v -- .git/objects/pack/*.idx | + egrep "^($fsha1|$csha1|$tsha1) " | + sort | uniq | wc -l) && + git show $fsha1 && + git show $csha1 && + git show $tsha1 -ok 7 # skip merge commit with untrusted signature with verification and high minTrustLevel (missing GPG) +[master (root-commit) 5236a77] initial_commit + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file1 +Switched to a new branch 'transient_branch' +[transient_branch 24d3dd6] more_content + Author: A U Thor + 1 file changed, 1 insertion(+) +Switched to branch 'master' +[master 934cb86] even_more_content + Author: A U Thor + 1 file changed, 1 insertion(+) +Deleted branch transient_branch (was 24d3dd6). +content +more content +commit 24d3dd69fb58e8ee7cf49dd5cf55ba09486cf335 +Author: A U Thor +Date: Thu Apr 7 15:14:13 2005 -0700 -ok 8 # skip merge commit with untrusted signature with verification and low minTrustLevel (missing GPG) + more_content -ok 9 # skip merge commit with untrusted signature with merge.verifySignatures=true (missing GPG) +diff --git a/file1 b/file1 +index d95f3ad..86436d0 100644 +--- a/file1 ++++ b/file1 +@@ -1 +1,2 @@ + content ++more content +tree 23dcdce1632612f22c2c58e14a653890ee9cb0aa -ok 10 # skip merge commit with untrusted signature with merge.verifySignatures=true and minTrustLevel (missing GPG) +file1 +content +more content +commit 24d3dd69fb58e8ee7cf49dd5cf55ba09486cf335 +Author: A U Thor +Date: Thu Apr 7 15:14:13 2005 -0700 -ok 11 # skip merge signed commit with verification (missing GPG) + more_content -ok 12 # skip merge signed commit with merge.verifySignatures=true (missing GPG) +diff --git a/file1 b/file1 +index d95f3ad..86436d0 100644 +--- a/file1 ++++ b/file1 +@@ -1 +1,2 @@ + content ++more content +tree 23dcdce1632612f22c2c58e14a653890ee9cb0aa -ok 13 # skip merge commit with bad signature without verification (missing GPG) +file1 +ok 1 - -A with -d option leaves unreachable objects unpacked -ok 14 # skip merge commit with bad signature with merge.verifySignatures=false (missing GPG) +expecting success of 7701.2 '-A without -d option leaves unreachable objects packed': + fsha1path=$(echo "$fsha1" | sed -e "s|\(..\)|\1/|") && + fsha1path=".git/objects/$fsha1path" && + csha1path=$(echo "$csha1" | sed -e "s|\(..\)|\1/|") && + csha1path=".git/objects/$csha1path" && + tsha1path=$(echo "$tsha1" | sed -e "s|\(..\)|\1/|") && + tsha1path=".git/objects/$tsha1path" && + git branch transient_branch $csha1 && + git repack -a -d -l && + test ! -f "$fsha1path" && + test ! -f "$csha1path" && + test ! -f "$tsha1path" && + test 1 = $(ls -1 .git/objects/pack/pack-*.pack | wc -l) && + packfile=$(ls .git/objects/pack/pack-*.pack) && + git branch -D transient_branch && + test_tick && + git repack -A -l && + test ! -f "$fsha1path" && + test ! -f "$csha1path" && + test ! -f "$tsha1path" && + git show $fsha1 && + git show $csha1 && + git show $tsha1 -ok 15 # skip merge commit with bad signature with merge.verifySignatures=true and --no-verify-signatures (missing GPG) +Deleted branch transient_branch (was 24d3dd6). +content +more content +commit 24d3dd69fb58e8ee7cf49dd5cf55ba09486cf335 +Author: A U Thor +Date: Thu Apr 7 15:14:13 2005 -0700 -ok 16 # skip merge unsigned commit into unborn branch (missing GPG) + more_content + +diff --git a/file1 b/file1 +index d95f3ad..86436d0 100644 +--- a/file1 ++++ b/file1 +@@ -1 +1,2 @@ + content ++more content +tree 23dcdce1632612f22c2c58e14a653890ee9cb0aa + +file1 +ok 2 - -A without -d option leaves unreachable objects packed + +expecting success of 7701.3 'unpacked objects receive timestamp of pack file': + tmppack=".git/objects/pack/tmp_pack" && + ln "$packfile" "$tmppack" && + git repack -A -l -d && + test-tool chmtime --get "$tmppack" "$fsha1path" "$csha1path" "$tsha1path" \ + > mtimes && + compare_mtimes < mtimes + +ok 3 - unpacked objects receive timestamp of pack file + +expecting success of 7701.4 'do not bother loosening old objects': + obj1=$(echo one | git hash-object -w --stdin) && + obj2=$(echo two | git hash-object -w --stdin) && + pack1=$(echo $obj1 | git pack-objects .git/objects/pack/pack) && + pack2=$(echo $obj2 | git pack-objects .git/objects/pack/pack) && + git prune-packed && + git cat-file -p $obj1 && + git cat-file -p $obj2 && + test-tool chmtime =-86400 .git/objects/pack/pack-$pack2.pack && + git repack -A -d --unpack-unreachable=1.hour.ago && + git cat-file -p $obj1 && + test_must_fail git cat-file -p $obj2 + +one +two +one +fatal: Not a valid object name f719efd430d52bcfc8566a43b2eb655688d38871 +ok 4 - do not bother loosening old objects + +expecting success of 7701.5 'keep packed objects found only in index': + echo my-unique-content >file && + git add file && + git commit -m "make it reachable" && + git gc && + git reset HEAD^ && + git reflog expire --expire=now --all && + git add file && + test-tool chmtime =-86400 .git/objects/pack/* && + git gc --prune=1.hour.ago && + git cat-file blob :file + +[master 73784a1] make it reachable + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file +my-unique-content +ok 5 - keep packed objects found only in index + +expecting success of 7701.6 'repack -k keeps unreachable packed objects': + # create packed-but-unreachable object + sha1=$(echo unreachable-packed | git hash-object -w --stdin) && + pack=$(echo $sha1 | git pack-objects .git/objects/pack/pack) && + git prune-packed && + + # -k should keep it + git repack -adk && + git cat-file -p $sha1 && + + # and double check that without -k it would have been removed + git repack -ad && + test_must_fail git cat-file -p $sha1 + +unreachable-packed +fatal: Not a valid object name bdf1d55da464c8ffc31aa0891954caf1baf216e8 +ok 6 - repack -k keeps unreachable packed objects + +expecting success of 7701.7 'repack -k packs unreachable loose objects': + # create loose unreachable object + sha1=$(echo would-be-deleted-loose | git hash-object -w --stdin) && + objpath=.git/objects/$(echo $sha1 | sed "s,..,&/,") && + test_path_is_file $objpath && + + # and confirm that the loose object goes away, but we can + # still access it (ergo, it is packed) + git repack -adk && + test_path_is_missing $objpath && + git cat-file -p $sha1 + +would-be-deleted-loose +ok 7 - repack -k packs unreachable loose objects + +# passed all 7 test(s) +1..7 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t7702-repack-cyclic-alternate.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7702-repack-cyclic-alternate/.git/ +expecting success of 7702.1 'setup': + GIT_OBJECT_DIRECTORY=.git//../.git/objects && + export GIT_OBJECT_DIRECTORY && + touch a && + git add a && + git commit -m 1 && + git repack -adl && + echo "$(pwd)"/.git/objects/../objects >.git/objects/info/alternates + +[master (root-commit) 9b08673] 1 + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 a +ok 1 - setup + +expecting success of 7702.2 're-packing repository with itsself as alternate': + git repack -adl && + git fsck + +ok 2 - re-packing repository with itsself as alternate + +# passed all 2 test(s) +1..2 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t7700-repack.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7700-repack/.git/ +expecting success of 7700.1 'objects in packs marked .keep are not repacked': + echo content1 >file1 && + echo content2 >file2 && + git add . && + test_tick && + git commit -m initial_commit && + # Create two packs + # The first pack will contain all of the objects except one + git rev-list --objects --all >objs && + grep -v file2 objs | git pack-objects pack && + # The second pack will contain the excluded object + packid=$(grep file2 objs | git pack-objects pack) && + >pack-$packid.keep && + git verify-pack -v pack-$packid.idx >packlist && + oid=$(head -n 1 packlist | sed -e "s/^\($OID_REGEX\).*/\1/") && + mv pack-* .git/objects/pack/ && + git repack -A -d -l && + git prune-packed && + test_has_duplicate_object false + +[master (root-commit) 3677360] initial_commit + Author: A U Thor + 2 files changed, 2 insertions(+) + create mode 100644 file1 + create mode 100644 file2 +647acebd8748a0656779e97a3d770aa9b59026ae +ok 1 - objects in packs marked .keep are not repacked + +expecting success of 7700.2 'writing bitmaps via command-line can duplicate .keep objects': + # build on $oid, $packid, and .keep state from previous + git repack -Adbl && + test_has_duplicate_object true + +637f0347d31dad180d6fc7f6720c187b05a8754c blob 9 18 162 +DUPLICATE OBJECT FOUND +ok 2 - writing bitmaps via command-line can duplicate .keep objects + +expecting success of 7700.3 'writing bitmaps via config can duplicate .keep objects': + # build on $oid, $packid, and .keep state from previous + git -c repack.writebitmaps=true repack -Adl && + test_has_duplicate_object true + +637f0347d31dad180d6fc7f6720c187b05a8754c blob 9 18 162 +DUPLICATE OBJECT FOUND +ok 3 - writing bitmaps via config can duplicate .keep objects + +expecting success of 7700.4 'loose objects in alternate ODB are not repacked': + mkdir alt_objects && + echo $(pwd)/alt_objects >.git/objects/info/alternates && + echo content3 >file3 && + oid=$(GIT_OBJECT_DIRECTORY=alt_objects git hash-object -w file3) && + git add file3 && + test_tick && + git commit -m commit_file3 && + git repack -a -d -l && + git prune-packed && + test_has_duplicate_object false + +[master 6f105e6] commit_file3 + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file3 +ok 4 - loose objects in alternate ODB are not repacked + +expecting success of 7700.5 'packed obs in alt ODB are repacked even when local repo is packless': + mkdir alt_objects/pack && + mv .git/objects/pack/* alt_objects/pack && + git repack -a && + test_no_missing_in_packs + +ok 5 - packed obs in alt ODB are repacked even when local repo is packless + +expecting success of 7700.6 'packed obs in alt ODB are repacked when local repo has packs': + rm -f .git/objects/pack/* && + echo new_content >>file1 && + git add file1 && + test_tick && + git commit -m more_content && + git repack && + git repack -a -d && + test_no_missing_in_packs + +[master 7934c82] more_content + Author: A U Thor + 1 file changed, 1 insertion(+) +ok 6 - packed obs in alt ODB are repacked when local repo has packs + +expecting success of 7700.7 'packed obs in alternate ODB kept pack are repacked': + # swap the .keep so the commit object is in the pack with .keep + for p in alt_objects/pack/*.pack + do + base_name=$(basename $p .pack) && + if test_path_is_file alt_objects/pack/$base_name.keep + then + rm alt_objects/pack/$base_name.keep + else + touch alt_objects/pack/$base_name.keep + fi + done && + git repack -a -d && + test_no_missing_in_packs + +File alt_objects/pack/pack-09df7d90d739b5b997442ec62fb88ac0d68d7b68.keep doesn't exist. +ok 7 - packed obs in alternate ODB kept pack are repacked + +expecting success of 7700.8 'packed unreachable obs in alternate ODB are not loosened': + rm -f alt_objects/pack/*.keep && + mv .git/objects/pack/* alt_objects/pack/ && + coid=$(git rev-parse HEAD^{commit}) && + git reset --hard HEAD^ && + test_tick && + git reflog expire --expire=$test_tick --expire-unreachable=$test_tick --all && + # The pack-objects call on the next line is equivalent to + # git repack -A -d without the call to prune-packed + git pack-objects --honor-pack-keep --non-empty --all --reflog \ + --unpack-unreachable packlist && + ! grep "^$coid " packlist && + echo >.git/objects/info/alternates && + test_must_fail git show $coid + +HEAD is now at 6f105e6 commit_file3 +85f93d7925f6a606964869128f786c6de753b60c +fatal: bad object 7934c8297cda0727689031949f840002f9b651ef +ok 8 - packed unreachable obs in alternate ODB are not loosened + +expecting success of 7700.9 'local packed unreachable obs that exist in alternate ODB are not loosened': + echo $(pwd)/alt_objects >.git/objects/info/alternates && + echo "$coid" | git pack-objects --non-empty --all --reflog pack && + rm -f .git/objects/pack/* && + mv pack-* .git/objects/pack/ && + # The pack-objects call on the next line is equivalent to + # git repack -A -d without the call to prune-packed + git pack-objects --honor-pack-keep --non-empty --all --reflog \ + --unpack-unreachable packlist && + ! grep "^$coid " && + echo >.git/objects/info/alternates && + test_must_fail git show $coid + +8487d25eb1b4a03fc88368df42f5e4942fddaa8d +85f93d7925f6a606964869128f786c6de753b60c +fatal: bad object 7934c8297cda0727689031949f840002f9b651ef +ok 9 - local packed unreachable obs that exist in alternate ODB are not loosened + +expecting success of 7700.10 'objects made unreachable by grafts only are kept': + test_tick && + git commit --allow-empty -m "commit 4" && + H0=$(git rev-parse HEAD) && + H1=$(git rev-parse HEAD^) && + H2=$(git rev-parse HEAD^^) && + echo "$H0 $H2" >.git/info/grafts && + git reflog expire --expire=$test_tick --expire-unreachable=$test_tick --all && + git repack -a -d && + git cat-file -t $H1 + +[master 818d068] commit 4 + Author: A U Thor +hint: Support for /info/grafts is deprecated +hint: and will be removed in a future Git version. +hint: +hint: Please use "git replace --convert-graft-file" +hint: to convert the grafts into replace refs. +hint: +hint: Turn this message off by running +hint: "git config advice.graftFileDeprecated false" +hint: Support for /info/grafts is deprecated +hint: and will be removed in a future Git version. +hint: +hint: Please use "git replace --convert-graft-file" +hint: to convert the grafts into replace refs. +hint: +hint: Turn this message off by running +hint: "git config advice.graftFileDeprecated false" +hint: Support for /info/grafts is deprecated +hint: and will be removed in a future Git version. +hint: +hint: Please use "git replace --convert-graft-file" +hint: to convert the grafts into replace refs. +hint: +hint: Turn this message off by running +hint: "git config advice.graftFileDeprecated false" +commit +ok 10 - objects made unreachable by grafts only are kept + +expecting success of 7700.11 'repack --keep-pack': + test_create_repo keep-pack && + ( + cd keep-pack && + P1=$(commit_and_pack 1) && + P2=$(commit_and_pack 2) && + P3=$(commit_and_pack 3) && + P4=$(commit_and_pack 4) && + ls .git/objects/pack/*.pack >old-counts && + test_line_count = 4 old-counts && + git repack -a -d --keep-pack $P1 --keep-pack $P4 && + ls .git/objects/pack/*.pack >new-counts && + grep -q $P1 new-counts && + grep -q $P4 new-counts && + test_line_count = 3 new-counts && + git fsck + ) + +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7700-repack/keep-pack/.git/ +[master (root-commit) 6fe9d34] 1 + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 1.t +[master 44b49a1] 2 + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 2.t +[master 672d88b] 3 + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 3.t +[master 05c7d67] 4 + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 4.t +ok 11 - repack --keep-pack + +expecting success of 7700.12 'bitmaps are created by default in bare repos': + git clone --bare .git bare.git && + git -C bare.git repack -ad && + bitmap=$(ls bare.git/objects/pack/*.bitmap) && + test_path_is_file "$bitmap" + +Cloning into bare repository 'bare.git'... +done. +ok 12 - bitmaps are created by default in bare repos + +expecting success of 7700.13 'incremental repack does not complain': + git -C bare.git repack -q 2>repack.err && + test_must_be_empty repack.err + +ok 13 - incremental repack does not complain + +expecting success of 7700.14 'bitmaps can be disabled on bare repos': + git -c repack.writeBitmaps=false -C bare.git repack -ad && + bitmap=$(ls bare.git/objects/pack/*.bitmap || :) && + test -z "$bitmap" + +ls: cannot access 'bare.git/objects/pack/*.bitmap': No such file or directory +ok 14 - bitmaps can be disabled on bare repos + +expecting success of 7700.15 'no bitmaps created if .keep files present': + pack=$(ls bare.git/objects/pack/*.pack) && + test_path_is_file "$pack" && + keep=${pack%.pack}.keep && + test_when_finished "rm -f \"\$keep\"" && + >"$keep" && + git -C bare.git repack -ad 2>stderr && + test_must_be_empty stderr && + find bare.git/objects/pack/ -type f -name "*.bitmap" >actual && + test_must_be_empty actual + +Nothing new to pack. +ok 15 - no bitmaps created if .keep files present + +expecting success of 7700.16 'auto-bitmaps do not complain if unavailable': + test_config -C bare.git pack.packSizeLimit 1M && + blob=$(test-tool genrandom big $((1024*1024)) | + git -C bare.git hash-object -w --stdin) && + git -C bare.git update-ref refs/tags/big $blob && + git -C bare.git repack -ad 2>stderr && + test_must_be_empty stderr && + find bare.git/objects/pack -type f -name "*.bitmap" >actual && + test_must_be_empty actual + +ok 16 - auto-bitmaps do not complain if unavailable # passed all 16 test(s) 1..16 @@ -377068,8 +377533,8 @@ CONFLICT (content): Merge conflict in base.t Recorded preimage for 'base.t' Automatic merge failed; fix conflicts and then commit the result. ---- rerere.after 2023-04-29 16:46:00.367948446 +0000 -+++ rerere.before 2023-04-29 16:46:00.347950403 +0000 +--- rerere.after 2023-04-29 18:38:00.692710942 +0000 ++++ rerere.before 2023-04-29 18:38:00.640715858 +0000 @@ -0,0 +1 @@ +base.t ok 73 - merge --quit @@ -377105,636 +377570,1212 @@ 1..75 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t7614-merge-signoff.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7614-merge-signoff/.git/ -expecting success of 7614.1 'setup': - test_setup - -[master (root-commit) 6c54391] Initial empty commit - Author: A U Thor -Switched to a new branch 'other-branch' -[other-branch 5599d17] other-branch - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file1 -ok 1 - setup +*** t7811-grep-open.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7811-grep-open/.git/ +expecting success of 7811.1 'determine default pager': + test_might_fail git config --unset core.pager && + less=$( + unset PAGER GIT_PAGER; + git var GIT_PAGER + ) && + test -n "$less" -expecting success of 7614.2 'git merge --signoff adds a sign-off line': - git checkout master && - test_commit master-branch-2 file2 2 && - git checkout other-branch && - git merge master --signoff --no-edit && - git cat-file commit HEAD | sed -e "1,/^\$/d" >actual && - test_cmp expected-signed actual +ok 1 - determine default pager -Switched to branch 'master' -[master 7242d44] master-branch-2 - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file2 -warning: refname 'other-branch' is ambiguous. -Switched to branch 'other-branch' -Merging: -5599d17 other-branch -virtual master -found 1 common ancestor: -6c54391 Initial empty commit -Merge made by the 'recursive' strategy. - file2 | 1 + - 1 file changed, 1 insertion(+) - create mode 100644 file2 -ok 2 - git merge --signoff adds a sign-off line +expecting success of 7811.2 'setup': + test_commit initial grep.h " +enum grep_pat_token { + GREP_PATTERN, + GREP_PATTERN_HEAD, + GREP_PATTERN_BODY, + GREP_AND, + GREP_OPEN_PAREN, + GREP_CLOSE_PAREN, + GREP_NOT, + GREP_OR, +};" && -expecting success of 7614.3 'git merge does not add a sign-off line': - git checkout master && - test_commit master-branch-3 file3 3 && - git checkout other-branch && - git merge master --no-edit && - git cat-file commit HEAD | sed -e "1,/^\$/d" >actual && - test_cmp expected-unsigned actual + test_commit add-user revision.c " + } + if (seen_dashdash) + read_pathspec_from_stdin(revs, &sb, prune); + strbuf_release(&sb); +} -Switched to branch 'master' -[master 7190076] master-branch-3 - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file3 -warning: refname 'other-branch' is ambiguous. -Switched to branch 'other-branch' -Merging: -f02bd43 Merge branch 'master' into other-branch -virtual master -found 1 common ancestor: -7242d44 master-branch-2 -Merge made by the 'recursive' strategy. - file3 | 1 + - 1 file changed, 1 insertion(+) - create mode 100644 file3 -ok 3 - git merge does not add a sign-off line +static void add_grep(struct rev_info *revs, const char *ptn, enum grep_pat_token what) +{ + append_grep_pattern(&revs->grep_filter, ptn, \"command line\", 0, what); +" && -expecting success of 7614.4 'git merge --no-signoff flag cancels --signoff flag': - git checkout master && - test_commit master-branch-4 file4 4 && - git checkout other-branch && - git merge master --no-edit --signoff --no-signoff && - git cat-file commit HEAD | sed -e "1,/^\$/d" >actual && - test_cmp expected-unsigned actual + mkdir subdir && + test_commit subdir subdir/grep.c "enum grep_pat_token" && -Switched to branch 'master' -[master 2c7d97b] master-branch-4 - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file4 -warning: refname 'other-branch' is ambiguous. -Switched to branch 'other-branch' -Merging: -e7d0cd8 Merge branch 'master' into other-branch -virtual master -found 1 common ancestor: -7190076 master-branch-3 -Merge made by the 'recursive' strategy. - file4 | 1 + - 1 file changed, 1 insertion(+) - create mode 100644 file4 -ok 4 - git merge --no-signoff flag cancels --signoff flag + test_commit uninteresting unrelated "hello, world" && -# passed all 4 test(s) -1..4 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t7701-repack-unpack-unreachable.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7701-repack-unpack-unreachable/.git/ -expecting success of 7701.1 '-A with -d option leaves unreachable objects unpacked': - echo content > file1 && - git add . && - test_tick && - git commit -m initial_commit && - # create a transient branch with unique content - git checkout -b transient_branch && - echo more content >> file1 && - # record the objects created in the database for file, commit, tree - fsha1=$(git hash-object file1) && - test_tick && - git commit -a -m more_content && - csha1=$(git rev-parse HEAD^{commit}) && - tsha1=$(git rev-parse HEAD^{tree}) && - git checkout master && - echo even more content >> file1 && - test_tick && - git commit -a -m even_more_content && - # delete the transient branch - git branch -D transient_branch && - # pack the repo - git repack -A -d -l && - # verify objects are packed in repository - test 3 = $(git verify-pack -v -- .git/objects/pack/*.idx | - egrep "^($fsha1|$csha1|$tsha1) " | - sort | uniq | wc -l) && - git show $fsha1 && - git show $csha1 && - git show $tsha1 && - # now expire the reflog, while keeping reachable ones but expiring - # unreachables immediately - test_tick && - sometimeago=$(( $test_tick - 10000 )) && - git reflog expire --expire=$sometimeago --expire-unreachable=$test_tick --all && - # and repack - git repack -A -d -l && - # verify objects are retained unpacked - test 0 = $(git verify-pack -v -- .git/objects/pack/*.idx | - egrep "^($fsha1|$csha1|$tsha1) " | - sort | uniq | wc -l) && - git show $fsha1 && - git show $csha1 && - git show $tsha1 + echo GREP_PATTERN >untracked -[master (root-commit) 5236a77] initial_commit +[master (root-commit) 6a780d2] initial Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file1 -Switched to a new branch 'transient_branch' -[transient_branch 24d3dd6] more_content + 1 file changed, 11 insertions(+) + create mode 100644 grep.h +[master 7eeae3c] add-user + Author: A U Thor + 1 file changed, 11 insertions(+) + create mode 100644 revision.c +[master 22c3f1e] subdir Author: A U Thor 1 file changed, 1 insertion(+) -Switched to branch 'master' -[master 934cb86] even_more_content + create mode 100644 subdir/grep.c +[master cd972f3] uninteresting Author: A U Thor 1 file changed, 1 insertion(+) -Deleted branch transient_branch (was 24d3dd6). -content -more content -commit 24d3dd69fb58e8ee7cf49dd5cf55ba09486cf335 -Author: A U Thor -Date: Thu Apr 7 15:14:13 2005 -0700 + create mode 100644 unrelated +ok 2 - setup - more_content +expecting success of 7811.3 'git grep -O': + cat >$less <<-\EOF && + #!/bin/sh + printf "%s\n" "$@" >pager-args + EOF + chmod +x $less && + cat >expect.less <<-\EOF && + +/*GREP_PATTERN + grep.h + EOF + echo grep.h >expect.notless && -diff --git a/file1 b/file1 -index d95f3ad..86436d0 100644 ---- a/file1 -+++ b/file1 -@@ -1 +1,2 @@ - content -+more content -tree 23dcdce1632612f22c2c58e14a653890ee9cb0aa + PATH=.:$PATH git grep -O GREP_PATTERN >out && + { + test_cmp expect.less pager-args || + test_cmp expect.notless pager-args + } && + test_must_be_empty out -file1 -content -more content -commit 24d3dd69fb58e8ee7cf49dd5cf55ba09486cf335 -Author: A U Thor -Date: Thu Apr 7 15:14:13 2005 -0700 +--- expect.less 2023-04-29 18:38:03.944403556 +0000 ++++ pager-args 2023-04-29 18:38:04.004397884 +0000 +@@ -1,2 +1 @@ +-+/*GREP_PATTERN + grep.h +ok 3 - git grep -O - more_content +expecting success of 7811.4 'git grep -O --cached': + test_must_fail git grep --cached -O GREP_PATTERN >out 2>msg && + test_i18ngrep open-files-in-pager msg -diff --git a/file1 b/file1 -index d95f3ad..86436d0 100644 ---- a/file1 -+++ b/file1 -@@ -1 +1,2 @@ - content -+more content -tree 23dcdce1632612f22c2c58e14a653890ee9cb0aa +checking prerequisite: C_LOCALE_OUTPUT -file1 -ok 1 - -A with -d option leaves unreachable objects unpacked +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false -expecting success of 7701.2 '-A without -d option leaves unreachable objects packed': - fsha1path=$(echo "$fsha1" | sed -e "s|\(..\)|\1/|") && - fsha1path=".git/objects/$fsha1path" && - csha1path=$(echo "$csha1" | sed -e "s|\(..\)|\1/|") && - csha1path=".git/objects/$csha1path" && - tsha1path=$(echo "$tsha1" | sed -e "s|\(..\)|\1/|") && - tsha1path=".git/objects/$tsha1path" && - git branch transient_branch $csha1 && - git repack -a -d -l && - test ! -f "$fsha1path" && - test ! -f "$csha1path" && - test ! -f "$tsha1path" && - test 1 = $(ls -1 .git/objects/pack/pack-*.pack | wc -l) && - packfile=$(ls .git/objects/pack/pack-*.pack) && - git branch -D transient_branch && - test_tick && - git repack -A -l && - test ! -f "$fsha1path" && - test ! -f "$csha1path" && - test ! -f "$tsha1path" && - git show $fsha1 && - git show $csha1 && - git show $tsha1 +) +prerequisite C_LOCALE_OUTPUT ok +fatal: --open-files-in-pager only works on the worktree +ok 4 - git grep -O --cached -Deleted branch transient_branch (was 24d3dd6). -content -more content -commit 24d3dd69fb58e8ee7cf49dd5cf55ba09486cf335 -Author: A U Thor -Date: Thu Apr 7 15:14:13 2005 -0700 +expecting success of 7811.5 'git grep -O --no-index': + rm -f expect.less pager-args out && + cat >expect <<-\EOF && + grep.h + untracked + EOF - more_content + ( + GIT_PAGER='printf "%s\n" >pager-args' && + export GIT_PAGER && + git grep --no-index -O GREP_PATTERN >out + ) && + test_cmp expect pager-args && + test_must_be_empty out -diff --git a/file1 b/file1 -index d95f3ad..86436d0 100644 ---- a/file1 -+++ b/file1 -@@ -1 +1,2 @@ - content -+more content -tree 23dcdce1632612f22c2c58e14a653890ee9cb0aa +ok 5 - git grep -O --no-index -file1 -ok 2 - -A without -d option leaves unreachable objects packed +expecting success of 7811.6 'setup: fake "less"': + cat >less <<-\EOF && + #!/bin/sh + printf "%s\n" "$@" >actual + EOF + chmod +x less -expecting success of 7701.3 'unpacked objects receive timestamp of pack file': - tmppack=".git/objects/pack/tmp_pack" && - ln "$packfile" "$tmppack" && - git repack -A -l -d && - test-tool chmtime --get "$tmppack" "$fsha1path" "$csha1path" "$tsha1path" \ - > mtimes && - compare_mtimes < mtimes +ok 6 - setup: fake "less" -ok 3 - unpacked objects receive timestamp of pack file +expecting success of 7811.7 'git grep -O jumps to line in less': + cat >expect <<-\EOF && + +/*GREP_PATTERN + grep.h + EOF -expecting success of 7701.4 'do not bother loosening old objects': - obj1=$(echo one | git hash-object -w --stdin) && - obj2=$(echo two | git hash-object -w --stdin) && - pack1=$(echo $obj1 | git pack-objects .git/objects/pack/pack) && - pack2=$(echo $obj2 | git pack-objects .git/objects/pack/pack) && - git prune-packed && - git cat-file -p $obj1 && - git cat-file -p $obj2 && - test-tool chmtime =-86400 .git/objects/pack/pack-$pack2.pack && - git repack -A -d --unpack-unreachable=1.hour.ago && - git cat-file -p $obj1 && - test_must_fail git cat-file -p $obj2 + GIT_PAGER=./less git grep -O GREP_PATTERN >out && + test_cmp expect actual && + test_must_be_empty out && -one -two -one -fatal: Not a valid object name f719efd430d52bcfc8566a43b2eb655688d38871 -ok 4 - do not bother loosening old objects + git grep -O./less GREP_PATTERN >out2 && + test_cmp expect actual && + test_must_be_empty out2 -expecting success of 7701.5 'keep packed objects found only in index': - echo my-unique-content >file && - git add file && - git commit -m "make it reachable" && - git gc && - git reset HEAD^ && - git reflog expire --expire=now --all && +ok 7 - git grep -O jumps to line in less + +expecting success of 7811.8 'modified file': + rm -f actual && + cat >expect <<-\EOF && + +/*enum grep_pat_token + grep.h + revision.c + subdir/grep.c + unrelated + EOF + + echo "enum grep_pat_token" >unrelated && + test_when_finished "git checkout HEAD unrelated" && + GIT_PAGER=./less git grep -F -O "enum grep_pat_token" >out && + test_cmp expect actual && + test_must_be_empty out + +Updated 1 path from 543879f +ok 8 - modified file + +expecting success of 7811.9 'copes with color settings': + rm -f actual && + echo grep.h >expect && + test_config color.grep always && + test_config color.grep.filename yellow && + test_config color.grep.separator green && + git grep -O'printf "%s\n" >actual' GREP_AND && + test_cmp expect actual + +ok 9 - copes with color settings + +expecting success of 7811.10 'run from subdir': + rm -f actual && + echo grep.c >expect && + + ( + cd subdir && + export GIT_PAGER && + GIT_PAGER='printf "%s\n" >../args' && + git grep -O "enum grep_pat_token" >../out && + git grep -O"pwd >../dir; :" "enum grep_pat_token" >../out2 + ) && + case $(cat dir) in + *subdir) + : good + ;; + *) + false + ;; + esac && + test_cmp expect args && + test_must_be_empty out && + test_must_be_empty out2 + +ok 10 - run from subdir + +# passed all 10 test(s) +1..10 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t7812-grep-icase-non-ascii.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7812-grep-icase-non-ascii/.git/ +checking prerequisite: C_LOCALE_OUTPUT + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false + +) +prerequisite C_LOCALE_OUTPUT ok +# lib-gettext: Found 'is_IS.utf8' as an is_IS UTF-8 locale +# lib-gettext: No is_IS ISO-8859-1 locale available +expecting success of 7812.1 'setup': + test_write_lines "TILRAUN: Halló Heimur!" >file && git add file && - test-tool chmtime =-86400 .git/objects/pack/* && - git gc --prune=1.hour.ago && - git cat-file blob :file + LC_ALL="$is_IS_locale" && + export LC_ALL -[master 73784a1] make it reachable +ok 1 - setup + +expecting success of 7812.2 'grep literal string, no -F': + git grep -i "TILRAUN: Halló Heimur!" && + git grep -i "TILRAUN: HALLÓ HEIMUR!" + +file:TILRAUN: Halló Heimur! +file:TILRAUN: Halló Heimur! +ok 2 - grep literal string, no -F + +expecting success of 7812.3 'grep pcre utf-8 icase': + git grep --perl-regexp "TILRAUN: H.lló Heimur!" && + git grep --perl-regexp -i "TILRAUN: H.lló Heimur!" && + git grep --perl-regexp -i "TILRAUN: H.LLÓ HEIMUR!" + +file:TILRAUN: Halló Heimur! +file:TILRAUN: Halló Heimur! +file:TILRAUN: Halló Heimur! +ok 3 - grep pcre utf-8 icase + +expecting success of 7812.4 'grep pcre utf-8 string with "+"': + test_write_lines "TILRAUN: Hallóó Heimur!" >file2 && + git add file2 && + git grep -l --perl-regexp "TILRAUN: H.lló+ Heimur!" >actual && + echo file >expected && + echo file2 >>expected && + test_cmp expected actual + +ok 4 - grep pcre utf-8 string with "+" + +expecting success of 7812.5 'grep literal string, with -F': + git grep -i -F "TILRAUN: Halló Heimur!" && + git grep -i -F "TILRAUN: HALLÓ HEIMUR!" + +file:TILRAUN: Halló Heimur! +file:TILRAUN: Halló Heimur! +ok 5 - grep literal string, with -F + +expecting success of 7812.6 'grep string with regex, with -F': + test_write_lines "TILRAUN: Halló Heimur [abc]!" >file3 && + git add file3 && + git grep -i -F "TILRAUN: Halló Heimur [abc]!" file3 + +file3:TILRAUN: Halló Heimur [abc]! +ok 6 - grep string with regex, with -F + +expecting success of 7812.7 'pickaxe -i on non-ascii': + git commit -m first && + git log --format=%f -i -S"TILRAUN: HALLÓ HEIMUR!" >actual && + echo first >expected && + test_cmp expected actual + +[master (root-commit) 891c4a2] first Author: A U Thor - 1 file changed, 1 insertion(+) + 3 files changed, 3 insertions(+) create mode 100644 file -my-unique-content -ok 5 - keep packed objects found only in index + create mode 100644 file2 + create mode 100644 file3 +ok 7 - pickaxe -i on non-ascii -expecting success of 7701.6 'repack -k keeps unreachable packed objects': - # create packed-but-unreachable object - sha1=$(echo unreachable-packed | git hash-object -w --stdin) && - pack=$(echo $sha1 | git pack-objects .git/objects/pack/pack) && - git prune-packed && +expecting success of 7812.8 'PCRE v2: setup invalid UTF-8 data': + printf "\\200\\n" >invalid-0x80 && + echo "ævar" >expected && + cat expected >>invalid-0x80 && + git add invalid-0x80 - # -k should keep it - git repack -adk && - git cat-file -p $sha1 && +ok 8 - PCRE v2: setup invalid UTF-8 data - # and double check that without -k it would have been removed - git repack -ad && - test_must_fail git cat-file -p $sha1 +expecting success of 7812.9 'PCRE v2: grep ASCII from invalid UTF-8 data': + git grep -h "var" invalid-0x80 >actual && + test_cmp expected actual && + git grep -h "(*NO_JIT)var" invalid-0x80 >actual && + test_cmp expected actual -unreachable-packed -fatal: Not a valid object name bdf1d55da464c8ffc31aa0891954caf1baf216e8 -ok 6 - repack -k keeps unreachable packed objects +ok 9 - PCRE v2: grep ASCII from invalid UTF-8 data -expecting success of 7701.7 'repack -k packs unreachable loose objects': - # create loose unreachable object - sha1=$(echo would-be-deleted-loose | git hash-object -w --stdin) && - objpath=.git/objects/$(echo $sha1 | sed "s,..,&/,") && - test_path_is_file $objpath && +expecting success of 7812.10 'PCRE v2: grep non-ASCII from invalid UTF-8 data': + git grep -h "æ" invalid-0x80 >actual && + test_cmp expected actual && + git grep -h "(*NO_JIT)æ" invalid-0x80 >actual && + test_cmp expected actual - # and confirm that the loose object goes away, but we can - # still access it (ergo, it is packed) - git repack -adk && - test_path_is_missing $objpath && - git cat-file -p $sha1 +ok 10 - PCRE v2: grep non-ASCII from invalid UTF-8 data -would-be-deleted-loose -ok 7 - repack -k packs unreachable loose objects +expecting success of 7812.11 'PCRE v2: grep non-ASCII from invalid UTF-8 data with -i': + test_might_fail git grep -hi "Æ" invalid-0x80 >actual && + if test -s actual + then + test_cmp expected actual + fi && + test_must_fail git grep -hi "(*NO_JIT)Æ" invalid-0x80 >actual && + ! test_cmp expected actual -# passed all 7 test(s) -1..7 +fatal: pcre2_match failed with error code -22: UTF-8 error: isolated byte with 0x80 bit set +--- expected 2023-04-29 18:38:09.467881416 +0000 ++++ actual 2023-04-29 18:38:10.347798237 +0000 +@@ -1 +0,0 @@ +-ævar +ok 11 - PCRE v2: grep non-ASCII from invalid UTF-8 data with -i + +# passed all 11 test(s) +1..11 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t7702-repack-cyclic-alternate.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7702-repack-cyclic-alternate/.git/ -expecting success of 7702.1 'setup': - GIT_OBJECT_DIRECTORY=.git//../.git/objects && - export GIT_OBJECT_DIRECTORY && - touch a && - git add a && - git commit -m 1 && - git repack -adl && - echo "$(pwd)"/.git/objects/../objects >.git/objects/info/alternates +*** t7813-grep-icase-iso.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7813-grep-icase-iso/.git/ +checking prerequisite: C_LOCALE_OUTPUT -[master (root-commit) 9b08673] 1 - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - create mode 100644 a -ok 1 - setup +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false -expecting success of 7702.2 're-packing repository with itsself as alternate': - git repack -adl && - git fsck +) +prerequisite C_LOCALE_OUTPUT ok +# lib-gettext: Found 'is_IS.utf8' as an is_IS UTF-8 locale +# lib-gettext: No is_IS ISO-8859-1 locale available +ok 1 # skip setup (missing GETTEXT_ISO_LOCALE) -ok 2 - re-packing repository with itsself as alternate +ok 2 # skip grep pcre string (missing GETTEXT_ISO_LOCALE of GETTEXT_ISO_LOCALE,PCRE) # passed all 2 test(s) 1..2 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t7700-repack.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7700-repack/.git/ -expecting success of 7700.1 'objects in packs marked .keep are not repacked': - echo content1 >file1 && - echo content2 >file2 && - git add . && +*** t7814-grep-recurse-submodules.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7814-grep-recurse-submodules/.git/ +expecting success of 7814.1 'setup directory structure and submodule': + echo "(1|2)d(3|4)" >a && + mkdir b && + echo "(3|4)" >b/b && + git add a b && + git commit -m "add a and b" && test_tick && - git commit -m initial_commit && - # Create two packs - # The first pack will contain all of the objects except one - git rev-list --objects --all >objs && - grep -v file2 objs | git pack-objects pack && - # The second pack will contain the excluded object - packid=$(grep file2 objs | git pack-objects pack) && - >pack-$packid.keep && - git verify-pack -v pack-$packid.idx >packlist && - oid=$(head -n 1 packlist | sed -e "s/^\($OID_REGEX\).*/\1/") && - mv pack-* .git/objects/pack/ && - git repack -A -d -l && - git prune-packed && - test_has_duplicate_object false + git init submodule && + echo "(1|2)d(3|4)" >submodule/a && + git -C submodule add a && + git -C submodule commit -m "add a" && + git submodule add ./submodule && + git commit -m "added submodule" && + test_tick -[master (root-commit) 3677360] initial_commit +[master (root-commit) 167e9ac] add a and b Author: A U Thor 2 files changed, 2 insertions(+) - create mode 100644 file1 - create mode 100644 file2 -647acebd8748a0656779e97a3d770aa9b59026ae -ok 1 - objects in packs marked .keep are not repacked + create mode 100644 a + create mode 100644 b/b +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7814-grep-recurse-submodules/submodule/.git/ +[master (root-commit) f764d75] add a + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 a +Adding existing repo at 'submodule' to the index +[master 24c453d] added submodule + Author: A U Thor + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 submodule +ok 1 - setup directory structure and submodule -expecting success of 7700.2 'writing bitmaps via command-line can duplicate .keep objects': - # build on $oid, $packid, and .keep state from previous - git repack -Adbl && - test_has_duplicate_object true +expecting success of 7814.2 'grep correctly finds patterns in a submodule': + cat >expect <<-\EOF && + a:(1|2)d(3|4) + b/b:(3|4) + submodule/a:(1|2)d(3|4) + EOF -637f0347d31dad180d6fc7f6720c187b05a8754c blob 9 18 162 -DUPLICATE OBJECT FOUND -ok 2 - writing bitmaps via command-line can duplicate .keep objects + git grep -e "(3|4)" --recurse-submodules >actual && + test_cmp expect actual -expecting success of 7700.3 'writing bitmaps via config can duplicate .keep objects': - # build on $oid, $packid, and .keep state from previous - git -c repack.writebitmaps=true repack -Adl && - test_has_duplicate_object true +ok 2 - grep correctly finds patterns in a submodule -637f0347d31dad180d6fc7f6720c187b05a8754c blob 9 18 162 -DUPLICATE OBJECT FOUND -ok 3 - writing bitmaps via config can duplicate .keep objects +expecting success of 7814.3 'grep finds patterns in a submodule via config': + test_config submodule.recurse true && + # expect from previous test + git grep -e "(3|4)" >actual && + test_cmp expect actual -expecting success of 7700.4 'loose objects in alternate ODB are not repacked': - mkdir alt_objects && - echo $(pwd)/alt_objects >.git/objects/info/alternates && - echo content3 >file3 && - oid=$(GIT_OBJECT_DIRECTORY=alt_objects git hash-object -w file3) && - git add file3 && +ok 3 - grep finds patterns in a submodule via config + +expecting success of 7814.4 'grep --no-recurse-submodules overrides config': + test_config submodule.recurse true && + cat >expect <<-\EOF && + a:(1|2)d(3|4) + b/b:(3|4) + EOF + + git grep -e "(3|4)" --no-recurse-submodules >actual && + test_cmp expect actual + +ok 4 - grep --no-recurse-submodules overrides config + +expecting success of 7814.5 'grep and basic pathspecs': + cat >expect <<-\EOF && + submodule/a:(1|2)d(3|4) + EOF + + git grep -e. --recurse-submodules -- submodule >actual && + test_cmp expect actual + +ok 5 - grep and basic pathspecs + +expecting success of 7814.6 'grep and nested submodules': + git init submodule/sub && + echo "(1|2)d(3|4)" >submodule/sub/a && + git -C submodule/sub add a && + git -C submodule/sub commit -m "add a" && + test_tick && + git -C submodule submodule add ./sub && + git -C submodule add sub && + git -C submodule commit -m "added sub" && + test_tick && + git add submodule && + git commit -m "updated submodule" && test_tick && - git commit -m commit_file3 && - git repack -a -d -l && - git prune-packed && - test_has_duplicate_object false -[master 6f105e6] commit_file3 + cat >expect <<-\EOF && + a:(1|2)d(3|4) + b/b:(3|4) + submodule/a:(1|2)d(3|4) + submodule/sub/a:(1|2)d(3|4) + EOF + + git grep -e "(3|4)" --recurse-submodules >actual && + test_cmp expect actual + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7814-grep-recurse-submodules/submodule/sub/.git/ +[master (root-commit) 0fb48cf] add a Author: A U Thor 1 file changed, 1 insertion(+) - create mode 100644 file3 -ok 4 - loose objects in alternate ODB are not repacked + create mode 100644 a +Adding existing repo at 'sub' to the index +[master d30b891] added sub + Author: A U Thor + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 sub +[master bea0037] updated submodule + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +ok 6 - grep and nested submodules -expecting success of 7700.5 'packed obs in alt ODB are repacked even when local repo is packless': - mkdir alt_objects/pack && - mv .git/objects/pack/* alt_objects/pack && - git repack -a && - test_no_missing_in_packs +expecting success of 7814.7 'grep and multiple patterns': + cat >expect <<-\EOF && + a:(1|2)d(3|4) + submodule/a:(1|2)d(3|4) + submodule/sub/a:(1|2)d(3|4) + EOF -ok 5 - packed obs in alt ODB are repacked even when local repo is packless + git grep -e "(3|4)" --and -e "(1|2)" --recurse-submodules >actual && + test_cmp expect actual -expecting success of 7700.6 'packed obs in alt ODB are repacked when local repo has packs': - rm -f .git/objects/pack/* && - echo new_content >>file1 && - git add file1 && +ok 7 - grep and multiple patterns + +expecting success of 7814.8 'grep and multiple patterns': + cat >expect <<-\EOF && + b/b:(3|4) + EOF + + git grep -e "(3|4)" --and --not -e "(1|2)" --recurse-submodules >actual && + test_cmp expect actual + +ok 8 - grep and multiple patterns + +expecting success of 7814.9 'basic grep tree': + cat >expect <<-\EOF && + HEAD:a:(1|2)d(3|4) + HEAD:b/b:(3|4) + HEAD:submodule/a:(1|2)d(3|4) + HEAD:submodule/sub/a:(1|2)d(3|4) + EOF + + git grep -e "(3|4)" --recurse-submodules HEAD >actual && + test_cmp expect actual + +ok 9 - basic grep tree + +expecting success of 7814.10 'grep tree HEAD^': + cat >expect <<-\EOF && + HEAD^:a:(1|2)d(3|4) + HEAD^:b/b:(3|4) + HEAD^:submodule/a:(1|2)d(3|4) + EOF + + git grep -e "(3|4)" --recurse-submodules HEAD^ >actual && + test_cmp expect actual + +ok 10 - grep tree HEAD^ + +expecting success of 7814.11 'grep tree HEAD^^': + cat >expect <<-\EOF && + HEAD^^:a:(1|2)d(3|4) + HEAD^^:b/b:(3|4) + EOF + + git grep -e "(3|4)" --recurse-submodules HEAD^^ >actual && + test_cmp expect actual + +ok 11 - grep tree HEAD^^ + +expecting success of 7814.12 'grep tree and pathspecs': + cat >expect <<-\EOF && + HEAD:submodule/a:(1|2)d(3|4) + HEAD:submodule/sub/a:(1|2)d(3|4) + EOF + + git grep -e "(3|4)" --recurse-submodules HEAD -- submodule >actual && + test_cmp expect actual + +ok 12 - grep tree and pathspecs + +expecting success of 7814.13 'grep tree and pathspecs': + cat >expect <<-\EOF && + HEAD:submodule/a:(1|2)d(3|4) + HEAD:submodule/sub/a:(1|2)d(3|4) + EOF + + git grep -e "(3|4)" --recurse-submodules HEAD -- "submodule*a" >actual && + test_cmp expect actual + +ok 13 - grep tree and pathspecs + +expecting success of 7814.14 'grep tree and more pathspecs': + cat >expect <<-\EOF && + HEAD:submodule/a:(1|2)d(3|4) + EOF + + git grep -e "(3|4)" --recurse-submodules HEAD -- "submodul?/a" >actual && + test_cmp expect actual + +ok 14 - grep tree and more pathspecs + +expecting success of 7814.15 'grep tree and more pathspecs': + cat >expect <<-\EOF && + HEAD:submodule/sub/a:(1|2)d(3|4) + EOF + + git grep -e "(3|4)" --recurse-submodules HEAD -- "submodul*/sub/a" >actual && + test_cmp expect actual + +ok 15 - grep tree and more pathspecs + +expecting success of 7814.16 'grep recurse submodule colon in name': + git init parent && + test_when_finished "rm -rf parent" && + echo "(1|2)d(3|4)" >"parent/fi:le" && + git -C parent add "fi:le" && + git -C parent commit -m "add fi:le" && test_tick && - git commit -m more_content && - git repack && - git repack -a -d && - test_no_missing_in_packs -[master 7934c82] more_content + git init "su:b" && + test_when_finished "rm -rf su:b" && + echo "(1|2)d(3|4)" >"su:b/fi:le" && + git -C "su:b" add "fi:le" && + git -C "su:b" commit -m "add fi:le" && + test_tick && + + test_config_global protocol.file.allow always && + git -C parent submodule add "../su:b" "su:b" && + git -C parent commit -m "add submodule" && + test_tick && + + cat >expect <<-\EOF && + fi:le:(1|2)d(3|4) + su:b/fi:le:(1|2)d(3|4) + EOF + git -C parent grep -e "(1|2)d(3|4)" --recurse-submodules >actual && + test_cmp expect actual && + + cat >expect <<-\EOF && + HEAD:fi:le:(1|2)d(3|4) + HEAD:su:b/fi:le:(1|2)d(3|4) + EOF + git -C parent grep -e "(1|2)d(3|4)" --recurse-submodules HEAD >actual && + test_cmp expect actual + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7814-grep-recurse-submodules/parent/.git/ +[master (root-commit) 8149a31] add fi:le Author: A U Thor 1 file changed, 1 insertion(+) -ok 6 - packed obs in alt ODB are repacked when local repo has packs + create mode 100644 fi:le +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7814-grep-recurse-submodules/su:b/.git/ +[master (root-commit) 94095b4] add fi:le + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 fi:le +Cloning into '/build/git-2.30.2/t/trash directory.t7814-grep-recurse-submodules/parent/su:b'... +done. +[master bedaa45] add submodule + Author: A U Thor + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 su:b +ok 16 - grep recurse submodule colon in name -expecting success of 7700.7 'packed obs in alternate ODB kept pack are repacked': - # swap the .keep so the commit object is in the pack with .keep - for p in alt_objects/pack/*.pack - do - base_name=$(basename $p .pack) && - if test_path_is_file alt_objects/pack/$base_name.keep - then - rm alt_objects/pack/$base_name.keep - else - touch alt_objects/pack/$base_name.keep - fi - done && - git repack -a -d && - test_no_missing_in_packs +expecting success of 7814.17 'grep history with moved submoules': + git init parent && + test_when_finished "rm -rf parent" && + echo "(1|2)d(3|4)" >parent/file && + git -C parent add file && + git -C parent commit -m "add file" && + test_tick && -File alt_objects/pack/pack-09df7d90d739b5b997442ec62fb88ac0d68d7b68.keep doesn't exist. -ok 7 - packed obs in alternate ODB kept pack are repacked + git init sub && + test_when_finished "rm -rf sub" && + echo "(1|2)d(3|4)" >sub/file && + git -C sub add file && + git -C sub commit -m "add file" && + test_tick && -expecting success of 7700.8 'packed unreachable obs in alternate ODB are not loosened': - rm -f alt_objects/pack/*.keep && - mv .git/objects/pack/* alt_objects/pack/ && - coid=$(git rev-parse HEAD^{commit}) && - git reset --hard HEAD^ && + test_config_global protocol.file.allow always && + git -C parent submodule add ../sub dir/sub && + git -C parent commit -m "add submodule" && test_tick && - git reflog expire --expire=$test_tick --expire-unreachable=$test_tick --all && - # The pack-objects call on the next line is equivalent to - # git repack -A -d without the call to prune-packed - git pack-objects --honor-pack-keep --non-empty --all --reflog \ - --unpack-unreachable packlist && - ! grep "^$coid " packlist && - echo >.git/objects/info/alternates && - test_must_fail git show $coid -HEAD is now at 6f105e6 commit_file3 -85f93d7925f6a606964869128f786c6de753b60c -fatal: bad object 7934c8297cda0727689031949f840002f9b651ef -ok 8 - packed unreachable obs in alternate ODB are not loosened + cat >expect <<-\EOF && + dir/sub/file:(1|2)d(3|4) + file:(1|2)d(3|4) + EOF + git -C parent grep -e "(1|2)d(3|4)" --recurse-submodules >actual && + test_cmp expect actual && -expecting success of 7700.9 'local packed unreachable obs that exist in alternate ODB are not loosened': - echo $(pwd)/alt_objects >.git/objects/info/alternates && - echo "$coid" | git pack-objects --non-empty --all --reflog pack && - rm -f .git/objects/pack/* && - mv pack-* .git/objects/pack/ && - # The pack-objects call on the next line is equivalent to - # git repack -A -d without the call to prune-packed - git pack-objects --honor-pack-keep --non-empty --all --reflog \ - --unpack-unreachable packlist && - ! grep "^$coid " && - echo >.git/objects/info/alternates && - test_must_fail git show $coid + git -C parent mv dir/sub sub-moved && + git -C parent commit -m "moved submodule" && + test_tick && -8487d25eb1b4a03fc88368df42f5e4942fddaa8d -85f93d7925f6a606964869128f786c6de753b60c -fatal: bad object 7934c8297cda0727689031949f840002f9b651ef -ok 9 - local packed unreachable obs that exist in alternate ODB are not loosened + cat >expect <<-\EOF && + file:(1|2)d(3|4) + sub-moved/file:(1|2)d(3|4) + EOF + git -C parent grep -e "(1|2)d(3|4)" --recurse-submodules >actual && + test_cmp expect actual && -expecting success of 7700.10 'objects made unreachable by grafts only are kept': - test_tick && - git commit --allow-empty -m "commit 4" && - H0=$(git rev-parse HEAD) && - H1=$(git rev-parse HEAD^) && - H2=$(git rev-parse HEAD^^) && - echo "$H0 $H2" >.git/info/grafts && - git reflog expire --expire=$test_tick --expire-unreachable=$test_tick --all && - git repack -a -d && - git cat-file -t $H1 + cat >expect <<-\EOF && + HEAD^:dir/sub/file:(1|2)d(3|4) + HEAD^:file:(1|2)d(3|4) + EOF + git -C parent grep -e "(1|2)d(3|4)" --recurse-submodules HEAD^ >actual && + test_cmp expect actual -[master 818d068] commit 4 - Author: A U Thor -hint: Support for /info/grafts is deprecated -hint: and will be removed in a future Git version. +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: hint: -hint: Please use "git replace --convert-graft-file" -hint: to convert the grafts into replace refs. +hint: git config --global init.defaultBranch hint: -hint: Turn this message off by running -hint: "git config advice.graftFileDeprecated false" -hint: Support for /info/grafts is deprecated -hint: and will be removed in a future Git version. +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: hint: -hint: Please use "git replace --convert-graft-file" -hint: to convert the grafts into replace refs. +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7814-grep-recurse-submodules/parent/.git/ +[master (root-commit) 1d01947] add file + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: hint: -hint: Turn this message off by running -hint: "git config advice.graftFileDeprecated false" -hint: Support for /info/grafts is deprecated -hint: and will be removed in a future Git version. +hint: git config --global init.defaultBranch hint: -hint: Please use "git replace --convert-graft-file" -hint: to convert the grafts into replace refs. +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: hint: -hint: Turn this message off by running -hint: "git config advice.graftFileDeprecated false" -commit -ok 10 - objects made unreachable by grafts only are kept +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7814-grep-recurse-submodules/sub/.git/ +[master (root-commit) cc4006b] add file + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file +Cloning into '/build/git-2.30.2/t/trash directory.t7814-grep-recurse-submodules/parent/dir/sub'... +done. +[master 9f8bb21] add submodule + Author: A U Thor + 2 files changed, 4 insertions(+) + create mode 100644 .gitmodules + create mode 160000 dir/sub +[master cc98e46] moved submodule + Author: A U Thor + 2 files changed, 1 insertion(+), 1 deletion(-) + rename dir/sub => sub-moved (100%) +ok 17 - grep history with moved submoules -expecting success of 7700.11 'repack --keep-pack': - test_create_repo keep-pack && - ( - cd keep-pack && - P1=$(commit_and_pack 1) && - P2=$(commit_and_pack 2) && - P3=$(commit_and_pack 3) && - P4=$(commit_and_pack 4) && - ls .git/objects/pack/*.pack >old-counts && - test_line_count = 4 old-counts && - git repack -a -d --keep-pack $P1 --keep-pack $P4 && - ls .git/objects/pack/*.pack >new-counts && - grep -q $P1 new-counts && - grep -q $P4 new-counts && - test_line_count = 3 new-counts && - git fsck - ) +expecting success of 7814.18 'grep using relative path': + test_when_finished "rm -rf parent sub" && + git init sub && + echo "(1|2)d(3|4)" >sub/file && + git -C sub add file && + git -C sub commit -m "add file" && + test_tick && -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7700-repack/keep-pack/.git/ -[master (root-commit) 6fe9d34] 1 + git init parent && + echo "(1|2)d(3|4)" >parent/file && + git -C parent add file && + mkdir parent/src && + echo "(1|2)d(3|4)" >parent/src/file2 && + git -C parent add src/file2 && + test_config_global protocol.file.allow always && + git -C parent submodule add ../sub && + git -C parent commit -m "add files and submodule" && + test_tick && + + # From top works + cat >expect <<-\EOF && + file:(1|2)d(3|4) + src/file2:(1|2)d(3|4) + sub/file:(1|2)d(3|4) + EOF + git -C parent grep --recurse-submodules -e "(1|2)d(3|4)" >actual && + test_cmp expect actual && + + # Relative path to top + cat >expect <<-\EOF && + ../file:(1|2)d(3|4) + file2:(1|2)d(3|4) + ../sub/file:(1|2)d(3|4) + EOF + git -C parent/src grep --recurse-submodules -e "(1|2)d(3|4)" -- .. >actual && + test_cmp expect actual && + + # Relative path to submodule + cat >expect <<-\EOF && + ../sub/file:(1|2)d(3|4) + EOF + git -C parent/src grep --recurse-submodules -e "(1|2)d(3|4)" -- ../sub >actual && + test_cmp expect actual + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7814-grep-recurse-submodules/sub/.git/ +[master (root-commit) 41913eb] add file Author: A U Thor 1 file changed, 1 insertion(+) - create mode 100644 1.t -[master 44b49a1] 2 + create mode 100644 file +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7814-grep-recurse-submodules/parent/.git/ +Cloning into '/build/git-2.30.2/t/trash directory.t7814-grep-recurse-submodules/parent/sub'... +done. +[master (root-commit) 014e5fc] add files and submodule Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 2.t -[master 672d88b] 3 + 4 files changed, 6 insertions(+) + create mode 100644 .gitmodules + create mode 100644 file + create mode 100644 src/file2 + create mode 160000 sub +ok 18 - grep using relative path + +expecting success of 7814.19 'grep from a subdir': + test_when_finished "rm -rf parent sub" && + git init sub && + echo "(1|2)d(3|4)" >sub/file && + git -C sub add file && + git -C sub commit -m "add file" && + test_tick && + + git init parent && + mkdir parent/src && + echo "(1|2)d(3|4)" >parent/src/file && + git -C parent add src/file && + test_config_global protocol.file.allow always && + git -C parent submodule add ../sub src/sub && + git -C parent submodule add ../sub sub && + git -C parent commit -m "add files and submodules" && + test_tick && + + # Verify grep from root works + cat >expect <<-\EOF && + src/file:(1|2)d(3|4) + src/sub/file:(1|2)d(3|4) + sub/file:(1|2)d(3|4) + EOF + git -C parent grep --recurse-submodules -e "(1|2)d(3|4)" >actual && + test_cmp expect actual && + + # Verify grep from a subdir works + cat >expect <<-\EOF && + file:(1|2)d(3|4) + sub/file:(1|2)d(3|4) + EOF + git -C parent/src grep --recurse-submodules -e "(1|2)d(3|4)" >actual && + test_cmp expect actual + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7814-grep-recurse-submodules/sub/.git/ +[master (root-commit) 1a98ea2] add file Author: A U Thor 1 file changed, 1 insertion(+) - create mode 100644 3.t -[master 05c7d67] 4 + create mode 100644 file +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7814-grep-recurse-submodules/parent/.git/ +Cloning into '/build/git-2.30.2/t/trash directory.t7814-grep-recurse-submodules/parent/src/sub'... +done. +Cloning into '/build/git-2.30.2/t/trash directory.t7814-grep-recurse-submodules/parent/sub'... +done. +[master (root-commit) ca3476d] add files and submodules Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 4.t -ok 11 - repack --keep-pack + 4 files changed, 9 insertions(+) + create mode 100644 .gitmodules + create mode 100644 src/file + create mode 160000 src/sub + create mode 160000 sub +ok 19 - grep from a subdir -expecting success of 7700.12 'bitmaps are created by default in bare repos': - git clone --bare .git bare.git && - git -C bare.git repack -ad && - bitmap=$(ls bare.git/objects/pack/*.bitmap) && - test_path_is_file "$bitmap" +expecting success of 7814.20 '--recurse-submodules and --untracked are incompatible': + test_must_fail git grep -e. --recurse-submodules --untracked 2>actual && + test_i18ngrep 'not supported with --recurse-submodules' actual + +checking prerequisite: C_LOCALE_OUTPUT -Cloning into bare repository 'bare.git'... -done. -ok 12 - bitmaps are created by default in bare repos +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false -expecting success of 7700.13 'incremental repack does not complain': - git -C bare.git repack -q 2>repack.err && - test_must_be_empty repack.err +) +prerequisite C_LOCALE_OUTPUT ok +fatal: --untracked not supported with --recurse-submodules +ok 20 - --recurse-submodules and --untracked are incompatible -ok 13 - incremental repack does not complain +expecting success of 7814.21 'grep --recurse-submodules --no-index ignores --recurse-submodules': + git grep --recurse-submodules --no-index -e "^(.|.)[\d]" >actual && + cat >expect <<-\EOF && + a:(1|2)d(3|4) + submodule/a:(1|2)d(3|4) + submodule/sub/a:(1|2)d(3|4) + EOF + test_cmp expect actual -expecting success of 7700.14 'bitmaps can be disabled on bare repos': - git -c repack.writeBitmaps=false -C bare.git repack -ad && - bitmap=$(ls bare.git/objects/pack/*.bitmap || :) && - test -z "$bitmap" +ok 21 - grep --recurse-submodules --no-index ignores --recurse-submodules -ls: cannot access 'bare.git/objects/pack/*.bitmap': No such file or directory -ok 14 - bitmaps can be disabled on bare repos +expecting success of 7814.22 'grep --recurse-submodules should pass the pattern type along': + # Fixed + test_must_fail git grep -F --recurse-submodules -e "(.|.)[\d]" && + test_must_fail git -c grep.patternType=fixed grep --recurse-submodules -e "(.|.)[\d]" && -expecting success of 7700.15 'no bitmaps created if .keep files present': - pack=$(ls bare.git/objects/pack/*.pack) && - test_path_is_file "$pack" && - keep=${pack%.pack}.keep && - test_when_finished "rm -f \"\$keep\"" && - >"$keep" && - git -C bare.git repack -ad 2>stderr && - test_must_be_empty stderr && - find bare.git/objects/pack/ -type f -name "*.bitmap" >actual && + # Basic + git grep -G --recurse-submodules -e "(.|.)[\d]" >actual && + cat >expect <<-\EOF && + a:(1|2)d(3|4) + submodule/a:(1|2)d(3|4) + submodule/sub/a:(1|2)d(3|4) + EOF + test_cmp expect actual && + git -c grep.patternType=basic grep --recurse-submodules -e "(.|.)[\d]" >actual && + test_cmp expect actual && + + # Extended + git grep -E --recurse-submodules -e "(.|.)[\d]" >actual && + cat >expect <<-\EOF && + .gitmodules:[submodule "submodule"] + .gitmodules: path = submodule + .gitmodules: url = ./submodule + a:(1|2)d(3|4) + submodule/.gitmodules:[submodule "sub"] + submodule/a:(1|2)d(3|4) + submodule/sub/a:(1|2)d(3|4) + EOF + test_cmp expect actual && + git -c grep.patternType=extended grep --recurse-submodules -e "(.|.)[\d]" >actual && + test_cmp expect actual && + git -c grep.extendedRegexp=true grep --recurse-submodules -e "(.|.)[\d]" >actual && + test_cmp expect actual && + + # Perl + if test_have_prereq PCRE + then + git grep -P --recurse-submodules -e "(.|.)[\d]" >actual && + cat >expect <<-\EOF && + a:(1|2)d(3|4) + b/b:(3|4) + submodule/a:(1|2)d(3|4) + submodule/sub/a:(1|2)d(3|4) + EOF + test_cmp expect actual && + git -c grep.patternType=perl grep --recurse-submodules -e "(.|.)[\d]" >actual && + test_cmp expect actual + fi + +ok 22 - grep --recurse-submodules should pass the pattern type along + +expecting success of 7814.23 'grep --recurse-submodules with submodules without .gitmodules in the working tree': + test_when_finished "git -C submodule checkout .gitmodules" && + rm submodule/.gitmodules && + git grep --recurse-submodules -e "(.|.)[\d]" >actual && + cat >expect <<-\EOF && + a:(1|2)d(3|4) + submodule/a:(1|2)d(3|4) + submodule/sub/a:(1|2)d(3|4) + EOF + test_cmp expect actual + +Updated 1 path from the index +ok 23 - grep --recurse-submodules with submodules without .gitmodules in the working tree + +expecting success of 7814.24 'grep --recurse-submodules without --cached considers worktree modifications': + reset_and_clean && + echo "A modified line in submodule" >>submodule/a && + echo "submodule/a:A modified line in submodule" >expect && + git grep --recurse-submodules "A modified line in submodule" >actual && + test_cmp expect actual + +HEAD is now at bea0037 updated submodule +Removing .gitconfig +Removing actual +Removing expect +Entering 'submodule' +HEAD is now at d30b891 added sub +Entering 'submodule/sub' +HEAD is now at 0fb48cf add a +Entering 'submodule' +Entering 'submodule/sub' +ok 24 - grep --recurse-submodules without --cached considers worktree modifications + +expecting success of 7814.25 'grep --recurse-submodules with --cached ignores worktree modifications': + reset_and_clean && + echo "A modified line in submodule" >>submodule/a && + test_must_fail git grep --recurse-submodules --cached "A modified line in submodule" >actual 2>&1 && test_must_be_empty actual -Nothing new to pack. -ok 15 - no bitmaps created if .keep files present +HEAD is now at bea0037 updated submodule +Removing actual +Removing expect +Entering 'submodule' +HEAD is now at d30b891 added sub +Entering 'submodule/sub' +HEAD is now at 0fb48cf add a +Entering 'submodule' +Entering 'submodule/sub' +ok 25 - grep --recurse-submodules with --cached ignores worktree modifications -expecting success of 7700.16 'auto-bitmaps do not complain if unavailable': - test_config -C bare.git pack.packSizeLimit 1M && - blob=$(test-tool genrandom big $((1024*1024)) | - git -C bare.git hash-object -w --stdin) && - git -C bare.git update-ref refs/tags/big $blob && - git -C bare.git repack -ad 2>stderr && - test_must_be_empty stderr && - find bare.git/objects/pack -type f -name "*.bitmap" >actual && +# passed all 25 test(s) +1..25 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t7815-grep-binary.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7815-grep-binary/.git/ +expecting success of 7815.1 'setup': + echo 'binaryQfileQm[*]cQ*æQð' | q_to_nul >a && + git add a && + git commit -m. + +[master (root-commit) 8fc33fb] . + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 a +ok 1 - setup + +expecting success of 7815.2 'git grep ina a': + echo Binary file a matches >expect && + git grep ina a >actual && + test_cmp expect actual + +ok 2 - git grep ina a + +expecting success of 7815.3 'git grep -ah ina a': + git grep -ah ina a >actual && + test_cmp a actual + +ok 3 - git grep -ah ina a + +expecting success of 7815.4 'git grep -I ina a': + test_must_fail git grep -I ina a >actual && test_must_be_empty actual -ok 16 - auto-bitmaps do not complain if unavailable +ok 4 - git grep -I ina a -# passed all 16 test(s) -1..16 +expecting success of 7815.5 'git grep -c ina a': + echo a:1 >expect && + git grep -c ina a >actual && + test_cmp expect actual + +ok 5 - git grep -c ina a + +expecting success of 7815.6 'git grep -l ina a': + echo a >expect && + git grep -l ina a >actual && + test_cmp expect actual + +ok 6 - git grep -l ina a + +expecting success of 7815.7 'git grep -L bar a': + echo a >expect && + git grep -L bar a >actual && + test_cmp expect actual + +ok 7 - git grep -L bar a + +expecting success of 7815.8 'git grep -q ina a': + git grep -q ina a >actual && + test_must_be_empty actual + +ok 8 - git grep -q ina a + +expecting success of 7815.9 'git grep -F ile a': + git grep -F ile a + +Binary file a matches +ok 9 - git grep -F ile a + +expecting success of 7815.10 'git grep -Fi iLE a': + git grep -Fi iLE a + +Binary file a matches +ok 10 - git grep -Fi iLE a + +expecting success of 7815.11 'git grep ile a': + git grep ile a + +Binary file a matches +ok 11 - git grep ile a + +checking known breakage of 7815.12 'git grep .fi a': + git grep .fi a + +not ok 12 - git grep .fi a # TODO known breakage + +expecting success of 7815.13 'grep respects binary diff attribute': + echo text >t && + git add t && + echo t:text >expect && + git grep text t >actual && + test_cmp expect actual && + echo "t -diff" >.gitattributes && + echo "Binary file t matches" >expect && + git grep text t >actual && + test_cmp expect actual + +ok 13 - grep respects binary diff attribute + +expecting success of 7815.14 'grep --cached respects binary diff attribute': + git grep --cached text t >actual && + test_cmp expect actual + +ok 14 - grep --cached respects binary diff attribute + +expecting success of 7815.15 'grep --cached respects binary diff attribute (2)': + git add .gitattributes && + rm .gitattributes && + git grep --cached text t >actual && + test_when_finished "git rm --cached .gitattributes" && + test_when_finished "git checkout .gitattributes" && + test_cmp expect actual + +Updated 1 path from the index +rm '.gitattributes' +ok 15 - grep --cached respects binary diff attribute (2) + +expecting success of 7815.16 'grep revision respects binary diff attribute': + git commit -m new && + echo "Binary file HEAD:t matches" >expect && + git grep text HEAD -- t >actual && + test_when_finished "git reset HEAD^" && + test_cmp expect actual + +[master 7e398e6] new + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 t +ok 16 - grep revision respects binary diff attribute + +expecting success of 7815.17 'grep respects not-binary diff attribute': + echo binQary | q_to_nul >b && + git add b && + echo "Binary file b matches" >expect && + git grep bin b >actual && + test_cmp expect actual && + echo "b diff" >.gitattributes && + echo "b:binQary" >expect && + git grep bin b >actual.raw && + nul_to_q actual && + test_cmp expect actual + +ok 17 - grep respects not-binary diff attribute + +expecting success of 7815.18 'setup textconv filters': + echo a diff=foo >.gitattributes && + git config diff.foo.textconv "\"$(pwd)\""/nul_to_q_textconv + +ok 18 - setup textconv filters + +expecting success of 7815.19 'grep does not honor textconv': + test_must_fail git grep Qfile + +ok 19 - grep does not honor textconv + +expecting success of 7815.20 'grep --textconv honors textconv': + echo "a:binaryQfileQm[*]cQ*æQð" >expect && + git grep --textconv Qfile >actual && + test_cmp expect actual + +ok 20 - grep --textconv honors textconv + +expecting success of 7815.21 'grep --no-textconv does not honor textconv': + test_must_fail git grep --no-textconv Qfile + +ok 21 - grep --no-textconv does not honor textconv + +expecting success of 7815.22 'grep --textconv blob honors textconv': + echo "HEAD:a:binaryQfileQm[*]cQ*æQð" >expect && + git grep --textconv Qfile HEAD:a >actual && + test_cmp expect actual + +ok 22 - grep --textconv blob honors textconv + +# still have 1 known breakage(s) +# passed all remaining 21 test(s) +1..22 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' *** t7810-grep.sh *** @@ -380152,355 +381193,6 @@ 1..229 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t7811-grep-open.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7811-grep-open/.git/ -expecting success of 7811.1 'determine default pager': - test_might_fail git config --unset core.pager && - less=$( - unset PAGER GIT_PAGER; - git var GIT_PAGER - ) && - test -n "$less" - -ok 1 - determine default pager - -expecting success of 7811.2 'setup': - test_commit initial grep.h " -enum grep_pat_token { - GREP_PATTERN, - GREP_PATTERN_HEAD, - GREP_PATTERN_BODY, - GREP_AND, - GREP_OPEN_PAREN, - GREP_CLOSE_PAREN, - GREP_NOT, - GREP_OR, -};" && - - test_commit add-user revision.c " - } - if (seen_dashdash) - read_pathspec_from_stdin(revs, &sb, prune); - strbuf_release(&sb); -} - -static void add_grep(struct rev_info *revs, const char *ptn, enum grep_pat_token what) -{ - append_grep_pattern(&revs->grep_filter, ptn, \"command line\", 0, what); -" && - - mkdir subdir && - test_commit subdir subdir/grep.c "enum grep_pat_token" && - - test_commit uninteresting unrelated "hello, world" && - - echo GREP_PATTERN >untracked - -[master (root-commit) 6a780d2] initial - Author: A U Thor - 1 file changed, 11 insertions(+) - create mode 100644 grep.h -[master 7eeae3c] add-user - Author: A U Thor - 1 file changed, 11 insertions(+) - create mode 100644 revision.c -[master 22c3f1e] subdir - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 subdir/grep.c -[master cd972f3] uninteresting - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 unrelated -ok 2 - setup - -expecting success of 7811.3 'git grep -O': - cat >$less <<-\EOF && - #!/bin/sh - printf "%s\n" "$@" >pager-args - EOF - chmod +x $less && - cat >expect.less <<-\EOF && - +/*GREP_PATTERN - grep.h - EOF - echo grep.h >expect.notless && - - PATH=.:$PATH git grep -O GREP_PATTERN >out && - { - test_cmp expect.less pager-args || - test_cmp expect.notless pager-args - } && - test_must_be_empty out - ---- expect.less 2023-04-29 16:46:35.440517100 +0000 -+++ pager-args 2023-04-29 16:46:35.464514753 +0000 -@@ -1,2 +1 @@ --+/*GREP_PATTERN - grep.h -ok 3 - git grep -O - -expecting success of 7811.4 'git grep -O --cached': - test_must_fail git grep --cached -O GREP_PATTERN >out 2>msg && - test_i18ngrep open-files-in-pager msg - -checking prerequisite: C_LOCALE_OUTPUT - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false - -) -prerequisite C_LOCALE_OUTPUT ok -fatal: --open-files-in-pager only works on the worktree -ok 4 - git grep -O --cached - -expecting success of 7811.5 'git grep -O --no-index': - rm -f expect.less pager-args out && - cat >expect <<-\EOF && - grep.h - untracked - EOF - - ( - GIT_PAGER='printf "%s\n" >pager-args' && - export GIT_PAGER && - git grep --no-index -O GREP_PATTERN >out - ) && - test_cmp expect pager-args && - test_must_be_empty out - -ok 5 - git grep -O --no-index - -expecting success of 7811.6 'setup: fake "less"': - cat >less <<-\EOF && - #!/bin/sh - printf "%s\n" "$@" >actual - EOF - chmod +x less - -ok 6 - setup: fake "less" - -expecting success of 7811.7 'git grep -O jumps to line in less': - cat >expect <<-\EOF && - +/*GREP_PATTERN - grep.h - EOF - - GIT_PAGER=./less git grep -O GREP_PATTERN >out && - test_cmp expect actual && - test_must_be_empty out && - - git grep -O./less GREP_PATTERN >out2 && - test_cmp expect actual && - test_must_be_empty out2 - -ok 7 - git grep -O jumps to line in less - -expecting success of 7811.8 'modified file': - rm -f actual && - cat >expect <<-\EOF && - +/*enum grep_pat_token - grep.h - revision.c - subdir/grep.c - unrelated - EOF - - echo "enum grep_pat_token" >unrelated && - test_when_finished "git checkout HEAD unrelated" && - GIT_PAGER=./less git grep -F -O "enum grep_pat_token" >out && - test_cmp expect actual && - test_must_be_empty out - -Updated 1 path from 543879f -ok 8 - modified file - -expecting success of 7811.9 'copes with color settings': - rm -f actual && - echo grep.h >expect && - test_config color.grep always && - test_config color.grep.filename yellow && - test_config color.grep.separator green && - git grep -O'printf "%s\n" >actual' GREP_AND && - test_cmp expect actual - -ok 9 - copes with color settings - -expecting success of 7811.10 'run from subdir': - rm -f actual && - echo grep.c >expect && - - ( - cd subdir && - export GIT_PAGER && - GIT_PAGER='printf "%s\n" >../args' && - git grep -O "enum grep_pat_token" >../out && - git grep -O"pwd >../dir; :" "enum grep_pat_token" >../out2 - ) && - case $(cat dir) in - *subdir) - : good - ;; - *) - false - ;; - esac && - test_cmp expect args && - test_must_be_empty out && - test_must_be_empty out2 - -ok 10 - run from subdir - -# passed all 10 test(s) -1..10 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t7812-grep-icase-non-ascii.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7812-grep-icase-non-ascii/.git/ -checking prerequisite: C_LOCALE_OUTPUT - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false - -) -prerequisite C_LOCALE_OUTPUT ok -# lib-gettext: Found 'is_IS.utf8' as an is_IS UTF-8 locale -# lib-gettext: No is_IS ISO-8859-1 locale available -expecting success of 7812.1 'setup': - test_write_lines "TILRAUN: Halló Heimur!" >file && - git add file && - LC_ALL="$is_IS_locale" && - export LC_ALL - -ok 1 - setup - -expecting success of 7812.2 'grep literal string, no -F': - git grep -i "TILRAUN: Halló Heimur!" && - git grep -i "TILRAUN: HALLÓ HEIMUR!" - -file:TILRAUN: Halló Heimur! -file:TILRAUN: Halló Heimur! -ok 2 - grep literal string, no -F - -expecting success of 7812.3 'grep pcre utf-8 icase': - git grep --perl-regexp "TILRAUN: H.lló Heimur!" && - git grep --perl-regexp -i "TILRAUN: H.lló Heimur!" && - git grep --perl-regexp -i "TILRAUN: H.LLÓ HEIMUR!" - -file:TILRAUN: Halló Heimur! -file:TILRAUN: Halló Heimur! -file:TILRAUN: Halló Heimur! -ok 3 - grep pcre utf-8 icase - -expecting success of 7812.4 'grep pcre utf-8 string with "+"': - test_write_lines "TILRAUN: Hallóó Heimur!" >file2 && - git add file2 && - git grep -l --perl-regexp "TILRAUN: H.lló+ Heimur!" >actual && - echo file >expected && - echo file2 >>expected && - test_cmp expected actual - -ok 4 - grep pcre utf-8 string with "+" - -expecting success of 7812.5 'grep literal string, with -F': - git grep -i -F "TILRAUN: Halló Heimur!" && - git grep -i -F "TILRAUN: HALLÓ HEIMUR!" - -file:TILRAUN: Halló Heimur! -file:TILRAUN: Halló Heimur! -ok 5 - grep literal string, with -F - -expecting success of 7812.6 'grep string with regex, with -F': - test_write_lines "TILRAUN: Halló Heimur [abc]!" >file3 && - git add file3 && - git grep -i -F "TILRAUN: Halló Heimur [abc]!" file3 - -file3:TILRAUN: Halló Heimur [abc]! -ok 6 - grep string with regex, with -F - -expecting success of 7812.7 'pickaxe -i on non-ascii': - git commit -m first && - git log --format=%f -i -S"TILRAUN: HALLÓ HEIMUR!" >actual && - echo first >expected && - test_cmp expected actual - -[master (root-commit) 891c4a2] first - Author: A U Thor - 3 files changed, 3 insertions(+) - create mode 100644 file - create mode 100644 file2 - create mode 100644 file3 -ok 7 - pickaxe -i on non-ascii - -expecting success of 7812.8 'PCRE v2: setup invalid UTF-8 data': - printf "\\200\\n" >invalid-0x80 && - echo "ævar" >expected && - cat expected >>invalid-0x80 && - git add invalid-0x80 - -ok 8 - PCRE v2: setup invalid UTF-8 data - -expecting success of 7812.9 'PCRE v2: grep ASCII from invalid UTF-8 data': - git grep -h "var" invalid-0x80 >actual && - test_cmp expected actual && - git grep -h "(*NO_JIT)var" invalid-0x80 >actual && - test_cmp expected actual - -ok 9 - PCRE v2: grep ASCII from invalid UTF-8 data - -expecting success of 7812.10 'PCRE v2: grep non-ASCII from invalid UTF-8 data': - git grep -h "æ" invalid-0x80 >actual && - test_cmp expected actual && - git grep -h "(*NO_JIT)æ" invalid-0x80 >actual && - test_cmp expected actual - -ok 10 - PCRE v2: grep non-ASCII from invalid UTF-8 data - -expecting success of 7812.11 'PCRE v2: grep non-ASCII from invalid UTF-8 data with -i': - test_might_fail git grep -hi "Æ" invalid-0x80 >actual && - if test -s actual - then - test_cmp expected actual - fi && - test_must_fail git grep -hi "(*NO_JIT)Æ" invalid-0x80 >actual && - ! test_cmp expected actual - -fatal: pcre2_match failed with error code -22: UTF-8 error: isolated byte with 0x80 bit set ---- expected 2023-04-29 16:46:38.148252268 +0000 -+++ actual 2023-04-29 16:46:38.580210021 +0000 -@@ -1 +0,0 @@ --ævar -ok 11 - PCRE v2: grep non-ASCII from invalid UTF-8 data with -i - -# passed all 11 test(s) -1..11 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t7813-grep-icase-iso.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7813-grep-icase-iso/.git/ -checking prerequisite: C_LOCALE_OUTPUT - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false - -) -prerequisite C_LOCALE_OUTPUT ok -# lib-gettext: Found 'is_IS.utf8' as an is_IS UTF-8 locale -# lib-gettext: No is_IS ISO-8859-1 locale available -ok 1 # skip setup (missing GETTEXT_ISO_LOCALE) - -ok 2 # skip grep pcre string (missing GETTEXT_ISO_LOCALE of GETTEXT_ISO_LOCALE,PCRE) - -# passed all 2 test(s) -1..2 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' *** t7800-difftool.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7800-difftool/.git/ expecting success of 7800.1 'basic usage requires no repo': @@ -380657,7 +381349,7 @@ test_config difftool.trustExitCode false && test_must_fail git difftool -y -t nonexistent branch -/build/git-2.30.2/git-difftool--helper: 1: eval: i-dont-exist: not found +/build/git-2.30.2/git-mergetool--lib: line 137: i-dont-exist: command not found fatal: external diff died, stopping at file ok 14 - difftool honors exit status if command not found @@ -381486,10 +382178,10 @@ test_cmp expect "$(cat tmpdir)/file" ) -warning: both files modified: '/build/git-2.30.2/t/trash directory.t7800-difftool/file' and '/build/git-2.30.2/t/trash directory.t7800-difftool/git-difftool.4rrbbm/right/file'. +warning: both files modified: '/build/git-2.30.2/t/trash directory.t7800-difftool/file' and '/build/git-2.30.2/t/trash directory.t7800-difftool/git-difftool.MG5dZQ/right/file'. warning: working tree file has been left. warning: -warning: temporary files exist in '/build/git-2.30.2/t/trash directory.t7800-difftool/git-difftool.4rrbbm'. +warning: temporary files exist in '/build/git-2.30.2/t/trash directory.t7800-difftool/git-difftool.MG5dZQ'. warning: you may want to cleanup or recover these. ok 68 - difftool --no-symlinks detects conflict @@ -381630,9 +382322,9 @@ git add -N intent-to-add && git difftool --dir-diff --extcmd ls -/tmp/git-difftool.bt8ABC/left/: +/tmp/git-difftool.QoAdTR/left/: -/tmp/git-difftool.bt8ABC/right/: +/tmp/git-difftool.QoAdTR/right/: intent-to-add HEAD is now at 2af18da initial ok 72 - add -N and difftool -d @@ -381709,865 +382401,6 @@ 1..75 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t7815-grep-binary.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7815-grep-binary/.git/ -expecting success of 7815.1 'setup': - echo 'binaryQfileQm[*]cQ*æQð' | q_to_nul >a && - git add a && - git commit -m. - -[master (root-commit) 8fc33fb] . - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - create mode 100644 a -ok 1 - setup - -expecting success of 7815.2 'git grep ina a': - echo Binary file a matches >expect && - git grep ina a >actual && - test_cmp expect actual - -ok 2 - git grep ina a - -expecting success of 7815.3 'git grep -ah ina a': - git grep -ah ina a >actual && - test_cmp a actual - -ok 3 - git grep -ah ina a - -expecting success of 7815.4 'git grep -I ina a': - test_must_fail git grep -I ina a >actual && - test_must_be_empty actual - -ok 4 - git grep -I ina a - -expecting success of 7815.5 'git grep -c ina a': - echo a:1 >expect && - git grep -c ina a >actual && - test_cmp expect actual - -ok 5 - git grep -c ina a - -expecting success of 7815.6 'git grep -l ina a': - echo a >expect && - git grep -l ina a >actual && - test_cmp expect actual - -ok 6 - git grep -l ina a - -expecting success of 7815.7 'git grep -L bar a': - echo a >expect && - git grep -L bar a >actual && - test_cmp expect actual - -ok 7 - git grep -L bar a - -expecting success of 7815.8 'git grep -q ina a': - git grep -q ina a >actual && - test_must_be_empty actual - -ok 8 - git grep -q ina a - -expecting success of 7815.9 'git grep -F ile a': - git grep -F ile a - -Binary file a matches -ok 9 - git grep -F ile a - -expecting success of 7815.10 'git grep -Fi iLE a': - git grep -Fi iLE a - -Binary file a matches -ok 10 - git grep -Fi iLE a - -expecting success of 7815.11 'git grep ile a': - git grep ile a - -Binary file a matches -ok 11 - git grep ile a - -checking known breakage of 7815.12 'git grep .fi a': - git grep .fi a - -not ok 12 - git grep .fi a # TODO known breakage - -expecting success of 7815.13 'grep respects binary diff attribute': - echo text >t && - git add t && - echo t:text >expect && - git grep text t >actual && - test_cmp expect actual && - echo "t -diff" >.gitattributes && - echo "Binary file t matches" >expect && - git grep text t >actual && - test_cmp expect actual - -ok 13 - grep respects binary diff attribute - -expecting success of 7815.14 'grep --cached respects binary diff attribute': - git grep --cached text t >actual && - test_cmp expect actual - -ok 14 - grep --cached respects binary diff attribute - -expecting success of 7815.15 'grep --cached respects binary diff attribute (2)': - git add .gitattributes && - rm .gitattributes && - git grep --cached text t >actual && - test_when_finished "git rm --cached .gitattributes" && - test_when_finished "git checkout .gitattributes" && - test_cmp expect actual - -Updated 1 path from the index -rm '.gitattributes' -ok 15 - grep --cached respects binary diff attribute (2) - -expecting success of 7815.16 'grep revision respects binary diff attribute': - git commit -m new && - echo "Binary file HEAD:t matches" >expect && - git grep text HEAD -- t >actual && - test_when_finished "git reset HEAD^" && - test_cmp expect actual - -[master 7e398e6] new - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - create mode 100644 t -ok 16 - grep revision respects binary diff attribute - -expecting success of 7815.17 'grep respects not-binary diff attribute': - echo binQary | q_to_nul >b && - git add b && - echo "Binary file b matches" >expect && - git grep bin b >actual && - test_cmp expect actual && - echo "b diff" >.gitattributes && - echo "b:binQary" >expect && - git grep bin b >actual.raw && - nul_to_q actual && - test_cmp expect actual - -ok 17 - grep respects not-binary diff attribute - -expecting success of 7815.18 'setup textconv filters': - echo a diff=foo >.gitattributes && - git config diff.foo.textconv "\"$(pwd)\""/nul_to_q_textconv - -ok 18 - setup textconv filters - -expecting success of 7815.19 'grep does not honor textconv': - test_must_fail git grep Qfile - -ok 19 - grep does not honor textconv - -expecting success of 7815.20 'grep --textconv honors textconv': - echo "a:binaryQfileQm[*]cQ*æQð" >expect && - git grep --textconv Qfile >actual && - test_cmp expect actual - -ok 20 - grep --textconv honors textconv - -expecting success of 7815.21 'grep --no-textconv does not honor textconv': - test_must_fail git grep --no-textconv Qfile - -ok 21 - grep --no-textconv does not honor textconv - -expecting success of 7815.22 'grep --textconv blob honors textconv': - echo "HEAD:a:binaryQfileQm[*]cQ*æQð" >expect && - git grep --textconv Qfile HEAD:a >actual && - test_cmp expect actual - -ok 22 - grep --textconv blob honors textconv - -# still have 1 known breakage(s) -# passed all remaining 21 test(s) -1..22 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t7814-grep-recurse-submodules.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7814-grep-recurse-submodules/.git/ -expecting success of 7814.1 'setup directory structure and submodule': - echo "(1|2)d(3|4)" >a && - mkdir b && - echo "(3|4)" >b/b && - git add a b && - git commit -m "add a and b" && - test_tick && - git init submodule && - echo "(1|2)d(3|4)" >submodule/a && - git -C submodule add a && - git -C submodule commit -m "add a" && - git submodule add ./submodule && - git commit -m "added submodule" && - test_tick - -[master (root-commit) 167e9ac] add a and b - Author: A U Thor - 2 files changed, 2 insertions(+) - create mode 100644 a - create mode 100644 b/b -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7814-grep-recurse-submodules/submodule/.git/ -[master (root-commit) f764d75] add a - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 a -Adding existing repo at 'submodule' to the index -[master 24c453d] added submodule - Author: A U Thor - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 submodule -ok 1 - setup directory structure and submodule - -expecting success of 7814.2 'grep correctly finds patterns in a submodule': - cat >expect <<-\EOF && - a:(1|2)d(3|4) - b/b:(3|4) - submodule/a:(1|2)d(3|4) - EOF - - git grep -e "(3|4)" --recurse-submodules >actual && - test_cmp expect actual - -ok 2 - grep correctly finds patterns in a submodule - -expecting success of 7814.3 'grep finds patterns in a submodule via config': - test_config submodule.recurse true && - # expect from previous test - git grep -e "(3|4)" >actual && - test_cmp expect actual - -ok 3 - grep finds patterns in a submodule via config - -expecting success of 7814.4 'grep --no-recurse-submodules overrides config': - test_config submodule.recurse true && - cat >expect <<-\EOF && - a:(1|2)d(3|4) - b/b:(3|4) - EOF - - git grep -e "(3|4)" --no-recurse-submodules >actual && - test_cmp expect actual - -ok 4 - grep --no-recurse-submodules overrides config - -expecting success of 7814.5 'grep and basic pathspecs': - cat >expect <<-\EOF && - submodule/a:(1|2)d(3|4) - EOF - - git grep -e. --recurse-submodules -- submodule >actual && - test_cmp expect actual - -ok 5 - grep and basic pathspecs - -expecting success of 7814.6 'grep and nested submodules': - git init submodule/sub && - echo "(1|2)d(3|4)" >submodule/sub/a && - git -C submodule/sub add a && - git -C submodule/sub commit -m "add a" && - test_tick && - git -C submodule submodule add ./sub && - git -C submodule add sub && - git -C submodule commit -m "added sub" && - test_tick && - git add submodule && - git commit -m "updated submodule" && - test_tick && - - cat >expect <<-\EOF && - a:(1|2)d(3|4) - b/b:(3|4) - submodule/a:(1|2)d(3|4) - submodule/sub/a:(1|2)d(3|4) - EOF - - git grep -e "(3|4)" --recurse-submodules >actual && - test_cmp expect actual - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7814-grep-recurse-submodules/submodule/sub/.git/ -[master (root-commit) 0fb48cf] add a - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 a -Adding existing repo at 'sub' to the index -[master d30b891] added sub - Author: A U Thor - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 sub -[master bea0037] updated submodule - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -ok 6 - grep and nested submodules - -expecting success of 7814.7 'grep and multiple patterns': - cat >expect <<-\EOF && - a:(1|2)d(3|4) - submodule/a:(1|2)d(3|4) - submodule/sub/a:(1|2)d(3|4) - EOF - - git grep -e "(3|4)" --and -e "(1|2)" --recurse-submodules >actual && - test_cmp expect actual - -ok 7 - grep and multiple patterns - -expecting success of 7814.8 'grep and multiple patterns': - cat >expect <<-\EOF && - b/b:(3|4) - EOF - - git grep -e "(3|4)" --and --not -e "(1|2)" --recurse-submodules >actual && - test_cmp expect actual - -ok 8 - grep and multiple patterns - -expecting success of 7814.9 'basic grep tree': - cat >expect <<-\EOF && - HEAD:a:(1|2)d(3|4) - HEAD:b/b:(3|4) - HEAD:submodule/a:(1|2)d(3|4) - HEAD:submodule/sub/a:(1|2)d(3|4) - EOF - - git grep -e "(3|4)" --recurse-submodules HEAD >actual && - test_cmp expect actual - -ok 9 - basic grep tree - -expecting success of 7814.10 'grep tree HEAD^': - cat >expect <<-\EOF && - HEAD^:a:(1|2)d(3|4) - HEAD^:b/b:(3|4) - HEAD^:submodule/a:(1|2)d(3|4) - EOF - - git grep -e "(3|4)" --recurse-submodules HEAD^ >actual && - test_cmp expect actual - -ok 10 - grep tree HEAD^ - -expecting success of 7814.11 'grep tree HEAD^^': - cat >expect <<-\EOF && - HEAD^^:a:(1|2)d(3|4) - HEAD^^:b/b:(3|4) - EOF - - git grep -e "(3|4)" --recurse-submodules HEAD^^ >actual && - test_cmp expect actual - -ok 11 - grep tree HEAD^^ - -expecting success of 7814.12 'grep tree and pathspecs': - cat >expect <<-\EOF && - HEAD:submodule/a:(1|2)d(3|4) - HEAD:submodule/sub/a:(1|2)d(3|4) - EOF - - git grep -e "(3|4)" --recurse-submodules HEAD -- submodule >actual && - test_cmp expect actual - -ok 12 - grep tree and pathspecs - -expecting success of 7814.13 'grep tree and pathspecs': - cat >expect <<-\EOF && - HEAD:submodule/a:(1|2)d(3|4) - HEAD:submodule/sub/a:(1|2)d(3|4) - EOF - - git grep -e "(3|4)" --recurse-submodules HEAD -- "submodule*a" >actual && - test_cmp expect actual - -ok 13 - grep tree and pathspecs - -expecting success of 7814.14 'grep tree and more pathspecs': - cat >expect <<-\EOF && - HEAD:submodule/a:(1|2)d(3|4) - EOF - - git grep -e "(3|4)" --recurse-submodules HEAD -- "submodul?/a" >actual && - test_cmp expect actual - -ok 14 - grep tree and more pathspecs - -expecting success of 7814.15 'grep tree and more pathspecs': - cat >expect <<-\EOF && - HEAD:submodule/sub/a:(1|2)d(3|4) - EOF - - git grep -e "(3|4)" --recurse-submodules HEAD -- "submodul*/sub/a" >actual && - test_cmp expect actual - -ok 15 - grep tree and more pathspecs - -expecting success of 7814.16 'grep recurse submodule colon in name': - git init parent && - test_when_finished "rm -rf parent" && - echo "(1|2)d(3|4)" >"parent/fi:le" && - git -C parent add "fi:le" && - git -C parent commit -m "add fi:le" && - test_tick && - - git init "su:b" && - test_when_finished "rm -rf su:b" && - echo "(1|2)d(3|4)" >"su:b/fi:le" && - git -C "su:b" add "fi:le" && - git -C "su:b" commit -m "add fi:le" && - test_tick && - - test_config_global protocol.file.allow always && - git -C parent submodule add "../su:b" "su:b" && - git -C parent commit -m "add submodule" && - test_tick && - - cat >expect <<-\EOF && - fi:le:(1|2)d(3|4) - su:b/fi:le:(1|2)d(3|4) - EOF - git -C parent grep -e "(1|2)d(3|4)" --recurse-submodules >actual && - test_cmp expect actual && - - cat >expect <<-\EOF && - HEAD:fi:le:(1|2)d(3|4) - HEAD:su:b/fi:le:(1|2)d(3|4) - EOF - git -C parent grep -e "(1|2)d(3|4)" --recurse-submodules HEAD >actual && - test_cmp expect actual - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7814-grep-recurse-submodules/parent/.git/ -[master (root-commit) 8149a31] add fi:le - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 fi:le -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7814-grep-recurse-submodules/su:b/.git/ -[master (root-commit) 94095b4] add fi:le - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 fi:le -Cloning into '/build/git-2.30.2/t/trash directory.t7814-grep-recurse-submodules/parent/su:b'... -done. -[master bedaa45] add submodule - Author: A U Thor - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 su:b -ok 16 - grep recurse submodule colon in name - -expecting success of 7814.17 'grep history with moved submoules': - git init parent && - test_when_finished "rm -rf parent" && - echo "(1|2)d(3|4)" >parent/file && - git -C parent add file && - git -C parent commit -m "add file" && - test_tick && - - git init sub && - test_when_finished "rm -rf sub" && - echo "(1|2)d(3|4)" >sub/file && - git -C sub add file && - git -C sub commit -m "add file" && - test_tick && - - test_config_global protocol.file.allow always && - git -C parent submodule add ../sub dir/sub && - git -C parent commit -m "add submodule" && - test_tick && - - cat >expect <<-\EOF && - dir/sub/file:(1|2)d(3|4) - file:(1|2)d(3|4) - EOF - git -C parent grep -e "(1|2)d(3|4)" --recurse-submodules >actual && - test_cmp expect actual && - - git -C parent mv dir/sub sub-moved && - git -C parent commit -m "moved submodule" && - test_tick && - - cat >expect <<-\EOF && - file:(1|2)d(3|4) - sub-moved/file:(1|2)d(3|4) - EOF - git -C parent grep -e "(1|2)d(3|4)" --recurse-submodules >actual && - test_cmp expect actual && - - cat >expect <<-\EOF && - HEAD^:dir/sub/file:(1|2)d(3|4) - HEAD^:file:(1|2)d(3|4) - EOF - git -C parent grep -e "(1|2)d(3|4)" --recurse-submodules HEAD^ >actual && - test_cmp expect actual - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7814-grep-recurse-submodules/parent/.git/ -[master (root-commit) 1d01947] add file - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7814-grep-recurse-submodules/sub/.git/ -[master (root-commit) cc4006b] add file - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -Cloning into '/build/git-2.30.2/t/trash directory.t7814-grep-recurse-submodules/parent/dir/sub'... -done. -[master 9f8bb21] add submodule - Author: A U Thor - 2 files changed, 4 insertions(+) - create mode 100644 .gitmodules - create mode 160000 dir/sub -[master cc98e46] moved submodule - Author: A U Thor - 2 files changed, 1 insertion(+), 1 deletion(-) - rename dir/sub => sub-moved (100%) -ok 17 - grep history with moved submoules - -expecting success of 7814.18 'grep using relative path': - test_when_finished "rm -rf parent sub" && - git init sub && - echo "(1|2)d(3|4)" >sub/file && - git -C sub add file && - git -C sub commit -m "add file" && - test_tick && - - git init parent && - echo "(1|2)d(3|4)" >parent/file && - git -C parent add file && - mkdir parent/src && - echo "(1|2)d(3|4)" >parent/src/file2 && - git -C parent add src/file2 && - test_config_global protocol.file.allow always && - git -C parent submodule add ../sub && - git -C parent commit -m "add files and submodule" && - test_tick && - - # From top works - cat >expect <<-\EOF && - file:(1|2)d(3|4) - src/file2:(1|2)d(3|4) - sub/file:(1|2)d(3|4) - EOF - git -C parent grep --recurse-submodules -e "(1|2)d(3|4)" >actual && - test_cmp expect actual && - - # Relative path to top - cat >expect <<-\EOF && - ../file:(1|2)d(3|4) - file2:(1|2)d(3|4) - ../sub/file:(1|2)d(3|4) - EOF - git -C parent/src grep --recurse-submodules -e "(1|2)d(3|4)" -- .. >actual && - test_cmp expect actual && - - # Relative path to submodule - cat >expect <<-\EOF && - ../sub/file:(1|2)d(3|4) - EOF - git -C parent/src grep --recurse-submodules -e "(1|2)d(3|4)" -- ../sub >actual && - test_cmp expect actual - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7814-grep-recurse-submodules/sub/.git/ -[master (root-commit) 41913eb] add file - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7814-grep-recurse-submodules/parent/.git/ -Cloning into '/build/git-2.30.2/t/trash directory.t7814-grep-recurse-submodules/parent/sub'... -done. -[master (root-commit) 014e5fc] add files and submodule - Author: A U Thor - 4 files changed, 6 insertions(+) - create mode 100644 .gitmodules - create mode 100644 file - create mode 100644 src/file2 - create mode 160000 sub -ok 18 - grep using relative path - -expecting success of 7814.19 'grep from a subdir': - test_when_finished "rm -rf parent sub" && - git init sub && - echo "(1|2)d(3|4)" >sub/file && - git -C sub add file && - git -C sub commit -m "add file" && - test_tick && - - git init parent && - mkdir parent/src && - echo "(1|2)d(3|4)" >parent/src/file && - git -C parent add src/file && - test_config_global protocol.file.allow always && - git -C parent submodule add ../sub src/sub && - git -C parent submodule add ../sub sub && - git -C parent commit -m "add files and submodules" && - test_tick && - - # Verify grep from root works - cat >expect <<-\EOF && - src/file:(1|2)d(3|4) - src/sub/file:(1|2)d(3|4) - sub/file:(1|2)d(3|4) - EOF - git -C parent grep --recurse-submodules -e "(1|2)d(3|4)" >actual && - test_cmp expect actual && - - # Verify grep from a subdir works - cat >expect <<-\EOF && - file:(1|2)d(3|4) - sub/file:(1|2)d(3|4) - EOF - git -C parent/src grep --recurse-submodules -e "(1|2)d(3|4)" >actual && - test_cmp expect actual - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7814-grep-recurse-submodules/sub/.git/ -[master (root-commit) 1a98ea2] add file - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7814-grep-recurse-submodules/parent/.git/ -Cloning into '/build/git-2.30.2/t/trash directory.t7814-grep-recurse-submodules/parent/src/sub'... -done. -Cloning into '/build/git-2.30.2/t/trash directory.t7814-grep-recurse-submodules/parent/sub'... -done. -[master (root-commit) ca3476d] add files and submodules - Author: A U Thor - 4 files changed, 9 insertions(+) - create mode 100644 .gitmodules - create mode 100644 src/file - create mode 160000 src/sub - create mode 160000 sub -ok 19 - grep from a subdir - -expecting success of 7814.20 '--recurse-submodules and --untracked are incompatible': - test_must_fail git grep -e. --recurse-submodules --untracked 2>actual && - test_i18ngrep 'not supported with --recurse-submodules' actual - -checking prerequisite: C_LOCALE_OUTPUT - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false - -) -prerequisite C_LOCALE_OUTPUT ok -fatal: --untracked not supported with --recurse-submodules -ok 20 - --recurse-submodules and --untracked are incompatible - -expecting success of 7814.21 'grep --recurse-submodules --no-index ignores --recurse-submodules': - git grep --recurse-submodules --no-index -e "^(.|.)[\d]" >actual && - cat >expect <<-\EOF && - a:(1|2)d(3|4) - submodule/a:(1|2)d(3|4) - submodule/sub/a:(1|2)d(3|4) - EOF - test_cmp expect actual - -ok 21 - grep --recurse-submodules --no-index ignores --recurse-submodules - -expecting success of 7814.22 'grep --recurse-submodules should pass the pattern type along': - # Fixed - test_must_fail git grep -F --recurse-submodules -e "(.|.)[\d]" && - test_must_fail git -c grep.patternType=fixed grep --recurse-submodules -e "(.|.)[\d]" && - - # Basic - git grep -G --recurse-submodules -e "(.|.)[\d]" >actual && - cat >expect <<-\EOF && - a:(1|2)d(3|4) - submodule/a:(1|2)d(3|4) - submodule/sub/a:(1|2)d(3|4) - EOF - test_cmp expect actual && - git -c grep.patternType=basic grep --recurse-submodules -e "(.|.)[\d]" >actual && - test_cmp expect actual && - - # Extended - git grep -E --recurse-submodules -e "(.|.)[\d]" >actual && - cat >expect <<-\EOF && - .gitmodules:[submodule "submodule"] - .gitmodules: path = submodule - .gitmodules: url = ./submodule - a:(1|2)d(3|4) - submodule/.gitmodules:[submodule "sub"] - submodule/a:(1|2)d(3|4) - submodule/sub/a:(1|2)d(3|4) - EOF - test_cmp expect actual && - git -c grep.patternType=extended grep --recurse-submodules -e "(.|.)[\d]" >actual && - test_cmp expect actual && - git -c grep.extendedRegexp=true grep --recurse-submodules -e "(.|.)[\d]" >actual && - test_cmp expect actual && - - # Perl - if test_have_prereq PCRE - then - git grep -P --recurse-submodules -e "(.|.)[\d]" >actual && - cat >expect <<-\EOF && - a:(1|2)d(3|4) - b/b:(3|4) - submodule/a:(1|2)d(3|4) - submodule/sub/a:(1|2)d(3|4) - EOF - test_cmp expect actual && - git -c grep.patternType=perl grep --recurse-submodules -e "(.|.)[\d]" >actual && - test_cmp expect actual - fi - -ok 22 - grep --recurse-submodules should pass the pattern type along - -expecting success of 7814.23 'grep --recurse-submodules with submodules without .gitmodules in the working tree': - test_when_finished "git -C submodule checkout .gitmodules" && - rm submodule/.gitmodules && - git grep --recurse-submodules -e "(.|.)[\d]" >actual && - cat >expect <<-\EOF && - a:(1|2)d(3|4) - submodule/a:(1|2)d(3|4) - submodule/sub/a:(1|2)d(3|4) - EOF - test_cmp expect actual - -Updated 1 path from the index -ok 23 - grep --recurse-submodules with submodules without .gitmodules in the working tree - -expecting success of 7814.24 'grep --recurse-submodules without --cached considers worktree modifications': - reset_and_clean && - echo "A modified line in submodule" >>submodule/a && - echo "submodule/a:A modified line in submodule" >expect && - git grep --recurse-submodules "A modified line in submodule" >actual && - test_cmp expect actual - -HEAD is now at bea0037 updated submodule -Removing .gitconfig -Removing actual -Removing expect -Entering 'submodule' -HEAD is now at d30b891 added sub -Entering 'submodule/sub' -HEAD is now at 0fb48cf add a -Entering 'submodule' -Entering 'submodule/sub' -ok 24 - grep --recurse-submodules without --cached considers worktree modifications - -expecting success of 7814.25 'grep --recurse-submodules with --cached ignores worktree modifications': - reset_and_clean && - echo "A modified line in submodule" >>submodule/a && - test_must_fail git grep --recurse-submodules --cached "A modified line in submodule" >actual 2>&1 && - test_must_be_empty actual - -HEAD is now at bea0037 updated submodule -Removing actual -Removing expect -Entering 'submodule' -HEAD is now at d30b891 added sub -Entering 'submodule/sub' -HEAD is now at 0fb48cf add a -Entering 'submodule' -Entering 'submodule/sub' -ok 25 - grep --recurse-submodules with --cached ignores worktree modifications - -# passed all 25 test(s) -1..25 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' *** t7900-maintenance.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t7900-maintenance/.git/ expecting success of 7900.1 'help text': @@ -382604,8 +382437,8 @@ test_subcommand git gc --no-quiet .enabled': @@ -382631,7 +382464,7 @@ test_subcommand ! git gc --quiet .enabled expecting success of 7900.5 'run --task=': @@ -382650,11 +382483,11 @@ test_subcommand ! git commit-graph write --split --reachable --no-progress expecting success of 7900.6 'core.commitGraph=false prevents write process': @@ -382702,9 +382535,9 @@ Author: A U Thor [master fa248cf] third Author: A U Thor -{"event":"child_start","sid":"20230429T164652.300668Z-H5162f302-P0000607c","thread":"main","time":"2023-04-29T16:46:52.301980Z","file":"run-command.c","line":736,"child_id":0,"child_class":"?","use_shell":false,"argv":["git","commit-graph","write","--split","--reachable","--no-progress"]} -{"event":"child_start","sid":"20230429T164652.437797Z-H5162f302-P000060a5","thread":"main","time":"2023-04-29T16:46:52.440462Z","file":"run-command.c","line":736,"child_id":0,"child_class":"?","use_shell":false,"argv":["git","commit-graph","write","--split","--reachable","--no-progress"]} -{"event":"child_start","sid":"20230429T164652.549757Z-H5162f302-P000060d3","thread":"main","time":"2023-04-29T16:46:52.552663Z","file":"run-command.c","line":736,"child_id":0,"child_class":"?","use_shell":false,"argv":["git","commit-graph","write","--split","--reachable","--no-progress"]} +{"event":"child_start","sid":"20230429T183855.783223Z-H5c947e1c-P00005ec9","thread":"main","time":"2023-04-29T18:38:55.796518Z","file":"run-command.c","line":736,"child_id":0,"child_class":"?","use_shell":false,"argv":["git","commit-graph","write","--split","--reachable","--no-progress"]} +{"event":"child_start","sid":"20230429T183856.122365Z-H5c947e1c-P00005eff","thread":"main","time":"2023-04-29T18:38:56.141558Z","file":"run-command.c","line":736,"child_id":0,"child_class":"?","use_shell":false,"argv":["git","commit-graph","write","--split","--reachable","--no-progress"]} +{"event":"child_start","sid":"20230429T183856.466455Z-H5c947e1c-P00005f3b","thread":"main","time":"2023-04-29T18:38:56.484111Z","file":"run-command.c","line":736,"child_id":0,"child_class":"?","use_shell":false,"argv":["git","commit-graph","write","--split","--reachable","--no-progress"]} ok 7 - commit-graph auto condition expecting success of 7900.8 'run --task=bogus': @@ -382761,8 +382594,8 @@ Author: A U Thor 1 file changed, 1 insertion(+) create mode 100644 two.t -{"event":"child_start","sid":"20230429T164653.397994Z-H5162f302-P000061d4","thread":"main","time":"2023-04-29T16:46:53.399307Z","file":"run-command.c","line":736,"child_id":0,"child_class":"?","use_shell":false,"argv":["git","fetch","remote1","--prune","--no-tags","--no-write-fetch-head","--recurse-submodules=no","--refmap=","--quiet","+refs/heads/*:refs/prefetch/remote1/*"]} -{"event":"child_start","sid":"20230429T164653.397994Z-H5162f302-P000061d4","thread":"main","time":"2023-04-29T16:46:53.539788Z","file":"run-command.c","line":736,"child_id":1,"child_class":"?","use_shell":false,"argv":["git","fetch","remote2","--prune","--no-tags","--no-write-fetch-head","--recurse-submodules=no","--refmap=","--quiet","+refs/heads/*:refs/prefetch/remote2/*"]} +{"event":"child_start","sid":"20230429T183858.226214Z-H5c947e1c-P00006088","thread":"main","time":"2023-04-29T18:38:58.227370Z","file":"run-command.c","line":736,"child_id":0,"child_class":"?","use_shell":false,"argv":["git","fetch","remote1","--prune","--no-tags","--no-write-fetch-head","--recurse-submodules=no","--refmap=","--quiet","+refs/heads/*:refs/prefetch/remote1/*"]} +{"event":"child_start","sid":"20230429T183858.226214Z-H5c947e1c-P00006088","thread":"main","time":"2023-04-29T18:38:58.520167Z","file":"run-command.c","line":736,"child_id":1,"child_class":"?","use_shell":false,"argv":["git","fetch","remote2","--prune","--no-tags","--no-write-fetch-head","--recurse-submodules=no","--refmap=","--quiet","+refs/heads/*:refs/prefetch/remote2/*"]} commit e779b3967abc4fd38a0961b501c6e2ec4b1da869 Author: A U Thor Date: Thu Apr 7 15:14:13 2005 -0700 @@ -382926,8 +382759,8 @@ 07163daad06a0119b0a241cf1882adae4f88fd56 4e26d6d394bf76d04cf3ab6f994c0bcaaf1a0a2f b45f8ed9850b966e2e4097582fd20e83ec6714cd -{"event":"child_start","sid":"20230429T164654.965874Z-H5162f302-P00006354","thread":"main","time":"2023-04-29T16:46:54.971756Z","file":"run-command.c","line":736,"child_id":0,"child_class":"?","use_shell":false,"argv":["git","prune-packed","--quiet"]} -{"event":"child_start","sid":"20230429T164655.089665Z-H5162f302-P0000636e","thread":"main","time":"2023-04-29T16:46:55.091386Z","file":"run-command.c","line":736,"child_id":0,"child_class":"?","use_shell":false,"argv":["git","prune-packed","--quiet"]} +{"event":"child_start","sid":"20230429T183901.151608Z-H5c947e1c-P000062b5","thread":"main","time":"2023-04-29T18:39:01.161504Z","file":"run-command.c","line":736,"child_id":0,"child_class":"?","use_shell":false,"argv":["git","prune-packed","--quiet"]} +{"event":"child_start","sid":"20230429T183902.878214Z-H5c947e1c-P00006319","thread":"main","time":"2023-04-29T18:39:02.879789Z","file":"run-command.c","line":736,"child_id":0,"child_class":"?","use_shell":false,"argv":["git","prune-packed","--quiet"]} ok 13 - maintenance.loose-objects.auto expecting success of 7900.14 'incremental-repack task': @@ -383038,8 +382871,8 @@ error: refs/remotes/remote2/two does not point to a valid object! error: refs/tags/one does not point to a valid object! error: refs/tags/two does not point to a valid object! -warning: reflog of 'refs/remotes/remote1/one' references pruned commits warning: reflog of 'refs/remotes/remote2/two' references pruned commits +warning: reflog of 'refs/remotes/remote1/one' references pruned commits error: refs/tags/one does not point to a valid object! error: refs/tags/two does not point to a valid object! error: refs/prefetch/remote1/one does not point to a valid object! @@ -383074,7 +382907,7 @@ error: refs/tags/one does not point to a valid object! error: refs/tags/two does not point to a valid object! e4cf5ca50b6b93ba5abf290d21e179f941e7c605 -{"event":"child_start","sid":"20230429T164657.180630Z-H5162f302-P0000658c","thread":"main","time":"2023-04-29T16:46:57.182283Z","file":"run-command.c","line":736,"child_id":0,"child_class":"?","use_shell":false,"argv":["git","multi-pack-index","write","--no-progress"]} +{"event":"child_start","sid":"20230429T183907.780709Z-H5c947e1c-P0000665b","thread":"main","time":"2023-04-29T18:39:07.782207Z","file":"run-command.c","line":736,"child_id":0,"child_class":"?","use_shell":false,"argv":["git","multi-pack-index","write","--no-progress"]} ok 16 - maintenance.incremental-repack.auto expecting success of 7900.17 '--auto and --schedule incompatible': @@ -383120,12 +382953,12 @@ --no-progress daily -> hourly expecting success of 7900.20 'maintenance.strategy inheritance': @@ -383198,13 +383031,13 @@ error: refs/remotes/remote2/two does not point to a valid object! error: refs/tags/two does not point to a valid object! a0b14b8460c22cd5dc292db01726ca1ca247c4bf -{"event":"child_start","sid":"20230429T164658.092692Z-H5162f302-P000066c7","thread":"main","time":"2023-04-29T16:46:58.368516Z","file":"run-command.c","line":736,"child_id":2,"child_class":"?","use_shell":false,"argv":["git","commit-graph","write","--split","--reachable","--no-progress"]} -{"event":"child_start","sid":"20230429T164658.441946Z-H5162f302-P0000673d","thread":"main","time":"2023-04-29T16:46:58.841445Z","file":"run-command.c","line":736,"child_id":7,"child_class":"?","use_shell":false,"argv":["git","commit-graph","write","--split","--reachable","--no-progress"]} -{"event":"child_start","sid":"20230429T164658.441946Z-H5162f302-P0000673d","thread":"main","time":"2023-04-29T16:46:58.660115Z","file":"run-command.c","line":736,"child_id":2,"child_class":"?","use_shell":false,"argv":["git","prune-packed","--quiet"]} -{"event":"child_start","sid":"20230429T164658.441946Z-H5162f302-P0000673d","thread":"main","time":"2023-04-29T16:46:58.743033Z","file":"run-command.c","line":736,"child_id":4,"child_class":"?","use_shell":false,"argv":["git","multi-pack-index","write","--no-progress"]} -{"event":"child_start","sid":"20230429T164659.034134Z-H5162f302-P000067e3","thread":"main","time":"2023-04-29T16:46:59.246886Z","file":"run-command.c","line":736,"child_id":2,"child_class":"?","use_shell":false,"argv":["git","prune-packed","--quiet"]} -{"event":"child_start","sid":"20230429T164659.265768Z-H5162f302-P0000681c","thread":"main","time":"2023-04-29T16:46:59.467261Z","file":"run-command.c","line":736,"child_id":3,"child_class":"?","use_shell":false,"argv":["git","commit-graph","write","--split","--reachable","--no-progress"]} -{"event":"child_start","sid":"20230429T164659.265768Z-H5162f302-P0000681c","thread":"main","time":"2023-04-29T16:46:59.443867Z","file":"run-command.c","line":736,"child_id":2,"child_class":"?","use_shell":false,"argv":["git","prune-packed","--quiet"]} +{"event":"child_start","sid":"20230429T183909.882305Z-H5c947e1c-P000067d9","thread":"main","time":"2023-04-29T18:39:10.396621Z","file":"run-command.c","line":736,"child_id":2,"child_class":"?","use_shell":false,"argv":["git","commit-graph","write","--split","--reachable","--no-progress"]} +{"event":"child_start","sid":"20230429T183910.582242Z-H5c947e1c-P0000685e","thread":"main","time":"2023-04-29T18:39:11.521498Z","file":"run-command.c","line":736,"child_id":7,"child_class":"?","use_shell":false,"argv":["git","commit-graph","write","--split","--reachable","--no-progress"]} +{"event":"child_start","sid":"20230429T183910.582242Z-H5c947e1c-P0000685e","thread":"main","time":"2023-04-29T18:39:11.025630Z","file":"run-command.c","line":736,"child_id":2,"child_class":"?","use_shell":false,"argv":["git","prune-packed","--quiet"]} +{"event":"child_start","sid":"20230429T183910.582242Z-H5c947e1c-P0000685e","thread":"main","time":"2023-04-29T18:39:11.273378Z","file":"run-command.c","line":736,"child_id":4,"child_class":"?","use_shell":false,"argv":["git","multi-pack-index","write","--no-progress"]} +{"event":"child_start","sid":"20230429T183911.922424Z-H5c947e1c-P00006939","thread":"main","time":"2023-04-29T18:39:12.221866Z","file":"run-command.c","line":736,"child_id":2,"child_class":"?","use_shell":false,"argv":["git","prune-packed","--quiet"]} +{"event":"child_start","sid":"20230429T183912.306590Z-H5c947e1c-P00006974","thread":"main","time":"2023-04-29T18:39:12.751065Z","file":"run-command.c","line":736,"child_id":3,"child_class":"?","use_shell":false,"argv":["git","commit-graph","write","--split","--reachable","--no-progress"]} +{"event":"child_start","sid":"20230429T183912.306590Z-H5c947e1c-P00006974","thread":"main","time":"2023-04-29T18:39:12.713497Z","file":"run-command.c","line":736,"child_id":2,"child_class":"?","use_shell":false,"argv":["git","prune-packed","--quiet"]} ok 20 - maintenance.strategy inheritance expecting success of 7900.21 'register and unregister': @@ -384386,225 +384219,822 @@ fatal: given pattern contains NULL byte (via -f ). This is only supported with -P under PCRE v2 ok 120 - error, PCRE v2 only: LC_ALL='C' git grep -f f -i 'YNOMATCH' a -expecting success of 7816.121 'LC_ALL='is_IS.utf8' git grep -P -f f -i 'YNOMATCH' a': - >stderr && - printf 'YQNOMATCH' | q_to_nul >f && - test_must_fail env LC_ALL="is_IS.utf8" git grep -P -f f -i a 2>stderr && - test_i18ngrep ! 'This is only supported with -P under PCRE v2' stderr - -ok 121 - LC_ALL='is_IS.utf8' git grep -P -f f -i 'YNOMATCH' a +expecting success of 7816.121 'LC_ALL='is_IS.utf8' git grep -P -f f -i 'YNOMATCH' a': + >stderr && + printf 'YQNOMATCH' | q_to_nul >f && + test_must_fail env LC_ALL="is_IS.utf8" git grep -P -f f -i a 2>stderr && + test_i18ngrep ! 'This is only supported with -P under PCRE v2' stderr + +ok 121 - LC_ALL='is_IS.utf8' git grep -P -f f -i 'YNOMATCH' a + +expecting success of 7816.122 'error, PCRE v2 only: LC_ALL='C' git grep -f f -i 'NOMATCH' a': + >stderr && + printf 'QNOMATCH' | q_to_nul >f && + test_must_fail env LC_ALL="C" git grep -f f -i a 2>stderr && + test_i18ngrep 'This is only supported with -P under PCRE v2' stderr + +fatal: given pattern contains NULL byte (via -f ). This is only supported with -P under PCRE v2 +ok 122 - error, PCRE v2 only: LC_ALL='C' git grep -f f -i 'NOMATCH' a + +expecting success of 7816.123 'error, PCRE v2 only: LC_ALL='C' git grep -f f -i 'NOMATCH' a': + >stderr && + printf 'QNOMATCH' | q_to_nul >f && + test_must_fail env LC_ALL="C" git grep -f f -i a 2>stderr && + test_i18ngrep 'This is only supported with -P under PCRE v2' stderr + +fatal: given pattern contains NULL byte (via -f ). This is only supported with -P under PCRE v2 +ok 123 - error, PCRE v2 only: LC_ALL='C' git grep -f f -i 'NOMATCH' a + +expecting success of 7816.124 'LC_ALL='is_IS.utf8' git grep -P -f f -i 'NOMATCH' a': + >stderr && + printf 'QNOMATCH' | q_to_nul >f && + test_must_fail env LC_ALL="is_IS.utf8" git grep -P -f f -i a 2>stderr && + test_i18ngrep ! 'This is only supported with -P under PCRE v2' stderr + +ok 124 - LC_ALL='is_IS.utf8' git grep -P -f f -i 'NOMATCH' a + +expecting success of 7816.125 'error, PCRE v2 only: LC_ALL='C' git grep -f f -F 'æ[ð]' a': + >stderr && + printf 'æQ[ð]' | q_to_nul >f && + test_must_fail env LC_ALL="C" git grep -f f -F a 2>stderr && + test_i18ngrep 'This is only supported with -P under PCRE v2' stderr + +fatal: given pattern contains NULL byte (via -f ). This is only supported with -P under PCRE v2 +ok 125 - error, PCRE v2 only: LC_ALL='C' git grep -f f -F 'æ[ð]' a + +expecting success of 7816.126 'error, PCRE v2 only: LC_ALL='C' git grep -f f -F 'æ[ð]' a': + >stderr && + printf 'æQ[ð]' | q_to_nul >f && + test_must_fail env LC_ALL="C" git grep -f f -F a 2>stderr && + test_i18ngrep 'This is only supported with -P under PCRE v2' stderr + +fatal: given pattern contains NULL byte (via -f ). This is only supported with -P under PCRE v2 +ok 126 - error, PCRE v2 only: LC_ALL='C' git grep -f f -F 'æ[ð]' a + +expecting success of 7816.127 'error, PCRE v2 only: LC_ALL='is_IS.utf8' git grep -f f -F 'æ[ð]' a': + >stderr && + printf 'æQ[ð]' | q_to_nul >f && + test_must_fail env LC_ALL="is_IS.utf8" git grep -f f -F a 2>stderr && + test_i18ngrep 'This is only supported with -P under PCRE v2' stderr + +fatal: given pattern contains NULL byte (via -f ). This is only supported with -P under PCRE v2 +ok 127 - error, PCRE v2 only: LC_ALL='is_IS.utf8' git grep -f f -F 'æ[ð]' a + +expecting success of 7816.128 'error, PCRE v2 only: LC_ALL='C' git grep -f f -Fi 'Æ[Ã]' a': + >stderr && + printf 'ÆQ[Ã]' | q_to_nul >f && + test_must_fail env LC_ALL="C" git grep -f f -Fi a 2>stderr && + test_i18ngrep 'This is only supported with -P under PCRE v2' stderr + +fatal: given pattern contains NULL byte (via -f ). This is only supported with -P under PCRE v2 +ok 128 - error, PCRE v2 only: LC_ALL='C' git grep -f f -Fi 'Æ[Ã]' a + +expecting success of 7816.129 'error, PCRE v2 only: LC_ALL='C' git grep -f f -Fi 'Æ[Ã]' a': + >stderr && + printf 'ÆQ[Ã]' | q_to_nul >f && + test_must_fail env LC_ALL="C" git grep -f f -Fi a 2>stderr && + test_i18ngrep 'This is only supported with -P under PCRE v2' stderr + +fatal: given pattern contains NULL byte (via -f ). This is only supported with -P under PCRE v2 +ok 129 - error, PCRE v2 only: LC_ALL='C' git grep -f f -Fi 'Æ[Ã]' a + +expecting success of 7816.130 'error, PCRE v2 only: LC_ALL='is_IS.utf8' git grep -f f -Fi 'Æ[Ã]' a': + >stderr && + printf 'ÆQ[Ã]' | q_to_nul >f && + test_must_fail env LC_ALL="is_IS.utf8" git grep -f f -Fi a 2>stderr && + test_i18ngrep 'This is only supported with -P under PCRE v2' stderr + +fatal: given pattern contains NULL byte (via -f ). This is only supported with -P under PCRE v2 +ok 130 - error, PCRE v2 only: LC_ALL='is_IS.utf8' git grep -f f -Fi 'Æ[Ã]' a + +expecting success of 7816.131 'error, PCRE v2 only: LC_ALL='C' git grep -f f -i 'Æ[Ã]' a': + >stderr && + printf 'ÆQ[Ã]' | q_to_nul >f && + test_must_fail env LC_ALL="C" git grep -f f -i a 2>stderr && + test_i18ngrep 'This is only supported with -P under PCRE v2' stderr + +fatal: given pattern contains NULL byte (via -f ). This is only supported with -P under PCRE v2 +ok 131 - error, PCRE v2 only: LC_ALL='C' git grep -f f -i 'Æ[Ã]' a + +expecting success of 7816.132 'error, PCRE v2 only: LC_ALL='C' git grep -f f -i 'Æ[Ã]' a': + >stderr && + printf 'ÆQ[Ã]' | q_to_nul >f && + test_must_fail env LC_ALL="C" git grep -f f -i a 2>stderr && + test_i18ngrep 'This is only supported with -P under PCRE v2' stderr + +fatal: given pattern contains NULL byte (via -f ). This is only supported with -P under PCRE v2 +ok 132 - error, PCRE v2 only: LC_ALL='C' git grep -f f -i 'Æ[Ã]' a + +expecting success of 7816.133 'LC_ALL='is_IS.utf8' git grep -P -f f -i 'Æ[Ã]' a': + printf 'ÆQ[Ã]' | q_to_nul >f && + LC_ALL='is_IS.utf8' git grep -P -f f -i a + +Binary file a matches +ok 133 - LC_ALL='is_IS.utf8' git grep -P -f f -i 'Æ[Ã]' a + +expecting success of 7816.134 'error, PCRE v2 only: LC_ALL='C' git grep -f f 'yNÓMATCH' a': + >stderr && + printf 'yQNÓMATCH' | q_to_nul >f && + test_must_fail env LC_ALL="C" git grep -f f a 2>stderr && + test_i18ngrep 'This is only supported with -P under PCRE v2' stderr + +fatal: given pattern contains NULL byte (via -f ). This is only supported with -P under PCRE v2 +ok 134 - error, PCRE v2 only: LC_ALL='C' git grep -f f 'yNÓMATCH' a + +expecting success of 7816.135 'error, PCRE v2 only: LC_ALL='C' git grep -f f 'yNÓMATCH' a': + >stderr && + printf 'yQNÓMATCH' | q_to_nul >f && + test_must_fail env LC_ALL="C" git grep -f f a 2>stderr && + test_i18ngrep 'This is only supported with -P under PCRE v2' stderr + +fatal: given pattern contains NULL byte (via -f ). This is only supported with -P under PCRE v2 +ok 135 - error, PCRE v2 only: LC_ALL='C' git grep -f f 'yNÓMATCH' a + +expecting success of 7816.136 'LC_ALL='is_IS.utf8' git grep -P -f f 'yNÓMATCH' a': + >stderr && + printf 'yQNÓMATCH' | q_to_nul >f && + test_must_fail env LC_ALL="is_IS.utf8" git grep -P -f f a 2>stderr && + test_i18ngrep ! 'This is only supported with -P under PCRE v2' stderr + +ok 136 - LC_ALL='is_IS.utf8' git grep -P -f f 'yNÓMATCH' a + +expecting success of 7816.137 'error, PCRE v2 only: LC_ALL='C' git grep -f f 'NÓMATCH' a': + >stderr && + printf 'QNÓMATCH' | q_to_nul >f && + test_must_fail env LC_ALL="C" git grep -f f a 2>stderr && + test_i18ngrep 'This is only supported with -P under PCRE v2' stderr + +fatal: given pattern contains NULL byte (via -f ). This is only supported with -P under PCRE v2 +ok 137 - error, PCRE v2 only: LC_ALL='C' git grep -f f 'NÓMATCH' a + +expecting success of 7816.138 'error, PCRE v2 only: LC_ALL='C' git grep -f f 'NÓMATCH' a': + >stderr && + printf 'QNÓMATCH' | q_to_nul >f && + test_must_fail env LC_ALL="C" git grep -f f a 2>stderr && + test_i18ngrep 'This is only supported with -P under PCRE v2' stderr + +fatal: given pattern contains NULL byte (via -f ). This is only supported with -P under PCRE v2 +ok 138 - error, PCRE v2 only: LC_ALL='C' git grep -f f 'NÓMATCH' a + +expecting success of 7816.139 'LC_ALL='is_IS.utf8' git grep -P -f f 'NÓMATCH' a': + >stderr && + printf 'QNÓMATCH' | q_to_nul >f && + test_must_fail env LC_ALL="is_IS.utf8" git grep -P -f f a 2>stderr && + test_i18ngrep ! 'This is only supported with -P under PCRE v2' stderr + +ok 139 - LC_ALL='is_IS.utf8' git grep -P -f f 'NÓMATCH' a + +expecting success of 7816.140 'error, PCRE v2 only: LC_ALL='C' git grep -f f -i 'YNÓMATCH' a': + >stderr && + printf 'YQNÓMATCH' | q_to_nul >f && + test_must_fail env LC_ALL="C" git grep -f f -i a 2>stderr && + test_i18ngrep 'This is only supported with -P under PCRE v2' stderr + +fatal: given pattern contains NULL byte (via -f ). This is only supported with -P under PCRE v2 +ok 140 - error, PCRE v2 only: LC_ALL='C' git grep -f f -i 'YNÓMATCH' a + +expecting success of 7816.141 'error, PCRE v2 only: LC_ALL='C' git grep -f f -i 'YNÓMATCH' a': + >stderr && + printf 'YQNÓMATCH' | q_to_nul >f && + test_must_fail env LC_ALL="C" git grep -f f -i a 2>stderr && + test_i18ngrep 'This is only supported with -P under PCRE v2' stderr + +fatal: given pattern contains NULL byte (via -f ). This is only supported with -P under PCRE v2 +ok 141 - error, PCRE v2 only: LC_ALL='C' git grep -f f -i 'YNÓMATCH' a + +expecting success of 7816.142 'LC_ALL='is_IS.utf8' git grep -P -f f -i 'YNÓMATCH' a': + >stderr && + printf 'YQNÓMATCH' | q_to_nul >f && + test_must_fail env LC_ALL="is_IS.utf8" git grep -P -f f -i a 2>stderr && + test_i18ngrep ! 'This is only supported with -P under PCRE v2' stderr + +ok 142 - LC_ALL='is_IS.utf8' git grep -P -f f -i 'YNÓMATCH' a + +expecting success of 7816.143 'error, PCRE v2 only: LC_ALL='C' git grep -f f -i 'NÓMATCH' a': + >stderr && + printf 'QNÓMATCH' | q_to_nul >f && + test_must_fail env LC_ALL="C" git grep -f f -i a 2>stderr && + test_i18ngrep 'This is only supported with -P under PCRE v2' stderr + +fatal: given pattern contains NULL byte (via -f ). This is only supported with -P under PCRE v2 +ok 143 - error, PCRE v2 only: LC_ALL='C' git grep -f f -i 'NÓMATCH' a + +expecting success of 7816.144 'error, PCRE v2 only: LC_ALL='C' git grep -f f -i 'NÓMATCH' a': + >stderr && + printf 'QNÓMATCH' | q_to_nul >f && + test_must_fail env LC_ALL="C" git grep -f f -i a 2>stderr && + test_i18ngrep 'This is only supported with -P under PCRE v2' stderr + +fatal: given pattern contains NULL byte (via -f ). This is only supported with -P under PCRE v2 +ok 144 - error, PCRE v2 only: LC_ALL='C' git grep -f f -i 'NÓMATCH' a + +expecting success of 7816.145 'LC_ALL='is_IS.utf8' git grep -P -f f -i 'NÓMATCH' a': + >stderr && + printf 'QNÓMATCH' | q_to_nul >f && + test_must_fail env LC_ALL="is_IS.utf8" git grep -P -f f -i a 2>stderr && + test_i18ngrep ! 'This is only supported with -P under PCRE v2' stderr + +ok 145 - LC_ALL='is_IS.utf8' git grep -P -f f -i 'NÓMATCH' a + +# passed all 145 test(s) +1..145 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t8003-blame-corner-cases.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t8003-blame-corner-cases/.git/ +expecting success of 8003.1 'setup': + echo A A A A A >one && + echo B B B B B >two && + echo C C C C C >tres && + echo ABC >mouse && + for i in 1 2 3 4 5 6 7 8 9 + do + echo $i + done >nine_lines && + for i in 1 2 3 4 5 6 7 8 9 a + do + echo $i + done >ten_lines && + git add one two tres mouse nine_lines ten_lines && + test_tick && + GIT_AUTHOR_NAME=Initial git commit -m Initial && + + cat one >uno && + mv two dos && + cat one >>tres && + echo DEF >>mouse && + git add uno dos tres mouse && + test_tick && + GIT_AUTHOR_NAME=Second git commit -a -m Second && + + echo GHIJK >>mouse && + git add mouse && + test_tick && + GIT_AUTHOR_NAME=Third git commit -m Third && + + cat mouse >cow && + git add cow && + test_tick && + GIT_AUTHOR_NAME=Fourth git commit -m Fourth && + + cat >cow <<-\EOF && + ABC + DEF + XXXX + GHIJK + EOF + git add cow && + test_tick && + GIT_AUTHOR_NAME=Fifth git commit -m Fifth + +[master (root-commit) a7d6c31] Initial + Author: Initial + 6 files changed, 23 insertions(+) + create mode 100644 mouse + create mode 100644 nine_lines + create mode 100644 one + create mode 100644 ten_lines + create mode 100644 tres + create mode 100644 two +[master 480ef79] Second + Author: Second + 4 files changed, 3 insertions(+) + rename two => dos (100%) + create mode 100644 uno +[master 74385ca] Third + Author: Third + 1 file changed, 1 insertion(+) +[master 5b22ca3] Fourth + Author: Fourth + 1 file changed, 3 insertions(+) + create mode 100644 cow +[master 018e313] Fifth + Author: Fifth + 1 file changed, 1 insertion(+) +ok 1 - setup + +expecting success of 8003.2 'straight copy without -C': + + git blame uno | grep Second + + +480ef79e (Second 2005-04-07 15:14:13 -0700 1) A A A A A +ok 2 - straight copy without -C + +expecting success of 8003.3 'straight move without -C': + + git blame dos | grep Initial + + +^a7d6c31 two (Initial 2005-04-07 15:13:13 -0700 1) B B B B B +ok 3 - straight move without -C + +expecting success of 8003.4 'straight copy with -C': + + git blame -C1 uno | grep Second + + +480ef79e (Second 2005-04-07 15:14:13 -0700 1) A A A A A +ok 4 - straight copy with -C + +expecting success of 8003.5 'straight move with -C': + + git blame -C1 dos | grep Initial + + +^a7d6c31 two (Initial 2005-04-07 15:13:13 -0700 1) B B B B B +ok 5 - straight move with -C + +expecting success of 8003.6 'straight copy with -C -C': + + git blame -C -C1 uno | grep Initial + + +^a7d6c31 one (Initial 2005-04-07 15:13:13 -0700 1) A A A A A +ok 6 - straight copy with -C -C + +expecting success of 8003.7 'straight move with -C -C': + + git blame -C -C1 dos | grep Initial + + +^a7d6c31 two (Initial 2005-04-07 15:13:13 -0700 1) B B B B B +ok 7 - straight move with -C -C + +expecting success of 8003.8 'append without -C': + + git blame -L2 tres | grep Second + + +480ef79e (Second 2005-04-07 15:14:13 -0700 2) A A A A A +ok 8 - append without -C + +expecting success of 8003.9 'append with -C': + + git blame -L2 -C1 tres | grep Second + + +480ef79e (Second 2005-04-07 15:14:13 -0700 2) A A A A A +ok 9 - append with -C + +expecting success of 8003.10 'append with -C -C': + + git blame -L2 -C -C1 tres | grep Second + + +480ef79e (Second 2005-04-07 15:14:13 -0700 2) A A A A A +ok 10 - append with -C -C + +expecting success of 8003.11 'append with -C -C -C': + + git blame -L2 -C -C -C1 tres | grep Initial + + +^a7d6c31 one (Initial 2005-04-07 15:13:13 -0700 2) A A A A A +ok 11 - append with -C -C -C + +expecting success of 8003.12 'blame wholesale copy': + + git blame -f -C -C1 HEAD^ -- cow | sed -e "$pick_fc" >current && + cat >expected <<-\EOF && + mouse-Initial + mouse-Second + mouse-Third + EOF + test_cmp expected current + + +ok 12 - blame wholesale copy + +expecting success of 8003.13 'blame wholesale copy and more': + + git blame -f -C -C1 HEAD -- cow | sed -e "$pick_fc" >current && + cat >expected <<-\EOF && + mouse-Initial + mouse-Second + cow-Fifth + mouse-Third + EOF + test_cmp expected current + + +ok 13 - blame wholesale copy and more + +expecting success of 8003.14 'blame wholesale copy and more in the index': + + cat >horse <<-\EOF && + ABC + DEF + XXXX + YYYY + GHIJK + EOF + git add horse && + test_when_finished "git rm -f horse" && + git blame -f -C -C1 -- horse | sed -e "$pick_fc" >current && + cat >expected <<-\EOF && + mouse-Initial + mouse-Second + cow-Fifth + horse-Not + mouse-Third + EOF + test_cmp expected current + + +rm 'horse' +ok 14 - blame wholesale copy and more in the index + +expecting success of 8003.15 'blame during cherry-pick with file rename conflict': + + test_when_finished "git reset --hard && git checkout master" && + git checkout HEAD~3 && + echo MOUSE >> mouse && + git mv mouse rodent && + git add rodent && + GIT_AUTHOR_NAME=Rodent git commit -m "rodent" && + git checkout --detach master && + (git cherry-pick HEAD@{1} || test $? -eq 1) && + git show HEAD@{1}:rodent > rodent && + git add rodent && + git blame -f -C -C1 rodent | sed -e "$pick_fc" >current && + cat >expected <<-\EOF && + mouse-Initial + mouse-Second + rodent-Not + EOF + test_cmp expected current + +Note: switching to 'HEAD~3'. + +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. + +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: + + git switch -c + +Or undo this operation with: + + git switch - + +Turn off this advice by setting config variable advice.detachedHead to false + +HEAD is now at 480ef79 Second +[detached HEAD b1c6d57] rodent + Author: Rodent + 1 file changed, 1 insertion(+) + rename mouse => rodent (57%) +Warning: you are leaving 1 commit behind, not connected to +any of your branches: + + b1c6d57 rodent + +If you want to keep it by creating a new branch, this may be a good time +to do so with: + + git branch b1c6d57 + +HEAD is now at 018e313 Fifth +Auto-merging rodent +CONFLICT (content): Merge conflict in rodent +error: could not apply b1c6d57... rodent +hint: after resolving the conflicts, mark the corrected paths +hint: with 'git add ' or 'git rm ' +hint: and commit the result with 'git commit' +HEAD is now at 018e313 Fifth +Switched to branch 'master' +ok 15 - blame during cherry-pick with file rename conflict + +expecting success of 8003.16 'blame path that used to be a directory': + mkdir path && + echo A A A A A >path/file && + echo B B B B B >path/elif && + git add path && + test_tick && + git commit -m "path was a directory" && + rm -fr path && + echo A A A A A >path && + git add path && + test_tick && + git commit -m "path is a regular file" && + git blame HEAD^.. -- path + +[master 0aef879] path was a directory + Author: A U Thor + 2 files changed, 2 insertions(+) + create mode 100644 path/elif + create mode 100644 path/file +[master 846e53e] path is a regular file + Author: A U Thor + 2 files changed, 1 deletion(-) + rename path/file => path (100%) + delete mode 100644 path/elif +^0aef879 path/file (A U Thor 2005-04-07 15:18:13 -0700 1) A A A A A +ok 16 - blame path that used to be a directory + +expecting success of 8003.17 'blame to a commit with no author name': + TREE=$(git rev-parse HEAD:) && + cat >badcommit < 1234567890 +0000 +committer David Reiss 1234567890 +0000 + +some message +EOF + COMMIT=$(git hash-object -t commit -w badcommit) && + git --no-pager blame $COMMIT -- uno >/dev/null + +ok 17 - blame to a commit with no author name + +expecting success of 8003.18 'blame -L with invalid start': + test_must_fail git blame -L5 tres 2>errors && + test_i18ngrep "has only 2 lines" errors + +checking prerequisite: C_LOCALE_OUTPUT + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false + +) +prerequisite C_LOCALE_OUTPUT ok +fatal: file tres has only 2 lines +ok 18 - blame -L with invalid start + +expecting success of 8003.19 'blame -L with invalid end': + git blame -L1,5 tres >out && + test_line_count = 2 out + +ok 19 - blame -L with invalid end + +expecting success of 8003.20 'blame parses part of -L': + git blame -L1,1 tres >out && + test_line_count = 1 out + +ok 20 - blame parses part of -L + +expecting success of 8003.21 'blame -Ln,-(n+1)': + git blame -L3,-4 nine_lines >out && + test_line_count = 3 out + +ok 21 - blame -Ln,-(n+1) + +expecting success of 8003.22 'indent of line numbers, nine lines': + git blame nine_lines >actual && + test $(grep -c " " actual) = 0 + +ok 22 - indent of line numbers, nine lines + +expecting success of 8003.23 'indent of line numbers, ten lines': + git blame ten_lines >actual && + test $(grep -c " " actual) = 9 + +ok 23 - indent of line numbers, ten lines + +expecting success of 8003.24 'setup file with CRLF newlines': + git config core.autocrlf false && + printf "testcase\n" >crlffile && + git add crlffile && + git commit -m testcase && + printf "testcase\r\n" >crlffile + +[master 281288b] testcase + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 crlffile +ok 24 - setup file with CRLF newlines + +expecting success of 8003.25 'blame file with CRLF core.autocrlf true': + git config core.autocrlf true && + git blame crlffile >actual && + grep "A U Thor" actual + +281288b4 (A U Thor 2005-04-07 15:19:13 -0700 1) testcase +ok 25 - blame file with CRLF core.autocrlf true -expecting success of 7816.122 'error, PCRE v2 only: LC_ALL='C' git grep -f f -i 'NOMATCH' a': - >stderr && - printf 'QNOMATCH' | q_to_nul >f && - test_must_fail env LC_ALL="C" git grep -f f -i a 2>stderr && - test_i18ngrep 'This is only supported with -P under PCRE v2' stderr - -fatal: given pattern contains NULL byte (via -f ). This is only supported with -P under PCRE v2 -ok 122 - error, PCRE v2 only: LC_ALL='C' git grep -f f -i 'NOMATCH' a +expecting success of 8003.26 'blame file with CRLF attributes text': + git config core.autocrlf false && + echo "crlffile text" >.gitattributes && + git blame crlffile >actual && + grep "A U Thor" actual -expecting success of 7816.123 'error, PCRE v2 only: LC_ALL='C' git grep -f f -i 'NOMATCH' a': - >stderr && - printf 'QNOMATCH' | q_to_nul >f && - test_must_fail env LC_ALL="C" git grep -f f -i a 2>stderr && - test_i18ngrep 'This is only supported with -P under PCRE v2' stderr - -fatal: given pattern contains NULL byte (via -f ). This is only supported with -P under PCRE v2 -ok 123 - error, PCRE v2 only: LC_ALL='C' git grep -f f -i 'NOMATCH' a +281288b4 (A U Thor 2005-04-07 15:19:13 -0700 1) testcase +ok 26 - blame file with CRLF attributes text -expecting success of 7816.124 'LC_ALL='is_IS.utf8' git grep -P -f f -i 'NOMATCH' a': - >stderr && - printf 'QNOMATCH' | q_to_nul >f && - test_must_fail env LC_ALL="is_IS.utf8" git grep -P -f f -i a 2>stderr && - test_i18ngrep ! 'This is only supported with -P under PCRE v2' stderr - -ok 124 - LC_ALL='is_IS.utf8' git grep -P -f f -i 'NOMATCH' a +expecting success of 8003.27 'blame file with CRLF core.autocrlf=true': + git config core.autocrlf false && + printf "testcase\r\n" >crlfinrepo && + >.gitattributes && + git add crlfinrepo && + git commit -m "add crlfinrepo" && + git config core.autocrlf true && + mv crlfinrepo tmp && + git checkout crlfinrepo && + rm tmp && + git blame crlfinrepo >actual && + grep "A U Thor" actual -expecting success of 7816.125 'error, PCRE v2 only: LC_ALL='C' git grep -f f -F 'æ[ð]' a': - >stderr && - printf 'æQ[ð]' | q_to_nul >f && - test_must_fail env LC_ALL="C" git grep -f f -F a 2>stderr && - test_i18ngrep 'This is only supported with -P under PCRE v2' stderr - -fatal: given pattern contains NULL byte (via -f ). This is only supported with -P under PCRE v2 -ok 125 - error, PCRE v2 only: LC_ALL='C' git grep -f f -F 'æ[ð]' a +[master 2b0eeed] add crlfinrepo + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 crlfinrepo +Updated 1 path from the index +2b0eeed1 (A U Thor 2005-04-07 15:19:13 -0700 1) testcase +ok 27 - blame file with CRLF core.autocrlf=true -expecting success of 7816.126 'error, PCRE v2 only: LC_ALL='C' git grep -f f -F 'æ[ð]' a': - >stderr && - printf 'æQ[ð]' | q_to_nul >f && - test_must_fail env LC_ALL="C" git grep -f f -F a 2>stderr && - test_i18ngrep 'This is only supported with -P under PCRE v2' stderr - -fatal: given pattern contains NULL byte (via -f ). This is only supported with -P under PCRE v2 -ok 126 - error, PCRE v2 only: LC_ALL='C' git grep -f f -F 'æ[ð]' a +expecting success of 8003.28 'setup coalesce tests': + cat >giraffe <<-\EOF && + ABC + DEF + EOF + git add giraffe && + git commit -m "original file" && + orig=$(git rev-parse HEAD) && -expecting success of 7816.127 'error, PCRE v2 only: LC_ALL='is_IS.utf8' git grep -f f -F 'æ[ð]' a': - >stderr && - printf 'æQ[ð]' | q_to_nul >f && - test_must_fail env LC_ALL="is_IS.utf8" git grep -f f -F a 2>stderr && - test_i18ngrep 'This is only supported with -P under PCRE v2' stderr - -fatal: given pattern contains NULL byte (via -f ). This is only supported with -P under PCRE v2 -ok 127 - error, PCRE v2 only: LC_ALL='is_IS.utf8' git grep -f f -F 'æ[ð]' a + cat >giraffe <<-\EOF && + ABC + SPLIT + DEF + EOF + git add giraffe && + git commit -m "interior SPLIT line" && + split=$(git rev-parse HEAD) && -expecting success of 7816.128 'error, PCRE v2 only: LC_ALL='C' git grep -f f -Fi 'Æ[Ã]' a': - >stderr && - printf 'ÆQ[Ã]' | q_to_nul >f && - test_must_fail env LC_ALL="C" git grep -f f -Fi a 2>stderr && - test_i18ngrep 'This is only supported with -P under PCRE v2' stderr - -fatal: given pattern contains NULL byte (via -f ). This is only supported with -P under PCRE v2 -ok 128 - error, PCRE v2 only: LC_ALL='C' git grep -f f -Fi 'Æ[Ã]' a + cat >giraffe <<-\EOF && + ABC + DEF + EOF + git add giraffe && + git commit -m "same contents as original" && + final=$(git rev-parse HEAD) -expecting success of 7816.129 'error, PCRE v2 only: LC_ALL='C' git grep -f f -Fi 'Æ[Ã]' a': - >stderr && - printf 'ÆQ[Ã]' | q_to_nul >f && - test_must_fail env LC_ALL="C" git grep -f f -Fi a 2>stderr && - test_i18ngrep 'This is only supported with -P under PCRE v2' stderr - -fatal: given pattern contains NULL byte (via -f ). This is only supported with -P under PCRE v2 -ok 129 - error, PCRE v2 only: LC_ALL='C' git grep -f f -Fi 'Æ[Ã]' a +warning: LF will be replaced by CRLF in giraffe. +The file will have its original line endings in your working directory +[master 7531dad] original file + Author: A U Thor + 1 file changed, 2 insertions(+) + create mode 100644 giraffe +warning: LF will be replaced by CRLF in giraffe. +The file will have its original line endings in your working directory +[master e82fb63] interior SPLIT line + Author: A U Thor + 1 file changed, 1 insertion(+) +warning: LF will be replaced by CRLF in giraffe. +The file will have its original line endings in your working directory +[master 39e6f40] same contents as original + Author: A U Thor + 1 file changed, 1 deletion(-) +ok 28 - setup coalesce tests -expecting success of 7816.130 'error, PCRE v2 only: LC_ALL='is_IS.utf8' git grep -f f -Fi 'Æ[Ã]' a': - >stderr && - printf 'ÆQ[Ã]' | q_to_nul >f && - test_must_fail env LC_ALL="is_IS.utf8" git grep -f f -Fi a 2>stderr && - test_i18ngrep 'This is only supported with -P under PCRE v2' stderr - -fatal: given pattern contains NULL byte (via -f ). This is only supported with -P under PCRE v2 -ok 130 - error, PCRE v2 only: LC_ALL='is_IS.utf8' git grep -f f -Fi 'Æ[Ã]' a +expecting success of 8003.29 'blame coalesce': + cat >expect <<-EOF && + $orig 1 1 2 + $orig 2 2 + EOF + git blame --porcelain $final giraffe >actual.raw && + grep "^$orig" actual.raw >actual && + test_cmp expect actual -expecting success of 7816.131 'error, PCRE v2 only: LC_ALL='C' git grep -f f -i 'Æ[Ã]' a': - >stderr && - printf 'ÆQ[Ã]' | q_to_nul >f && - test_must_fail env LC_ALL="C" git grep -f f -i a 2>stderr && - test_i18ngrep 'This is only supported with -P under PCRE v2' stderr - -fatal: given pattern contains NULL byte (via -f ). This is only supported with -P under PCRE v2 -ok 131 - error, PCRE v2 only: LC_ALL='C' git grep -f f -i 'Æ[Ã]' a +ok 29 - blame coalesce -expecting success of 7816.132 'error, PCRE v2 only: LC_ALL='C' git grep -f f -i 'Æ[Ã]' a': - >stderr && - printf 'ÆQ[Ã]' | q_to_nul >f && - test_must_fail env LC_ALL="C" git grep -f f -i a 2>stderr && - test_i18ngrep 'This is only supported with -P under PCRE v2' stderr - -fatal: given pattern contains NULL byte (via -f ). This is only supported with -P under PCRE v2 -ok 132 - error, PCRE v2 only: LC_ALL='C' git grep -f f -i 'Æ[Ã]' a +expecting success of 8003.30 'blame does not coalesce non-adjacent result lines': + cat >expect <<-EOF && + $orig 1) ABC + $orig 3) DEF + EOF + git blame --no-abbrev -s -L1,1 -L3,3 $split giraffe >actual && + test_cmp expect actual -expecting success of 7816.133 'LC_ALL='is_IS.utf8' git grep -P -f f -i 'Æ[Ã]' a': - printf 'ÆQ[Ã]' | q_to_nul >f && - LC_ALL='is_IS.utf8' git grep -P -f f -i a - -Binary file a matches -ok 133 - LC_ALL='is_IS.utf8' git grep -P -f f -i 'Æ[Ã]' a +ok 30 - blame does not coalesce non-adjacent result lines -expecting success of 7816.134 'error, PCRE v2 only: LC_ALL='C' git grep -f f 'yNÓMATCH' a': - >stderr && - printf 'yQNÓMATCH' | q_to_nul >f && - test_must_fail env LC_ALL="C" git grep -f f a 2>stderr && - test_i18ngrep 'This is only supported with -P under PCRE v2' stderr - -fatal: given pattern contains NULL byte (via -f ). This is only supported with -P under PCRE v2 -ok 134 - error, PCRE v2 only: LC_ALL='C' git grep -f f 'yNÓMATCH' a +# passed all 30 test(s) +1..30 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t8004-blame-with-conflicts.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t8004-blame-with-conflicts/.git/ +expecting success of 8004.1 'setup first case': + # Create the old file + echo "Old line" > file1 && + git add file1 && + git commit --author "Old Line " -m file1.a && -expecting success of 7816.135 'error, PCRE v2 only: LC_ALL='C' git grep -f f 'yNÓMATCH' a': - >stderr && - printf 'yQNÓMATCH' | q_to_nul >f && - test_must_fail env LC_ALL="C" git grep -f f a 2>stderr && - test_i18ngrep 'This is only supported with -P under PCRE v2' stderr - -fatal: given pattern contains NULL byte (via -f ). This is only supported with -P under PCRE v2 -ok 135 - error, PCRE v2 only: LC_ALL='C' git grep -f f 'yNÓMATCH' a + # Branch + git checkout -b foo && -expecting success of 7816.136 'LC_ALL='is_IS.utf8' git grep -P -f f 'yNÓMATCH' a': - >stderr && - printf 'yQNÓMATCH' | q_to_nul >f && - test_must_fail env LC_ALL="is_IS.utf8" git grep -P -f f a 2>stderr && - test_i18ngrep ! 'This is only supported with -P under PCRE v2' stderr - -ok 136 - LC_ALL='is_IS.utf8' git grep -P -f f 'yNÓMATCH' a + # Do an ugly move and change + git rm file1 && + echo "New line ..." > file2 && + echo "... and more" >> file2 && + git add file2 && + git commit --author "U Gly " -m ugly && -expecting success of 7816.137 'error, PCRE v2 only: LC_ALL='C' git grep -f f 'NÓMATCH' a': - >stderr && - printf 'QNÓMATCH' | q_to_nul >f && - test_must_fail env LC_ALL="C" git grep -f f a 2>stderr && - test_i18ngrep 'This is only supported with -P under PCRE v2' stderr - -fatal: given pattern contains NULL byte (via -f ). This is only supported with -P under PCRE v2 -ok 137 - error, PCRE v2 only: LC_ALL='C' git grep -f f 'NÓMATCH' a + # Back to master and change something + git checkout master && + echo " -expecting success of 7816.138 'error, PCRE v2 only: LC_ALL='C' git grep -f f 'NÓMATCH' a': - >stderr && - printf 'QNÓMATCH' | q_to_nul >f && - test_must_fail env LC_ALL="C" git grep -f f a 2>stderr && - test_i18ngrep 'This is only supported with -P under PCRE v2' stderr - -fatal: given pattern contains NULL byte (via -f ). This is only supported with -P under PCRE v2 -ok 138 - error, PCRE v2 only: LC_ALL='C' git grep -f f 'NÓMATCH' a +bla" >> file1 && + git commit --author "Old Line " -a -m file1.b && -expecting success of 7816.139 'LC_ALL='is_IS.utf8' git grep -P -f f 'NÓMATCH' a': - >stderr && - printf 'QNÓMATCH' | q_to_nul >f && - test_must_fail env LC_ALL="is_IS.utf8" git grep -P -f f a 2>stderr && - test_i18ngrep ! 'This is only supported with -P under PCRE v2' stderr - -ok 139 - LC_ALL='is_IS.utf8' git grep -P -f f 'NÓMATCH' a + # Back to foo and merge master + git checkout foo && + if git merge master; then + echo needed conflict here + exit 1 + else + echo merge failed - resolving automatically + fi && + echo "New line ... +... and more -expecting success of 7816.140 'error, PCRE v2 only: LC_ALL='C' git grep -f f -i 'YNÓMATCH' a': - >stderr && - printf 'YQNÓMATCH' | q_to_nul >f && - test_must_fail env LC_ALL="C" git grep -f f -i a 2>stderr && - test_i18ngrep 'This is only supported with -P under PCRE v2' stderr - -fatal: given pattern contains NULL byte (via -f ). This is only supported with -P under PCRE v2 -ok 140 - error, PCRE v2 only: LC_ALL='C' git grep -f f -i 'YNÓMATCH' a +bla +Even more" > file2 && + git rm file1 && + git commit --author "M Result " -a -m merged && -expecting success of 7816.141 'error, PCRE v2 only: LC_ALL='C' git grep -f f -i 'YNÓMATCH' a': - >stderr && - printf 'YQNÓMATCH' | q_to_nul >f && - test_must_fail env LC_ALL="C" git grep -f f -i a 2>stderr && - test_i18ngrep 'This is only supported with -P under PCRE v2' stderr - -fatal: given pattern contains NULL byte (via -f ). This is only supported with -P under PCRE v2 -ok 141 - error, PCRE v2 only: LC_ALL='C' git grep -f f -i 'YNÓMATCH' a + # Back to master and change file1 again + git checkout master && + sed s/bla/foo/ X && + rm file1 && + mv X file1 && + git commit --author "No Bla " -a -m replace && -expecting success of 7816.142 'LC_ALL='is_IS.utf8' git grep -P -f f -i 'YNÓMATCH' a': - >stderr && - printf 'YQNÓMATCH' | q_to_nul >f && - test_must_fail env LC_ALL="is_IS.utf8" git grep -P -f f -i a 2>stderr && - test_i18ngrep ! 'This is only supported with -P under PCRE v2' stderr - -ok 142 - LC_ALL='is_IS.utf8' git grep -P -f f -i 'YNÓMATCH' a + # Try to merge into foo again + git checkout foo && + if git merge master; then + echo needed conflict here + exit 1 + else + echo merge failed - test is setup + fi -expecting success of 7816.143 'error, PCRE v2 only: LC_ALL='C' git grep -f f -i 'NÓMATCH' a': - >stderr && - printf 'QNÓMATCH' | q_to_nul >f && - test_must_fail env LC_ALL="C" git grep -f f -i a 2>stderr && - test_i18ngrep 'This is only supported with -P under PCRE v2' stderr - -fatal: given pattern contains NULL byte (via -f ). This is only supported with -P under PCRE v2 -ok 143 - error, PCRE v2 only: LC_ALL='C' git grep -f f -i 'NÓMATCH' a +[master (root-commit) a79605b] file1.a + Author: Old Line + 1 file changed, 1 insertion(+) + create mode 100644 file1 +Switched to a new branch 'foo' +rm 'file1' +[foo 8c5d0c4] ugly + Author: U Gly + 2 files changed, 2 insertions(+), 1 deletion(-) + delete mode 100644 file1 + create mode 100644 file2 +Switched to branch 'master' +[master 7948d65] file1.b + Author: Old Line + 1 file changed, 3 insertions(+) +Switched to branch 'foo' +Merging: +8c5d0c4 ugly +virtual master +found 1 common ancestor: +a79605b file1.a +CONFLICT (modify/delete): file1 deleted in HEAD and modified in master. Version master of file1 left in tree. +Automatic merge failed; fix conflicts and then commit the result. +merge failed - resolving automatically +rm 'file1' +[foo 0adbbaa] merged + Author: M Result +Switched to branch 'master' +[master 93a049b] replace + Author: No Bla + 1 file changed, 1 insertion(+), 1 deletion(-) +Switched to branch 'foo' +Merging: +0adbbaa merged +virtual master +found 1 common ancestor: +7948d65 file1.b +CONFLICT (modify/delete): file1 deleted in HEAD and modified in master. Version master of file1 left in tree. +Automatic merge failed; fix conflicts and then commit the result. +merge failed - test is setup +ok 1 - setup first case -expecting success of 7816.144 'error, PCRE v2 only: LC_ALL='C' git grep -f f -i 'NÓMATCH' a': - >stderr && - printf 'QNÓMATCH' | q_to_nul >f && - test_must_fail env LC_ALL="C" git grep -f f -i a 2>stderr && - test_i18ngrep 'This is only supported with -P under PCRE v2' stderr - -fatal: given pattern contains NULL byte (via -f ). This is only supported with -P under PCRE v2 -ok 144 - error, PCRE v2 only: LC_ALL='C' git grep -f f -i 'NÓMATCH' a +expecting success of 8004.2 'blame runs on unconflicted file while other file has conflicts': + git blame file2 -expecting success of 7816.145 'LC_ALL='is_IS.utf8' git grep -P -f f -i 'NÓMATCH' a': - >stderr && - printf 'QNÓMATCH' | q_to_nul >f && - test_must_fail env LC_ALL="is_IS.utf8" git grep -P -f f -i a 2>stderr && - test_i18ngrep ! 'This is only supported with -P under PCRE v2' stderr - -ok 145 - LC_ALL='is_IS.utf8' git grep -P -f f -i 'NÓMATCH' a +8c5d0c45 (U Gly 2005-04-01 13:14:15 +0200 1) New line ... +8c5d0c45 (U Gly 2005-04-01 13:14:15 +0200 2) ... and more +0adbbaae (M Result 2005-04-01 13:14:15 +0200 3) +0adbbaae (M Result 2005-04-01 13:14:15 +0200 4) bla +0adbbaae (M Result 2005-04-01 13:14:15 +0200 5) Even more +ok 2 - blame runs on unconflicted file while other file has conflicts -# passed all 145 test(s) -1..145 +expecting success of 8004.3 'blame does not crash with conflicted file in stages 1,3': + git blame file1 + +^a79605b (Old Line 2005-04-01 13:14:15 +0200 1) Old line +7948d659 (Old Line 2005-04-01 13:14:15 +0200 2) +7948d659 (Old Line 2005-04-01 13:14:15 +0200 3) +93a049bc (No Bla 2005-04-01 13:14:15 +0200 4) foo +ok 3 - blame does not crash with conflicted file in stages 1,3 + +# passed all 3 test(s) +1..3 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' *** t8001-annotate.sh *** @@ -384674,8 +385104,8 @@ check_count A 2 B 2 git annotate file -Author B (expected 2, attributed 2) good Author A (expected 2, attributed 2) good +Author B (expected 2, attributed 2) good ok 6 - blame 2 authors expecting success of 8001.7 'setup B1 lines (branch1)': @@ -384718,8 +385148,8 @@ git annotate file Author B2 (expected 1, attributed 1) good -Author B (expected 1, attributed 1) good Author A (expected 2, attributed 2) good +Author B (expected 1, attributed 1) good ok 10 - blame 2 authors + 1 branch2 author expecting success of 8001.11 'merge branch1 & branch2': @@ -384741,8 +385171,8 @@ git annotate file Author B (expected 1, attributed 1) good -Author B1 (expected 2, attributed 2) good Author B2 (expected 1, attributed 1) good +Author B1 (expected 2, attributed 2) good Author A (expected 2, attributed 2) good ok 12 - blame 2 authors + 2 merged-in authors @@ -384750,18 +385180,18 @@ check_count --first-parent A 2 B 1 "A U Thor" 2 B2 1 git annotate --first-parent file +Author B (expected 1, attributed 1) good +Author B2 (expected 1, attributed 1) good Author A U Thor (expected 2, attributed 2) good Author A (expected 2, attributed 2) good -Author B2 (expected 1, attributed 1) good -Author B (expected 1, attributed 1) good ok 13 - blame --first-parent blames merge for branch1 expecting success of 8001.14 'blame ancestor': check_count -h master A 2 B 2 git annotate file master -Author B (expected 2, attributed 2) good Author A (expected 2, attributed 2) good +Author B (expected 2, attributed 2) good ok 14 - blame ancestor expecting success of 8001.15 'blame great-ancestor': @@ -384784,11 +385214,11 @@ check_count A 2 B 1 B1 2 B2 1 "A U Thor" 1 git annotate file -Author B (expected 1, attributed 1) good Author B2 (expected 1, attributed 1) good +Author B (expected 1, attributed 1) good +Author A U Thor (expected 1, attributed 1) good Author B1 (expected 2, attributed 2) good Author A (expected 2, attributed 2) good -Author A U Thor (expected 1, attributed 1) good ok 17 - blame evil merge expecting success of 8001.18 'blame huge graft': @@ -384970,8 +385400,8 @@ hint: hint: Turn this message off by running hint: "git config advice.graftFileDeprecated false" -Author 10 (expected 1, attributed 1) good Author 01 (expected 1, attributed 1) good +Author 10 (expected 1, attributed 1) good Switched to branch 'branch2' ok 18 - blame huge graft @@ -384989,12 +385419,12 @@ check_count A 2 B 1 B1 2 B2 1 "A U Thor" 1 C 1 git annotate file +Author B2 (expected 1, attributed 1) good +Author A (expected 2, attributed 2) good Author B (expected 1, attributed 1) good +Author B1 (expected 2, attributed 2) good Author C (expected 1, attributed 1) good Author A U Thor (expected 1, attributed 1) good -Author B1 (expected 2, attributed 2) good -Author B2 (expected 1, attributed 1) good -Author A (expected 2, attributed 2) good ok 20 - blame incomplete line expecting success of 8001.21 'setup edits': @@ -385016,13 +385446,13 @@ check_count A 1 B 1 B1 1 B2 1 "A U Thor" 1 C 1 D 1 git annotate file -Author B2 (expected 1, attributed 1) good -Author A (expected 1, attributed 1) good Author B1 (expected 1, attributed 1) good -Author A U Thor (expected 1, attributed 1) good -Author C (expected 1, attributed 1) good +Author A (expected 1, attributed 1) good Author B (expected 1, attributed 1) good +Author C (expected 1, attributed 1) good Author D (expected 1, attributed 1) good +Author A U Thor (expected 1, attributed 1) good +Author B2 (expected 1, attributed 1) good ok 22 - blame edits expecting success of 8001.23 'setup obfuscated email': @@ -385042,70 +385472,70 @@ git annotate file Author D (expected 1, attributed 1) good -Author B (expected 1, attributed 1) good -Author C (expected 1, attributed 1) good -Author B1 (expected 1, attributed 1) good Author B2 (expected 1, attributed 1) good +Author C (expected 1, attributed 1) good Author A U Thor (expected 1, attributed 1) good +Author B1 (expected 1, attributed 1) good Author A (expected 1, attributed 1) good Author E (expected 1, attributed 1) good +Author B (expected 1, attributed 1) good ok 24 - blame obfuscated email expecting success of 8001.25 'blame -L 1 (all)': check_count -L1 A 1 B 1 B1 1 B2 1 "A U Thor" 1 C 1 D 1 E 1 git annotate -L1 file +Author D (expected 1, attributed 1) good +Author A U Thor (expected 1, attributed 1) good +Author B2 (expected 1, attributed 1) good Author B (expected 1, attributed 1) good -Author B1 (expected 1, attributed 1) good -Author A (expected 1, attributed 1) good Author E (expected 1, attributed 1) good -Author A U Thor (expected 1, attributed 1) good -Author D (expected 1, attributed 1) good Author C (expected 1, attributed 1) good -Author B2 (expected 1, attributed 1) good +Author B1 (expected 1, attributed 1) good +Author A (expected 1, attributed 1) good ok 25 - blame -L 1 (all) expecting success of 8001.26 'blame -L , (all)': check_count -L, A 1 B 1 B1 1 B2 1 "A U Thor" 1 C 1 D 1 E 1 git annotate -L, file -Author D (expected 1, attributed 1) good -Author A U Thor (expected 1, attributed 1) good Author E (expected 1, attributed 1) good +Author D (expected 1, attributed 1) good Author B (expected 1, attributed 1) good Author A (expected 1, attributed 1) good -Author C (expected 1, attributed 1) good Author B1 (expected 1, attributed 1) good +Author A U Thor (expected 1, attributed 1) good Author B2 (expected 1, attributed 1) good +Author C (expected 1, attributed 1) good ok 26 - blame -L , (all) expecting success of 8001.27 'blame -L X (X to end)': check_count -L5 B1 1 C 1 D 1 "A U Thor" 1 git annotate -L5 file -Author D (expected 1, attributed 1) good -Author B1 (expected 1, attributed 1) good -Author A U Thor (expected 1, attributed 1) good Author C (expected 1, attributed 1) good +Author A U Thor (expected 1, attributed 1) good +Author B1 (expected 1, attributed 1) good +Author D (expected 1, attributed 1) good ok 27 - blame -L X (X to end) expecting success of 8001.28 'blame -L X, (X to end)': check_count -L5, B1 1 C 1 D 1 "A U Thor" 1 git annotate -L5, file -Author B1 (expected 1, attributed 1) good +Author A U Thor (expected 1, attributed 1) good Author D (expected 1, attributed 1) good Author C (expected 1, attributed 1) good -Author A U Thor (expected 1, attributed 1) good +Author B1 (expected 1, attributed 1) good ok 28 - blame -L X, (X to end) expecting success of 8001.29 'blame -L ,Y (up to Y)': check_count -L,3 A 1 B2 1 E 1 git annotate -L,3 file -Author A (expected 1, attributed 1) good Author E (expected 1, attributed 1) good Author B2 (expected 1, attributed 1) good +Author A (expected 1, attributed 1) good ok 29 - blame -L ,Y (up to Y) expecting success of 8001.30 'blame -L X,X': @@ -385119,19 +385549,19 @@ check_count -L3,6 B 1 B1 1 B2 1 D 1 git annotate -L3,6 file -Author B1 (expected 1, attributed 1) good +Author D (expected 1, attributed 1) good Author B (expected 1, attributed 1) good Author B2 (expected 1, attributed 1) good -Author D (expected 1, attributed 1) good +Author B1 (expected 1, attributed 1) good ok 31 - blame -L X,Y expecting success of 8001.32 'blame -L Y,X (undocumented)': check_count -L6,3 B 1 B1 1 B2 1 D 1 git annotate -L6,3 file -Author B2 (expected 1, attributed 1) good -Author B (expected 1, attributed 1) good Author B1 (expected 1, attributed 1) good +Author B (expected 1, attributed 1) good +Author B2 (expected 1, attributed 1) good Author D (expected 1, attributed 1) good ok 32 - blame -L Y,X (undocumented) @@ -385178,8 +385608,8 @@ git annotate -L3,+4 file Author B2 (expected 1, attributed 1) good Author D (expected 1, attributed 1) good -Author B (expected 1, attributed 1) good Author B1 (expected 1, attributed 1) good +Author B (expected 1, attributed 1) good ok 39 - blame -L X,+N expecting success of 8001.40 'blame -L ,-0': @@ -385206,8 +385636,8 @@ git annotate -L6,-4 file Author B1 (expected 1, attributed 1) good -Author B (expected 1, attributed 1) good Author D (expected 1, attributed 1) good +Author B (expected 1, attributed 1) good Author B2 (expected 1, attributed 1) good ok 43 - blame -L X,-N @@ -385215,8 +385645,8 @@ check_count -L/evil/ C 1 "A U Thor" 1 git annotate -L/evil/ file -Author A U Thor (expected 1, attributed 1) good Author C (expected 1, attributed 1) good +Author A U Thor (expected 1, attributed 1) good ok 44 - blame -L /RE/ (RE to end) expecting success of 8001.45 'blame -L /RE/,/RE2/': @@ -385224,46 +385654,46 @@ git annotate -L/robot/,/green/ file Author E (expected 1, attributed 1) good +Author B (expected 1, attributed 1) good Author B2 (expected 1, attributed 1) good Author D (expected 1, attributed 1) good Author A (expected 1, attributed 1) good -Author B (expected 1, attributed 1) good ok 45 - blame -L /RE/,/RE2/ expecting success of 8001.46 'blame -L X,/RE/': check_count -L5,/evil/ B1 1 D 1 "A U Thor" 1 git annotate -L5,/evil/ file -Author B1 (expected 1, attributed 1) good Author A U Thor (expected 1, attributed 1) good Author D (expected 1, attributed 1) good +Author B1 (expected 1, attributed 1) good ok 46 - blame -L X,/RE/ expecting success of 8001.47 'blame -L /RE/,Y': check_count -L/99/,7 B1 1 D 1 "A U Thor" 1 git annotate -L/99/,7 file +Author D (expected 1, attributed 1) good Author B1 (expected 1, attributed 1) good Author A U Thor (expected 1, attributed 1) good -Author D (expected 1, attributed 1) good ok 47 - blame -L /RE/,Y expecting success of 8001.48 'blame -L /RE/,+N': check_count -L/99/,+3 B1 1 D 1 "A U Thor" 1 git annotate -L/99/,+3 file -Author B1 (expected 1, attributed 1) good Author A U Thor (expected 1, attributed 1) good Author D (expected 1, attributed 1) good +Author B1 (expected 1, attributed 1) good ok 48 - blame -L /RE/,+N expecting success of 8001.49 'blame -L /RE/,-N': check_count -L/99/,-3 B 1 B2 1 D 1 git annotate -L/99/,-3 file -Author B2 (expected 1, attributed 1) good -Author D (expected 1, attributed 1) good Author B (expected 1, attributed 1) good +Author D (expected 1, attributed 1) good +Author B2 (expected 1, attributed 1) good ok 49 - blame -L /RE/,-N expecting success of 8001.50 'blame -L X (X == nlines)': @@ -385293,13 +385723,13 @@ git annotate -L,8 file Author D (expected 1, attributed 1) good -Author A U Thor (expected 1, attributed 1) good -Author C (expected 1, attributed 1) good -Author B2 (expected 1, attributed 1) good Author B (expected 1, attributed 1) good -Author B1 (expected 1, attributed 1) good +Author A U Thor (expected 1, attributed 1) good Author A (expected 1, attributed 1) good +Author B2 (expected 1, attributed 1) good Author E (expected 1, attributed 1) good +Author B1 (expected 1, attributed 1) good +Author C (expected 1, attributed 1) good ok 53 - blame -L ,Y (Y == nlines) expecting success of 8001.54 'blame -L ,Y (Y == nlines + 1)': @@ -385307,58 +385737,58 @@ check_count -L,$n A 1 B 1 B1 1 B2 1 "A U Thor" 1 C 1 D 1 E 1 git annotate -L,9 file -Author B1 (expected 1, attributed 1) good Author C (expected 1, attributed 1) good -Author A U Thor (expected 1, attributed 1) good -Author B2 (expected 1, attributed 1) good Author E (expected 1, attributed 1) good -Author A (expected 1, attributed 1) good +Author B2 (expected 1, attributed 1) good Author B (expected 1, attributed 1) good Author D (expected 1, attributed 1) good +Author A (expected 1, attributed 1) good +Author B1 (expected 1, attributed 1) good +Author A U Thor (expected 1, attributed 1) good ok 54 - blame -L ,Y (Y == nlines + 1) expecting success of 8001.55 'blame -L ,Y (Y > nlines)': check_count -L,12345 A 1 B 1 B1 1 B2 1 "A U Thor" 1 C 1 D 1 E 1 git annotate -L,12345 file -Author D (expected 1, attributed 1) good -Author A (expected 1, attributed 1) good +Author B2 (expected 1, attributed 1) good Author B (expected 1, attributed 1) good -Author A U Thor (expected 1, attributed 1) good +Author A (expected 1, attributed 1) good +Author B1 (expected 1, attributed 1) good Author E (expected 1, attributed 1) good +Author D (expected 1, attributed 1) good +Author A U Thor (expected 1, attributed 1) good Author C (expected 1, attributed 1) good -Author B2 (expected 1, attributed 1) good -Author B1 (expected 1, attributed 1) good ok 55 - blame -L ,Y (Y > nlines) expecting success of 8001.56 'blame -L multiple (disjoint)': check_count -L2,3 -L6,7 A 1 B1 1 B2 1 "A U Thor" 1 git annotate -L2,3 -L6,7 file +Author B1 (expected 1, attributed 1) good +Author A (expected 1, attributed 1) good Author B2 (expected 1, attributed 1) good Author A U Thor (expected 1, attributed 1) good -Author A (expected 1, attributed 1) good -Author B1 (expected 1, attributed 1) good ok 56 - blame -L multiple (disjoint) expecting success of 8001.57 'blame -L multiple (disjoint: unordered)': check_count -L6,7 -L2,3 A 1 B1 1 B2 1 "A U Thor" 1 git annotate -L6,7 -L2,3 file +Author A U Thor (expected 1, attributed 1) good Author B2 (expected 1, attributed 1) good -Author A (expected 1, attributed 1) good Author B1 (expected 1, attributed 1) good -Author A U Thor (expected 1, attributed 1) good +Author A (expected 1, attributed 1) good ok 57 - blame -L multiple (disjoint: unordered) expecting success of 8001.58 'blame -L multiple (adjacent)': check_count -L2,3 -L4,5 A 1 B 1 B2 1 D 1 git annotate -L2,3 -L4,5 file -Author B (expected 1, attributed 1) good -Author D (expected 1, attributed 1) good Author A (expected 1, attributed 1) good +Author B (expected 1, attributed 1) good Author B2 (expected 1, attributed 1) good +Author D (expected 1, attributed 1) good ok 58 - blame -L multiple (adjacent) expecting success of 8001.59 'blame -L multiple (adjacent: unordered)': @@ -385366,28 +385796,28 @@ git annotate -L4,5 -L2,3 file Author B2 (expected 1, attributed 1) good -Author D (expected 1, attributed 1) good Author A (expected 1, attributed 1) good Author B (expected 1, attributed 1) good +Author D (expected 1, attributed 1) good ok 59 - blame -L multiple (adjacent: unordered) expecting success of 8001.60 'blame -L multiple (overlapping)': check_count -L2,4 -L3,5 A 1 B 1 B2 1 D 1 git annotate -L2,4 -L3,5 file -Author B2 (expected 1, attributed 1) good Author D (expected 1, attributed 1) good -Author A (expected 1, attributed 1) good Author B (expected 1, attributed 1) good +Author B2 (expected 1, attributed 1) good +Author A (expected 1, attributed 1) good ok 60 - blame -L multiple (overlapping) expecting success of 8001.61 'blame -L multiple (overlapping: unordered)': check_count -L3,5 -L2,4 A 1 B 1 B2 1 D 1 git annotate -L3,5 -L2,4 file -Author B2 (expected 1, attributed 1) good -Author A (expected 1, attributed 1) good Author D (expected 1, attributed 1) good +Author A (expected 1, attributed 1) good +Author B2 (expected 1, attributed 1) good Author B (expected 1, attributed 1) good ok 61 - blame -L multiple (overlapping: unordered) @@ -385395,50 +385825,50 @@ check_count -L2,8 -L3,5 A 1 B 1 B1 1 B2 1 C 1 D 1 "A U Thor" 1 git annotate -L2,8 -L3,5 file -Author B1 (expected 1, attributed 1) good +Author D (expected 1, attributed 1) good +Author B (expected 1, attributed 1) good Author A (expected 1, attributed 1) good Author A U Thor (expected 1, attributed 1) good +Author B1 (expected 1, attributed 1) good Author B2 (expected 1, attributed 1) good Author C (expected 1, attributed 1) good -Author B (expected 1, attributed 1) good -Author D (expected 1, attributed 1) good ok 62 - blame -L multiple (superset/subset) expecting success of 8001.63 'blame -L multiple (superset/subset: unordered)': check_count -L3,5 -L2,8 A 1 B 1 B1 1 B2 1 C 1 D 1 "A U Thor" 1 git annotate -L3,5 -L2,8 file +Author B2 (expected 1, attributed 1) good Author A U Thor (expected 1, attributed 1) good -Author B (expected 1, attributed 1) good Author A (expected 1, attributed 1) good -Author B2 (expected 1, attributed 1) good -Author D (expected 1, attributed 1) good -Author B1 (expected 1, attributed 1) good Author C (expected 1, attributed 1) good +Author B1 (expected 1, attributed 1) good +Author D (expected 1, attributed 1) good +Author B (expected 1, attributed 1) good ok 63 - blame -L multiple (superset/subset: unordered) expecting success of 8001.64 'blame -L /RE/ (relative)': check_count -L3,3 -L/fox/ B1 1 B2 1 C 1 D 1 "A U Thor" 1 git annotate -L3,3 -L/fox/ file -Author A U Thor (expected 1, attributed 1) good -Author D (expected 1, attributed 1) good +Author B1 (expected 1, attributed 1) good Author B2 (expected 1, attributed 1) good +Author A U Thor (expected 1, attributed 1) good Author C (expected 1, attributed 1) good -Author B1 (expected 1, attributed 1) good +Author D (expected 1, attributed 1) good ok 64 - blame -L /RE/ (relative) expecting success of 8001.65 'blame -L /RE/ (relative: no preceding range)': check_count -L/dog/ A 1 B 1 B1 1 B2 1 C 1 D 1 "A U Thor" 1 git annotate -L/dog/ file -Author A U Thor (expected 1, attributed 1) good +Author B1 (expected 1, attributed 1) good +Author C (expected 1, attributed 1) good Author B (expected 1, attributed 1) good -Author A (expected 1, attributed 1) good +Author A U Thor (expected 1, attributed 1) good Author D (expected 1, attributed 1) good Author B2 (expected 1, attributed 1) good -Author C (expected 1, attributed 1) good -Author B1 (expected 1, attributed 1) good +Author A (expected 1, attributed 1) good ok 65 - blame -L /RE/ (relative: no preceding range) expecting success of 8001.66 'blame -L /RE/ (relative: adjacent)': @@ -385465,8 +385895,8 @@ check_count -L3,3 -L^/dog/,+2 A 1 B2 1 git annotate -L3,3 -L^/dog/,+2 file -Author A (expected 1, attributed 1) good Author B2 (expected 1, attributed 1) good +Author A (expected 1, attributed 1) good ok 69 - blame -L ^/RE/ (absolute) expecting success of 8001.70 'blame -L ^/RE/ (absolute: no preceding range)': @@ -385488,8 +385918,8 @@ check_count -L$n -L^/$/,+2 A 1 C 1 E 1 git annotate -L8 -L^/$/,+2 file -Author A (expected 1, attributed 1) good Author C (expected 1, attributed 1) good +Author A (expected 1, attributed 1) good Author E (expected 1, attributed 1) good ok 72 - blame -L ^/RE/ (absolute: end-of-file) @@ -385559,16 +385989,16 @@ check_count -f hello.c -L3,3 -L:ma.. F 1 H 4 git annotate -L3,3 -L:ma.. hello.c -Author H (expected 4, attributed 4) good Author F (expected 1, attributed 1) good +Author H (expected 4, attributed 4) good ok 77 - blame -L :RE (relative) expecting success of 8001.78 'blame -L :RE (relative: no preceding range)': check_count -f hello.c -L:ma.. F 4 G 1 git annotate -L:ma.. hello.c -Author G (expected 1, attributed 1) good Author F (expected 4, attributed 4) good +Author G (expected 1, attributed 1) good ok 78 - blame -L :RE (relative: no preceding range) expecting success of 8001.79 'blame -L :RE (relative: not found)': @@ -385587,8 +386017,8 @@ check_count -f hello.c -L3,3 -L^:ma.. F 4 G 1 git annotate -L3,3 -L^:ma.. hello.c -Author F (expected 4, attributed 4) good Author G (expected 1, attributed 1) good +Author F (expected 4, attributed 4) good ok 81 - blame -L ^:RE (absolute) expecting success of 8001.82 'blame -L ^:RE (absolute: no preceding range)': @@ -385610,9 +386040,9 @@ check_count -f hello.c -L$n -L^:ma.. F 4 G 1 H 1 git annotate -L10 -L^:ma.. hello.c -Author F (expected 4, attributed 4) good Author H (expected 1, attributed 1) good Author G (expected 1, attributed 1) good +Author F (expected 4, attributed 4) good ok 84 - blame -L ^:RE (absolute: end-of-file) expecting success of 8001.85 'setup -L :funcname with userdiff driver': @@ -385852,479 +386282,709 @@ 1..110 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t8003-blame-corner-cases.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t8003-blame-corner-cases/.git/ -expecting success of 8003.1 'setup': - echo A A A A A >one && - echo B B B B B >two && - echo C C C C C >tres && - echo ABC >mouse && - for i in 1 2 3 4 5 6 7 8 9 - do - echo $i - done >nine_lines && - for i in 1 2 3 4 5 6 7 8 9 a - do - echo $i - done >ten_lines && - git add one two tres mouse nine_lines ten_lines && - test_tick && - GIT_AUTHOR_NAME=Initial git commit -m Initial && - - cat one >uno && - mv two dos && - cat one >>tres && - echo DEF >>mouse && - git add uno dos tres mouse && - test_tick && - GIT_AUTHOR_NAME=Second git commit -a -m Second && - - echo GHIJK >>mouse && - git add mouse && - test_tick && - GIT_AUTHOR_NAME=Third git commit -m Third && +*** t8005-blame-i18n.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t8005-blame-i18n/.git/ +expecting success of 8005.1 'setup the repository': + # Create the file + echo "UTF-8 LINE" > file && + git add file && + git commit --author "$UTF8_NAME " -m "$UTF8_MSG" && - cat mouse >cow && - git add cow && - test_tick && - GIT_AUTHOR_NAME=Fourth git commit -m Fourth && + echo "EUC-JAPAN LINE" >> file && + git add file && + git config i18n.commitencoding eucJP && + git commit --author "$EUC_JAPAN_NAME " -m "$EUC_JAPAN_MSG" && - cat >cow <<-\EOF && - ABC - DEF - XXXX - GHIJK - EOF - git add cow && - test_tick && - GIT_AUTHOR_NAME=Fifth git commit -m Fifth + echo "SJIS LINE" >> file && + git add file && + git config i18n.commitencoding SJIS && + git commit --author "$SJIS_NAME " -m "$SJIS_MSG" -[master (root-commit) a7d6c31] Initial - Author: Initial - 6 files changed, 23 insertions(+) - create mode 100644 mouse - create mode 100644 nine_lines - create mode 100644 one - create mode 100644 ten_lines - create mode 100644 tres - create mode 100644 two -[master 480ef79] Second - Author: Second - 4 files changed, 3 insertions(+) - rename two => dos (100%) - create mode 100644 uno -[master 74385ca] Third - Author: Third +[master (root-commit) 732dccd] ブレームã®ãƒ†ã‚¹ãƒˆã§ã™ã€‚ + Author: 山田 太郎 1 file changed, 1 insertion(+) -[master 5b22ca3] Fourth - Author: Fourth - 1 file changed, 3 insertions(+) - create mode 100644 cow -[master 018e313] Fifth - Author: Fifth + create mode 100644 file +[master fd45e78] ブレームã®ãƒ†ã‚¹ãƒˆã§ã™ã€‚ + Author: »³ÅÄ ÂÀϺ 1 file changed, 1 insertion(+) -ok 1 - setup - -expecting success of 8003.2 'straight copy without -C': - - git blame uno | grep Second +[master 6624d04] ブレームã®ãƒ†ã‚¹ãƒˆã§ã™ã€‚ + Author: ŽR“c ‘¾˜Y + 1 file changed, 1 insertion(+) +ok 1 - setup the repository +expecting success of 8005.2 'blame respects i18n.commitencoding': + git blame --incremental file >output && + filter_author_summary output >actual && + test_cmp expected actual -480ef79e (Second 2005-04-07 15:14:13 -0700 1) A A A A A -ok 2 - straight copy without -C +ok 2 - blame respects i18n.commitencoding -expecting success of 8003.3 'straight move without -C': +expecting success of 8005.3 'blame respects i18n.logoutputencoding': + git config i18n.logoutputencoding eucJP && + git blame --incremental file >output && + filter_author_summary output >actual && + test_cmp expected actual - git blame dos | grep Initial +ok 3 - blame respects i18n.logoutputencoding +expecting success of 8005.4 'blame respects --encoding=UTF-8': + git blame --incremental --encoding=UTF-8 file >output && + filter_author_summary output >actual && + test_cmp expected actual -^a7d6c31 two (Initial 2005-04-07 15:13:13 -0700 1) B B B B B -ok 3 - straight move without -C +ok 4 - blame respects --encoding=UTF-8 -expecting success of 8003.4 'straight copy with -C': +expecting success of 8005.5 'blame respects --encoding=none': + git blame --incremental --encoding=none file >output && + filter_author_summary output >actual && + test_cmp expected actual - git blame -C1 uno | grep Second +ok 5 - blame respects --encoding=none +# passed all 5 test(s) +1..5 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t8007-cat-file-textconv.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t8007-cat-file-textconv/.git/ +expecting success of 8007.1 'setup ': + echo "bin: test" >one.bin && + test_ln_s_add one.bin symlink.bin && + git add . && + GIT_AUTHOR_NAME=Number1 git commit -a -m First --date="2010-01-01 18:00:00" && + echo "bin: test version 2" >one.bin && + GIT_AUTHOR_NAME=Number2 git commit -a -m Second --date="2010-01-01 20:00:00" -480ef79e (Second 2005-04-07 15:14:13 -0700 1) A A A A A -ok 4 - straight copy with -C +checking prerequisite: SYMLINKS -expecting success of 8003.5 'straight move with -C': +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && + # test whether the filesystem supports symbolic links + ln -s x y && test -h y - git blame -C1 dos | grep Initial +) +prerequisite SYMLINKS ok +[master (root-commit) 6a4de31] First + Author: Number1 + Date: Fri Jan 1 18:00:00 2010 +0000 + 3 files changed, 5 insertions(+) + create mode 100755 helper + create mode 100644 one.bin + create mode 120000 symlink.bin +[master aa3beaa] Second + Author: Number2 + Date: Fri Jan 1 20:00:00 2010 +0000 + 1 file changed, 1 insertion(+), 1 deletion(-) +ok 1 - setup +expecting success of 8007.2 'no filter specified': + git cat-file --textconv :one.bin >result && + test_cmp expected result -^a7d6c31 two (Initial 2005-04-07 15:13:13 -0700 1) B B B B B -ok 5 - straight move with -C +ok 2 - no filter specified -expecting success of 8003.6 'straight copy with -C -C': +expecting success of 8007.3 'setup textconv filters': + echo "*.bin diff=test" >.gitattributes && + git config diff.test.textconv ./helper && + git config diff.test.cachetextconv false - git blame -C -C1 uno | grep Initial +ok 3 - setup textconv filters +expecting success of 8007.4 'cat-file without --textconv': + git cat-file blob :one.bin >result && + test_cmp expected result -^a7d6c31 one (Initial 2005-04-07 15:13:13 -0700 1) A A A A A -ok 6 - straight copy with -C -C +ok 4 - cat-file without --textconv -expecting success of 8003.7 'straight move with -C -C': +expecting success of 8007.5 'cat-file without --textconv on previous commit': + git cat-file -p HEAD^:one.bin >result && + test_cmp expected result - git blame -C -C1 dos | grep Initial +ok 5 - cat-file without --textconv on previous commit +expecting success of 8007.6 'cat-file --textconv on last commit': + git cat-file --textconv :one.bin >result && + test_cmp expected result -^a7d6c31 two (Initial 2005-04-07 15:13:13 -0700 1) B B B B B -ok 7 - straight move with -C -C +ok 6 - cat-file --textconv on last commit -expecting success of 8003.8 'append without -C': +expecting success of 8007.7 'cat-file --textconv on previous commit': + git cat-file --textconv HEAD^:one.bin >result && + test_cmp expected result - git blame -L2 tres | grep Second +ok 7 - cat-file --textconv on previous commit +expecting success of 8007.8 'cat-file without --textconv (symlink)': + printf "%s" "one.bin" >expected && + git cat-file blob :symlink.bin >result && + test_cmp expected result -480ef79e (Second 2005-04-07 15:14:13 -0700 2) A A A A A -ok 8 - append without -C +ok 8 - cat-file without --textconv (symlink) -expecting success of 8003.9 'append with -C': +expecting success of 8007.9 'cat-file --textconv on index (symlink)': + git cat-file --textconv :symlink.bin >result && + test_cmp expected result - git blame -L2 -C1 tres | grep Second +ok 9 - cat-file --textconv on index (symlink) +expecting success of 8007.10 'cat-file --textconv on HEAD (symlink)': + git cat-file --textconv HEAD:symlink.bin >result && + test_cmp expected result -480ef79e (Second 2005-04-07 15:14:13 -0700 2) A A A A A -ok 9 - append with -C +ok 10 - cat-file --textconv on HEAD (symlink) -expecting success of 8003.10 'append with -C -C': +# passed all 10 test(s) +1..10 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t8006-blame-textconv.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t8006-blame-textconv/.git/ +expecting success of 8006.1 'setup ': + echo "bin: test number 0" >zero.bin && + echo "bin: test 1" >one.bin && + echo "bin: test number 2" >two.bin && + test_ln_s_add one.bin symlink.bin && + git add . && + GIT_AUTHOR_NAME=Number1 git commit -a -m First --date="2010-01-01 18:00:00" && + echo "bin: test 1 version 2" >one.bin && + echo "bin: test number 2 version 2" >>two.bin && + rm -f symlink.bin && + test_ln_s_add two.bin symlink.bin && + GIT_AUTHOR_NAME=Number2 git commit -a -m Second --date="2010-01-01 20:00:00" - git blame -L2 -C -C1 tres | grep Second +checking prerequisite: SYMLINKS +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && + # test whether the filesystem supports symbolic links + ln -s x y && test -h y -480ef79e (Second 2005-04-07 15:14:13 -0700 2) A A A A A -ok 10 - append with -C -C +) +prerequisite SYMLINKS ok +[master (root-commit) 6a76d70] First + Author: Number1 + Date: Fri Jan 1 18:00:00 2010 +0000 + 5 files changed, 7 insertions(+) + create mode 100755 helper + create mode 100644 one.bin + create mode 120000 symlink.bin + create mode 100644 two.bin + create mode 100644 zero.bin +[master 940e3a6] Second + Author: Number2 + Date: Fri Jan 1 20:00:00 2010 +0000 + 3 files changed, 3 insertions(+), 2 deletions(-) +ok 1 - setup -expecting success of 8003.11 'append with -C -C -C': +expecting success of 8006.2 'no filter specified': + git blame one.bin >blame && + find_blame Number2 result && + test_cmp expected result - git blame -L2 -C -C -C1 tres | grep Initial +ok 2 - no filter specified +expecting success of 8006.3 'setup textconv filters': + echo "*.bin diff=test" >.gitattributes && + echo "zero.bin eol=crlf" >>.gitattributes && + git config diff.test.textconv ./helper && + git config diff.test.cachetextconv false -^a7d6c31 one (Initial 2005-04-07 15:13:13 -0700 2) A A A A A -ok 11 - append with -C -C -C +ok 3 - setup textconv filters -expecting success of 8003.12 'blame wholesale copy': +expecting success of 8006.4 'blame with --no-textconv': + git blame --no-textconv one.bin >blame && + find_blame result && + test_cmp expected result - git blame -f -C -C1 HEAD^ -- cow | sed -e "$pick_fc" >current && - cat >expected <<-\EOF && - mouse-Initial - mouse-Second - mouse-Third - EOF - test_cmp expected current +ok 4 - blame with --no-textconv +expecting success of 8006.5 'basic blame on last commit': + git blame one.bin >blame && + find_blame result && + test_cmp expected result -ok 12 - blame wholesale copy +ok 5 - basic blame on last commit -expecting success of 8003.13 'blame wholesale copy and more': +expecting success of 8006.6 'blame --textconv going through revisions': + git blame --textconv two.bin >blame && + find_blame result && + test_cmp expected result - git blame -f -C -C1 HEAD -- cow | sed -e "$pick_fc" >current && - cat >expected <<-\EOF && - mouse-Initial - mouse-Second - cow-Fifth - mouse-Third - EOF - test_cmp expected current +ok 6 - blame --textconv going through revisions +expecting success of 8006.7 'blame --textconv with local changes': + test_when_finished "git checkout zero.bin" && + printf "bin: updated number 0\015" >zero.bin && + git blame --textconv zero.bin >blame && + expect="(Not Committed Yet ....-..-.. ..:..:.. +0000 1)" && + expect="$expect converted: updated number 0" && + expr "$(find_blame horse <<-\EOF && - ABC - DEF - XXXX - YYYY - GHIJK - EOF - git add horse && - test_when_finished "git rm -f horse" && - git blame -f -C -C1 -- horse | sed -e "$pick_fc" >current && - cat >expected <<-\EOF && - mouse-Initial - mouse-Second - cow-Fifth - horse-Not - mouse-Third - EOF - test_cmp expected current +ok 8 - setup +cachetextconv +expecting success of 8006.9 'blame --textconv works with textconvcache': + git blame --textconv two.bin >blame && + find_blame result && + test_cmp expected result && + git blame --textconv one.bin >blame && + find_blame result && + test_cmp expected_one result -rm 'horse' -ok 14 - blame wholesale copy and more in the index +ok 9 - blame --textconv works with textconvcache -expecting success of 8003.15 'blame during cherry-pick with file rename conflict': +expecting success of 8006.10 'setup -cachetextconv': + git config diff.test.cachetextconv false - test_when_finished "git reset --hard && git checkout master" && - git checkout HEAD~3 && - echo MOUSE >> mouse && - git mv mouse rodent && - git add rodent && - GIT_AUTHOR_NAME=Rodent git commit -m "rodent" && - git checkout --detach master && - (git cherry-pick HEAD@{1} || test $? -eq 1) && - git show HEAD@{1}:rodent > rodent && - git add rodent && - git blame -f -C -C1 rodent | sed -e "$pick_fc" >current && - cat >expected <<-\EOF && - mouse-Initial - mouse-Second - rodent-Not - EOF - test_cmp expected current +ok 10 - setup -cachetextconv -Note: switching to 'HEAD~3'. +expecting success of 8006.11 'make a new commit': + echo "bin: test number 2 version 3" >>two.bin && + GIT_AUTHOR_NAME=Number3 git commit -a -m Third --date="2010-01-01 22:00:00" -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. +[master 31ce4ac] Third + Author: Number3 + Date: Fri Jan 1 22:00:00 2010 +0000 + 1 file changed, 1 insertion(+) +ok 11 - make a new commit -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: +expecting success of 8006.12 'blame from previous revision': + git blame HEAD^ two.bin >blame && + find_blame result && + test_cmp expected result - git switch -c +ok 12 - blame from previous revision -Or undo this operation with: +expecting success of 8006.13 'blame with --no-textconv (on symlink)': + git blame --no-textconv symlink.bin >blame && + find_blame result && + test_cmp expected result - git switch - +ok 13 - blame with --no-textconv (on symlink) -Turn off this advice by setting config variable advice.detachedHead to false +expecting success of 8006.14 'blame --textconv (on symlink)': + git blame --textconv symlink.bin >blame && + find_blame result && + test_cmp expected result -HEAD is now at 480ef79 Second -[detached HEAD b1c6d57] rodent - Author: Rodent - 1 file changed, 1 insertion(+) - rename mouse => rodent (57%) -Warning: you are leaving 1 commit behind, not connected to -any of your branches: +ok 14 - blame --textconv (on symlink) - b1c6d57 rodent +expecting success of 8006.15 'make another new commit': + cat >three.bin <<\EOF && +bin: test number 2 +bin: test number 2 version 2 +bin: test number 2 version 3 +bin: test number 3 +EOF + git add three.bin && + GIT_AUTHOR_NAME=Number4 git commit -a -m Fourth --date="2010-01-01 23:00:00" -If you want to keep it by creating a new branch, this may be a good time -to do so with: +[master edd8eae] Fourth + Author: Number4 + Date: Fri Jan 1 23:00:00 2010 +0000 + 1 file changed, 4 insertions(+) + create mode 100644 three.bin +ok 15 - make another new commit - git branch b1c6d57 +expecting success of 8006.16 'blame on last commit (-C -C, symlink)': + git blame -C -C three.bin >blame && + find_blame result && + cat >expected <<\EOF && +(Number1 2010-01-01 18:00:00 +0000 1) converted: test number 2 +(Number2 2010-01-01 20:00:00 +0000 2) converted: test number 2 version 2 +(Number3 2010-01-01 22:00:00 +0000 3) converted: test number 2 version 3 +(Number4 2010-01-01 23:00:00 +0000 4) converted: test number 3 +EOF + test_cmp expected result -HEAD is now at 018e313 Fifth -Auto-merging rodent -CONFLICT (content): Merge conflict in rodent -error: could not apply b1c6d57... rodent -hint: after resolving the conflicts, mark the corrected paths -hint: with 'git add ' or 'git rm ' -hint: and commit the result with 'git commit' -HEAD is now at 018e313 Fifth -Switched to branch 'master' -ok 15 - blame during cherry-pick with file rename conflict +ok 16 - blame on last commit (-C -C, symlink) -expecting success of 8003.16 'blame path that used to be a directory': - mkdir path && - echo A A A A A >path/file && - echo B B B B B >path/elif && - git add path && +# passed all 16 test(s) +1..16 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t8008-blame-formats.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t8008-blame-formats/.git/ +expecting success of 8008.1 'setup': + echo a >file && + git add file && test_tick && - git commit -m "path was a directory" && - rm -fr path && - echo A A A A A >path && - git add path && + git commit -m one && + echo b >>file && + echo c >>file && + echo d >>file && test_tick && - git commit -m "path is a regular file" && - git blame HEAD^.. -- path + git commit -a -m two && + ID1=$(git rev-parse HEAD^) && + shortID1="^$(git rev-parse HEAD^ |cut -c 1-17)" && + ID2=$(git rev-parse HEAD) && + shortID2="$(git rev-parse HEAD |cut -c 1-18)" -[master 0aef879] path was a directory +[master (root-commit) baf5e0b] one Author: A U Thor - 2 files changed, 2 insertions(+) - create mode 100644 path/elif - create mode 100644 path/file -[master 846e53e] path is a regular file + 1 file changed, 1 insertion(+) + create mode 100644 file +[master 8825379] two Author: A U Thor - 2 files changed, 1 deletion(-) - rename path/file => path (100%) - delete mode 100644 path/elif -^0aef879 path/file (A U Thor 2005-04-07 15:18:13 -0700 1) A A A A A -ok 16 - blame path that used to be a directory + 1 file changed, 3 insertions(+) +ok 1 - setup -expecting success of 8003.17 'blame to a commit with no author name': - TREE=$(git rev-parse HEAD:) && - cat >badcommit < 1234567890 +0000 -committer David Reiss 1234567890 +0000 +expecting success of 8008.2 'normal blame output': + git blame --abbrev=17 file >actual && + test_cmp expect actual -some message -EOF - COMMIT=$(git hash-object -t commit -w badcommit) && - git --no-pager blame $COMMIT -- uno >/dev/null +ok 2 - normal blame output -ok 17 - blame to a commit with no author name +expecting success of 8008.3 'blame --porcelain output': + git blame --porcelain file >actual && + test_cmp expect actual -expecting success of 8003.18 'blame -L with invalid start': - test_must_fail git blame -L5 tres 2>errors && - test_i18ngrep "has only 2 lines" errors +ok 3 - blame --porcelain output -checking prerequisite: C_LOCALE_OUTPUT +expecting success of 8008.4 'blame --line-porcelain output': + git blame --line-porcelain file >actual && + test_cmp expect actual -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false +ok 4 - blame --line-porcelain output -) -prerequisite C_LOCALE_OUTPUT ok -fatal: file tres has only 2 lines -ok 18 - blame -L with invalid start +expecting success of 8008.5 '--porcelain detects first non-blank line as subject': + ( + GIT_INDEX_FILE=.git/tmp-index && + export GIT_INDEX_FILE && + echo "This is it" >single-file && + git add single-file && + tree=$(git write-tree) && + commit=$(printf "%s\n%s\n%s\n\n\n \noneline\n\nbody\n" \ + "tree $tree" \ + "author A 123456789 +0000" \ + "committer C 123456789 +0000" | + git hash-object -w -t commit --stdin) && + git blame --porcelain $commit -- single-file >output && + grep "^summary oneline$" output + ) -expecting success of 8003.19 'blame -L with invalid end': - git blame -L1,5 tres >out && - test_line_count = 2 out +summary oneline +ok 5 - --porcelain detects first non-blank line as subject -ok 19 - blame -L with invalid end +# passed all 5 test(s) +1..5 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t8009-blame-vs-topicbranches.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t8009-blame-vs-topicbranches/.git/ +expecting success of 8009.1 'setup': + test_commit A0 file.t line0 && + test_commit A1 && + git reset --hard A0 && + test_commit B1 && + test_commit B2 file.t line0changed && + git reset --hard A1 && + test_merge A2 B2 && + git reset --hard A1 && + test_commit C1 && + git reset --hard A2 && + test_merge A3 C1 + +[master (root-commit) 2152206] A0 + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file.t +[master 5392e14] A1 + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 A1.t +HEAD is now at 2152206 A0 +[master 15a8c72] B1 + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 B1.t +[master e1433f5] B2 + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +HEAD is now at 5392e14 A1 +Merging: +5392e14 A1 +virtual B2 +found 1 common ancestor: +2152206 A0 +Merge made by the 'recursive' strategy. + B1.t | 1 + + file.t | 2 +- + 2 files changed, 2 insertions(+), 1 deletion(-) + create mode 100644 B1.t +HEAD is now at 5392e14 A1 +[master fa266ba] C1 + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 C1.t +HEAD is now at 6e3b304 A2 +Merging: +6e3b304 A2 +virtual C1 +found 1 common ancestor: +5392e14 A1 +Merge made by the 'recursive' strategy. + C1.t | 1 + + 1 file changed, 1 insertion(+) + create mode 100644 C1.t +ok 1 - setup -expecting success of 8003.20 'blame parses part of -L': - git blame -L1,1 tres >out && - test_line_count = 1 out +expecting success of 8009.2 'blame --reverse --first-parent finds A1': + git blame --porcelain --reverse --first-parent A0..A3 -- file.t >actual_full && + head -n 1 actual && + git rev-parse A1 >expect && + test_cmp expect actual + +ok 2 - blame --reverse --first-parent finds A1 -ok 20 - blame parses part of -L +# passed all 2 test(s) +1..2 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t8010-cat-file-filters.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t8010-cat-file-filters/.git/ +expecting success of 8010.1 'setup ': + echo "*.txt eol=crlf diff=txt" >.gitattributes && + echo "hello" | append_cr >world.txt && + git add .gitattributes world.txt && + test_tick && + git commit -m "Initial commit" -expecting success of 8003.21 'blame -Ln,-(n+1)': - git blame -L3,-4 nine_lines >out && - test_line_count = 3 out +[master (root-commit) 7b708d0] Initial commit + Author: A U Thor + 2 files changed, 2 insertions(+) + create mode 100644 .gitattributes + create mode 100644 world.txt +ok 1 - setup -ok 21 - blame -Ln,-(n+1) +expecting success of 8010.2 'no filters with `git show`': + git show HEAD:world.txt >actual && + ! has_cr actual -expecting success of 8003.22 'indent of line numbers, nine lines': - git blame nine_lines >actual && - test $(grep -c " " actual) = 0 -ok 22 - indent of line numbers, nine lines +ok 2 - no filters with `git show` -expecting success of 8003.23 'indent of line numbers, ten lines': - git blame ten_lines >actual && - test $(grep -c " " actual) = 9 +expecting success of 8010.3 'no filters with cat-file': + git cat-file blob HEAD:world.txt >actual && + ! has_cr actual -ok 23 - indent of line numbers, ten lines +ok 3 - no filters with cat-file -expecting success of 8003.24 'setup file with CRLF newlines': - git config core.autocrlf false && - printf "testcase\n" >crlffile && - git add crlffile && - git commit -m testcase && - printf "testcase\r\n" >crlffile +expecting success of 8010.4 'cat-file --filters converts to worktree version': + git cat-file --filters HEAD:world.txt >actual && + has_cr actual -[master 281288b] testcase - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 crlffile -ok 24 - setup file with CRLF newlines +ok 4 - cat-file --filters converts to worktree version -expecting success of 8003.25 'blame file with CRLF core.autocrlf true': - git config core.autocrlf true && - git blame crlffile >actual && - grep "A U Thor" actual +expecting success of 8010.5 'cat-file --filters --path= works': + sha1=$(git rev-parse -q --verify HEAD:world.txt) && + git cat-file --filters --path=world.txt $sha1 >actual && + has_cr actual -281288b4 (A U Thor 2005-04-07 15:19:13 -0700 1) testcase -ok 25 - blame file with CRLF core.autocrlf true +ok 5 - cat-file --filters --path= works -expecting success of 8003.26 'blame file with CRLF attributes text': - git config core.autocrlf false && - echo "crlffile text" >.gitattributes && - git blame crlffile >actual && - grep "A U Thor" actual +expecting success of 8010.6 'cat-file --textconv --path= works': + sha1=$(git rev-parse -q --verify HEAD:world.txt) && + test_config diff.txt.textconv "tr A-Za-z N-ZA-Mn-za-m <" && + git cat-file --textconv --path=hello.txt $sha1 >rot13 && + test uryyb = "$(cat rot13 | remove_cr)" -281288b4 (A U Thor 2005-04-07 15:19:13 -0700 1) testcase -ok 26 - blame file with CRLF attributes text +ok 6 - cat-file --textconv --path= works -expecting success of 8003.27 'blame file with CRLF core.autocrlf=true': - git config core.autocrlf false && - printf "testcase\r\n" >crlfinrepo && - >.gitattributes && - git add crlfinrepo && - git commit -m "add crlfinrepo" && - git config core.autocrlf true && - mv crlfinrepo tmp && - git checkout crlfinrepo && - rm tmp && - git blame crlfinrepo >actual && - grep "A U Thor" actual +expecting success of 8010.7 '--path= complains without --textconv/--filters': + sha1=$(git rev-parse -q --verify HEAD:world.txt) && + test_must_fail git cat-file --path=hello.txt blob $sha1 >actual 2>err && + test_must_be_empty actual && + grep "path.*needs.*filters" err -[master 2b0eeed] add crlfinrepo - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 crlfinrepo -Updated 1 path from the index -2b0eeed1 (A U Thor 2005-04-07 15:19:13 -0700 1) testcase -ok 27 - blame file with CRLF core.autocrlf=true +error: --path= needs --textconv or --filters +ok 7 - --path= complains without --textconv/--filters -expecting success of 8003.28 'setup coalesce tests': - cat >giraffe <<-\EOF && - ABC - DEF - EOF - git add giraffe && - git commit -m "original file" && - orig=$(git rev-parse HEAD) && +expecting success of 8010.8 '--textconv/--filters complain without path': + test_must_fail git cat-file --textconv HEAD && + test_must_fail git cat-file --filters HEAD - cat >giraffe <<-\EOF && - ABC - SPLIT - DEF - EOF - git add giraffe && - git commit -m "interior SPLIT line" && - split=$(git rev-parse HEAD) && +fatal: git cat-file --textconv HEAD: must be +fatal: git cat-file --filters HEAD: must be +ok 8 - --textconv/--filters complain without path - cat >giraffe <<-\EOF && - ABC - DEF - EOF - git add giraffe && - git commit -m "same contents as original" && - final=$(git rev-parse HEAD) +expecting success of 8010.9 'cat-file --textconv --batch works': + sha1=$(git rev-parse -q --verify HEAD:world.txt) && + test_config diff.txt.textconv "tr A-Za-z N-ZA-Mn-za-m <" && + printf "%s hello.txt\n%s hello\n" $sha1 $sha1 | + git cat-file --textconv --batch >actual && + printf "%s blob 6\nuryyb\r\n\n%s blob 6\nhello\n\n" \ + $sha1 $sha1 >expect && + test_cmp expect actual -warning: LF will be replaced by CRLF in giraffe. -The file will have its original line endings in your working directory -[master 7531dad] original file +ok 9 - cat-file --textconv --batch works + +# passed all 9 test(s) +1..9 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t8011-blame-split-file.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t8011-blame-split-file/.git/ +expecting success of 8011.1 'setup split file case': + # use lines long enough to trigger content detection + test_seq 1000 1010 >one && + test_seq 2000 2010 >two && + git add one two && + test_commit base && + + sed "6s/^/modified /" one.tmp && + mv one.tmp one && + sed "6s/^/modified /" two.tmp && + mv two.tmp two && + git add -u && + test_commit modified && + + cat one two >combined && + git add combined && + git rm one two && + test_commit combined + +[master (root-commit) ad6b874] base Author: A U Thor - 1 file changed, 2 insertions(+) - create mode 100644 giraffe -warning: LF will be replaced by CRLF in giraffe. -The file will have its original line endings in your working directory -[master e82fb63] interior SPLIT line + 3 files changed, 23 insertions(+) + create mode 100644 base.t + create mode 100644 one + create mode 100644 two +[master 9b55153] modified Author: A U Thor - 1 file changed, 1 insertion(+) -warning: LF will be replaced by CRLF in giraffe. -The file will have its original line endings in your working directory -[master 39e6f40] same contents as original + 3 files changed, 3 insertions(+), 2 deletions(-) + create mode 100644 modified.t +rm 'one' +rm 'two' +[master cc1b823] combined Author: A U Thor - 1 file changed, 1 deletion(-) -ok 28 - setup coalesce tests + 3 files changed, 12 insertions(+), 11 deletions(-) + rename one => combined (50%) + create mode 100644 combined.t + delete mode 100644 two +ok 1 - setup split file case -expecting success of 8003.29 'blame coalesce': - cat >expect <<-EOF && - $orig 1 1 2 - $orig 2 2 +expecting success of 8011.2 'setup simulated porcelain': + # This just reads porcelain-ish output and tries + # to output the value of a given field for each line (either by + # reading the field that accompanies this line, or referencing + # the information found last time the commit was mentioned). + cat >read-porcelain.pl <<-\EOF + my $field = shift; + while (<>) { + if (/^[0-9a-f]{40,} /) { + flush(); + $hash = $&; + } elsif (/^$field (.*)/) { + $cache{$hash} = $1; + } + } + flush(); + + sub flush { + return unless defined $hash; + if (defined $cache{$hash}) { + print "$cache{$hash}\n"; + } else { + print "NONE\n"; + } + } EOF - git blame --porcelain $final giraffe >actual.raw && - grep "^$orig" actual.raw >actual && - test_cmp expect actual -ok 29 - blame coalesce +ok 2 - setup simulated porcelain -expecting success of 8003.30 'blame does not coalesce non-adjacent result lines': - cat >expect <<-EOF && - $orig 1) ABC - $orig 3) DEF - EOF - git blame --no-abbrev -s -L1,1 -L3,3 $split giraffe >actual && - test_cmp expect actual +expecting success of 8011.3 'generate --porcelain output': + git blame --root -C --$output combined >output + +ok 3 - generate --porcelain output -ok 30 - blame does not coalesce non-adjacent result lines +expecting success of 8011.4 'porcelain output finds correct commits': + generate_expect >expect <<-\EOF && + 5 base + 1 modified + 10 base + 1 modified + 5 base + EOF + perl read-porcelain.pl summary actual && + test_cmp expect actual + +ok 4 - porcelain output finds correct commits -# passed all 30 test(s) -1..30 +expecting success of 8011.5 'porcelain output shows correct filenames': + generate_expect >expect <<-\EOF && + 11 one + 11 two + EOF + perl read-porcelain.pl filename actual && + test_cmp expect actual + +ok 5 - porcelain output shows correct filenames + +expecting success of 8011.6 'porcelain output shows correct previous pointer': + generate_expect >expect <<-EOF && + 5 NONE + 1 $(git rev-parse modified^) one + 10 NONE + 1 $(git rev-parse modified^) two + 5 NONE + EOF + perl read-porcelain.pl previous actual && + test_cmp expect actual + +ok 6 - porcelain output shows correct previous pointer + +expecting success of 8011.7 'generate --line-porcelain output': + git blame --root -C --$output combined >output + +ok 7 - generate --line-porcelain output + +expecting success of 8011.8 'line-porcelain output finds correct commits': + generate_expect >expect <<-\EOF && + 5 base + 1 modified + 10 base + 1 modified + 5 base + EOF + perl read-porcelain.pl summary actual && + test_cmp expect actual + +ok 8 - line-porcelain output finds correct commits + +expecting success of 8011.9 'line-porcelain output shows correct filenames': + generate_expect >expect <<-\EOF && + 11 one + 11 two + EOF + perl read-porcelain.pl filename actual && + test_cmp expect actual + +ok 9 - line-porcelain output shows correct filenames + +expecting success of 8011.10 'line-porcelain output shows correct previous pointer': + generate_expect >expect <<-EOF && + 5 NONE + 1 $(git rev-parse modified^) one + 10 NONE + 1 $(git rev-parse modified^) two + 5 NONE + EOF + perl read-porcelain.pl previous actual && + test_cmp expect actual + +ok 10 - line-porcelain output shows correct previous pointer + +# passed all 10 test(s) +1..10 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' *** t8002-blame.sh *** @@ -386437,9 +387097,9 @@ check_count A 2 B 1 B2 1 git blame -c file +Author B2 (expected 1, attributed 1) good Author B (expected 1, attributed 1) good Author A (expected 2, attributed 2) good -Author B2 (expected 1, attributed 1) good ok 10 - blame 2 authors + 1 branch2 author expecting success of 8002.11 'merge branch1 & branch2': @@ -386460,28 +387120,28 @@ check_count A 2 B 1 B1 2 B2 1 git blame -c file +Author A (expected 2, attributed 2) good +Author B1 (expected 2, attributed 2) good Author B2 (expected 1, attributed 1) good Author B (expected 1, attributed 1) good -Author B1 (expected 2, attributed 2) good -Author A (expected 2, attributed 2) good ok 12 - blame 2 authors + 2 merged-in authors expecting success of 8002.13 'blame --first-parent blames merge for branch1': check_count --first-parent A 2 B 1 "A U Thor" 2 B2 1 git blame -c --first-parent file -Author A U Thor (expected 2, attributed 2) good Author A (expected 2, attributed 2) good Author B (expected 1, attributed 1) good Author B2 (expected 1, attributed 1) good +Author A U Thor (expected 2, attributed 2) good ok 13 - blame --first-parent blames merge for branch1 expecting success of 8002.14 'blame ancestor': check_count -h master A 2 B 2 git blame -c file master -Author A (expected 2, attributed 2) good Author B (expected 2, attributed 2) good +Author A (expected 2, attributed 2) good ok 14 - blame ancestor expecting success of 8002.15 'blame great-ancestor': @@ -386504,9 +387164,9 @@ check_count A 2 B 1 B1 2 B2 1 "A U Thor" 1 git blame -c file -Author B2 (expected 1, attributed 1) good -Author B (expected 1, attributed 1) good Author B1 (expected 2, attributed 2) good +Author B (expected 1, attributed 1) good +Author B2 (expected 1, attributed 1) good Author A U Thor (expected 1, attributed 1) good Author A (expected 2, attributed 2) good ok 17 - blame evil merge @@ -386709,12 +387369,12 @@ check_count A 2 B 1 B1 2 B2 1 "A U Thor" 1 C 1 git blame -c file -Author C (expected 1, attributed 1) good -Author B1 (expected 2, attributed 2) good -Author B2 (expected 1, attributed 1) good -Author B (expected 1, attributed 1) good Author A U Thor (expected 1, attributed 1) good Author A (expected 2, attributed 2) good +Author C (expected 1, attributed 1) good +Author B (expected 1, attributed 1) good +Author B2 (expected 1, attributed 1) good +Author B1 (expected 2, attributed 2) good ok 20 - blame incomplete line expecting success of 8002.21 'setup edits': @@ -386736,13 +387396,13 @@ check_count A 1 B 1 B1 1 B2 1 "A U Thor" 1 C 1 D 1 git blame -c file -Author B (expected 1, attributed 1) good -Author A (expected 1, attributed 1) good Author B1 (expected 1, attributed 1) good -Author C (expected 1, attributed 1) good Author D (expected 1, attributed 1) good -Author A U Thor (expected 1, attributed 1) good Author B2 (expected 1, attributed 1) good +Author A U Thor (expected 1, attributed 1) good +Author B (expected 1, attributed 1) good +Author A (expected 1, attributed 1) good +Author C (expected 1, attributed 1) good ok 22 - blame edits expecting success of 8002.23 'setup obfuscated email': @@ -386761,28 +387421,28 @@ check_count A 1 B 1 B1 1 B2 1 "A U Thor" 1 C 1 D 1 E 1 git blame -c file +Author C (expected 1, attributed 1) good +Author E (expected 1, attributed 1) good +Author B (expected 1, attributed 1) good Author A (expected 1, attributed 1) good +Author B1 (expected 1, attributed 1) good Author A U Thor (expected 1, attributed 1) good -Author B (expected 1, attributed 1) good -Author E (expected 1, attributed 1) good Author B2 (expected 1, attributed 1) good -Author C (expected 1, attributed 1) good Author D (expected 1, attributed 1) good -Author B1 (expected 1, attributed 1) good ok 24 - blame obfuscated email expecting success of 8002.25 'blame -L 1 (all)': check_count -L1 A 1 B 1 B1 1 B2 1 "A U Thor" 1 C 1 D 1 E 1 git blame -c -L1 file -Author B2 (expected 1, attributed 1) good -Author A (expected 1, attributed 1) good -Author C (expected 1, attributed 1) good -Author B (expected 1, attributed 1) good +Author A U Thor (expected 1, attributed 1) good Author D (expected 1, attributed 1) good Author E (expected 1, attributed 1) good Author B1 (expected 1, attributed 1) good -Author A U Thor (expected 1, attributed 1) good +Author A (expected 1, attributed 1) good +Author C (expected 1, attributed 1) good +Author B2 (expected 1, attributed 1) good +Author B (expected 1, attributed 1) good ok 25 - blame -L 1 (all) expecting success of 8002.26 'blame -L , (all)': @@ -386790,42 +387450,42 @@ git blame -c -L, file Author C (expected 1, attributed 1) good +Author A U Thor (expected 1, attributed 1) good Author B (expected 1, attributed 1) good Author B2 (expected 1, attributed 1) good -Author E (expected 1, attributed 1) good -Author A (expected 1, attributed 1) good -Author D (expected 1, attributed 1) good Author B1 (expected 1, attributed 1) good -Author A U Thor (expected 1, attributed 1) good +Author D (expected 1, attributed 1) good +Author A (expected 1, attributed 1) good +Author E (expected 1, attributed 1) good ok 26 - blame -L , (all) expecting success of 8002.27 'blame -L X (X to end)': check_count -L5 B1 1 C 1 D 1 "A U Thor" 1 git blame -c -L5 file -Author B1 (expected 1, attributed 1) good Author D (expected 1, attributed 1) good -Author A U Thor (expected 1, attributed 1) good Author C (expected 1, attributed 1) good +Author B1 (expected 1, attributed 1) good +Author A U Thor (expected 1, attributed 1) good ok 27 - blame -L X (X to end) expecting success of 8002.28 'blame -L X, (X to end)': check_count -L5, B1 1 C 1 D 1 "A U Thor" 1 git blame -c -L5, file -Author D (expected 1, attributed 1) good Author A U Thor (expected 1, attributed 1) good -Author B1 (expected 1, attributed 1) good +Author D (expected 1, attributed 1) good Author C (expected 1, attributed 1) good +Author B1 (expected 1, attributed 1) good ok 28 - blame -L X, (X to end) expecting success of 8002.29 'blame -L ,Y (up to Y)': check_count -L,3 A 1 B2 1 E 1 git blame -c -L,3 file -Author B2 (expected 1, attributed 1) good Author A (expected 1, attributed 1) good Author E (expected 1, attributed 1) good +Author B2 (expected 1, attributed 1) good ok 29 - blame -L ,Y (up to Y) expecting success of 8002.30 'blame -L X,X': @@ -386839,20 +387499,20 @@ check_count -L3,6 B 1 B1 1 B2 1 D 1 git blame -c -L3,6 file -Author D (expected 1, attributed 1) good -Author B (expected 1, attributed 1) good Author B1 (expected 1, attributed 1) good Author B2 (expected 1, attributed 1) good +Author D (expected 1, attributed 1) good +Author B (expected 1, attributed 1) good ok 31 - blame -L X,Y expecting success of 8002.32 'blame -L Y,X (undocumented)': check_count -L6,3 B 1 B1 1 B2 1 D 1 git blame -c -L6,3 file -Author B1 (expected 1, attributed 1) good -Author D (expected 1, attributed 1) good Author B (expected 1, attributed 1) good +Author D (expected 1, attributed 1) good Author B2 (expected 1, attributed 1) good +Author B1 (expected 1, attributed 1) good ok 32 - blame -L Y,X (undocumented) expecting success of 8002.33 'blame -L -X': @@ -386896,9 +387556,9 @@ check_count -L3,+4 B 1 B1 1 B2 1 D 1 git blame -c -L3,+4 file -Author B1 (expected 1, attributed 1) good Author D (expected 1, attributed 1) good Author B (expected 1, attributed 1) good +Author B1 (expected 1, attributed 1) good Author B2 (expected 1, attributed 1) good ok 39 - blame -L X,+N @@ -386925,10 +387585,10 @@ check_count -L6,-4 B 1 B1 1 B2 1 D 1 git blame -c -L6,-4 file -Author B (expected 1, attributed 1) good Author B2 (expected 1, attributed 1) good -Author D (expected 1, attributed 1) good Author B1 (expected 1, attributed 1) good +Author D (expected 1, attributed 1) good +Author B (expected 1, attributed 1) good ok 43 - blame -L X,-N expecting success of 8002.44 'blame -L /RE/ (RE to end)': @@ -386943,19 +387603,19 @@ check_count -L/robot/,/green/ A 1 B 1 B2 1 D 1 E 1 git blame -c -L/robot/,/green/ file -Author B2 (expected 1, attributed 1) good -Author D (expected 1, attributed 1) good -Author E (expected 1, attributed 1) good Author B (expected 1, attributed 1) good Author A (expected 1, attributed 1) good +Author E (expected 1, attributed 1) good +Author D (expected 1, attributed 1) good +Author B2 (expected 1, attributed 1) good ok 45 - blame -L /RE/,/RE2/ expecting success of 8002.46 'blame -L X,/RE/': check_count -L5,/evil/ B1 1 D 1 "A U Thor" 1 git blame -c -L5,/evil/ file -Author D (expected 1, attributed 1) good Author B1 (expected 1, attributed 1) good +Author D (expected 1, attributed 1) good Author A U Thor (expected 1, attributed 1) good ok 46 - blame -L X,/RE/ @@ -386963,27 +387623,27 @@ check_count -L/99/,7 B1 1 D 1 "A U Thor" 1 git blame -c -L/99/,7 file -Author A U Thor (expected 1, attributed 1) good Author B1 (expected 1, attributed 1) good Author D (expected 1, attributed 1) good +Author A U Thor (expected 1, attributed 1) good ok 47 - blame -L /RE/,Y expecting success of 8002.48 'blame -L /RE/,+N': check_count -L/99/,+3 B1 1 D 1 "A U Thor" 1 git blame -c -L/99/,+3 file +Author B1 (expected 1, attributed 1) good Author A U Thor (expected 1, attributed 1) good Author D (expected 1, attributed 1) good -Author B1 (expected 1, attributed 1) good ok 48 - blame -L /RE/,+N expecting success of 8002.49 'blame -L /RE/,-N': check_count -L/99/,-3 B 1 B2 1 D 1 git blame -c -L/99/,-3 file +Author D (expected 1, attributed 1) good Author B2 (expected 1, attributed 1) good Author B (expected 1, attributed 1) good -Author D (expected 1, attributed 1) good ok 49 - blame -L /RE/,-N expecting success of 8002.50 'blame -L X (X == nlines)': @@ -387012,14 +387672,14 @@ check_count -L,$n A 1 B 1 B1 1 B2 1 "A U Thor" 1 C 1 D 1 E 1 git blame -c -L,8 file -Author B2 (expected 1, attributed 1) good +Author B (expected 1, attributed 1) good Author E (expected 1, attributed 1) good +Author B1 (expected 1, attributed 1) good +Author A (expected 1, attributed 1) good Author A U Thor (expected 1, attributed 1) good Author D (expected 1, attributed 1) good -Author B (expected 1, attributed 1) good -Author A (expected 1, attributed 1) good +Author B2 (expected 1, attributed 1) good Author C (expected 1, attributed 1) good -Author B1 (expected 1, attributed 1) good ok 53 - blame -L ,Y (Y == nlines) expecting success of 8002.54 'blame -L ,Y (Y == nlines + 1)': @@ -387027,48 +387687,48 @@ check_count -L,$n A 1 B 1 B1 1 B2 1 "A U Thor" 1 C 1 D 1 E 1 git blame -c -L,9 file -Author D (expected 1, attributed 1) good -Author E (expected 1, attributed 1) good Author B (expected 1, attributed 1) good +Author D (expected 1, attributed 1) good +Author A (expected 1, attributed 1) good Author B2 (expected 1, attributed 1) good +Author E (expected 1, attributed 1) good Author C (expected 1, attributed 1) good -Author A U Thor (expected 1, attributed 1) good Author B1 (expected 1, attributed 1) good -Author A (expected 1, attributed 1) good +Author A U Thor (expected 1, attributed 1) good ok 54 - blame -L ,Y (Y == nlines + 1) expecting success of 8002.55 'blame -L ,Y (Y > nlines)': check_count -L,12345 A 1 B 1 B1 1 B2 1 "A U Thor" 1 C 1 D 1 E 1 git blame -c -L,12345 file +Author A U Thor (expected 1, attributed 1) good +Author B (expected 1, attributed 1) good Author B2 (expected 1, attributed 1) good -Author B1 (expected 1, attributed 1) good Author D (expected 1, attributed 1) good -Author C (expected 1, attributed 1) good -Author A U Thor (expected 1, attributed 1) good -Author E (expected 1, attributed 1) good +Author B1 (expected 1, attributed 1) good Author A (expected 1, attributed 1) good -Author B (expected 1, attributed 1) good +Author E (expected 1, attributed 1) good +Author C (expected 1, attributed 1) good ok 55 - blame -L ,Y (Y > nlines) expecting success of 8002.56 'blame -L multiple (disjoint)': check_count -L2,3 -L6,7 A 1 B1 1 B2 1 "A U Thor" 1 git blame -c -L2,3 -L6,7 file +Author B1 (expected 1, attributed 1) good Author A U Thor (expected 1, attributed 1) good Author B2 (expected 1, attributed 1) good Author A (expected 1, attributed 1) good -Author B1 (expected 1, attributed 1) good ok 56 - blame -L multiple (disjoint) expecting success of 8002.57 'blame -L multiple (disjoint: unordered)': check_count -L6,7 -L2,3 A 1 B1 1 B2 1 "A U Thor" 1 git blame -c -L6,7 -L2,3 file -Author A U Thor (expected 1, attributed 1) good -Author B2 (expected 1, attributed 1) good Author A (expected 1, attributed 1) good Author B1 (expected 1, attributed 1) good +Author B2 (expected 1, attributed 1) good +Author A U Thor (expected 1, attributed 1) good ok 57 - blame -L multiple (disjoint: unordered) expecting success of 8002.58 'blame -L multiple (adjacent)': @@ -387076,18 +387736,18 @@ git blame -c -L2,3 -L4,5 file Author D (expected 1, attributed 1) good +Author A (expected 1, attributed 1) good Author B (expected 1, attributed 1) good Author B2 (expected 1, attributed 1) good -Author A (expected 1, attributed 1) good ok 58 - blame -L multiple (adjacent) expecting success of 8002.59 'blame -L multiple (adjacent: unordered)': check_count -L4,5 -L2,3 A 1 B 1 B2 1 D 1 git blame -c -L4,5 -L2,3 file +Author B (expected 1, attributed 1) good Author D (expected 1, attributed 1) good Author A (expected 1, attributed 1) good -Author B (expected 1, attributed 1) good Author B2 (expected 1, attributed 1) good ok 59 - blame -L multiple (adjacent: unordered) @@ -387096,68 +387756,68 @@ git blame -c -L2,4 -L3,5 file Author A (expected 1, attributed 1) good -Author D (expected 1, attributed 1) good Author B (expected 1, attributed 1) good Author B2 (expected 1, attributed 1) good +Author D (expected 1, attributed 1) good ok 60 - blame -L multiple (overlapping) expecting success of 8002.61 'blame -L multiple (overlapping: unordered)': check_count -L3,5 -L2,4 A 1 B 1 B2 1 D 1 git blame -c -L3,5 -L2,4 file +Author B2 (expected 1, attributed 1) good Author A (expected 1, attributed 1) good Author D (expected 1, attributed 1) good Author B (expected 1, attributed 1) good -Author B2 (expected 1, attributed 1) good ok 61 - blame -L multiple (overlapping: unordered) expecting success of 8002.62 'blame -L multiple (superset/subset)': check_count -L2,8 -L3,5 A 1 B 1 B1 1 B2 1 C 1 D 1 "A U Thor" 1 git blame -c -L2,8 -L3,5 file -Author B (expected 1, attributed 1) good -Author D (expected 1, attributed 1) good Author B1 (expected 1, attributed 1) good -Author B2 (expected 1, attributed 1) good Author A (expected 1, attributed 1) good -Author C (expected 1, attributed 1) good +Author B2 (expected 1, attributed 1) good Author A U Thor (expected 1, attributed 1) good +Author B (expected 1, attributed 1) good +Author D (expected 1, attributed 1) good +Author C (expected 1, attributed 1) good ok 62 - blame -L multiple (superset/subset) expecting success of 8002.63 'blame -L multiple (superset/subset: unordered)': check_count -L3,5 -L2,8 A 1 B 1 B1 1 B2 1 C 1 D 1 "A U Thor" 1 git blame -c -L3,5 -L2,8 file -Author A (expected 1, attributed 1) good -Author B1 (expected 1, attributed 1) good Author D (expected 1, attributed 1) good -Author A U Thor (expected 1, attributed 1) good -Author B2 (expected 1, attributed 1) good Author C (expected 1, attributed 1) good +Author B1 (expected 1, attributed 1) good +Author B2 (expected 1, attributed 1) good Author B (expected 1, attributed 1) good +Author A U Thor (expected 1, attributed 1) good +Author A (expected 1, attributed 1) good ok 63 - blame -L multiple (superset/subset: unordered) expecting success of 8002.64 'blame -L /RE/ (relative)': check_count -L3,3 -L/fox/ B1 1 B2 1 C 1 D 1 "A U Thor" 1 git blame -c -L3,3 -L/fox/ file -Author B2 (expected 1, attributed 1) good -Author B1 (expected 1, attributed 1) good +Author C (expected 1, attributed 1) good Author A U Thor (expected 1, attributed 1) good Author D (expected 1, attributed 1) good -Author C (expected 1, attributed 1) good +Author B1 (expected 1, attributed 1) good +Author B2 (expected 1, attributed 1) good ok 64 - blame -L /RE/ (relative) expecting success of 8002.65 'blame -L /RE/ (relative: no preceding range)': check_count -L/dog/ A 1 B 1 B1 1 B2 1 C 1 D 1 "A U Thor" 1 git blame -c -L/dog/ file -Author B (expected 1, attributed 1) good -Author D (expected 1, attributed 1) good -Author B1 (expected 1, attributed 1) good Author A U Thor (expected 1, attributed 1) good Author C (expected 1, attributed 1) good +Author D (expected 1, attributed 1) good +Author B1 (expected 1, attributed 1) good Author B2 (expected 1, attributed 1) good +Author B (expected 1, attributed 1) good Author A (expected 1, attributed 1) good ok 65 - blame -L /RE/ (relative: no preceding range) @@ -387165,8 +387825,8 @@ check_count -L1,1 -L/dog/,+1 A 1 E 1 git blame -c -L1,1 -L/dog/,+1 file -Author E (expected 1, attributed 1) good Author A (expected 1, attributed 1) good +Author E (expected 1, attributed 1) good ok 66 - blame -L /RE/ (relative: adjacent) expecting success of 8002.67 'blame -L /RE/ (relative: not found)': @@ -387185,8 +387845,8 @@ check_count -L3,3 -L^/dog/,+2 A 1 B2 1 git blame -c -L3,3 -L^/dog/,+2 file -Author B2 (expected 1, attributed 1) good Author A (expected 1, attributed 1) good +Author B2 (expected 1, attributed 1) good ok 69 - blame -L ^/RE/ (absolute) expecting success of 8002.70 'blame -L ^/RE/ (absolute: no preceding range)': @@ -387208,9 +387868,9 @@ check_count -L$n -L^/$/,+2 A 1 C 1 E 1 git blame -c -L8 -L^/$/,+2 file +Author A (expected 1, attributed 1) good Author E (expected 1, attributed 1) good Author C (expected 1, attributed 1) good -Author A (expected 1, attributed 1) good ok 72 - blame -L ^/RE/ (absolute: end-of-file) expecting success of 8002.73 'setup -L :regex': @@ -387287,8 +387947,8 @@ check_count -f hello.c -L:ma.. F 4 G 1 git blame -c -L:ma.. hello.c -Author G (expected 1, attributed 1) good Author F (expected 4, attributed 4) good +Author G (expected 1, attributed 1) good ok 78 - blame -L :RE (relative: no preceding range) expecting success of 8002.79 'blame -L :RE (relative: not found)': @@ -387307,16 +387967,16 @@ check_count -f hello.c -L3,3 -L^:ma.. F 4 G 1 git blame -c -L3,3 -L^:ma.. hello.c -Author G (expected 1, attributed 1) good Author F (expected 4, attributed 4) good +Author G (expected 1, attributed 1) good ok 81 - blame -L ^:RE (absolute) expecting success of 8002.82 'blame -L ^:RE (absolute: no preceding range)': check_count -f hello.c -L^:ma.. F 4 G 1 git blame -c -L^:ma.. hello.c -Author G (expected 1, attributed 1) good Author F (expected 4, attributed 4) good +Author G (expected 1, attributed 1) good ok 82 - blame -L ^:RE (absolute: no preceding range) expecting success of 8002.83 'blame -L ^:RE (absolute: not found)': @@ -387330,9 +387990,9 @@ check_count -f hello.c -L$n -L^:ma.. F 4 G 1 H 1 git blame -c -L10 -L^:ma.. hello.c -Author F (expected 4, attributed 4) good Author G (expected 1, attributed 1) good Author H (expected 1, attributed 1) good +Author F (expected 4, attributed 4) good ok 84 - blame -L ^:RE (absolute: end-of-file) expecting success of 8002.85 'setup -L :funcname with userdiff driver': @@ -387361,8 +388021,8 @@ check_count -f fortran-external-function -L:RIGHT A 7 B 1 git blame -c -L:RIGHT fortran-external-function -Author A (expected 7, attributed 7) good Author B (expected 1, attributed 1) good +Author A (expected 7, attributed 7) good ok 86 - blame -L :funcname with userdiff driver expecting success of 8002.87 'setup incremental': @@ -387586,12 +388246,12 @@ git blame -c -e file Author (expected 1, attributed 1) good Author (expected 1, attributed 1) good -Author (expected 1, attributed 1) good -Author (expected 1, attributed 1) good Author (expected 1, attributed 1) good +Author (expected 1, attributed 1) good +Author (expected 1, attributed 1) good Author (expected 1, attributed 1) good +Author (expected 1, attributed 1) good Author (expected 1, attributed 1) good -Author (expected 1, attributed 1) good ok 112 - blame --show-email expecting success of 8002.113 'setup showEmail tests': @@ -387770,1190 +388430,2395 @@ Cloning into 'client'... warning: filtering not recognized by server, ignoring ^7db1f6e (A U Thor 2005-04-07 15:43:13 -0700 1) foo -00000000 (Not Committed Yet 2023-04-29 16:47:20 +0000 2) bar +00000000 (Not Committed Yet 2023-04-29 18:39:50 +0000 2) bar ok 124 - blame with uncommitted edits in partial clone does not crash # passed all 124 test(s) 1..124 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t8004-blame-with-conflicts.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t8004-blame-with-conflicts/.git/ -expecting success of 8004.1 'setup first case': - # Create the old file - echo "Old line" > file1 && - git add file1 && - git commit --author "Old Line " -m file1.a && +*** t8013-blame-ignore-revs.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t8013-blame-ignore-revs/.git/ +expecting success of 8013.1 'setup': + test_commit A file line1 && - # Branch - git checkout -b foo && + echo line2 >>file && + git add file && + test_tick && + git commit -m B && + git tag B && - # Do an ugly move and change - git rm file1 && - echo "New line ..." > file2 && - echo "... and more" >> file2 && - git add file2 && - git commit --author "U Gly " -m ugly && + test_write_lines line-one line-two >file && + git add file && + test_tick && + git commit -m X && + git tag X && + git tag -a -m "X (annotated)" XT && - # Back to master and change something - git checkout master && - echo " + git blame --line-porcelain file >blame_raw && -bla" >> file1 && - git commit --author "Old Line " -a -m file1.b && + grep -E "^[0-9a-f]+ [0-9]+ 1" blame_raw | sed -e "s/ .*//" >actual && + git rev-parse X >expect && + test_cmp expect actual && - # Back to foo and merge master - git checkout foo && - if git merge master; then - echo needed conflict here - exit 1 - else - echo merge failed - resolving automatically - fi && - echo "New line ... -... and more + grep -E "^[0-9a-f]+ [0-9]+ 2" blame_raw | sed -e "s/ .*//" >actual && + git rev-parse X >expect && + test_cmp expect actual -bla -Even more" > file2 && - git rm file1 && - git commit --author "M Result " -a -m merged && +[master (root-commit) 6d1c9f2] A + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file +[master 5552443] B + Author: A U Thor + 1 file changed, 1 insertion(+) +[master abb9c4e] X + Author: A U Thor + 1 file changed, 2 insertions(+), 2 deletions(-) +ok 1 - setup - # Back to master and change file1 again - git checkout master && - sed s/bla/foo/ X && - rm file1 && - mv X file1 && - git commit --author "No Bla " -a -m replace && +expecting success of 8013.2 'validate --ignore-rev': + test_must_fail git blame --ignore-rev X^{tree} file - # Try to merge into foo again - git checkout foo && - if git merge master; then - echo needed conflict here - exit 1 - else - echo merge failed - test is setup - fi +fatal: cannot find revision X^{tree} to ignore +ok 2 - validate --ignore-rev -[master (root-commit) a79605b] file1.a - Author: Old Line - 1 file changed, 1 insertion(+) - create mode 100644 file1 -Switched to a new branch 'foo' -rm 'file1' -[foo 8c5d0c4] ugly - Author: U Gly - 2 files changed, 2 insertions(+), 1 deletion(-) - delete mode 100644 file1 - create mode 100644 file2 -Switched to branch 'master' -[master 7948d65] file1.b - Author: Old Line - 1 file changed, 3 insertions(+) -Switched to branch 'foo' -Merging: -8c5d0c4 ugly -virtual master -found 1 common ancestor: -a79605b file1.a -CONFLICT (modify/delete): file1 deleted in HEAD and modified in master. Version master of file1 left in tree. -Automatic merge failed; fix conflicts and then commit the result. -merge failed - resolving automatically -rm 'file1' -[foo 0adbbaa] merged - Author: M Result -Switched to branch 'master' -[master 93a049b] replace - Author: No Bla - 1 file changed, 1 insertion(+), 1 deletion(-) -Switched to branch 'foo' -Merging: -0adbbaa merged -virtual master -found 1 common ancestor: -7948d65 file1.b -CONFLICT (modify/delete): file1 deleted in HEAD and modified in master. Version master of file1 left in tree. -Automatic merge failed; fix conflicts and then commit the result. -merge failed - test is setup -ok 1 - setup first case +expecting success of 8013.3 'validate --ignore-revs-file': + git rev-parse X^{tree} >ignore_x && + git blame --ignore-revs-file ignore_x file -expecting success of 8004.2 'blame runs on unconflicted file while other file has conflicts': - git blame file2 +abb9c4e3 (A U Thor 2005-04-07 15:15:13 -0700 1) line-one +abb9c4e3 (A U Thor 2005-04-07 15:15:13 -0700 2) line-two +ok 3 - validate --ignore-revs-file -8c5d0c45 (U Gly 2005-04-01 13:14:15 +0200 1) New line ... -8c5d0c45 (U Gly 2005-04-01 13:14:15 +0200 2) ... and more -0adbbaae (M Result 2005-04-01 13:14:15 +0200 3) -0adbbaae (M Result 2005-04-01 13:14:15 +0200 4) bla -0adbbaae (M Result 2005-04-01 13:14:15 +0200 5) Even more -ok 2 - blame runs on unconflicted file while other file has conflicts +expecting success of 8013.4 'ignore_rev_changing_lines (X)': + git blame --line-porcelain --ignore-rev $I file >blame_raw && -expecting success of 8004.3 'blame does not crash with conflicted file in stages 1,3': - git blame file1 + grep -E "^[0-9a-f]+ [0-9]+ 1" blame_raw | sed -e "s/ .*//" >actual && + git rev-parse A >expect && + test_cmp expect actual && -^a79605b (Old Line 2005-04-01 13:14:15 +0200 1) Old line -7948d659 (Old Line 2005-04-01 13:14:15 +0200 2) -7948d659 (Old Line 2005-04-01 13:14:15 +0200 3) -93a049bc (No Bla 2005-04-01 13:14:15 +0200 4) foo -ok 3 - blame does not crash with conflicted file in stages 1,3 + grep -E "^[0-9a-f]+ [0-9]+ 2" blame_raw | sed -e "s/ .*//" >actual && + git rev-parse B >expect && + test_cmp expect actual + +ok 4 - ignore_rev_changing_lines (X) -# passed all 3 test(s) -1..3 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t8005-blame-i18n.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t8005-blame-i18n/.git/ -expecting success of 8005.1 'setup the repository': - # Create the file - echo "UTF-8 LINE" > file && - git add file && - git commit --author "$UTF8_NAME " -m "$UTF8_MSG" && +expecting success of 8013.5 'ignore_rev_changing_lines (XT)': + git blame --line-porcelain --ignore-rev $I file >blame_raw && - echo "EUC-JAPAN LINE" >> file && - git add file && - git config i18n.commitencoding eucJP && - git commit --author "$EUC_JAPAN_NAME " -m "$EUC_JAPAN_MSG" && + grep -E "^[0-9a-f]+ [0-9]+ 1" blame_raw | sed -e "s/ .*//" >actual && + git rev-parse A >expect && + test_cmp expect actual && - echo "SJIS LINE" >> file && + grep -E "^[0-9a-f]+ [0-9]+ 2" blame_raw | sed -e "s/ .*//" >actual && + git rev-parse B >expect && + test_cmp expect actual + +ok 5 - ignore_rev_changing_lines (XT) + +expecting success of 8013.6 'ignore_rev_adding_unblamable_lines': + test_write_lines line-one-change line-two-changed y3 y4 >file && git add file && - git config i18n.commitencoding SJIS && - git commit --author "$SJIS_NAME " -m "$SJIS_MSG" + test_tick && + git commit -m Y && + git tag Y && -[master (root-commit) 732dccd] ブレームã®ãƒ†ã‚¹ãƒˆã§ã™ã€‚ - Author: 山田 太郎 - 1 file changed, 1 insertion(+) - create mode 100644 file -[master fd45e78] ブレームã®ãƒ†ã‚¹ãƒˆã§ã™ã€‚ - Author: »³ÅÄ ÂÀϺ - 1 file changed, 1 insertion(+) -[master 6624d04] ブレームã®ãƒ†ã‚¹ãƒˆã§ã™ã€‚ - Author: ŽR“c ‘¾˜Y - 1 file changed, 1 insertion(+) -ok 1 - setup the repository + git rev-parse Y >expect && + git blame --line-porcelain file --ignore-rev Y >blame_raw && -expecting success of 8005.2 'blame respects i18n.commitencoding': - git blame --incremental file >output && - filter_author_summary output >actual && - test_cmp expected actual + grep -E "^[0-9a-f]+ [0-9]+ 3" blame_raw | sed -e "s/ .*//" >actual && + test_cmp expect actual && -ok 2 - blame respects i18n.commitencoding + grep -E "^[0-9a-f]+ [0-9]+ 4" blame_raw | sed -e "s/ .*//" >actual && + test_cmp expect actual -expecting success of 8005.3 'blame respects i18n.logoutputencoding': - git config i18n.logoutputencoding eucJP && - git blame --incremental file >output && - filter_author_summary output >actual && - test_cmp expected actual +[master e0d35d6] Y + Author: A U Thor + 1 file changed, 4 insertions(+), 2 deletions(-) +ok 6 - ignore_rev_adding_unblamable_lines -ok 3 - blame respects i18n.logoutputencoding +expecting success of 8013.7 'ignore_revs_from_files': + git rev-parse X >ignore_x && + git rev-parse Y >ignore_y && + git blame --line-porcelain file --ignore-revs-file ignore_x --ignore-revs-file ignore_y >blame_raw && -expecting success of 8005.4 'blame respects --encoding=UTF-8': - git blame --incremental --encoding=UTF-8 file >output && - filter_author_summary output >actual && - test_cmp expected actual + grep -E "^[0-9a-f]+ [0-9]+ 1" blame_raw | sed -e "s/ .*//" >actual && + git rev-parse A >expect && + test_cmp expect actual && -ok 4 - blame respects --encoding=UTF-8 + grep -E "^[0-9a-f]+ [0-9]+ 2" blame_raw | sed -e "s/ .*//" >actual && + git rev-parse B >expect && + test_cmp expect actual -expecting success of 8005.5 'blame respects --encoding=none': - git blame --incremental --encoding=none file >output && - filter_author_summary output >actual && - test_cmp expected actual +ok 7 - ignore_revs_from_files -ok 5 - blame respects --encoding=none +expecting success of 8013.8 'ignore_revs_from_configs_and_files': + git config --add blame.ignoreRevsFile ignore_x && + git blame --line-porcelain file --ignore-revs-file ignore_y >blame_raw && -# passed all 5 test(s) -1..5 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t8007-cat-file-textconv.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t8007-cat-file-textconv/.git/ -expecting success of 8007.1 'setup ': - echo "bin: test" >one.bin && - test_ln_s_add one.bin symlink.bin && - git add . && - GIT_AUTHOR_NAME=Number1 git commit -a -m First --date="2010-01-01 18:00:00" && - echo "bin: test version 2" >one.bin && - GIT_AUTHOR_NAME=Number2 git commit -a -m Second --date="2010-01-01 20:00:00" + grep -E "^[0-9a-f]+ [0-9]+ 1" blame_raw | sed -e "s/ .*//" >actual && + git rev-parse A >expect && + test_cmp expect actual && -checking prerequisite: SYMLINKS + grep -E "^[0-9a-f]+ [0-9]+ 2" blame_raw | sed -e "s/ .*//" >actual && + git rev-parse B >expect && + test_cmp expect actual -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && +ok 8 - ignore_revs_from_configs_and_files + +expecting success of 8013.9 'override_ignore_revs_file': + git blame --line-porcelain file --ignore-revs-file "" --ignore-revs-file ignore_y >blame_raw && + git rev-parse X >expect && + + grep -E "^[0-9a-f]+ [0-9]+ 1" blame_raw | sed -e "s/ .*//" >actual && + test_cmp expect actual && + + grep -E "^[0-9a-f]+ [0-9]+ 2" blame_raw | sed -e "s/ .*//" >actual && + test_cmp expect actual + +ok 9 - override_ignore_revs_file + +expecting success of 8013.10 'bad_files_and_revs': + test_must_fail git blame file --ignore-rev NOREV 2>err && + test_i18ngrep "cannot find revision NOREV to ignore" err && + + test_must_fail git blame file --ignore-revs-file NOFILE 2>err && + test_i18ngrep "could not open.*: NOFILE" err && + + echo NOREV >ignore_norev && + test_must_fail git blame file --ignore-revs-file ignore_norev 2>err && + test_i18ngrep "invalid object name: NOREV" err + +checking prerequisite: C_LOCALE_OUTPUT + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && ( - cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && - # test whether the filesystem supports symbolic links - ln -s x y && test -h y + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false ) -prerequisite SYMLINKS ok -[master (root-commit) 6a4de31] First - Author: Number1 - Date: Fri Jan 1 18:00:00 2010 +0000 - 3 files changed, 5 insertions(+) - create mode 100755 helper - create mode 100644 one.bin - create mode 120000 symlink.bin -[master aa3beaa] Second - Author: Number2 - Date: Fri Jan 1 20:00:00 2010 +0000 - 1 file changed, 1 insertion(+), 1 deletion(-) -ok 1 - setup +prerequisite C_LOCALE_OUTPUT ok +fatal: cannot find revision NOREV to ignore +fatal: could not open object name list: NOFILE +fatal: invalid object name: NOREV +ok 10 - bad_files_and_revs -expecting success of 8007.2 'no filter specified': - git cat-file --textconv :one.bin >result && - test_cmp expected result +expecting success of 8013.11 'mark_unblamable_lines': + git config --add blame.markUnblamableLines true && -ok 2 - no filter specified + git blame --ignore-rev Y file >blame_raw && + echo "*" >expect && -expecting success of 8007.3 'setup textconv filters': - echo "*.bin diff=test" >.gitattributes && - git config diff.test.textconv ./helper && - git config diff.test.cachetextconv false + sed -n "3p" blame_raw | cut -c1 >actual && + test_cmp expect actual && -ok 3 - setup textconv filters + sed -n "4p" blame_raw | cut -c1 >actual && + test_cmp expect actual -expecting success of 8007.4 'cat-file without --textconv': - git cat-file blob :one.bin >result && - test_cmp expected result +ok 11 - mark_unblamable_lines -ok 4 - cat-file without --textconv +expecting success of 8013.12 'mark_ignored_lines': + git config --add blame.markIgnoredLines true && -expecting success of 8007.5 'cat-file without --textconv on previous commit': - git cat-file -p HEAD^:one.bin >result && - test_cmp expected result + test_write_lines line-one-Z line-two-Z y3 y4 >file && + git add file && + test_tick && + git commit -m Z && + git tag Z && -ok 5 - cat-file without --textconv on previous commit + git blame --ignore-rev Z file >blame_raw && + echo "?" >expect && -expecting success of 8007.6 'cat-file --textconv on last commit': - git cat-file --textconv :one.bin >result && - test_cmp expected result + sed -n "1p" blame_raw | cut -c1 >actual && + test_cmp expect actual && -ok 6 - cat-file --textconv on last commit + sed -n "2p" blame_raw | cut -c1 >actual && + test_cmp expect actual && -expecting success of 8007.7 'cat-file --textconv on previous commit': - git cat-file --textconv HEAD^:one.bin >result && - test_cmp expected result + sed -n "3p" blame_raw | cut -c1 >actual && + ! test_cmp expect actual && -ok 7 - cat-file --textconv on previous commit + sed -n "4p" blame_raw | cut -c1 >actual && + ! test_cmp expect actual -expecting success of 8007.8 'cat-file without --textconv (symlink)': - printf "%s" "one.bin" >expected && - git cat-file blob :symlink.bin >result && - test_cmp expected result +[master d1e4550] Z + Author: A U Thor + 1 file changed, 2 insertions(+), 2 deletions(-) +--- expect 2023-04-29 18:39:54.689935174 +0000 ++++ actual 2023-04-29 18:39:54.821922698 +0000 +@@ -1 +1 @@ +-? ++e +--- expect 2023-04-29 18:39:54.689935174 +0000 ++++ actual 2023-04-29 18:39:54.853919674 +0000 +@@ -1 +1 @@ +-? ++e +ok 12 - mark_ignored_lines -ok 8 - cat-file without --textconv (symlink) +expecting success of 8013.13 'mark_unblamable_lines_intermediate': + git config --add blame.markUnblamableLines true && -expecting success of 8007.9 'cat-file --textconv on index (symlink)': - git cat-file --textconv :symlink.bin >result && - test_cmp expected result + git blame --ignore-rev Y file >blame_raw 2>stderr && + echo "*" >expect && -ok 9 - cat-file --textconv on index (symlink) + sed -n "3p" blame_raw | cut -c1 >actual && + test_cmp expect actual && -expecting success of 8007.10 'cat-file --textconv on HEAD (symlink)': - git cat-file --textconv HEAD:symlink.bin >result && - test_cmp expected result + sed -n "4p" blame_raw | cut -c1 >actual && + test_cmp expect actual -ok 10 - cat-file --textconv on HEAD (symlink) +ok 13 - mark_unblamable_lines_intermediate -# passed all 10 test(s) -1..10 +expecting success of 8013.14 'ignored_chunk_negative_parent_size': + rm -rf .git/ && + git init && + + test_write_lines L1 L2 L7 L8 L9 >file && + git add file && + test_tick && + git commit -m A && + git tag A && + + test_write_lines L1 L2 L3 L4 L5 L6 L7 L8 L9 >file && + git add file && + test_tick && + git commit -m B && + git tag B && + + test_write_lines L1 L2 L3 L4 xxx L6 L7 L8 L9 >file && + git add file && + test_tick && + git commit -m C && + git tag C && + + git blame file --ignore-rev B >blame_raw + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t8013-blame-ignore-revs/.git/ +[master (root-commit) 0157998] A + Author: A U Thor + 1 file changed, 5 insertions(+) + create mode 100644 file +[master a8e635b] B + Author: A U Thor + 1 file changed, 4 insertions(+) +[master 3b3594b] C + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +ok 14 - ignored_chunk_negative_parent_size + +expecting success of 8013.15 'ignore_merge': + rm -rf .git/ && + git init && + + test_write_lines L1 L2 L3 L4 L5 L6 L7 L8 L9 >file && + git add file && + test_tick && + git commit -m A && + git tag A && + + test_write_lines BB L2 L3 L4 L5 L6 L7 L8 L9 >file && + git add file && + test_tick && + git commit -m B && + git tag B && + + git reset --hard A && + test_write_lines L1 L2 L3 L4 L5 L6 L7 L8 CC >file && + git add file && + test_tick && + git commit -m C && + git tag C && + + test_merge M B && + git blame --line-porcelain file --ignore-rev M >blame_raw && + + grep -E "^[0-9a-f]+ [0-9]+ 1" blame_raw | sed -e "s/ .*//" >actual && + git rev-parse B >expect && + test_cmp expect actual && + + grep -E "^[0-9a-f]+ [0-9]+ 9" blame_raw | sed -e "s/ .*//" >actual && + git rev-parse C >expect && + test_cmp expect actual + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t8013-blame-ignore-revs/.git/ +[master (root-commit) aebca2b] A + Author: A U Thor + 1 file changed, 9 insertions(+) + create mode 100644 file +[master 38a4cbf] B + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +HEAD is now at aebca2b A +[master 1f9babe] C + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +Merging: +1f9babe C +virtual B +found 1 common ancestor: +aebca2b A +Auto-merging file +Merge made by the 'recursive' strategy. + file | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) +ok 15 - ignore_merge + +# passed all 15 test(s) +1..15 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t8006-blame-textconv.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t8006-blame-textconv/.git/ -expecting success of 8006.1 'setup ': - echo "bin: test number 0" >zero.bin && - echo "bin: test 1" >one.bin && - echo "bin: test number 2" >two.bin && - test_ln_s_add one.bin symlink.bin && - git add . && - GIT_AUTHOR_NAME=Number1 git commit -a -m First --date="2010-01-01 18:00:00" && - echo "bin: test 1 version 2" >one.bin && - echo "bin: test number 2 version 2" >>two.bin && - rm -f symlink.bin && - test_ln_s_add two.bin symlink.bin && - GIT_AUTHOR_NAME=Number2 git commit -a -m Second --date="2010-01-01 20:00:00" +*** t8014-blame-ignore-fuzzy.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t8014-blame-ignore-fuzzy/.git/ +expecting success of 8014.1 'setup': + for i in $(test_seq 2 $last_test) + do + # Append each line in a separate commit to make it easy to + # check which original line the blame output relates to. -checking prerequisite: SYMLINKS + line_count=0 && + while IFS= read line + do + line_count=$((line_count+1)) && + echo "$line" >>"$i" && + git add "$i" && + test_tick && + GIT_AUTHOR_NAME="$line_count" git commit -m "$line_count" + done <"a$i" + done && -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && - # test whether the filesystem supports symbolic links - ln -s x y && test -h y + for i in $(test_seq 2 $last_test) + do + # Overwrite the files with the final content. + cp b$i $i && + git add $i + done && + test_tick && -) -prerequisite SYMLINKS ok -[master (root-commit) 6a76d70] First - Author: Number1 - Date: Fri Jan 1 18:00:00 2010 +0000 - 5 files changed, 7 insertions(+) - create mode 100755 helper - create mode 100644 one.bin - create mode 120000 symlink.bin - create mode 100644 two.bin - create mode 100644 zero.bin -[master 940e3a6] Second - Author: Number2 - Date: Fri Jan 1 20:00:00 2010 +0000 - 3 files changed, 3 insertions(+), 2 deletions(-) -ok 1 - setup + # Commit the final content all at once so it can all be + # referred to with the same commit ID. + GIT_AUTHOR_NAME=Final git commit -m Final && -expecting success of 8006.2 'no filter specified': - git blame one.bin >blame && - find_blame Number2 result && - test_cmp expected result + IGNOREME=$(git rev-parse HEAD) -ok 2 - no filter specified +[master (root-commit) a459bb2] 1 + Author: 1 + 1 file changed, 1 insertion(+) + create mode 100644 2 +[master 455f594] 2 + Author: 2 + 1 file changed, 1 insertion(+) +[master ae356a5] 3 + Author: 3 + 1 file changed, 1 insertion(+) +[master 986ba04] 4 + Author: 4 + 1 file changed, 1 insertion(+) +[master 112fd1b] 5 + Author: 5 + 1 file changed, 1 insertion(+) +[master 55cb950] 6 + Author: 6 + 1 file changed, 1 insertion(+) +[master fb44572] 7 + Author: 7 + 1 file changed, 1 insertion(+) +[master 0193540] 8 + Author: 8 + 1 file changed, 1 insertion(+) +[master 54573a7] 9 + Author: 9 + 1 file changed, 1 insertion(+) +[master 2906ab9] 10 + Author: 10 + 1 file changed, 1 insertion(+) +[master 993387a] 11 + Author: 11 + 1 file changed, 1 insertion(+) +[master 5a378ed] 12 + Author: 12 + 1 file changed, 1 insertion(+) +[master 07b780d] 13 + Author: 13 + 1 file changed, 1 insertion(+) +[master 06d4280] 14 + Author: 14 + 1 file changed, 1 insertion(+) +[master 83128e2] 15 + Author: 15 + 1 file changed, 1 insertion(+) +[master c7dc60e] 16 + Author: 16 + 1 file changed, 1 insertion(+) +[master b64f9f3] 17 + Author: 17 + 1 file changed, 1 insertion(+) +[master b2112c8] 18 + Author: 18 + 1 file changed, 1 insertion(+) +[master 6de54b3] 19 + Author: 19 + 1 file changed, 1 insertion(+) +[master dd68dd4] 1 + Author: 1 + 1 file changed, 1 insertion(+) + create mode 100644 3 +[master ce31df2] 2 + Author: 2 + 1 file changed, 1 insertion(+) +[master 843f64f] 3 + Author: 3 + 1 file changed, 1 insertion(+) +[master 35030af] 1 + Author: 1 + 1 file changed, 1 insertion(+) + create mode 100644 4 +[master 953d34c] 2 + Author: 2 + 1 file changed, 1 insertion(+) +[master 8e827ec] 3 + Author: 3 + 1 file changed, 1 insertion(+) +[master 8c3589a] 4 + Author: 4 + 1 file changed, 1 insertion(+) +[master 84cd02a] 1 + Author: 1 + 1 file changed, 1 insertion(+) + create mode 100644 5 +[master e94eb23] 2 + Author: 2 + 1 file changed, 1 insertion(+) +[master 32c6f85] 3 + Author: 3 + 1 file changed, 1 insertion(+) +[master bf2d22c] 4 + Author: 4 + 1 file changed, 1 insertion(+) +[master 2d1cc84] 5 + Author: 5 + 1 file changed, 1 insertion(+) +[master 74b81ac] 6 + Author: 6 + 1 file changed, 1 insertion(+) +[master 0854834] 7 + Author: 7 + 1 file changed, 1 insertion(+) +[master 4a530d1] 8 + Author: 8 + 1 file changed, 1 insertion(+) +[master ad63694] 1 + Author: 1 + 1 file changed, 1 insertion(+) + create mode 100644 6 +[master 7e3e3c7] 2 + Author: 2 + 1 file changed, 1 insertion(+) +[master 8c39144] 3 + Author: 3 + 1 file changed, 1 insertion(+) +[master 823725b] 4 + Author: 4 + 1 file changed, 1 insertion(+) +[master 5728ada] 5 + Author: 5 + 1 file changed, 1 insertion(+) +[master 9c5745d] 6 + Author: 6 + 1 file changed, 1 insertion(+) +[master 7ce3865] 7 + Author: 7 + 1 file changed, 1 insertion(+) +[master 9221615] 8 + Author: 8 + 1 file changed, 1 insertion(+) +[master f7f2b1c] 9 + Author: 9 + 1 file changed, 1 insertion(+) +[master c156520] 10 + Author: 10 + 1 file changed, 1 insertion(+) +[master b387727] 11 + Author: 11 + 1 file changed, 1 insertion(+) +[master 3da1770] 12 + Author: 12 + 1 file changed, 1 insertion(+) +[master 9caa469] 13 + Author: 13 + 1 file changed, 1 insertion(+) +[master 1449afa] 14 + Author: 14 + 1 file changed, 1 insertion(+) +[master eafda23] 1 + Author: 1 + 1 file changed, 1 insertion(+) + create mode 100644 7 +[master 83d236f] 2 + Author: 2 + 1 file changed, 1 insertion(+) +[master 77d14eb] 1 + Author: 1 + 1 file changed, 1 insertion(+) + create mode 100644 8 +[master 860eb54] 2 + Author: 2 + 1 file changed, 1 insertion(+) +[master 0b8c3b6] 3 + Author: 3 + 1 file changed, 1 insertion(+) +[master 4dbae56] 1 + Author: 1 + 1 file changed, 1 insertion(+) + create mode 100644 9 +[master 654f4f9] 2 + Author: 2 + 1 file changed, 1 insertion(+) +[master 1194a28] 3 + Author: 3 + 1 file changed, 1 insertion(+) +[master b071882] 4 + Author: 4 + 1 file changed, 1 insertion(+) +[master d878653] 5 + Author: 5 + 1 file changed, 1 insertion(+) +[master 04b3bcc] 1 + Author: 1 + 1 file changed, 1 insertion(+) + create mode 100644 10 +[master f574735] 2 + Author: 2 + 1 file changed, 1 insertion(+) +[master ecce56b] 3 + Author: 3 + 1 file changed, 1 insertion(+) +[master df40e26] 1 + Author: 1 + 1 file changed, 1 insertion(+) + create mode 100644 11 +[master dc03d7d] 2 + Author: 2 + 1 file changed, 1 insertion(+) +[master b4f9f1c] 3 + Author: 3 + 1 file changed, 1 insertion(+) +[master fb77c6a] 1 + Author: 1 + 1 file changed, 1 insertion(+) + create mode 100644 12 +[master eab48da] 1 + Author: 1 + 1 file changed, 1 insertion(+) + create mode 100644 13 +[master 0adab8f] 2 + Author: 2 + 1 file changed, 1 insertion(+) +[master 207a501] 3 + Author: 3 + 1 file changed, 1 insertion(+) +[master c6621c4] 4 + Author: 4 + 1 file changed, 1 insertion(+) +[master 3134814] 5 + Author: 5 + 1 file changed, 1 insertion(+) +[master 01c9204] Final + Author: Final + 12 files changed, 53 insertions(+), 65 deletions(-) +ok 1 - setup -expecting success of 8006.3 'setup textconv filters': - echo "*.bin diff=test" >.gitattributes && - echo "zero.bin eol=crlf" >>.gitattributes && - git config diff.test.textconv ./helper && - git config diff.test.cachetextconv false +expecting success of 8014.2 'Regression test for partially overlapping search ranges': git blame -M9 --ignore-rev 01c9204ad215bac1f8b21a95bd806f4910e7e8b9 2 >output && + sed -e "s/^[0-9a-f^]* *(\([^ ]*\) .*/\1/" output >actual && + test_cmp expected2 actual +ok 2 - Regression test for partially overlapping search ranges -ok 3 - setup textconv filters +expecting success of 8014.3 'Combine 3 lines into 2': git blame -M9 --ignore-rev 01c9204ad215bac1f8b21a95bd806f4910e7e8b9 3 >output && + sed -e "s/^[0-9a-f^]* *(\([^ ]*\) .*/\1/" output >actual && + test_cmp expected3 actual +ok 3 - Combine 3 lines into 2 -expecting success of 8006.4 'blame with --no-textconv': - git blame --no-textconv one.bin >blame && - find_blame result && - test_cmp expected result +expecting success of 8014.4 'Add curly brackets': git blame -M9 --ignore-rev 01c9204ad215bac1f8b21a95bd806f4910e7e8b9 4 >output && + sed -e "s/^[0-9a-f^]* *(\([^ ]*\) .*/\1/" output >actual && + test_cmp expected4 actual +ok 4 - Add curly brackets -ok 4 - blame with --no-textconv +expecting success of 8014.5 'Combine many lines and change case': git blame -M9 --ignore-rev 01c9204ad215bac1f8b21a95bd806f4910e7e8b9 5 >output && + sed -e "s/^[0-9a-f^]* *(\([^ ]*\) .*/\1/" output >actual && + test_cmp expected5 actual +ok 5 - Combine many lines and change case -expecting success of 8006.5 'basic blame on last commit': - git blame one.bin >blame && - find_blame result && - test_cmp expected result +expecting success of 8014.6 'Rename and combine lines': git blame -M9 --ignore-rev 01c9204ad215bac1f8b21a95bd806f4910e7e8b9 6 >output && + sed -e "s/^[0-9a-f^]* *(\([^ ]*\) .*/\1/" output >actual && + test_cmp expected6 actual +ok 6 - Rename and combine lines -ok 5 - basic blame on last commit +expecting success of 8014.7 'Same line twice': git blame -M9 --ignore-rev 01c9204ad215bac1f8b21a95bd806f4910e7e8b9 7 >output && + sed -e "s/^[0-9a-f^]* *(\([^ ]*\) .*/\1/" output >actual && + test_cmp expected7 actual +ok 7 - Same line twice -expecting success of 8006.6 'blame --textconv going through revisions': - git blame --textconv two.bin >blame && - find_blame result && - test_cmp expected result +expecting success of 8014.8 'Enforce line order': git blame -M9 --ignore-rev 01c9204ad215bac1f8b21a95bd806f4910e7e8b9 8 >output && + sed -e "s/^[0-9a-f^]* *(\([^ ]*\) .*/\1/" output >actual && + test_cmp expected8 actual +ok 8 - Enforce line order -ok 6 - blame --textconv going through revisions +expecting success of 8014.9 'Expand lines and rename variables': git blame -M9 --ignore-rev 01c9204ad215bac1f8b21a95bd806f4910e7e8b9 9 >output && + sed -e "s/^[0-9a-f^]* *(\([^ ]*\) .*/\1/" output >actual && + test_cmp expected9 actual +ok 9 - Expand lines and rename variables -expecting success of 8006.7 'blame --textconv with local changes': - test_when_finished "git checkout zero.bin" && - printf "bin: updated number 0\015" >zero.bin && - git blame --textconv zero.bin >blame && - expect="(Not Committed Yet ....-..-.. ..:..:.. +0000 1)" && - expect="$expect converted: updated number 0" && - expr "$(find_blame output && + sed -e "s/^[0-9a-f^]* *(\([^ ]*\) .*/\1/" output >actual && + test_cmp expected10 actual +ok 10 - Two close matches versus one less close match -75 -Updated 1 path from the index -ok 7 - blame --textconv with local changes +expecting success of 8014.11 'Piggy in the middle': git blame -M9 --ignore-rev 01c9204ad215bac1f8b21a95bd806f4910e7e8b9 11 >output && + sed -e "s/^[0-9a-f^]* *(\([^ ]*\) .*/\1/" output >actual && + test_cmp expected11 actual +ok 11 - Piggy in the middle -expecting success of 8006.8 'setup +cachetextconv': - git config diff.test.cachetextconv true +expecting success of 8014.12 'No trailing newline': git blame -M9 --ignore-rev 01c9204ad215bac1f8b21a95bd806f4910e7e8b9 12 >output && + sed -e "s/^[0-9a-f^]* *(\([^ ]*\) .*/\1/" output >actual && + test_cmp expected12 actual +ok 12 - No trailing newline -ok 8 - setup +cachetextconv +expecting success of 8014.13 'Reorder includes': git blame -M9 --ignore-rev 01c9204ad215bac1f8b21a95bd806f4910e7e8b9 13 >output && + sed -e "s/^[0-9a-f^]* *(\([^ ]*\) .*/\1/" output >actual && + test_cmp expected13 actual +ok 13 - Reorder includes -expecting success of 8006.9 'blame --textconv works with textconvcache': - git blame --textconv two.bin >blame && - find_blame result && - test_cmp expected result && - git blame --textconv one.bin >blame && - find_blame result && - test_cmp expected_one result +expecting success of 8014.14 'Diff chunks with no suspects': + test_write_lines xy1 A B C xy1 >file && + git add file && + test_tick && + GIT_AUTHOR_NAME=1 git commit -m 1 && -ok 9 - blame --textconv works with textconvcache + test_write_lines xy2 A B xy2 C xy2 >file && + git add file && + test_tick && + GIT_AUTHOR_NAME=2 git commit -m 2 && + REV_2=$(git rev-parse HEAD) && -expecting success of 8006.10 'setup -cachetextconv': - git config diff.test.cachetextconv false + test_write_lines xy3 A >file && + git add file && + test_tick && + GIT_AUTHOR_NAME=3 git commit -m 3 && + REV_3=$(git rev-parse HEAD) && -ok 10 - setup -cachetextconv + test_write_lines 1 1 >expected && -expecting success of 8006.11 'make a new commit': - echo "bin: test number 2 version 3" >>two.bin && - GIT_AUTHOR_NAME=Number3 git commit -a -m Third --date="2010-01-01 22:00:00" + git blame --ignore-rev $REV_2 --ignore-rev $REV_3 file >output && + sed -e "$pick_author" output >actual && -[master 31ce4ac] Third - Author: Number3 - Date: Fri Jan 1 22:00:00 2010 +0000 + test_cmp expected actual + +[master c2d5eb7] 1 + Author: 1 + 1 file changed, 5 insertions(+) + create mode 100644 file +[master 06b555d] 2 + Author: 2 + 1 file changed, 3 insertions(+), 2 deletions(-) +[master a1483a3] 3 + Author: 3 + 1 file changed, 1 insertion(+), 5 deletions(-) +ok 14 - Diff chunks with no suspects + +expecting success of 8014.15 'position matching': + test_write_lines abc def >file2 && + git add file2 && + test_tick && + GIT_AUTHOR_NAME=1 git commit -m 1 && + + test_write_lines abc def abc def >file2 && + git add file2 && + test_tick && + GIT_AUTHOR_NAME=2 git commit -m 2 && + + test_write_lines abcx defx abcx defx >file2 && + git add file2 && + test_tick && + GIT_AUTHOR_NAME=3 git commit -m 3 && + REV_3=$(git rev-parse HEAD) && + + test_write_lines abcy defy abcx defx >file2 && + git add file2 && + test_tick && + GIT_AUTHOR_NAME=4 git commit -m 4 && + REV_4=$(git rev-parse HEAD) && + + test_write_lines 1 1 2 2 >expected && + + git blame --ignore-rev $REV_3 --ignore-rev $REV_4 file2 >output && + sed -e "$pick_author" output >actual && + + test_cmp expected actual + +[master 35116cb] 1 + Author: 1 + 1 file changed, 2 insertions(+) + create mode 100644 file2 +[master 2cf8ef0] 2 + Author: 2 + 1 file changed, 2 insertions(+) +[master db13f6f] 3 + Author: 3 + 1 file changed, 4 insertions(+), 4 deletions(-) +[master bf5dda1] 4 + Author: 4 + 1 file changed, 2 insertions(+), 2 deletions(-) +ok 15 - position matching + +expecting success of 8014.16 'preserve order': + test_write_lines bcde >file3 && + git add file3 && + test_tick && + GIT_AUTHOR_NAME=1 git commit -m 1 && + + test_write_lines bcde fghij >file3 && + git add file3 && + test_tick && + GIT_AUTHOR_NAME=2 git commit -m 2 && + + test_write_lines bcde fghij abcd >file3 && + git add file3 && + test_tick && + GIT_AUTHOR_NAME=3 git commit -m 3 && + + test_write_lines abcdx fghijx bcdex >file3 && + git add file3 && + test_tick && + GIT_AUTHOR_NAME=4 git commit -m 4 && + REV_4=$(git rev-parse HEAD) && + + test_write_lines abcdx fghijy bcdex >file3 && + git add file3 && + test_tick && + GIT_AUTHOR_NAME=5 git commit -m 5 && + REV_5=$(git rev-parse HEAD) && + + test_write_lines 1 2 3 >expected && + + git blame --ignore-rev $REV_4 --ignore-rev $REV_5 file3 >output && + sed -e "$pick_author" output >actual && + + test_cmp expected actual + +[master 7405022] 1 + Author: 1 1 file changed, 1 insertion(+) -ok 11 - make a new commit + create mode 100644 file3 +[master 83ccc7b] 2 + Author: 2 + 1 file changed, 1 insertion(+) +[master 56aa8aa] 3 + Author: 3 + 1 file changed, 1 insertion(+) +[master a6b3442] 4 + Author: 4 + 1 file changed, 3 insertions(+), 3 deletions(-) +[master 9acf8a7] 5 + Author: 5 + 1 file changed, 1 insertion(+), 1 deletion(-) +ok 16 - preserve order -expecting success of 8006.12 'blame from previous revision': - git blame HEAD^ two.bin >blame && - find_blame result && - test_cmp expected result +# passed all 16 test(s) +1..16 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t9002-column.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9002-column/.git/ +expecting success of 9002.1 'setup': + cat >lista <<\EOF +one +two +three +four +five +six +seven +eight +nine +ten +eleven +EOF -ok 12 - blame from previous revision +ok 1 - setup -expecting success of 8006.13 'blame with --no-textconv (on symlink)': - git blame --no-textconv symlink.bin >blame && - find_blame result && - test_cmp expected result +expecting success of 9002.2 'never': + git column --indent=Z --mode=never actual && + test_cmp lista actual -ok 13 - blame with --no-textconv (on symlink) +ok 2 - never -expecting success of 8006.14 'blame --textconv (on symlink)': - git blame --textconv symlink.bin >blame && - find_blame result && - test_cmp expected result +expecting success of 9002.3 'always': + cat >expected <<\EOF && +Zone +Ztwo +Zthree +Zfour +Zfive +Zsix +Zseven +Zeight +Znine +Zten +Zeleven +EOF + git column --indent=Z --mode=plain actual && + test_cmp expected actual -ok 14 - blame --textconv (on symlink) +ok 3 - always -expecting success of 8006.15 'make another new commit': - cat >three.bin <<\EOF && -bin: test number 2 -bin: test number 2 version 2 -bin: test number 2 version 3 -bin: test number 3 +expecting success of 9002.4 '80 columns': + cat >expected <<\EOF && +one two three four five six seven eight nine ten eleven EOF - git add three.bin && - GIT_AUTHOR_NAME=Number4 git commit -a -m Fourth --date="2010-01-01 23:00:00" + COLUMNS=80 git column --mode=column actual && + test_cmp expected actual -[master edd8eae] Fourth - Author: Number4 - Date: Fri Jan 1 23:00:00 2010 +0000 - 1 file changed, 4 insertions(+) - create mode 100644 three.bin -ok 15 - make another new commit +ok 4 - 80 columns -expecting success of 8006.16 'blame on last commit (-C -C, symlink)': - git blame -C -C three.bin >blame && - find_blame result && +expecting success of 9002.5 'COLUMNS = 1': + COLUMNS=1 git column --mode=column actual && + test_cmp expected actual + +ok 5 - COLUMNS = 1 + +expecting success of 9002.6 'width = 1': + git column --mode=column --width=1 actual && + test_cmp expected actual + +ok 6 - width = 1 + +expecting success of 9002.7 '20 columns': cat >expected <<\EOF && -(Number1 2010-01-01 18:00:00 +0000 1) converted: test number 2 -(Number2 2010-01-01 20:00:00 +0000 2) converted: test number 2 version 2 -(Number3 2010-01-01 22:00:00 +0000 3) converted: test number 2 version 3 -(Number4 2010-01-01 23:00:00 +0000 4) converted: test number 3 +one seven +two eight +three nine +four ten +five eleven +six EOF - test_cmp expected result + git column --mode=column actual && + test_cmp expected actual -ok 16 - blame on last commit (-C -C, symlink) +ok 7 - 20 columns -# passed all 16 test(s) -1..16 +expecting success of 9002.8 '20 columns, nodense': + cat >expected <<\EOF && +one seven +two eight +three nine +four ten +five eleven +six +EOF + git column --mode=column,nodense < lista > actual && + test_cmp expected actual + +ok 8 - 20 columns, nodense + +expecting success of 9002.9 '20 columns, dense': + cat >expected <<\EOF && +one five nine +two six ten +three seven eleven +four eight +EOF + git column --mode=column,dense < lista > actual && + test_cmp expected actual + +ok 9 - 20 columns, dense + +expecting success of 9002.10 '20 columns, padding 2': + cat >expected <<\EOF && +one seven +two eight +three nine +four ten +five eleven +six +EOF + git column --mode=column --padding 2 actual && + test_cmp expected actual + +ok 10 - 20 columns, padding 2 + +expecting success of 9002.11 '20 columns, indented': + cat >expected <<\EOF && + one seven + two eight + three nine + four ten + five eleven + six +EOF + git column --mode=column --indent=" " actual && + test_cmp expected actual + +ok 11 - 20 columns, indented + +expecting success of 9002.12 '20 columns, row first': + cat >expected <<\EOF && +one two +three four +five six +seven eight +nine ten +eleven +EOF + git column --mode=row actual && + test_cmp expected actual + +ok 12 - 20 columns, row first + +expecting success of 9002.13 '20 columns, row first, nodense': + cat >expected <<\EOF && +one two +three four +five six +seven eight +nine ten +eleven +EOF + git column --mode=row,nodense actual && + test_cmp expected actual + +ok 13 - 20 columns, row first, nodense + +expecting success of 9002.14 '20 columns, row first, dense': + cat >expected <<\EOF && +one two three +four five six +seven eight nine +ten eleven +EOF + git column --mode=row,dense actual && + test_cmp expected actual + +ok 14 - 20 columns, row first, dense + +# passed all 14 test(s) +1..14 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t8008-blame-formats.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t8008-blame-formats/.git/ -expecting success of 8008.1 'setup': - echo a >file && - git add file && - test_tick && - git commit -m one && - echo b >>file && - echo c >>file && - echo d >>file && - test_tick && - git commit -a -m two && - ID1=$(git rev-parse HEAD^) && - shortID1="^$(git rev-parse HEAD^ |cut -c 1-17)" && - ID2=$(git rev-parse HEAD) && - shortID2="$(git rev-parse HEAD |cut -c 1-18)" +*** t9003-help-autocorrect.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9003-help-autocorrect/.git/ +expecting success of 9003.1 'setup': + # An alias + git config alias.lgf "log --format=%s --first-parent" && -[master (root-commit) baf5e0b] one - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -[master 8825379] two + # A random user-defined command + write_script git-distimdistim <<-EOF && + echo distimdistim was called + EOF + + PATH="$PATH:." && + export PATH && + + git commit --allow-empty -m "a single log entry" && + + # Sanity check + git lgf >actual && + echo "a single log entry" >expect && + test_cmp expect actual && + + git distimdistim >actual && + echo "distimdistim was called" >expect && + test_cmp expect actual + +[master (root-commit) b57823c] a single log entry Author: A U Thor - 1 file changed, 3 insertions(+) ok 1 - setup -expecting success of 8008.2 'normal blame output': - git blame --abbrev=17 file >actual && - test_cmp expect actual +expecting success of 9003.2 'autocorrect showing candidates': + git config help.autocorrect 0 && -ok 2 - normal blame output + test_must_fail git lfg 2>actual && + grep "^ lgf" actual && -expecting success of 8008.3 'blame --porcelain output': - git blame --porcelain file >actual && - test_cmp expect actual + test_must_fail git distimdist 2>actual && + grep "^ distimdistim" actual -ok 3 - blame --porcelain output + lgf + distimdistim +ok 2 - autocorrect showing candidates -expecting success of 8008.4 'blame --line-porcelain output': - git blame --line-porcelain file >actual && - test_cmp expect actual +expecting success of 9003.3 'autocorrect running commands': + git config help.autocorrect $immediate && -ok 4 - blame --line-porcelain output + git lfg >actual && + echo "a single log entry" >expect && + test_cmp expect actual && -expecting success of 8008.5 '--porcelain detects first non-blank line as subject': - ( - GIT_INDEX_FILE=.git/tmp-index && - export GIT_INDEX_FILE && - echo "This is it" >single-file && - git add single-file && - tree=$(git write-tree) && - commit=$(printf "%s\n%s\n%s\n\n\n \noneline\n\nbody\n" \ - "tree $tree" \ - "author A 123456789 +0000" \ - "committer C 123456789 +0000" | - git hash-object -w -t commit --stdin) && - git blame --porcelain $commit -- single-file >output && - grep "^summary oneline$" output - ) + git distimdist >actual && + echo "distimdistim was called" >expect && + test_cmp expect actual + +WARNING: You called a Git command named 'lfg', which does not exist. +Continuing under the assumption that you meant 'lgf'. +WARNING: You called a Git command named 'distimdist', which does not exist. +Continuing under the assumption that you meant 'distimdistim'. +ok 3 - autocorrect running commands -summary oneline -ok 5 - --porcelain detects first non-blank line as subject +expecting success of 9003.4 'autocorrect running commands': + git config help.autocorrect $immediate && + + git lfg >actual && + echo "a single log entry" >expect && + test_cmp expect actual && + + git distimdist >actual && + echo "distimdistim was called" >expect && + test_cmp expect actual + +WARNING: You called a Git command named 'lfg', which does not exist. +Continuing under the assumption that you meant 'lgf'. +WARNING: You called a Git command named 'distimdist', which does not exist. +Continuing under the assumption that you meant 'distimdistim'. +ok 4 - autocorrect running commands + +expecting success of 9003.5 'autocorrect can be declined altogether': + git config help.autocorrect never && + + test_must_fail git lfg 2>actual && + if test_have_prereq C_LOCALE_OUTPUT + then + grep "is not a git command" actual && + test_line_count = 1 actual + fi + +checking prerequisite: C_LOCALE_OUTPUT + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false + +) +prerequisite C_LOCALE_OUTPUT ok +git: 'lfg' is not a git command. See 'git --help'. +ok 5 - autocorrect can be declined altogether # passed all 5 test(s) 1..5 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t8009-blame-vs-topicbranches.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t8009-blame-vs-topicbranches/.git/ -expecting success of 8009.1 'setup': - test_commit A0 file.t line0 && - test_commit A1 && - git reset --hard A0 && - test_commit B1 && - test_commit B2 file.t line0changed && - git reset --hard A1 && - test_merge A2 B2 && - git reset --hard A1 && - test_commit C1 && - git reset --hard A2 && - test_merge A3 C1 - -[master (root-commit) 2152206] A0 - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file.t -[master 5392e14] A1 - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 A1.t -HEAD is now at 2152206 A0 -[master 15a8c72] B1 - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 B1.t -[master e1433f5] B2 - Author: A U Thor +*** t8012-blame-colors.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t8012-blame-colors/.git/ +expecting success of 8012.1 'setup A lines': + echo "1A quick brown fox jumps over the" >file && + echo "lazy dog" >>file && + git add file && + GIT_AUTHOR_NAME="A" GIT_AUTHOR_EMAIL="A@test.git" \ + git commit -a -m "Initial." + +[master (root-commit) 129283d] Initial. + Author: A + 1 file changed, 2 insertions(+) + create mode 100644 file +ok 1 - setup A lines + +expecting success of 8012.2 'blame 1 author': + check_count A 2 + +git blame -c file +Author A (expected 2, attributed 2) good +ok 2 - blame 1 author + +expecting success of 8012.3 'blame in a bare repo without starting commit': + git clone --bare . bare.git && + ( + cd bare.git && + check_count A 2 + ) + +Cloning into bare repository 'bare.git'... +done. +git blame -c file +Author A (expected 2, attributed 2) good +ok 3 - blame in a bare repo without starting commit + +expecting success of 8012.4 'blame by tag objects': + git tag -m "test tag" testTag && + git tag -m "test tag #2" testTag2 testTag && + check_count -h testTag A 2 && + check_count -h testTag2 A 2 + +hint: You have created a nested tag. The object referred to by your new tag is +hint: already a tag. If you meant to tag the object that it points to, use: +hint: +hint: git tag -f testTag2 testTag^{} +hint: Disable this message with "git config advice.nestedTag false" +git blame -c file testTag +Author A (expected 2, attributed 2) good +git blame -c file testTag2 +Author A (expected 2, attributed 2) good +ok 4 - blame by tag objects + +expecting success of 8012.5 'setup B lines': + echo "2A quick brown fox jumps over the" >>file && + echo "lazy dog" >>file && + GIT_AUTHOR_NAME="B" GIT_AUTHOR_EMAIL="B@test.git" \ + git commit -a -m "Second." + +[master 7e31098] Second. + Author: B + 1 file changed, 2 insertions(+) +ok 5 - setup B lines + +expecting success of 8012.6 'blame 2 authors': + check_count A 2 B 2 + +git blame -c file +Author B (expected 2, attributed 2) good +Author A (expected 2, attributed 2) good +ok 6 - blame 2 authors + +expecting success of 8012.7 'setup B1 lines (branch1)': + git checkout -b branch1 master && + echo "3A slow green fox jumps into the" >>file && + echo "well." >>file && + GIT_AUTHOR_NAME="B1" GIT_AUTHOR_EMAIL="B1@test.git" \ + git commit -a -m "Branch1-1" + +Switched to a new branch 'branch1' +[branch1 1b9b47a] Branch1-1 + Author: B1 + 1 file changed, 2 insertions(+) +ok 7 - setup B1 lines (branch1) + +expecting success of 8012.8 'blame 2 authors + 1 branch1 author': + check_count A 2 B 2 B1 2 + +git blame -c file +Author B (expected 2, attributed 2) good +Author A (expected 2, attributed 2) good +Author B1 (expected 2, attributed 2) good +ok 8 - blame 2 authors + 1 branch1 author + +expecting success of 8012.9 'setup B2 lines (branch2)': + git checkout -b branch2 master && + sed -e "s/2A quick brown/4A quick brown lazy dog/" file.new && + mv file.new file && + GIT_AUTHOR_NAME="B2" GIT_AUTHOR_EMAIL="B2@test.git" \ + git commit -a -m "Branch2-1" + +Switched to a new branch 'branch2' +[branch2 7d77deb] Branch2-1 + Author: B2 1 file changed, 1 insertion(+), 1 deletion(-) -HEAD is now at 5392e14 A1 +ok 9 - setup B2 lines (branch2) + +expecting success of 8012.10 'blame 2 authors + 1 branch2 author': + check_count A 2 B 1 B2 1 + +git blame -c file +Author A (expected 2, attributed 2) good +Author B (expected 1, attributed 1) good +Author B2 (expected 1, attributed 1) good +ok 10 - blame 2 authors + 1 branch2 author + +expecting success of 8012.11 'merge branch1 & branch2': + git merge branch1 + Merging: -5392e14 A1 -virtual B2 +7d77deb Branch2-1 +virtual branch1 found 1 common ancestor: -2152206 A0 +7e31098 Second. +Auto-merging file Merge made by the 'recursive' strategy. - B1.t | 1 + - file.t | 2 +- - 2 files changed, 2 insertions(+), 1 deletion(-) - create mode 100644 B1.t -HEAD is now at 5392e14 A1 -[master fa266ba] C1 + file | 2 ++ + 1 file changed, 2 insertions(+) +ok 11 - merge branch1 & branch2 + +expecting success of 8012.12 'blame 2 authors + 2 merged-in authors': + check_count A 2 B 1 B1 2 B2 1 + +git blame -c file +Author B (expected 1, attributed 1) good +Author B1 (expected 2, attributed 2) good +Author A (expected 2, attributed 2) good +Author B2 (expected 1, attributed 1) good +ok 12 - blame 2 authors + 2 merged-in authors + +expecting success of 8012.13 'blame --first-parent blames merge for branch1': + check_count --first-parent A 2 B 1 "A U Thor" 2 B2 1 + +git blame -c --first-parent file +Author A U Thor (expected 2, attributed 2) good +Author B (expected 1, attributed 1) good +Author A (expected 2, attributed 2) good +Author B2 (expected 1, attributed 1) good +ok 13 - blame --first-parent blames merge for branch1 + +expecting success of 8012.14 'blame ancestor': + check_count -h master A 2 B 2 + +git blame -c file master +Author B (expected 2, attributed 2) good +Author A (expected 2, attributed 2) good +ok 14 - blame ancestor + +expecting success of 8012.15 'blame great-ancestor': + check_count -h master^ A 2 + +git blame -c file master^ +Author A (expected 2, attributed 2) good +ok 15 - blame great-ancestor + +expecting success of 8012.16 'setup evil merge': + echo "evil merge." >>file && + git commit -a --amend + +[branch2 c413b3e] Merge branch 'branch1' into branch2 Author: A U Thor + Date: Fri Apr 1 13:14:15 2005 +0200 +ok 16 - setup evil merge + +expecting success of 8012.17 'blame evil merge': + check_count A 2 B 1 B1 2 B2 1 "A U Thor" 1 + +git blame -c file +Author A (expected 2, attributed 2) good +Author B2 (expected 1, attributed 1) good +Author B1 (expected 2, attributed 2) good +Author A U Thor (expected 1, attributed 1) good +Author B (expected 1, attributed 1) good +ok 17 - blame evil merge + +expecting success of 8012.18 'blame huge graft': + test_when_finished "git checkout branch2" && + test_when_finished "rm -f .git/info/grafts" && + graft= && + for i in 0 1 2 + do + for j in 0 1 2 3 4 5 6 7 8 9 + do + git checkout --orphan "$i$j" && + printf "%s\n" "$i" "$j" >file && + test_tick && + GIT_AUTHOR_NAME=$i$j GIT_AUTHOR_EMAIL=$i$j@test.git \ + git commit -a -m "$i$j" && + commit=$(git rev-parse --verify HEAD) && + graft="$graft$commit " + done + done && + printf "%s " $graft >.git/info/grafts && + check_count -h 00 01 1 10 1 + +Switched to a new branch '00' +[00 (root-commit) e2c6177] 00 + Author: 00 <00@test.git> + 1 file changed, 2 insertions(+) + create mode 100644 file +Switched to a new branch '01' +[01 (root-commit) 0dbe04b] 01 + Author: 01 <01@test.git> + 1 file changed, 2 insertions(+) + create mode 100644 file +Switched to a new branch '02' +[02 (root-commit) 97fbca6] 02 + Author: 02 <02@test.git> + 1 file changed, 2 insertions(+) + create mode 100644 file +Switched to a new branch '03' +[03 (root-commit) 5cdbcd8] 03 + Author: 03 <03@test.git> + 1 file changed, 2 insertions(+) + create mode 100644 file +Switched to a new branch '04' +[04 (root-commit) 5a154cf] 04 + Author: 04 <04@test.git> + 1 file changed, 2 insertions(+) + create mode 100644 file +Switched to a new branch '05' +[05 (root-commit) a84e1de] 05 + Author: 05 <05@test.git> + 1 file changed, 2 insertions(+) + create mode 100644 file +Switched to a new branch '06' +[06 (root-commit) d4bea54] 06 + Author: 06 <06@test.git> + 1 file changed, 2 insertions(+) + create mode 100644 file +Switched to a new branch '07' +[07 (root-commit) 24ba6e8] 07 + Author: 07 <07@test.git> + 1 file changed, 2 insertions(+) + create mode 100644 file +Switched to a new branch '08' +[08 (root-commit) fe90088] 08 + Author: 08 <08@test.git> + 1 file changed, 2 insertions(+) + create mode 100644 file +Switched to a new branch '09' +[09 (root-commit) 773a2fb] 09 + Author: 09 <09@test.git> + 1 file changed, 2 insertions(+) + create mode 100644 file +Switched to a new branch '10' +[10 (root-commit) 80536e5] 10 + Author: 10 <10@test.git> + 1 file changed, 2 insertions(+) + create mode 100644 file +Switched to a new branch '11' +[11 (root-commit) 33c07c1] 11 + Author: 11 <11@test.git> + 1 file changed, 2 insertions(+) + create mode 100644 file +Switched to a new branch '12' +[12 (root-commit) ae7094b] 12 + Author: 12 <12@test.git> + 1 file changed, 2 insertions(+) + create mode 100644 file +Switched to a new branch '13' +[13 (root-commit) 19e767d] 13 + Author: 13 <13@test.git> + 1 file changed, 2 insertions(+) + create mode 100644 file +Switched to a new branch '14' +[14 (root-commit) f7159ac] 14 + Author: 14 <14@test.git> + 1 file changed, 2 insertions(+) + create mode 100644 file +Switched to a new branch '15' +[15 (root-commit) d95fecf] 15 + Author: 15 <15@test.git> + 1 file changed, 2 insertions(+) + create mode 100644 file +Switched to a new branch '16' +[16 (root-commit) d8bfdb9] 16 + Author: 16 <16@test.git> + 1 file changed, 2 insertions(+) + create mode 100644 file +Switched to a new branch '17' +[17 (root-commit) aa3f31e] 17 + Author: 17 <17@test.git> + 1 file changed, 2 insertions(+) + create mode 100644 file +Switched to a new branch '18' +[18 (root-commit) d76cb1d] 18 + Author: 18 <18@test.git> + 1 file changed, 2 insertions(+) + create mode 100644 file +Switched to a new branch '19' +[19 (root-commit) 95e03c5] 19 + Author: 19 <19@test.git> + 1 file changed, 2 insertions(+) + create mode 100644 file +Switched to a new branch '20' +[20 (root-commit) d40a964] 20 + Author: 20 <20@test.git> + 1 file changed, 2 insertions(+) + create mode 100644 file +Switched to a new branch '21' +[21 (root-commit) 6c3def2] 21 + Author: 21 <21@test.git> + 1 file changed, 2 insertions(+) + create mode 100644 file +Switched to a new branch '22' +[22 (root-commit) 78d2294] 22 + Author: 22 <22@test.git> + 1 file changed, 2 insertions(+) + create mode 100644 file +Switched to a new branch '23' +[23 (root-commit) 76a64d0] 23 + Author: 23 <23@test.git> + 1 file changed, 2 insertions(+) + create mode 100644 file +Switched to a new branch '24' +[24 (root-commit) 59f234a] 24 + Author: 24 <24@test.git> + 1 file changed, 2 insertions(+) + create mode 100644 file +Switched to a new branch '25' +[25 (root-commit) 26ac47a] 25 + Author: 25 <25@test.git> + 1 file changed, 2 insertions(+) + create mode 100644 file +Switched to a new branch '26' +[26 (root-commit) db7e855] 26 + Author: 26 <26@test.git> + 1 file changed, 2 insertions(+) + create mode 100644 file +Switched to a new branch '27' +[27 (root-commit) 279f565] 27 + Author: 27 <27@test.git> + 1 file changed, 2 insertions(+) + create mode 100644 file +Switched to a new branch '28' +[28 (root-commit) f691d9c] 28 + Author: 28 <28@test.git> + 1 file changed, 2 insertions(+) + create mode 100644 file +Switched to a new branch '29' +[29 (root-commit) c72134e] 29 + Author: 29 <29@test.git> + 1 file changed, 2 insertions(+) + create mode 100644 file +git blame -c file 00 +hint: Support for /info/grafts is deprecated +hint: and will be removed in a future Git version. +hint: +hint: Please use "git replace --convert-graft-file" +hint: to convert the grafts into replace refs. +hint: +hint: Turn this message off by running +hint: "git config advice.graftFileDeprecated false" +Author 10 (expected 1, attributed 1) good +Author 01 (expected 1, attributed 1) good +Switched to branch 'branch2' +ok 18 - blame huge graft + +expecting success of 8012.19 'setup incomplete line': + echo "incomplete" | tr -d "\\012" >>file && + GIT_AUTHOR_NAME="C" GIT_AUTHOR_EMAIL="C@test.git" \ + git commit -a -m "Incomplete" + +[branch2 565fef5] Incomplete + Author: C 1 file changed, 1 insertion(+) - create mode 100644 C1.t -HEAD is now at 6e3b304 A2 -Merging: -6e3b304 A2 -virtual C1 -found 1 common ancestor: -5392e14 A1 -Merge made by the 'recursive' strategy. - C1.t | 1 + +ok 19 - setup incomplete line + +expecting success of 8012.20 'blame incomplete line': + check_count A 2 B 1 B1 2 B2 1 "A U Thor" 1 C 1 + +git blame -c file +Author B2 (expected 1, attributed 1) good +Author B1 (expected 2, attributed 2) good +Author B (expected 1, attributed 1) good +Author A (expected 2, attributed 2) good +Author A U Thor (expected 1, attributed 1) good +Author C (expected 1, attributed 1) good +ok 20 - blame incomplete line + +expecting success of 8012.21 'setup edits': + mv file file.orig && + { + cat file.orig && + echo + } | sed -e "s/^3A/99/" -e "/^1A/d" -e "/^incomplete/d" >file && + echo "incomplete" | tr -d "\\012" >>file && + GIT_AUTHOR_NAME="D" GIT_AUTHOR_EMAIL="D@test.git" \ + git commit -a -m "edit" + +[branch2 96588b8] edit + Author: D + 1 file changed, 1 insertion(+), 2 deletions(-) +ok 21 - setup edits + +expecting success of 8012.22 'blame edits': + check_count A 1 B 1 B1 1 B2 1 "A U Thor" 1 C 1 D 1 + +git blame -c file +Author A U Thor (expected 1, attributed 1) good +Author B1 (expected 1, attributed 1) good +Author B (expected 1, attributed 1) good +Author C (expected 1, attributed 1) good +Author D (expected 1, attributed 1) good +Author B2 (expected 1, attributed 1) good +Author A (expected 1, attributed 1) good +ok 22 - blame edits + +expecting success of 8012.23 'setup obfuscated email': + echo "No robots allowed" >file.new && + cat file >>file.new && + mv file.new file && + GIT_AUTHOR_NAME="E" GIT_AUTHOR_EMAIL="E at test dot git" \ + git commit -a -m "norobots" + +[branch2 04f7693] norobots + Author: E 1 file changed, 1 insertion(+) - create mode 100644 C1.t -ok 1 - setup +ok 23 - setup obfuscated email -expecting success of 8009.2 'blame --reverse --first-parent finds A1': - git blame --porcelain --reverse --first-parent A0..A3 -- file.t >actual_full && - head -n 1 actual && - git rev-parse A1 >expect && - test_cmp expect actual - -ok 2 - blame --reverse --first-parent finds A1 +expecting success of 8012.24 'blame obfuscated email': + check_count A 1 B 1 B1 1 B2 1 "A U Thor" 1 C 1 D 1 E 1 -# passed all 2 test(s) -1..2 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t8010-cat-file-filters.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t8010-cat-file-filters/.git/ -expecting success of 8010.1 'setup ': - echo "*.txt eol=crlf diff=txt" >.gitattributes && - echo "hello" | append_cr >world.txt && - git add .gitattributes world.txt && - test_tick && - git commit -m "Initial commit" +git blame -c file +Author B1 (expected 1, attributed 1) good +Author A U Thor (expected 1, attributed 1) good +Author D (expected 1, attributed 1) good +Author C (expected 1, attributed 1) good +Author B2 (expected 1, attributed 1) good +Author A (expected 1, attributed 1) good +Author E (expected 1, attributed 1) good +Author B (expected 1, attributed 1) good +ok 24 - blame obfuscated email -[master (root-commit) 7b708d0] Initial commit - Author: A U Thor - 2 files changed, 2 insertions(+) - create mode 100644 .gitattributes - create mode 100644 world.txt -ok 1 - setup +expecting success of 8012.25 'blame -L 1 (all)': + check_count -L1 A 1 B 1 B1 1 B2 1 "A U Thor" 1 C 1 D 1 E 1 -expecting success of 8010.2 'no filters with `git show`': - git show HEAD:world.txt >actual && - ! has_cr actual +git blame -c -L1 file +Author B (expected 1, attributed 1) good +Author A (expected 1, attributed 1) good +Author C (expected 1, attributed 1) good +Author D (expected 1, attributed 1) good +Author A U Thor (expected 1, attributed 1) good +Author B1 (expected 1, attributed 1) good +Author B2 (expected 1, attributed 1) good +Author E (expected 1, attributed 1) good +ok 25 - blame -L 1 (all) +expecting success of 8012.26 'blame -L , (all)': + check_count -L, A 1 B 1 B1 1 B2 1 "A U Thor" 1 C 1 D 1 E 1 -ok 2 - no filters with `git show` +git blame -c -L, file +Author A (expected 1, attributed 1) good +Author E (expected 1, attributed 1) good +Author B2 (expected 1, attributed 1) good +Author D (expected 1, attributed 1) good +Author B1 (expected 1, attributed 1) good +Author A U Thor (expected 1, attributed 1) good +Author C (expected 1, attributed 1) good +Author B (expected 1, attributed 1) good +ok 26 - blame -L , (all) -expecting success of 8010.3 'no filters with cat-file': - git cat-file blob HEAD:world.txt >actual && - ! has_cr actual +expecting success of 8012.27 'blame -L X (X to end)': + check_count -L5 B1 1 C 1 D 1 "A U Thor" 1 -ok 3 - no filters with cat-file +git blame -c -L5 file +Author C (expected 1, attributed 1) good +Author A U Thor (expected 1, attributed 1) good +Author D (expected 1, attributed 1) good +Author B1 (expected 1, attributed 1) good +ok 27 - blame -L X (X to end) -expecting success of 8010.4 'cat-file --filters converts to worktree version': - git cat-file --filters HEAD:world.txt >actual && - has_cr actual +expecting success of 8012.28 'blame -L X, (X to end)': + check_count -L5, B1 1 C 1 D 1 "A U Thor" 1 -ok 4 - cat-file --filters converts to worktree version +git blame -c -L5, file +Author A U Thor (expected 1, attributed 1) good +Author C (expected 1, attributed 1) good +Author B1 (expected 1, attributed 1) good +Author D (expected 1, attributed 1) good +ok 28 - blame -L X, (X to end) -expecting success of 8010.5 'cat-file --filters --path= works': - sha1=$(git rev-parse -q --verify HEAD:world.txt) && - git cat-file --filters --path=world.txt $sha1 >actual && - has_cr actual +expecting success of 8012.29 'blame -L ,Y (up to Y)': + check_count -L,3 A 1 B2 1 E 1 -ok 5 - cat-file --filters --path= works +git blame -c -L,3 file +Author E (expected 1, attributed 1) good +Author B2 (expected 1, attributed 1) good +Author A (expected 1, attributed 1) good +ok 29 - blame -L ,Y (up to Y) -expecting success of 8010.6 'cat-file --textconv --path= works': - sha1=$(git rev-parse -q --verify HEAD:world.txt) && - test_config diff.txt.textconv "tr A-Za-z N-ZA-Mn-za-m <" && - git cat-file --textconv --path=hello.txt $sha1 >rot13 && - test uryyb = "$(cat rot13 | remove_cr)" +expecting success of 8012.30 'blame -L X,X': + check_count -L3,3 B2 1 -ok 6 - cat-file --textconv --path= works +git blame -c -L3,3 file +Author B2 (expected 1, attributed 1) good +ok 30 - blame -L X,X -expecting success of 8010.7 '--path= complains without --textconv/--filters': - sha1=$(git rev-parse -q --verify HEAD:world.txt) && - test_must_fail git cat-file --path=hello.txt blob $sha1 >actual 2>err && - test_must_be_empty actual && - grep "path.*needs.*filters" err +expecting success of 8012.31 'blame -L X,Y': + check_count -L3,6 B 1 B1 1 B2 1 D 1 -error: --path= needs --textconv or --filters -ok 7 - --path= complains without --textconv/--filters +git blame -c -L3,6 file +Author D (expected 1, attributed 1) good +Author B2 (expected 1, attributed 1) good +Author B (expected 1, attributed 1) good +Author B1 (expected 1, attributed 1) good +ok 31 - blame -L X,Y -expecting success of 8010.8 '--textconv/--filters complain without path': - test_must_fail git cat-file --textconv HEAD && - test_must_fail git cat-file --filters HEAD +expecting success of 8012.32 'blame -L Y,X (undocumented)': + check_count -L6,3 B 1 B1 1 B2 1 D 1 -fatal: git cat-file --textconv HEAD: must be -fatal: git cat-file --filters HEAD: must be -ok 8 - --textconv/--filters complain without path +git blame -c -L6,3 file +Author B1 (expected 1, attributed 1) good +Author B (expected 1, attributed 1) good +Author B2 (expected 1, attributed 1) good +Author D (expected 1, attributed 1) good +ok 32 - blame -L Y,X (undocumented) -expecting success of 8010.9 'cat-file --textconv --batch works': - sha1=$(git rev-parse -q --verify HEAD:world.txt) && - test_config diff.txt.textconv "tr A-Za-z N-ZA-Mn-za-m <" && - printf "%s hello.txt\n%s hello\n" $sha1 $sha1 | - git cat-file --textconv --batch >actual && - printf "%s blob 6\nuryyb\r\n\n%s blob 6\nhello\n\n" \ - $sha1 $sha1 >expect && - test_cmp expect actual +expecting success of 8012.33 'blame -L -X': + test_must_fail $PROG -L-1 file -ok 9 - cat-file --textconv --batch works +fatal: -L invalid line number: -1 +ok 33 - blame -L -X -# passed all 9 test(s) -1..9 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t8011-blame-split-file.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t8011-blame-split-file/.git/ -expecting success of 8011.1 'setup split file case': - # use lines long enough to trigger content detection - test_seq 1000 1010 >one && - test_seq 2000 2010 >two && - git add one two && - test_commit base && +expecting success of 8012.34 'blame -L 0': + test_must_fail $PROG -L0 file - sed "6s/^/modified /" one.tmp && - mv one.tmp one && - sed "6s/^/modified /" two.tmp && - mv two.tmp two && - git add -u && - test_commit modified && +fatal: -L invalid line number: 0 +ok 34 - blame -L 0 - cat one two >combined && - git add combined && - git rm one two && - test_commit combined +expecting success of 8012.35 'blame -L ,0': + test_must_fail $PROG -L,0 file -[master (root-commit) ad6b874] base - Author: A U Thor - 3 files changed, 23 insertions(+) - create mode 100644 base.t - create mode 100644 one - create mode 100644 two -[master 9b55153] modified - Author: A U Thor - 3 files changed, 3 insertions(+), 2 deletions(-) - create mode 100644 modified.t -rm 'one' -rm 'two' -[master cc1b823] combined - Author: A U Thor - 3 files changed, 12 insertions(+), 11 deletions(-) - rename one => combined (50%) - create mode 100644 combined.t - delete mode 100644 two -ok 1 - setup split file case +fatal: -L invalid line number: 0 +ok 35 - blame -L ,0 + +expecting success of 8012.36 'blame -L ,+0': + test_must_fail $PROG -L,+0 file + +fatal: -L invalid empty range +ok 36 - blame -L ,+0 + +expecting success of 8012.37 'blame -L X,+0': + test_must_fail $PROG -L1,+0 file + +fatal: -L invalid empty range +ok 37 - blame -L X,+0 + +expecting success of 8012.38 'blame -L X,+1': + check_count -L3,+1 B2 1 + +git blame -c -L3,+1 file +Author B2 (expected 1, attributed 1) good +ok 38 - blame -L X,+1 + +expecting success of 8012.39 'blame -L X,+N': + check_count -L3,+4 B 1 B1 1 B2 1 D 1 + +git blame -c -L3,+4 file +Author D (expected 1, attributed 1) good +Author B2 (expected 1, attributed 1) good +Author B (expected 1, attributed 1) good +Author B1 (expected 1, attributed 1) good +ok 39 - blame -L X,+N + +expecting success of 8012.40 'blame -L ,-0': + test_must_fail $PROG -L,-0 file + +fatal: -L invalid empty range +ok 40 - blame -L ,-0 + +expecting success of 8012.41 'blame -L X,-0': + test_must_fail $PROG -L1,-0 file + +fatal: -L invalid empty range +ok 41 - blame -L X,-0 + +expecting success of 8012.42 'blame -L X,-1': + check_count -L3,-1 B2 1 + +git blame -c -L3,-1 file +Author B2 (expected 1, attributed 1) good +ok 42 - blame -L X,-1 + +expecting success of 8012.43 'blame -L X,-N': + check_count -L6,-4 B 1 B1 1 B2 1 D 1 + +git blame -c -L6,-4 file +Author B (expected 1, attributed 1) good +Author D (expected 1, attributed 1) good +Author B1 (expected 1, attributed 1) good +Author B2 (expected 1, attributed 1) good +ok 43 - blame -L X,-N + +expecting success of 8012.44 'blame -L /RE/ (RE to end)': + check_count -L/evil/ C 1 "A U Thor" 1 + +git blame -c -L/evil/ file +Author A U Thor (expected 1, attributed 1) good +Author C (expected 1, attributed 1) good +ok 44 - blame -L /RE/ (RE to end) + +expecting success of 8012.45 'blame -L /RE/,/RE2/': + check_count -L/robot/,/green/ A 1 B 1 B2 1 D 1 E 1 + +git blame -c -L/robot/,/green/ file +Author D (expected 1, attributed 1) good +Author A (expected 1, attributed 1) good +Author B2 (expected 1, attributed 1) good +Author B (expected 1, attributed 1) good +Author E (expected 1, attributed 1) good +ok 45 - blame -L /RE/,/RE2/ + +expecting success of 8012.46 'blame -L X,/RE/': + check_count -L5,/evil/ B1 1 D 1 "A U Thor" 1 + +git blame -c -L5,/evil/ file +Author D (expected 1, attributed 1) good +Author A U Thor (expected 1, attributed 1) good +Author B1 (expected 1, attributed 1) good +ok 46 - blame -L X,/RE/ + +expecting success of 8012.47 'blame -L /RE/,Y': + check_count -L/99/,7 B1 1 D 1 "A U Thor" 1 + +git blame -c -L/99/,7 file +Author A U Thor (expected 1, attributed 1) good +Author B1 (expected 1, attributed 1) good +Author D (expected 1, attributed 1) good +ok 47 - blame -L /RE/,Y + +expecting success of 8012.48 'blame -L /RE/,+N': + check_count -L/99/,+3 B1 1 D 1 "A U Thor" 1 + +git blame -c -L/99/,+3 file +Author D (expected 1, attributed 1) good +Author B1 (expected 1, attributed 1) good +Author A U Thor (expected 1, attributed 1) good +ok 48 - blame -L /RE/,+N + +expecting success of 8012.49 'blame -L /RE/,-N': + check_count -L/99/,-3 B 1 B2 1 D 1 + +git blame -c -L/99/,-3 file +Author D (expected 1, attributed 1) good +Author B2 (expected 1, attributed 1) good +Author B (expected 1, attributed 1) good +ok 49 - blame -L /RE/,-N + +expecting success of 8012.50 'blame -L X (X == nlines)': + n=$(expr $(wc -l nlines)': + test_must_fail $PROG -L12345 file + +fatal: file file has only 8 lines +ok 52 - blame -L X (X > nlines) + +expecting success of 8012.53 'blame -L ,Y (Y == nlines)': + n=$(expr $(wc -l nlines)': + check_count -L,12345 A 1 B 1 B1 1 B2 1 "A U Thor" 1 C 1 D 1 E 1 + +git blame -c -L,12345 file +Author B2 (expected 1, attributed 1) good +Author B1 (expected 1, attributed 1) good +Author A (expected 1, attributed 1) good +Author D (expected 1, attributed 1) good +Author B (expected 1, attributed 1) good +Author A U Thor (expected 1, attributed 1) good +Author E (expected 1, attributed 1) good +Author C (expected 1, attributed 1) good +ok 55 - blame -L ,Y (Y > nlines) + +expecting success of 8012.56 'blame -L multiple (disjoint)': + check_count -L2,3 -L6,7 A 1 B1 1 B2 1 "A U Thor" 1 + +git blame -c -L2,3 -L6,7 file +Author B1 (expected 1, attributed 1) good +Author A U Thor (expected 1, attributed 1) good +Author A (expected 1, attributed 1) good +Author B2 (expected 1, attributed 1) good +ok 56 - blame -L multiple (disjoint) + +expecting success of 8012.57 'blame -L multiple (disjoint: unordered)': + check_count -L6,7 -L2,3 A 1 B1 1 B2 1 "A U Thor" 1 + +git blame -c -L6,7 -L2,3 file +Author B2 (expected 1, attributed 1) good +Author B1 (expected 1, attributed 1) good +Author A U Thor (expected 1, attributed 1) good +Author A (expected 1, attributed 1) good +ok 57 - blame -L multiple (disjoint: unordered) + +expecting success of 8012.58 'blame -L multiple (adjacent)': + check_count -L2,3 -L4,5 A 1 B 1 B2 1 D 1 + +git blame -c -L2,3 -L4,5 file +Author D (expected 1, attributed 1) good +Author B2 (expected 1, attributed 1) good +Author A (expected 1, attributed 1) good +Author B (expected 1, attributed 1) good +ok 58 - blame -L multiple (adjacent) + +expecting success of 8012.59 'blame -L multiple (adjacent: unordered)': + check_count -L4,5 -L2,3 A 1 B 1 B2 1 D 1 + +git blame -c -L4,5 -L2,3 file +Author D (expected 1, attributed 1) good +Author A (expected 1, attributed 1) good +Author B (expected 1, attributed 1) good +Author B2 (expected 1, attributed 1) good +ok 59 - blame -L multiple (adjacent: unordered) + +expecting success of 8012.60 'blame -L multiple (overlapping)': + check_count -L2,4 -L3,5 A 1 B 1 B2 1 D 1 + +git blame -c -L2,4 -L3,5 file +Author A (expected 1, attributed 1) good +Author B (expected 1, attributed 1) good +Author B2 (expected 1, attributed 1) good +Author D (expected 1, attributed 1) good +ok 60 - blame -L multiple (overlapping) + +expecting success of 8012.61 'blame -L multiple (overlapping: unordered)': + check_count -L3,5 -L2,4 A 1 B 1 B2 1 D 1 + +git blame -c -L3,5 -L2,4 file +Author B2 (expected 1, attributed 1) good +Author A (expected 1, attributed 1) good +Author B (expected 1, attributed 1) good +Author D (expected 1, attributed 1) good +ok 61 - blame -L multiple (overlapping: unordered) + +expecting success of 8012.62 'blame -L multiple (superset/subset)': + check_count -L2,8 -L3,5 A 1 B 1 B1 1 B2 1 C 1 D 1 "A U Thor" 1 + +git blame -c -L2,8 -L3,5 file +Author A U Thor (expected 1, attributed 1) good +Author B (expected 1, attributed 1) good +Author B2 (expected 1, attributed 1) good +Author B1 (expected 1, attributed 1) good +Author C (expected 1, attributed 1) good +Author D (expected 1, attributed 1) good +Author A (expected 1, attributed 1) good +ok 62 - blame -L multiple (superset/subset) + +expecting success of 8012.63 'blame -L multiple (superset/subset: unordered)': + check_count -L3,5 -L2,8 A 1 B 1 B1 1 B2 1 C 1 D 1 "A U Thor" 1 + +git blame -c -L3,5 -L2,8 file +Author D (expected 1, attributed 1) good +Author B1 (expected 1, attributed 1) good +Author B2 (expected 1, attributed 1) good +Author B (expected 1, attributed 1) good +Author A U Thor (expected 1, attributed 1) good +Author A (expected 1, attributed 1) good +Author C (expected 1, attributed 1) good +ok 63 - blame -L multiple (superset/subset: unordered) + +expecting success of 8012.64 'blame -L /RE/ (relative)': + check_count -L3,3 -L/fox/ B1 1 B2 1 C 1 D 1 "A U Thor" 1 + +git blame -c -L3,3 -L/fox/ file +Author A U Thor (expected 1, attributed 1) good +Author D (expected 1, attributed 1) good +Author B1 (expected 1, attributed 1) good +Author B2 (expected 1, attributed 1) good +Author C (expected 1, attributed 1) good +ok 64 - blame -L /RE/ (relative) + +expecting success of 8012.65 'blame -L /RE/ (relative: no preceding range)': + check_count -L/dog/ A 1 B 1 B1 1 B2 1 C 1 D 1 "A U Thor" 1 + +git blame -c -L/dog/ file +Author D (expected 1, attributed 1) good +Author C (expected 1, attributed 1) good +Author B2 (expected 1, attributed 1) good +Author B (expected 1, attributed 1) good +Author A (expected 1, attributed 1) good +Author A U Thor (expected 1, attributed 1) good +Author B1 (expected 1, attributed 1) good +ok 65 - blame -L /RE/ (relative: no preceding range) + +expecting success of 8012.66 'blame -L /RE/ (relative: adjacent)': + check_count -L1,1 -L/dog/,+1 A 1 E 1 + +git blame -c -L1,1 -L/dog/,+1 file +Author E (expected 1, attributed 1) good +Author A (expected 1, attributed 1) good +ok 66 - blame -L /RE/ (relative: adjacent) + +expecting success of 8012.67 'blame -L /RE/ (relative: not found)': + test_must_fail $PROG -L4,4 -L/dog/ file + +fatal: -L parameter 'dog' starting at line 5: No match +ok 67 - blame -L /RE/ (relative: not found) + +expecting success of 8012.68 'blame -L /RE/ (relative: end-of-file)': + test_must_fail $PROG -L, -L/$/ file + +fatal: file file has only 8 lines +ok 68 - blame -L /RE/ (relative: end-of-file) + +expecting success of 8012.69 'blame -L ^/RE/ (absolute)': + check_count -L3,3 -L^/dog/,+2 A 1 B2 1 + +git blame -c -L3,3 -L^/dog/,+2 file +Author A (expected 1, attributed 1) good +Author B2 (expected 1, attributed 1) good +ok 69 - blame -L ^/RE/ (absolute) + +expecting success of 8012.70 'blame -L ^/RE/ (absolute: no preceding range)': + check_count -L^/dog/,+2 A 1 B2 1 + +git blame -c -L^/dog/,+2 file +Author B2 (expected 1, attributed 1) good +Author A (expected 1, attributed 1) good +ok 70 - blame -L ^/RE/ (absolute: no preceding range) + +expecting success of 8012.71 'blame -L ^/RE/ (absolute: not found)': + test_must_fail $PROG -L4,4 -L^/tambourine/ file + +fatal: -L parameter 'tambourine' starting at line 1: No match +ok 71 - blame -L ^/RE/ (absolute: not found) -expecting success of 8011.2 'setup simulated porcelain': - # This just reads porcelain-ish output and tries - # to output the value of a given field for each line (either by - # reading the field that accompanies this line, or referencing - # the information found last time the commit was mentioned). - cat >read-porcelain.pl <<-\EOF - my $field = shift; - while (<>) { - if (/^[0-9a-f]{40,} /) { - flush(); - $hash = $&; - } elsif (/^$field (.*)/) { - $cache{$hash} = $1; - } +expecting success of 8012.72 'blame -L ^/RE/ (absolute: end-of-file)': + n=$(expr $(wc -l hello.c <<-\EOF && + int main(int argc, const char *argv[]) + { + Qputs("hello"); } - flush(); + EOF + git add hello.c && + GIT_AUTHOR_NAME="F" GIT_AUTHOR_EMAIL="F@test.git" \ + git commit -m "hello" && - sub flush { - return unless defined $hash; - if (defined $cache{$hash}) { - print "$cache{$hash}\n"; - } else { - print "NONE\n"; - } + mv hello.c hello.orig && + sed -e "/}/ {x; s/$/Qputs(\"goodbye\");/; G;}" hello.c && + GIT_AUTHOR_NAME="G" GIT_AUTHOR_EMAIL="G@test.git" \ + git commit -a -m "goodbye" && + + mv hello.c hello.orig && + echo "#include " >hello.c && + cat hello.orig >>hello.c && + tr Q "\\t" >>hello.c <<-\EOF && + void mail() + { + Qputs("mail"); } EOF + GIT_AUTHOR_NAME="H" GIT_AUTHOR_EMAIL="H@test.git" \ + git commit -a -m "mail" -ok 2 - setup simulated porcelain +[branch2 f82005e] hello + Author: F + 1 file changed, 4 insertions(+) + create mode 100644 hello.c +[branch2 edbab84] goodbye + Author: G + 1 file changed, 1 insertion(+) +[branch2 846166b] mail + Author: H + 1 file changed, 5 insertions(+) +ok 73 - setup -L :regex -expecting success of 8011.3 'generate --porcelain output': - git blame --root -C --$output combined >output - -ok 3 - generate --porcelain output +expecting success of 8012.74 'blame -L :literal': + check_count -f hello.c -L:main F 4 G 1 -expecting success of 8011.4 'porcelain output finds correct commits': - generate_expect >expect <<-\EOF && - 5 base - 1 modified - 10 base - 1 modified - 5 base - EOF - perl read-porcelain.pl summary actual && - test_cmp expect actual - -ok 4 - porcelain output finds correct commits +git blame -c -L:main hello.c +Author F (expected 4, attributed 4) good +Author G (expected 1, attributed 1) good +ok 74 - blame -L :literal -expecting success of 8011.5 'porcelain output shows correct filenames': - generate_expect >expect <<-\EOF && - 11 one - 11 two - EOF - perl read-porcelain.pl filename actual && - test_cmp expect actual - -ok 5 - porcelain output shows correct filenames +expecting success of 8012.75 'blame -L :regex': + check_count -f hello.c "-L:m[a-z][a-z]l" H 4 -expecting success of 8011.6 'porcelain output shows correct previous pointer': - generate_expect >expect <<-EOF && - 5 NONE - 1 $(git rev-parse modified^) one - 10 NONE - 1 $(git rev-parse modified^) two - 5 NONE - EOF - perl read-porcelain.pl previous actual && - test_cmp expect actual - -ok 6 - porcelain output shows correct previous pointer +git blame -c -L:m[a-z][a-z]l hello.c +Author H (expected 4, attributed 4) good +ok 75 - blame -L :regex -expecting success of 8011.7 'generate --line-porcelain output': - git blame --root -C --$output combined >output - -ok 7 - generate --line-porcelain output +expecting success of 8012.76 'blame -L :nomatch': + test_must_fail $PROG -L:nomatch hello.c -expecting success of 8011.8 'line-porcelain output finds correct commits': - generate_expect >expect <<-\EOF && - 5 base - 1 modified - 10 base - 1 modified - 5 base - EOF - perl read-porcelain.pl summary actual && - test_cmp expect actual - -ok 8 - line-porcelain output finds correct commits +fatal: -L parameter 'nomatch' starting at line 1: no match +ok 76 - blame -L :nomatch -expecting success of 8011.9 'line-porcelain output shows correct filenames': - generate_expect >expect <<-\EOF && - 11 one - 11 two - EOF - perl read-porcelain.pl filename actual && - test_cmp expect actual - -ok 9 - line-porcelain output shows correct filenames +expecting success of 8012.77 'blame -L :RE (relative)': + check_count -f hello.c -L3,3 -L:ma.. F 1 H 4 -expecting success of 8011.10 'line-porcelain output shows correct previous pointer': - generate_expect >expect <<-EOF && - 5 NONE - 1 $(git rev-parse modified^) one - 10 NONE - 1 $(git rev-parse modified^) two - 5 NONE - EOF - perl read-porcelain.pl previous actual && - test_cmp expect actual - -ok 10 - line-porcelain output shows correct previous pointer +git blame -c -L3,3 -L:ma.. hello.c +Author F (expected 1, attributed 1) good +Author H (expected 4, attributed 4) good +ok 77 - blame -L :RE (relative) -# passed all 10 test(s) -1..10 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t8013-blame-ignore-revs.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t8013-blame-ignore-revs/.git/ -expecting success of 8013.1 'setup': - test_commit A file line1 && +expecting success of 8012.78 'blame -L :RE (relative: no preceding range)': + check_count -f hello.c -L:ma.. F 4 G 1 - echo line2 >>file && - git add file && - test_tick && - git commit -m B && - git tag B && +git blame -c -L:ma.. hello.c +Author G (expected 1, attributed 1) good +Author F (expected 4, attributed 4) good +ok 78 - blame -L :RE (relative: no preceding range) - test_write_lines line-one line-two >file && - git add file && - test_tick && - git commit -m X && - git tag X && - git tag -a -m "X (annotated)" XT && +expecting success of 8012.79 'blame -L :RE (relative: not found)': + test_must_fail $PROG -L3,3 -L:tambourine hello.c - git blame --line-porcelain file >blame_raw && +fatal: -L parameter 'tambourine' starting at line 4: no match +ok 79 - blame -L :RE (relative: not found) - grep -E "^[0-9a-f]+ [0-9]+ 1" blame_raw | sed -e "s/ .*//" >actual && - git rev-parse X >expect && - test_cmp expect actual && +expecting success of 8012.80 'blame -L :RE (relative: end-of-file)': + test_must_fail $PROG -L, -L:main hello.c - grep -E "^[0-9a-f]+ [0-9]+ 2" blame_raw | sed -e "s/ .*//" >actual && - git rev-parse X >expect && - test_cmp expect actual +fatal: -L parameter 'main' starting at line 11: no match +ok 80 - blame -L :RE (relative: end-of-file) -[master (root-commit) 6d1c9f2] A - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -[master 5552443] B - Author: A U Thor - 1 file changed, 1 insertion(+) -[master abb9c4e] X - Author: A U Thor - 1 file changed, 2 insertions(+), 2 deletions(-) -ok 1 - setup +expecting success of 8012.81 'blame -L ^:RE (absolute)': + check_count -f hello.c -L3,3 -L^:ma.. F 4 G 1 -expecting success of 8013.2 'validate --ignore-rev': - test_must_fail git blame --ignore-rev X^{tree} file +git blame -c -L3,3 -L^:ma.. hello.c +Author G (expected 1, attributed 1) good +Author F (expected 4, attributed 4) good +ok 81 - blame -L ^:RE (absolute) -fatal: cannot find revision X^{tree} to ignore -ok 2 - validate --ignore-rev +expecting success of 8012.82 'blame -L ^:RE (absolute: no preceding range)': + check_count -f hello.c -L^:ma.. F 4 G 1 -expecting success of 8013.3 'validate --ignore-revs-file': - git rev-parse X^{tree} >ignore_x && - git blame --ignore-revs-file ignore_x file +git blame -c -L^:ma.. hello.c +Author F (expected 4, attributed 4) good +Author G (expected 1, attributed 1) good +ok 82 - blame -L ^:RE (absolute: no preceding range) -abb9c4e3 (A U Thor 2005-04-07 15:15:13 -0700 1) line-one -abb9c4e3 (A U Thor 2005-04-07 15:15:13 -0700 2) line-two -ok 3 - validate --ignore-revs-file +expecting success of 8012.83 'blame -L ^:RE (absolute: not found)': + test_must_fail $PROG -L4,4 -L^:tambourine hello.c -expecting success of 8013.4 'ignore_rev_changing_lines (X)': - git blame --line-porcelain --ignore-rev $I file >blame_raw && +fatal: -L parameter 'tambourine' starting at line 1: no match +ok 83 - blame -L ^:RE (absolute: not found) - grep -E "^[0-9a-f]+ [0-9]+ 1" blame_raw | sed -e "s/ .*//" >actual && - git rev-parse A >expect && - test_cmp expect actual && +expecting success of 8012.84 'blame -L ^:RE (absolute: end-of-file)': + n=$(printf "%d" $(wc -l actual && - git rev-parse B >expect && - test_cmp expect actual - -ok 4 - ignore_rev_changing_lines (X) +git blame -c -L10 -L^:ma.. hello.c +Author F (expected 4, attributed 4) good +Author G (expected 1, attributed 1) good +Author H (expected 1, attributed 1) good +ok 84 - blame -L ^:RE (absolute: end-of-file) -expecting success of 8013.5 'ignore_rev_changing_lines (XT)': - git blame --line-porcelain --ignore-rev $I file >blame_raw && +expecting success of 8012.85 'setup -L :funcname with userdiff driver': + echo "fortran-* diff=fortran" >.gitattributes && + fortran_file=fortran-external-function && + orig_file="$TEST_DIRECTORY/t4018/$fortran_file" && + cp "$orig_file" . && + git add "$fortran_file" && + GIT_AUTHOR_NAME="A" GIT_AUTHOR_EMAIL="A@test.git" \ + git commit -m "add fortran file" && + sed -e "s/ChangeMe/IWasChanged/" <"$orig_file" >"$fortran_file" && + git add "$fortran_file" && + GIT_AUTHOR_NAME="B" GIT_AUTHOR_EMAIL="B@test.git" \ + git commit -m "change fortran file" - grep -E "^[0-9a-f]+ [0-9]+ 1" blame_raw | sed -e "s/ .*//" >actual && - git rev-parse A >expect && - test_cmp expect actual && +[branch2 d478b17] add fortran file + Author: A + 1 file changed, 9 insertions(+) + create mode 100644 fortran-external-function +[branch2 0c00ff6] change fortran file + Author: B + 1 file changed, 1 insertion(+), 1 deletion(-) +ok 85 - setup -L :funcname with userdiff driver - grep -E "^[0-9a-f]+ [0-9]+ 2" blame_raw | sed -e "s/ .*//" >actual && - git rev-parse B >expect && - test_cmp expect actual - -ok 5 - ignore_rev_changing_lines (XT) +expecting success of 8012.86 'blame -L :funcname with userdiff driver': + check_count -f fortran-external-function -L:RIGHT A 7 B 1 -expecting success of 8013.6 'ignore_rev_adding_unblamable_lines': - test_write_lines line-one-change line-two-changed y3 y4 >file && - git add file && - test_tick && - git commit -m Y && - git tag Y && +git blame -c -L:RIGHT fortran-external-function +Author B (expected 1, attributed 1) good +Author A (expected 7, attributed 7) good +ok 86 - blame -L :funcname with userdiff driver - git rev-parse Y >expect && - git blame --line-porcelain file --ignore-rev Y >blame_raw && +expecting success of 8012.87 'setup incremental': + ( + GIT_AUTHOR_NAME=I && + export GIT_AUTHOR_NAME && + GIT_AUTHOR_EMAIL=I@test.git && + export GIT_AUTHOR_EMAIL && + >incremental && + git add incremental && + git commit -m "step 0" && + printf "partial" >>incremental && + git commit -a -m "step 0.5" && + echo >>incremental && + git commit -a -m "step 1" + ) - grep -E "^[0-9a-f]+ [0-9]+ 3" blame_raw | sed -e "s/ .*//" >actual && - test_cmp expect actual && +[branch2 3a4c297] step 0 + Author: I + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 incremental +[branch2 788af08] step 0.5 + Author: I + 1 file changed, 1 insertion(+) +[branch2 25299e4] step 1 + Author: I + 1 file changed, 1 insertion(+), 1 deletion(-) +ok 87 - setup incremental - grep -E "^[0-9a-f]+ [0-9]+ 4" blame_raw | sed -e "s/ .*//" >actual && - test_cmp expect actual +expecting success of 8012.88 'blame empty': + check_count -h HEAD^^ -f incremental -[master e0d35d6] Y - Author: A U Thor - 1 file changed, 4 insertions(+), 2 deletions(-) -ok 6 - ignore_rev_adding_unblamable_lines +git blame -c incremental HEAD^^ +ok 88 - blame empty -expecting success of 8013.7 'ignore_revs_from_files': - git rev-parse X >ignore_x && - git rev-parse Y >ignore_y && - git blame --line-porcelain file --ignore-revs-file ignore_x --ignore-revs-file ignore_y >blame_raw && +expecting success of 8012.89 'blame -L 0 empty': + test_must_fail $PROG -L0 incremental HEAD^^ - grep -E "^[0-9a-f]+ [0-9]+ 1" blame_raw | sed -e "s/ .*//" >actual && - git rev-parse A >expect && - test_cmp expect actual && +fatal: -L invalid line number: 0 +ok 89 - blame -L 0 empty - grep -E "^[0-9a-f]+ [0-9]+ 2" blame_raw | sed -e "s/ .*//" >actual && - git rev-parse B >expect && - test_cmp expect actual +expecting success of 8012.90 'blame -L 1 empty': + test_must_fail $PROG -L1 incremental HEAD^^ -ok 7 - ignore_revs_from_files +fatal: file incremental has only 0 lines +ok 90 - blame -L 1 empty -expecting success of 8013.8 'ignore_revs_from_configs_and_files': - git config --add blame.ignoreRevsFile ignore_x && - git blame --line-porcelain file --ignore-revs-file ignore_y >blame_raw && +expecting success of 8012.91 'blame -L 2 empty': + test_must_fail $PROG -L2 incremental HEAD^^ - grep -E "^[0-9a-f]+ [0-9]+ 1" blame_raw | sed -e "s/ .*//" >actual && - git rev-parse A >expect && - test_cmp expect actual && +fatal: file incremental has only 0 lines +ok 91 - blame -L 2 empty - grep -E "^[0-9a-f]+ [0-9]+ 2" blame_raw | sed -e "s/ .*//" >actual && - git rev-parse B >expect && - test_cmp expect actual +expecting success of 8012.92 'blame half': + check_count -h HEAD^ -f incremental I 1 -ok 8 - ignore_revs_from_configs_and_files +git blame -c incremental HEAD^ +Author I (expected 1, attributed 1) good +ok 92 - blame half -expecting success of 8013.9 'override_ignore_revs_file': - git blame --line-porcelain file --ignore-revs-file "" --ignore-revs-file ignore_y >blame_raw && - git rev-parse X >expect && +expecting success of 8012.93 'blame -L 0 half': + test_must_fail $PROG -L0 incremental HEAD^ - grep -E "^[0-9a-f]+ [0-9]+ 1" blame_raw | sed -e "s/ .*//" >actual && - test_cmp expect actual && +fatal: -L invalid line number: 0 +ok 93 - blame -L 0 half - grep -E "^[0-9a-f]+ [0-9]+ 2" blame_raw | sed -e "s/ .*//" >actual && - test_cmp expect actual - -ok 9 - override_ignore_revs_file +expecting success of 8012.94 'blame -L 1 half': + check_count -h HEAD^ -f incremental -L1 I 1 -expecting success of 8013.10 'bad_files_and_revs': - test_must_fail git blame file --ignore-rev NOREV 2>err && - test_i18ngrep "cannot find revision NOREV to ignore" err && +git blame -c -L1 incremental HEAD^ +Author I (expected 1, attributed 1) good +ok 94 - blame -L 1 half - test_must_fail git blame file --ignore-revs-file NOFILE 2>err && - test_i18ngrep "could not open.*: NOFILE" err && +expecting success of 8012.95 'blame -L 2 half': + test_must_fail $PROG -L2 incremental HEAD^ - echo NOREV >ignore_norev && - test_must_fail git blame file --ignore-revs-file ignore_norev 2>err && - test_i18ngrep "invalid object name: NOREV" err +fatal: file incremental has only 1 line +ok 95 - blame -L 2 half -checking prerequisite: C_LOCALE_OUTPUT +expecting success of 8012.96 'blame -L 3 half': + test_must_fail $PROG -L3 incremental HEAD^ -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false +fatal: file incremental has only 1 line +ok 96 - blame -L 3 half -) -prerequisite C_LOCALE_OUTPUT ok -fatal: cannot find revision NOREV to ignore -fatal: could not open object name list: NOFILE -fatal: invalid object name: NOREV -ok 10 - bad_files_and_revs +expecting success of 8012.97 'blame full': + check_count -f incremental I 1 -expecting success of 8013.11 'mark_unblamable_lines': - git config --add blame.markUnblamableLines true && +git blame -c incremental +Author I (expected 1, attributed 1) good +ok 97 - blame full - git blame --ignore-rev Y file >blame_raw && - echo "*" >expect && +expecting success of 8012.98 'blame -L 0 full': + test_must_fail $PROG -L0 incremental - sed -n "3p" blame_raw | cut -c1 >actual && - test_cmp expect actual && +fatal: -L invalid line number: 0 +ok 98 - blame -L 0 full - sed -n "4p" blame_raw | cut -c1 >actual && - test_cmp expect actual +expecting success of 8012.99 'blame -L 1 full': + check_count -f incremental -L1 I 1 -ok 11 - mark_unblamable_lines +git blame -c -L1 incremental +Author I (expected 1, attributed 1) good +ok 99 - blame -L 1 full -expecting success of 8013.12 'mark_ignored_lines': - git config --add blame.markIgnoredLines true && +expecting success of 8012.100 'blame -L 2 full': + test_must_fail $PROG -L2 incremental - test_write_lines line-one-Z line-two-Z y3 y4 >file && - git add file && - test_tick && - git commit -m Z && - git tag Z && +fatal: file incremental has only 1 line +ok 100 - blame -L 2 full - git blame --ignore-rev Z file >blame_raw && - echo "?" >expect && +expecting success of 8012.101 'blame -L 3 full': + test_must_fail $PROG -L3 incremental - sed -n "1p" blame_raw | cut -c1 >actual && - test_cmp expect actual && +fatal: file incremental has only 1 line +ok 101 - blame -L 3 full - sed -n "2p" blame_raw | cut -c1 >actual && - test_cmp expect actual && +expecting success of 8012.102 'blame -L': + test_must_fail $PROG -L file - sed -n "3p" blame_raw | cut -c1 >actual && - ! test_cmp expect actual && +usage: git blame [] [] [] [--] - sed -n "4p" blame_raw | cut -c1 >actual && - ! test_cmp expect actual + are documented in git-rev-list(1) -[master d1e4550] Z - Author: A U Thor - 1 file changed, 2 insertions(+), 2 deletions(-) ---- expect 2023-04-29 16:47:31.255060445 +0000 -+++ actual 2023-04-29 16:47:31.307055364 +0000 -@@ -1 +1 @@ --? -+e ---- expect 2023-04-29 16:47:31.255060445 +0000 -+++ actual 2023-04-29 16:47:31.335052628 +0000 -@@ -1 +1 @@ --? -+e -ok 12 - mark_ignored_lines + --incremental show blame entries as we find them, incrementally + -b do not show object names of boundary commits (Default: off) + --root do not treat root commits as boundaries (Default: off) + --show-stats show work cost statistics + --progress force progress reporting + --score-debug show output score for blame entries + -f, --show-name show original filename (Default: auto) + -n, --show-number show original linenumber (Default: off) + -p, --porcelain show in a format designed for machine consumption + --line-porcelain show porcelain format with per-line commit information + -c use the same output mode as git-annotate (Default: off) + -t show raw timestamp (Default: off) + -l show long commit SHA1 (Default: off) + -s suppress author name and timestamp (Default: off) + -e, --show-email show author email instead of name (Default: off) + -w ignore whitespace differences + --ignore-rev ignore when blaming + --ignore-revs-file + ignore revisions from + --color-lines color redundant metadata from previous line differently + --color-by-age color lines by age + --minimal spend extra cycles to find better match + -S use revisions from instead of calling git-rev-list + --contents use 's contents as the final image + -C[] find line copies within and across files + -M[] find line movements within and across files + -L process only line range , or function : + --abbrev[=] use digits to display object names -expecting success of 8013.13 'mark_unblamable_lines_intermediate': - git config --add blame.markUnblamableLines true && +ok 102 - blame -L - git blame --ignore-rev Y file >blame_raw 2>stderr && - echo "*" >expect && +expecting success of 8012.103 'blame -L X,+': + test_must_fail $PROG -L1,+ file - sed -n "3p" blame_raw | cut -c1 >actual && - test_cmp expect actual && +usage: git blame [] [] [] [--] +ok 103 - blame -L X,+ - sed -n "4p" blame_raw | cut -c1 >actual && - test_cmp expect actual +expecting success of 8012.104 'blame -L X,-': + test_must_fail $PROG -L1,- file -ok 13 - mark_unblamable_lines_intermediate +usage: git blame [] [] [] [--] +ok 104 - blame -L X,- -expecting success of 8013.14 'ignored_chunk_negative_parent_size': - rm -rf .git/ && - git init && +expecting success of 8012.105 'blame -L X (non-numeric X)': + test_must_fail $PROG -LX file - test_write_lines L1 L2 L7 L8 L9 >file && - git add file && - test_tick && - git commit -m A && - git tag A && +usage: git blame [] [] [] [--] +ok 105 - blame -L X (non-numeric X) - test_write_lines L1 L2 L3 L4 L5 L6 L7 L8 L9 >file && - git add file && - test_tick && - git commit -m B && - git tag B && +expecting success of 8012.106 'blame -L X,Y (non-numeric Y)': + test_must_fail $PROG -L1,Y file - test_write_lines L1 L2 L3 L4 xxx L6 L7 L8 L9 >file && - git add file && - test_tick && - git commit -m C && - git tag C && +usage: git blame [] [] [] [--] +ok 106 - blame -L X,Y (non-numeric Y) - git blame file --ignore-rev B >blame_raw +expecting success of 8012.107 'blame -L X,+N (non-numeric N)': + test_must_fail $PROG -L1,+N file -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t8013-blame-ignore-revs/.git/ -[master (root-commit) 0157998] A - Author: A U Thor - 1 file changed, 5 insertions(+) - create mode 100644 file -[master a8e635b] B - Author: A U Thor - 1 file changed, 4 insertions(+) -[master 3b3594b] C - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -ok 14 - ignored_chunk_negative_parent_size +usage: git blame [] [] [] [--] +ok 107 - blame -L X,+N (non-numeric N) -expecting success of 8013.15 'ignore_merge': - rm -rf .git/ && - git init && +expecting success of 8012.108 'blame -L X,-N (non-numeric N)': + test_must_fail $PROG -L1,-N file - test_write_lines L1 L2 L3 L4 L5 L6 L7 L8 L9 >file && - git add file && - test_tick && - git commit -m A && - git tag A && +usage: git blame [] [] [] [--] +ok 108 - blame -L X,-N (non-numeric N) - test_write_lines BB L2 L3 L4 L5 L6 L7 L8 L9 >file && - git add file && - test_tick && - git commit -m B && - git tag B && +expecting success of 8012.109 'blame -L ,^/RE/': + test_must_fail $PROG -L1,^/99/ file - git reset --hard A && - test_write_lines L1 L2 L3 L4 L5 L6 L7 L8 CC >file && - git add file && - test_tick && - git commit -m C && - git tag C && +usage: git blame [] [] [] [--] +ok 109 - blame -L ,^/RE/ - test_merge M B && - git blame --line-porcelain file --ignore-rev M >blame_raw && +expecting success of 8012.110 'colored blame colors contiguous lines': + git -c color.blame.repeatedLines=yellow blame --color-lines --abbrev=12 hello.c >actual.raw && + git -c color.blame.repeatedLines=yellow -c blame.coloring=repeatedLines blame --abbrev=12 hello.c >actual.raw.2 && + test_cmp actual.raw actual.raw.2 && + test_decode_color actual && + grep "" darkened && + grep "(F" darkened > F.expect && + grep "(H" darkened > H.expect && + test_line_count = 2 F.expect && + test_line_count = 3 H.expect - grep -E "^[0-9a-f]+ [0-9]+ 1" blame_raw | sed -e "s/ .*//" >actual && - git rev-parse B >expect && - test_cmp expect actual && +ok 110 - colored blame colors contiguous lines - grep -E "^[0-9a-f]+ [0-9]+ 9" blame_raw | sed -e "s/ .*//" >actual && - git rev-parse C >expect && - test_cmp expect actual +expecting success of 8012.111 'color by age consistently colors old code': + git blame --color-by-age hello.c >actual.raw && + git -c blame.coloring=highlightRecent blame hello.c >actual.raw.2 && + test_cmp actual.raw actual.raw.2 && + test_decode_color actual && + grep "" colored && + test_line_count = 10 colored -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t8013-blame-ignore-revs/.git/ -[master (root-commit) aebca2b] A - Author: A U Thor - 1 file changed, 9 insertions(+) - create mode 100644 file -[master 38a4cbf] B - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -HEAD is now at aebca2b A -[master 1f9babe] C +ok 111 - color by age consistently colors old code + +expecting success of 8012.112 'blame color by age: new code is different': + cat >>hello.c <<-EOF && + void qfunc(); + EOF + git add hello.c && + GIT_AUTHOR_DATE="" git commit -m "new commit" && + + git -c color.blame.highlightRecent="yellow,1 month ago, cyan" blame --color-by-age hello.c >actual.raw && + test_decode_color actual && + + grep "" colored && + test_line_count = 10 colored && + + grep "" colored && + test_line_count = 1 colored && + grep qfunc colored + +[branch2 4384368] new commit Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -Merging: -1f9babe C -virtual B -found 1 common ancestor: -aebca2b A -Auto-merging file -Merge made by the 'recursive' strategy. - file | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) -ok 15 - ignore_merge + 1 file changed, 1 insertion(+) +4384368c (A U Thor 2023-04-29 18:40:17 +0000 11) void qfunc(); +ok 112 - blame color by age: new code is different -# passed all 15 test(s) -1..15 +# passed all 112 test(s) +1..112 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t9004-example.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9004-example/.git/ +expecting success of 9004.1 'decorate': + test-tool example-decorate + +ok 1 - decorate + +# passed all 1 test(s) +1..1 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' *** t7610-mergetool.sh *** @@ -390329,9 +392194,9 @@ Deleted merge conflict for 'a/a/file.txt': {local}: deleted {remote}: deleted -Use (m)odified or (d)eleted file, or (a)bort? Removing a/a/file_BASE_21538.txt -Removing a/a/file_LOCAL_21538.txt -Removing a/a/file_REMOTE_21538.txt +Use (m)odified or (d)eleted file, or (a)bort? Removing a/a/file_BASE_29286.txt +Removing a/a/file_LOCAL_29286.txt +Removing a/a/file_REMOTE_29286.txt Removing actual Removing both.orig Removing expect @@ -391581,7 +393446,7 @@ Resolved 'spaced name' using previous resolution. Resolved 'subdir/file3' using previous resolution. Automatic merge failed; fix conflicts and then commit the result. -./both_LOCAL_2248 +./both_LOCAL_10777 HEAD is now at 63cf0b3 branch1 changes ok 24 - filenames seen by tools start with ./ @@ -391635,7 +393500,7 @@ Resolved 'spaced name' using previous resolution. Resolved 'subdir/file3' using previous resolution. Automatic merge failed; fix conflicts and then commit the result. -/tmp/git-mergetool-6E2Qhf/both_LOCAL_2460 +/tmp/git-mergetool-9Log0f/both_LOCAL_10981 HEAD is now at 63cf0b3 branch1 changes ok 25 - temporary filenames are used with mergetool.writeToTemp @@ -391769,2038 +393634,6 @@ 1..28 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t8012-blame-colors.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t8012-blame-colors/.git/ -expecting success of 8012.1 'setup A lines': - echo "1A quick brown fox jumps over the" >file && - echo "lazy dog" >>file && - git add file && - GIT_AUTHOR_NAME="A" GIT_AUTHOR_EMAIL="A@test.git" \ - git commit -a -m "Initial." - -[master (root-commit) 129283d] Initial. - Author: A - 1 file changed, 2 insertions(+) - create mode 100644 file -ok 1 - setup A lines - -expecting success of 8012.2 'blame 1 author': - check_count A 2 - -git blame -c file -Author A (expected 2, attributed 2) good -ok 2 - blame 1 author - -expecting success of 8012.3 'blame in a bare repo without starting commit': - git clone --bare . bare.git && - ( - cd bare.git && - check_count A 2 - ) - -Cloning into bare repository 'bare.git'... -done. -git blame -c file -Author A (expected 2, attributed 2) good -ok 3 - blame in a bare repo without starting commit - -expecting success of 8012.4 'blame by tag objects': - git tag -m "test tag" testTag && - git tag -m "test tag #2" testTag2 testTag && - check_count -h testTag A 2 && - check_count -h testTag2 A 2 - -hint: You have created a nested tag. The object referred to by your new tag is -hint: already a tag. If you meant to tag the object that it points to, use: -hint: -hint: git tag -f testTag2 testTag^{} -hint: Disable this message with "git config advice.nestedTag false" -git blame -c file testTag -Author A (expected 2, attributed 2) good -git blame -c file testTag2 -Author A (expected 2, attributed 2) good -ok 4 - blame by tag objects - -expecting success of 8012.5 'setup B lines': - echo "2A quick brown fox jumps over the" >>file && - echo "lazy dog" >>file && - GIT_AUTHOR_NAME="B" GIT_AUTHOR_EMAIL="B@test.git" \ - git commit -a -m "Second." - -[master 7e31098] Second. - Author: B - 1 file changed, 2 insertions(+) -ok 5 - setup B lines - -expecting success of 8012.6 'blame 2 authors': - check_count A 2 B 2 - -git blame -c file -Author A (expected 2, attributed 2) good -Author B (expected 2, attributed 2) good -ok 6 - blame 2 authors - -expecting success of 8012.7 'setup B1 lines (branch1)': - git checkout -b branch1 master && - echo "3A slow green fox jumps into the" >>file && - echo "well." >>file && - GIT_AUTHOR_NAME="B1" GIT_AUTHOR_EMAIL="B1@test.git" \ - git commit -a -m "Branch1-1" - -Switched to a new branch 'branch1' -[branch1 1b9b47a] Branch1-1 - Author: B1 - 1 file changed, 2 insertions(+) -ok 7 - setup B1 lines (branch1) - -expecting success of 8012.8 'blame 2 authors + 1 branch1 author': - check_count A 2 B 2 B1 2 - -git blame -c file -Author B1 (expected 2, attributed 2) good -Author A (expected 2, attributed 2) good -Author B (expected 2, attributed 2) good -ok 8 - blame 2 authors + 1 branch1 author - -expecting success of 8012.9 'setup B2 lines (branch2)': - git checkout -b branch2 master && - sed -e "s/2A quick brown/4A quick brown lazy dog/" file.new && - mv file.new file && - GIT_AUTHOR_NAME="B2" GIT_AUTHOR_EMAIL="B2@test.git" \ - git commit -a -m "Branch2-1" - -Switched to a new branch 'branch2' -[branch2 7d77deb] Branch2-1 - Author: B2 - 1 file changed, 1 insertion(+), 1 deletion(-) -ok 9 - setup B2 lines (branch2) - -expecting success of 8012.10 'blame 2 authors + 1 branch2 author': - check_count A 2 B 1 B2 1 - -git blame -c file -Author B (expected 1, attributed 1) good -Author B2 (expected 1, attributed 1) good -Author A (expected 2, attributed 2) good -ok 10 - blame 2 authors + 1 branch2 author - -expecting success of 8012.11 'merge branch1 & branch2': - git merge branch1 - -Merging: -7d77deb Branch2-1 -virtual branch1 -found 1 common ancestor: -7e31098 Second. -Auto-merging file -Merge made by the 'recursive' strategy. - file | 2 ++ - 1 file changed, 2 insertions(+) -ok 11 - merge branch1 & branch2 - -expecting success of 8012.12 'blame 2 authors + 2 merged-in authors': - check_count A 2 B 1 B1 2 B2 1 - -git blame -c file -Author B2 (expected 1, attributed 1) good -Author B1 (expected 2, attributed 2) good -Author B (expected 1, attributed 1) good -Author A (expected 2, attributed 2) good -ok 12 - blame 2 authors + 2 merged-in authors - -expecting success of 8012.13 'blame --first-parent blames merge for branch1': - check_count --first-parent A 2 B 1 "A U Thor" 2 B2 1 - -git blame -c --first-parent file -Author B2 (expected 1, attributed 1) good -Author A (expected 2, attributed 2) good -Author A U Thor (expected 2, attributed 2) good -Author B (expected 1, attributed 1) good -ok 13 - blame --first-parent blames merge for branch1 - -expecting success of 8012.14 'blame ancestor': - check_count -h master A 2 B 2 - -git blame -c file master -Author B (expected 2, attributed 2) good -Author A (expected 2, attributed 2) good -ok 14 - blame ancestor - -expecting success of 8012.15 'blame great-ancestor': - check_count -h master^ A 2 - -git blame -c file master^ -Author A (expected 2, attributed 2) good -ok 15 - blame great-ancestor - -expecting success of 8012.16 'setup evil merge': - echo "evil merge." >>file && - git commit -a --amend - -[branch2 c413b3e] Merge branch 'branch1' into branch2 - Author: A U Thor - Date: Fri Apr 1 13:14:15 2005 +0200 -ok 16 - setup evil merge - -expecting success of 8012.17 'blame evil merge': - check_count A 2 B 1 B1 2 B2 1 "A U Thor" 1 - -git blame -c file -Author A (expected 2, attributed 2) good -Author B (expected 1, attributed 1) good -Author B1 (expected 2, attributed 2) good -Author B2 (expected 1, attributed 1) good -Author A U Thor (expected 1, attributed 1) good -ok 17 - blame evil merge - -expecting success of 8012.18 'blame huge graft': - test_when_finished "git checkout branch2" && - test_when_finished "rm -f .git/info/grafts" && - graft= && - for i in 0 1 2 - do - for j in 0 1 2 3 4 5 6 7 8 9 - do - git checkout --orphan "$i$j" && - printf "%s\n" "$i" "$j" >file && - test_tick && - GIT_AUTHOR_NAME=$i$j GIT_AUTHOR_EMAIL=$i$j@test.git \ - git commit -a -m "$i$j" && - commit=$(git rev-parse --verify HEAD) && - graft="$graft$commit " - done - done && - printf "%s " $graft >.git/info/grafts && - check_count -h 00 01 1 10 1 - -Switched to a new branch '00' -[00 (root-commit) e2c6177] 00 - Author: 00 <00@test.git> - 1 file changed, 2 insertions(+) - create mode 100644 file -Switched to a new branch '01' -[01 (root-commit) 0dbe04b] 01 - Author: 01 <01@test.git> - 1 file changed, 2 insertions(+) - create mode 100644 file -Switched to a new branch '02' -[02 (root-commit) 97fbca6] 02 - Author: 02 <02@test.git> - 1 file changed, 2 insertions(+) - create mode 100644 file -Switched to a new branch '03' -[03 (root-commit) 5cdbcd8] 03 - Author: 03 <03@test.git> - 1 file changed, 2 insertions(+) - create mode 100644 file -Switched to a new branch '04' -[04 (root-commit) 5a154cf] 04 - Author: 04 <04@test.git> - 1 file changed, 2 insertions(+) - create mode 100644 file -Switched to a new branch '05' -[05 (root-commit) a84e1de] 05 - Author: 05 <05@test.git> - 1 file changed, 2 insertions(+) - create mode 100644 file -Switched to a new branch '06' -[06 (root-commit) d4bea54] 06 - Author: 06 <06@test.git> - 1 file changed, 2 insertions(+) - create mode 100644 file -Switched to a new branch '07' -[07 (root-commit) 24ba6e8] 07 - Author: 07 <07@test.git> - 1 file changed, 2 insertions(+) - create mode 100644 file -Switched to a new branch '08' -[08 (root-commit) fe90088] 08 - Author: 08 <08@test.git> - 1 file changed, 2 insertions(+) - create mode 100644 file -Switched to a new branch '09' -[09 (root-commit) 773a2fb] 09 - Author: 09 <09@test.git> - 1 file changed, 2 insertions(+) - create mode 100644 file -Switched to a new branch '10' -[10 (root-commit) 80536e5] 10 - Author: 10 <10@test.git> - 1 file changed, 2 insertions(+) - create mode 100644 file -Switched to a new branch '11' -[11 (root-commit) 33c07c1] 11 - Author: 11 <11@test.git> - 1 file changed, 2 insertions(+) - create mode 100644 file -Switched to a new branch '12' -[12 (root-commit) ae7094b] 12 - Author: 12 <12@test.git> - 1 file changed, 2 insertions(+) - create mode 100644 file -Switched to a new branch '13' -[13 (root-commit) 19e767d] 13 - Author: 13 <13@test.git> - 1 file changed, 2 insertions(+) - create mode 100644 file -Switched to a new branch '14' -[14 (root-commit) f7159ac] 14 - Author: 14 <14@test.git> - 1 file changed, 2 insertions(+) - create mode 100644 file -Switched to a new branch '15' -[15 (root-commit) d95fecf] 15 - Author: 15 <15@test.git> - 1 file changed, 2 insertions(+) - create mode 100644 file -Switched to a new branch '16' -[16 (root-commit) d8bfdb9] 16 - Author: 16 <16@test.git> - 1 file changed, 2 insertions(+) - create mode 100644 file -Switched to a new branch '17' -[17 (root-commit) aa3f31e] 17 - Author: 17 <17@test.git> - 1 file changed, 2 insertions(+) - create mode 100644 file -Switched to a new branch '18' -[18 (root-commit) d76cb1d] 18 - Author: 18 <18@test.git> - 1 file changed, 2 insertions(+) - create mode 100644 file -Switched to a new branch '19' -[19 (root-commit) 95e03c5] 19 - Author: 19 <19@test.git> - 1 file changed, 2 insertions(+) - create mode 100644 file -Switched to a new branch '20' -[20 (root-commit) d40a964] 20 - Author: 20 <20@test.git> - 1 file changed, 2 insertions(+) - create mode 100644 file -Switched to a new branch '21' -[21 (root-commit) 6c3def2] 21 - Author: 21 <21@test.git> - 1 file changed, 2 insertions(+) - create mode 100644 file -Switched to a new branch '22' -[22 (root-commit) 78d2294] 22 - Author: 22 <22@test.git> - 1 file changed, 2 insertions(+) - create mode 100644 file -Switched to a new branch '23' -[23 (root-commit) 76a64d0] 23 - Author: 23 <23@test.git> - 1 file changed, 2 insertions(+) - create mode 100644 file -Switched to a new branch '24' -[24 (root-commit) 59f234a] 24 - Author: 24 <24@test.git> - 1 file changed, 2 insertions(+) - create mode 100644 file -Switched to a new branch '25' -[25 (root-commit) 26ac47a] 25 - Author: 25 <25@test.git> - 1 file changed, 2 insertions(+) - create mode 100644 file -Switched to a new branch '26' -[26 (root-commit) db7e855] 26 - Author: 26 <26@test.git> - 1 file changed, 2 insertions(+) - create mode 100644 file -Switched to a new branch '27' -[27 (root-commit) 279f565] 27 - Author: 27 <27@test.git> - 1 file changed, 2 insertions(+) - create mode 100644 file -Switched to a new branch '28' -[28 (root-commit) f691d9c] 28 - Author: 28 <28@test.git> - 1 file changed, 2 insertions(+) - create mode 100644 file -Switched to a new branch '29' -[29 (root-commit) c72134e] 29 - Author: 29 <29@test.git> - 1 file changed, 2 insertions(+) - create mode 100644 file -git blame -c file 00 -hint: Support for /info/grafts is deprecated -hint: and will be removed in a future Git version. -hint: -hint: Please use "git replace --convert-graft-file" -hint: to convert the grafts into replace refs. -hint: -hint: Turn this message off by running -hint: "git config advice.graftFileDeprecated false" -Author 01 (expected 1, attributed 1) good -Author 10 (expected 1, attributed 1) good -Switched to branch 'branch2' -ok 18 - blame huge graft - -expecting success of 8012.19 'setup incomplete line': - echo "incomplete" | tr -d "\\012" >>file && - GIT_AUTHOR_NAME="C" GIT_AUTHOR_EMAIL="C@test.git" \ - git commit -a -m "Incomplete" - -[branch2 565fef5] Incomplete - Author: C - 1 file changed, 1 insertion(+) -ok 19 - setup incomplete line - -expecting success of 8012.20 'blame incomplete line': - check_count A 2 B 1 B1 2 B2 1 "A U Thor" 1 C 1 - -git blame -c file -Author A U Thor (expected 1, attributed 1) good -Author A (expected 2, attributed 2) good -Author B (expected 1, attributed 1) good -Author C (expected 1, attributed 1) good -Author B1 (expected 2, attributed 2) good -Author B2 (expected 1, attributed 1) good -ok 20 - blame incomplete line - -expecting success of 8012.21 'setup edits': - mv file file.orig && - { - cat file.orig && - echo - } | sed -e "s/^3A/99/" -e "/^1A/d" -e "/^incomplete/d" >file && - echo "incomplete" | tr -d "\\012" >>file && - GIT_AUTHOR_NAME="D" GIT_AUTHOR_EMAIL="D@test.git" \ - git commit -a -m "edit" - -[branch2 96588b8] edit - Author: D - 1 file changed, 1 insertion(+), 2 deletions(-) -ok 21 - setup edits - -expecting success of 8012.22 'blame edits': - check_count A 1 B 1 B1 1 B2 1 "A U Thor" 1 C 1 D 1 - -git blame -c file -Author D (expected 1, attributed 1) good -Author B2 (expected 1, attributed 1) good -Author B (expected 1, attributed 1) good -Author A U Thor (expected 1, attributed 1) good -Author C (expected 1, attributed 1) good -Author B1 (expected 1, attributed 1) good -Author A (expected 1, attributed 1) good -ok 22 - blame edits - -expecting success of 8012.23 'setup obfuscated email': - echo "No robots allowed" >file.new && - cat file >>file.new && - mv file.new file && - GIT_AUTHOR_NAME="E" GIT_AUTHOR_EMAIL="E at test dot git" \ - git commit -a -m "norobots" - -[branch2 04f7693] norobots - Author: E - 1 file changed, 1 insertion(+) -ok 23 - setup obfuscated email - -expecting success of 8012.24 'blame obfuscated email': - check_count A 1 B 1 B1 1 B2 1 "A U Thor" 1 C 1 D 1 E 1 - -git blame -c file -Author B2 (expected 1, attributed 1) good -Author A (expected 1, attributed 1) good -Author C (expected 1, attributed 1) good -Author D (expected 1, attributed 1) good -Author A U Thor (expected 1, attributed 1) good -Author B (expected 1, attributed 1) good -Author B1 (expected 1, attributed 1) good -Author E (expected 1, attributed 1) good -ok 24 - blame obfuscated email - -expecting success of 8012.25 'blame -L 1 (all)': - check_count -L1 A 1 B 1 B1 1 B2 1 "A U Thor" 1 C 1 D 1 E 1 - -git blame -c -L1 file -Author A U Thor (expected 1, attributed 1) good -Author D (expected 1, attributed 1) good -Author A (expected 1, attributed 1) good -Author B2 (expected 1, attributed 1) good -Author C (expected 1, attributed 1) good -Author B (expected 1, attributed 1) good -Author B1 (expected 1, attributed 1) good -Author E (expected 1, attributed 1) good -ok 25 - blame -L 1 (all) - -expecting success of 8012.26 'blame -L , (all)': - check_count -L, A 1 B 1 B1 1 B2 1 "A U Thor" 1 C 1 D 1 E 1 - -git blame -c -L, file -Author B1 (expected 1, attributed 1) good -Author A (expected 1, attributed 1) good -Author E (expected 1, attributed 1) good -Author A U Thor (expected 1, attributed 1) good -Author B2 (expected 1, attributed 1) good -Author D (expected 1, attributed 1) good -Author B (expected 1, attributed 1) good -Author C (expected 1, attributed 1) good -ok 26 - blame -L , (all) - -expecting success of 8012.27 'blame -L X (X to end)': - check_count -L5 B1 1 C 1 D 1 "A U Thor" 1 - -git blame -c -L5 file -Author A U Thor (expected 1, attributed 1) good -Author B1 (expected 1, attributed 1) good -Author C (expected 1, attributed 1) good -Author D (expected 1, attributed 1) good -ok 27 - blame -L X (X to end) - -expecting success of 8012.28 'blame -L X, (X to end)': - check_count -L5, B1 1 C 1 D 1 "A U Thor" 1 - -git blame -c -L5, file -Author D (expected 1, attributed 1) good -Author B1 (expected 1, attributed 1) good -Author C (expected 1, attributed 1) good -Author A U Thor (expected 1, attributed 1) good -ok 28 - blame -L X, (X to end) - -expecting success of 8012.29 'blame -L ,Y (up to Y)': - check_count -L,3 A 1 B2 1 E 1 - -git blame -c -L,3 file -Author E (expected 1, attributed 1) good -Author A (expected 1, attributed 1) good -Author B2 (expected 1, attributed 1) good -ok 29 - blame -L ,Y (up to Y) - -expecting success of 8012.30 'blame -L X,X': - check_count -L3,3 B2 1 - -git blame -c -L3,3 file -Author B2 (expected 1, attributed 1) good -ok 30 - blame -L X,X - -expecting success of 8012.31 'blame -L X,Y': - check_count -L3,6 B 1 B1 1 B2 1 D 1 - -git blame -c -L3,6 file -Author B1 (expected 1, attributed 1) good -Author B (expected 1, attributed 1) good -Author D (expected 1, attributed 1) good -Author B2 (expected 1, attributed 1) good -ok 31 - blame -L X,Y - -expecting success of 8012.32 'blame -L Y,X (undocumented)': - check_count -L6,3 B 1 B1 1 B2 1 D 1 - -git blame -c -L6,3 file -Author B1 (expected 1, attributed 1) good -Author B (expected 1, attributed 1) good -Author D (expected 1, attributed 1) good -Author B2 (expected 1, attributed 1) good -ok 32 - blame -L Y,X (undocumented) - -expecting success of 8012.33 'blame -L -X': - test_must_fail $PROG -L-1 file - -fatal: -L invalid line number: -1 -ok 33 - blame -L -X - -expecting success of 8012.34 'blame -L 0': - test_must_fail $PROG -L0 file - -fatal: -L invalid line number: 0 -ok 34 - blame -L 0 - -expecting success of 8012.35 'blame -L ,0': - test_must_fail $PROG -L,0 file - -fatal: -L invalid line number: 0 -ok 35 - blame -L ,0 - -expecting success of 8012.36 'blame -L ,+0': - test_must_fail $PROG -L,+0 file - -fatal: -L invalid empty range -ok 36 - blame -L ,+0 - -expecting success of 8012.37 'blame -L X,+0': - test_must_fail $PROG -L1,+0 file - -fatal: -L invalid empty range -ok 37 - blame -L X,+0 - -expecting success of 8012.38 'blame -L X,+1': - check_count -L3,+1 B2 1 - -git blame -c -L3,+1 file -Author B2 (expected 1, attributed 1) good -ok 38 - blame -L X,+1 - -expecting success of 8012.39 'blame -L X,+N': - check_count -L3,+4 B 1 B1 1 B2 1 D 1 - -git blame -c -L3,+4 file -Author B (expected 1, attributed 1) good -Author B1 (expected 1, attributed 1) good -Author D (expected 1, attributed 1) good -Author B2 (expected 1, attributed 1) good -ok 39 - blame -L X,+N - -expecting success of 8012.40 'blame -L ,-0': - test_must_fail $PROG -L,-0 file - -fatal: -L invalid empty range -ok 40 - blame -L ,-0 - -expecting success of 8012.41 'blame -L X,-0': - test_must_fail $PROG -L1,-0 file - -fatal: -L invalid empty range -ok 41 - blame -L X,-0 - -expecting success of 8012.42 'blame -L X,-1': - check_count -L3,-1 B2 1 - -git blame -c -L3,-1 file -Author B2 (expected 1, attributed 1) good -ok 42 - blame -L X,-1 - -expecting success of 8012.43 'blame -L X,-N': - check_count -L6,-4 B 1 B1 1 B2 1 D 1 - -git blame -c -L6,-4 file -Author D (expected 1, attributed 1) good -Author B (expected 1, attributed 1) good -Author B1 (expected 1, attributed 1) good -Author B2 (expected 1, attributed 1) good -ok 43 - blame -L X,-N - -expecting success of 8012.44 'blame -L /RE/ (RE to end)': - check_count -L/evil/ C 1 "A U Thor" 1 - -git blame -c -L/evil/ file -Author A U Thor (expected 1, attributed 1) good -Author C (expected 1, attributed 1) good -ok 44 - blame -L /RE/ (RE to end) - -expecting success of 8012.45 'blame -L /RE/,/RE2/': - check_count -L/robot/,/green/ A 1 B 1 B2 1 D 1 E 1 - -git blame -c -L/robot/,/green/ file -Author A (expected 1, attributed 1) good -Author B (expected 1, attributed 1) good -Author E (expected 1, attributed 1) good -Author B2 (expected 1, attributed 1) good -Author D (expected 1, attributed 1) good -ok 45 - blame -L /RE/,/RE2/ - -expecting success of 8012.46 'blame -L X,/RE/': - check_count -L5,/evil/ B1 1 D 1 "A U Thor" 1 - -git blame -c -L5,/evil/ file -Author D (expected 1, attributed 1) good -Author B1 (expected 1, attributed 1) good -Author A U Thor (expected 1, attributed 1) good -ok 46 - blame -L X,/RE/ - -expecting success of 8012.47 'blame -L /RE/,Y': - check_count -L/99/,7 B1 1 D 1 "A U Thor" 1 - -git blame -c -L/99/,7 file -Author D (expected 1, attributed 1) good -Author B1 (expected 1, attributed 1) good -Author A U Thor (expected 1, attributed 1) good -ok 47 - blame -L /RE/,Y - -expecting success of 8012.48 'blame -L /RE/,+N': - check_count -L/99/,+3 B1 1 D 1 "A U Thor" 1 - -git blame -c -L/99/,+3 file -Author D (expected 1, attributed 1) good -Author B1 (expected 1, attributed 1) good -Author A U Thor (expected 1, attributed 1) good -ok 48 - blame -L /RE/,+N - -expecting success of 8012.49 'blame -L /RE/,-N': - check_count -L/99/,-3 B 1 B2 1 D 1 - -git blame -c -L/99/,-3 file -Author D (expected 1, attributed 1) good -Author B (expected 1, attributed 1) good -Author B2 (expected 1, attributed 1) good -ok 49 - blame -L /RE/,-N - -expecting success of 8012.50 'blame -L X (X == nlines)': - n=$(expr $(wc -l nlines)': - test_must_fail $PROG -L12345 file - -fatal: file file has only 8 lines -ok 52 - blame -L X (X > nlines) - -expecting success of 8012.53 'blame -L ,Y (Y == nlines)': - n=$(expr $(wc -l nlines)': - check_count -L,12345 A 1 B 1 B1 1 B2 1 "A U Thor" 1 C 1 D 1 E 1 - -git blame -c -L,12345 file -Author C (expected 1, attributed 1) good -Author E (expected 1, attributed 1) good -Author A (expected 1, attributed 1) good -Author A U Thor (expected 1, attributed 1) good -Author B1 (expected 1, attributed 1) good -Author B (expected 1, attributed 1) good -Author B2 (expected 1, attributed 1) good -Author D (expected 1, attributed 1) good -ok 55 - blame -L ,Y (Y > nlines) - -expecting success of 8012.56 'blame -L multiple (disjoint)': - check_count -L2,3 -L6,7 A 1 B1 1 B2 1 "A U Thor" 1 - -git blame -c -L2,3 -L6,7 file -Author B1 (expected 1, attributed 1) good -Author A (expected 1, attributed 1) good -Author B2 (expected 1, attributed 1) good -Author A U Thor (expected 1, attributed 1) good -ok 56 - blame -L multiple (disjoint) - -expecting success of 8012.57 'blame -L multiple (disjoint: unordered)': - check_count -L6,7 -L2,3 A 1 B1 1 B2 1 "A U Thor" 1 - -git blame -c -L6,7 -L2,3 file -Author A U Thor (expected 1, attributed 1) good -Author B1 (expected 1, attributed 1) good -Author A (expected 1, attributed 1) good -Author B2 (expected 1, attributed 1) good -ok 57 - blame -L multiple (disjoint: unordered) - -expecting success of 8012.58 'blame -L multiple (adjacent)': - check_count -L2,3 -L4,5 A 1 B 1 B2 1 D 1 - -git blame -c -L2,3 -L4,5 file -Author B (expected 1, attributed 1) good -Author A (expected 1, attributed 1) good -Author B2 (expected 1, attributed 1) good -Author D (expected 1, attributed 1) good -ok 58 - blame -L multiple (adjacent) - -expecting success of 8012.59 'blame -L multiple (adjacent: unordered)': - check_count -L4,5 -L2,3 A 1 B 1 B2 1 D 1 - -git blame -c -L4,5 -L2,3 file -Author A (expected 1, attributed 1) good -Author B (expected 1, attributed 1) good -Author B2 (expected 1, attributed 1) good -Author D (expected 1, attributed 1) good -ok 59 - blame -L multiple (adjacent: unordered) - -expecting success of 8012.60 'blame -L multiple (overlapping)': - check_count -L2,4 -L3,5 A 1 B 1 B2 1 D 1 - -git blame -c -L2,4 -L3,5 file -Author D (expected 1, attributed 1) good -Author B2 (expected 1, attributed 1) good -Author B (expected 1, attributed 1) good -Author A (expected 1, attributed 1) good -ok 60 - blame -L multiple (overlapping) - -expecting success of 8012.61 'blame -L multiple (overlapping: unordered)': - check_count -L3,5 -L2,4 A 1 B 1 B2 1 D 1 - -git blame -c -L3,5 -L2,4 file -Author B2 (expected 1, attributed 1) good -Author D (expected 1, attributed 1) good -Author B (expected 1, attributed 1) good -Author A (expected 1, attributed 1) good -ok 61 - blame -L multiple (overlapping: unordered) - -expecting success of 8012.62 'blame -L multiple (superset/subset)': - check_count -L2,8 -L3,5 A 1 B 1 B1 1 B2 1 C 1 D 1 "A U Thor" 1 - -git blame -c -L2,8 -L3,5 file -Author B1 (expected 1, attributed 1) good -Author C (expected 1, attributed 1) good -Author D (expected 1, attributed 1) good -Author B2 (expected 1, attributed 1) good -Author B (expected 1, attributed 1) good -Author A (expected 1, attributed 1) good -Author A U Thor (expected 1, attributed 1) good -ok 62 - blame -L multiple (superset/subset) - -expecting success of 8012.63 'blame -L multiple (superset/subset: unordered)': - check_count -L3,5 -L2,8 A 1 B 1 B1 1 B2 1 C 1 D 1 "A U Thor" 1 - -git blame -c -L3,5 -L2,8 file -Author B1 (expected 1, attributed 1) good -Author A U Thor (expected 1, attributed 1) good -Author D (expected 1, attributed 1) good -Author B (expected 1, attributed 1) good -Author C (expected 1, attributed 1) good -Author B2 (expected 1, attributed 1) good -Author A (expected 1, attributed 1) good -ok 63 - blame -L multiple (superset/subset: unordered) - -expecting success of 8012.64 'blame -L /RE/ (relative)': - check_count -L3,3 -L/fox/ B1 1 B2 1 C 1 D 1 "A U Thor" 1 - -git blame -c -L3,3 -L/fox/ file -Author B2 (expected 1, attributed 1) good -Author C (expected 1, attributed 1) good -Author A U Thor (expected 1, attributed 1) good -Author D (expected 1, attributed 1) good -Author B1 (expected 1, attributed 1) good -ok 64 - blame -L /RE/ (relative) - -expecting success of 8012.65 'blame -L /RE/ (relative: no preceding range)': - check_count -L/dog/ A 1 B 1 B1 1 B2 1 C 1 D 1 "A U Thor" 1 - -git blame -c -L/dog/ file -Author B (expected 1, attributed 1) good -Author B2 (expected 1, attributed 1) good -Author A (expected 1, attributed 1) good -Author B1 (expected 1, attributed 1) good -Author A U Thor (expected 1, attributed 1) good -Author C (expected 1, attributed 1) good -Author D (expected 1, attributed 1) good -ok 65 - blame -L /RE/ (relative: no preceding range) - -expecting success of 8012.66 'blame -L /RE/ (relative: adjacent)': - check_count -L1,1 -L/dog/,+1 A 1 E 1 - -git blame -c -L1,1 -L/dog/,+1 file -Author A (expected 1, attributed 1) good -Author E (expected 1, attributed 1) good -ok 66 - blame -L /RE/ (relative: adjacent) - -expecting success of 8012.67 'blame -L /RE/ (relative: not found)': - test_must_fail $PROG -L4,4 -L/dog/ file - -fatal: -L parameter 'dog' starting at line 5: No match -ok 67 - blame -L /RE/ (relative: not found) - -expecting success of 8012.68 'blame -L /RE/ (relative: end-of-file)': - test_must_fail $PROG -L, -L/$/ file - -fatal: file file has only 8 lines -ok 68 - blame -L /RE/ (relative: end-of-file) - -expecting success of 8012.69 'blame -L ^/RE/ (absolute)': - check_count -L3,3 -L^/dog/,+2 A 1 B2 1 - -git blame -c -L3,3 -L^/dog/,+2 file -Author A (expected 1, attributed 1) good -Author B2 (expected 1, attributed 1) good -ok 69 - blame -L ^/RE/ (absolute) - -expecting success of 8012.70 'blame -L ^/RE/ (absolute: no preceding range)': - check_count -L^/dog/,+2 A 1 B2 1 - -git blame -c -L^/dog/,+2 file -Author B2 (expected 1, attributed 1) good -Author A (expected 1, attributed 1) good -ok 70 - blame -L ^/RE/ (absolute: no preceding range) - -expecting success of 8012.71 'blame -L ^/RE/ (absolute: not found)': - test_must_fail $PROG -L4,4 -L^/tambourine/ file - -fatal: -L parameter 'tambourine' starting at line 1: No match -ok 71 - blame -L ^/RE/ (absolute: not found) - -expecting success of 8012.72 'blame -L ^/RE/ (absolute: end-of-file)': - n=$(expr $(wc -l hello.c <<-\EOF && - int main(int argc, const char *argv[]) - { - Qputs("hello"); - } - EOF - git add hello.c && - GIT_AUTHOR_NAME="F" GIT_AUTHOR_EMAIL="F@test.git" \ - git commit -m "hello" && - - mv hello.c hello.orig && - sed -e "/}/ {x; s/$/Qputs(\"goodbye\");/; G;}" hello.c && - GIT_AUTHOR_NAME="G" GIT_AUTHOR_EMAIL="G@test.git" \ - git commit -a -m "goodbye" && - - mv hello.c hello.orig && - echo "#include " >hello.c && - cat hello.orig >>hello.c && - tr Q "\\t" >>hello.c <<-\EOF && - void mail() - { - Qputs("mail"); - } - EOF - GIT_AUTHOR_NAME="H" GIT_AUTHOR_EMAIL="H@test.git" \ - git commit -a -m "mail" - -[branch2 f82005e] hello - Author: F - 1 file changed, 4 insertions(+) - create mode 100644 hello.c -[branch2 edbab84] goodbye - Author: G - 1 file changed, 1 insertion(+) -[branch2 846166b] mail - Author: H - 1 file changed, 5 insertions(+) -ok 73 - setup -L :regex - -expecting success of 8012.74 'blame -L :literal': - check_count -f hello.c -L:main F 4 G 1 - -git blame -c -L:main hello.c -Author F (expected 4, attributed 4) good -Author G (expected 1, attributed 1) good -ok 74 - blame -L :literal - -expecting success of 8012.75 'blame -L :regex': - check_count -f hello.c "-L:m[a-z][a-z]l" H 4 - -git blame -c -L:m[a-z][a-z]l hello.c -Author H (expected 4, attributed 4) good -ok 75 - blame -L :regex - -expecting success of 8012.76 'blame -L :nomatch': - test_must_fail $PROG -L:nomatch hello.c - -fatal: -L parameter 'nomatch' starting at line 1: no match -ok 76 - blame -L :nomatch - -expecting success of 8012.77 'blame -L :RE (relative)': - check_count -f hello.c -L3,3 -L:ma.. F 1 H 4 - -git blame -c -L3,3 -L:ma.. hello.c -Author F (expected 1, attributed 1) good -Author H (expected 4, attributed 4) good -ok 77 - blame -L :RE (relative) - -expecting success of 8012.78 'blame -L :RE (relative: no preceding range)': - check_count -f hello.c -L:ma.. F 4 G 1 - -git blame -c -L:ma.. hello.c -Author G (expected 1, attributed 1) good -Author F (expected 4, attributed 4) good -ok 78 - blame -L :RE (relative: no preceding range) - -expecting success of 8012.79 'blame -L :RE (relative: not found)': - test_must_fail $PROG -L3,3 -L:tambourine hello.c - -fatal: -L parameter 'tambourine' starting at line 4: no match -ok 79 - blame -L :RE (relative: not found) - -expecting success of 8012.80 'blame -L :RE (relative: end-of-file)': - test_must_fail $PROG -L, -L:main hello.c - -fatal: -L parameter 'main' starting at line 11: no match -ok 80 - blame -L :RE (relative: end-of-file) - -expecting success of 8012.81 'blame -L ^:RE (absolute)': - check_count -f hello.c -L3,3 -L^:ma.. F 4 G 1 - -git blame -c -L3,3 -L^:ma.. hello.c -Author G (expected 1, attributed 1) good -Author F (expected 4, attributed 4) good -ok 81 - blame -L ^:RE (absolute) - -expecting success of 8012.82 'blame -L ^:RE (absolute: no preceding range)': - check_count -f hello.c -L^:ma.. F 4 G 1 - -git blame -c -L^:ma.. hello.c -Author G (expected 1, attributed 1) good -Author F (expected 4, attributed 4) good -ok 82 - blame -L ^:RE (absolute: no preceding range) - -expecting success of 8012.83 'blame -L ^:RE (absolute: not found)': - test_must_fail $PROG -L4,4 -L^:tambourine hello.c - -fatal: -L parameter 'tambourine' starting at line 1: no match -ok 83 - blame -L ^:RE (absolute: not found) - -expecting success of 8012.84 'blame -L ^:RE (absolute: end-of-file)': - n=$(printf "%d" $(wc -l .gitattributes && - fortran_file=fortran-external-function && - orig_file="$TEST_DIRECTORY/t4018/$fortran_file" && - cp "$orig_file" . && - git add "$fortran_file" && - GIT_AUTHOR_NAME="A" GIT_AUTHOR_EMAIL="A@test.git" \ - git commit -m "add fortran file" && - sed -e "s/ChangeMe/IWasChanged/" <"$orig_file" >"$fortran_file" && - git add "$fortran_file" && - GIT_AUTHOR_NAME="B" GIT_AUTHOR_EMAIL="B@test.git" \ - git commit -m "change fortran file" - -[branch2 d478b17] add fortran file - Author: A - 1 file changed, 9 insertions(+) - create mode 100644 fortran-external-function -[branch2 0c00ff6] change fortran file - Author: B - 1 file changed, 1 insertion(+), 1 deletion(-) -ok 85 - setup -L :funcname with userdiff driver - -expecting success of 8012.86 'blame -L :funcname with userdiff driver': - check_count -f fortran-external-function -L:RIGHT A 7 B 1 - -git blame -c -L:RIGHT fortran-external-function -Author B (expected 1, attributed 1) good -Author A (expected 7, attributed 7) good -ok 86 - blame -L :funcname with userdiff driver - -expecting success of 8012.87 'setup incremental': - ( - GIT_AUTHOR_NAME=I && - export GIT_AUTHOR_NAME && - GIT_AUTHOR_EMAIL=I@test.git && - export GIT_AUTHOR_EMAIL && - >incremental && - git add incremental && - git commit -m "step 0" && - printf "partial" >>incremental && - git commit -a -m "step 0.5" && - echo >>incremental && - git commit -a -m "step 1" - ) - -[branch2 3a4c297] step 0 - Author: I - 1 file changed, 0 insertions(+), 0 deletions(-) - create mode 100644 incremental -[branch2 788af08] step 0.5 - Author: I - 1 file changed, 1 insertion(+) -[branch2 25299e4] step 1 - Author: I - 1 file changed, 1 insertion(+), 1 deletion(-) -ok 87 - setup incremental - -expecting success of 8012.88 'blame empty': - check_count -h HEAD^^ -f incremental - -git blame -c incremental HEAD^^ -ok 88 - blame empty - -expecting success of 8012.89 'blame -L 0 empty': - test_must_fail $PROG -L0 incremental HEAD^^ - -fatal: -L invalid line number: 0 -ok 89 - blame -L 0 empty - -expecting success of 8012.90 'blame -L 1 empty': - test_must_fail $PROG -L1 incremental HEAD^^ - -fatal: file incremental has only 0 lines -ok 90 - blame -L 1 empty - -expecting success of 8012.91 'blame -L 2 empty': - test_must_fail $PROG -L2 incremental HEAD^^ - -fatal: file incremental has only 0 lines -ok 91 - blame -L 2 empty - -expecting success of 8012.92 'blame half': - check_count -h HEAD^ -f incremental I 1 - -git blame -c incremental HEAD^ -Author I (expected 1, attributed 1) good -ok 92 - blame half - -expecting success of 8012.93 'blame -L 0 half': - test_must_fail $PROG -L0 incremental HEAD^ - -fatal: -L invalid line number: 0 -ok 93 - blame -L 0 half - -expecting success of 8012.94 'blame -L 1 half': - check_count -h HEAD^ -f incremental -L1 I 1 - -git blame -c -L1 incremental HEAD^ -Author I (expected 1, attributed 1) good -ok 94 - blame -L 1 half - -expecting success of 8012.95 'blame -L 2 half': - test_must_fail $PROG -L2 incremental HEAD^ - -fatal: file incremental has only 1 line -ok 95 - blame -L 2 half - -expecting success of 8012.96 'blame -L 3 half': - test_must_fail $PROG -L3 incremental HEAD^ - -fatal: file incremental has only 1 line -ok 96 - blame -L 3 half - -expecting success of 8012.97 'blame full': - check_count -f incremental I 1 - -git blame -c incremental -Author I (expected 1, attributed 1) good -ok 97 - blame full - -expecting success of 8012.98 'blame -L 0 full': - test_must_fail $PROG -L0 incremental - -fatal: -L invalid line number: 0 -ok 98 - blame -L 0 full - -expecting success of 8012.99 'blame -L 1 full': - check_count -f incremental -L1 I 1 - -git blame -c -L1 incremental -Author I (expected 1, attributed 1) good -ok 99 - blame -L 1 full - -expecting success of 8012.100 'blame -L 2 full': - test_must_fail $PROG -L2 incremental - -fatal: file incremental has only 1 line -ok 100 - blame -L 2 full - -expecting success of 8012.101 'blame -L 3 full': - test_must_fail $PROG -L3 incremental - -fatal: file incremental has only 1 line -ok 101 - blame -L 3 full - -expecting success of 8012.102 'blame -L': - test_must_fail $PROG -L file - -usage: git blame [] [] [] [--] - - are documented in git-rev-list(1) - - --incremental show blame entries as we find them, incrementally - -b do not show object names of boundary commits (Default: off) - --root do not treat root commits as boundaries (Default: off) - --show-stats show work cost statistics - --progress force progress reporting - --score-debug show output score for blame entries - -f, --show-name show original filename (Default: auto) - -n, --show-number show original linenumber (Default: off) - -p, --porcelain show in a format designed for machine consumption - --line-porcelain show porcelain format with per-line commit information - -c use the same output mode as git-annotate (Default: off) - -t show raw timestamp (Default: off) - -l show long commit SHA1 (Default: off) - -s suppress author name and timestamp (Default: off) - -e, --show-email show author email instead of name (Default: off) - -w ignore whitespace differences - --ignore-rev ignore when blaming - --ignore-revs-file - ignore revisions from - --color-lines color redundant metadata from previous line differently - --color-by-age color lines by age - --minimal spend extra cycles to find better match - -S use revisions from instead of calling git-rev-list - --contents use 's contents as the final image - -C[] find line copies within and across files - -M[] find line movements within and across files - -L process only line range , or function : - --abbrev[=] use digits to display object names - -ok 102 - blame -L - -expecting success of 8012.103 'blame -L X,+': - test_must_fail $PROG -L1,+ file - -usage: git blame [] [] [] [--] -ok 103 - blame -L X,+ - -expecting success of 8012.104 'blame -L X,-': - test_must_fail $PROG -L1,- file - -usage: git blame [] [] [] [--] -ok 104 - blame -L X,- - -expecting success of 8012.105 'blame -L X (non-numeric X)': - test_must_fail $PROG -LX file - -usage: git blame [] [] [] [--] -ok 105 - blame -L X (non-numeric X) - -expecting success of 8012.106 'blame -L X,Y (non-numeric Y)': - test_must_fail $PROG -L1,Y file - -usage: git blame [] [] [] [--] -ok 106 - blame -L X,Y (non-numeric Y) - -expecting success of 8012.107 'blame -L X,+N (non-numeric N)': - test_must_fail $PROG -L1,+N file - -usage: git blame [] [] [] [--] -ok 107 - blame -L X,+N (non-numeric N) - -expecting success of 8012.108 'blame -L X,-N (non-numeric N)': - test_must_fail $PROG -L1,-N file - -usage: git blame [] [] [] [--] -ok 108 - blame -L X,-N (non-numeric N) - -expecting success of 8012.109 'blame -L ,^/RE/': - test_must_fail $PROG -L1,^/99/ file - -usage: git blame [] [] [] [--] -ok 109 - blame -L ,^/RE/ - -expecting success of 8012.110 'colored blame colors contiguous lines': - git -c color.blame.repeatedLines=yellow blame --color-lines --abbrev=12 hello.c >actual.raw && - git -c color.blame.repeatedLines=yellow -c blame.coloring=repeatedLines blame --abbrev=12 hello.c >actual.raw.2 && - test_cmp actual.raw actual.raw.2 && - test_decode_color actual && - grep "" darkened && - grep "(F" darkened > F.expect && - grep "(H" darkened > H.expect && - test_line_count = 2 F.expect && - test_line_count = 3 H.expect - -ok 110 - colored blame colors contiguous lines - -expecting success of 8012.111 'color by age consistently colors old code': - git blame --color-by-age hello.c >actual.raw && - git -c blame.coloring=highlightRecent blame hello.c >actual.raw.2 && - test_cmp actual.raw actual.raw.2 && - test_decode_color actual && - grep "" colored && - test_line_count = 10 colored - -ok 111 - color by age consistently colors old code - -expecting success of 8012.112 'blame color by age: new code is different': - cat >>hello.c <<-EOF && - void qfunc(); - EOF - git add hello.c && - GIT_AUTHOR_DATE="" git commit -m "new commit" && - - git -c color.blame.highlightRecent="yellow,1 month ago, cyan" blame --color-by-age hello.c >actual.raw && - test_decode_color actual && - - grep "" colored && - test_line_count = 10 colored && - - grep "" colored && - test_line_count = 1 colored && - grep qfunc colored - -[branch2 4be0154] new commit - Author: A U Thor - 1 file changed, 1 insertion(+) -4be01544 (A U Thor 2023-04-29 16:47:40 +0000 11) void qfunc(); -ok 112 - blame color by age: new code is different - -# passed all 112 test(s) -1..112 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t8014-blame-ignore-fuzzy.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t8014-blame-ignore-fuzzy/.git/ -expecting success of 8014.1 'setup': - for i in $(test_seq 2 $last_test) - do - # Append each line in a separate commit to make it easy to - # check which original line the blame output relates to. - - line_count=0 && - while IFS= read line - do - line_count=$((line_count+1)) && - echo "$line" >>"$i" && - git add "$i" && - test_tick && - GIT_AUTHOR_NAME="$line_count" git commit -m "$line_count" - done <"a$i" - done && - - for i in $(test_seq 2 $last_test) - do - # Overwrite the files with the final content. - cp b$i $i && - git add $i - done && - test_tick && - - # Commit the final content all at once so it can all be - # referred to with the same commit ID. - GIT_AUTHOR_NAME=Final git commit -m Final && - - IGNOREME=$(git rev-parse HEAD) - -[master (root-commit) a459bb2] 1 - Author: 1 - 1 file changed, 1 insertion(+) - create mode 100644 2 -[master 455f594] 2 - Author: 2 - 1 file changed, 1 insertion(+) -[master ae356a5] 3 - Author: 3 - 1 file changed, 1 insertion(+) -[master 986ba04] 4 - Author: 4 - 1 file changed, 1 insertion(+) -[master 112fd1b] 5 - Author: 5 - 1 file changed, 1 insertion(+) -[master 55cb950] 6 - Author: 6 - 1 file changed, 1 insertion(+) -[master fb44572] 7 - Author: 7 - 1 file changed, 1 insertion(+) -[master 0193540] 8 - Author: 8 - 1 file changed, 1 insertion(+) -[master 54573a7] 9 - Author: 9 - 1 file changed, 1 insertion(+) -[master 2906ab9] 10 - Author: 10 - 1 file changed, 1 insertion(+) -[master 993387a] 11 - Author: 11 - 1 file changed, 1 insertion(+) -[master 5a378ed] 12 - Author: 12 - 1 file changed, 1 insertion(+) -[master 07b780d] 13 - Author: 13 - 1 file changed, 1 insertion(+) -[master 06d4280] 14 - Author: 14 - 1 file changed, 1 insertion(+) -[master 83128e2] 15 - Author: 15 - 1 file changed, 1 insertion(+) -[master c7dc60e] 16 - Author: 16 - 1 file changed, 1 insertion(+) -[master b64f9f3] 17 - Author: 17 - 1 file changed, 1 insertion(+) -[master b2112c8] 18 - Author: 18 - 1 file changed, 1 insertion(+) -[master 6de54b3] 19 - Author: 19 - 1 file changed, 1 insertion(+) -[master dd68dd4] 1 - Author: 1 - 1 file changed, 1 insertion(+) - create mode 100644 3 -[master ce31df2] 2 - Author: 2 - 1 file changed, 1 insertion(+) -[master 843f64f] 3 - Author: 3 - 1 file changed, 1 insertion(+) -[master 35030af] 1 - Author: 1 - 1 file changed, 1 insertion(+) - create mode 100644 4 -[master 953d34c] 2 - Author: 2 - 1 file changed, 1 insertion(+) -[master 8e827ec] 3 - Author: 3 - 1 file changed, 1 insertion(+) -[master 8c3589a] 4 - Author: 4 - 1 file changed, 1 insertion(+) -[master 84cd02a] 1 - Author: 1 - 1 file changed, 1 insertion(+) - create mode 100644 5 -[master e94eb23] 2 - Author: 2 - 1 file changed, 1 insertion(+) -[master 32c6f85] 3 - Author: 3 - 1 file changed, 1 insertion(+) -[master bf2d22c] 4 - Author: 4 - 1 file changed, 1 insertion(+) -[master 2d1cc84] 5 - Author: 5 - 1 file changed, 1 insertion(+) -[master 74b81ac] 6 - Author: 6 - 1 file changed, 1 insertion(+) -[master 0854834] 7 - Author: 7 - 1 file changed, 1 insertion(+) -[master 4a530d1] 8 - Author: 8 - 1 file changed, 1 insertion(+) -[master ad63694] 1 - Author: 1 - 1 file changed, 1 insertion(+) - create mode 100644 6 -[master 7e3e3c7] 2 - Author: 2 - 1 file changed, 1 insertion(+) -[master 8c39144] 3 - Author: 3 - 1 file changed, 1 insertion(+) -[master 823725b] 4 - Author: 4 - 1 file changed, 1 insertion(+) -[master 5728ada] 5 - Author: 5 - 1 file changed, 1 insertion(+) -[master 9c5745d] 6 - Author: 6 - 1 file changed, 1 insertion(+) -[master 7ce3865] 7 - Author: 7 - 1 file changed, 1 insertion(+) -[master 9221615] 8 - Author: 8 - 1 file changed, 1 insertion(+) -[master f7f2b1c] 9 - Author: 9 - 1 file changed, 1 insertion(+) -[master c156520] 10 - Author: 10 - 1 file changed, 1 insertion(+) -[master b387727] 11 - Author: 11 - 1 file changed, 1 insertion(+) -[master 3da1770] 12 - Author: 12 - 1 file changed, 1 insertion(+) -[master 9caa469] 13 - Author: 13 - 1 file changed, 1 insertion(+) -[master 1449afa] 14 - Author: 14 - 1 file changed, 1 insertion(+) -[master eafda23] 1 - Author: 1 - 1 file changed, 1 insertion(+) - create mode 100644 7 -[master 83d236f] 2 - Author: 2 - 1 file changed, 1 insertion(+) -[master 77d14eb] 1 - Author: 1 - 1 file changed, 1 insertion(+) - create mode 100644 8 -[master 860eb54] 2 - Author: 2 - 1 file changed, 1 insertion(+) -[master 0b8c3b6] 3 - Author: 3 - 1 file changed, 1 insertion(+) -[master 4dbae56] 1 - Author: 1 - 1 file changed, 1 insertion(+) - create mode 100644 9 -[master 654f4f9] 2 - Author: 2 - 1 file changed, 1 insertion(+) -[master 1194a28] 3 - Author: 3 - 1 file changed, 1 insertion(+) -[master b071882] 4 - Author: 4 - 1 file changed, 1 insertion(+) -[master d878653] 5 - Author: 5 - 1 file changed, 1 insertion(+) -[master 04b3bcc] 1 - Author: 1 - 1 file changed, 1 insertion(+) - create mode 100644 10 -[master f574735] 2 - Author: 2 - 1 file changed, 1 insertion(+) -[master ecce56b] 3 - Author: 3 - 1 file changed, 1 insertion(+) -[master df40e26] 1 - Author: 1 - 1 file changed, 1 insertion(+) - create mode 100644 11 -[master dc03d7d] 2 - Author: 2 - 1 file changed, 1 insertion(+) -[master b4f9f1c] 3 - Author: 3 - 1 file changed, 1 insertion(+) -[master fb77c6a] 1 - Author: 1 - 1 file changed, 1 insertion(+) - create mode 100644 12 -[master eab48da] 1 - Author: 1 - 1 file changed, 1 insertion(+) - create mode 100644 13 -[master 0adab8f] 2 - Author: 2 - 1 file changed, 1 insertion(+) -[master 207a501] 3 - Author: 3 - 1 file changed, 1 insertion(+) -[master c6621c4] 4 - Author: 4 - 1 file changed, 1 insertion(+) -[master 3134814] 5 - Author: 5 - 1 file changed, 1 insertion(+) -[master 01c9204] Final - Author: Final - 12 files changed, 53 insertions(+), 65 deletions(-) -ok 1 - setup - -expecting success of 8014.2 'Regression test for partially overlapping search ranges': git blame -M9 --ignore-rev 01c9204ad215bac1f8b21a95bd806f4910e7e8b9 2 >output && - sed -e "s/^[0-9a-f^]* *(\([^ ]*\) .*/\1/" output >actual && - test_cmp expected2 actual -ok 2 - Regression test for partially overlapping search ranges - -expecting success of 8014.3 'Combine 3 lines into 2': git blame -M9 --ignore-rev 01c9204ad215bac1f8b21a95bd806f4910e7e8b9 3 >output && - sed -e "s/^[0-9a-f^]* *(\([^ ]*\) .*/\1/" output >actual && - test_cmp expected3 actual -ok 3 - Combine 3 lines into 2 - -expecting success of 8014.4 'Add curly brackets': git blame -M9 --ignore-rev 01c9204ad215bac1f8b21a95bd806f4910e7e8b9 4 >output && - sed -e "s/^[0-9a-f^]* *(\([^ ]*\) .*/\1/" output >actual && - test_cmp expected4 actual -ok 4 - Add curly brackets - -expecting success of 8014.5 'Combine many lines and change case': git blame -M9 --ignore-rev 01c9204ad215bac1f8b21a95bd806f4910e7e8b9 5 >output && - sed -e "s/^[0-9a-f^]* *(\([^ ]*\) .*/\1/" output >actual && - test_cmp expected5 actual -ok 5 - Combine many lines and change case - -expecting success of 8014.6 'Rename and combine lines': git blame -M9 --ignore-rev 01c9204ad215bac1f8b21a95bd806f4910e7e8b9 6 >output && - sed -e "s/^[0-9a-f^]* *(\([^ ]*\) .*/\1/" output >actual && - test_cmp expected6 actual -ok 6 - Rename and combine lines - -expecting success of 8014.7 'Same line twice': git blame -M9 --ignore-rev 01c9204ad215bac1f8b21a95bd806f4910e7e8b9 7 >output && - sed -e "s/^[0-9a-f^]* *(\([^ ]*\) .*/\1/" output >actual && - test_cmp expected7 actual -ok 7 - Same line twice - -expecting success of 8014.8 'Enforce line order': git blame -M9 --ignore-rev 01c9204ad215bac1f8b21a95bd806f4910e7e8b9 8 >output && - sed -e "s/^[0-9a-f^]* *(\([^ ]*\) .*/\1/" output >actual && - test_cmp expected8 actual -ok 8 - Enforce line order - -expecting success of 8014.9 'Expand lines and rename variables': git blame -M9 --ignore-rev 01c9204ad215bac1f8b21a95bd806f4910e7e8b9 9 >output && - sed -e "s/^[0-9a-f^]* *(\([^ ]*\) .*/\1/" output >actual && - test_cmp expected9 actual -ok 9 - Expand lines and rename variables - -expecting success of 8014.10 'Two close matches versus one less close match': git blame -M9 --ignore-rev 01c9204ad215bac1f8b21a95bd806f4910e7e8b9 10 >output && - sed -e "s/^[0-9a-f^]* *(\([^ ]*\) .*/\1/" output >actual && - test_cmp expected10 actual -ok 10 - Two close matches versus one less close match - -expecting success of 8014.11 'Piggy in the middle': git blame -M9 --ignore-rev 01c9204ad215bac1f8b21a95bd806f4910e7e8b9 11 >output && - sed -e "s/^[0-9a-f^]* *(\([^ ]*\) .*/\1/" output >actual && - test_cmp expected11 actual -ok 11 - Piggy in the middle - -expecting success of 8014.12 'No trailing newline': git blame -M9 --ignore-rev 01c9204ad215bac1f8b21a95bd806f4910e7e8b9 12 >output && - sed -e "s/^[0-9a-f^]* *(\([^ ]*\) .*/\1/" output >actual && - test_cmp expected12 actual -ok 12 - No trailing newline - -expecting success of 8014.13 'Reorder includes': git blame -M9 --ignore-rev 01c9204ad215bac1f8b21a95bd806f4910e7e8b9 13 >output && - sed -e "s/^[0-9a-f^]* *(\([^ ]*\) .*/\1/" output >actual && - test_cmp expected13 actual -ok 13 - Reorder includes - -expecting success of 8014.14 'Diff chunks with no suspects': - test_write_lines xy1 A B C xy1 >file && - git add file && - test_tick && - GIT_AUTHOR_NAME=1 git commit -m 1 && - - test_write_lines xy2 A B xy2 C xy2 >file && - git add file && - test_tick && - GIT_AUTHOR_NAME=2 git commit -m 2 && - REV_2=$(git rev-parse HEAD) && - - test_write_lines xy3 A >file && - git add file && - test_tick && - GIT_AUTHOR_NAME=3 git commit -m 3 && - REV_3=$(git rev-parse HEAD) && - - test_write_lines 1 1 >expected && - - git blame --ignore-rev $REV_2 --ignore-rev $REV_3 file >output && - sed -e "$pick_author" output >actual && - - test_cmp expected actual - -[master c2d5eb7] 1 - Author: 1 - 1 file changed, 5 insertions(+) - create mode 100644 file -[master 06b555d] 2 - Author: 2 - 1 file changed, 3 insertions(+), 2 deletions(-) -[master a1483a3] 3 - Author: 3 - 1 file changed, 1 insertion(+), 5 deletions(-) -ok 14 - Diff chunks with no suspects - -expecting success of 8014.15 'position matching': - test_write_lines abc def >file2 && - git add file2 && - test_tick && - GIT_AUTHOR_NAME=1 git commit -m 1 && - - test_write_lines abc def abc def >file2 && - git add file2 && - test_tick && - GIT_AUTHOR_NAME=2 git commit -m 2 && - - test_write_lines abcx defx abcx defx >file2 && - git add file2 && - test_tick && - GIT_AUTHOR_NAME=3 git commit -m 3 && - REV_3=$(git rev-parse HEAD) && - - test_write_lines abcy defy abcx defx >file2 && - git add file2 && - test_tick && - GIT_AUTHOR_NAME=4 git commit -m 4 && - REV_4=$(git rev-parse HEAD) && - - test_write_lines 1 1 2 2 >expected && - - git blame --ignore-rev $REV_3 --ignore-rev $REV_4 file2 >output && - sed -e "$pick_author" output >actual && - - test_cmp expected actual - -[master 35116cb] 1 - Author: 1 - 1 file changed, 2 insertions(+) - create mode 100644 file2 -[master 2cf8ef0] 2 - Author: 2 - 1 file changed, 2 insertions(+) -[master db13f6f] 3 - Author: 3 - 1 file changed, 4 insertions(+), 4 deletions(-) -[master bf5dda1] 4 - Author: 4 - 1 file changed, 2 insertions(+), 2 deletions(-) -ok 15 - position matching - -expecting success of 8014.16 'preserve order': - test_write_lines bcde >file3 && - git add file3 && - test_tick && - GIT_AUTHOR_NAME=1 git commit -m 1 && - - test_write_lines bcde fghij >file3 && - git add file3 && - test_tick && - GIT_AUTHOR_NAME=2 git commit -m 2 && - - test_write_lines bcde fghij abcd >file3 && - git add file3 && - test_tick && - GIT_AUTHOR_NAME=3 git commit -m 3 && - - test_write_lines abcdx fghijx bcdex >file3 && - git add file3 && - test_tick && - GIT_AUTHOR_NAME=4 git commit -m 4 && - REV_4=$(git rev-parse HEAD) && - - test_write_lines abcdx fghijy bcdex >file3 && - git add file3 && - test_tick && - GIT_AUTHOR_NAME=5 git commit -m 5 && - REV_5=$(git rev-parse HEAD) && - - test_write_lines 1 2 3 >expected && - - git blame --ignore-rev $REV_4 --ignore-rev $REV_5 file3 >output && - sed -e "$pick_author" output >actual && - - test_cmp expected actual - -[master 7405022] 1 - Author: 1 - 1 file changed, 1 insertion(+) - create mode 100644 file3 -[master 83ccc7b] 2 - Author: 2 - 1 file changed, 1 insertion(+) -[master 56aa8aa] 3 - Author: 3 - 1 file changed, 1 insertion(+) -[master a6b3442] 4 - Author: 4 - 1 file changed, 3 insertions(+), 3 deletions(-) -[master 9acf8a7] 5 - Author: 5 - 1 file changed, 1 insertion(+), 1 deletion(-) -ok 16 - preserve order - -# passed all 16 test(s) -1..16 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t9003-help-autocorrect.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9003-help-autocorrect/.git/ -expecting success of 9003.1 'setup': - # An alias - git config alias.lgf "log --format=%s --first-parent" && - - # A random user-defined command - write_script git-distimdistim <<-EOF && - echo distimdistim was called - EOF - - PATH="$PATH:." && - export PATH && - - git commit --allow-empty -m "a single log entry" && - - # Sanity check - git lgf >actual && - echo "a single log entry" >expect && - test_cmp expect actual && - - git distimdistim >actual && - echo "distimdistim was called" >expect && - test_cmp expect actual - -[master (root-commit) b57823c] a single log entry - Author: A U Thor -ok 1 - setup - -expecting success of 9003.2 'autocorrect showing candidates': - git config help.autocorrect 0 && - - test_must_fail git lfg 2>actual && - grep "^ lgf" actual && - - test_must_fail git distimdist 2>actual && - grep "^ distimdistim" actual - - lgf - distimdistim -ok 2 - autocorrect showing candidates - -expecting success of 9003.3 'autocorrect running commands': - git config help.autocorrect $immediate && - - git lfg >actual && - echo "a single log entry" >expect && - test_cmp expect actual && - - git distimdist >actual && - echo "distimdistim was called" >expect && - test_cmp expect actual - -WARNING: You called a Git command named 'lfg', which does not exist. -Continuing under the assumption that you meant 'lgf'. -WARNING: You called a Git command named 'distimdist', which does not exist. -Continuing under the assumption that you meant 'distimdistim'. -ok 3 - autocorrect running commands - -expecting success of 9003.4 'autocorrect running commands': - git config help.autocorrect $immediate && - - git lfg >actual && - echo "a single log entry" >expect && - test_cmp expect actual && - - git distimdist >actual && - echo "distimdistim was called" >expect && - test_cmp expect actual - -WARNING: You called a Git command named 'lfg', which does not exist. -Continuing under the assumption that you meant 'lgf'. -WARNING: You called a Git command named 'distimdist', which does not exist. -Continuing under the assumption that you meant 'distimdistim'. -ok 4 - autocorrect running commands - -expecting success of 9003.5 'autocorrect can be declined altogether': - git config help.autocorrect never && - - test_must_fail git lfg 2>actual && - if test_have_prereq C_LOCALE_OUTPUT - then - grep "is not a git command" actual && - test_line_count = 1 actual - fi - -checking prerequisite: C_LOCALE_OUTPUT - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false - -) -prerequisite C_LOCALE_OUTPUT ok -git: 'lfg' is not a git command. See 'git --help'. -ok 5 - autocorrect can be declined altogether - -# passed all 5 test(s) -1..5 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t9002-column.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9002-column/.git/ -expecting success of 9002.1 'setup': - cat >lista <<\EOF -one -two -three -four -five -six -seven -eight -nine -ten -eleven -EOF - -ok 1 - setup - -expecting success of 9002.2 'never': - git column --indent=Z --mode=never actual && - test_cmp lista actual - -ok 2 - never - -expecting success of 9002.3 'always': - cat >expected <<\EOF && -Zone -Ztwo -Zthree -Zfour -Zfive -Zsix -Zseven -Zeight -Znine -Zten -Zeleven -EOF - git column --indent=Z --mode=plain actual && - test_cmp expected actual - -ok 3 - always - -expecting success of 9002.4 '80 columns': - cat >expected <<\EOF && -one two three four five six seven eight nine ten eleven -EOF - COLUMNS=80 git column --mode=column actual && - test_cmp expected actual - -ok 4 - 80 columns - -expecting success of 9002.5 'COLUMNS = 1': - COLUMNS=1 git column --mode=column actual && - test_cmp expected actual - -ok 5 - COLUMNS = 1 - -expecting success of 9002.6 'width = 1': - git column --mode=column --width=1 actual && - test_cmp expected actual - -ok 6 - width = 1 - -expecting success of 9002.7 '20 columns': - cat >expected <<\EOF && -one seven -two eight -three nine -four ten -five eleven -six -EOF - git column --mode=column actual && - test_cmp expected actual - -ok 7 - 20 columns - -expecting success of 9002.8 '20 columns, nodense': - cat >expected <<\EOF && -one seven -two eight -three nine -four ten -five eleven -six -EOF - git column --mode=column,nodense < lista > actual && - test_cmp expected actual - -ok 8 - 20 columns, nodense - -expecting success of 9002.9 '20 columns, dense': - cat >expected <<\EOF && -one five nine -two six ten -three seven eleven -four eight -EOF - git column --mode=column,dense < lista > actual && - test_cmp expected actual - -ok 9 - 20 columns, dense - -expecting success of 9002.10 '20 columns, padding 2': - cat >expected <<\EOF && -one seven -two eight -three nine -four ten -five eleven -six -EOF - git column --mode=column --padding 2 actual && - test_cmp expected actual - -ok 10 - 20 columns, padding 2 - -expecting success of 9002.11 '20 columns, indented': - cat >expected <<\EOF && - one seven - two eight - three nine - four ten - five eleven - six -EOF - git column --mode=column --indent=" " actual && - test_cmp expected actual - -ok 11 - 20 columns, indented - -expecting success of 9002.12 '20 columns, row first': - cat >expected <<\EOF && -one two -three four -five six -seven eight -nine ten -eleven -EOF - git column --mode=row actual && - test_cmp expected actual - -ok 12 - 20 columns, row first - -expecting success of 9002.13 '20 columns, row first, nodense': - cat >expected <<\EOF && -one two -three four -five six -seven eight -nine ten -eleven -EOF - git column --mode=row,nodense actual && - test_cmp expected actual - -ok 13 - 20 columns, row first, nodense - -expecting success of 9002.14 '20 columns, row first, dense': - cat >expected <<\EOF && -one two three -four five six -seven eight nine -ten eleven -EOF - git column --mode=row,dense actual && - test_cmp expected actual - -ok 14 - 20 columns, row first, dense - -# passed all 14 test(s) -1..14 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t9004-example.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9004-example/.git/ -expecting success of 9004.1 'decorate': - test-tool example-decorate - -ok 1 - decorate - -# passed all 1 test(s) -1..1 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' *** t9101-git-svn-props.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9101-git-svn-props/.git/ expecting success of 9101.1 'checkout working copy from svn': svn co "$svnrepo" test_wc @@ -393861,13 +393694,13 @@ A ne_cr A ne_crlf A ne_lf -r1 = 661bbcdaa5fbeb75f15d88d9b8f7eca101994c6d (refs/remotes/git-svn) +r1 = 879b15e9648c75cdc8bf1cafaaa9287ebfac4a2e (refs/remotes/git-svn) M kw.c -r2 = e82e7f26378c2067093d01689d32faebc1f7b544 (refs/remotes/git-svn) +r2 = 4d441323f90e4600408b72a00c08fd5c368123cf (refs/remotes/git-svn) M kw.c -r3 = 1d068a707a0651f1e241f6175641971314cba255 (refs/remotes/git-svn) +r3 = 828a0300e669d70452ca76f1028245f57b81d589 (refs/remotes/git-svn) M kw.c -r4 = 488d133d5a57637f85b304a317d8a339beb02a3b (refs/remotes/git-svn) +r4 = 6b34ccab390da70c84766d4d9377a50a7078a1df (refs/remotes/git-svn) Checked out HEAD: file:///build/git-2.30.2/t/trash%20directory.t9101-git-svn-props/svnrepo r4 ok 4 - fetch revisions from svn @@ -393878,12 +393711,12 @@ git svn set-tree remotes/git-svn..mybranch && git pull . remotes/git-svn Switched to a new branch 'mybranch' -[mybranch 9bc6b9c] test keywords ignoring +[mybranch 70022ac] test keywords ignoring Author: A U Thor 1 file changed, 1 insertion(+) M kw.c M kw.c -r5 = d6b1025530a2bb183df50468eb9f3f883b457f8b (refs/remotes/git-svn) +r5 = 6ca2ace9d17cc4c0772a0caf93ed54133e48d025 (refs/remotes/git-svn) Done committing 1 revisions to SVN hint: Pulling without specifying how to reconcile divergent branches is hint: discouraged. You can squelch this message by running one of the following @@ -393899,7 +393732,7 @@ hint: invocation. From . * remote-tracking branch git-svn -> FETCH_HEAD -Updating 9bc6b9c..d6b1025 +Updating 70022ac..6ca2ace Fast-forward ok 5 - test svn:keywords ignoring @@ -393932,7 +393765,7 @@ M crlf M empty M ne_crlf -r6 = e1065d8dbd7502655a44dfaf59a9d004a04cf0f7 (refs/remotes/git-svn) +r6 = c2527d814a22f3cacdc01f8ee31b00a75227c570 (refs/remotes/git-svn) hint: Pulling without specifying how to reconcile divergent branches is hint: discouraged. You can squelch this message by running one of the following hint: commands sometime before your next pull: @@ -393947,7 +393780,7 @@ hint: invocation. From . * remote-tracking branch git-svn -> FETCH_HEAD -Updating d6b1025..e1065d8 +Updating 6ca2ace..c2527d8 Fast-forward crlf | 3 +-- ne_crlf | 3 +-- @@ -394015,7 +393848,7 @@ expecting success of 9101.20 'fetch and pull latest from svn': git svn fetch && git pull . remotes/git-svn M cr M ne_cr -r7 = 6da4cd6ebd2f1fc2009b0bc2d5258eaae9c9e6e4 (refs/remotes/git-svn) +r7 = 2696adfe2b478bb25e024fc4f1035713e7497b4d (refs/remotes/git-svn) hint: Pulling without specifying how to reconcile divergent branches is hint: discouraged. You can squelch this message by running one of the following hint: commands sometime before your next pull: @@ -394030,7 +393863,7 @@ hint: invocation. From . * remote-tracking branch git-svn -> FETCH_HEAD -Updating e1065d8..6da4cd6 +Updating c2527d8..2696adf Fast-forward cr | 4 +++- ne_cr | 4 +++- @@ -394090,7 +393923,7 @@ grep gitignore ls_files_result | cmp - create-ignore-index.expect A deeply/nested/directory/.keep -r8 = d59fb05861bd799fac09a4d0f73e708d5f8f2fde (refs/remotes/git-svn) +r8 = 7f1de8aedd12810b8811e6d062ded6f1555e127d (refs/remotes/git-svn) hint: Pulling without specifying how to reconcile divergent branches is hint: discouraged. You can squelch this message by running one of the following hint: commands sometime before your next pull: @@ -394105,7 +393938,7 @@ hint: invocation. From . * remote-tracking branch git-svn -> FETCH_HEAD -Updating 6da4cd6..d59fb05 +Updating 2696adf..7f1de8a Fast-forward deeply/nested/directory/.keep | 0 1 file changed, 0 insertions(+), 0 deletions(-) @@ -394174,7 +394007,7 @@ A deeply/nested/directory/number/1/file A deeply/nested/directory/number/2/another -r1 = 7f978a5e914aca0d079e266f430e4909cd953144 (refs/remotes/git-svn) +r1 = da7d0a858f44b0341748c751416f8650984fc169 (refs/remotes/git-svn) Checked out HEAD: file:///build/git-2.30.2/t/trash%20directory.t9102-git-svn-deep-rmdir/svnrepo r1 Switched to a new branch 'test-rmdir' @@ -394187,7 +394020,7 @@ svn_cmd ls -R "$svnrepo" | grep ^deeply/nested/directory/number/1 rm 'deeply/nested/directory/number/2/another' -[test-rmdir 9965e6c] remove another +[test-rmdir ab300b0] remove another Author: A U Thor 1 file changed, 1 deletion(-) delete mode 100644 deeply/nested/directory/number/2/another @@ -394196,7 +394029,7 @@ D deeply/nested/directory/number/2/another D deeply/nested/directory/number/2/ W: -empty_dir: deeply/nested/directory/number/2 -r2 = 76ce738f7055ff7fb4fbfb1a08ceae556aa56aed (refs/remotes/git-svn) +r2 = 8d31086e3dabc86397a7fe7e1cd40e630ec65aee (refs/remotes/git-svn) Done committing 1 revisions to SVN deeply/nested/directory/number/1/ deeply/nested/directory/number/1/file @@ -394252,10 +394085,10 @@ hint: git branch -m Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9103-git-svn-tracked-directory-removed/x/.git/ A README -r1 = 1083e3a17eee8b944253be3f3e40ca3e6de0488c (refs/remotes/origin/trunk) +r1 = 0842e4e4e4fe738b1c9c1fe622bac54277cb63b9 (refs/remotes/origin/trunk) D README A FOLLOWME -r3 = cbc0dd879496e2e0980b6f8173729a4c92114061 (refs/remotes/origin/trunk) +r3 = 71ee84eba210423321513050443cc2dab0169298 (refs/remotes/origin/trunk) Checked out HEAD: file:///build/git-2.30.2/t/trash%20directory.t9103-git-svn-tracked-directory-removed/svnrepo/trunk r3 ok 2 - clone repo with git @@ -394270,13 +394103,313 @@ test -z "$(git svn find-rev r2)" ) -HEAD is now at 1083e3a initial +HEAD is now at 0842e4e initial ok 3 - make sure r2 still has old file # passed all 3 test(s) 1..3 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t9105-git-svn-commit-diff.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9105-git-svn-commit-diff/.git/ +expecting success of 9105.1 'initialize repo': + mkdir import && + ( + cd import && + echo hello >readme && + svn_cmd import -m "initial" . "$svnrepo" + ) && + echo hello > readme && + git update-index --add readme && + git commit -a -m "initial" && + echo world >> readme && + git commit -a -m "another" + +Adding readme +Committing transaction... +Committed revision 1. +[master (root-commit) ecebef3] initial + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 readme +[master 32e6dbc] another + Author: A U Thor + 1 file changed, 1 insertion(+) +ok 1 - initialize repo + +expecting success of 9105.2 'test the commit-diff command': + test -n "$prev" && test -n "$head" && + git svn commit-diff -r1 "$prev" "$head" "$svnrepo" && + svn_cmd co "$svnrepo" wc && + cmp readme wc/readme + + M readme +Committed r2 +A wc/readme +Checked out revision 2. +ok 2 - test the commit-diff command + +expecting success of 9105.3 'commit-diff to a sub-directory (with git svn config)': + svn_cmd import -m "sub-directory" import "$svnrepo"/subdir && + git svn init --minimize-url "$svnrepo"/subdir && + git svn fetch && + git svn commit-diff -r3 "$prev" "$head" && + svn_cmd cat "$svnrepo"/subdir/readme > readme.2 && + cmp readme readme.2 + +Adding import/readme +Committing transaction... +Committed revision 3. +Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9105-git-svn-commit-diff/svnrepo/subdir => file:///build/git-2.30.2/t/trash%20directory.t9105-git-svn-commit-diff/svnrepo + A readme +r3 = 6ac47460141d884541ed1767459a01b4972c398d (refs/remotes/git-svn) + M readme +Committed r4 +ok 3 - commit-diff to a sub-directory (with git svn config) + +# passed all 3 test(s) +1..3 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t9106-git-svn-commit-diff-clobber.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9106-git-svn-commit-diff-clobber/.git/ +expecting success of 9106.1 'initialize repo': + mkdir import && + ( + cd import && + echo initial >file && + svn_cmd import -m "initial" . "$svnrepo" + ) && + echo initial > file && + git update-index --add file && + git commit -a -m "initial" + +Adding file +Committing transaction... +Committed revision 1. +[master (root-commit) 8d59b1f] initial + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file +ok 1 - initialize repo + +expecting success of 9106.2 'commit change from svn side': + svn_cmd co "$svnrepo" t.svn && + ( + cd t.svn && + echo second line from svn >>file && + poke file && + svn_cmd commit -m "second line from svn" + ) && + rm -rf t.svn + +A t.svn/file +Checked out revision 1. +Sending file +Transmitting file data .done +Committing transaction... +Committed revision 2. +ok 2 - commit change from svn side + +expecting success of 9106.3 'commit conflicting change from git': + echo second line from git >> file && + git commit -a -m "second line from git" && + test_must_fail git svn commit-diff -r1 HEAD~1 HEAD "$svnrepo" + +[master 62e39e5] second line from git + Author: A U Thor + 1 file changed, 1 insertion(+) +Transaction is out of date: File '/file' is out of date at /build/git-2.30.2/git-svn line 1546. + +ok 3 - commit conflicting change from git + +expecting success of 9106.4 'commit complementing change from git': + git reset --hard HEAD~1 && + echo second line from svn >> file && + git commit -a -m "second line from svn" && + echo third line from git >> file && + git commit -a -m "third line from git" && + git svn commit-diff -r2 HEAD~1 HEAD "$svnrepo" + +HEAD is now at 8d59b1f initial +[master 3494a8f] second line from svn + Author: A U Thor + 1 file changed, 1 insertion(+) +[master 57507a0] third line from git + Author: A U Thor + 1 file changed, 1 insertion(+) + M file +Committed r3 +ok 4 - commit complementing change from git + +expecting success of 9106.5 'dcommit fails to commit because of conflict': + git svn init "$svnrepo" && + git svn fetch && + git reset --hard refs/remotes/git-svn && + svn_cmd co "$svnrepo" t.svn && + ( + cd t.svn && + echo fourth line from svn >>file && + poke file && + svn_cmd commit -m "fourth line from svn" + ) && + rm -rf t.svn && + echo "fourth line from git" >> file && + git commit -a -m "fourth line from git" && + test_must_fail git svn dcommit + + A file +r1 = 4e86afee4fdc55d154adeb79eda0b8dc9ce78d8a (refs/remotes/git-svn) + M file +r2 = 2e103c2c46e680305fcdb7e0dd12d3e703ab63a0 (refs/remotes/git-svn) + M file +r3 = 814aba7cd669ca2e3707b6fe4ff9b63ae7c1cbf9 (refs/remotes/git-svn) +HEAD is now at 814aba7 third line from git +A t.svn/file +Checked out revision 3. +Sending file +Transmitting file data .done +Committing transaction... +Committed revision 4. +[master 201d755] fourth line from git + Author: A U Thor + 1 file changed, 1 insertion(+) +Committing to file:///build/git-2.30.2/t/trash%20directory.t9106-git-svn-commit-diff-clobber/svnrepo ... + +ERROR from SVN: +Transaction is out of date: File '/file' is out of date +W: 201d755a315afeca9546cb05053b4545e1ea74d3 and refs/remotes/git-svn differ, using rebase: +:100644 100644 faa34c792e6a485955b65cc9f20e8ab0dd63e45c d270188940c824ce4f1e8aa864ca5d2f8c75f939 M file +Current branch master is up to date. +ERROR: Not all changes have been committed into SVN, however the committed +ones (if any) seem to be successfully integrated into the working tree. +Please see the above messages for details. + +ok 5 - dcommit fails to commit because of conflict + +expecting success of 9106.6 'dcommit does the svn equivalent of an index merge': + git reset --hard refs/remotes/git-svn && + echo 'index merge' > file2 && + git update-index --add file2 && + git commit -a -m 'index merge' && + echo 'more changes' >> file2 && + git update-index file2 && + git commit -a -m 'more changes' && + git svn dcommit + +HEAD is now at 814aba7 third line from git +[master 2caead2] index merge + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file2 +[master 9f496a2] more changes + Author: A U Thor + 1 file changed, 1 insertion(+) +Committing to file:///build/git-2.30.2/t/trash%20directory.t9106-git-svn-commit-diff-clobber/svnrepo ... + A file2 +Committed r5 + M file +r4 = d7b99b5b3fda51ab5ebcf4b4d0ed7f21cebabc6d (refs/remotes/git-svn) + A file2 +r5 = 1b384d50dee706c42f98da795a4391da9f4de5d8 (refs/remotes/git-svn) +W: 2caead269e44c7927a64e86539a615763427be61 and refs/remotes/git-svn differ, using rebase: +:100644 100644 d270188940c824ce4f1e8aa864ca5d2f8c75f939 b349877e032add143a5dc286d30e523181dea4ef M file +Rebasing (1/1) Successfully rebased and updated refs/heads/master. + M file2 +Committed r6 + M file2 +r6 = 53cab50c796546f74af05fe0ae1413a3dade6561 (refs/remotes/git-svn) +No changes between b529e628c9c34eb7435936ad7ea43eef0caa8617 and refs/remotes/git-svn +Resetting to the latest refs/remotes/git-svn +ok 6 - dcommit does the svn equivalent of an index merge + +expecting success of 9106.7 'commit another change from svn side': + svn_cmd co "$svnrepo" t.svn && + ( + cd t.svn && + echo third line from svn >>file && + poke file && + svn_cmd commit -m "third line from svn" + ) && + rm -rf t.svn + +A t.svn/file +A t.svn/file2 +Checked out revision 6. +Sending file +Transmitting file data .done +Committing transaction... +Committed revision 7. +ok 7 - commit another change from svn side + +expecting success of 9106.8 'multiple dcommit from git svn will not clobber svn': + git reset --hard refs/remotes/git-svn && + echo new file >> new-file && + git update-index --add new-file && + git commit -a -m 'new file' && + echo clobber > file && + git commit -a -m 'clobber' && + test_must_fail git svn dcommit + +HEAD is now at 53cab50 more changes +[master 33e0dde] new file + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 new-file +[master 4a09cb8] clobber + Author: A U Thor + 1 file changed, 1 insertion(+), 4 deletions(-) +Committing to file:///build/git-2.30.2/t/trash%20directory.t9106-git-svn-commit-diff-clobber/svnrepo ... + A new-file +Committed r8 + M file +r7 = 48c9f1c9d2c1fca1672461ddd6731a93b55f4c29 (refs/remotes/git-svn) + A new-file +r8 = d83ca7d7c1e30e617caa687347b89f92c65d9740 (refs/remotes/git-svn) +W: 33e0ddeeaa07e2a85c2cfe0ad6ec88127e0550c1 and refs/remotes/git-svn differ, using rebase: +:100644 100644 b349877e032add143a5dc286d30e523181dea4ef fad4bec9888fc6883cc5a8447f365d44b8e4ebba M file +Rebasing (1/1) error: could not apply 4a09cb8... clobber +Resolve all conflicts manually, mark them as resolved with +"git add/rm ", then run "git rebase --continue". +You can instead skip this commit: run "git rebase --skip". +To abort and get back to the state before "git rebase", run "git rebase --abort". +Could not apply 4a09cb8... clobber +Auto-merging file +CONFLICT (content): Merge conflict in file +rebase refs/remotes/git-svn: command returned error: 1 + +ok 8 - multiple dcommit from git svn will not clobber svn + +expecting success of 9106.9 'check that rebase really failed': + git status >output && + grep currently.rebasing output + +You are currently rebasing branch 'master' on 'd83ca7d'. +ok 9 - check that rebase really failed + +expecting success of 9106.10 'resolve, continue the rebase and dcommit': + echo clobber and I really mean it > file && + git update-index file && + git rebase --continue && + git svn dcommit + +[detached HEAD ca67a85] clobber + Author: A U Thor + 1 file changed, 1 insertion(+), 5 deletions(-) + Successfully rebased and updated refs/heads/master. +Committing to file:///build/git-2.30.2/t/trash%20directory.t9106-git-svn-commit-diff-clobber/svnrepo ... + M file +Committed r9 + M file +r9 = c3335a56a92214036e415110a8ab6ec2e4325b88 (refs/remotes/git-svn) +No changes between ca67a85b323afbfa8cebfb50f355ca2415526f52 and refs/remotes/git-svn +Resetting to the latest refs/remotes/git-svn +ok 10 - resolve, continue the rebase and dcommit + +# passed all 10 test(s) +1..10 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t9100-git-svn-basic.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9100-git-svn-basic/.git/ # UTF-8 locale not set, some tests skipped (C) @@ -394552,7 +394685,7 @@ A exec.sh A foo A foo.link -r1 = 1be68914160fbb0daad1db17d3e25fffa5ef433f (refs/remotes/git-svn) +r1 = 7901155b8d11438458a8b13afb6d060a83a5d9e9 (refs/remotes/git-svn) Checked out HEAD: file:///build/git-2.30.2/t/trash%20directory.t9100-git-svn-basic/svnrepo r1 ok 4 - import an SVN revision into git @@ -394584,7 +394717,7 @@ svn_cmd up "$SVN_TREE" && test -d "$SVN_TREE"/dir && test ! -d "$SVN_TREE"/dir/a Switched to a new branch 'mybranch' -[mybranch b40b4fc] try a deep --rmdir with a commit +[mybranch 6d0f5ed] try a deep --rmdir with a commit Author: A U Thor 2 files changed, 1 insertion(+) rename dir/{a/b/c/d/e => }/file (100%) @@ -394601,7 +394734,7 @@ A dir/file A file W: -empty_dir: dir/a -r2 = 70ab44664309aa3a5d90d25a27f098925ee6efd1 (refs/remotes/git-svn) +r2 = 8ae5ae2e513371d42db04eae17749efc3fca93fa (refs/remotes/git-svn) Done committing 1 revisions to SVN Updating '.git/svn/refs/remotes/git-svn/svn-tree': D .git/svn/refs/remotes/git-svn/svn-tree/dir/a @@ -394620,7 +394753,7 @@ test_must_fail git svn set-tree --find-copies-harder --rmdir \ remotes/git-svn..mybranch -[mybranch 2068cfe] detect node change from file to directory #1 +[mybranch 3737658] detect node change from file to directory #1 Author: A U Thor 1 file changed, 0 insertions(+), 0 deletions(-) rename dir/{ => file}/file (100%) @@ -394640,7 +394773,7 @@ remotes/git-svn..mybranch2 Switched to a new branch 'mybranch2' -[mybranch2 10ba7f0] detect node change from directory to file #1 +[mybranch2 21f19d8] detect node change from directory to file #1 Author: A U Thor 1 file changed, 0 insertions(+), 0 deletions(-) rename bar/zzz => bar (100%) @@ -394664,7 +394797,7 @@ test -e "$SVN_TREE"/bar/zzz/yyy Switched to a new branch 'mybranch3' -[mybranch3 584a562] detect node change from file to directory #2 +[mybranch3 1b23e80] detect node change from file to directory #2 Author: A U Thor 2 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 bar/zzz @@ -394673,7 +394806,7 @@ A bar/zzz/yyy D bar/zzz A bar/zzz/yyy -r3 = b1866648d17ec00a090472b05171dcf908e70fb0 (refs/remotes/git-svn) +r3 = 3af8f03c4bb43771de815888ebc90f038f27cf87 (refs/remotes/git-svn) Done committing 1 revisions to SVN Updating '.git/svn/refs/remotes/git-svn/svn-tree': D .git/svn/refs/remotes/git-svn/svn-tree/bar/zzz @@ -394695,13 +394828,13 @@ remotes/git-svn..mybranch4 Switched to a new branch 'mybranch4' -[mybranch4 300842d] detect node change from directory to file #2 +[mybranch4 fcf5797] detect node change from directory to file #2 Author: A U Thor 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 dir delete mode 100644 dir/file D dir/file -Item already exists in filesystem: File already exists: filesystem '505c6830-aa77-4bd6-9bc8-eb34515339b3', transaction '3-5', path '/dir' at /build/git-2.30.2/perl/build/lib/Git/SVN.pm line 2079. +Item already exists in filesystem: File already exists: filesystem 'dee9928a-fb00-4061-90be-06d40a51ad2f', transaction '3-5', path '/dir' at /build/git-2.30.2/perl/build/lib/Git/SVN.pm line 2079. ok 10 - detect node change from directory to file #2 @@ -394716,13 +394849,13 @@ svn_cmd up "$SVN_TREE" && test ! -x "$SVN_TREE"/exec.sh Switched to a new branch 'mybranch5' -[mybranch5 0df256c] remove executable bit from a file +[mybranch5 24ba202] remove executable bit from a file Author: A U Thor 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 exec.sh M exec.sh M exec.sh -r4 = 43cb26cd0d67ce5e141dc7a8a87ad03b6f4cb44e (refs/remotes/git-svn) +r4 = be6a8ec2c6e94d8d3dbfc4152b6ebe2586aa4196 (refs/remotes/git-svn) Done committing 1 revisions to SVN Updating '.git/svn/refs/remotes/git-svn/svn-tree': U .git/svn/refs/remotes/git-svn/svn-tree/exec.sh @@ -394737,13 +394870,13 @@ remotes/git-svn..mybranch5 && svn_cmd up "$SVN_TREE" && test -x "$SVN_TREE"/exec.sh -[mybranch5 163f95c] add executable bit back file +[mybranch5 b9cd05e] add executable bit back file Author: A U Thor 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 exec.sh M exec.sh M exec.sh -r5 = 5bbf3dcfa65a6a896cc0b9d1542e83af227ac6c2 (refs/remotes/git-svn) +r5 = 52e050184161660d75794d4174c83789cb22045a (refs/remotes/git-svn) Done committing 1 revisions to SVN Updating '.git/svn/refs/remotes/git-svn/svn-tree': U .git/svn/refs/remotes/git-svn/svn-tree/exec.sh @@ -394769,7 +394902,7 @@ remotes/git-svn..mybranch5 && svn_cmd up "$SVN_TREE" && test -h "$SVN_TREE"/exec.sh -[mybranch5 525cb6f] executable file becomes a symlink to file +[mybranch5 d2c1144] executable file becomes a symlink to file Author: A U Thor 1 file changed, 1 insertion(+), 1 deletion(-) rewrite exec.sh (100%) @@ -394779,7 +394912,7 @@ D exec.sh A exec.sh W: -empty_dir: exec.sh -r6 = 9a396e629f188553e30da4e2495d6593a2d7a17f (refs/remotes/git-svn) +r6 = 594cb3cba1d95a7033489c990ec3081a15f77232 (refs/remotes/git-svn) Done committing 1 revisions to SVN Updating '.git/svn/refs/remotes/git-svn/svn-tree': D .git/svn/refs/remotes/git-svn/svn-tree/exec.sh @@ -394797,7 +394930,7 @@ svn_cmd up "$SVN_TREE" && test -x "$SVN_TREE"/file && test -h "$SVN_TREE"/exec-2.sh -[mybranch5 a35dde8] new symlink is added to a file that was also just made executable +[mybranch5 f13186d] new symlink is added to a file that was also just made executable Author: A U Thor 2 files changed, 1 insertion(+) create mode 120000 exec-2.sh @@ -394806,7 +394939,7 @@ M file A exec-2.sh M file -r7 = 05527c0d66ec39020e553280f4bb97cbdd4e3077 (refs/remotes/git-svn) +r7 = a4411e64c29d3bdb4ad1e0402393b9e844c6955b (refs/remotes/git-svn) Done committing 1 revisions to SVN Updating '.git/svn/refs/remotes/git-svn/svn-tree': A .git/svn/refs/remotes/git-svn/svn-tree/exec-2.sh @@ -394826,7 +394959,7 @@ test -f "$SVN_TREE"/exec-2.sh && test ! -h "$SVN_TREE"/exec-2.sh && test_cmp help "$SVN_TREE"/exec-2.sh -[mybranch5 4128150] modify a symlink to become a file +[mybranch5 0ec2561] modify a symlink to become a file Author: A U Thor 1 file changed, 1 insertion(+), 1 deletion(-) rewrite exec-2.sh (100%) @@ -394836,7 +394969,7 @@ D exec-2.sh A exec-2.sh W: -empty_dir: exec-2.sh -r8 = def2f4c4775e554224b1a91d8fc549db5d1f55b8 (refs/remotes/git-svn) +r8 = dcf26570e72206f2f2b6c1bf23dec34bb3bd837a (refs/remotes/git-svn) Done committing 1 revisions to SVN Updating '.git/svn/refs/remotes/git-svn/svn-tree': D .git/svn/refs/remotes/git-svn/svn-tree/exec-2.sh @@ -394857,31 +394990,31 @@ A exec.sh A foo A foo.link -r1 = 1be68914160fbb0daad1db17d3e25fffa5ef433f (refs/remotes/alt) +r1 = 7901155b8d11438458a8b13afb6d060a83a5d9e9 (refs/remotes/alt) D dir/a/b/c/d/e/file D dir/a/ A dir/file A file W: -empty_dir: dir/a -r2 = 3ce7622f06587de8abbb40f023bee1744039eab8 (refs/remotes/alt) +r2 = 1f7ca9e567963cf78a3a82d6d47cfd9a4eb29e82 (refs/remotes/alt) D bar/zzz A bar/zzz/yyy -r3 = 8a771a15233573317e6951be7106af1ba5a0ad0f (refs/remotes/alt) +r3 = 86a88866bd89b0b479be74ecf138d4f5efab6807 (refs/remotes/alt) M exec.sh -r4 = fddca84536bbd383c8c26a7a2d2ec55f5f23865a (refs/remotes/alt) +r4 = 0336dafd4136b2db63be0ed4f9216a41f5aa4220 (refs/remotes/alt) M exec.sh -r5 = 1dcd8843717bc2e523463ae1599259bc917d942b (refs/remotes/alt) +r5 = cbfe2bdae4a5092886544a46844feb26e61800fd (refs/remotes/alt) D exec.sh A exec.sh W: -empty_dir: exec.sh -r6 = 804b64d62807e829442494e8dcf17c5f97c708ae (refs/remotes/alt) +r6 = 4abda7c2ed2bf571275b5b6764fb447e6cf267f1 (refs/remotes/alt) A exec-2.sh M file -r7 = ba3085d2268c10a0884c42d0e9d346c61c4ec9ad (refs/remotes/alt) +r7 = 7aa0962e158074bf2e9351187bb2d5235e2cc0f2 (refs/remotes/alt) D exec-2.sh A exec-2.sh W: -empty_dir: exec-2.sh -r8 = fc061548935bf71924c4e839eb4225f3faa818ea (refs/remotes/alt) +r8 = ab3edf929fd19a8c57f869a704d7349c81756bf1 (refs/remotes/alt) ok 17 - test fetch functionality (svn => git) with alternate GIT_SVN_ID expecting success of 9100.18 'check imported tree checksums expected tree checksums': @@ -394948,30 +395081,30 @@ git branch -D my-bar A zzz -r1 = cc495114398db55ea23fd52c8c5f977248246116 (refs/remotes/bar) +r1 = 75a954106c1caa22554d39a84a4a3a431db73f19 (refs/remotes/bar) D zzz A zzz/yyy -r3 = 761aa354abbf0f0a69c42aa70b0cc1e96d432cdf (refs/remotes/bar) +r3 = 604e791ffe5b573f352a432eb3d560f446f54784 (refs/remotes/bar) Switched to a new branch 'my-bar' -[my-bar e9cf48e] change 1 +[my-bar 4e18d2e] change 1 Author: A U Thor 1 file changed, 1 insertion(+) create mode 100644 foo -[my-bar ee1b32d] change 2 +[my-bar 452d650] change 2 Author: A U Thor 1 file changed, 1 insertion(+), 1 deletion(-) Committing to file:///build/git-2.30.2/t/trash%20directory.t9100-git-svn-basic/svnrepo/bar ... A foo Committed r9 A foo -r9 = 767613d76229807379cf1e0271f7f765d5a5bb45 (refs/remotes/bar) -No changes between e9cf48e66d00412fe89e7ec452779575bc41172a and refs/remotes/bar +r9 = fe8bc894ed3edc8c16089a882e2bf32344573d29 (refs/remotes/bar) +No changes between 4e18d2e53bf24fde5af6d2fd151d4f2623f684cb and refs/remotes/bar Resetting to the latest refs/remotes/bar dcommitted on a detached HEAD because you gave a revision argument. -The rewritten commit is: 767613d76229807379cf1e0271f7f765d5a5bb45 +The rewritten commit is: fe8bc894ed3edc8c16089a882e2bf32344573d29 change 1 Switched to branch 'master' -Deleted branch my-bar (was ee1b32d). +Deleted branch my-bar (was 452d650). ok 22 - dcommit $rev does not clobber current branch expecting success of 9100.23 'able to dcommit to a subdirectory': @@ -394995,9 +395128,9 @@ test -z "$(git diff refs/heads/my-bar refs/remotes/bar)" A bar/foo -r9 = 30a46b45fd7c4bc6c7835e72142b8cc1cafcb8b5 (refs/remotes/alt) +r9 = c917ea1ee6723efbfc6534b3c2cb6694c510b2c2 (refs/remotes/alt) Switched to a new branch 'my-bar' -[my-bar c182573] /bar/d should be in the log +[my-bar a3d0f22] /bar/d should be in the log Author: A U Thor 1 file changed, 1 insertion(+) create mode 100644 d @@ -395005,10 +395138,10 @@ A d Committed r10 A d -r10 = db22dbcb7d15ab5a0c832f2cc4ae29d3e86890cf (refs/remotes/bar) -No changes between c182573d6cf7c77a0d60f4bfe03a4ee8230e70b3 and refs/remotes/bar +r10 = 9023cc4ecbda47d8f511097f837ccc344f903f94 (refs/remotes/bar) +No changes between a3d0f22706271c775e80b5075c63b7dabcf94907 and refs/remotes/bar Resetting to the latest refs/remotes/bar -[my-bar 06dfaa6] add a new directory +[my-bar 8a221ef] add a new directory Author: A U Thor 1 file changed, 1 insertion(+) create mode 100644 newdir/dir @@ -395016,18 +395149,18 @@ A newdir/dir Committed r11 A newdir/dir -r11 = 861c507a925d9a0e302bcf04d16b7a6f7024c011 (refs/remotes/bar) -No changes between 06dfaa6e77ac3edf108bfbb4896575be60f061fc and refs/remotes/bar +r11 = 19bae4afab5596a62d0dd1cd94f8eb2b60437a8b (refs/remotes/bar) +No changes between 8a221ef3d673cbb44f256faeb40e6106a5a2756d and refs/remotes/bar Resetting to the latest refs/remotes/bar -[my-bar fb086e6] modify a file in new directory +[my-bar 5a0c9c4] modify a file in new directory Author: A U Thor 1 file changed, 1 insertion(+) Committing to file:///build/git-2.30.2/t/trash%20directory.t9100-git-svn-basic/svnrepo/bar ... M newdir/dir Committed r12 M newdir/dir -r12 = f3e53703dbee35f4a417a71c673e48cb8f6aaa9d (refs/remotes/bar) -No changes between fb086e6d671847f6b941cb430ba85e6f52c1f6a4 and refs/remotes/bar +r12 = a602626afca035080f2936e900bed82b63de9daf (refs/remotes/bar) +No changes between 5a0c9c4d3abe39437284a252826654cafd8c9687 and refs/remotes/bar Resetting to the latest refs/remotes/bar ok 23 - able to dcommit to a subdirectory @@ -395036,1445 +395169,171 @@ test-tool chmtime =-60 foo && git svn dcommit -[my-bar 9a0aa32] commit-new-file-foo2 +[my-bar 0b45539] commit-new-file-foo2 Author: A U Thor 1 file changed, 1 insertion(+) create mode 100644 foo2 Committing to file:///build/git-2.30.2/t/trash%20directory.t9100-git-svn-basic/svnrepo/bar ... A foo2 Committed r13 - A foo2 -r13 = abf9092f54b0f9f3e5ac22a47c1fce6adb857950 (refs/remotes/bar) -No changes between 9a0aa32926eec1a11c559eb49b3fc03745a9d21b and refs/remotes/bar -Resetting to the latest refs/remotes/bar -ok 24 - dcommit should not fail with a touched file - -expecting success of 9100.25 'rebase should not fail with a touched file': - test-tool chmtime =-60 foo && - git svn rebase - -Current branch my-bar is up to date. -ok 25 - rebase should not fail with a touched file - -expecting success of 9100.26 'able to set-tree to a subdirectory': - echo cba > d && - git update-index d && - git commit -m "update /bar/d" && - git svn set-tree -i bar HEAD && - test -z "$(git diff refs/heads/my-bar refs/remotes/bar)" - -[my-bar 9cd8092] update /bar/d - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) - M d - M d -r14 = 9a46e35e52d5ced8b14724db55ad54eeffd0ce2f (refs/remotes/bar) -Done committing 1 revisions to SVN -ok 26 - able to set-tree to a subdirectory - -expecting success of 9100.27 'git-svn works in a bare repository': - mkdir bare-repo && - ( cd bare-repo && - git init --bare && - GIT_DIR=. git svn init "$svnrepo" && - git svn fetch ) && - rm -rf bare-repo - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9100-git-svn-basic/bare-repo/ - A bar/zzz - A dir/a/b/c/d/e/file - A exec.sh - A foo - A foo.link -r1 = 1be68914160fbb0daad1db17d3e25fffa5ef433f (refs/remotes/alt) - D dir/a/b/c/d/e/file - D dir/a/ - A dir/file - A file -W: -empty_dir: dir/a -r2 = 3ce7622f06587de8abbb40f023bee1744039eab8 (refs/remotes/alt) - D bar/zzz - A bar/zzz/yyy -r3 = 8a771a15233573317e6951be7106af1ba5a0ad0f (refs/remotes/alt) - M exec.sh -r4 = fddca84536bbd383c8c26a7a2d2ec55f5f23865a (refs/remotes/alt) - M exec.sh -r5 = 1dcd8843717bc2e523463ae1599259bc917d942b (refs/remotes/alt) - D exec.sh - A exec.sh -W: -empty_dir: exec.sh -r6 = 804b64d62807e829442494e8dcf17c5f97c708ae (refs/remotes/alt) - A exec-2.sh - M file -r7 = ba3085d2268c10a0884c42d0e9d346c61c4ec9ad (refs/remotes/alt) - D exec-2.sh - A exec-2.sh -W: -empty_dir: exec-2.sh -r8 = fc061548935bf71924c4e839eb4225f3faa818ea (refs/remotes/alt) - A bar/foo -r9 = 30a46b45fd7c4bc6c7835e72142b8cc1cafcb8b5 (refs/remotes/alt) - A bar/d -r10 = 4171e4cff360262b0cfd935f816f8730ac60a4a8 (refs/remotes/alt) - A bar/newdir/dir -r11 = b183538533ebaae96728369004d09a6e355193ca (refs/remotes/alt) - M bar/newdir/dir -r12 = 7d6a3482e8292557197b09c17aad6fb6fc584670 (refs/remotes/alt) - A bar/foo2 -r13 = 8e77417e3ea734551532e352b8ed614d6c0c4f80 (refs/remotes/alt) - M bar/d -r14 = f6fc45b81b873da43db0414353a1880cdb977abb (refs/remotes/alt) -ok 27 - git-svn works in a bare repository - -expecting success of 9100.28 'git-svn works in in a repository with a gitdir: link': - mkdir worktree gitdir && - ( cd worktree && - git svn init "$svnrepo" && - git init --separate-git-dir ../gitdir && - git svn fetch ) && - rm -rf worktree gitdir - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9100-git-svn-basic/worktree/.git/ -Reinitialized existing Git repository in /build/git-2.30.2/t/trash directory.t9100-git-svn-basic/gitdir/ - A bar/zzz - A dir/a/b/c/d/e/file - A exec.sh - A foo - A foo.link -r1 = 1be68914160fbb0daad1db17d3e25fffa5ef433f (refs/remotes/alt) - D dir/a/b/c/d/e/file - D dir/a/ - A dir/file - A file -W: -empty_dir: dir/a -r2 = 3ce7622f06587de8abbb40f023bee1744039eab8 (refs/remotes/alt) - D bar/zzz - A bar/zzz/yyy -r3 = 8a771a15233573317e6951be7106af1ba5a0ad0f (refs/remotes/alt) - M exec.sh -r4 = fddca84536bbd383c8c26a7a2d2ec55f5f23865a (refs/remotes/alt) - M exec.sh -r5 = 1dcd8843717bc2e523463ae1599259bc917d942b (refs/remotes/alt) - D exec.sh - A exec.sh -W: -empty_dir: exec.sh -r6 = 804b64d62807e829442494e8dcf17c5f97c708ae (refs/remotes/alt) - A exec-2.sh - M file -r7 = ba3085d2268c10a0884c42d0e9d346c61c4ec9ad (refs/remotes/alt) - D exec-2.sh - A exec-2.sh -W: -empty_dir: exec-2.sh -r8 = fc061548935bf71924c4e839eb4225f3faa818ea (refs/remotes/alt) - A bar/foo -r9 = 30a46b45fd7c4bc6c7835e72142b8cc1cafcb8b5 (refs/remotes/alt) - A bar/d -r10 = 4171e4cff360262b0cfd935f816f8730ac60a4a8 (refs/remotes/alt) - A bar/newdir/dir -r11 = b183538533ebaae96728369004d09a6e355193ca (refs/remotes/alt) - M bar/newdir/dir -r12 = 7d6a3482e8292557197b09c17aad6fb6fc584670 (refs/remotes/alt) - A bar/foo2 -r13 = 8e77417e3ea734551532e352b8ed614d6c0c4f80 (refs/remotes/alt) - M bar/d -r14 = f6fc45b81b873da43db0414353a1880cdb977abb (refs/remotes/alt) -ok 28 - git-svn works in in a repository with a gitdir: link - -# passed all 28 test(s) -1..28 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t9105-git-svn-commit-diff.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9105-git-svn-commit-diff/.git/ -expecting success of 9105.1 'initialize repo': - mkdir import && - ( - cd import && - echo hello >readme && - svn_cmd import -m "initial" . "$svnrepo" - ) && - echo hello > readme && - git update-index --add readme && - git commit -a -m "initial" && - echo world >> readme && - git commit -a -m "another" - -Adding readme -Committing transaction... -Committed revision 1. -[master (root-commit) ecebef3] initial - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 readme -[master 32e6dbc] another - Author: A U Thor - 1 file changed, 1 insertion(+) -ok 1 - initialize repo - -expecting success of 9105.2 'test the commit-diff command': - test -n "$prev" && test -n "$head" && - git svn commit-diff -r1 "$prev" "$head" "$svnrepo" && - svn_cmd co "$svnrepo" wc && - cmp readme wc/readme - - M readme -Committed r2 -A wc/readme -Checked out revision 2. -ok 2 - test the commit-diff command - -expecting success of 9105.3 'commit-diff to a sub-directory (with git svn config)': - svn_cmd import -m "sub-directory" import "$svnrepo"/subdir && - git svn init --minimize-url "$svnrepo"/subdir && - git svn fetch && - git svn commit-diff -r3 "$prev" "$head" && - svn_cmd cat "$svnrepo"/subdir/readme > readme.2 && - cmp readme readme.2 - -Adding import/readme -Committing transaction... -Committed revision 3. -Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9105-git-svn-commit-diff/svnrepo/subdir => file:///build/git-2.30.2/t/trash%20directory.t9105-git-svn-commit-diff/svnrepo - A readme -r3 = 9a0fbede053628c0c452a54bd64220db410fd270 (refs/remotes/git-svn) - M readme -Committed r4 -ok 3 - commit-diff to a sub-directory (with git svn config) - -# passed all 3 test(s) -1..3 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t9106-git-svn-commit-diff-clobber.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9106-git-svn-commit-diff-clobber/.git/ -expecting success of 9106.1 'initialize repo': - mkdir import && - ( - cd import && - echo initial >file && - svn_cmd import -m "initial" . "$svnrepo" - ) && - echo initial > file && - git update-index --add file && - git commit -a -m "initial" - -Adding file -Committing transaction... -Committed revision 1. -[master (root-commit) 8d59b1f] initial - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -ok 1 - initialize repo - -expecting success of 9106.2 'commit change from svn side': - svn_cmd co "$svnrepo" t.svn && - ( - cd t.svn && - echo second line from svn >>file && - poke file && - svn_cmd commit -m "second line from svn" - ) && - rm -rf t.svn - -A t.svn/file -Checked out revision 1. -Sending file -Transmitting file data .done -Committing transaction... -Committed revision 2. -ok 2 - commit change from svn side - -expecting success of 9106.3 'commit conflicting change from git': - echo second line from git >> file && - git commit -a -m "second line from git" && - test_must_fail git svn commit-diff -r1 HEAD~1 HEAD "$svnrepo" - -[master 62e39e5] second line from git - Author: A U Thor - 1 file changed, 1 insertion(+) -Transaction is out of date: File '/file' is out of date at /build/git-2.30.2/git-svn line 1546. - -ok 3 - commit conflicting change from git - -expecting success of 9106.4 'commit complementing change from git': - git reset --hard HEAD~1 && - echo second line from svn >> file && - git commit -a -m "second line from svn" && - echo third line from git >> file && - git commit -a -m "third line from git" && - git svn commit-diff -r2 HEAD~1 HEAD "$svnrepo" - -HEAD is now at 8d59b1f initial -[master 3494a8f] second line from svn - Author: A U Thor - 1 file changed, 1 insertion(+) -[master 57507a0] third line from git - Author: A U Thor - 1 file changed, 1 insertion(+) - M file -Committed r3 -ok 4 - commit complementing change from git - -expecting success of 9106.5 'dcommit fails to commit because of conflict': - git svn init "$svnrepo" && - git svn fetch && - git reset --hard refs/remotes/git-svn && - svn_cmd co "$svnrepo" t.svn && - ( - cd t.svn && - echo fourth line from svn >>file && - poke file && - svn_cmd commit -m "fourth line from svn" - ) && - rm -rf t.svn && - echo "fourth line from git" >> file && - git commit -a -m "fourth line from git" && - test_must_fail git svn dcommit - - A file -r1 = 15c4a1a5092f51d2c656cd130457201485246374 (refs/remotes/git-svn) - M file -r2 = 7ebf5d4c4695e660e85d2efbd8bac14976f535cd (refs/remotes/git-svn) - M file -r3 = b74f86ee0b37974c50de8c5f51000f43ee64f983 (refs/remotes/git-svn) -HEAD is now at b74f86e third line from git -A t.svn/file -Checked out revision 3. -Sending file -Transmitting file data .done -Committing transaction... -Committed revision 4. -[master b8e891e] fourth line from git - Author: A U Thor - 1 file changed, 1 insertion(+) -Committing to file:///build/git-2.30.2/t/trash%20directory.t9106-git-svn-commit-diff-clobber/svnrepo ... - -ERROR from SVN: -Transaction is out of date: File '/file' is out of date -W: b8e891e1b90f361ac0b688d109a00cc3ef6c3898 and refs/remotes/git-svn differ, using rebase: -:100644 100644 faa34c792e6a485955b65cc9f20e8ab0dd63e45c d270188940c824ce4f1e8aa864ca5d2f8c75f939 M file -Current branch master is up to date. -ERROR: Not all changes have been committed into SVN, however the committed -ones (if any) seem to be successfully integrated into the working tree. -Please see the above messages for details. - -ok 5 - dcommit fails to commit because of conflict - -expecting success of 9106.6 'dcommit does the svn equivalent of an index merge': - git reset --hard refs/remotes/git-svn && - echo 'index merge' > file2 && - git update-index --add file2 && - git commit -a -m 'index merge' && - echo 'more changes' >> file2 && - git update-index file2 && - git commit -a -m 'more changes' && - git svn dcommit - -HEAD is now at b74f86e third line from git -[master c96dd2c] index merge - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file2 -[master 1a2e457] more changes - Author: A U Thor - 1 file changed, 1 insertion(+) -Committing to file:///build/git-2.30.2/t/trash%20directory.t9106-git-svn-commit-diff-clobber/svnrepo ... - A file2 -Committed r5 - M file -r4 = 44501824b8c8eae9f6bb87d46d1ecdb2e162b9d0 (refs/remotes/git-svn) - A file2 -r5 = 0b39a8e428e82f173897c2326ad3d97e6b4333a6 (refs/remotes/git-svn) -W: c96dd2c43da65b74e9654ac84612065008d90d63 and refs/remotes/git-svn differ, using rebase: -:100644 100644 d270188940c824ce4f1e8aa864ca5d2f8c75f939 b349877e032add143a5dc286d30e523181dea4ef M file -Rebasing (1/1) Successfully rebased and updated refs/heads/master. - M file2 -Committed r6 - M file2 -r6 = 1e9691b2b00452519523667afcbeefc4caf0445d (refs/remotes/git-svn) -No changes between e5b91cc539aecfe4061ae92546b66655fd2a49c4 and refs/remotes/git-svn -Resetting to the latest refs/remotes/git-svn -ok 6 - dcommit does the svn equivalent of an index merge - -expecting success of 9106.7 'commit another change from svn side': - svn_cmd co "$svnrepo" t.svn && - ( - cd t.svn && - echo third line from svn >>file && - poke file && - svn_cmd commit -m "third line from svn" - ) && - rm -rf t.svn - -A t.svn/file -A t.svn/file2 -Checked out revision 6. -Sending file -Transmitting file data .done -Committing transaction... -Committed revision 7. -ok 7 - commit another change from svn side - -expecting success of 9106.8 'multiple dcommit from git svn will not clobber svn': - git reset --hard refs/remotes/git-svn && - echo new file >> new-file && - git update-index --add new-file && - git commit -a -m 'new file' && - echo clobber > file && - git commit -a -m 'clobber' && - test_must_fail git svn dcommit - -HEAD is now at 1e9691b more changes -[master 8f1a5fc] new file - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 new-file -[master e338b8b] clobber - Author: A U Thor - 1 file changed, 1 insertion(+), 4 deletions(-) -Committing to file:///build/git-2.30.2/t/trash%20directory.t9106-git-svn-commit-diff-clobber/svnrepo ... - A new-file -Committed r8 - M file -r7 = aba1540ebd76a4f2e63011ea62f0a09b52472703 (refs/remotes/git-svn) - A new-file -r8 = 62cf5310a4adfb6b0e0d0058eca30da644905610 (refs/remotes/git-svn) -W: 8f1a5fcf0bcbcafd9f7bcf712281cf18ad618d84 and refs/remotes/git-svn differ, using rebase: -:100644 100644 b349877e032add143a5dc286d30e523181dea4ef fad4bec9888fc6883cc5a8447f365d44b8e4ebba M file -Rebasing (1/1) error: could not apply e338b8b... clobber -Resolve all conflicts manually, mark them as resolved with -"git add/rm ", then run "git rebase --continue". -You can instead skip this commit: run "git rebase --skip". -To abort and get back to the state before "git rebase", run "git rebase --abort". -Could not apply e338b8b... clobber -Auto-merging file -CONFLICT (content): Merge conflict in file -rebase refs/remotes/git-svn: command returned error: 1 - -ok 8 - multiple dcommit from git svn will not clobber svn - -expecting success of 9106.9 'check that rebase really failed': - git status >output && - grep currently.rebasing output - -You are currently rebasing branch 'master' on '62cf531'. -ok 9 - check that rebase really failed - -expecting success of 9106.10 'resolve, continue the rebase and dcommit': - echo clobber and I really mean it > file && - git update-index file && - git rebase --continue && - git svn dcommit - -[detached HEAD 05e15ec] clobber - Author: A U Thor - 1 file changed, 1 insertion(+), 5 deletions(-) - Successfully rebased and updated refs/heads/master. -Committing to file:///build/git-2.30.2/t/trash%20directory.t9106-git-svn-commit-diff-clobber/svnrepo ... - M file -Committed r9 - M file -r9 = fcdaf46a88c709e17f4966dbd848f82f9a22179f (refs/remotes/git-svn) -No changes between 05e15ecba4bb376993d8b0be649fc0cbb31a6aa7 and refs/remotes/git-svn -Resetting to the latest refs/remotes/git-svn -ok 10 - resolve, continue the rebase and dcommit - -# passed all 10 test(s) -1..10 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t9107-git-svn-migrate.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9107-git-svn-migrate/.git/ -expecting success of 9107.1 'setup old-looking metadata': - cp "$GIT_DIR"/config "$GIT_DIR"/config-old-git-svn && - mkdir import && - ( - cd import && - for i in trunk branches/a branches/b tags/0.1 tags/0.2 tags/0.3 - do - mkdir -p $i && - echo hello >>$i/README || - exit 1 - done && - svn_cmd import -m test . "$svnrepo" - ) && - git svn init "$svnrepo" && - git svn fetch && - rm -rf "$GIT_DIR"/svn && - git update-ref refs/heads/git-svn-HEAD refs/remotes/git-svn && - git update-ref refs/heads/svn-HEAD refs/remotes/git-svn && - git update-ref -d refs/remotes/git-svn refs/remotes/git-svn - -Adding branches -Adding branches/a -Adding branches/a/README -Adding branches/b -Adding branches/b/README -Adding tags -Adding tags/0.1 -Adding tags/0.1/README -Adding tags/0.2 -Adding tags/0.2/README -Adding tags/0.3 -Adding tags/0.3/README -Adding trunk -Adding trunk/README -Committing transaction... -Committed revision 1. - A branches/a/README - A branches/b/README - A tags/0.1/README - A tags/0.2/README - A tags/0.3/README - A trunk/README -r1 = f236bb66119dbd0f4adc47431fc41d82385ff15b (refs/remotes/git-svn) -Checked out HEAD: - file:///build/git-2.30.2/t/trash%20directory.t9107-git-svn-migrate/svnrepo r1 -ok 1 - setup old-looking metadata - -expecting success of 9107.2 'git-svn-HEAD is a real HEAD': - git rev-parse --verify refs/heads/git-svn-HEAD^0 - -f236bb66119dbd0f4adc47431fc41d82385ff15b -ok 2 - git-svn-HEAD is a real HEAD - -expecting success of 9107.3 'initialize old-style (v0) git svn layout': - mkdir -p "$GIT_DIR"/git-svn/info "$GIT_DIR"/svn/info && - echo "$svnrepo" > "$GIT_DIR"/git-svn/info/url && - echo "$svnrepo" > "$GIT_DIR"/svn/info/url && - git svn migrate && - ! test -d "$GIT_DIR"/git-svn && - git rev-parse --verify refs/remotes/git-svn^0 && - git rev-parse --verify refs/remotes/svn^0 && - test "$(git config --get svn-remote.svn.url)" = "$svnrepo_escaped" && - test $(git config --get svn-remote.svn.fetch) = \ - ":refs/remotes/git-svn" - -Migrating from v0 layout... -Renaming ref: refs/heads/git-svn-HEAD => refs/remotes/git-svn -Renaming ref: refs/heads/svn-HEAD => refs/remotes/svn -Done migrating from v0 layout... -Migrating from a git-svn v1 layout... -Data from a previous version of git-svn exists, but - .git/svn - (required for this version (2.30.2) of git-svn) does not exist. - - .git/git-svn => .git/svn/git-svn - - .git/svn/info => .git/svn/svn/info -Done migrating from a git-svn v1 layout -f236bb66119dbd0f4adc47431fc41d82385ff15b -f236bb66119dbd0f4adc47431fc41d82385ff15b -ok 3 - initialize old-style (v0) git svn layout - -expecting success of 9107.4 'initialize a multi-repository repo': - git svn init "$svnrepo" -T trunk -t tags -b branches && - git config --get-all svn-remote.svn.fetch > fetch.out && - grep "^trunk:refs/remotes/origin/trunk$" fetch.out && - test -n "$(git config --get svn-remote.svn.branches \ - "^branches/\*:refs/remotes/origin/\*$")" && - test -n "$(git config --get svn-remote.svn.tags \ - "^tags/\*:refs/remotes/origin/tags/\*$")" && - git config --unset svn-remote.svn.branches \ - "^branches/\*:refs/remotes/origin/\*$" && - git config --unset svn-remote.svn.tags \ - "^tags/\*:refs/remotes/origin/tags/\*$" && - git config --add svn-remote.svn.fetch "branches/a:refs/remotes/origin/a" && - git config --add svn-remote.svn.fetch "branches/b:refs/remotes/origin/b" && - for i in tags/0.1 tags/0.2 tags/0.3 - do - git config --add svn-remote.svn.fetch \ - $i:refs/remotes/origin/$i || return 1 - done && - git config --get-all svn-remote.svn.fetch > fetch.out && - grep "^trunk:refs/remotes/origin/trunk$" fetch.out && - grep "^branches/a:refs/remotes/origin/a$" fetch.out && - grep "^branches/b:refs/remotes/origin/b$" fetch.out && - grep "^tags/0\.1:refs/remotes/origin/tags/0\.1$" fetch.out && - grep "^tags/0\.2:refs/remotes/origin/tags/0\.2$" fetch.out && - grep "^tags/0\.3:refs/remotes/origin/tags/0\.3$" fetch.out && - grep "^:refs/remotes/git-svn" fetch.out - -Using existing [svn-remote "svn"] -trunk:refs/remotes/origin/trunk -trunk:refs/remotes/origin/trunk -branches/a:refs/remotes/origin/a -branches/b:refs/remotes/origin/b -tags/0.1:refs/remotes/origin/tags/0.1 -tags/0.2:refs/remotes/origin/tags/0.2 -tags/0.3:refs/remotes/origin/tags/0.3 -:refs/remotes/git-svn -ok 4 - initialize a multi-repository repo - -expecting success of 9107.5 'multi-fetch works on partial urls + paths': - refs="trunk a b tags/0.1 tags/0.2 tags/0.3" && - git svn multi-fetch && - for i in $refs - do - git rev-parse --verify refs/remotes/origin/$i^0 || return 1; - done >refs.out && - test -z "$(sort "$GIT_DIR"/svn/$ref/info/url || - return 1 - done && - git svn migrate --minimize && - test -z "$(git config -l | grep "^svn-remote\.git-svn\.")" && - git config --get-all svn-remote.svn.fetch > fetch.out && - grep "^trunk:refs/remotes/origin/trunk$" fetch.out && - grep "^branches/a:refs/remotes/origin/a$" fetch.out && - grep "^branches/b:refs/remotes/origin/b$" fetch.out && - grep "^tags/0\.1:refs/remotes/origin/tags/0\.1$" fetch.out && - grep "^tags/0\.2:refs/remotes/origin/tags/0\.2$" fetch.out && - grep "^tags/0\.3:refs/remotes/origin/tags/0\.3$" fetch.out && - grep "^:refs/remotes/git-svn" fetch.out - -Using existing [svn-remote "svn"] -Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9107-git-svn-migrate/svnrepo/branches/a => file:///build/git-2.30.2/t/trash%20directory.t9107-git-svn-migrate/svnrepo -Using existing [svn-remote "svn"] -Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9107-git-svn-migrate/svnrepo/branches/b => file:///build/git-2.30.2/t/trash%20directory.t9107-git-svn-migrate/svnrepo -Using existing [svn-remote "svn"] -Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9107-git-svn-migrate/svnrepo/tags/0.1 => file:///build/git-2.30.2/t/trash%20directory.t9107-git-svn-migrate/svnrepo -Using existing [svn-remote "svn"] -Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9107-git-svn-migrate/svnrepo/tags/0.2 => file:///build/git-2.30.2/t/trash%20directory.t9107-git-svn-migrate/svnrepo -Using existing [svn-remote "svn"] -Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9107-git-svn-migrate/svnrepo/tags/0.3 => file:///build/git-2.30.2/t/trash%20directory.t9107-git-svn-migrate/svnrepo -Using existing [svn-remote "svn"] -Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9107-git-svn-migrate/svnrepo/trunk => file:///build/git-2.30.2/t/trash%20directory.t9107-git-svn-migrate/svnrepo -trunk:refs/remotes/origin/trunk -branches/a:refs/remotes/origin/a -branches/b:refs/remotes/origin/b -tags/0.1:refs/remotes/origin/tags/0.1 -tags/0.2:refs/remotes/origin/tags/0.2 -tags/0.3:refs/remotes/origin/tags/0.3 -:refs/remotes/git-svn -ok 6 - migrate --minimize on old inited layout - -expecting success of 9107.7 '.rev_db auto-converted to .rev_map.UUID': - git svn fetch -i trunk && - test -z "$(ls "$GIT_DIR"/svn/refs/remotes/origin/trunk/.rev_db.* 2>/dev/null)" && - expect="$(ls "$GIT_DIR"/svn/refs/remotes/origin/trunk/.rev_map.*)" && - test -n "$expect" && - rev_db="$(echo $expect | sed -e "s,_map,_db,")" && - convert_to_rev_db "$expect" "$rev_db" && - rm -f "$expect" && - test -f "$rev_db" && - git svn fetch -i trunk && - test -z "$(ls "$GIT_DIR"/svn/refs/remotes/origin/trunk/.rev_db.* 2>/dev/null)" && - test ! -e "$GIT_DIR"/svn/refs/remotes/origin/trunk/.rev_db && - test -f "$expect" - -Rebuilding .git/svn/refs/remotes/git-svn/.rev_map.8b237cb1-c97c-453e-bcfa-005b1c3cd0d4 ... -r1 = f236bb66119dbd0f4adc47431fc41d82385ff15b -Done rebuilding .git/svn/refs/remotes/git-svn/.rev_map.8b237cb1-c97c-453e-bcfa-005b1c3cd0d4 -Rebuilding .git/svn/refs/remotes/origin/a/.rev_map.8b237cb1-c97c-453e-bcfa-005b1c3cd0d4 ... -r1 = d9e371ca0569bd14b1a2166ceedbbd78344763bf -Done rebuilding .git/svn/refs/remotes/origin/a/.rev_map.8b237cb1-c97c-453e-bcfa-005b1c3cd0d4 -Rebuilding .git/svn/refs/remotes/origin/b/.rev_map.8b237cb1-c97c-453e-bcfa-005b1c3cd0d4 ... -r1 = 611cf029684f9e4ef06f282506b6edae10f782d4 -Done rebuilding .git/svn/refs/remotes/origin/b/.rev_map.8b237cb1-c97c-453e-bcfa-005b1c3cd0d4 -Rebuilding .git/svn/refs/remotes/origin/tags/0.1/.rev_map.8b237cb1-c97c-453e-bcfa-005b1c3cd0d4 ... -r1 = 22d1fbb5df53d2cd8b982d32d9645f4b9106c655 -Done rebuilding .git/svn/refs/remotes/origin/tags/0.1/.rev_map.8b237cb1-c97c-453e-bcfa-005b1c3cd0d4 -Rebuilding .git/svn/refs/remotes/origin/tags/0.2/.rev_map.8b237cb1-c97c-453e-bcfa-005b1c3cd0d4 ... -r1 = 1a0f0e28f2e708d25ac0d7b59f8f25715e62dfe1 -Done rebuilding .git/svn/refs/remotes/origin/tags/0.2/.rev_map.8b237cb1-c97c-453e-bcfa-005b1c3cd0d4 -Rebuilding .git/svn/refs/remotes/origin/tags/0.3/.rev_map.8b237cb1-c97c-453e-bcfa-005b1c3cd0d4 ... -r1 = e4ff54eb3fde7fba8bccada905ed77f668f9aa11 -Done rebuilding .git/svn/refs/remotes/origin/tags/0.3/.rev_map.8b237cb1-c97c-453e-bcfa-005b1c3cd0d4 -Rebuilding .git/svn/refs/remotes/origin/trunk/.rev_map.8b237cb1-c97c-453e-bcfa-005b1c3cd0d4 ... -r1 = b77be8582334c5d0272a17512b657feecb396163 -Done rebuilding .git/svn/refs/remotes/origin/trunk/.rev_map.8b237cb1-c97c-453e-bcfa-005b1c3cd0d4 -Rebuilding .git/svn/refs/remotes/origin/trunk/.rev_map.8b237cb1-c97c-453e-bcfa-005b1c3cd0d4 ... -r1 = b77be8582334c5d0272a17512b657feecb396163 -Done rebuilding .git/svn/refs/remotes/origin/trunk/.rev_map.8b237cb1-c97c-453e-bcfa-005b1c3cd0d4 -ok 7 - .rev_db auto-converted to .rev_map.UUID - -# passed all 7 test(s) -1..7 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t9104-git-svn-follow-parent.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9104-git-svn-follow-parent/.git/ -expecting success of 9104.1 'initialize repo': - mkdir import && - ( - cd import && - mkdir -p trunk && - echo hello >trunk/readme && - svn_cmd import -m "initial" . "$svnrepo" - ) && - svn_cmd co "$svnrepo" wc && - ( - cd wc && - echo world >>trunk/readme && - poke trunk/readme && - svn_cmd commit -m "another commit" && - svn_cmd up && - svn_cmd mv trunk thunk && - echo goodbye >>thunk/readme && - poke thunk/readme && - svn_cmd commit -m "bye now" - ) - -Adding trunk -Adding trunk/readme -Committing transaction... -Committed revision 1. -A wc/trunk -A wc/trunk/readme -Checked out revision 1. -Sending trunk/readme -Transmitting file data .done -Committing transaction... -Committed revision 2. -Updating '.': -At revision 2. -A thunk -D trunk -D trunk/readme -Adding thunk -Sending thunk/readme -Deleting trunk -Transmitting file data .done -Committing transaction... -Committed revision 3. -ok 1 - initialize repo - -expecting success of 9104.2 'init and fetch a moved directory': - git svn init --minimize-url -i thunk "$svnrepo"/thunk && - git svn fetch -i thunk && - test "$(git rev-parse --verify refs/remotes/thunk@2)" \ - = "$(git rev-parse --verify refs/remotes/thunk~1)" && - git cat-file blob refs/remotes/thunk:readme >actual && - test "$(sed -n -e "3p" actual)" = goodbye && - test -z "$(git config --get svn-remote.svn.fetch \ - "^trunk:refs/remotes/thunk@2$")" - -Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/thunk => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/trunk => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/thunk, 2 -Initializing parent: refs/remotes/thunk@2 - A readme -r1 = 94add457f294c6cce3e80b0bd90c8a890f4e98d9 (refs/remotes/thunk@2) - M readme -r2 = 631b569045bd08873c4a9d9f8cf401a477c984e4 (refs/remotes/thunk@2) -Found branch parent: (refs/remotes/thunk) 631b569045bd08873c4a9d9f8cf401a477c984e4 -Following parent with do_switch - M readme -Successfully followed parent -r3 = 5c004ae1b5b704ff8d378430936113ae9f07971f (refs/remotes/thunk) -Checked out HEAD: - file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/thunk r3 -ok 2 - init and fetch a moved directory - -expecting success of 9104.3 'init and fetch from one svn-remote': - git config svn-remote.svn.url "$svnrepo" && - git config --add svn-remote.svn.fetch \ - trunk:refs/remotes/svn/trunk && - git config --add svn-remote.svn.fetch \ - thunk:refs/remotes/svn/thunk && - git svn fetch -i svn/thunk && - test "$(git rev-parse --verify refs/remotes/svn/trunk)" \ - = "$(git rev-parse --verify refs/remotes/svn/thunk~1)" && - git cat-file blob refs/remotes/svn/thunk:readme >actual && - test "$(sed -n -e "3p" actual)" = goodbye - - A readme -r1 = 94add457f294c6cce3e80b0bd90c8a890f4e98d9 (refs/remotes/svn/trunk) - M readme -r2 = 631b569045bd08873c4a9d9f8cf401a477c984e4 (refs/remotes/svn/trunk) -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/trunk => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/thunk, 2 -Found branch parent: (refs/remotes/svn/thunk) 631b569045bd08873c4a9d9f8cf401a477c984e4 -Following parent with do_switch - M readme -Successfully followed parent -r3 = 5c004ae1b5b704ff8d378430936113ae9f07971f (refs/remotes/svn/thunk) -ok 3 - init and fetch from one svn-remote - -expecting success of 9104.4 'follow deleted parent': - (svn_cmd cp -m "resurrecting trunk as junk" \ - "$svnrepo"/trunk@2 "$svnrepo"/junk || - svn cp -m "resurrecting trunk as junk" \ - -r2 "$svnrepo"/trunk "$svnrepo"/junk) && - git config --add svn-remote.svn.fetch \ - junk:refs/remotes/svn/junk && - git svn fetch -i svn/thunk && - git svn fetch -i svn/junk && - test -z "$(git diff svn/junk svn/trunk)" && - test "$(git merge-base svn/junk svn/trunk)" \ - = "$(git rev-parse svn/trunk)" - -Committing transaction... -Committed revision 4. -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/trunk => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/junk, 2 -Found branch parent: (refs/remotes/svn/junk) 631b569045bd08873c4a9d9f8cf401a477c984e4 -Following parent with do_switch -Successfully followed parent -r4 = 9d4c30e36aedbeaef83def56401cd56f69df1847 (refs/remotes/svn/junk) -ok 4 - follow deleted parent - -expecting success of 9104.5 'follow larger parent': - mkdir -p import/trunk/thunk/bump/thud && - echo hi > import/trunk/thunk/bump/thud/file && - svn import -m "import a larger parent" import "$svnrepo"/larger-parent && - svn cp -m "hi" "$svnrepo"/larger-parent "$svnrepo"/another-larger && - git svn init --minimize-url -i larger \ - "$svnrepo"/larger-parent/trunk/thunk/bump/thud && - git svn fetch -i larger && - git svn init --minimize-url -i larger-parent \ - "$svnrepo"/another-larger/trunk/thunk/bump/thud && - git svn fetch -i larger-parent && - git rev-parse --verify refs/remotes/larger && - git rev-parse --verify \ - refs/remotes/larger-parent && - test "$(git merge-base \ - refs/remotes/larger-parent \ - refs/remotes/larger)" = \ - "$(git rev-parse refs/remotes/larger)" - -Adding import/trunk -Adding import/trunk/readme -Adding import/trunk/thunk -Adding import/trunk/thunk/bump -Adding import/trunk/thunk/bump/thud -Adding import/trunk/thunk/bump/thud/file -Committing transaction... -Committed revision 5. -Committing transaction... -Committed revision 6. -Using existing [svn-remote "svn"] -Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/larger-parent/trunk/thunk/bump/thud => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo - A file -r5 = 36ed1dabcc7a21dda7a3ee95bb5998c3585690c8 (refs/remotes/larger) -Using existing [svn-remote "svn"] -Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/another-larger/trunk/thunk/bump/thud => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo -branch_from: /larger-parent => /larger-parent/trunk/thunk/bump/thud -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/larger-parent/trunk/thunk/bump/thud => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/another-larger/trunk/thunk/bump/thud, 5 -Found branch parent: (refs/remotes/larger-parent) 36ed1dabcc7a21dda7a3ee95bb5998c3585690c8 -Following parent with do_switch -Successfully followed parent -r6 = d90d864efc04aee8c9fff705ba501fc70370cf14 (refs/remotes/larger-parent) -36ed1dabcc7a21dda7a3ee95bb5998c3585690c8 -d90d864efc04aee8c9fff705ba501fc70370cf14 -ok 5 - follow larger parent - -expecting success of 9104.6 'follow higher-level parent': - svn mkdir -m "follow higher-level parent" "$svnrepo"/blob && - svn co "$svnrepo"/blob blob && - ( - cd blob && - echo hi > hi && - svn add hi && - svn commit -m "hihi" - ) && - svn mkdir -m "new glob at top level" "$svnrepo"/glob && - svn mv -m "move blob down a level" "$svnrepo"/blob "$svnrepo"/glob/blob && - git svn init --minimize-url -i blob "$svnrepo"/glob/blob && - git svn fetch -i blob - -Committing transaction... -Committed revision 7. -Checked out revision 7. -A hi -Adding hi -Transmitting file data .done -Committing transaction... -Committed revision 8. -Committing transaction... -Committed revision 9. -Committing transaction... -Committed revision 10. -Using existing [svn-remote "svn"] -Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/glob/blob => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/blob => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/glob/blob, 9 -Initializing parent: refs/remotes/blob@9 -r7 = b3e4bffad1281ed40cc5424f8d3da91cce325882 (refs/remotes/blob@9) - A hi -r8 = 7637518a7ace7e5f6070ed488fb40382b5887a81 (refs/remotes/blob@9) -Found branch parent: (refs/remotes/blob) 7637518a7ace7e5f6070ed488fb40382b5887a81 -Following parent with do_switch -Successfully followed parent -r10 = c25da18949bc8578a1c30ed85c1ff2c583fd275f (refs/remotes/blob) -ok 6 - follow higher-level parent - -expecting success of 9104.7 'follow deleted directory': - svn_cmd mv -m "bye!" "$svnrepo"/glob/blob/hi "$svnrepo"/glob/blob/bye && - svn_cmd rm -m "remove glob" "$svnrepo"/glob && - git svn init --minimize-url -i glob "$svnrepo"/glob && - git svn fetch -i glob && - test "$(git cat-file blob refs/remotes/glob:blob/bye)" = hi && - git ls-tree refs/remotes/glob >actual && - test_line_count = 1 actual - -Committing transaction... -Committed revision 11. -Committing transaction... -Committed revision 12. -Using existing [svn-remote "svn"] -Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/glob => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo -r9 = bd2f2545f7acc376a6e77b0dc74b422519e61435 (refs/remotes/glob) - A blob/hi -r10 = 0a89e9e1d7681b6f20c7a288609d4162d72e5872 (refs/remotes/glob) - D blob/hi - A blob/bye -W: -empty_dir: glob/blob/hi -r11 = 601720066f6c7b2b1e3d56462d7c0ac9565cd57e (refs/remotes/glob) - D hi - A bye -W: -empty_dir: glob/blob/hi -r11 = b8a1d4e2f007b937c955f267162b4c8ed322ddcd (refs/remotes/blob) -ok 7 - follow deleted directory - -expecting success of 9104.8 'follow-parent avoids deleting relevant info': - mkdir -p import/trunk/subversion/bindings/swig/perl/t && - for i in a b c ; do \ - echo $i > import/trunk/subversion/bindings/swig/perl/$i.pm && - echo _$i > import/trunk/subversion/bindings/swig/perl/t/$i.t; \ - done && - echo "bad delete test" > \ - import/trunk/subversion/bindings/swig/perl/t/larger-parent && - echo "bad delete test 2" > \ - import/trunk/subversion/bindings/swig/perl/another-larger && - ( - cd import && - svn import -m "r9270 test" . "$svnrepo"/r9270 - ) && - svn_cmd co "$svnrepo"/r9270/trunk/subversion/bindings/swig/perl r9270 && - ( - cd r9270 && - svn mkdir native && - svn mv t native/t && - for i in a b c - do - svn mv $i.pm native/$i.pm - done && - echo z >>native/t/c.t && - poke native/t/c.t && - svn commit -m "reorg test" - ) && - git svn init --minimize-url -i r9270-t \ - "$svnrepo"/r9270/trunk/subversion/bindings/swig/perl/native/t && - git svn fetch -i r9270-t && - test $(git rev-list r9270-t | wc -l) -eq 2 && - test "$(git ls-tree --name-only r9270-t~1)" = \ - "$(git ls-tree --name-only r9270-t)" - -Adding trunk -Adding trunk/readme -Adding trunk/subversion -Adding trunk/subversion/bindings -Adding trunk/subversion/bindings/swig -Adding trunk/subversion/bindings/swig/perl -Adding trunk/subversion/bindings/swig/perl/a.pm -Adding trunk/subversion/bindings/swig/perl/another-larger -Adding trunk/subversion/bindings/swig/perl/b.pm -Adding trunk/subversion/bindings/swig/perl/c.pm -Adding trunk/subversion/bindings/swig/perl/t -Adding trunk/subversion/bindings/swig/perl/t/a.t -Adding trunk/subversion/bindings/swig/perl/t/b.t -Adding trunk/subversion/bindings/swig/perl/t/c.t -Adding trunk/subversion/bindings/swig/perl/t/larger-parent -Adding trunk/thunk -Adding trunk/thunk/bump -Adding trunk/thunk/bump/thud -Adding trunk/thunk/bump/thud/file -Committing transaction... -Committed revision 13. -A r9270/a.pm -A r9270/another-larger -A r9270/b.pm -A r9270/c.pm -A r9270/t -A r9270/t/a.t -A r9270/t/b.t -A r9270/t/c.t -A r9270/t/larger-parent -Checked out revision 13. -A native -A native/t -D t -D t/a.t -D t/b.t -D t/c.t -D t/larger-parent -A native/a.pm -D a.pm -A native/b.pm -D b.pm -A native/c.pm -D c.pm -Deleting a.pm -Deleting b.pm -Deleting c.pm -Adding native -Adding native/a.pm -Adding native/b.pm -Adding native/c.pm -Adding native/t -Sending native/t/c.t -Deleting t -Transmitting file data .done -Committing transaction... -Committed revision 14. -Using existing [svn-remote "svn"] -Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/r9270/trunk/subversion/bindings/swig/perl/native/t => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/r9270/trunk/subversion/bindings/swig/perl/t => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/r9270/trunk/subversion/bindings/swig/perl/native/t, 13 -Initializing parent: refs/remotes/r9270-t@13 - A a.t - A b.t - A c.t - A larger-parent -r13 = f138e18b642eedf12b24a9afe5a579131a50764b (refs/remotes/r9270-t@13) -Found branch parent: (refs/remotes/r9270-t) f138e18b642eedf12b24a9afe5a579131a50764b -Following parent with do_switch - M c.t -Successfully followed parent -r14 = 02cb9d4f21f19426280a9b30319f405c719577eb (refs/remotes/r9270-t) -ok 8 - follow-parent avoids deleting relevant info - -expecting success of 9104.9 'track initial change if it was only made to parent': - svn_cmd cp -m "wheee!" "$svnrepo"/r9270/trunk "$svnrepo"/r9270/drunk && - git svn init --minimize-url -i r9270-d \ - "$svnrepo"/r9270/drunk/subversion/bindings/swig/perl/native/t && - git svn fetch -i r9270-d && - test $(git rev-list r9270-d | wc -l) -eq 3 && - test "$(git ls-tree --name-only r9270-t)" = \ - "$(git ls-tree --name-only r9270-d)" && - test "$(git rev-parse r9270-t)" = \ - "$(git rev-parse r9270-d~1)" - -Committing transaction... -Committed revision 15. -Using existing [svn-remote "svn"] -Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/r9270/drunk/subversion/bindings/swig/perl/native/t => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo -branch_from: /r9270/trunk => /r9270/trunk/subversion/bindings/swig/perl/native/t -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/r9270/trunk/subversion/bindings/swig/perl/native/t => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/r9270/drunk/subversion/bindings/swig/perl/native/t, 14 -Found branch parent: (refs/remotes/r9270-d) 02cb9d4f21f19426280a9b30319f405c719577eb -Following parent with do_switch -Successfully followed parent -r15 = 441022ee5eb4470e4157b9b596a3443a7d2d8d78 (refs/remotes/r9270-d) -ok 9 - track initial change if it was only made to parent - -expecting success of 9104.10 'follow-parent is atomic': - record_size=$(($(test_oid rawsz) + 4)) && - ( - cd wc && - svn_cmd up && - svn_cmd mkdir stunk && - echo "trunk stunk" > stunk/readme && - svn_cmd add stunk/readme && - svn_cmd ci -m "trunk stunk" && - echo "stunk like junk" >> stunk/readme && - svn_cmd ci -m "really stunk" && - echo "stink stank stunk" >> stunk/readme && - svn_cmd ci -m "even the grinch agrees" - ) && - svn_cmd copy -m "stunk flunked" "$svnrepo"/stunk "$svnrepo"/flunk && - { svn cp -m "early stunk flunked too" \ - "$svnrepo"/stunk@17 "$svnrepo"/flunked || - svn_cmd cp -m "early stunk flunked too" \ - -r17 "$svnrepo"/stunk "$svnrepo"/flunked; } && - git svn init --minimize-url -i stunk "$svnrepo"/stunk && - git svn fetch -i stunk && - git update-ref refs/remotes/flunk@18 refs/remotes/stunk~2 && - git update-ref -d refs/remotes/stunk && - git config --unset svn-remote.svn.fetch stunk && - mkdir -p "$GIT_DIR"/svn/refs/remotes/flunk@18 && - rev_map=$(cd "$GIT_DIR"/svn/refs/remotes/stunk && ls .rev_map*) && - dd if="$GIT_DIR"/svn/refs/remotes/stunk/$rev_map \ - of="$GIT_DIR"/svn/refs/remotes/flunk@18/$rev_map bs=$record_size count=1 && - rm -rf "$GIT_DIR"/svn/refs/remotes/stunk && - git svn init --minimize-url -i flunk "$svnrepo"/flunk && - git svn fetch -i flunk && - git svn init --minimize-url -i stunk "$svnrepo"/stunk && - git svn fetch -i stunk && - git svn init --minimize-url -i flunked "$svnrepo"/flunked && - git svn fetch -i flunked && - test "$(git rev-parse --verify refs/remotes/flunk@18)" \ - = "$(git rev-parse --verify refs/remotes/stunk)" && - test "$(git rev-parse --verify refs/remotes/flunk~1)" \ - = "$(git rev-parse --verify refs/remotes/stunk)" && - test "$(git rev-parse --verify refs/remotes/flunked~1)" \ - = "$(git rev-parse --verify refs/remotes/stunk~1)" - -Updating '.': -A another-larger -A another-larger/trunk -A another-larger/trunk/readme -A another-larger/trunk/thunk -A another-larger/trunk/thunk/bump -A another-larger/trunk/thunk/bump/thud -A another-larger/trunk/thunk/bump/thud/file -A junk -A junk/readme -A larger-parent -A larger-parent/trunk -A larger-parent/trunk/readme -A larger-parent/trunk/thunk -A larger-parent/trunk/thunk/bump -A larger-parent/trunk/thunk/bump/thud -A larger-parent/trunk/thunk/bump/thud/file -A r9270 -A r9270/drunk -A r9270/drunk/readme -A r9270/drunk/subversion -A r9270/drunk/subversion/bindings -A r9270/drunk/subversion/bindings/swig -A r9270/drunk/subversion/bindings/swig/perl -A r9270/drunk/subversion/bindings/swig/perl/another-larger -A r9270/drunk/subversion/bindings/swig/perl/native -A r9270/drunk/subversion/bindings/swig/perl/native/a.pm -A r9270/drunk/subversion/bindings/swig/perl/native/b.pm -A r9270/drunk/subversion/bindings/swig/perl/native/c.pm -A r9270/drunk/subversion/bindings/swig/perl/native/t -A r9270/drunk/subversion/bindings/swig/perl/native/t/a.t -A r9270/drunk/subversion/bindings/swig/perl/native/t/b.t -A r9270/drunk/subversion/bindings/swig/perl/native/t/c.t -A r9270/drunk/subversion/bindings/swig/perl/native/t/larger-parent -A r9270/drunk/thunk -A r9270/drunk/thunk/bump -A r9270/drunk/thunk/bump/thud -A r9270/drunk/thunk/bump/thud/file -A r9270/trunk -A r9270/trunk/readme -A r9270/trunk/subversion -A r9270/trunk/subversion/bindings -A r9270/trunk/subversion/bindings/swig -A r9270/trunk/subversion/bindings/swig/perl -A r9270/trunk/subversion/bindings/swig/perl/another-larger -A r9270/trunk/subversion/bindings/swig/perl/native -A r9270/trunk/subversion/bindings/swig/perl/native/a.pm -A r9270/trunk/subversion/bindings/swig/perl/native/b.pm -A r9270/trunk/subversion/bindings/swig/perl/native/c.pm -A r9270/trunk/subversion/bindings/swig/perl/native/t -A r9270/trunk/subversion/bindings/swig/perl/native/t/a.t -A r9270/trunk/subversion/bindings/swig/perl/native/t/b.t -A r9270/trunk/subversion/bindings/swig/perl/native/t/c.t -A r9270/trunk/subversion/bindings/swig/perl/native/t/larger-parent -A r9270/trunk/thunk -A r9270/trunk/thunk/bump -A r9270/trunk/thunk/bump/thud -A r9270/trunk/thunk/bump/thud/file -Updated to revision 15. -A stunk -A stunk/readme -Adding stunk -Adding stunk/readme -Transmitting file data .done -Committing transaction... -Committed revision 16. -Sending stunk/readme -Transmitting file data .done -Committing transaction... -Committed revision 17. -Sending stunk/readme -Transmitting file data .done -Committing transaction... -Committed revision 18. -Committing transaction... -Committed revision 19. -Committing transaction... -Committed revision 20. -Using existing [svn-remote "svn"] -Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/stunk => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo - A readme -r16 = 0529ae9034f251432564824009b4102481610007 (refs/remotes/stunk) - M readme -r17 = 3cf2ef18fb51edeff5e448b75c4a3dab9b90cfe2 (refs/remotes/stunk) - M readme -r18 = cbffff3cd11a4dbb044a4e00c67137bb6333bab2 (refs/remotes/stunk) -1+0 records in -1+0 records out -24 bytes copied, 0.000170743 s, 141 kB/s -Using existing [svn-remote "svn"] -Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/flunk => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/stunk => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/flunk, 18 -Initializing parent: refs/remotes/flunk@18 - M readme -r17 = 3cf2ef18fb51edeff5e448b75c4a3dab9b90cfe2 (refs/remotes/flunk@18) - M readme -r18 = cbffff3cd11a4dbb044a4e00c67137bb6333bab2 (refs/remotes/flunk@18) -Found branch parent: (refs/remotes/flunk) cbffff3cd11a4dbb044a4e00c67137bb6333bab2 -Following parent with do_switch -Successfully followed parent -r19 = 57f12ef6d89ee3331af8f4aca54e276cfd0581da (refs/remotes/flunk) -Using existing [svn-remote "svn"] -Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/stunk => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo - A readme -r16 = 0529ae9034f251432564824009b4102481610007 (refs/remotes/stunk) - M readme -r17 = 3cf2ef18fb51edeff5e448b75c4a3dab9b90cfe2 (refs/remotes/stunk) - M readme -r18 = cbffff3cd11a4dbb044a4e00c67137bb6333bab2 (refs/remotes/stunk) -Using existing [svn-remote "svn"] -Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/flunked => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/stunk => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/flunked, 17 -Found branch parent: (refs/remotes/flunked) 3cf2ef18fb51edeff5e448b75c4a3dab9b90cfe2 -Following parent with do_switch -Successfully followed parent -r20 = d5366c7c95aaa9dbc94d11f9ca2c69c0a29db806 (refs/remotes/flunked) -ok 10 - follow-parent is atomic + A foo2 +r13 = b31c45cfc75bdbb90adac0525c7e58f8824237d5 (refs/remotes/bar) +No changes between 0b4553927e5bb240e2e74e42f379f6b45e3f61ed and refs/remotes/bar +Resetting to the latest refs/remotes/bar +ok 24 - dcommit should not fail with a touched file -expecting success of 9104.11 'track multi-parent paths': - svn_cmd cp -m "resurrect /glob" "$svnrepo"/r9270 "$svnrepo"/glob && - git svn multi-fetch && - git cat-file commit refs/remotes/glob >actual && - grep "^parent " actual >actual2 && - test_line_count = 2 actual2 - -Committing transaction... -Committed revision 21. -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/r9270 => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/glob, 20 -Initializing parent: refs/remotes/glob@20 - A trunk/readme - A trunk/subversion/bindings/swig/perl/a.pm - A trunk/subversion/bindings/swig/perl/another-larger - A trunk/subversion/bindings/swig/perl/b.pm - A trunk/subversion/bindings/swig/perl/c.pm - A trunk/subversion/bindings/swig/perl/t/a.t - A trunk/subversion/bindings/swig/perl/t/b.t - A trunk/subversion/bindings/swig/perl/t/c.t - A trunk/subversion/bindings/swig/perl/t/larger-parent - A trunk/thunk/bump/thud/file -r13 = e45911a58fb04dd6c3a41fb54563956824280f99 (refs/remotes/glob@20) - D trunk/subversion/bindings/swig/perl/t/a.t - D trunk/subversion/bindings/swig/perl/t/b.t - D trunk/subversion/bindings/swig/perl/t/c.t - D trunk/subversion/bindings/swig/perl/t/larger-parent - D trunk/subversion/bindings/swig/perl/t/ - D trunk/subversion/bindings/swig/perl/a.pm - D trunk/subversion/bindings/swig/perl/b.pm - D trunk/subversion/bindings/swig/perl/c.pm - A trunk/subversion/bindings/swig/perl/native/a.pm - A trunk/subversion/bindings/swig/perl/native/b.pm - A trunk/subversion/bindings/swig/perl/native/c.pm - A trunk/subversion/bindings/swig/perl/native/t/a.t - A trunk/subversion/bindings/swig/perl/native/t/b.t - A trunk/subversion/bindings/swig/perl/native/t/c.t - A trunk/subversion/bindings/swig/perl/native/t/larger-parent -W: -empty_dir: r9270/trunk/subversion/bindings/swig/perl/a.pm -W: -empty_dir: r9270/trunk/subversion/bindings/swig/perl/b.pm -W: -empty_dir: r9270/trunk/subversion/bindings/swig/perl/c.pm -W: -empty_dir: r9270/trunk/subversion/bindings/swig/perl/t -r14 = 11daaa70b64f6567d447e0cd716eec6a3e6446b2 (refs/remotes/glob@20) - A drunk/readme - A drunk/subversion/bindings/swig/perl/another-larger - A drunk/subversion/bindings/swig/perl/native/a.pm - A drunk/subversion/bindings/swig/perl/native/b.pm - A drunk/subversion/bindings/swig/perl/native/c.pm - A drunk/subversion/bindings/swig/perl/native/t/a.t - A drunk/subversion/bindings/swig/perl/native/t/b.t - A drunk/subversion/bindings/swig/perl/native/t/c.t - A drunk/subversion/bindings/swig/perl/native/t/larger-parent - A drunk/thunk/bump/thud/file -r15 = 6e953b251243e5c740277d3ac2cb4d846923b332 (refs/remotes/glob@20) -Found branch parent: (refs/remotes/glob) 6e953b251243e5c740277d3ac2cb4d846923b332 -Index mismatch: 3cd9c37c278d8b60927f43385900d57622921efe != b80e441d0bfb8031c1110b908fb333507c1b9180 -rereading 6e953b251243e5c740277d3ac2cb4d846923b332 -Following parent with do_switch -Successfully followed parent -r21 = 715db2f64d4f38531296d0f7da8787de8a1e7e09 (refs/remotes/glob) -ok 11 - track multi-parent paths +expecting success of 9100.25 'rebase should not fail with a touched file': + test-tool chmtime =-60 foo && + git svn rebase -expecting success of 9104.12 'multi-fetch continues to work': - git svn multi-fetch +Current branch my-bar is up to date. +ok 25 - rebase should not fail with a touched file + +expecting success of 9100.26 'able to set-tree to a subdirectory': + echo cba > d && + git update-index d && + git commit -m "update /bar/d" && + git svn set-tree -i bar HEAD && + test -z "$(git diff refs/heads/my-bar refs/remotes/bar)" + +[my-bar c9d2055] update /bar/d + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) + M d + M d +r14 = ef29cb2144ac73380f119d5f66bb22ad29c4cc93 (refs/remotes/bar) +Done committing 1 revisions to SVN +ok 26 - able to set-tree to a subdirectory + +expecting success of 9100.27 'git-svn works in a bare repository': + mkdir bare-repo && + ( cd bare-repo && + git init --bare && + GIT_DIR=. git svn init "$svnrepo" && + git svn fetch ) && + rm -rf bare-repo -ok 12 - multi-fetch continues to work +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9100-git-svn-basic/bare-repo/ + A bar/zzz + A dir/a/b/c/d/e/file + A exec.sh + A foo + A foo.link +r1 = 7901155b8d11438458a8b13afb6d060a83a5d9e9 (refs/remotes/alt) + D dir/a/b/c/d/e/file + D dir/a/ + A dir/file + A file +W: -empty_dir: dir/a +r2 = 1f7ca9e567963cf78a3a82d6d47cfd9a4eb29e82 (refs/remotes/alt) + D bar/zzz + A bar/zzz/yyy +r3 = 86a88866bd89b0b479be74ecf138d4f5efab6807 (refs/remotes/alt) + M exec.sh +r4 = 0336dafd4136b2db63be0ed4f9216a41f5aa4220 (refs/remotes/alt) + M exec.sh +r5 = cbfe2bdae4a5092886544a46844feb26e61800fd (refs/remotes/alt) + D exec.sh + A exec.sh +W: -empty_dir: exec.sh +r6 = 4abda7c2ed2bf571275b5b6764fb447e6cf267f1 (refs/remotes/alt) + A exec-2.sh + M file +r7 = 7aa0962e158074bf2e9351187bb2d5235e2cc0f2 (refs/remotes/alt) + D exec-2.sh + A exec-2.sh +W: -empty_dir: exec-2.sh +r8 = ab3edf929fd19a8c57f869a704d7349c81756bf1 (refs/remotes/alt) + A bar/foo +r9 = c917ea1ee6723efbfc6534b3c2cb6694c510b2c2 (refs/remotes/alt) + A bar/d +r10 = 7833f6869ba3fd6dc95343cfc3269afc57d5f940 (refs/remotes/alt) + A bar/newdir/dir +r11 = f4b117d6b95cface6963cbe772da923ca82c9f2f (refs/remotes/alt) + M bar/newdir/dir +r12 = c35d459ca0fba57816cbebe255cbdd832917eac5 (refs/remotes/alt) + A bar/foo2 +r13 = 7fd8f511f121366508b45d7f1a00ef4f4a5c6697 (refs/remotes/alt) + M bar/d +r14 = de0a7e033c7f5aeb31bf4441b1224b32dfd3f41f (refs/remotes/alt) +ok 27 - git-svn works in a bare repository -expecting success of 9104.13 'multi-fetch works off a 'clean' repository': - rm -rf "$GIT_DIR/svn" && - git for-each-ref --format="option no-deref%0adelete %(refname)" refs/remotes | - git update-ref --stdin && - git reflog expire --all --expire=all && - mkdir "$GIT_DIR/svn" && - git svn multi-fetch +expecting success of 9100.28 'git-svn works in in a repository with a gitdir: link': + mkdir worktree gitdir && + ( cd worktree && + git svn init "$svnrepo" && + git init --separate-git-dir ../gitdir && + git svn fetch ) && + rm -rf worktree gitdir - A readme -r1 = 94add457f294c6cce3e80b0bd90c8a890f4e98d9 (refs/remotes/svn/trunk) - M readme -r2 = 631b569045bd08873c4a9d9f8cf401a477c984e4 (refs/remotes/svn/trunk) -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/trunk => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/thunk, 2 -Found branch parent: (refs/remotes/svn/thunk) 631b569045bd08873c4a9d9f8cf401a477c984e4 -Following parent with do_switch - M readme -Successfully followed parent -r3 = 5c004ae1b5b704ff8d378430936113ae9f07971f (refs/remotes/svn/thunk) -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/trunk => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/junk, 2 -Found branch parent: (refs/remotes/svn/junk) 631b569045bd08873c4a9d9f8cf401a477c984e4 -Following parent with do_switch -Successfully followed parent -r4 = 9d4c30e36aedbeaef83def56401cd56f69df1847 (refs/remotes/svn/junk) +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9100-git-svn-basic/worktree/.git/ +Reinitialized existing Git repository in /build/git-2.30.2/t/trash directory.t9100-git-svn-basic/gitdir/ + A bar/zzz + A dir/a/b/c/d/e/file + A exec.sh + A foo + A foo.link +r1 = 7901155b8d11438458a8b13afb6d060a83a5d9e9 (refs/remotes/alt) + D dir/a/b/c/d/e/file + D dir/a/ + A dir/file A file -r5 = 36ed1dabcc7a21dda7a3ee95bb5998c3585690c8 (refs/remotes/larger) -branch_from: /larger-parent => /larger-parent/trunk/thunk/bump/thud -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/larger-parent/trunk/thunk/bump/thud => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/another-larger/trunk/thunk/bump/thud, 5 -Found branch parent: (refs/remotes/larger-parent) 36ed1dabcc7a21dda7a3ee95bb5998c3585690c8 -Following parent with do_switch -Successfully followed parent -r6 = d90d864efc04aee8c9fff705ba501fc70370cf14 (refs/remotes/larger-parent) -r9 = bd2f2545f7acc376a6e77b0dc74b422519e61435 (refs/remotes/glob) - A blob/hi -r10 = 0a89e9e1d7681b6f20c7a288609d4162d72e5872 (refs/remotes/glob) -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/blob => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/glob/blob, 9 -Initializing parent: refs/remotes/blob@9 -r7 = b3e4bffad1281ed40cc5424f8d3da91cce325882 (refs/remotes/blob@9) - A hi -r8 = 7637518a7ace7e5f6070ed488fb40382b5887a81 (refs/remotes/blob@9) -Found branch parent: (refs/remotes/blob) 7637518a7ace7e5f6070ed488fb40382b5887a81 -Following parent with do_switch -Successfully followed parent -r10 = c25da18949bc8578a1c30ed85c1ff2c583fd275f (refs/remotes/blob) - D blob/hi - A blob/bye -W: -empty_dir: glob/blob/hi -r11 = 601720066f6c7b2b1e3d56462d7c0ac9565cd57e (refs/remotes/glob) - D hi - A bye -W: -empty_dir: glob/blob/hi -r11 = b8a1d4e2f007b937c955f267162b4c8ed322ddcd (refs/remotes/blob) -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/r9270/trunk/subversion/bindings/swig/perl/t => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/r9270/trunk/subversion/bindings/swig/perl/native/t, 13 -Initializing parent: refs/remotes/r9270-t@13 - A a.t - A b.t - A c.t - A larger-parent -r13 = f138e18b642eedf12b24a9afe5a579131a50764b (refs/remotes/r9270-t@13) -Found branch parent: (refs/remotes/r9270-t) f138e18b642eedf12b24a9afe5a579131a50764b -Following parent with do_switch - M c.t -Successfully followed parent -r14 = 02cb9d4f21f19426280a9b30319f405c719577eb (refs/remotes/r9270-t) -branch_from: /r9270/trunk => /r9270/trunk/subversion/bindings/swig/perl/native/t -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/r9270/trunk/subversion/bindings/swig/perl/native/t => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/r9270/drunk/subversion/bindings/swig/perl/native/t, 14 -Found branch parent: (refs/remotes/r9270-d) 02cb9d4f21f19426280a9b30319f405c719577eb -Following parent with do_switch -Successfully followed parent -r15 = 441022ee5eb4470e4157b9b596a3443a7d2d8d78 (refs/remotes/r9270-d) - A readme -r16 = 0529ae9034f251432564824009b4102481610007 (refs/remotes/stunk) - M readme -r17 = 3cf2ef18fb51edeff5e448b75c4a3dab9b90cfe2 (refs/remotes/stunk) - M readme -r18 = cbffff3cd11a4dbb044a4e00c67137bb6333bab2 (refs/remotes/stunk) -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/stunk => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/flunk, 18 -Found branch parent: (refs/remotes/flunk) cbffff3cd11a4dbb044a4e00c67137bb6333bab2 -Following parent with do_switch -Successfully followed parent -r19 = 57f12ef6d89ee3331af8f4aca54e276cfd0581da (refs/remotes/flunk) -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/stunk => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/flunked, 17 -Found branch parent: (refs/remotes/flunked) 3cf2ef18fb51edeff5e448b75c4a3dab9b90cfe2 -Following parent with do_switch -Successfully followed parent -r20 = d5366c7c95aaa9dbc94d11f9ca2c69c0a29db806 (refs/remotes/flunked) -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/r9270 => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/glob, 20 -Initializing parent: refs/remotes/glob@20 - A trunk/readme - A trunk/subversion/bindings/swig/perl/a.pm - A trunk/subversion/bindings/swig/perl/another-larger - A trunk/subversion/bindings/swig/perl/b.pm - A trunk/subversion/bindings/swig/perl/c.pm - A trunk/subversion/bindings/swig/perl/t/a.t - A trunk/subversion/bindings/swig/perl/t/b.t - A trunk/subversion/bindings/swig/perl/t/c.t - A trunk/subversion/bindings/swig/perl/t/larger-parent - A trunk/thunk/bump/thud/file -r13 = e45911a58fb04dd6c3a41fb54563956824280f99 (refs/remotes/glob@20) - D trunk/subversion/bindings/swig/perl/t/a.t - D trunk/subversion/bindings/swig/perl/t/b.t - D trunk/subversion/bindings/swig/perl/t/c.t - D trunk/subversion/bindings/swig/perl/t/larger-parent - D trunk/subversion/bindings/swig/perl/t/ - D trunk/subversion/bindings/swig/perl/a.pm - D trunk/subversion/bindings/swig/perl/b.pm - D trunk/subversion/bindings/swig/perl/c.pm - A trunk/subversion/bindings/swig/perl/native/a.pm - A trunk/subversion/bindings/swig/perl/native/b.pm - A trunk/subversion/bindings/swig/perl/native/c.pm - A trunk/subversion/bindings/swig/perl/native/t/a.t - A trunk/subversion/bindings/swig/perl/native/t/b.t - A trunk/subversion/bindings/swig/perl/native/t/c.t - A trunk/subversion/bindings/swig/perl/native/t/larger-parent -W: -empty_dir: r9270/trunk/subversion/bindings/swig/perl/a.pm -W: -empty_dir: r9270/trunk/subversion/bindings/swig/perl/b.pm -W: -empty_dir: r9270/trunk/subversion/bindings/swig/perl/c.pm -W: -empty_dir: r9270/trunk/subversion/bindings/swig/perl/t -r14 = 11daaa70b64f6567d447e0cd716eec6a3e6446b2 (refs/remotes/glob@20) - A drunk/readme - A drunk/subversion/bindings/swig/perl/another-larger - A drunk/subversion/bindings/swig/perl/native/a.pm - A drunk/subversion/bindings/swig/perl/native/b.pm - A drunk/subversion/bindings/swig/perl/native/c.pm - A drunk/subversion/bindings/swig/perl/native/t/a.t - A drunk/subversion/bindings/swig/perl/native/t/b.t - A drunk/subversion/bindings/swig/perl/native/t/c.t - A drunk/subversion/bindings/swig/perl/native/t/larger-parent - A drunk/thunk/bump/thud/file -r15 = 6e953b251243e5c740277d3ac2cb4d846923b332 (refs/remotes/glob@20) -Found branch parent: (refs/remotes/glob) 6e953b251243e5c740277d3ac2cb4d846923b332 -Index mismatch: 3cd9c37c278d8b60927f43385900d57622921efe != b80e441d0bfb8031c1110b908fb333507c1b9180 -rereading 6e953b251243e5c740277d3ac2cb4d846923b332 -Following parent with do_switch -Successfully followed parent -r21 = 715db2f64d4f38531296d0f7da8787de8a1e7e09 (refs/remotes/glob) -ok 13 - multi-fetch works off a 'clean' repository +W: -empty_dir: dir/a +r2 = 1f7ca9e567963cf78a3a82d6d47cfd9a4eb29e82 (refs/remotes/alt) + D bar/zzz + A bar/zzz/yyy +r3 = 86a88866bd89b0b479be74ecf138d4f5efab6807 (refs/remotes/alt) + M exec.sh +r4 = 0336dafd4136b2db63be0ed4f9216a41f5aa4220 (refs/remotes/alt) + M exec.sh +r5 = cbfe2bdae4a5092886544a46844feb26e61800fd (refs/remotes/alt) + D exec.sh + A exec.sh +W: -empty_dir: exec.sh +r6 = 4abda7c2ed2bf571275b5b6764fb447e6cf267f1 (refs/remotes/alt) + A exec-2.sh + M file +r7 = 7aa0962e158074bf2e9351187bb2d5235e2cc0f2 (refs/remotes/alt) + D exec-2.sh + A exec-2.sh +W: -empty_dir: exec-2.sh +r8 = ab3edf929fd19a8c57f869a704d7349c81756bf1 (refs/remotes/alt) + A bar/foo +r9 = c917ea1ee6723efbfc6534b3c2cb6694c510b2c2 (refs/remotes/alt) + A bar/d +r10 = 7833f6869ba3fd6dc95343cfc3269afc57d5f940 (refs/remotes/alt) + A bar/newdir/dir +r11 = f4b117d6b95cface6963cbe772da923ca82c9f2f (refs/remotes/alt) + M bar/newdir/dir +r12 = c35d459ca0fba57816cbebe255cbdd832917eac5 (refs/remotes/alt) + A bar/foo2 +r13 = 7fd8f511f121366508b45d7f1a00ef4f4a5c6697 (refs/remotes/alt) + M bar/d +r14 = de0a7e033c7f5aeb31bf4441b1224b32dfd3f41f (refs/remotes/alt) +ok 28 - git-svn works in in a repository with a gitdir: link -# passed all 13 test(s) -1..13 +# passed all 28 test(s) +1..28 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' *** t9108-git-svn-glob.sh *** @@ -396575,22 +395434,22 @@ (required for this version (2.30.2) of git-svn) does not exist. Done migrating from a git-svn v1 layout A readme -r1 = a5f8cf6e58bd16114dba2902037f40b9dadd4aa1 (refs/remotes/trunk) +r1 = 1c9713b897dc5f438e59386fd00fdcdb780cad0e (refs/remotes/trunk) branch_from: /trunk => /trunk/src/a Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9108-git-svn-glob/svnrepo/trunk/src/a => file:///build/git-2.30.2/t/trash%20directory.t9108-git-svn-glob/svnrepo/branches/start/src/a, 1 -Found branch parent: (refs/remotes/branches/start) a5f8cf6e58bd16114dba2902037f40b9dadd4aa1 +Found branch parent: (refs/remotes/branches/start) 1c9713b897dc5f438e59386fd00fdcdb780cad0e Following parent with do_switch Successfully followed parent -r2 = dc0968aae93be6729a17a5c2fdd1ae014833b337 (refs/remotes/branches/start) +r2 = e880e0f0131baf375ed4a7cf5d99fa47c5554c1a (refs/remotes/branches/start) M readme -r3 = 83b7299aedd032abb4ae9c0bc720563ec1864311 (refs/remotes/branches/start) +r3 = 71a10dc720fd678342e90f306f2b05edddd41368 (refs/remotes/branches/start) branch_from: /branches/start => /branches/start/src/a Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9108-git-svn-glob/svnrepo/branches/start/src/a => file:///build/git-2.30.2/t/trash%20directory.t9108-git-svn-glob/svnrepo/tags/end/src/a, 3 -Found branch parent: (refs/remotes/tags/end) 83b7299aedd032abb4ae9c0bc720563ec1864311 +Found branch parent: (refs/remotes/tags/end) 71a10dc720fd678342e90f306f2b05edddd41368 Following parent with do_switch M readme Successfully followed parent -r4 = eb4e5e69fc686326a38b968dd5526c8da70a2ecd (refs/remotes/tags/end) +r4 = bde713bb02b8157360e354d14605907267db1de9 (refs/remotes/tags/end) Checked out HEAD: file:///build/git-2.30.2/t/trash%20directory.t9108-git-svn-glob/svnrepo/trunk/src/a r1 fatal: ambiguous argument 'refs/remotes/tags/end@3': unknown revision or path not in the working tree. @@ -396632,26 +395491,26 @@ A src/a/readme A src/b/readme W: +empty_dir: trunk/doc -r1 = 1a33e5aea42c8b3fc59768cfe3035a74b08e35a5 (refs/remotes/two/trunk) +r1 = 07f05ce1c2dbf10a0502c54b9d2086575530954f (refs/remotes/two/trunk) Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9108-git-svn-glob/svnrepo/trunk => file:///build/git-2.30.2/t/trash%20directory.t9108-git-svn-glob/svnrepo/branches/start, 1 -Found branch parent: (refs/remotes/two/branches/start) 1a33e5aea42c8b3fc59768cfe3035a74b08e35a5 +Found branch parent: (refs/remotes/two/branches/start) 07f05ce1c2dbf10a0502c54b9d2086575530954f Following parent with do_switch Successfully followed parent -r2 = f6fc6653075e79002a342b16d3bf063eb0b7d86c (refs/remotes/two/branches/start) +r2 = 785420da9eee95bc1871c68e2e6672ab1215b649 (refs/remotes/two/branches/start) M src/a/readme M src/b/readme -r3 = 527b13470a6bdd2faef65d33314b50bb085930fb (refs/remotes/two/branches/start) +r3 = 6babf6afa63376145a41e4e13ce8b153a446d77a (refs/remotes/two/branches/start) Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9108-git-svn-glob/svnrepo/branches/start => file:///build/git-2.30.2/t/trash%20directory.t9108-git-svn-glob/svnrepo/tags/end, 3 -Found branch parent: (refs/remotes/two/tags/end) 527b13470a6bdd2faef65d33314b50bb085930fb +Found branch parent: (refs/remotes/two/tags/end) 6babf6afa63376145a41e4e13ce8b153a446d77a Following parent with do_switch M src/a/readme M src/b/readme Successfully followed parent -r4 = 0dd173e542eadf507f1e34208dd55cc81ae899b6 (refs/remotes/two/tags/end) +r4 = 301bf47adae89ea9dd138fd7ac9939555739d677 (refs/remotes/two/tags/end) M src/b/readme -r5 = 5119bdf78ed8a6e7d681cea90c9b0c4e24da3e08 (refs/remotes/two/tags/end) +r5 = dda67426aac277ac5ab989eaa99fa9da5209d3eb (refs/remotes/two/tags/end) M src/b/readme -r6 = 4d6ea2c4c5d604b9ef8553b5a2655df528100d74 (refs/remotes/two/tags/end) +r6 = aa382c26473e67b06656d2ede9bce7df105f674d (refs/remotes/two/tags/end) ok 2 - test left-hand-side only globbing expecting success of 9108.3 'prepare test disallow multi-globs': @@ -396689,6 +395548,252 @@ 1..4 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t9107-git-svn-migrate.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9107-git-svn-migrate/.git/ +expecting success of 9107.1 'setup old-looking metadata': + cp "$GIT_DIR"/config "$GIT_DIR"/config-old-git-svn && + mkdir import && + ( + cd import && + for i in trunk branches/a branches/b tags/0.1 tags/0.2 tags/0.3 + do + mkdir -p $i && + echo hello >>$i/README || + exit 1 + done && + svn_cmd import -m test . "$svnrepo" + ) && + git svn init "$svnrepo" && + git svn fetch && + rm -rf "$GIT_DIR"/svn && + git update-ref refs/heads/git-svn-HEAD refs/remotes/git-svn && + git update-ref refs/heads/svn-HEAD refs/remotes/git-svn && + git update-ref -d refs/remotes/git-svn refs/remotes/git-svn + +Adding branches +Adding branches/a +Adding branches/a/README +Adding branches/b +Adding branches/b/README +Adding tags +Adding tags/0.1 +Adding tags/0.1/README +Adding tags/0.2 +Adding tags/0.2/README +Adding tags/0.3 +Adding tags/0.3/README +Adding trunk +Adding trunk/README +Committing transaction... +Committed revision 1. + A branches/a/README + A branches/b/README + A tags/0.1/README + A tags/0.2/README + A tags/0.3/README + A trunk/README +r1 = c9439981deeacf620b8ba43c371b75c5bcfe21f5 (refs/remotes/git-svn) +Checked out HEAD: + file:///build/git-2.30.2/t/trash%20directory.t9107-git-svn-migrate/svnrepo r1 +ok 1 - setup old-looking metadata + +expecting success of 9107.2 'git-svn-HEAD is a real HEAD': + git rev-parse --verify refs/heads/git-svn-HEAD^0 + +c9439981deeacf620b8ba43c371b75c5bcfe21f5 +ok 2 - git-svn-HEAD is a real HEAD + +expecting success of 9107.3 'initialize old-style (v0) git svn layout': + mkdir -p "$GIT_DIR"/git-svn/info "$GIT_DIR"/svn/info && + echo "$svnrepo" > "$GIT_DIR"/git-svn/info/url && + echo "$svnrepo" > "$GIT_DIR"/svn/info/url && + git svn migrate && + ! test -d "$GIT_DIR"/git-svn && + git rev-parse --verify refs/remotes/git-svn^0 && + git rev-parse --verify refs/remotes/svn^0 && + test "$(git config --get svn-remote.svn.url)" = "$svnrepo_escaped" && + test $(git config --get svn-remote.svn.fetch) = \ + ":refs/remotes/git-svn" + +Migrating from v0 layout... +Renaming ref: refs/heads/git-svn-HEAD => refs/remotes/git-svn +Renaming ref: refs/heads/svn-HEAD => refs/remotes/svn +Done migrating from v0 layout... +Migrating from a git-svn v1 layout... +Data from a previous version of git-svn exists, but + .git/svn + (required for this version (2.30.2) of git-svn) does not exist. + - .git/git-svn => .git/svn/git-svn + - .git/svn/info => .git/svn/svn/info +Done migrating from a git-svn v1 layout +c9439981deeacf620b8ba43c371b75c5bcfe21f5 +c9439981deeacf620b8ba43c371b75c5bcfe21f5 +ok 3 - initialize old-style (v0) git svn layout + +expecting success of 9107.4 'initialize a multi-repository repo': + git svn init "$svnrepo" -T trunk -t tags -b branches && + git config --get-all svn-remote.svn.fetch > fetch.out && + grep "^trunk:refs/remotes/origin/trunk$" fetch.out && + test -n "$(git config --get svn-remote.svn.branches \ + "^branches/\*:refs/remotes/origin/\*$")" && + test -n "$(git config --get svn-remote.svn.tags \ + "^tags/\*:refs/remotes/origin/tags/\*$")" && + git config --unset svn-remote.svn.branches \ + "^branches/\*:refs/remotes/origin/\*$" && + git config --unset svn-remote.svn.tags \ + "^tags/\*:refs/remotes/origin/tags/\*$" && + git config --add svn-remote.svn.fetch "branches/a:refs/remotes/origin/a" && + git config --add svn-remote.svn.fetch "branches/b:refs/remotes/origin/b" && + for i in tags/0.1 tags/0.2 tags/0.3 + do + git config --add svn-remote.svn.fetch \ + $i:refs/remotes/origin/$i || return 1 + done && + git config --get-all svn-remote.svn.fetch > fetch.out && + grep "^trunk:refs/remotes/origin/trunk$" fetch.out && + grep "^branches/a:refs/remotes/origin/a$" fetch.out && + grep "^branches/b:refs/remotes/origin/b$" fetch.out && + grep "^tags/0\.1:refs/remotes/origin/tags/0\.1$" fetch.out && + grep "^tags/0\.2:refs/remotes/origin/tags/0\.2$" fetch.out && + grep "^tags/0\.3:refs/remotes/origin/tags/0\.3$" fetch.out && + grep "^:refs/remotes/git-svn" fetch.out + +Using existing [svn-remote "svn"] +trunk:refs/remotes/origin/trunk +trunk:refs/remotes/origin/trunk +branches/a:refs/remotes/origin/a +branches/b:refs/remotes/origin/b +tags/0.1:refs/remotes/origin/tags/0.1 +tags/0.2:refs/remotes/origin/tags/0.2 +tags/0.3:refs/remotes/origin/tags/0.3 +:refs/remotes/git-svn +ok 4 - initialize a multi-repository repo + +expecting success of 9107.5 'multi-fetch works on partial urls + paths': + refs="trunk a b tags/0.1 tags/0.2 tags/0.3" && + git svn multi-fetch && + for i in $refs + do + git rev-parse --verify refs/remotes/origin/$i^0 || return 1; + done >refs.out && + test -z "$(sort "$GIT_DIR"/svn/$ref/info/url || + return 1 + done && + git svn migrate --minimize && + test -z "$(git config -l | grep "^svn-remote\.git-svn\.")" && + git config --get-all svn-remote.svn.fetch > fetch.out && + grep "^trunk:refs/remotes/origin/trunk$" fetch.out && + grep "^branches/a:refs/remotes/origin/a$" fetch.out && + grep "^branches/b:refs/remotes/origin/b$" fetch.out && + grep "^tags/0\.1:refs/remotes/origin/tags/0\.1$" fetch.out && + grep "^tags/0\.2:refs/remotes/origin/tags/0\.2$" fetch.out && + grep "^tags/0\.3:refs/remotes/origin/tags/0\.3$" fetch.out && + grep "^:refs/remotes/git-svn" fetch.out + +Using existing [svn-remote "svn"] +Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9107-git-svn-migrate/svnrepo/branches/a => file:///build/git-2.30.2/t/trash%20directory.t9107-git-svn-migrate/svnrepo +Using existing [svn-remote "svn"] +Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9107-git-svn-migrate/svnrepo/branches/b => file:///build/git-2.30.2/t/trash%20directory.t9107-git-svn-migrate/svnrepo +Using existing [svn-remote "svn"] +Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9107-git-svn-migrate/svnrepo/tags/0.1 => file:///build/git-2.30.2/t/trash%20directory.t9107-git-svn-migrate/svnrepo +Using existing [svn-remote "svn"] +Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9107-git-svn-migrate/svnrepo/tags/0.2 => file:///build/git-2.30.2/t/trash%20directory.t9107-git-svn-migrate/svnrepo +Using existing [svn-remote "svn"] +Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9107-git-svn-migrate/svnrepo/tags/0.3 => file:///build/git-2.30.2/t/trash%20directory.t9107-git-svn-migrate/svnrepo +Using existing [svn-remote "svn"] +Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9107-git-svn-migrate/svnrepo/trunk => file:///build/git-2.30.2/t/trash%20directory.t9107-git-svn-migrate/svnrepo +trunk:refs/remotes/origin/trunk +branches/a:refs/remotes/origin/a +branches/b:refs/remotes/origin/b +tags/0.1:refs/remotes/origin/tags/0.1 +tags/0.2:refs/remotes/origin/tags/0.2 +tags/0.3:refs/remotes/origin/tags/0.3 +:refs/remotes/git-svn +ok 6 - migrate --minimize on old inited layout + +expecting success of 9107.7 '.rev_db auto-converted to .rev_map.UUID': + git svn fetch -i trunk && + test -z "$(ls "$GIT_DIR"/svn/refs/remotes/origin/trunk/.rev_db.* 2>/dev/null)" && + expect="$(ls "$GIT_DIR"/svn/refs/remotes/origin/trunk/.rev_map.*)" && + test -n "$expect" && + rev_db="$(echo $expect | sed -e "s,_map,_db,")" && + convert_to_rev_db "$expect" "$rev_db" && + rm -f "$expect" && + test -f "$rev_db" && + git svn fetch -i trunk && + test -z "$(ls "$GIT_DIR"/svn/refs/remotes/origin/trunk/.rev_db.* 2>/dev/null)" && + test ! -e "$GIT_DIR"/svn/refs/remotes/origin/trunk/.rev_db && + test -f "$expect" + +Rebuilding .git/svn/refs/remotes/git-svn/.rev_map.417ad205-dd6b-48bb-a22d-e23ed4153c6e ... +r1 = c9439981deeacf620b8ba43c371b75c5bcfe21f5 +Done rebuilding .git/svn/refs/remotes/git-svn/.rev_map.417ad205-dd6b-48bb-a22d-e23ed4153c6e +Rebuilding .git/svn/refs/remotes/origin/a/.rev_map.417ad205-dd6b-48bb-a22d-e23ed4153c6e ... +r1 = a4997c1401cba05a9c8ab949710f13f57ee8259c +Done rebuilding .git/svn/refs/remotes/origin/a/.rev_map.417ad205-dd6b-48bb-a22d-e23ed4153c6e +Rebuilding .git/svn/refs/remotes/origin/b/.rev_map.417ad205-dd6b-48bb-a22d-e23ed4153c6e ... +r1 = f6fdadacbbdfee5a7037ba59836885dbd82e9f32 +Done rebuilding .git/svn/refs/remotes/origin/b/.rev_map.417ad205-dd6b-48bb-a22d-e23ed4153c6e +Rebuilding .git/svn/refs/remotes/origin/tags/0.1/.rev_map.417ad205-dd6b-48bb-a22d-e23ed4153c6e ... +r1 = dc269951c1240a9144621a27af2456cc79dd6311 +Done rebuilding .git/svn/refs/remotes/origin/tags/0.1/.rev_map.417ad205-dd6b-48bb-a22d-e23ed4153c6e +Rebuilding .git/svn/refs/remotes/origin/tags/0.2/.rev_map.417ad205-dd6b-48bb-a22d-e23ed4153c6e ... +r1 = 1b894ad4a1b1ec0386f6effcaeef2a93ea9fdfd7 +Done rebuilding .git/svn/refs/remotes/origin/tags/0.2/.rev_map.417ad205-dd6b-48bb-a22d-e23ed4153c6e +Rebuilding .git/svn/refs/remotes/origin/tags/0.3/.rev_map.417ad205-dd6b-48bb-a22d-e23ed4153c6e ... +r1 = 97d93270c343afefb169bb77a46016b5dfbadb7a +Done rebuilding .git/svn/refs/remotes/origin/tags/0.3/.rev_map.417ad205-dd6b-48bb-a22d-e23ed4153c6e +Rebuilding .git/svn/refs/remotes/origin/trunk/.rev_map.417ad205-dd6b-48bb-a22d-e23ed4153c6e ... +r1 = 2ceef4012721fe8edd3cdfc3ff30f10f44f46edc +Done rebuilding .git/svn/refs/remotes/origin/trunk/.rev_map.417ad205-dd6b-48bb-a22d-e23ed4153c6e +Rebuilding .git/svn/refs/remotes/origin/trunk/.rev_map.417ad205-dd6b-48bb-a22d-e23ed4153c6e ... +r1 = 2ceef4012721fe8edd3cdfc3ff30f10f44f46edc +Done rebuilding .git/svn/refs/remotes/origin/trunk/.rev_map.417ad205-dd6b-48bb-a22d-e23ed4153c6e +ok 7 - .rev_db auto-converted to .rev_map.UUID + +# passed all 7 test(s) +1..7 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t9110-git-svn-use-svm-props.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9110-git-svn-use-svm-props/.git/ expecting success of 9110.1 'load svm repo': @@ -396703,10 +395808,10 @@ Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9110-git-svn-use-svm-props/svnrepo/mirror/arr => file:///build/git-2.30.2/t/trash%20directory.t9110-git-svn-use-svm-props/svnrepo Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9110-git-svn-use-svm-props/svnrepo/mirror/argh => file:///build/git-2.30.2/t/trash%20directory.t9110-git-svn-use-svm-props/svnrepo Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9110-git-svn-use-svm-props/svnrepo/mirror/argh/a/b/c/d/e => file:///build/git-2.30.2/t/trash%20directory.t9110-git-svn-use-svm-props/svnrepo - A file -r9 (@1) = 6aadfc98d31cbed4e89c9d601491ad7b5c46d857 (refs/remotes/e) A a/b/c/d/e/file r9 (@1) = 79a1181387506bdda9e0f310c40ddb3f4eed7179 (refs/remotes/dir) + A file +r9 (@1) = 6aadfc98d31cbed4e89c9d601491ad7b5c46d857 (refs/remotes/e) D a/b/c/d/e/file D a/ A file @@ -396884,22 +395989,22 @@ (required for this version (2.30.2) of git-svn) does not exist. Done migrating from a git-svn v1 layout A readme -r1 = d71e7c9473b447218bc32f464ce7fdeac44caf56 (refs/remotes/trunk) +r1 = b53bf102540413aa580def37e8bda801fef9c40c (refs/remotes/trunk) branch_from: /trunk => /trunk/src/a Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9109-git-svn-multi-glob/svnrepo/trunk/src/a => file:///build/git-2.30.2/t/trash%20directory.t9109-git-svn-multi-glob/svnrepo/branches/v1/start/src/a, 1 -Found branch parent: (refs/remotes/branches/v1/start) d71e7c9473b447218bc32f464ce7fdeac44caf56 +Found branch parent: (refs/remotes/branches/v1/start) b53bf102540413aa580def37e8bda801fef9c40c Following parent with do_switch Successfully followed parent -r2 = 243707d5c25b88804754b75ab3744290e46f4c90 (refs/remotes/branches/v1/start) +r2 = aa57c698bf9745cdec3511cb126c0c6f0db35770 (refs/remotes/branches/v1/start) M readme -r3 = 2ee5c1fc8909dd02be73e052f3b2c29c75f922b8 (refs/remotes/branches/v1/start) +r3 = 76d2bc599942074a8b1e291b8eff8ab206dd3adb (refs/remotes/branches/v1/start) branch_from: /branches/v1/start => /branches/v1/start/src/a Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9109-git-svn-multi-glob/svnrepo/branches/v1/start/src/a => file:///build/git-2.30.2/t/trash%20directory.t9109-git-svn-multi-glob/svnrepo/tags/end/src/a, 3 -Found branch parent: (refs/remotes/tags/end) 2ee5c1fc8909dd02be73e052f3b2c29c75f922b8 +Found branch parent: (refs/remotes/tags/end) 76d2bc599942074a8b1e291b8eff8ab206dd3adb Following parent with do_switch M readme Successfully followed parent -r4 = d57e8bc2b4d6c945c33ba7e240b0c03ae28fd834 (refs/remotes/tags/end) +r4 = e0dd3c5ffe6141a6a1e28e8212dd5e6cf4e7617f (refs/remotes/tags/end) Checked out HEAD: file:///build/git-2.30.2/t/trash%20directory.t9109-git-svn-multi-glob/svnrepo/trunk/src/a r1 fatal: ambiguous argument 'refs/remotes/tags/end@3': unknown revision or path not in the working tree. @@ -396941,26 +396046,26 @@ A src/a/readme A src/b/readme W: +empty_dir: trunk/doc -r1 = 5b0e7bdb92e353a1677c3f88de9dc066a3b0a1da (refs/remotes/two/trunk) +r1 = d650ee4859c331008d4a0623ccdbcabfc61fe421 (refs/remotes/two/trunk) Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9109-git-svn-multi-glob/svnrepo/trunk => file:///build/git-2.30.2/t/trash%20directory.t9109-git-svn-multi-glob/svnrepo/branches/v1/start, 1 -Found branch parent: (refs/remotes/two/branches/v1/start) 5b0e7bdb92e353a1677c3f88de9dc066a3b0a1da +Found branch parent: (refs/remotes/two/branches/v1/start) d650ee4859c331008d4a0623ccdbcabfc61fe421 Following parent with do_switch Successfully followed parent -r2 = 42cddddd9530b87c4c41d63aae9191a98b5c83a9 (refs/remotes/two/branches/v1/start) +r2 = acef0997334818177d3080e539a5e4b5a6789f11 (refs/remotes/two/branches/v1/start) M src/a/readme M src/b/readme -r3 = ea42f86c0c7ef49e1d7118a4f6181ba39919d8cc (refs/remotes/two/branches/v1/start) +r3 = 0ebc301bda6f1e5a155cc98ffeedb76c4d16625a (refs/remotes/two/branches/v1/start) Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9109-git-svn-multi-glob/svnrepo/branches/v1/start => file:///build/git-2.30.2/t/trash%20directory.t9109-git-svn-multi-glob/svnrepo/tags/end, 3 -Found branch parent: (refs/remotes/two/tags/end) ea42f86c0c7ef49e1d7118a4f6181ba39919d8cc +Found branch parent: (refs/remotes/two/tags/end) 0ebc301bda6f1e5a155cc98ffeedb76c4d16625a Following parent with do_switch M src/a/readme M src/b/readme Successfully followed parent -r4 = 367c908c749a7db2b6792d62a34b932d58977217 (refs/remotes/two/tags/end) +r4 = 7f28a6b782fbb2c897df91d5494be4b98c9d7d01 (refs/remotes/two/tags/end) M src/b/readme -r5 = 9cfc95fcc612cb77bb8f24ad9fb113a674187981 (refs/remotes/two/tags/end) +r5 = 4f009c3872ca87436b4b27b7dee7bebd506af6a7 (refs/remotes/two/tags/end) M src/b/readme -r6 = 5378761a1dacb795c539218e31c0eba126424bec (refs/remotes/two/tags/end) +r6 = 8298f7e88ff407a6cd3eade925fa811c28926d76 (refs/remotes/two/tags/end) ok 2 - test left-hand-side only globbing expecting success of 9109.3 'test another branch': @@ -397035,43 +396140,43 @@ A src/a/readme A src/b/readme W: +empty_dir: trunk/doc -r1 = 5b0e7bdb92e353a1677c3f88de9dc066a3b0a1da (refs/remotes/four/trunk) +r1 = d650ee4859c331008d4a0623ccdbcabfc61fe421 (refs/remotes/four/trunk) Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9109-git-svn-multi-glob/svnrepo/trunk => file:///build/git-2.30.2/t/trash%20directory.t9109-git-svn-multi-glob/svnrepo/branches/v1/start, 1 -Found branch parent: (refs/remotes/four/branches/v1/start) 5b0e7bdb92e353a1677c3f88de9dc066a3b0a1da +Found branch parent: (refs/remotes/four/branches/v1/start) d650ee4859c331008d4a0623ccdbcabfc61fe421 Following parent with do_switch Successfully followed parent -r2 = 42cddddd9530b87c4c41d63aae9191a98b5c83a9 (refs/remotes/four/branches/v1/start) +r2 = acef0997334818177d3080e539a5e4b5a6789f11 (refs/remotes/four/branches/v1/start) M src/a/readme M src/b/readme -r3 = ea42f86c0c7ef49e1d7118a4f6181ba39919d8cc (refs/remotes/four/branches/v1/start) +r3 = 0ebc301bda6f1e5a155cc98ffeedb76c4d16625a (refs/remotes/four/branches/v1/start) Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9109-git-svn-multi-glob/svnrepo/branches/v1/start => file:///build/git-2.30.2/t/trash%20directory.t9109-git-svn-multi-glob/svnrepo/tags/end, 3 -Found branch parent: (refs/remotes/four/tags/end) ea42f86c0c7ef49e1d7118a4f6181ba39919d8cc +Found branch parent: (refs/remotes/four/tags/end) 0ebc301bda6f1e5a155cc98ffeedb76c4d16625a Following parent with do_switch M src/a/readme M src/b/readme Successfully followed parent -r4 = 367c908c749a7db2b6792d62a34b932d58977217 (refs/remotes/four/tags/end) +r4 = 7f28a6b782fbb2c897df91d5494be4b98c9d7d01 (refs/remotes/four/tags/end) M src/b/readme -r5 = 9cfc95fcc612cb77bb8f24ad9fb113a674187981 (refs/remotes/four/tags/end) +r5 = 4f009c3872ca87436b4b27b7dee7bebd506af6a7 (refs/remotes/four/tags/end) M src/b/readme -r6 = 5378761a1dacb795c539218e31c0eba126424bec (refs/remotes/four/tags/end) +r6 = 8298f7e88ff407a6cd3eade925fa811c28926d76 (refs/remotes/four/tags/end) Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9109-git-svn-multi-glob/svnrepo/trunk => file:///build/git-2.30.2/t/trash%20directory.t9109-git-svn-multi-glob/svnrepo/branches/v2/start, 3 -Found branch parent: (refs/remotes/four/branches/v2/start) 5b0e7bdb92e353a1677c3f88de9dc066a3b0a1da +Found branch parent: (refs/remotes/four/branches/v2/start) d650ee4859c331008d4a0623ccdbcabfc61fe421 Following parent with do_switch Successfully followed parent -r7 = 90c2e34e4cd16338ecb7431267898656bb837d87 (refs/remotes/four/branches/v2/start) +r7 = 72c69461edcf13e09b044dfda9efeb896c0eda2c (refs/remotes/four/branches/v2/start) M src/a/readme M src/b/readme -r8 = 2e801555da8288844cb2fdcfbd8dd656dd7ef3c3 (refs/remotes/four/branches/v2/start) +r8 = 55307f2885020b571d2b9894c1b390eb7e478870 (refs/remotes/four/branches/v2/start) Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9109-git-svn-multi-glob/svnrepo/branches/v2/start => file:///build/git-2.30.2/t/trash%20directory.t9109-git-svn-multi-glob/svnrepo/tags/next, 8 -Found branch parent: (refs/remotes/four/tags/next) 2e801555da8288844cb2fdcfbd8dd656dd7ef3c3 +Found branch parent: (refs/remotes/four/tags/next) 55307f2885020b571d2b9894c1b390eb7e478870 Following parent with do_switch M src/a/readme M src/b/readme Successfully followed parent -r9 = 85c0394217c3c24f604d59207ec965c4c301d103 (refs/remotes/four/tags/next) +r9 = e294a0390de1c06520ebd58ab686b22fe91573ea (refs/remotes/four/tags/next) M src/b/readme -r10 = 0c6b0912176a2d2d8d3d90bb04880423dc509a87 (refs/remotes/four/tags/next) +r10 = 1fd983ccefbc4175075ad289ea9bcfdeacfc7662 (refs/remotes/four/tags/next) ok 3 - test another branch expecting success of 9109.4 'prepare test disallow multiple globs': @@ -397124,7 +396229,7 @@ expecting success of 9112.3 'fetch revisions from svn': git svn fetch A md5less-file -r1 = 2354fddd8f3689e0db3e4145be3478553dc0dd84 (refs/remotes/git-svn) +r1 = af2344ef70f3daecab9e1d0eace2a8fc997281e9 (refs/remotes/git-svn) Checked out HEAD: file:///build/git-2.30.2/t/trash%20directory.t9112-git-svn-md5less-file/svnrepo r1 ok 3 - fetch revisions from svn @@ -397219,6 +396324,734 @@ 1..4 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t9104-git-svn-follow-parent.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9104-git-svn-follow-parent/.git/ +expecting success of 9104.1 'initialize repo': + mkdir import && + ( + cd import && + mkdir -p trunk && + echo hello >trunk/readme && + svn_cmd import -m "initial" . "$svnrepo" + ) && + svn_cmd co "$svnrepo" wc && + ( + cd wc && + echo world >>trunk/readme && + poke trunk/readme && + svn_cmd commit -m "another commit" && + svn_cmd up && + svn_cmd mv trunk thunk && + echo goodbye >>thunk/readme && + poke thunk/readme && + svn_cmd commit -m "bye now" + ) + +Adding trunk +Adding trunk/readme +Committing transaction... +Committed revision 1. +A wc/trunk +A wc/trunk/readme +Checked out revision 1. +Sending trunk/readme +Transmitting file data .done +Committing transaction... +Committed revision 2. +Updating '.': +At revision 2. +A thunk +D trunk +D trunk/readme +Adding thunk +Sending thunk/readme +Deleting trunk +Transmitting file data .done +Committing transaction... +Committed revision 3. +ok 1 - initialize repo + +expecting success of 9104.2 'init and fetch a moved directory': + git svn init --minimize-url -i thunk "$svnrepo"/thunk && + git svn fetch -i thunk && + test "$(git rev-parse --verify refs/remotes/thunk@2)" \ + = "$(git rev-parse --verify refs/remotes/thunk~1)" && + git cat-file blob refs/remotes/thunk:readme >actual && + test "$(sed -n -e "3p" actual)" = goodbye && + test -z "$(git config --get svn-remote.svn.fetch \ + "^trunk:refs/remotes/thunk@2$")" + +Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/thunk => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/trunk => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/thunk, 2 +Initializing parent: refs/remotes/thunk@2 + A readme +r1 = 3a5cf3450bcfcab92df252d6896781a04b595b20 (refs/remotes/thunk@2) + M readme +r2 = 374c681eb193ecb0c8c6e4c75b72ca3e4d85f631 (refs/remotes/thunk@2) +Found branch parent: (refs/remotes/thunk) 374c681eb193ecb0c8c6e4c75b72ca3e4d85f631 +Following parent with do_switch + M readme +Successfully followed parent +r3 = f69a2a10d1f36e997b2ee96d6f8e8107b0b2a682 (refs/remotes/thunk) +Checked out HEAD: + file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/thunk r3 +ok 2 - init and fetch a moved directory + +expecting success of 9104.3 'init and fetch from one svn-remote': + git config svn-remote.svn.url "$svnrepo" && + git config --add svn-remote.svn.fetch \ + trunk:refs/remotes/svn/trunk && + git config --add svn-remote.svn.fetch \ + thunk:refs/remotes/svn/thunk && + git svn fetch -i svn/thunk && + test "$(git rev-parse --verify refs/remotes/svn/trunk)" \ + = "$(git rev-parse --verify refs/remotes/svn/thunk~1)" && + git cat-file blob refs/remotes/svn/thunk:readme >actual && + test "$(sed -n -e "3p" actual)" = goodbye + + A readme +r1 = 3a5cf3450bcfcab92df252d6896781a04b595b20 (refs/remotes/svn/trunk) + M readme +r2 = 374c681eb193ecb0c8c6e4c75b72ca3e4d85f631 (refs/remotes/svn/trunk) +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/trunk => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/thunk, 2 +Found branch parent: (refs/remotes/svn/thunk) 374c681eb193ecb0c8c6e4c75b72ca3e4d85f631 +Following parent with do_switch + M readme +Successfully followed parent +r3 = f69a2a10d1f36e997b2ee96d6f8e8107b0b2a682 (refs/remotes/svn/thunk) +ok 3 - init and fetch from one svn-remote + +expecting success of 9104.4 'follow deleted parent': + (svn_cmd cp -m "resurrecting trunk as junk" \ + "$svnrepo"/trunk@2 "$svnrepo"/junk || + svn cp -m "resurrecting trunk as junk" \ + -r2 "$svnrepo"/trunk "$svnrepo"/junk) && + git config --add svn-remote.svn.fetch \ + junk:refs/remotes/svn/junk && + git svn fetch -i svn/thunk && + git svn fetch -i svn/junk && + test -z "$(git diff svn/junk svn/trunk)" && + test "$(git merge-base svn/junk svn/trunk)" \ + = "$(git rev-parse svn/trunk)" + +Committing transaction... +Committed revision 4. +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/trunk => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/junk, 2 +Found branch parent: (refs/remotes/svn/junk) 374c681eb193ecb0c8c6e4c75b72ca3e4d85f631 +Following parent with do_switch +Successfully followed parent +r4 = d966311ca0d35d365fb51f916fea7ec6521957bf (refs/remotes/svn/junk) +ok 4 - follow deleted parent + +expecting success of 9104.5 'follow larger parent': + mkdir -p import/trunk/thunk/bump/thud && + echo hi > import/trunk/thunk/bump/thud/file && + svn import -m "import a larger parent" import "$svnrepo"/larger-parent && + svn cp -m "hi" "$svnrepo"/larger-parent "$svnrepo"/another-larger && + git svn init --minimize-url -i larger \ + "$svnrepo"/larger-parent/trunk/thunk/bump/thud && + git svn fetch -i larger && + git svn init --minimize-url -i larger-parent \ + "$svnrepo"/another-larger/trunk/thunk/bump/thud && + git svn fetch -i larger-parent && + git rev-parse --verify refs/remotes/larger && + git rev-parse --verify \ + refs/remotes/larger-parent && + test "$(git merge-base \ + refs/remotes/larger-parent \ + refs/remotes/larger)" = \ + "$(git rev-parse refs/remotes/larger)" + +Adding import/trunk +Adding import/trunk/readme +Adding import/trunk/thunk +Adding import/trunk/thunk/bump +Adding import/trunk/thunk/bump/thud +Adding import/trunk/thunk/bump/thud/file +Committing transaction... +Committed revision 5. +Committing transaction... +Committed revision 6. +Using existing [svn-remote "svn"] +Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/larger-parent/trunk/thunk/bump/thud => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo + A file +r5 = 7dfe9cee66f780ca19c3cd4c01d0a61311772f56 (refs/remotes/larger) +Using existing [svn-remote "svn"] +Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/another-larger/trunk/thunk/bump/thud => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo +branch_from: /larger-parent => /larger-parent/trunk/thunk/bump/thud +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/larger-parent/trunk/thunk/bump/thud => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/another-larger/trunk/thunk/bump/thud, 5 +Found branch parent: (refs/remotes/larger-parent) 7dfe9cee66f780ca19c3cd4c01d0a61311772f56 +Following parent with do_switch +Successfully followed parent +r6 = 891ee1fe4feda0b5ade0b49cdbb2b3e2ac9893f7 (refs/remotes/larger-parent) +7dfe9cee66f780ca19c3cd4c01d0a61311772f56 +891ee1fe4feda0b5ade0b49cdbb2b3e2ac9893f7 +ok 5 - follow larger parent + +expecting success of 9104.6 'follow higher-level parent': + svn mkdir -m "follow higher-level parent" "$svnrepo"/blob && + svn co "$svnrepo"/blob blob && + ( + cd blob && + echo hi > hi && + svn add hi && + svn commit -m "hihi" + ) && + svn mkdir -m "new glob at top level" "$svnrepo"/glob && + svn mv -m "move blob down a level" "$svnrepo"/blob "$svnrepo"/glob/blob && + git svn init --minimize-url -i blob "$svnrepo"/glob/blob && + git svn fetch -i blob + +Committing transaction... +Committed revision 7. +Checked out revision 7. +A hi +Adding hi +Transmitting file data .done +Committing transaction... +Committed revision 8. +Committing transaction... +Committed revision 9. +Committing transaction... +Committed revision 10. +Using existing [svn-remote "svn"] +Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/glob/blob => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/blob => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/glob/blob, 9 +Initializing parent: refs/remotes/blob@9 +r7 = 56bee88bcc1a64fea8135f5cb3b4a64dec5caffb (refs/remotes/blob@9) + A hi +r8 = 0784832d96d5228685bc17e3d5a393c98d863757 (refs/remotes/blob@9) +Found branch parent: (refs/remotes/blob) 0784832d96d5228685bc17e3d5a393c98d863757 +Following parent with do_switch +Successfully followed parent +r10 = fcb0b11b64cdfddcfc8d722591afab2cd9f3cbe4 (refs/remotes/blob) +ok 6 - follow higher-level parent + +expecting success of 9104.7 'follow deleted directory': + svn_cmd mv -m "bye!" "$svnrepo"/glob/blob/hi "$svnrepo"/glob/blob/bye && + svn_cmd rm -m "remove glob" "$svnrepo"/glob && + git svn init --minimize-url -i glob "$svnrepo"/glob && + git svn fetch -i glob && + test "$(git cat-file blob refs/remotes/glob:blob/bye)" = hi && + git ls-tree refs/remotes/glob >actual && + test_line_count = 1 actual + +Committing transaction... +Committed revision 11. +Committing transaction... +Committed revision 12. +Using existing [svn-remote "svn"] +Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/glob => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo +r9 = 532909b74a54e3ab15afcbcc1b8dde2bbe333a7d (refs/remotes/glob) + A blob/hi +r10 = 82831d159608bda374ee950b6fd49a7f0f208562 (refs/remotes/glob) + D hi + A bye +W: -empty_dir: glob/blob/hi +r11 = 28d696d2192f906aa2b8c78673f0e9573b21c75c (refs/remotes/blob) + D blob/hi + A blob/bye +W: -empty_dir: glob/blob/hi +r11 = 06609b3bde62bbaf3623657e076a609a6aa089f7 (refs/remotes/glob) +ok 7 - follow deleted directory + +expecting success of 9104.8 'follow-parent avoids deleting relevant info': + mkdir -p import/trunk/subversion/bindings/swig/perl/t && + for i in a b c ; do \ + echo $i > import/trunk/subversion/bindings/swig/perl/$i.pm && + echo _$i > import/trunk/subversion/bindings/swig/perl/t/$i.t; \ + done && + echo "bad delete test" > \ + import/trunk/subversion/bindings/swig/perl/t/larger-parent && + echo "bad delete test 2" > \ + import/trunk/subversion/bindings/swig/perl/another-larger && + ( + cd import && + svn import -m "r9270 test" . "$svnrepo"/r9270 + ) && + svn_cmd co "$svnrepo"/r9270/trunk/subversion/bindings/swig/perl r9270 && + ( + cd r9270 && + svn mkdir native && + svn mv t native/t && + for i in a b c + do + svn mv $i.pm native/$i.pm + done && + echo z >>native/t/c.t && + poke native/t/c.t && + svn commit -m "reorg test" + ) && + git svn init --minimize-url -i r9270-t \ + "$svnrepo"/r9270/trunk/subversion/bindings/swig/perl/native/t && + git svn fetch -i r9270-t && + test $(git rev-list r9270-t | wc -l) -eq 2 && + test "$(git ls-tree --name-only r9270-t~1)" = \ + "$(git ls-tree --name-only r9270-t)" + +Adding trunk +Adding trunk/readme +Adding trunk/subversion +Adding trunk/subversion/bindings +Adding trunk/subversion/bindings/swig +Adding trunk/subversion/bindings/swig/perl +Adding trunk/subversion/bindings/swig/perl/a.pm +Adding trunk/subversion/bindings/swig/perl/another-larger +Adding trunk/subversion/bindings/swig/perl/b.pm +Adding trunk/subversion/bindings/swig/perl/c.pm +Adding trunk/subversion/bindings/swig/perl/t +Adding trunk/subversion/bindings/swig/perl/t/a.t +Adding trunk/subversion/bindings/swig/perl/t/b.t +Adding trunk/subversion/bindings/swig/perl/t/c.t +Adding trunk/subversion/bindings/swig/perl/t/larger-parent +Adding trunk/thunk +Adding trunk/thunk/bump +Adding trunk/thunk/bump/thud +Adding trunk/thunk/bump/thud/file +Committing transaction... +Committed revision 13. +A r9270/a.pm +A r9270/another-larger +A r9270/b.pm +A r9270/c.pm +A r9270/t +A r9270/t/a.t +A r9270/t/b.t +A r9270/t/c.t +A r9270/t/larger-parent +Checked out revision 13. +A native +A native/t +D t +D t/a.t +D t/b.t +D t/c.t +D t/larger-parent +A native/a.pm +D a.pm +A native/b.pm +D b.pm +A native/c.pm +D c.pm +Deleting a.pm +Deleting b.pm +Deleting c.pm +Adding native +Adding native/a.pm +Adding native/b.pm +Adding native/c.pm +Adding native/t +Sending native/t/c.t +Deleting t +Transmitting file data .done +Committing transaction... +Committed revision 14. +Using existing [svn-remote "svn"] +Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/r9270/trunk/subversion/bindings/swig/perl/native/t => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/r9270/trunk/subversion/bindings/swig/perl/t => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/r9270/trunk/subversion/bindings/swig/perl/native/t, 13 +Initializing parent: refs/remotes/r9270-t@13 + A a.t + A b.t + A c.t + A larger-parent +r13 = 0fb7656f54d88351d84af9f7b2b3618e9274a7b9 (refs/remotes/r9270-t@13) +Found branch parent: (refs/remotes/r9270-t) 0fb7656f54d88351d84af9f7b2b3618e9274a7b9 +Following parent with do_switch + M c.t +Successfully followed parent +r14 = 578e2c2fe5e8dbbef96b79cba1f7fdc653c13a54 (refs/remotes/r9270-t) +ok 8 - follow-parent avoids deleting relevant info + +expecting success of 9104.9 'track initial change if it was only made to parent': + svn_cmd cp -m "wheee!" "$svnrepo"/r9270/trunk "$svnrepo"/r9270/drunk && + git svn init --minimize-url -i r9270-d \ + "$svnrepo"/r9270/drunk/subversion/bindings/swig/perl/native/t && + git svn fetch -i r9270-d && + test $(git rev-list r9270-d | wc -l) -eq 3 && + test "$(git ls-tree --name-only r9270-t)" = \ + "$(git ls-tree --name-only r9270-d)" && + test "$(git rev-parse r9270-t)" = \ + "$(git rev-parse r9270-d~1)" + +Committing transaction... +Committed revision 15. +Using existing [svn-remote "svn"] +Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/r9270/drunk/subversion/bindings/swig/perl/native/t => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo +branch_from: /r9270/trunk => /r9270/trunk/subversion/bindings/swig/perl/native/t +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/r9270/trunk/subversion/bindings/swig/perl/native/t => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/r9270/drunk/subversion/bindings/swig/perl/native/t, 14 +Found branch parent: (refs/remotes/r9270-d) 578e2c2fe5e8dbbef96b79cba1f7fdc653c13a54 +Following parent with do_switch +Successfully followed parent +r15 = 47f2d959e0613540cdf214427dcaff0193749e61 (refs/remotes/r9270-d) +ok 9 - track initial change if it was only made to parent + +expecting success of 9104.10 'follow-parent is atomic': + record_size=$(($(test_oid rawsz) + 4)) && + ( + cd wc && + svn_cmd up && + svn_cmd mkdir stunk && + echo "trunk stunk" > stunk/readme && + svn_cmd add stunk/readme && + svn_cmd ci -m "trunk stunk" && + echo "stunk like junk" >> stunk/readme && + svn_cmd ci -m "really stunk" && + echo "stink stank stunk" >> stunk/readme && + svn_cmd ci -m "even the grinch agrees" + ) && + svn_cmd copy -m "stunk flunked" "$svnrepo"/stunk "$svnrepo"/flunk && + { svn cp -m "early stunk flunked too" \ + "$svnrepo"/stunk@17 "$svnrepo"/flunked || + svn_cmd cp -m "early stunk flunked too" \ + -r17 "$svnrepo"/stunk "$svnrepo"/flunked; } && + git svn init --minimize-url -i stunk "$svnrepo"/stunk && + git svn fetch -i stunk && + git update-ref refs/remotes/flunk@18 refs/remotes/stunk~2 && + git update-ref -d refs/remotes/stunk && + git config --unset svn-remote.svn.fetch stunk && + mkdir -p "$GIT_DIR"/svn/refs/remotes/flunk@18 && + rev_map=$(cd "$GIT_DIR"/svn/refs/remotes/stunk && ls .rev_map*) && + dd if="$GIT_DIR"/svn/refs/remotes/stunk/$rev_map \ + of="$GIT_DIR"/svn/refs/remotes/flunk@18/$rev_map bs=$record_size count=1 && + rm -rf "$GIT_DIR"/svn/refs/remotes/stunk && + git svn init --minimize-url -i flunk "$svnrepo"/flunk && + git svn fetch -i flunk && + git svn init --minimize-url -i stunk "$svnrepo"/stunk && + git svn fetch -i stunk && + git svn init --minimize-url -i flunked "$svnrepo"/flunked && + git svn fetch -i flunked && + test "$(git rev-parse --verify refs/remotes/flunk@18)" \ + = "$(git rev-parse --verify refs/remotes/stunk)" && + test "$(git rev-parse --verify refs/remotes/flunk~1)" \ + = "$(git rev-parse --verify refs/remotes/stunk)" && + test "$(git rev-parse --verify refs/remotes/flunked~1)" \ + = "$(git rev-parse --verify refs/remotes/stunk~1)" + +Updating '.': +A another-larger +A another-larger/trunk +A another-larger/trunk/readme +A another-larger/trunk/thunk +A another-larger/trunk/thunk/bump +A another-larger/trunk/thunk/bump/thud +A another-larger/trunk/thunk/bump/thud/file +A junk +A junk/readme +A larger-parent +A larger-parent/trunk +A larger-parent/trunk/readme +A larger-parent/trunk/thunk +A larger-parent/trunk/thunk/bump +A larger-parent/trunk/thunk/bump/thud +A larger-parent/trunk/thunk/bump/thud/file +A r9270 +A r9270/drunk +A r9270/drunk/readme +A r9270/drunk/subversion +A r9270/drunk/subversion/bindings +A r9270/drunk/subversion/bindings/swig +A r9270/drunk/subversion/bindings/swig/perl +A r9270/drunk/subversion/bindings/swig/perl/another-larger +A r9270/drunk/subversion/bindings/swig/perl/native +A r9270/drunk/subversion/bindings/swig/perl/native/a.pm +A r9270/drunk/subversion/bindings/swig/perl/native/b.pm +A r9270/drunk/subversion/bindings/swig/perl/native/c.pm +A r9270/drunk/subversion/bindings/swig/perl/native/t +A r9270/drunk/subversion/bindings/swig/perl/native/t/a.t +A r9270/drunk/subversion/bindings/swig/perl/native/t/b.t +A r9270/drunk/subversion/bindings/swig/perl/native/t/c.t +A r9270/drunk/subversion/bindings/swig/perl/native/t/larger-parent +A r9270/drunk/thunk +A r9270/drunk/thunk/bump +A r9270/drunk/thunk/bump/thud +A r9270/drunk/thunk/bump/thud/file +A r9270/trunk +A r9270/trunk/readme +A r9270/trunk/subversion +A r9270/trunk/subversion/bindings +A r9270/trunk/subversion/bindings/swig +A r9270/trunk/subversion/bindings/swig/perl +A r9270/trunk/subversion/bindings/swig/perl/another-larger +A r9270/trunk/subversion/bindings/swig/perl/native +A r9270/trunk/subversion/bindings/swig/perl/native/a.pm +A r9270/trunk/subversion/bindings/swig/perl/native/b.pm +A r9270/trunk/subversion/bindings/swig/perl/native/c.pm +A r9270/trunk/subversion/bindings/swig/perl/native/t +A r9270/trunk/subversion/bindings/swig/perl/native/t/a.t +A r9270/trunk/subversion/bindings/swig/perl/native/t/b.t +A r9270/trunk/subversion/bindings/swig/perl/native/t/c.t +A r9270/trunk/subversion/bindings/swig/perl/native/t/larger-parent +A r9270/trunk/thunk +A r9270/trunk/thunk/bump +A r9270/trunk/thunk/bump/thud +A r9270/trunk/thunk/bump/thud/file +Updated to revision 15. +A stunk +A stunk/readme +Adding stunk +Adding stunk/readme +Transmitting file data .done +Committing transaction... +Committed revision 16. +Sending stunk/readme +Transmitting file data .done +Committing transaction... +Committed revision 17. +Sending stunk/readme +Transmitting file data .done +Committing transaction... +Committed revision 18. +Committing transaction... +Committed revision 19. +Committing transaction... +Committed revision 20. +Using existing [svn-remote "svn"] +Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/stunk => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo + A readme +r16 = 56359ed0569507fb34db514265d31f6cc7ff6e82 (refs/remotes/stunk) + M readme +r17 = 2797794585a816c8c8e738a795851235d0239006 (refs/remotes/stunk) + M readme +r18 = 7c5f59d3907367ef534f45641806fd3b0f57b675 (refs/remotes/stunk) +1+0 records in +1+0 records out +24 bytes copied, 0.000171904 s, 140 kB/s +Using existing [svn-remote "svn"] +Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/flunk => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/stunk => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/flunk, 18 +Initializing parent: refs/remotes/flunk@18 + M readme +r17 = 2797794585a816c8c8e738a795851235d0239006 (refs/remotes/flunk@18) + M readme +r18 = 7c5f59d3907367ef534f45641806fd3b0f57b675 (refs/remotes/flunk@18) +Found branch parent: (refs/remotes/flunk) 7c5f59d3907367ef534f45641806fd3b0f57b675 +Following parent with do_switch +Successfully followed parent +r19 = f5becac1776f80d4e8b14318f80ba5adc6468da2 (refs/remotes/flunk) +Using existing [svn-remote "svn"] +Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/stunk => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo + A readme +r16 = 56359ed0569507fb34db514265d31f6cc7ff6e82 (refs/remotes/stunk) + M readme +r17 = 2797794585a816c8c8e738a795851235d0239006 (refs/remotes/stunk) + M readme +r18 = 7c5f59d3907367ef534f45641806fd3b0f57b675 (refs/remotes/stunk) +Using existing [svn-remote "svn"] +Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/flunked => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/stunk => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/flunked, 17 +Found branch parent: (refs/remotes/flunked) 2797794585a816c8c8e738a795851235d0239006 +Following parent with do_switch +Successfully followed parent +r20 = 2d164db1b3fe91c33fc796cf2b2bd988e799e561 (refs/remotes/flunked) +ok 10 - follow-parent is atomic + +expecting success of 9104.11 'track multi-parent paths': + svn_cmd cp -m "resurrect /glob" "$svnrepo"/r9270 "$svnrepo"/glob && + git svn multi-fetch && + git cat-file commit refs/remotes/glob >actual && + grep "^parent " actual >actual2 && + test_line_count = 2 actual2 + +Committing transaction... +Committed revision 21. +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/r9270 => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/glob, 20 +Initializing parent: refs/remotes/glob@20 + A trunk/readme + A trunk/subversion/bindings/swig/perl/a.pm + A trunk/subversion/bindings/swig/perl/another-larger + A trunk/subversion/bindings/swig/perl/b.pm + A trunk/subversion/bindings/swig/perl/c.pm + A trunk/subversion/bindings/swig/perl/t/a.t + A trunk/subversion/bindings/swig/perl/t/b.t + A trunk/subversion/bindings/swig/perl/t/c.t + A trunk/subversion/bindings/swig/perl/t/larger-parent + A trunk/thunk/bump/thud/file +r13 = c061b236fb9e9860b7ba55d7d1be182c95f6799e (refs/remotes/glob@20) + D trunk/subversion/bindings/swig/perl/t/a.t + D trunk/subversion/bindings/swig/perl/t/b.t + D trunk/subversion/bindings/swig/perl/t/c.t + D trunk/subversion/bindings/swig/perl/t/larger-parent + D trunk/subversion/bindings/swig/perl/t/ + D trunk/subversion/bindings/swig/perl/a.pm + D trunk/subversion/bindings/swig/perl/b.pm + D trunk/subversion/bindings/swig/perl/c.pm + A trunk/subversion/bindings/swig/perl/native/a.pm + A trunk/subversion/bindings/swig/perl/native/b.pm + A trunk/subversion/bindings/swig/perl/native/c.pm + A trunk/subversion/bindings/swig/perl/native/t/a.t + A trunk/subversion/bindings/swig/perl/native/t/b.t + A trunk/subversion/bindings/swig/perl/native/t/c.t + A trunk/subversion/bindings/swig/perl/native/t/larger-parent +W: -empty_dir: r9270/trunk/subversion/bindings/swig/perl/a.pm +W: -empty_dir: r9270/trunk/subversion/bindings/swig/perl/b.pm +W: -empty_dir: r9270/trunk/subversion/bindings/swig/perl/c.pm +W: -empty_dir: r9270/trunk/subversion/bindings/swig/perl/t +r14 = eb1ab9eea62d6814f72501bf74bd6904dc5f7f03 (refs/remotes/glob@20) + A drunk/readme + A drunk/subversion/bindings/swig/perl/another-larger + A drunk/subversion/bindings/swig/perl/native/a.pm + A drunk/subversion/bindings/swig/perl/native/b.pm + A drunk/subversion/bindings/swig/perl/native/c.pm + A drunk/subversion/bindings/swig/perl/native/t/a.t + A drunk/subversion/bindings/swig/perl/native/t/b.t + A drunk/subversion/bindings/swig/perl/native/t/c.t + A drunk/subversion/bindings/swig/perl/native/t/larger-parent + A drunk/thunk/bump/thud/file +r15 = e126dd98192c54dbaa7f612f689a9bcecc78dbff (refs/remotes/glob@20) +Found branch parent: (refs/remotes/glob) e126dd98192c54dbaa7f612f689a9bcecc78dbff +Index mismatch: 3cd9c37c278d8b60927f43385900d57622921efe != b80e441d0bfb8031c1110b908fb333507c1b9180 +rereading e126dd98192c54dbaa7f612f689a9bcecc78dbff +Following parent with do_switch +Successfully followed parent +r21 = 0fc2478129a50c080bb446b8208786fc70e41327 (refs/remotes/glob) +ok 11 - track multi-parent paths + +expecting success of 9104.12 'multi-fetch continues to work': + git svn multi-fetch + +ok 12 - multi-fetch continues to work + +expecting success of 9104.13 'multi-fetch works off a 'clean' repository': + rm -rf "$GIT_DIR/svn" && + git for-each-ref --format="option no-deref%0adelete %(refname)" refs/remotes | + git update-ref --stdin && + git reflog expire --all --expire=all && + mkdir "$GIT_DIR/svn" && + git svn multi-fetch + + A readme +r1 = 3a5cf3450bcfcab92df252d6896781a04b595b20 (refs/remotes/svn/trunk) + M readme +r2 = 374c681eb193ecb0c8c6e4c75b72ca3e4d85f631 (refs/remotes/svn/trunk) +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/trunk => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/thunk, 2 +Found branch parent: (refs/remotes/svn/thunk) 374c681eb193ecb0c8c6e4c75b72ca3e4d85f631 +Following parent with do_switch + M readme +Successfully followed parent +r3 = f69a2a10d1f36e997b2ee96d6f8e8107b0b2a682 (refs/remotes/svn/thunk) +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/trunk => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/junk, 2 +Found branch parent: (refs/remotes/svn/junk) 374c681eb193ecb0c8c6e4c75b72ca3e4d85f631 +Following parent with do_switch +Successfully followed parent +r4 = d966311ca0d35d365fb51f916fea7ec6521957bf (refs/remotes/svn/junk) + A file +r5 = 7dfe9cee66f780ca19c3cd4c01d0a61311772f56 (refs/remotes/larger) +branch_from: /larger-parent => /larger-parent/trunk/thunk/bump/thud +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/larger-parent/trunk/thunk/bump/thud => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/another-larger/trunk/thunk/bump/thud, 5 +Found branch parent: (refs/remotes/larger-parent) 7dfe9cee66f780ca19c3cd4c01d0a61311772f56 +Following parent with do_switch +Successfully followed parent +r6 = 891ee1fe4feda0b5ade0b49cdbb2b3e2ac9893f7 (refs/remotes/larger-parent) +r9 = 532909b74a54e3ab15afcbcc1b8dde2bbe333a7d (refs/remotes/glob) +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/blob => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/glob/blob, 9 +Initializing parent: refs/remotes/blob@9 +r7 = 56bee88bcc1a64fea8135f5cb3b4a64dec5caffb (refs/remotes/blob@9) + A hi +r8 = 0784832d96d5228685bc17e3d5a393c98d863757 (refs/remotes/blob@9) +Found branch parent: (refs/remotes/blob) 0784832d96d5228685bc17e3d5a393c98d863757 +Following parent with do_switch +Successfully followed parent +r10 = fcb0b11b64cdfddcfc8d722591afab2cd9f3cbe4 (refs/remotes/blob) + A blob/hi +r10 = 82831d159608bda374ee950b6fd49a7f0f208562 (refs/remotes/glob) + D hi + A bye +W: -empty_dir: glob/blob/hi +r11 = 28d696d2192f906aa2b8c78673f0e9573b21c75c (refs/remotes/blob) + D blob/hi + A blob/bye +W: -empty_dir: glob/blob/hi +r11 = 06609b3bde62bbaf3623657e076a609a6aa089f7 (refs/remotes/glob) +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/r9270/trunk/subversion/bindings/swig/perl/t => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/r9270/trunk/subversion/bindings/swig/perl/native/t, 13 +Initializing parent: refs/remotes/r9270-t@13 + A a.t + A b.t + A c.t + A larger-parent +r13 = 0fb7656f54d88351d84af9f7b2b3618e9274a7b9 (refs/remotes/r9270-t@13) +Found branch parent: (refs/remotes/r9270-t) 0fb7656f54d88351d84af9f7b2b3618e9274a7b9 +Following parent with do_switch + M c.t +Successfully followed parent +r14 = 578e2c2fe5e8dbbef96b79cba1f7fdc653c13a54 (refs/remotes/r9270-t) +branch_from: /r9270/trunk => /r9270/trunk/subversion/bindings/swig/perl/native/t +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/r9270/trunk/subversion/bindings/swig/perl/native/t => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/r9270/drunk/subversion/bindings/swig/perl/native/t, 14 +Found branch parent: (refs/remotes/r9270-d) 578e2c2fe5e8dbbef96b79cba1f7fdc653c13a54 +Following parent with do_switch +Successfully followed parent +r15 = 47f2d959e0613540cdf214427dcaff0193749e61 (refs/remotes/r9270-d) + A readme +r16 = 56359ed0569507fb34db514265d31f6cc7ff6e82 (refs/remotes/stunk) + M readme +r17 = 2797794585a816c8c8e738a795851235d0239006 (refs/remotes/stunk) + M readme +r18 = 7c5f59d3907367ef534f45641806fd3b0f57b675 (refs/remotes/stunk) +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/stunk => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/flunk, 18 +Found branch parent: (refs/remotes/flunk) 7c5f59d3907367ef534f45641806fd3b0f57b675 +Following parent with do_switch +Successfully followed parent +r19 = f5becac1776f80d4e8b14318f80ba5adc6468da2 (refs/remotes/flunk) +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/stunk => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/flunked, 17 +Found branch parent: (refs/remotes/flunked) 2797794585a816c8c8e738a795851235d0239006 +Following parent with do_switch +Successfully followed parent +r20 = 2d164db1b3fe91c33fc796cf2b2bd988e799e561 (refs/remotes/flunked) +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/r9270 => file:///build/git-2.30.2/t/trash%20directory.t9104-git-svn-follow-parent/svnrepo/glob, 20 +Initializing parent: refs/remotes/glob@20 + A trunk/readme + A trunk/subversion/bindings/swig/perl/a.pm + A trunk/subversion/bindings/swig/perl/another-larger + A trunk/subversion/bindings/swig/perl/b.pm + A trunk/subversion/bindings/swig/perl/c.pm + A trunk/subversion/bindings/swig/perl/t/a.t + A trunk/subversion/bindings/swig/perl/t/b.t + A trunk/subversion/bindings/swig/perl/t/c.t + A trunk/subversion/bindings/swig/perl/t/larger-parent + A trunk/thunk/bump/thud/file +r13 = c061b236fb9e9860b7ba55d7d1be182c95f6799e (refs/remotes/glob@20) + D trunk/subversion/bindings/swig/perl/t/a.t + D trunk/subversion/bindings/swig/perl/t/b.t + D trunk/subversion/bindings/swig/perl/t/c.t + D trunk/subversion/bindings/swig/perl/t/larger-parent + D trunk/subversion/bindings/swig/perl/t/ + D trunk/subversion/bindings/swig/perl/a.pm + D trunk/subversion/bindings/swig/perl/b.pm + D trunk/subversion/bindings/swig/perl/c.pm + A trunk/subversion/bindings/swig/perl/native/a.pm + A trunk/subversion/bindings/swig/perl/native/b.pm + A trunk/subversion/bindings/swig/perl/native/c.pm + A trunk/subversion/bindings/swig/perl/native/t/a.t + A trunk/subversion/bindings/swig/perl/native/t/b.t + A trunk/subversion/bindings/swig/perl/native/t/c.t + A trunk/subversion/bindings/swig/perl/native/t/larger-parent +W: -empty_dir: r9270/trunk/subversion/bindings/swig/perl/a.pm +W: -empty_dir: r9270/trunk/subversion/bindings/swig/perl/b.pm +W: -empty_dir: r9270/trunk/subversion/bindings/swig/perl/c.pm +W: -empty_dir: r9270/trunk/subversion/bindings/swig/perl/t +r14 = eb1ab9eea62d6814f72501bf74bd6904dc5f7f03 (refs/remotes/glob@20) + A drunk/readme + A drunk/subversion/bindings/swig/perl/another-larger + A drunk/subversion/bindings/swig/perl/native/a.pm + A drunk/subversion/bindings/swig/perl/native/b.pm + A drunk/subversion/bindings/swig/perl/native/c.pm + A drunk/subversion/bindings/swig/perl/native/t/a.t + A drunk/subversion/bindings/swig/perl/native/t/b.t + A drunk/subversion/bindings/swig/perl/native/t/c.t + A drunk/subversion/bindings/swig/perl/native/t/larger-parent + A drunk/thunk/bump/thud/file +r15 = e126dd98192c54dbaa7f612f689a9bcecc78dbff (refs/remotes/glob@20) +Found branch parent: (refs/remotes/glob) e126dd98192c54dbaa7f612f689a9bcecc78dbff +Index mismatch: 3cd9c37c278d8b60927f43385900d57622921efe != b80e441d0bfb8031c1110b908fb333507c1b9180 +rereading e126dd98192c54dbaa7f612f689a9bcecc78dbff +Following parent with do_switch +Successfully followed parent +r21 = 0fc2478129a50c080bb446b8208786fc70e41327 (refs/remotes/glob) +ok 13 - multi-fetch works off a 'clean' repository + +# passed all 13 test(s) +1..13 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t9114-git-svn-dcommit-merge.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9114-git-svn-dcommit-merge/.git/ expecting success of 9114.1 'setup svn repository': @@ -397261,30 +397094,30 @@ git merge merge A README -r1 = 495b22d91010afe6c8640c4aa844ba73ba7d65cf (refs/remotes/origin/trunk) +r1 = eb4c7b90d6548b253e785725cc2628c4919465dd (refs/remotes/origin/trunk) Checked out HEAD: file:///build/git-2.30.2/t/trash%20directory.t9114-git-svn-dcommit-merge/svnrepo/trunk r1 Switched to a new branch 'svn' Switched to a new branch 'merge' -[merge 832e95f] New file +[merge 4e13ac0] New file Author: A U Thor 1 file changed, 1 insertion(+) create mode 100644 new_file -[merge 453e7c1] hello +[merge 7cc1c1b] hello Author: A U Thor 1 file changed, 1 insertion(+) -[merge e536c49] add some stuff +[merge f560e91] add some stuff Author: A U Thor 1 file changed, 1 insertion(+) Switched to branch 'svn' -[svn b6dcf09] friend +[svn 8ea91dd] friend Author: A U Thor 1 file changed, 1 insertion(+) Merging: -b6dcf09 friend +8ea91dd friend virtual merge found 1 common ancestor: -495b22d first commit +eb4c7b9 first commit Auto-merging README Merge made by the 'recursive' strategy. README | 1 + @@ -397308,14 +397141,14 @@ M README Committed r2 M README -r2 = 9fb079ab7a14d1a56d99d0a913d45d2e9c213e96 (refs/remotes/origin/trunk) +r2 = 1338123bc1f91f85cdba22a091ad917d5683049d (refs/remotes/origin/trunk) A new_file M README Committed r3 M README A new_file -r3 = 3316a50cac0281132868fe5b6f8a41f92fcf9e58 (refs/remotes/origin/trunk) -No changes between e3b9bb0f85bc7b573de344da5239929a4a45e8cc and refs/remotes/origin/trunk +r3 = f1259b646aa6e9fb3bedcebc8303341139ec1cc2 (refs/remotes/origin/trunk) +No changes between 3a040cadf0e5d2999fbd8e8a43385124b236161b and refs/remotes/origin/trunk Resetting to the latest refs/remotes/origin/trunk ok 4 - git svn dcommit merges @@ -397339,6 +397172,1718 @@ 1..6 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t9117-git-svn-init-clone.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9117-git-svn-init-clone/.git/ +expecting success of 9117.1 'setup svnrepo': + mkdir project project/trunk project/branches project/tags && + echo foo > project/trunk/foo && + svn_cmd import -m "$test_description" project "$svnrepo"/project && + rm -rf project + +Adding project/branches +Adding project/tags +Adding project/trunk +Adding project/trunk/foo +Committing transaction... +Committed revision 1. +ok 1 - setup svnrepo + +expecting success of 9117.2 'basic clone': + test ! -d trunk && + git svn clone "$svnrepo"/project/trunk && + test -d trunk/.git/svn && + test -e trunk/foo && + rm -rf trunk + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9117-git-svn-init-clone/tmp/trunk/.git/ + A foo +r1 = c2cd25155967e8dd787efc0fe3d237f00fc9dbf0 (refs/remotes/git-svn) +Checked out HEAD: + file:///build/git-2.30.2/t/trash%20directory.t9117-git-svn-init-clone/svnrepo/project/trunk r1 +ok 2 - basic clone + +expecting success of 9117.3 'clone to target directory': + test ! -d target && + git svn clone "$svnrepo"/project/trunk target && + test -d target/.git/svn && + test -e target/foo && + rm -rf target + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9117-git-svn-init-clone/tmp/target/.git/ + A foo +r1 = c2cd25155967e8dd787efc0fe3d237f00fc9dbf0 (refs/remotes/git-svn) +Checked out HEAD: + file:///build/git-2.30.2/t/trash%20directory.t9117-git-svn-init-clone/svnrepo/project/trunk r1 +ok 3 - clone to target directory + +expecting success of 9117.4 'clone with --stdlayout': + test ! -d project && + git svn clone -s "$svnrepo"/project && + test -d project/.git/svn && + test -e project/foo && + rm -rf project + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9117-git-svn-init-clone/tmp/project/.git/ +Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9117-git-svn-init-clone/svnrepo/project => file:///build/git-2.30.2/t/trash%20directory.t9117-git-svn-init-clone/svnrepo + A foo +r1 = c2cd25155967e8dd787efc0fe3d237f00fc9dbf0 (refs/remotes/origin/trunk) +Checked out HEAD: + file:///build/git-2.30.2/t/trash%20directory.t9117-git-svn-init-clone/svnrepo/project/trunk r1 +ok 4 - clone with --stdlayout + +expecting success of 9117.5 'clone to target directory with --stdlayout': + test ! -d target && + git svn clone -s "$svnrepo"/project target && + test -d target/.git/svn && + test -e target/foo && + rm -rf target + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9117-git-svn-init-clone/tmp/target/.git/ +Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9117-git-svn-init-clone/svnrepo/project => file:///build/git-2.30.2/t/trash%20directory.t9117-git-svn-init-clone/svnrepo + A foo +r1 = c2cd25155967e8dd787efc0fe3d237f00fc9dbf0 (refs/remotes/origin/trunk) +Checked out HEAD: + file:///build/git-2.30.2/t/trash%20directory.t9117-git-svn-init-clone/svnrepo/project/trunk r1 +ok 5 - clone to target directory with --stdlayout + +expecting success of 9117.6 'init without -s/-T/-b/-t does not warn': + test ! -d trunk && + git svn init "$svnrepo"/project/trunk trunk 2>warning && + ! grep -q prefix warning && + rm -rf trunk && + rm -f warning + +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9117-git-svn-init-clone/tmp/trunk/.git/ +ok 6 - init without -s/-T/-b/-t does not warn + +expecting success of 9117.7 'clone without -s/-T/-b/-t does not warn': + test ! -d trunk && + git svn clone "$svnrepo"/project/trunk 2>warning && + ! grep -q prefix warning && + rm -rf trunk && + rm -f warning + +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9117-git-svn-init-clone/tmp/trunk/.git/ + A foo +r1 = c2cd25155967e8dd787efc0fe3d237f00fc9dbf0 (refs/remotes/git-svn) +ok 7 - clone without -s/-T/-b/-t does not warn + +expecting success of 9117.8 'init with -s/-T/-b/-t assumes --prefix=origin/': + test ! -d project && + git svn init -s "$svnrepo"/project project 2>warning && + ! grep -q prefix warning && + test_svn_configured_prefix "origin/" && + rm -rf project && + rm -f warning + +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9117-git-svn-init-clone/tmp/project/.git/ +ok 8 - init with -s/-T/-b/-t assumes --prefix=origin/ + +expecting success of 9117.9 'clone with -s/-T/-b/-t assumes --prefix=origin/': + test ! -d project && + git svn clone -s "$svnrepo"/project 2>warning && + ! grep -q prefix warning && + test_svn_configured_prefix "origin/" && + rm -rf project && + rm -f warning + +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9117-git-svn-init-clone/tmp/project/.git/ + A foo +r1 = c2cd25155967e8dd787efc0fe3d237f00fc9dbf0 (refs/remotes/origin/trunk) +ok 9 - clone with -s/-T/-b/-t assumes --prefix=origin/ + +expecting success of 9117.10 'init with -s/-T/-b/-t and --prefix "" still works': + test ! -d project && + git svn init -s "$svnrepo"/project project --prefix "" 2>warning && + ! grep -q prefix warning && + test_svn_configured_prefix "" && + rm -rf project && + rm -f warning + +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9117-git-svn-init-clone/tmp/project/.git/ +ok 10 - init with -s/-T/-b/-t and --prefix "" still works + +expecting success of 9117.11 'clone with -s/-T/-b/-t and --prefix "" still works': + test ! -d project && + git svn clone -s "$svnrepo"/project --prefix "" 2>warning && + ! grep -q prefix warning && + test_svn_configured_prefix "" && + rm -rf project && + rm -f warning + +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9117-git-svn-init-clone/tmp/project/.git/ + A foo +r1 = c2cd25155967e8dd787efc0fe3d237f00fc9dbf0 (refs/remotes/trunk) +ok 11 - clone with -s/-T/-b/-t and --prefix "" still works + +expecting success of 9117.12 'init with -T as a full url works': + test ! -d project && + git svn init -T "$svnrepo"/project/trunk project && + rm -rf project + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9117-git-svn-init-clone/tmp/.git/ +Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9117-git-svn-init-clone/svnrepo/project/trunk => file:///build/git-2.30.2/t/trash%20directory.t9117-git-svn-init-clone/svnrepo +ok 12 - init with -T as a full url works + +# passed all 12 test(s) +1..12 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t9115-git-svn-dcommit-funky-renames.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9115-git-svn-dcommit-funky-renames/.git/ +expecting success of 9115.1 'load repository with strange names': + svnadmin load -q "$rawsvnrepo" <"$TEST_DIRECTORY"/t9115/funky-names.dump + +ok 1 - load repository with strange names + +expecting success of 9115.2 'init and fetch repository': + git svn init "$svnrepo" && + git svn fetch && + git reset --hard git-svn + + A leading space file + A #{cool_name} + A file name with spaces +W: +empty_dir: leading space +W: +empty_dir: #{bad_directory_name} +W: +empty_dir: dir name with spaces +W: +empty_dir: regular_dir_name +r1 = a10dc9ef404ca520f349a08a0c5c4458d02453d3 (refs/remotes/git-svn) +Checked out HEAD: + file:///build/git-2.30.2/t/trash%20directory.t9115-git-svn-dcommit-funky-renames/svnrepo r1 +creating empty directory: leading space +creating empty directory: #{bad_directory_name} +creating empty directory: dir name with spaces +creating empty directory: regular_dir_name +HEAD is now at a10dc9e what will those wacky people think of next? +ok 2 - init and fetch repository + +expecting success of 9115.3 'create file in existing ugly and empty dir': + mkdir -p "#{bad_directory_name}" && + echo hi > "#{bad_directory_name}/ foo" && + git update-index --add "#{bad_directory_name}/ foo" && + git commit -m "new file in ugly parent" && + git svn dcommit + +[master c4d613a] new file in ugly parent + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 #{bad_directory_name}/ foo +Committing to file:///build/git-2.30.2/t/trash%20directory.t9115-git-svn-dcommit-funky-renames/svnrepo ... + A #{bad_directory_name}/ foo +Committed r2 + A #{bad_directory_name}/ foo +r2 = 0799e2a4b623fd898eecb6f291e79b5430437a68 (refs/remotes/git-svn) +No changes between c4d613ad6e0fd6394fc01636342a7a590b06697a and refs/remotes/git-svn +Resetting to the latest refs/remotes/git-svn +ok 3 - create file in existing ugly and empty dir + +expecting success of 9115.4 'rename ugly file': + git mv "#{bad_directory_name}/ foo" "file name with feces" && + git commit -m "rename ugly file" && + git svn dcommit + +[master 6f81733] rename ugly file + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + rename #{bad_directory_name}/ foo => file name with feces (100%) +Committing to file:///build/git-2.30.2/t/trash%20directory.t9115-git-svn-dcommit-funky-renames/svnrepo ... + R #{bad_directory_name}/ foo => file name with feces +Committed r3 + D #{bad_directory_name}/ foo + A file name with feces +W: -empty_dir: #{bad_directory_name}/ foo +r3 = bd2914ba854d11535842b9735efd51dc57e3f05d (refs/remotes/git-svn) +No changes between 6f8173337ddd948e745892b843ecd2a830344639 and refs/remotes/git-svn +Resetting to the latest refs/remotes/git-svn +ok 4 - rename ugly file + +expecting success of 9115.5 'rename pretty file': + echo :x > pretty && + git update-index --add pretty && + git commit -m "pretty :x" && + git svn dcommit && + mkdir -p regular_dir_name && + git mv pretty regular_dir_name/pretty && + git commit -m "moved pretty file" && + git svn dcommit + +[master 2dfe573] pretty :x + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 pretty +Committing to file:///build/git-2.30.2/t/trash%20directory.t9115-git-svn-dcommit-funky-renames/svnrepo ... + A pretty +Committed r4 + A pretty +r4 = 63f03fcfabc0a20b0134cb73b633bfdb3714e15f (refs/remotes/git-svn) +No changes between 2dfe573685d81676307805f9c500d4a56673d95c and refs/remotes/git-svn +Resetting to the latest refs/remotes/git-svn +[master a269e54] moved pretty file + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + rename pretty => regular_dir_name/pretty (100%) +Committing to file:///build/git-2.30.2/t/trash%20directory.t9115-git-svn-dcommit-funky-renames/svnrepo ... + R pretty => regular_dir_name/pretty +Committed r5 + D pretty + A regular_dir_name/pretty +W: -empty_dir: pretty +r5 = 7f2db1a2c5c2d6d8d16eff36b3b11a4cd75cd707 (refs/remotes/git-svn) +No changes between a269e5405e4c550c4946a9a46d108e4a80c42040 and refs/remotes/git-svn +Resetting to the latest refs/remotes/git-svn +ok 5 - rename pretty file + +expecting success of 9115.6 'rename pretty file into ugly one': + git mv regular_dir_name/pretty "#{bad_directory_name}/ booboo" && + git commit -m booboo && + git svn dcommit + +[master 08af452] booboo + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + rename regular_dir_name/pretty => #{bad_directory_name}/ booboo (100%) +Committing to file:///build/git-2.30.2/t/trash%20directory.t9115-git-svn-dcommit-funky-renames/svnrepo ... + R regular_dir_name/pretty => #{bad_directory_name}/ booboo +Committed r6 + A #{bad_directory_name}/ booboo + D regular_dir_name/pretty +W: -empty_dir: regular_dir_name/pretty +r6 = 1d3782aef89569f30d32255d728eba0c06198a24 (refs/remotes/git-svn) +No changes between 08af452485ef63f480f32a5d8de6c5e7835e2e26 and refs/remotes/git-svn +Resetting to the latest refs/remotes/git-svn +ok 6 - rename pretty file into ugly one + +expecting success of 9115.7 'add a file with plus signs': + echo .. > +_+ && + git update-index --add +_+ && + git commit -m plus && + mkdir gtk+ && + git mv +_+ gtk+/_+_ && + git commit -m plus_dir && + git svn dcommit + +[master c3b9a31] plus + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 +_+ +[master 971bbe5] plus_dir + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + rename +_+ => gtk+/_+_ (100%) +Committing to file:///build/git-2.30.2/t/trash%20directory.t9115-git-svn-dcommit-funky-renames/svnrepo ... + A +_+ +Committed r7 + A +_+ +r7 = cb5eb638215be6fea17b84a61c8140abab55dc89 (refs/remotes/git-svn) + R +_+ => gtk+/_+_ +Committed r8 + D +_+ + A gtk+/_+_ +W: -empty_dir: +_+ +r8 = 25bb6e215a614b9624a7e5e60e425c6652461a63 (refs/remotes/git-svn) +No changes between 971bbe513bb24b6657901757582cfc7bc086abb7 and refs/remotes/git-svn +Resetting to the latest refs/remotes/git-svn +ok 7 - add a file with plus signs + +expecting success of 9115.8 'clone the repository to test rebase': + git svn clone "$svnrepo" test-rebase && + ( + cd test-rebase && + echo test-rebase >test-rebase && + git add test-rebase && + git commit -m test-rebase + ) + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9115-git-svn-dcommit-funky-renames/test-rebase/.git/ + A leading space file + A #{cool_name} + A file name with spaces +W: +empty_dir: leading space +W: +empty_dir: #{bad_directory_name} +W: +empty_dir: dir name with spaces +W: +empty_dir: regular_dir_name +r1 = a10dc9ef404ca520f349a08a0c5c4458d02453d3 (refs/remotes/git-svn) + A #{bad_directory_name}/ foo +r2 = 0799e2a4b623fd898eecb6f291e79b5430437a68 (refs/remotes/git-svn) + D #{bad_directory_name}/ foo + A file name with feces +W: -empty_dir: #{bad_directory_name}/ foo +r3 = bd2914ba854d11535842b9735efd51dc57e3f05d (refs/remotes/git-svn) + A pretty +r4 = 63f03fcfabc0a20b0134cb73b633bfdb3714e15f (refs/remotes/git-svn) + D pretty + A regular_dir_name/pretty +W: -empty_dir: pretty +r5 = 7f2db1a2c5c2d6d8d16eff36b3b11a4cd75cd707 (refs/remotes/git-svn) + A #{bad_directory_name}/ booboo + D regular_dir_name/pretty +W: -empty_dir: regular_dir_name/pretty +r6 = 1d3782aef89569f30d32255d728eba0c06198a24 (refs/remotes/git-svn) + A +_+ +r7 = cb5eb638215be6fea17b84a61c8140abab55dc89 (refs/remotes/git-svn) + D +_+ + A gtk+/_+_ +W: -empty_dir: +_+ +r8 = 25bb6e215a614b9624a7e5e60e425c6652461a63 (refs/remotes/git-svn) +Checked out HEAD: + file:///build/git-2.30.2/t/trash%20directory.t9115-git-svn-dcommit-funky-renames/svnrepo r8 +creating empty directory: leading space +creating empty directory: dir name with spaces +creating empty directory: regular_dir_name +[master 01a4432] test-rebase + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 test-rebase +ok 8 - clone the repository to test rebase + +expecting success of 9115.9 'make a commit to test rebase': + echo test-rebase-main > test-rebase-main && + git add test-rebase-main && + git commit -m test-rebase-main && + git svn dcommit + +[master 05ee37a] test-rebase-main + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 test-rebase-main +Committing to file:///build/git-2.30.2/t/trash%20directory.t9115-git-svn-dcommit-funky-renames/svnrepo ... + A test-rebase-main +Committed r9 + A test-rebase-main +r9 = 5f5b9eaf03a6e47d1d6b0e948dbd8b42de42a396 (refs/remotes/git-svn) +No changes between 05ee37a27e433082a8b71af2cd9873241be25cea and refs/remotes/git-svn +Resetting to the latest refs/remotes/git-svn +ok 9 - make a commit to test rebase + +expecting success of 9115.10 'git svn rebase works inside a fresh-cloned repository': + ( + cd test-rebase && + git svn rebase && + test -e test-rebase-main && + test -e test-rebase + ) + A test-rebase-main +r9 = 5f5b9eaf03a6e47d1d6b0e948dbd8b42de42a396 (refs/remotes/git-svn) +Rebasing (1/1) Successfully rebased and updated refs/heads/master. +ok 10 - git svn rebase works inside a fresh-cloned repository + +checking prerequisite: UTF8_NFD_TO_NFC + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-UTF8_NFD_TO_NFC" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-UTF8_NFD_TO_NFC" && + # check whether FS converts nfd unicode to nfc + auml=$(printf "\303\244") + aumlcdiar=$(printf "\141\314\210") + >"$auml" && + test -f "$aumlcdiar" + +) +prerequisite UTF8_NFD_TO_NFC not satisfied +expecting success of 9115.11 'svn.pathnameencoding=cp932 new file on dcommit': + LC_ALL=$a_utf8_locale && + export LC_ALL && + neq=$(printf "\201\202") && + git config svn.pathnameencoding cp932 && + echo neq >"$neq" && + git add "$neq" && + git commit -m "neq" && + git svn dcommit + +[master 6d60383] neq + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 "\201\202" +Committing to file:///build/git-2.30.2/t/trash%20directory.t9115-git-svn-dcommit-funky-renames/svnrepo ... + A ‚ +Committed r10 + A ‚ +r10 = 392c05d9d01a9f4df609c71f294b264979860b6b (refs/remotes/git-svn) +No changes between 6d603836cc7892a120eaac12f9f49c36708eccb3 and refs/remotes/git-svn +Resetting to the latest refs/remotes/git-svn +ok 11 - svn.pathnameencoding=cp932 new file on dcommit + +expecting success of 9115.12 'svn.pathnameencoding=cp932 rename on dcommit': + LC_ALL=$a_utf8_locale && + export LC_ALL && + inf=$(printf "\201\207") && + git config svn.pathnameencoding cp932 && + echo inf >"$inf" && + git add "$inf" && + git commit -m "inf" && + git svn dcommit && + git mv "$inf" inf && + git commit -m "inf rename" && + git svn dcommit + +[master 5fba299] inf + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 "\201\207" +Committing to file:///build/git-2.30.2/t/trash%20directory.t9115-git-svn-dcommit-funky-renames/svnrepo ... + A ‡ +Committed r11 + A ‡ +r11 = cb43996a39d35fb1af29bce1ed000e94dfbd620b (refs/remotes/git-svn) +No changes between 5fba299c331d67253ecfbccdc9d39dd4294f07cb and refs/remotes/git-svn +Resetting to the latest refs/remotes/git-svn +[master f1c2ec3] inf rename + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + rename "\201\207" => inf (100%) +Committing to file:///build/git-2.30.2/t/trash%20directory.t9115-git-svn-dcommit-funky-renames/svnrepo ... + R ‡ => inf +Committed r12 + D ‡ + A inf +W: -empty_dir: ∞ +r12 = 7ae296af3b795d699bca28605795add209714a5f (refs/remotes/git-svn) +No changes between f1c2ec36c7ba3abf2e54ac1fb13193c3790d6caf and refs/remotes/git-svn +Resetting to the latest refs/remotes/git-svn +ok 12 - svn.pathnameencoding=cp932 rename on dcommit + +# passed all 12 test(s) +1..12 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t9119-git-svn-info.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9119-git-svn-info/.git/ +1..0 # SKIP skipping svn-info test (SVN version: 1.14.1 not supported) +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t9118-git-svn-funky-branch-names.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9118-git-svn-funky-branch-names/.git/ +expecting success of 9118.1 'setup svnrepo': + mkdir project project/trunk project/branches project/tags && + echo foo > project/trunk/foo && + svn_cmd import -m "$test_description" project "$svnrepo/pr ject" && + rm -rf project && + svn_cmd cp -m "fun" "$svnrepo/pr ject/trunk" \ + "$svnrepo/pr ject/branches/fun plugin" && + svn_cmd cp -m "more fun!" "$svnrepo/pr ject/branches/fun plugin" \ + "$svnrepo/pr ject/branches/more fun plugin!" && + svn_cmd cp -m "scary" "$svnrepo/pr ject/branches/fun plugin" \ + "$svnrepo/pr ject/branches/$scary_uri" && + svn_cmd cp -m "leading dot" "$svnrepo/pr ject/trunk" \ + "$svnrepo/pr ject/branches/.leading_dot" && + if test_have_prereq !MINGW + then + svn_cmd cp -m "trailing dot" "$svnrepo/pr ject/trunk" \ + "$svnrepo/pr ject/branches/trailing_dot." + fi && + svn_cmd cp -m "trailing .lock" "$svnrepo/pr ject/trunk" \ + "$svnrepo/pr ject/branches/trailing_dotlock.lock" && + svn_cmd cp -m "reflog" "$svnrepo/pr ject/trunk" \ + "$svnrepo/pr ject/branches/not-a@{0}reflog@" && + maybe_start_httpd + +Adding project/branches +Adding project/tags +Adding project/trunk +Adding project/trunk/foo +Committing transaction... +Committed revision 1. +Committing transaction... +Committed revision 2. +Committing transaction... +Committed revision 3. +Committing transaction... +Committed revision 4. +Committing transaction... +Committed revision 5. +Committing transaction... +Committed revision 6. +Committing transaction... +Committed revision 7. +Committing transaction... +Committed revision 8. +ok 1 - setup svnrepo + +expecting success of 9118.2 'test clone with funky branch names': + git svn clone -s "$svnrepo/pr ject" project && + ( + cd project && + git rev-parse "refs/remotes/origin/fun%20plugin" && + git rev-parse "refs/remotes/origin/more%20fun%20plugin!" && + git rev-parse "refs/remotes/origin/$scary_ref" && + git rev-parse "refs/remotes/origin/%2Eleading_dot" && + if test_have_prereq !MINGW + then + git rev-parse "refs/remotes/origin/trailing_dot%2E" + fi && + git rev-parse "refs/remotes/origin/trailing_dotlock%2Elock" && + git rev-parse "refs/remotes/origin/$non_reflog" + ) + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9118-git-svn-funky-branch-names/project/.git/ +Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9118-git-svn-funky-branch-names/svnrepo/pr%20ject => file:///build/git-2.30.2/t/trash%20directory.t9118-git-svn-funky-branch-names/svnrepo + A foo +r1 = 512480ef7a0f23b5fa62e0f8d9bad14f29a7d0cc (refs/remotes/origin/trunk) +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9118-git-svn-funky-branch-names/svnrepo/pr%20ject/trunk => file:///build/git-2.30.2/t/trash%20directory.t9118-git-svn-funky-branch-names/svnrepo/pr%20ject/branches/fun%20plugin, 1 +Found branch parent: (refs/remotes/origin/fun plugin) 512480ef7a0f23b5fa62e0f8d9bad14f29a7d0cc +Following parent with do_switch +Successfully followed parent +r2 = f8ff8724b005440deb8f5b2dda7737f2d4bb1ecf (refs/remotes/origin/fun plugin) +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9118-git-svn-funky-branch-names/svnrepo/pr%20ject/branches/fun%20plugin => file:///build/git-2.30.2/t/trash%20directory.t9118-git-svn-funky-branch-names/svnrepo/pr%20ject/branches/more%20fun%20plugin!, 2 +Found branch parent: (refs/remotes/origin/more fun plugin!) f8ff8724b005440deb8f5b2dda7737f2d4bb1ecf +Following parent with do_switch +Successfully followed parent +r3 = a247655ad77bd65097ea75f69068e4230f67ff4e (refs/remotes/origin/more fun plugin!) +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9118-git-svn-funky-branch-names/svnrepo/pr%20ject/branches/fun%20plugin => file:///build/git-2.30.2/t/trash%20directory.t9118-git-svn-funky-branch-names/svnrepo/pr%20ject/branches/Abo-Uebernahme%20(Bug%20%23994), 3 +Found branch parent: (refs/remotes/origin/Abo-Uebernahme (Bug #994)) f8ff8724b005440deb8f5b2dda7737f2d4bb1ecf +Following parent with do_switch +Successfully followed parent +r4 = 8faa9f7b7a48c2ee967d0ef046e1f262da7e470f (refs/remotes/origin/Abo-Uebernahme (Bug #994)) +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9118-git-svn-funky-branch-names/svnrepo/pr%20ject/trunk => file:///build/git-2.30.2/t/trash%20directory.t9118-git-svn-funky-branch-names/svnrepo/pr%20ject/branches/.leading_dot, 4 +Found branch parent: (refs/remotes/origin/.leading_dot) 512480ef7a0f23b5fa62e0f8d9bad14f29a7d0cc +Following parent with do_switch +Successfully followed parent +r5 = c85d8b613af9b1f469200c827897165827bf0822 (refs/remotes/origin/.leading_dot) +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9118-git-svn-funky-branch-names/svnrepo/pr%20ject/trunk => file:///build/git-2.30.2/t/trash%20directory.t9118-git-svn-funky-branch-names/svnrepo/pr%20ject/branches/trailing_dot., 5 +Found branch parent: (refs/remotes/origin/trailing_dot.) 512480ef7a0f23b5fa62e0f8d9bad14f29a7d0cc +Following parent with do_switch +Successfully followed parent +r6 = 11e449b3251f8c271cce3f655eac9d4e5e4a2d93 (refs/remotes/origin/trailing_dot.) +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9118-git-svn-funky-branch-names/svnrepo/pr%20ject/trunk => file:///build/git-2.30.2/t/trash%20directory.t9118-git-svn-funky-branch-names/svnrepo/pr%20ject/branches/trailing_dotlock.lock, 6 +Found branch parent: (refs/remotes/origin/trailing_dotlock.lock) 512480ef7a0f23b5fa62e0f8d9bad14f29a7d0cc +Following parent with do_switch +Successfully followed parent +r7 = 16fffded0be4694ab32bdedda258b3a9de459266 (refs/remotes/origin/trailing_dotlock.lock) +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9118-git-svn-funky-branch-names/svnrepo/pr%20ject/trunk => file:///build/git-2.30.2/t/trash%20directory.t9118-git-svn-funky-branch-names/svnrepo/pr%20ject/branches/not-a@%7B0%7Dreflog, 7 +Found branch parent: (refs/remotes/origin/not-a@{0}reflog) 512480ef7a0f23b5fa62e0f8d9bad14f29a7d0cc +Following parent with do_switch +Successfully followed parent +r8 = de519994bdd96d779ad09ba907ce622cc752aa22 (refs/remotes/origin/not-a@{0}reflog) +Checked out HEAD: + file:///build/git-2.30.2/t/trash%20directory.t9118-git-svn-funky-branch-names/svnrepo/pr%20ject/trunk r1 +f8ff8724b005440deb8f5b2dda7737f2d4bb1ecf +a247655ad77bd65097ea75f69068e4230f67ff4e +8faa9f7b7a48c2ee967d0ef046e1f262da7e470f +c85d8b613af9b1f469200c827897165827bf0822 +11e449b3251f8c271cce3f655eac9d4e5e4a2d93 +16fffded0be4694ab32bdedda258b3a9de459266 +de519994bdd96d779ad09ba907ce622cc752aa22 +ok 2 - test clone with funky branch names + +expecting success of 9118.3 'test dcommit to funky branch': + ( + cd project && + git reset --hard 'refs/remotes/origin/more%20fun%20plugin!' && + echo hello >> foo && + git commit -m 'hello' -- foo && + git svn dcommit + ) + +HEAD is now at a247655 more fun! +[master d9b2113] hello + Author: A U Thor + 1 file changed, 1 insertion(+) +Committing to file:///build/git-2.30.2/t/trash%20directory.t9118-git-svn-funky-branch-names/svnrepo/pr%20ject/branches/more%20fun%20plugin! ... + M foo +Committed r9 + M foo +r9 = a084add431fa7f465b76fd66bf4dfe3accf22d66 (refs/remotes/origin/more fun plugin!) +No changes between d9b21134ab2258c88650752fc1f183e53df836ff and refs/remotes/origin/more%20fun%20plugin! +Resetting to the latest refs/remotes/origin/more%20fun%20plugin! +ok 3 - test dcommit to funky branch + +expecting success of 9118.4 'test dcommit to scary branch': + ( + cd project && + git reset --hard "refs/remotes/origin/$scary_ref" && + echo urls are scary >> foo && + git commit -m "eep" -- foo && + git svn dcommit + ) + +HEAD is now at 8faa9f7 scary +[master d5034e3] eep + Author: A U Thor + 1 file changed, 1 insertion(+) +Committing to file:///build/git-2.30.2/t/trash%20directory.t9118-git-svn-funky-branch-names/svnrepo/pr%20ject/branches/Abo-Uebernahme%20(Bug%20%23994) ... + M foo +Committed r10 + M foo +r10 = ce7de0b7bfafd9cb7a53aa86f220e8f127f8fe4b (refs/remotes/origin/Abo-Uebernahme (Bug #994)) +No changes between d5034e3572cdcf86f84a3552e51e1fbe09f1a847 and refs/remotes/origin/Abo-Uebernahme%20(Bug%20#994) +Resetting to the latest refs/remotes/origin/Abo-Uebernahme%20(Bug%20#994) +ok 4 - test dcommit to scary branch + +expecting success of 9118.5 'test dcommit to trailing_dotlock branch': + ( + cd project && + git reset --hard "refs/remotes/origin/trailing_dotlock%2Elock" && + echo who names branches like this anyway? >> foo && + git commit -m "bar" -- foo && + git svn dcommit + ) + +HEAD is now at 16fffde trailing .lock +[master 6104720] bar + Author: A U Thor + 1 file changed, 1 insertion(+) +Committing to file:///build/git-2.30.2/t/trash%20directory.t9118-git-svn-funky-branch-names/svnrepo/pr%20ject/branches/trailing_dotlock.lock ... + M foo +Committed r11 + M foo +r11 = 5bae86f45fe03e0d62445d89ff7ac63cab951017 (refs/remotes/origin/trailing_dotlock.lock) +No changes between 6104720171a534705da442daec425066d6b8a855 and refs/remotes/origin/trailing_dotlock%2Elock +Resetting to the latest refs/remotes/origin/trailing_dotlock%2Elock +ok 5 - test dcommit to trailing_dotlock branch + +# passed all 5 test(s) +1..5 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t9116-git-svn-log.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9116-git-svn-log/.git/ +expecting success of 9116.1 'setup repository and import': + mkdir import && + ( + cd import && + for i in trunk branches/a branches/b tags/0.1 tags/0.2 tags/0.3 + do + mkdir -p $i && + echo hello >>$i/README || + exit 1 + done && + svn_cmd import -m test . "$svnrepo" + ) && + git svn init "$svnrepo" -T trunk -b branches -t tags && + git svn fetch && + git reset --hard origin/trunk && + echo bye >> README && + git commit -a -m bye && + git svn dcommit && + git reset --hard origin/a && + echo why >> FEEDME && + git update-index --add FEEDME && + git commit -m feedme && + git svn dcommit && + git reset --hard origin/trunk && + echo aye >> README && + git commit -a -m aye && + git svn dcommit && + git reset --hard origin/b && + echo spy >> README && + git commit -a -m spy && + echo try >> README && + git commit -a -m try && + git svn dcommit + +Adding branches +Adding branches/a +Adding branches/a/README +Adding branches/b +Adding branches/b/README +Adding tags +Adding tags/0.1 +Adding tags/0.1/README +Adding tags/0.2 +Adding tags/0.2/README +Adding tags/0.3 +Adding tags/0.3/README +Adding trunk +Adding trunk/README +Committing transaction... +Committed revision 1. + A README +r1 = 72d6e4201b3b5378406eadcb1cbdab14da563a83 (refs/remotes/origin/tags/0.1) + A README +r1 = aa25f62bfb79931eb955d757f540c51b0ea1f56c (refs/remotes/origin/trunk) + A README +r1 = 9d79c1c7d4456d90278c0b592e83339e94d0f9d1 (refs/remotes/origin/tags/0.3) + A README +r1 = 4ce6886dcaa6a46be59d4dcd6c120261c65bb949 (refs/remotes/origin/a) + A README +r1 = 3b8520f0ba05e3f011707d93fa34ff69856086ad (refs/remotes/origin/b) + A README +r1 = b50d3c3965cd579c7e8b68ccc29a21c998604c5d (refs/remotes/origin/tags/0.2) +Checked out HEAD: + file:///build/git-2.30.2/t/trash%20directory.t9116-git-svn-log/svnrepo/trunk r1 +HEAD is now at aa25f62 test +[master 27827fe] bye + Author: A U Thor + 1 file changed, 1 insertion(+) +Committing to file:///build/git-2.30.2/t/trash%20directory.t9116-git-svn-log/svnrepo/trunk ... + M README +Committed r2 + M README +r2 = f9a4a4d9fe4383dbb742efa50291cbf287fe9576 (refs/remotes/origin/trunk) +No changes between 27827fe842a2a8c4aacca24290079e20d91bb1a9 and refs/remotes/origin/trunk +Resetting to the latest refs/remotes/origin/trunk +HEAD is now at 4ce6886 test +[master b14f2f5] feedme + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 FEEDME +Committing to file:///build/git-2.30.2/t/trash%20directory.t9116-git-svn-log/svnrepo/branches/a ... + A FEEDME +Committed r3 + A FEEDME +r3 = f2f90e3fb788144744278cc21f5102e5ef187702 (refs/remotes/origin/a) +No changes between b14f2f5695f38e78eb96b962bb4275ee1766c951 and refs/remotes/origin/a +Resetting to the latest refs/remotes/origin/a +HEAD is now at f9a4a4d bye +[master 252a3e8] aye + Author: A U Thor + 1 file changed, 1 insertion(+) +Committing to file:///build/git-2.30.2/t/trash%20directory.t9116-git-svn-log/svnrepo/trunk ... + M README +Committed r4 + M README +r4 = effdb3aba0dbcba9b803b907fde0b3f5646eb14c (refs/remotes/origin/trunk) +No changes between 252a3e86c41a90cd0dcc6a266adc65b1f4032547 and refs/remotes/origin/trunk +Resetting to the latest refs/remotes/origin/trunk +HEAD is now at 3b8520f test +[master e31c8c8] spy + Author: A U Thor + 1 file changed, 1 insertion(+) +[master d1c5a6c] try + Author: A U Thor + 1 file changed, 1 insertion(+) +Committing to file:///build/git-2.30.2/t/trash%20directory.t9116-git-svn-log/svnrepo/branches/b ... + M README +Committed r5 + M README +r5 = 719bc40f14440935cb846f1082b82162f92c9b9c (refs/remotes/origin/b) + M README +Committed r6 + M README +r6 = 0edc2b713489b159638453b2896651845ea8b0a4 (refs/remotes/origin/b) +No changes between d1c5a6cb74f42a5666400fa270427a815a3ecb59 and refs/remotes/origin/b +Resetting to the latest refs/remotes/origin/b +ok 1 - setup repository and import + +expecting success of 9116.2 'run log': + git reset --hard origin/a && + git svn log -r2 origin/trunk >out && + grep ^r2 out && + git svn log -r4 origin/trunk >out && + grep ^r4 out && + git svn log -r3 >out && + grep ^r3 out + +HEAD is now at f2f90e3 feedme +r2 | pbuilder2 | 2023-04-29 18:45:50 +0000 (Sat, 29 Apr 2023) | 2 lines +r4 | pbuilder2 | 2023-04-29 18:46:03 +0000 (Sat, 29 Apr 2023) | 2 lines +r3 | pbuilder2 | 2023-04-29 18:45:56 +0000 (Sat, 29 Apr 2023) | 2 lines +ok 2 - run log + +expecting success of 9116.3 'run log against a from trunk': + git reset --hard origin/trunk && + git svn log -r3 origin/a >out && + grep ^r3 out + +HEAD is now at effdb3a aye +r3 | pbuilder2 | 2023-04-29 18:45:56 +0000 (Sat, 29 Apr 2023) | 2 lines +ok 3 - run log against a from trunk + +expecting success of 9116.4 'test ascending revision range': + git reset --hard origin/trunk && + git svn log -r 1:4 | grep '^r[0-9]' | cut -d'|' -f1 | test_cmp expected-range-r1-r2-r4 - + +HEAD is now at effdb3a aye +ok 4 - test ascending revision range + +expecting success of 9116.5 'test ascending revision range with --show-commit': + git reset --hard origin/trunk && + git svn log --show-commit -r 1:4 | grep '^r[0-9]' | cut -d'|' -f1 | test_cmp expected-range-r1-r2-r4 - + +HEAD is now at effdb3a aye +ok 5 - test ascending revision range with --show-commit + +expecting success of 9116.6 'test ascending revision range with --show-commit (sha1)': + git svn find-rev r1 >expected-range-r1-r2-r4-sha1 && + git svn find-rev r2 >>expected-range-r1-r2-r4-sha1 && + git svn find-rev r4 >>expected-range-r1-r2-r4-sha1 && + git reset --hard origin/trunk && + git svn log --show-commit -r 1:4 | grep '^r[0-9]' | cut -d'|' -f2 >out && + git rev-parse $(cat out) >actual && + test_cmp expected-range-r1-r2-r4-sha1 actual + +HEAD is now at effdb3a aye +ok 6 - test ascending revision range with --show-commit (sha1) + +expecting success of 9116.7 'test descending revision range': + git reset --hard origin/trunk && + git svn log -r 4:1 | grep '^r[0-9]' | cut -d'|' -f1 | test_cmp expected-range-r4-r2-r1 - + +HEAD is now at effdb3a aye +ok 7 - test descending revision range + +expecting success of 9116.8 'test ascending revision range with unreachable revision': + git reset --hard origin/trunk && + git svn log -r 1:3 | grep '^r[0-9]' | cut -d'|' -f1 | test_cmp expected-range-r1-r2 - + +HEAD is now at effdb3a aye +ok 8 - test ascending revision range with unreachable revision + +expecting success of 9116.9 'test descending revision range with unreachable revision': + git reset --hard origin/trunk && + git svn log -r 3:1 | grep '^r[0-9]' | cut -d'|' -f1 | test_cmp expected-range-r2-r1 - + +HEAD is now at effdb3a aye +ok 9 - test descending revision range with unreachable revision + +expecting success of 9116.10 'test ascending revision range with unreachable upper boundary revision and 1 commit': + git reset --hard origin/trunk && + git svn log -r 2:3 | grep '^r[0-9]' | cut -d'|' -f1 | test_cmp expected-range-r2 - + +HEAD is now at effdb3a aye +ok 10 - test ascending revision range with unreachable upper boundary revision and 1 commit + +expecting success of 9116.11 'test descending revision range with unreachable upper boundary revision and 1 commit': + git reset --hard origin/trunk && + git svn log -r 3:2 | grep '^r[0-9]' | cut -d'|' -f1 | test_cmp expected-range-r2 - + +HEAD is now at effdb3a aye +ok 11 - test descending revision range with unreachable upper boundary revision and 1 commit + +expecting success of 9116.12 'test ascending revision range with unreachable lower boundary revision and 1 commit': + git reset --hard origin/trunk && + git svn log -r 3:4 | grep '^r[0-9]' | cut -d'|' -f1 | test_cmp expected-range-r4 - + +HEAD is now at effdb3a aye +ok 12 - test ascending revision range with unreachable lower boundary revision and 1 commit + +expecting success of 9116.13 'test descending revision range with unreachable lower boundary revision and 1 commit': + git reset --hard origin/trunk && + git svn log -r 4:3 | grep '^r[0-9]' | cut -d'|' -f1 | test_cmp expected-range-r4 - + +HEAD is now at effdb3a aye +ok 13 - test descending revision range with unreachable lower boundary revision and 1 commit + +expecting success of 9116.14 'test ascending revision range with unreachable boundary revisions and no commits': + git reset --hard origin/trunk && + git svn log -r 5:6 | test_cmp expected-separator - + +HEAD is now at effdb3a aye +ok 14 - test ascending revision range with unreachable boundary revisions and no commits + +expecting success of 9116.15 'test descending revision range with unreachable boundary revisions and no commits': + git reset --hard origin/trunk && + git svn log -r 6:5 | test_cmp expected-separator - + +HEAD is now at effdb3a aye +ok 15 - test descending revision range with unreachable boundary revisions and no commits + +expecting success of 9116.16 'test ascending revision range with unreachable boundary revisions and 1 commit': + git reset --hard origin/trunk && + git svn log -r 3:5 | grep '^r[0-9]' | cut -d'|' -f1 | test_cmp expected-range-r4 - + +HEAD is now at effdb3a aye +ok 16 - test ascending revision range with unreachable boundary revisions and 1 commit + +expecting success of 9116.17 'test descending revision range with unreachable boundary revisions and 1 commit': + git reset --hard origin/trunk && + git svn log -r 5:3 | grep '^r[0-9]' | cut -d'|' -f1 | test_cmp expected-range-r4 - + +HEAD is now at effdb3a aye +ok 17 - test descending revision range with unreachable boundary revisions and 1 commit + +# passed all 17 test(s) +1..17 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t9120-git-svn-clone-with-percent-escapes.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9120-git-svn-clone-with-percent-escapes/.git/ +expecting success of 9120.1 'setup svnrepo': + mkdir project project/trunk project/branches project/tags && + echo foo > project/trunk/foo && + svn_cmd import -m "$test_description" project "$svnrepo/pr ject" && + svn_cmd cp -m "branch" "$svnrepo/pr ject/trunk" \ + "$svnrepo/pr ject/branches/b" && + svn_cmd cp -m "tag" "$svnrepo/pr ject/trunk" \ + "$svnrepo/pr ject/tags/v1" && + rm -rf project && + maybe_start_httpd + +Adding project/branches +Adding project/tags +Adding project/trunk +Adding project/trunk/foo +Committing transaction... +Committed revision 1. +Committing transaction... +Committed revision 2. +Committing transaction... +Committed revision 3. +ok 1 - setup svnrepo + +expecting success of 9120.2 'test clone with percent escapes': + git svn clone "$svnrepo/pr%20ject" clone && + ( + cd clone && + git rev-parse refs/remotes/git-svn + ) + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9120-git-svn-clone-with-percent-escapes/clone/.git/ + A trunk/foo +W: +empty_dir: branches +W: +empty_dir: tags +r1 = 3e791c3a3c52050d75ce3ded8ec5f9cb4851d5d7 (refs/remotes/git-svn) + A branches/b/foo +r2 = 068818233e1b84970285431ce76bc00793f760ee (refs/remotes/git-svn) + A tags/v1/foo +r3 = 70be4614ffbf03265c83bb4d8fea4cd8f1135fbb (refs/remotes/git-svn) +Checked out HEAD: + file:///build/git-2.30.2/t/trash%20directory.t9120-git-svn-clone-with-percent-escapes/svnrepo/pr%20ject r3 +70be4614ffbf03265c83bb4d8fea4cd8f1135fbb +ok 2 - test clone with percent escapes + +expecting success of 9120.3 'svn checkout with percent escapes': + svn_cmd checkout "$svnrepo/pr%20ject" svn.percent && + svn_cmd checkout "$svnrepo/pr%20ject/trunk" svn.percent.trunk + +A svn.percent/branches +A svn.percent/branches/b +A svn.percent/branches/b/foo +A svn.percent/tags +A svn.percent/tags/v1 +A svn.percent/tags/v1/foo +A svn.percent/trunk +A svn.percent/trunk/foo +Checked out revision 3. +A svn.percent.trunk/foo +Checked out revision 3. +ok 3 - svn checkout with percent escapes + +expecting success of 9120.4 'svn checkout with space': + svn_cmd checkout "$svnrepo/pr ject" svn.space && + svn_cmd checkout "$svnrepo/pr ject/trunk" svn.space.trunk + +A svn.space/branches +A svn.space/branches/b +A svn.space/branches/b/foo +A svn.space/tags +A svn.space/tags/v1 +A svn.space/tags/v1/foo +A svn.space/trunk +A svn.space/trunk/foo +Checked out revision 3. +A svn.space.trunk/foo +Checked out revision 3. +ok 4 - svn checkout with space + +expecting success of 9120.5 'test clone trunk with percent escapes and minimize-url': + git svn clone --minimize-url "$svnrepo/pr%20ject/trunk" minimize && + ( + cd minimize && + git rev-parse refs/remotes/git-svn + ) + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9120-git-svn-clone-with-percent-escapes/minimize/.git/ +Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9120-git-svn-clone-with-percent-escapes/svnrepo/pr%20ject/trunk => file:///build/git-2.30.2/t/trash%20directory.t9120-git-svn-clone-with-percent-escapes/svnrepo + A foo +r1 = f29221b9d83e0f1b00991887bea3ec90e42e9dc6 (refs/remotes/git-svn) +Checked out HEAD: + file:///build/git-2.30.2/t/trash%20directory.t9120-git-svn-clone-with-percent-escapes/svnrepo/pr%20ject/trunk r1 +f29221b9d83e0f1b00991887bea3ec90e42e9dc6 +ok 5 - test clone trunk with percent escapes and minimize-url + +expecting success of 9120.6 'test clone trunk with percent escapes': + git svn clone "$svnrepo/pr%20ject/trunk" trunk && + ( + cd trunk && + git rev-parse refs/remotes/git-svn + ) + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9120-git-svn-clone-with-percent-escapes/trunk/.git/ + A foo +r1 = f29221b9d83e0f1b00991887bea3ec90e42e9dc6 (refs/remotes/git-svn) +Checked out HEAD: + file:///build/git-2.30.2/t/trash%20directory.t9120-git-svn-clone-with-percent-escapes/svnrepo/pr%20ject/trunk r1 +f29221b9d83e0f1b00991887bea3ec90e42e9dc6 +ok 6 - test clone trunk with percent escapes + +expecting success of 9120.7 'test clone --stdlayout with percent escapes': + git svn clone --stdlayout "$svnrepo/pr%20ject" percent && + ( + cd percent && + git rev-parse refs/remotes/origin/trunk^0 && + git rev-parse refs/remotes/origin/b^0 && + git rev-parse refs/remotes/origin/tags/v1^0 + ) + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9120-git-svn-clone-with-percent-escapes/percent/.git/ +Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9120-git-svn-clone-with-percent-escapes/svnrepo/pr%20ject => file:///build/git-2.30.2/t/trash%20directory.t9120-git-svn-clone-with-percent-escapes/svnrepo + A foo +r1 = f29221b9d83e0f1b00991887bea3ec90e42e9dc6 (refs/remotes/origin/trunk) +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9120-git-svn-clone-with-percent-escapes/svnrepo/pr%20ject/trunk => file:///build/git-2.30.2/t/trash%20directory.t9120-git-svn-clone-with-percent-escapes/svnrepo/pr%20ject/branches/b, 1 +Found branch parent: (refs/remotes/origin/b) f29221b9d83e0f1b00991887bea3ec90e42e9dc6 +Following parent with do_switch +Successfully followed parent +r2 = f3438b597791cd3bac0a9d5de1dd6b7068368232 (refs/remotes/origin/b) +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9120-git-svn-clone-with-percent-escapes/svnrepo/pr%20ject/trunk => file:///build/git-2.30.2/t/trash%20directory.t9120-git-svn-clone-with-percent-escapes/svnrepo/pr%20ject/tags/v1, 2 +Found branch parent: (refs/remotes/origin/tags/v1) f29221b9d83e0f1b00991887bea3ec90e42e9dc6 +Following parent with do_switch +Successfully followed parent +r3 = 145b30ac1a13b1d5ecba3f3c423255f7baaea95e (refs/remotes/origin/tags/v1) +Checked out HEAD: + file:///build/git-2.30.2/t/trash%20directory.t9120-git-svn-clone-with-percent-escapes/svnrepo/pr%20ject/trunk r1 +f29221b9d83e0f1b00991887bea3ec90e42e9dc6 +f3438b597791cd3bac0a9d5de1dd6b7068368232 +145b30ac1a13b1d5ecba3f3c423255f7baaea95e +ok 7 - test clone --stdlayout with percent escapes + +expecting success of 9120.8 'test clone -s with unescaped space': + git svn clone -s "$svnrepo/pr ject" --prefix origin/ space && + ( + cd space && + git rev-parse refs/remotes/origin/trunk^0 && + git rev-parse refs/remotes/origin/b^0 && + git rev-parse refs/remotes/origin/tags/v1^0 + ) + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9120-git-svn-clone-with-percent-escapes/space/.git/ +Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9120-git-svn-clone-with-percent-escapes/svnrepo/pr%20ject => file:///build/git-2.30.2/t/trash%20directory.t9120-git-svn-clone-with-percent-escapes/svnrepo + A foo +r1 = f29221b9d83e0f1b00991887bea3ec90e42e9dc6 (refs/remotes/origin/trunk) +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9120-git-svn-clone-with-percent-escapes/svnrepo/pr%20ject/trunk => file:///build/git-2.30.2/t/trash%20directory.t9120-git-svn-clone-with-percent-escapes/svnrepo/pr%20ject/branches/b, 1 +Found branch parent: (refs/remotes/origin/b) f29221b9d83e0f1b00991887bea3ec90e42e9dc6 +Following parent with do_switch +Successfully followed parent +r2 = f3438b597791cd3bac0a9d5de1dd6b7068368232 (refs/remotes/origin/b) +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9120-git-svn-clone-with-percent-escapes/svnrepo/pr%20ject/trunk => file:///build/git-2.30.2/t/trash%20directory.t9120-git-svn-clone-with-percent-escapes/svnrepo/pr%20ject/tags/v1, 2 +Found branch parent: (refs/remotes/origin/tags/v1) f29221b9d83e0f1b00991887bea3ec90e42e9dc6 +Following parent with do_switch +Successfully followed parent +r3 = 145b30ac1a13b1d5ecba3f3c423255f7baaea95e (refs/remotes/origin/tags/v1) +Checked out HEAD: + file:///build/git-2.30.2/t/trash%20directory.t9120-git-svn-clone-with-percent-escapes/svnrepo/pr%20ject/trunk r1 +f29221b9d83e0f1b00991887bea3ec90e42e9dc6 +f3438b597791cd3bac0a9d5de1dd6b7068368232 +145b30ac1a13b1d5ecba3f3c423255f7baaea95e +ok 8 - test clone -s with unescaped space + +# passed all 8 test(s) +1..8 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t9121-git-svn-fetch-renamed-dir.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9121-git-svn-fetch-renamed-dir/.git/ +expecting success of 9121.1 'load repository with renamed directory': + svnadmin load -q "$rawsvnrepo" < "$TEST_DIRECTORY"/t9121/renamed-dir.dump + +ok 1 - load repository with renamed directory + +expecting success of 9121.2 'init and fetch repository': + git svn init "$svnrepo/newname" && + git svn fetch + + A a.txt +r2 = ec4b875c72eb6b492589eaac3cb7e8cfe72b4756 (refs/remotes/git-svn) +Checked out HEAD: + file:///build/git-2.30.2/t/trash%20directory.t9121-git-svn-fetch-renamed-dir/svnrepo/newname r2 +ok 2 - init and fetch repository + +# passed all 2 test(s) +1..2 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t9123-git-svn-rebuild-with-rewriteroot.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9123-git-svn-rebuild-with-rewriteroot/.git/ +expecting success of 9123.1 'init, fetch and checkout repository': + git svn init --rewrite-root=http://invalid.invalid/ "$svnrepo" && + git svn fetch && + git checkout -b mybranch remotes/git-svn + + A foo +r1 = 1b7288f74be5a8353c4e4c2a80597ad105eacdb3 (refs/remotes/git-svn) +Checked out HEAD: + file:///build/git-2.30.2/t/trash%20directory.t9123-git-svn-rebuild-with-rewriteroot/svnrepo r1 +Switched to a new branch 'mybranch' +ok 1 - init, fetch and checkout repository + +expecting success of 9123.2 'remove rev_map': + rm "$GIT_SVN_DIR"/.rev_map.* + +ok 2 - remove rev_map + +expecting success of 9123.3 'rebuild rev_map': + git svn rebase >/dev/null + +ok 3 - rebuild rev_map + +# passed all 3 test(s) +1..3 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t9122-git-svn-author.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9122-git-svn-author/.git/ +expecting success of 9122.1 'setup svn repository': + svn_cmd checkout "$svnrepo" work.svn && + ( + cd work.svn && + echo >file && + svn_cmd add file && + svn_cmd commit -m "first commit" file + ) + +Checked out revision 0. +A file +Adding file +Transmitting file data .done +Committing transaction... +Committed revision 1. +ok 1 - setup svn repository + +expecting success of 9122.2 'interact with it via git svn': + mkdir work.git && + ( + cd work.git && + git svn init "$svnrepo" && + git svn fetch && + + echo modification >file && + test_tick && + git commit -a -m second && + + test_tick && + git svn dcommit && + + echo "further modification" >file && + test_tick && + git commit -a -m third && + + test_tick && + git svn --add-author-from dcommit && + + echo "yet further modification" >file && + test_tick && + git commit -a -m fourth && + + test_tick && + git svn --add-author-from --use-log-author dcommit && + + git log && + + git show -s HEAD^^ >../actual.2 && + git show -s HEAD^ >../actual.3 && + git show -s HEAD >../actual.4 + + ) && + + # Make sure that --add-author-from without --use-log-author + # did not affect the authorship information + myself=$(grep "^Author: " actual.2) && + unaffected=$(grep "^Author: " actual.3) && + test "z$myself" = "z$unaffected" && + + # Make sure lack of --add-author-from did not add cruft + ! grep "^ From: A U Thor " actual.2 && + + # Make sure --add-author-from added cruft + grep "^ From: A U Thor " actual.3 && + grep "^ From: A U Thor " actual.4 && + + # Make sure --add-author-from with --use-log-author affected + # the authorship information + grep "^Author: A U Thor " actual.4 && + + # Make sure there are no commit messages with excess blank lines + test $(grep "^ " actual.2 | wc -l) = 3 && + test $(grep "^ " actual.3 | wc -l) = 5 && + test $(grep "^ " actual.4 | wc -l) = 5 && + + # Make sure there are no svn commit messages with excess blank lines + ( + cd work.svn && + svn_cmd up && + + test $(svn_cmd log -r2:2 | wc -l) = 5 && + test $(svn_cmd log -r4:4 | wc -l) = 7 + ) + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9122-git-svn-author/work.git/.git/ + A file +r1 = 312a8dff4e5fd9a14bbfb9b4d705d4e0b4a12b10 (refs/remotes/git-svn) +Checked out HEAD: + file:///build/git-2.30.2/t/trash%20directory.t9122-git-svn-author/svnrepo r1 +[master 1d10792] second + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +Committing to file:///build/git-2.30.2/t/trash%20directory.t9122-git-svn-author/svnrepo ... + M file +Committed r2 + M file +r2 = 333f6f7130b0412f463fbb8da7417adf8b5c6f9b (refs/remotes/git-svn) +No changes between 1d1079255b3a115297ed67d22c54208fe971ca4e and refs/remotes/git-svn +Resetting to the latest refs/remotes/git-svn +[master 2ab0c4b] third + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +Committing to file:///build/git-2.30.2/t/trash%20directory.t9122-git-svn-author/svnrepo ... + M file +Committed r3 + M file +r3 = ccde7d71b523f0a0f242d3b1e3793e30e89e416b (refs/remotes/git-svn) +No changes between 2ab0c4b648ed26869dd2a53884ade42dcdbb3431 and refs/remotes/git-svn +Resetting to the latest refs/remotes/git-svn +[master 5b1b536] fourth + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +Committing to file:///build/git-2.30.2/t/trash%20directory.t9122-git-svn-author/svnrepo ... + M file +Committed r4 + M file +r4 = 8dc391d80f468dd7b3f56ed7d107b0e785fba775 (refs/remotes/git-svn) +No changes between 5b1b536e0780faa2f284d8149430fbecb0c14daa and refs/remotes/git-svn +Resetting to the latest refs/remotes/git-svn +commit 8dc391d80f468dd7b3f56ed7d107b0e785fba775 +Author: A U Thor +Date: Sat Apr 29 18:48:02 2023 +0000 + + fourth + + From: A U Thor + + git-svn-id: file:///build/git-2.30.2/t/trash%20directory.t9122-git-svn-author/svnrepo@4 d077ff0c-6557-4da2-a91b-89327079a360 + +commit ccde7d71b523f0a0f242d3b1e3793e30e89e416b +Author: pbuilder2 +Date: Sat Apr 29 18:47:55 2023 +0000 + + third + + From: A U Thor + + git-svn-id: file:///build/git-2.30.2/t/trash%20directory.t9122-git-svn-author/svnrepo@3 d077ff0c-6557-4da2-a91b-89327079a360 + +commit 333f6f7130b0412f463fbb8da7417adf8b5c6f9b +Author: pbuilder2 +Date: Sat Apr 29 18:47:49 2023 +0000 + + second + + git-svn-id: file:///build/git-2.30.2/t/trash%20directory.t9122-git-svn-author/svnrepo@2 d077ff0c-6557-4da2-a91b-89327079a360 + +commit 312a8dff4e5fd9a14bbfb9b4d705d4e0b4a12b10 +Author: pbuilder2 +Date: Sat Apr 29 18:47:35 2023 +0000 + + first commit + + git-svn-id: file:///build/git-2.30.2/t/trash%20directory.t9122-git-svn-author/svnrepo@1 d077ff0c-6557-4da2-a91b-89327079a360 + From: A U Thor + From: A U Thor +Author: A U Thor +Updating '.': +U file +Updated to revision 4. +ok 2 - interact with it via git svn + +# passed all 2 test(s) +1..2 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t9126-git-svn-follow-deleted-readded-directory.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9126-git-svn-follow-deleted-readded-directory/.git/ +1..0 # SKIP skipping svnserve test. (set $GIT_TEST_SVNSERVE to enable) +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t9124-git-svn-dcommit-auto-props.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9124-git-svn-dcommit-auto-props/.git/ +expecting success of 9124.1 'initialize git svn': + mkdir import && + ( + cd import && + echo foo >foo && + svn_cmd import -m "import for git svn" . "$svnrepo" + ) && + rm -rf import && + git svn init "$svnrepo" && + git svn fetch + +Adding foo +Committing transaction... +Committed revision 1. + A foo +r1 = 650dbf5ea7ba0e3876e85f490f46e9d763c11263 (refs/remotes/git-svn) +Checked out HEAD: + file:///build/git-2.30.2/t/trash%20directory.t9124-git-svn-dcommit-auto-props/svnrepo r1 +ok 1 - initialize git svn + +expecting success of 9124.2 'enable auto-props config': + mkdir user && + generate_auto_props yes >user/config + +ok 2 - enable auto-props config + +expecting success of 9124.3 'add files matching auto-props': + write_script exec1.sh hello.txt && + echo bar >bar && + git add exec1.sh hello.txt bar && + git commit -m "files for enabled auto-props" && + git svn dcommit --config-dir=user + +[master 2172150] files for enabled auto-props + Author: A U Thor + 3 files changed, 3 insertions(+) + create mode 100644 bar + create mode 100755 exec1.sh + create mode 100644 hello.txt +Committing to file:///build/git-2.30.2/t/trash%20directory.t9124-git-svn-dcommit-auto-props/svnrepo ... + A bar + A exec1.sh + A hello.txt +Committed r2 + A bar + A exec1.sh + A hello.txt +r2 = 9ca7375302157d1d7eddff4251f0c84166fc7007 (refs/remotes/git-svn) +No changes between 2172150878510e1759a02d2e8f078a0ca04938e3 and refs/remotes/git-svn +Resetting to the latest refs/remotes/git-svn +ok 3 - add files matching auto-props + +expecting success of 9124.4 'disable auto-props config': + generate_auto_props no >user/config + +ok 4 - disable auto-props config + +expecting success of 9124.5 'add files matching disabled auto-props': + write_script exec2.sh world.txt && + echo zot >zot && + git add exec2.sh world.txt zot && + git commit -m "files for disabled auto-props" && + git svn dcommit --config-dir=user + +[master b4c9f6e] files for disabled auto-props + Author: A U Thor + 3 files changed, 3 insertions(+) + create mode 100755 exec2.sh + create mode 100644 world.txt + create mode 100644 zot +Committing to file:///build/git-2.30.2/t/trash%20directory.t9124-git-svn-dcommit-auto-props/svnrepo ... + A exec2.sh + A world.txt + A zot +Committed r3 + A exec2.sh + A world.txt + A zot +r3 = bf13590fa093bde2e2c2d81a16c96d56828fd39d (refs/remotes/git-svn) +No changes between b4c9f6e378cdd660fb597e8af668f8748555ed31 and refs/remotes/git-svn +Resetting to the latest refs/remotes/git-svn +ok 5 - add files matching disabled auto-props + +expecting success of 9124.6 'check resulting svn repository': +( + mkdir work && + cd work && + svn_cmd co "$svnrepo" && + cd svnrepo && + + # Check properties from first commit. + if test_have_prereq POSIXPERM + then + test "x$(svn_cmd propget svn:executable exec1.sh)" = "x*" + fi && + test "x$(svn_cmd propget svn:mime-type exec1.sh)" = \ + "xapplication/x-shellscript" && + test "x$(svn_cmd propget svn:mime-type hello.txt)" = "xtext/plain" && + test "x$(svn_cmd propget svn:eol-style hello.txt)" = "xnative" && + test "x$(svn_cmd propget svn:mime-type bar)" = "x" && + + # Check properties from second commit. + if test_have_prereq POSIXPERM + then + test "x$(svn_cmd propget svn:executable exec2.sh)" = "x*" + fi && + test "x$(svn_cmd propget svn:mime-type exec2.sh)" = "x" && + test "x$(svn_cmd propget svn:mime-type world.txt)" = "x" && + test "x$(svn_cmd propget svn:eol-style world.txt)" = "x" && + test "x$(svn_cmd propget svn:mime-type zot)" = "x" +) + +A svnrepo/bar +A svnrepo/exec1.sh +A svnrepo/exec2.sh +A svnrepo/foo +A svnrepo/hello.txt +A svnrepo/world.txt +A svnrepo/zot +Checked out revision 3. +svn: warning: W200017: Property 'svn:mime-type' not found on 'bar' +svn: E200000: A problem occurred; see other errors for details +svn: warning: W200017: Property 'svn:mime-type' not found on 'exec2.sh' +svn: E200000: A problem occurred; see other errors for details +svn: warning: W200017: Property 'svn:mime-type' not found on 'world.txt' +svn: E200000: A problem occurred; see other errors for details +svn: warning: W200017: Property 'svn:eol-style' not found on 'world.txt' +svn: E200000: A problem occurred; see other errors for details +svn: warning: W200017: Property 'svn:mime-type' not found on 'zot' +svn: E200000: A problem occurred; see other errors for details +ok 6 - check resulting svn repository + +expecting success of 9124.7 'check renamed file': + test -d user && + generate_auto_props yes > user/config && + git mv foo foo.sh && + git commit -m "foo => foo.sh" && + git svn dcommit --config-dir=user && + ( + cd work/svnrepo && + svn_cmd up && + test ! -e foo && + test -e foo.sh && + test "x$(svn_cmd propget svn:mime-type foo.sh)" = \ + "xapplication/x-shellscript" && + test "x$(svn_cmd propget svn:eol-style foo.sh)" = "xLF" + ) + +[master 3f7f805] foo => foo.sh + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + rename foo => foo.sh (100%) +Committing to file:///build/git-2.30.2/t/trash%20directory.t9124-git-svn-dcommit-auto-props/svnrepo ... + R foo => foo.sh +Committed r4 + D foo + A foo.sh +W: -empty_dir: foo +r4 = f77ff48f4c3504a1a5af8d97b22ca22f7c393ca5 (refs/remotes/git-svn) +No changes between 3f7f805a5185426f5f33ea23f3118e42935444c0 and refs/remotes/git-svn +Resetting to the latest refs/remotes/git-svn +Updating '.': +D foo +A foo.sh +Updated to revision 4. +ok 7 - check renamed file + +# passed all 7 test(s) +1..7 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t9128-git-svn-cmd-branch.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9128-git-svn-cmd-branch/.git/ +skipping test t9128 altogether +1..0 # SKIP skip all tests in t9128 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t9125-git-svn-multi-glob-branch-names.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9125-git-svn-multi-glob-branch-names/.git/ +expecting success of 9125.1 'setup svnrepo': + mkdir project project/trunk project/branches \ + project/branches/v14.1 project/tags && + echo foo > project/trunk/foo && + svn_cmd import -m "$test_description" project "$svnrepo/project" && + rm -rf project && + svn_cmd cp -m "fun" "$svnrepo/project/trunk" \ + "$svnrepo/project/branches/v14.1/beta" && + svn_cmd cp -m "more fun!" "$svnrepo/project/branches/v14.1/beta" \ + "$svnrepo/project/branches/v14.1/gold" + +Adding project/branches +Adding project/branches/v14.1 +Adding project/tags +Adding project/trunk +Adding project/trunk/foo +Committing transaction... +Committed revision 1. +Committing transaction... +Committed revision 2. +Committing transaction... +Committed revision 3. +ok 1 - setup svnrepo + +expecting success of 9125.2 'test clone with multi-glob in branch names': + git svn clone -T trunk -b branches/*/* -t tags \ + "$svnrepo/project" project && + (cd project && + git rev-parse "refs/remotes/origin/v14.1/beta" && + git rev-parse "refs/remotes/origin/v14.1/gold" + ) + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9125-git-svn-multi-glob-branch-names/project/.git/ +Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9125-git-svn-multi-glob-branch-names/svnrepo/project => file:///build/git-2.30.2/t/trash%20directory.t9125-git-svn-multi-glob-branch-names/svnrepo + A foo +r1 = 14aa46f0f6824af3befa74ad9f9f1278fd6017d9 (refs/remotes/origin/trunk) +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9125-git-svn-multi-glob-branch-names/svnrepo/project/trunk => file:///build/git-2.30.2/t/trash%20directory.t9125-git-svn-multi-glob-branch-names/svnrepo/project/branches/v14.1/beta, 1 +Found branch parent: (refs/remotes/origin/v14.1/beta) 14aa46f0f6824af3befa74ad9f9f1278fd6017d9 +Following parent with do_switch +Successfully followed parent +r2 = 79e08836d78557361c2b1344e85b5a325bac8d9c (refs/remotes/origin/v14.1/beta) +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9125-git-svn-multi-glob-branch-names/svnrepo/project/branches/v14.1/beta => file:///build/git-2.30.2/t/trash%20directory.t9125-git-svn-multi-glob-branch-names/svnrepo/project/branches/v14.1/gold, 2 +Found branch parent: (refs/remotes/origin/v14.1/gold) 79e08836d78557361c2b1344e85b5a325bac8d9c +Following parent with do_switch +Successfully followed parent +r3 = b21f117409edc70fee59781fc4dd2cfe63079f3c (refs/remotes/origin/v14.1/gold) +Checked out HEAD: + file:///build/git-2.30.2/t/trash%20directory.t9125-git-svn-multi-glob-branch-names/svnrepo/project/trunk r1 +79e08836d78557361c2b1344e85b5a325bac8d9c +b21f117409edc70fee59781fc4dd2cfe63079f3c +ok 2 - test clone with multi-glob in branch names + +expecting success of 9125.3 'test dcommit to multi-globbed branch': + (cd project && + git reset --hard 'refs/remotes/origin/v14.1/gold' && + echo hello >> foo && + git commit -m 'hello' -- foo && + git svn dcommit + ) + +HEAD is now at b21f117 more fun! +[master c1fce33] hello + Author: A U Thor + 1 file changed, 1 insertion(+) +Committing to file:///build/git-2.30.2/t/trash%20directory.t9125-git-svn-multi-glob-branch-names/svnrepo/project/branches/v14.1/gold ... + M foo +Committed r4 + M foo +r4 = 1c8b9c1464b3925543a431d7d2cb2dc15a484530 (refs/remotes/origin/v14.1/gold) +No changes between c1fce33884cf70f04f7cee77182743b46cb368ed and refs/remotes/origin/v14.1/gold +Resetting to the latest refs/remotes/origin/v14.1/gold +ok 3 - test dcommit to multi-globbed branch + +# passed all 3 test(s) +1..3 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t9001-send-email.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9001-send-email/.git/ expecting success of 9001.1 'prepare reference tree': @@ -397416,8 +398961,8 @@ One , two@example.com Subject: [PATCH 1/1] Second. -Date: Sat, 29 Apr 2023 16:47:48 +0000 -Message-Id: <20230429164748.6104-1-nobody@example.com> +Date: Sat, 29 Apr 2023 18:40:13 +0000 +Message-Id: <20230429184013.4267-1-nobody@example.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit @@ -397456,8 +399001,8 @@ One , two@example.com Subject: [PATCH 1/1] Second. -Date: Sat, 29 Apr 2023 16:47:50 +0000 -Message-Id: <20230429164750.6253-1-nobody@example.com> +Date: Sat, 29 Apr 2023 18:40:17 +0000 +Message-Id: <20230429184017.4858-1-nobody@example.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit @@ -397498,8 +399043,8 @@ One , two@example.com Subject: [PATCH 1/1] Second. -Date: Sat, 29 Apr 2023 16:47:51 +0000 -Message-Id: <20230429164751.6465-1-nobody@example.com> +Date: Sat, 29 Apr 2023 18:40:21 +0000 +Message-Id: <20230429184021.5520-1-nobody@example.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit @@ -397565,7 +399110,7 @@ Date: Thu Apr 7 15:13:13 2005 -0700 1 file changed, 1 insertion(+) create mode 100644 cc-trailer.t -/tmp/7H0dIEqF1Q/0001-Test-Cc-trailers.patch +/tmp/8WQYhfRHC4/0001-Test-Cc-trailers.patch (mbox) Adding cc: A U Thor from line 'From: A U Thor ' (body) Adding cc: one@example.com from line 'Cc: one@example.com' (body) Adding cc: from line 'Cc: # trailing comments are ignored' @@ -397585,8 +399130,8 @@ five@example.com, six@example.com Subject: [PATCH] Test Cc: trailers. -Date: Sat, 29 Apr 2023 16:47:53 +0000 -Message-Id: <20230429164753.6716-1-author@example.com> +Date: Sat, 29 Apr 2023 18:40:25 +0000 +Message-Id: <20230429184025.5986-1-author@example.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit @@ -397614,7 +399159,7 @@ --smtp-server="$(pwd)/fake.sendmail" && test_cmp expected-cc commandline1 -/tmp/AawAI4H5ra/0001-Second.patch +/tmp/CoU4mrvjjD/0001-Second.patch (mbox) Adding cc: A from line 'From: A ' (cc-cmd) Adding cc: One Person from: './expected-cc-script.sh' (cc-cmd) Adding cc: Two Person from: './expected-cc-script.sh' @@ -397634,8 +399179,8 @@ five@example.com (open list:FOR THING (FOO/bar)), six@example.com (open list) Subject: [PATCH] Second. -Date: Sat, 29 Apr 2023 16:47:55 +0000 -Message-Id: <20230429164755.6986-1-author@example.com> +Date: Sat, 29 Apr 2023 18:40:30 +0000 +Message-Id: <20230429184030.6323-1-author@example.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit @@ -397697,8 +399242,8 @@ From: A U Thor To: nobody@example.com Subject: [PATCH] test suppress-cc.self unquoted-self_name_suppressed with name A U Thor email author@example.com -Date: Sat, 29 Apr 2023 16:47:57 +0000 -Message-Id: <20230429164757.7184-1-author@example.com> +Date: Sat, 29 Apr 2023 18:40:33 +0000 +Message-Id: <20230429184033.6725-1-author@example.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit @@ -397725,8 +399270,8 @@ From: "A U. Thor" To: nobody@example.com Subject: [PATCH] test suppress-cc.self quoted-self_name_dot_suppressed with name A U. Thor email author@example.com -Date: Sat, 29 Apr 2023 16:47:59 +0000 -Message-Id: <20230429164759.7460-1-author@example.com> +Date: Sat, 29 Apr 2023 18:40:38 +0000 +Message-Id: <20230429184038.7275-1-author@example.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit @@ -397753,8 +399298,8 @@ From: =?UTF-8?q?F=C3=BC=C3=B1n=C3=BD=20N=C3=A2m=C3=A9?= To: nobody@example.com Subject: [PATCH] =?UTF-8?q?test=20suppress-cc.self=20quoted-non=5Fascii=5F?= =?UTF-8?q?self=5Fsuppressed=20with=20name=20F=C3=BC=C3=B1n=C3=BD=20N?= =?UTF-8?q?=C3=A2m=C3=A9=20email=20odd=5F=3F=3Dmail@example.com?= -Date: Sat, 29 Apr 2023 16:48:00 +0000 -Message-Id: <20230429164800.7644-1-odd_?=mail@example.com> +Date: Sat, 29 Apr 2023 18:40:41 +0000 +Message-Id: <20230429184041.7684-1-odd_?=mail@example.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -397782,8 +399327,8 @@ From: =?UTF-8?q?=C6=91=C3=BC=C3=B1n=C3=AD=C4=99=C5=99=20=E2=82=AC=2E=20N=C3=A2=E1=B9=81=C3=A9?= To: nobody@example.com Subject: [PATCH] =?UTF-8?q?test=20suppress-cc.self=20quoted-long=5Fnon=5Fa?= =?UTF-8?q?scii=5Fself=5Fsuppressed=20with=20name=20=C6=91=C3=BC=C3=B1n?= =?UTF-8?q?=C3=AD=C4=99=C5=99=20=E2=82=AC.=20N=C3=A2=E1=B9=81=C3=A9=20emai?= =?UTF-8?q?l=20odd=5F=3F=3Dmail@example.com?= -Date: Sat, 29 Apr 2023 16:48:02 +0000 -Message-Id: <20230429164802.7897-1-odd_?=mail@example.com> +Date: Sat, 29 Apr 2023 18:40:46 +0000 +Message-Id: <20230429184046.8217-1-odd_?=mail@example.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -397811,8 +399356,8 @@ From: "A U. Thor" To: nobody@example.com Subject: [PATCH] test suppress-cc.self unquoted-self_name_sanitized_suppressed with name "A U. Thor" email author@example.com -Date: Sat, 29 Apr 2023 16:48:04 +0000 -Message-Id: <20230429164804.8069-1-author@example.com> +Date: Sat, 29 Apr 2023 18:40:50 +0000 +Message-Id: <20230429184050.8737-1-author@example.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit @@ -397863,8 +399408,8 @@ two@example.com, C O Mitter Subject: [PATCH 1/1] Second. -Date: Sat, 29 Apr 2023 16:48:07 +0000 -Message-Id: <20230429164807.8386-1-author@example.com> +Date: Sat, 29 Apr 2023 18:40:57 +0000 +Message-Id: <20230429184057.9579-1-author@example.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit @@ -397884,47 +399429,44 @@ git var GIT_AUTHOR_IDENT ) -Author identity unknown - -*** Please tell me who you are. - -Run - - git config --global user.email "you@example.com" - git config --global user.name "Your Name" - -to set your account's default identity. -Omit --global to set the identity only in this repository. - -fatal: empty ident name (for ) not allowed -prerequisite AUTOIDENT not satisfied -ok 28 # skip implicit ident is allowed (missing AUTOIDENT of PERL,AUTOIDENT) - -expecting success of 9001.29 'broken implicit ident aborts send-email': +second user 1112912293 -0700 +prerequisite AUTOIDENT ok +expecting success of 9001.28 'implicit ident is allowed': clean_fake_sendmail && (sane_unset GIT_AUTHOR_NAME && sane_unset GIT_AUTHOR_EMAIL && sane_unset GIT_COMMITTER_NAME && sane_unset GIT_COMMITTER_EMAIL && - GIT_SEND_EMAIL_NOTTY=1 && export GIT_SEND_EMAIL_NOTTY && - test_must_fail git send-email \ + GIT_SEND_EMAIL_NOTTY=1 git send-email \ --smtp-server="$(pwd)/fake.sendmail" \ --to=to@example.com \ - $patches errors && - test_i18ngrep "tell me who you are" errors + $patches errors ) -checking prerequisite: C_LOCALE_OUTPUT +0001-Second.patch +(mbox) Adding cc: A from line 'From: A ' +(mbox) Adding cc: One from line 'Cc: One , two@example.com' +(mbox) Adding cc: two@example.com from line 'Cc: One , two@example.com' +(body) Adding cc: C O Mitter from line 'Signed-off-by: C O Mitter ' +OK. Log says: +Sendmail: /build/git-2.30.2/t/trash directory.t9001-send-email/fake.sendmail -i to@example.com author@example.com one@example.com two@example.com committer@example.com +From: second user +To: to@example.com +Cc: A , + One , + two@example.com, + C O Mitter +Subject: [PATCH 1/1] Second. +Date: Sat, 29 Apr 2023 18:41:00 +0000 +Message-Id: <20230429184100.9975-1-user@i-capture-the-hostname> +X-Mailer: git-send-email 2.30.2 +MIME-Version: 1.0 +Content-Transfer-Encoding: 8bit -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false +Result: OK +ok 28 - implicit ident is allowed -) -prerequisite C_LOCALE_OUTPUT ok -*** Please tell me who you are. -ok 29 - broken implicit ident aborts send-email +ok 29 # skip broken implicit ident aborts send-email (missing !AUTOIDENT of PERL,!AUTOIDENT) expecting success of 9001.30 'setup tocmd and cccmd scripts': write_script tocmd-sed <<-\EOF && @@ -397963,8 +399505,8 @@ two@example.com, C O Mitter Subject: [PATCH 1/1] Second. -Date: Sat, 29 Apr 2023 16:48:11 +0000 -Message-Id: <20230429164811.8754-1-nobody@example.com> +Date: Sat, 29 Apr 2023 18:41:04 +0000 +Message-Id: <20230429184104.10290-1-nobody@example.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit @@ -398002,8 +399544,8 @@ C O Mitter , cccmd@example.com Subject: [PATCH 1/1] Second. -Date: Sat, 29 Apr 2023 16:48:12 +0000 -Message-Id: <20230429164812.8940-1-nobody@example.com> +Date: Sat, 29 Apr 2023 18:41:07 +0000 +Message-Id: <20230429184108.10763-1-nobody@example.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit @@ -398060,8 +399602,8 @@ two@example.com, C O Mitter Subject: [PATCH 1/1] Second. -Date: Sat, 29 Apr 2023 16:48:15 +0000 -Message-Id: <20230429164815.9296-1-nobody@example.com> +Date: Sat, 29 Apr 2023 18:41:14 +0000 +Message-Id: <20230429184114.11590-1-nobody@example.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit @@ -398094,8 +399636,8 @@ two@example.com, C O Mitter Subject: [PATCH 1/1] Second. -Date: Sat, 29 Apr 2023 16:48:17 +0000 -Message-Id: <20230429164817.9434-1-author@example.com> +Date: Sat, 29 Apr 2023 18:41:17 +0000 +Message-Id: <20230429184117.12055-1-author@example.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit @@ -398127,8 +399669,8 @@ two@example.com, C O Mitter Subject: [PATCH 1/1] Second. -Date: Sat, 29 Apr 2023 16:48:18 +0000 -Message-Id: <20230429164819.9592-1-nobody@example.com> +Date: Sat, 29 Apr 2023 18:41:19 +0000 +Message-Id: <20230429184120.12462-1-nobody@example.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit @@ -398147,11 +399689,11 @@ two@example.com, C O Mitter Subject: [PATCH 1/1] Second. -Date: Sat, 29 Apr 2023 16:48:19 +0000 -Message-Id: <20230429164819.9592-2-nobody@example.com> +Date: Sat, 29 Apr 2023 18:41:20 +0000 +Message-Id: <20230429184120.12462-2-nobody@example.com> X-Mailer: git-send-email 2.30.2 -In-Reply-To: <20230429164819.9592-1-nobody@example.com> -References: <20230429164819.9592-1-nobody@example.com> +In-Reply-To: <20230429184120.12462-1-nobody@example.com> +References: <20230429184120.12462-1-nobody@example.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable @@ -398182,8 +399724,8 @@ two@example.com, C O Mitter Subject: [PATCH 1/1] Second. -Date: Sat, 29 Apr 2023 16:48:20 +0000 -Message-Id: <20230429164820.9774-1-author@example.com> +Date: Sat, 29 Apr 2023 18:41:23 +0000 +Message-Id: <20230429184123.12937-1-author@example.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit @@ -398217,8 +399759,8 @@ two@example.com, C O Mitter Subject: [PATCH 1/1] Second. -Date: Sat, 29 Apr 2023 16:48:22 +0000 -Message-Id: <20230429164822.9923-1-nobody@example.com> +Date: Sat, 29 Apr 2023 18:41:27 +0000 +Message-Id: <20230429184127.13386-1-nobody@example.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable @@ -398254,8 +399796,8 @@ two@example.com, C O Mitter Subject: [PATCH 1/1] Second. -Date: Sat, 29 Apr 2023 16:48:24 +0000 -Message-Id: <20230429164824.10092-1-nobody@example.com> +Date: Sat, 29 Apr 2023 18:41:30 +0000 +Message-Id: <20230429184130.13767-1-nobody@example.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable @@ -398288,8 +399830,8 @@ two@example.com, C O Mitter Subject: [PATCH 1/1] Second. -Date: Sat, 29 Apr 2023 16:48:24 +0000 -Message-Id: <20230429164825.10291-1-nobody@example.com> +Date: Sat, 29 Apr 2023 18:41:31 +0000 +Message-Id: <20230429184132.14044-1-nobody@example.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit @@ -398308,11 +399850,11 @@ two@example.com, C O Mitter Subject: [PATCH 1/1] Second. -Date: Sat, 29 Apr 2023 16:48:25 +0000 -Message-Id: <20230429164825.10291-2-nobody@example.com> +Date: Sat, 29 Apr 2023 18:41:32 +0000 +Message-Id: <20230429184132.14044-2-nobody@example.com> X-Mailer: git-send-email 2.30.2 -In-Reply-To: <20230429164825.10291-1-nobody@example.com> -References: <20230429164825.10291-1-nobody@example.com> +In-Reply-To: <20230429184132.14044-1-nobody@example.com> +References: <20230429184132.14044-1-nobody@example.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable @@ -398343,8 +399885,8 @@ two@example.com, C O Mitter Subject: [PATCH 1/1] Second. -Date: Sat, 29 Apr 2023 16:48:26 +0000 -Message-Id: <20230429164827.10492-1-nobody@example.com> +Date: Sat, 29 Apr 2023 18:41:34 +0000 +Message-Id: <20230429184135.14119-1-nobody@example.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable @@ -398363,11 +399905,11 @@ two@example.com, C O Mitter Subject: [PATCH 1/1] Second. -Date: Sat, 29 Apr 2023 16:48:27 +0000 -Message-Id: <20230429164827.10492-2-nobody@example.com> +Date: Sat, 29 Apr 2023 18:41:35 +0000 +Message-Id: <20230429184135.14119-2-nobody@example.com> X-Mailer: git-send-email 2.30.2 -In-Reply-To: <20230429164827.10492-1-nobody@example.com> -References: <20230429164827.10492-1-nobody@example.com> +In-Reply-To: <20230429184135.14119-1-nobody@example.com> +References: <20230429184135.14119-1-nobody@example.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable @@ -398398,8 +399940,8 @@ two@example.com, C O Mitter Subject: [PATCH 1/1] Second. -Date: Sat, 29 Apr 2023 16:48:27 +0000 -Message-Id: <20230429164828.10628-1-nobody@example.com> +Date: Sat, 29 Apr 2023 18:41:37 +0000 +Message-Id: <20230429184138.14390-1-nobody@example.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: base64 @@ -398418,11 +399960,11 @@ two@example.com, C O Mitter Subject: [PATCH 1/1] Second. -Date: Sat, 29 Apr 2023 16:48:28 +0000 -Message-Id: <20230429164828.10628-2-nobody@example.com> +Date: Sat, 29 Apr 2023 18:41:38 +0000 +Message-Id: <20230429184138.14390-2-nobody@example.com> X-Mailer: git-send-email 2.30.2 -In-Reply-To: <20230429164828.10628-1-nobody@example.com> -References: <20230429164828.10628-1-nobody@example.com> +In-Reply-To: <20230429184138.14390-1-nobody@example.com> +References: <20230429184138.14390-1-nobody@example.com> MIME-Version: 1.0 Content-Transfer-Encoding: base64 @@ -398453,8 +399995,8 @@ two@example.com, C O Mitter Subject: [PATCH 1/1] Second. -Date: Sat, 29 Apr 2023 16:48:29 +0000 -Message-Id: <20230429164829.10814-1-nobody@example.com> +Date: Sat, 29 Apr 2023 18:41:41 +0000 +Message-Id: <20230429184141.14691-1-nobody@example.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit @@ -398487,8 +400029,8 @@ two@example.com, C O Mitter Subject: [PATCH 1/1] Second. -Date: Sat, 29 Apr 2023 16:48:31 +0000 -Message-Id: <20230429164831.10954-1-nobody@example.com> +Date: Sat, 29 Apr 2023 18:41:43 +0000 +Message-Id: <20230429184143.15071-1-nobody@example.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit @@ -398521,8 +400063,8 @@ two@example.com, C O Mitter Subject: [PATCH 1/1] Second. -Date: Sat, 29 Apr 2023 16:48:33 +0000 -Message-Id: <20230429164833.11084-1-nobody@example.com> +Date: Sat, 29 Apr 2023 18:41:46 +0000 +Message-Id: <20230429184146.15258-1-nobody@example.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable @@ -398555,8 +400097,8 @@ two@example.com, C O Mitter Subject: [PATCH 1/1] Second. -Date: Sat, 29 Apr 2023 16:48:34 +0000 -Message-Id: <20230429164834.11314-1-nobody@example.com> +Date: Sat, 29 Apr 2023 18:41:49 +0000 +Message-Id: <20230429184149.15427-1-nobody@example.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: base64 @@ -398590,8 +400132,8 @@ two@example.com, C O Mitter Subject: [PATCH 1/1] Second. -Date: Sat, 29 Apr 2023 16:48:35 +0000 -Message-Id: <20230429164835.11469-1-nobody@example.com> +Date: Sat, 29 Apr 2023 18:41:52 +0000 +Message-Id: <20230429184152.15713-1-nobody@example.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit @@ -398623,8 +400165,8 @@ two@example.com, C O Mitter Subject: [PATCH 1/1] Second. -Date: Sat, 29 Apr 2023 16:48:37 +0000 -Message-Id: <20230429164837.11678-1-author@example.com> +Date: Sat, 29 Apr 2023 18:41:56 +0000 +Message-Id: <20230429184156.15915-1-author@example.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: References: @@ -398671,8 +400213,8 @@ two@example.com, C O Mitter Subject: [PATCH 1/1] Second. -Date: Sat, 29 Apr 2023 16:48:36 +0000 -Message-Id: <20230429164838.11812-1-nobody@example.com> +Date: Sat, 29 Apr 2023 18:41:57 +0000 +Message-Id: <20230429184159.16263-1-nobody@example.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: References: @@ -398693,12 +400235,12 @@ two@example.com, C O Mitter Subject: [PATCH 1/1] Second. -Date: Sat, 29 Apr 2023 16:48:37 +0000 -Message-Id: <20230429164838.11812-2-nobody@example.com> +Date: Sat, 29 Apr 2023 18:41:58 +0000 +Message-Id: <20230429184159.16263-2-nobody@example.com> X-Mailer: git-send-email 2.30.2 -In-Reply-To: <20230429164838.11812-1-nobody@example.com> +In-Reply-To: <20230429184159.16263-1-nobody@example.com> References: - <20230429164838.11812-1-nobody@example.com> + <20230429184159.16263-1-nobody@example.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit @@ -398716,12 +400258,12 @@ two@example.com, C O Mitter Subject: [PATCH 1/1] Second. -Date: Sat, 29 Apr 2023 16:48:38 +0000 -Message-Id: <20230429164838.11812-3-nobody@example.com> +Date: Sat, 29 Apr 2023 18:41:59 +0000 +Message-Id: <20230429184159.16263-3-nobody@example.com> X-Mailer: git-send-email 2.30.2 -In-Reply-To: <20230429164838.11812-1-nobody@example.com> +In-Reply-To: <20230429184159.16263-1-nobody@example.com> References: - <20230429164838.11812-1-nobody@example.com> + <20230429184159.16263-1-nobody@example.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit @@ -398764,8 +400306,8 @@ two@example.com, C O Mitter Subject: [PATCH 1/1] Second. -Date: Sat, 29 Apr 2023 16:48:38 +0000 -Message-Id: <20230429164840.12051-1-nobody@example.com> +Date: Sat, 29 Apr 2023 18:42:01 +0000 +Message-Id: <20230429184203.16479-1-nobody@example.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: References: @@ -398786,12 +400328,12 @@ two@example.com, C O Mitter Subject: [PATCH 1/1] Second. -Date: Sat, 29 Apr 2023 16:48:39 +0000 -Message-Id: <20230429164840.12051-2-nobody@example.com> +Date: Sat, 29 Apr 2023 18:42:02 +0000 +Message-Id: <20230429184203.16479-2-nobody@example.com> X-Mailer: git-send-email 2.30.2 -In-Reply-To: <20230429164840.12051-1-nobody@example.com> +In-Reply-To: <20230429184203.16479-1-nobody@example.com> References: - <20230429164840.12051-1-nobody@example.com> + <20230429184203.16479-1-nobody@example.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit @@ -398809,13 +400351,13 @@ two@example.com, C O Mitter Subject: [PATCH 1/1] Second. -Date: Sat, 29 Apr 2023 16:48:40 +0000 -Message-Id: <20230429164840.12051-3-nobody@example.com> +Date: Sat, 29 Apr 2023 18:42:03 +0000 +Message-Id: <20230429184203.16479-3-nobody@example.com> X-Mailer: git-send-email 2.30.2 -In-Reply-To: <20230429164840.12051-2-nobody@example.com> +In-Reply-To: <20230429184203.16479-2-nobody@example.com> References: - <20230429164840.12051-1-nobody@example.com> - <20230429164840.12051-2-nobody@example.com> + <20230429184203.16479-1-nobody@example.com> + <20230429184203.16479-2-nobody@example.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit @@ -398845,8 +400387,8 @@ From: Example To: nobody@example.com Subject: foo -Date: Sat, 29 Apr 2023 16:48:41 +0000 -Message-Id: <20230429164842.12235-1-nobody@example.com> +Date: Sat, 29 Apr 2023 18:42:05 +0000 +Message-Id: <20230429184206.16868-1-nobody@example.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit @@ -398865,11 +400407,11 @@ two@example.com, C O Mitter Subject: [PATCH 1/1] Second. -Date: Sat, 29 Apr 2023 16:48:42 +0000 -Message-Id: <20230429164842.12235-2-nobody@example.com> +Date: Sat, 29 Apr 2023 18:42:06 +0000 +Message-Id: <20230429184206.16868-2-nobody@example.com> X-Mailer: git-send-email 2.30.2 -In-Reply-To: <20230429164842.12235-1-nobody@example.com> -References: <20230429164842.12235-1-nobody@example.com> +In-Reply-To: <20230429184206.16868-1-nobody@example.com> +References: <20230429184206.16868-1-nobody@example.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit @@ -399271,8 +400813,8 @@ To: nobody@example.com Cc: A Subject: [PATCH 1/2] Initial. -Date: Sat, 29 Apr 2023 16:49:09 +0000 -Message-Id: <20230429164910.15673-1-nobody@example.com> +Date: Sat, 29 Apr 2023 18:43:02 +0000 +Message-Id: <20230429184303.21345-1-nobody@example.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit @@ -399294,8 +400836,8 @@ To: nobody@example.com Cc: A Subject: [PATCH 1/2] Initial. -Date: Sat, 29 Apr 2023 16:49:09 +0000 -Message-Id: <20230429164910.15673-1-nobody@example.com> +Date: Sat, 29 Apr 2023 18:43:02 +0000 +Message-Id: <20230429184303.21345-1-nobody@example.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit @@ -399307,11 +400849,11 @@ To: nobody@example.com Cc: A Subject: [PATCH 2/2] Second. -Date: Sat, 29 Apr 2023 16:49:10 +0000 -Message-Id: <20230429164910.15673-2-nobody@example.com> +Date: Sat, 29 Apr 2023 18:43:03 +0000 +Message-Id: <20230429184303.21345-2-nobody@example.com> X-Mailer: git-send-email 2.30.2 -In-Reply-To: <20230429164910.15673-1-nobody@example.com> -References: <20230429164910.15673-1-nobody@example.com> +In-Reply-To: <20230429184303.21345-1-nobody@example.com> +References: <20230429184303.21345-1-nobody@example.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit @@ -399322,11 +400864,11 @@ To: nobody@example.com Cc: A Subject: [PATCH 2/2] Second. -Date: Sat, 29 Apr 2023 16:49:10 +0000 -Message-Id: <20230429164910.15673-2-nobody@example.com> +Date: Sat, 29 Apr 2023 18:43:03 +0000 +Message-Id: <20230429184303.21345-2-nobody@example.com> X-Mailer: git-send-email 2.30.2 -In-Reply-To: <20230429164910.15673-1-nobody@example.com> -References: <20230429164910.15673-1-nobody@example.com> +In-Reply-To: <20230429184303.21345-1-nobody@example.com> +References: <20230429184303.21345-1-nobody@example.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit @@ -399357,8 +400899,8 @@ two@example.com, C O Mitter Subject: [PATCH 1/1] Second. -Date: Sat, 29 Apr 2023 16:49:12 +0000 -Message-Id: <20230429164912.15819-1-nobody@example.com> +Date: Sat, 29 Apr 2023 18:43:07 +0000 +Message-Id: <20230429184307.21732-1-nobody@example.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit @@ -399391,8 +400933,8 @@ two@example.com, C O Mitter Subject: [PATCH 1/1] Second. -Date: Sat, 29 Apr 2023 16:49:14 +0000 -Message-Id: <20230429164914.16080-1-nobody@example.com> +Date: Sat, 29 Apr 2023 18:43:10 +0000 +Message-Id: <20230429184310.21946-1-nobody@example.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit @@ -399423,8 +400965,8 @@ Cc: A , =?UTF-8?q?=C3=A0=C3=A9=C3=AC=C3=B6=C3=BA?= Subject: [PATCH] Second. -Date: Sat, 29 Apr 2023 16:49:16 +0000 -Message-Id: <20230429164916.16308-1-nobody@example.com> +Date: Sat, 29 Apr 2023 18:43:14 +0000 +Message-Id: <20230429184314.22181-1-nobody@example.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit @@ -399454,8 +400996,8 @@ From: Example To: nobody@example.com Subject: foo -Date: Sat, 29 Apr 2023 16:49:16 +0000 -Message-Id: <20230429164917.16482-1-nobody@example.com> +Date: Sat, 29 Apr 2023 18:43:16 +0000 +Message-Id: <20230429184317.22607-1-nobody@example.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -399475,11 +401017,11 @@ two@example.com, C O Mitter Subject: [PATCH 1/1] Second. -Date: Sat, 29 Apr 2023 16:49:17 +0000 -Message-Id: <20230429164917.16482-2-nobody@example.com> +Date: Sat, 29 Apr 2023 18:43:17 +0000 +Message-Id: <20230429184317.22607-2-nobody@example.com> X-Mailer: git-send-email 2.30.2 -In-Reply-To: <20230429164917.16482-1-nobody@example.com> -References: <20230429164917.16482-1-nobody@example.com> +In-Reply-To: <20230429184317.22607-1-nobody@example.com> +References: <20230429184317.22607-1-nobody@example.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit @@ -399517,8 +401059,8 @@ From: Example To: nobody@example.com Subject: foo -Date: Sat, 29 Apr 2023 16:49:18 +0000 -Message-Id: <20230429164919.16677-1-nobody@example.com> +Date: Sat, 29 Apr 2023 18:43:20 +0000 +Message-Id: <20230429184321.22934-1-nobody@example.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1; @@ -399538,11 +401080,11 @@ two@example.com, C O Mitter Subject: [PATCH 1/1] Second. -Date: Sat, 29 Apr 2023 16:49:19 +0000 -Message-Id: <20230429164919.16677-2-nobody@example.com> +Date: Sat, 29 Apr 2023 18:43:21 +0000 +Message-Id: <20230429184321.22934-2-nobody@example.com> X-Mailer: git-send-email 2.30.2 -In-Reply-To: <20230429164919.16677-1-nobody@example.com> -References: <20230429164919.16677-1-nobody@example.com> +In-Reply-To: <20230429184321.22934-1-nobody@example.com> +References: <20230429184321.22934-1-nobody@example.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit @@ -399569,8 +401111,8 @@ From: Example To: nobody@example.com Subject: =?UTF-8?q?utf8-s=C3=BCbj=C3=ABct?= -Date: Sat, 29 Apr 2023 16:49:19 +0000 -Message-Id: <20230429164920.16866-1-nobody@example.com> +Date: Sat, 29 Apr 2023 18:43:24 +0000 +Message-Id: <20230429184325.23228-1-nobody@example.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -399590,11 +401132,11 @@ two@example.com, C O Mitter Subject: [PATCH 1/1] Second. -Date: Sat, 29 Apr 2023 16:49:20 +0000 -Message-Id: <20230429164920.16866-2-nobody@example.com> +Date: Sat, 29 Apr 2023 18:43:25 +0000 +Message-Id: <20230429184325.23228-2-nobody@example.com> X-Mailer: git-send-email 2.30.2 -In-Reply-To: <20230429164920.16866-1-nobody@example.com> -References: <20230429164920.16866-1-nobody@example.com> +In-Reply-To: <20230429184325.23228-1-nobody@example.com> +References: <20230429184325.23228-1-nobody@example.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit @@ -399632,8 +401174,8 @@ To: nobody@example.com Cc: =?UTF-8?q?F=C3=BC=C3=B1n=C3=BD=20N=C3=A2m=C3=A9?= Subject: [PATCH] weird_author -Date: Sat, 29 Apr 2023 16:49:22 +0000 -Message-Id: <20230429164922.17072-1-nobody@example.com> +Date: Sat, 29 Apr 2023 18:43:29 +0000 +Message-Id: <20230429184329.23505-1-nobody@example.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -399674,8 +401216,8 @@ To: nobody@example.com Cc: =?UTF-8?q?F=C3=BC=C3=B1n=C3=BD=20N=C3=A2m=C3=A9?= Subject: [PATCH] weird_sender -Date: Sat, 29 Apr 2023 16:49:24 +0000 -Message-Id: <20230429164924.17211-1-odd_?=mail@example.com> +Date: Sat, 29 Apr 2023 18:43:33 +0000 +Message-Id: <20230429184333.23758-1-odd_?=mail@example.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit @@ -399706,8 +401248,8 @@ From: Example To: nobody@example.com Subject: foo -Date: Sat, 29 Apr 2023 16:49:24 +0000 -Message-Id: <20230429164925.17392-1-nobody@example.com> +Date: Sat, 29 Apr 2023 18:43:35 +0000 +Message-Id: <20230429184336.24093-1-nobody@example.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 @@ -399727,11 +401269,11 @@ two@example.com, C O Mitter Subject: [PATCH 1/1] Second. -Date: Sat, 29 Apr 2023 16:49:25 +0000 -Message-Id: <20230429164925.17392-2-nobody@example.com> +Date: Sat, 29 Apr 2023 18:43:36 +0000 +Message-Id: <20230429184336.24093-2-nobody@example.com> X-Mailer: git-send-email 2.30.2 -In-Reply-To: <20230429164925.17392-1-nobody@example.com> -References: <20230429164925.17392-1-nobody@example.com> +In-Reply-To: <20230429184336.24093-1-nobody@example.com> +References: <20230429184336.24093-1-nobody@example.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit @@ -399762,8 +401304,8 @@ From: Example To: nobody@example.com Subject: foo -Date: Sat, 29 Apr 2023 16:49:26 +0000 -Message-Id: <20230429164927.17595-1-nobody@example.com> +Date: Sat, 29 Apr 2023 18:43:39 +0000 +Message-Id: <20230429184340.24338-1-nobody@example.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 @@ -399783,11 +401325,11 @@ two@example.com, C O Mitter Subject: [PATCH 1/1] Second. -Date: Sat, 29 Apr 2023 16:49:27 +0000 -Message-Id: <20230429164927.17595-2-nobody@example.com> +Date: Sat, 29 Apr 2023 18:43:40 +0000 +Message-Id: <20230429184340.24338-2-nobody@example.com> X-Mailer: git-send-email 2.30.2 -In-Reply-To: <20230429164927.17595-1-nobody@example.com> -References: <20230429164927.17595-1-nobody@example.com> +In-Reply-To: <20230429184340.24338-1-nobody@example.com> +References: <20230429184340.24338-1-nobody@example.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit @@ -399819,8 +401361,8 @@ From: Example To: nobody@example.com Subject: foo -Date: Sat, 29 Apr 2023 16:49:28 +0000 -Message-Id: <20230429164929.17848-1-nobody@example.com> +Date: Sat, 29 Apr 2023 18:43:43 +0000 +Message-Id: <20230429184344.24606-1-nobody@example.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-2 @@ -399840,11 +401382,11 @@ two@example.com, C O Mitter Subject: [PATCH 1/1] Second. -Date: Sat, 29 Apr 2023 16:49:29 +0000 -Message-Id: <20230429164929.17848-2-nobody@example.com> +Date: Sat, 29 Apr 2023 18:43:44 +0000 +Message-Id: <20230429184344.24606-2-nobody@example.com> X-Mailer: git-send-email 2.30.2 -In-Reply-To: <20230429164929.17848-1-nobody@example.com> -References: <20230429164929.17848-1-nobody@example.com> +In-Reply-To: <20230429184344.24606-1-nobody@example.com> +References: <20230429184344.24606-1-nobody@example.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit @@ -399872,8 +401414,8 @@ From: Example To: nobody@example.com Subject: =?iso-8859-2?q?utf8-s=C3=BCbj=C3=ABct?= -Date: Sat, 29 Apr 2023 16:49:30 +0000 -Message-Id: <20230429164931.18027-1-nobody@example.com> +Date: Sat, 29 Apr 2023 18:43:46 +0000 +Message-Id: <20230429184347.24970-1-nobody@example.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-2 @@ -399893,11 +401435,11 @@ two@example.com, C O Mitter Subject: [PATCH 1/1] Second. -Date: Sat, 29 Apr 2023 16:49:31 +0000 -Message-Id: <20230429164931.18027-2-nobody@example.com> +Date: Sat, 29 Apr 2023 18:43:47 +0000 +Message-Id: <20230429184347.24970-2-nobody@example.com> X-Mailer: git-send-email 2.30.2 -In-Reply-To: <20230429164931.18027-1-nobody@example.com> -References: <20230429164931.18027-1-nobody@example.com> +In-Reply-To: <20230429184347.24970-1-nobody@example.com> +References: <20230429184347.24970-1-nobody@example.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit @@ -399970,7 +401512,7 @@ $patches $patches >stdout && grep "In-Reply-To: " stdout -In-Reply-To: <20230429164939.18878-1-nobody@example.com> +In-Reply-To: <20230429184404.26323-1-nobody@example.com> ok 97 - threading but no chain-reply-to expecting success of 9001.98 'override in-reply-to if no threading': @@ -400502,2329 +402044,618 @@ ! grep "SUBJECT HERE" errors && test -n "$(ls msgtxt*)" -outdir/0000-cover-letter.patch -outdir/0001-Second.patch -outdir/0002-add-master.patch -ok 140 - --force sends cover letter template anyway - -expecting success of 9001.141 'to-cover adds To to all mail': - test_cover_addresses "To" --to-cover - -outdir/0000-cover-letter.patch -outdir/0001-Second.patch -outdir/0002-add-master.patch -ok 141 - to-cover adds To to all mail - -expecting success of 9001.142 'cc-cover adds Cc to all mail': - test_cover_addresses "Cc" --cc-cover - -outdir/0000-cover-letter.patch -outdir/0001-Second.patch -outdir/0002-add-master.patch -ok 142 - cc-cover adds Cc to all mail - -expecting success of 9001.143 'tocover adds To to all mail': - test_config sendemail.tocover true && - test_cover_addresses "To" - -outdir/0000-cover-letter.patch -outdir/0001-Second.patch -outdir/0002-add-master.patch -ok 143 - tocover adds To to all mail - -expecting success of 9001.144 'cccover adds Cc to all mail': - test_config sendemail.cccover true && - test_cover_addresses "Cc" - -outdir/0000-cover-letter.patch -outdir/0001-Second.patch -outdir/0002-add-master.patch -ok 144 - cccover adds Cc to all mail - -expecting success of 9001.145 'escaped quotes in sendemail.aliasfiletype=mutt': - clean_fake_sendmail && - echo "alias sbd \\\"Dot U. Sir\\\" " >.mutt && - git config --replace-all sendemail.aliasesfile "$(pwd)/.mutt" && - git config sendemail.aliasfiletype mutt && - git send-email \ - --from="Example " \ - --to=sbd \ - --smtp-server="$(pwd)/fake.sendmail" \ - outdir/0001-*.patch \ - 2>errors >out && - grep "^!somebody@example\.org!$" commandline1 && - grep -F "To: \"Dot U. Sir\" " out - -!somebody@example.org! -To: "Dot U. Sir" -ok 145 - escaped quotes in sendemail.aliasfiletype=mutt - -expecting success of 9001.146 'sendemail.aliasfiletype=mailrc': - clean_fake_sendmail && - echo "alias sbd somebody@example.org" >.mailrc && - git config --replace-all sendemail.aliasesfile "$(pwd)/.mailrc" && - git config sendemail.aliasfiletype mailrc && - git send-email \ - --from="Example " \ - --to=sbd \ - --smtp-server="$(pwd)/fake.sendmail" \ - outdir/0001-*.patch \ - 2>errors >out && - grep "^!somebody@example\.org!$" commandline1 - -!somebody@example.org! -ok 146 - sendemail.aliasfiletype=mailrc - -expecting success of 9001.147 'sendemail.aliasfile=~/.mailrc': - clean_fake_sendmail && - echo "alias sbd someone@example.org" >"$HOME/.mailrc" && - git config --replace-all sendemail.aliasesfile "~/.mailrc" && - git config sendemail.aliasfiletype mailrc && - git send-email \ - --from="Example " \ - --to=sbd \ - --smtp-server="$(pwd)/fake.sendmail" \ - outdir/0001-*.patch \ - 2>errors >out && - grep "^!someone@example\.org!$" commandline1 - -!someone@example.org! -ok 147 - sendemail.aliasfile=~/.mailrc - -expecting success of 9001.148 '--dump-aliases sendmail format': - clean_fake_sendmail && rm -fr outdir && - git config --replace-all sendemail.aliasesfile \ - "$(pwd)/.tmp-email-aliases" && - git config sendemail.aliasfiletype "$filetype" && - git send-email --dump-aliases 2>errors >actual && - test_cmp expect actual - -ok 148 - --dump-aliases sendmail format - -expecting success of 9001.149 '--dump-aliases mutt format': - clean_fake_sendmail && rm -fr outdir && - git config --replace-all sendemail.aliasesfile \ - "$(pwd)/.tmp-email-aliases" && - git config sendemail.aliasfiletype "$filetype" && - git send-email --dump-aliases 2>errors >actual && - test_cmp expect actual - -ok 149 - --dump-aliases mutt format - -expecting success of 9001.150 '--dump-aliases mailrc format': - clean_fake_sendmail && rm -fr outdir && - git config --replace-all sendemail.aliasesfile \ - "$(pwd)/.tmp-email-aliases" && - git config sendemail.aliasfiletype "$filetype" && - git send-email --dump-aliases 2>errors >actual && - test_cmp expect actual - -ok 150 - --dump-aliases mailrc format - -expecting success of 9001.151 '--dump-aliases pine format': - clean_fake_sendmail && rm -fr outdir && - git config --replace-all sendemail.aliasesfile \ - "$(pwd)/.tmp-email-aliases" && - git config sendemail.aliasfiletype "$filetype" && - git send-email --dump-aliases 2>errors >actual && - test_cmp expect actual - -ok 151 - --dump-aliases pine format - -expecting success of 9001.152 '--dump-aliases gnus format': - clean_fake_sendmail && rm -fr outdir && - git config --replace-all sendemail.aliasesfile \ - "$(pwd)/.tmp-email-aliases" && - git config sendemail.aliasfiletype "$filetype" && - git send-email --dump-aliases 2>errors >actual && - test_cmp expect actual - -ok 152 - --dump-aliases gnus format - -expecting success of 9001.153 '--dump-aliases must be used alone': - test_must_fail git send-email --dump-aliases --to=janice@example.com -1 refs/heads/accounting - ---dump-aliases incompatible with other options -ok 153 - --dump-aliases must be used alone - -expecting success of 9001.154 'aliases and sendemail.identity': - test_must_fail git \ - -c sendemail.identity=cloud \ - -c sendemail.aliasesfile=default-aliases \ - -c sendemail.cloud.aliasesfile=cloud-aliases \ - send-email -1 2>stderr && - test_i18ngrep "cloud-aliases" stderr - -checking prerequisite: C_LOCALE_OUTPUT - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && - ! test_bool_env GIT_TEST_GETTEXT_POISON false - -) -prerequisite C_LOCALE_OUTPUT ok -opening cloud-aliases: No such file or directory -ok 154 - aliases and sendemail.identity - -expecting success of 9001.155 'sendemail.aliasfiletype=sendmail': - clean_fake_sendmail && rm -fr outdir && - git format-patch -1 -o outdir && - git config --replace-all sendemail.aliasesfile \ - "$(pwd)/.tmp-email-aliases" && - git config sendemail.aliasfiletype sendmail && - git send-email \ - --from="Example " \ - --to=alice --to=bcgrp \ - --smtp-server="$(pwd)/fake.sendmail" \ - outdir/0001-*.patch \ - 2>errors >out && - for i in $expect - do - grep "^!$i!$" commandline1 || return 1 - done - -outdir/0001-add-master.patch -!awol@example.com! -!bob@example.com! -!chloe@example.com! -!o@example.com! -ok 155 - sendemail.aliasfiletype=sendmail - -expecting success of 9001.156 'sendmail aliases line folding': - clean_fake_sendmail && rm -fr outdir && - git format-patch -1 -o outdir && - git config --replace-all sendemail.aliasesfile \ - "$(pwd)/.tmp-email-aliases" && - git config sendemail.aliasfiletype sendmail && - git send-email \ - --from="Example " \ - --to=alice --to=bcgrp \ - --smtp-server="$(pwd)/fake.sendmail" \ - outdir/0001-*.patch \ - 2>errors >out && - for i in $expect - do - grep "^!$i!$" commandline1 || return 1 - done - -outdir/0001-add-master.patch -!alice1! -!bob1! -!bob2! -!chuck1! -!chuck2! -!darla1! -!darla2! -!darla3! -!elton1! -!elton2! -!elton3! -!fred1! -!fred2! -!greg1! -ok 156 - sendmail aliases line folding - -expecting success of 9001.157 'sendmail aliases tolerate bogus line folding': - clean_fake_sendmail && rm -fr outdir && - git format-patch -1 -o outdir && - git config --replace-all sendemail.aliasesfile \ - "$(pwd)/.tmp-email-aliases" && - git config sendemail.aliasfiletype sendmail && - git send-email \ - --from="Example " \ - --to=alice --to=bcgrp \ - --smtp-server="$(pwd)/fake.sendmail" \ - outdir/0001-*.patch \ - 2>errors >out && - for i in $expect - do - grep "^!$i!$" commandline1 || return 1 - done - -outdir/0001-add-master.patch -!alice1! -!bob1! -ok 157 - sendmail aliases tolerate bogus line folding - -expecting success of 9001.158 'sendmail aliases empty': - clean_fake_sendmail && rm -fr outdir && - git format-patch -1 -o outdir && - git config --replace-all sendemail.aliasesfile \ - "$(pwd)/.tmp-email-aliases" && - git config sendemail.aliasfiletype sendmail && - git send-email \ - --from="Example " \ - --to=alice --to=bcgrp \ - --smtp-server="$(pwd)/fake.sendmail" \ - outdir/0001-*.patch \ - 2>errors >out && - for i in $expect - do - grep "^!$i!$" commandline1 || return 1 - done - -outdir/0001-add-master.patch -!alice! -!bcgrp! -ok 158 - sendmail aliases empty - -expecting success of 9001.159 'alias support in To header': - clean_fake_sendmail && - echo "alias sbd someone@example.org" >.mailrc && - test_config sendemail.aliasesfile ".mailrc" && - test_config sendemail.aliasfiletype mailrc && - git format-patch --stdout -1 --to=sbd >aliased.patch && - git send-email \ - --from="Example " \ - --smtp-server="$(pwd)/fake.sendmail" \ - aliased.patch \ - 2>errors >out && - grep "^!someone@example\.org!$" commandline1 - -!someone@example.org! -ok 159 - alias support in To header - -expecting success of 9001.160 'alias support in Cc header': - clean_fake_sendmail && - echo "alias sbd someone@example.org" >.mailrc && - test_config sendemail.aliasesfile ".mailrc" && - test_config sendemail.aliasfiletype mailrc && - git format-patch --stdout -1 --cc=sbd >aliased.patch && - git send-email \ - --from="Example " \ - --smtp-server="$(pwd)/fake.sendmail" \ - aliased.patch \ - 2>errors >out && - grep "^!someone@example\.org!$" commandline1 - -!someone@example.org! -ok 160 - alias support in Cc header - -expecting success of 9001.161 'tocmd works with aliases': - clean_fake_sendmail && - echo "alias sbd someone@example.org" >.mailrc && - test_config sendemail.aliasesfile ".mailrc" && - test_config sendemail.aliasfiletype mailrc && - git format-patch --stdout -1 >tocmd.patch && - echo tocmd--sbd >>tocmd.patch && - git send-email \ - --from="Example " \ - --to-cmd=./tocmd-sed \ - --smtp-server="$(pwd)/fake.sendmail" \ - tocmd.patch \ - 2>errors >out && - grep "^!someone@example\.org!$" commandline1 - -!someone@example.org! -ok 161 - tocmd works with aliases - -expecting success of 9001.162 'cccmd works with aliases': - clean_fake_sendmail && - echo "alias sbd someone@example.org" >.mailrc && - test_config sendemail.aliasesfile ".mailrc" && - test_config sendemail.aliasfiletype mailrc && - git format-patch --stdout -1 >cccmd.patch && - echo cccmd--sbd >>cccmd.patch && - git send-email \ - --from="Example " \ - --cc-cmd=./cccmd-sed \ - --smtp-server="$(pwd)/fake.sendmail" \ - cccmd.patch \ - 2>errors >out && - grep "^!someone@example\.org!$" commandline1 - -!someone@example.org! -ok 162 - cccmd works with aliases - -expecting success of 9001.163 '--[no-]xmailer without any configuration': - do_xmailer_test 1 "--xmailer" && - do_xmailer_test 0 "--no-xmailer" - -0001-add-master.patch -0001-add-master.patch -ok 163 - --[no-]xmailer without any configuration - -expecting success of 9001.164 '--[no-]xmailer with sendemail.xmailer=true': - test_config sendemail.xmailer true && - do_xmailer_test 1 "" && - do_xmailer_test 0 "--no-xmailer" && - do_xmailer_test 1 "--xmailer" - -0001-add-master.patch -0001-add-master.patch -0001-add-master.patch -ok 164 - --[no-]xmailer with sendemail.xmailer=true - -expecting success of 9001.165 '--[no-]xmailer with sendemail.xmailer=false': - test_config sendemail.xmailer false && - do_xmailer_test 0 "" && - do_xmailer_test 0 "--no-xmailer" && - do_xmailer_test 1 "--xmailer" - -0001-add-master.patch -0001-add-master.patch -0001-add-master.patch -ok 165 - --[no-]xmailer with sendemail.xmailer=false - -expecting success of 9001.166 'setup expected-list': - git send-email \ - --dry-run \ - --from="Example " \ - --to="To 1 " \ - --to="to2@example.com" \ - --to="to3@example.com" \ - --cc="Cc 1 " \ - --cc="Cc2 " \ - --bcc="bcc1@example.com" \ - --bcc="bcc2@example.com" \ - 0001-add-master.patch | replace_variable_fields \ - >expected-list - -ok 166 - setup expected-list - -expecting success of 9001.167 'use email list in --cc --to and --bcc': - git send-email \ - --dry-run \ - --from="Example " \ - --to="To 1 , to2@example.com" \ - --to="to3@example.com" \ - --cc="Cc 1 , Cc2 " \ - --bcc="bcc1@example.com, bcc2@example.com" \ - 0001-add-master.patch | replace_variable_fields \ - >actual-list && - test_cmp expected-list actual-list - -ok 167 - use email list in --cc --to and --bcc - -expecting success of 9001.168 'aliases work with email list': - echo "alias to2 to2@example.com" >.mutt && - echo "alias cc1 Cc 1 " >>.mutt && - test_config sendemail.aliasesfile ".mutt" && - test_config sendemail.aliasfiletype mutt && - git send-email \ - --dry-run \ - --from="Example " \ - --to="To 1 , to2, to3@example.com" \ - --cc="cc1, Cc2 " \ - --bcc="bcc1@example.com, bcc2@example.com" \ - 0001-add-master.patch | replace_variable_fields \ - >actual-list && - test_cmp expected-list actual-list - -ok 168 - aliases work with email list - -expecting success of 9001.169 'leading and trailing whitespaces are removed': - echo "alias to2 to2@example.com" >.mutt && - echo "alias cc1 Cc 1 " >>.mutt && - test_config sendemail.aliasesfile ".mutt" && - test_config sendemail.aliasfiletype mutt && - TO1=$(echo "QTo 1 " | q_to_tab) && - TO2=$(echo "QZto2" | qz_to_tab_space) && - CC1=$(echo "cc1" | append_cr) && - BCC1=$(echo " bcc1@example.com Q" | q_to_nul) && - git send-email \ - --dry-run \ - --from=" Example " \ - --to="$TO1" \ - --to="$TO2" \ - --to=" to3@example.com " \ - --cc="$CC1" \ - --cc="Cc2 " \ - --bcc="$BCC1" \ - --bcc="bcc2@example.com" \ - 0001-add-master.patch | replace_variable_fields \ - >actual-list && - test_cmp expected-list actual-list - -ok 169 - leading and trailing whitespaces are removed - -expecting success of 9001.170 'invoke hook': - mkdir -p .git/hooks && - - write_script .git/hooks/sendemail-validate <<-\EOF && - # test that we have the correct environment variable, pwd, and - # argument - case "$GIT_DIR" in - *.git) - true - ;; - *) - false - ;; - esac && - test -f 0001-add-master.patch && - grep "add master" "$1" - EOF - - mkdir subdir && - ( - # Test that it works even if we are not at the root of the - # working tree - cd subdir && - git send-email \ - --from="Example " \ - --to=nobody@example.com \ - --smtp-server="$(pwd)/../fake.sendmail" \ - ../0001-add-master.patch && - - # Verify error message when a patch is rejected by the hook - sed -e "s/add master/x/" ../0001-add-master.patch >../another.patch && - test_must_fail git send-email \ - --from="Example " \ - --to=nobody@example.com \ - --smtp-server="$(pwd)/../fake.sendmail" \ - ../another.patch 2>err && - test_i18ngrep "rejected by sendemail-validate hook" err - ) - -Subject: [PATCH] add master -../0001-add-master.patch -(mbox) Adding cc: A U Thor from line 'From: A U Thor ' -OK. Log says: -Sendmail: /build/git-2.30.2/t/trash directory.t9001-send-email/subdir/../fake.sendmail -i nobody@example.com somebody@ex.com author@example.com other@ex.com -From: Example -To: nobody@example.com -Cc: Somebody , - A U Thor -Subject: [PATCH] add master -Date: Sat, 29 Apr 2023 16:51:29 +0000 -Message-Id: <20230429165129.32761-1-nobody@example.com> -X-Mailer: git-send-email 2.30.2 -MIME-Version: 1.0 -Content-Transfer-Encoding: 8bit - -Result: OK -fatal: ../another.patch: rejected by sendemail-validate hook -ok 170 - invoke hook - -expecting success of 9001.171 'test that send-email works outside a repo': - nongit git send-email \ - --from="Example " \ - --to=nobody@example.com \ - --smtp-server="$(pwd)/fake.sendmail" \ - "$(pwd)/0001-add-master.patch" - -/build/git-2.30.2/t/trash directory.t9001-send-email/0001-add-master.patch -(mbox) Adding cc: A U Thor from line 'From: A U Thor ' - -From: Example -To: nobody@example.com -Cc: A U Thor -Subject: [PATCH] add master -Date: Sat, 29 Apr 2023 16:51:33 +0000 -Message-Id: <20230429165133.655-1-nobody@example.com> -X-Mailer: git-send-email 2.30.2 -MIME-Version: 1.0 -Content-Transfer-Encoding: 8bit - - The Cc list above has been expanded by additional - addresses found in the patch commit message. By default - send-email prompts before sending whenever this occurs. - This behavior is controlled by the sendemail.confirm - configuration setting. - - For additional information, run 'git send-email --help'. - To retain the current behavior, but squelch this message, - run 'git config --global sendemail.confirm auto'. - -Send this email? ([y]es|[n]o|[e]dit|[q]uit|[a]ll): -OK. Log says: -Sendmail: /build/git-2.30.2/t/trash directory.t9001-send-email/fake.sendmail -i nobody@example.com author@example.com -From: Example -To: nobody@example.com -Cc: A U Thor -Subject: [PATCH] add master -Date: Sat, 29 Apr 2023 16:51:33 +0000 -Message-Id: <20230429165133.655-1-nobody@example.com> -X-Mailer: git-send-email 2.30.2 -MIME-Version: 1.0 -Content-Transfer-Encoding: 8bit - -Result: OK -ok 171 - test that send-email works outside a repo - -expecting success of 9001.172 'test that sendmail config is rejected': - test_config sendmail.program sendmail && - test_must_fail git send-email \ - --from="Example " \ - --to=nobody@example.com \ - --smtp-server="$(pwd)/fake.sendmail" \ - HEAD^ 2>err && - test_i18ngrep "found configuration options for 'sendmail'" err - -fatal: found configuration options for 'sendmail' -ok 172 - test that sendmail config is rejected - -expecting success of 9001.173 'test that sendmail config rejection is specific': - test_config resendmail.program sendmail && - git send-email \ - --from="Example " \ - --to=nobody@example.com \ - --smtp-server="$(pwd)/fake.sendmail" \ - HEAD^ - -Subject: [PATCH] add master -/tmp/UVIjWcHcux/0001-add-master.patch -(mbox) Adding cc: A U Thor from line 'From: A U Thor ' -OK. Log says: -Sendmail: /build/git-2.30.2/t/trash directory.t9001-send-email/fake.sendmail -i nobody@example.com somebody@ex.com author@example.com other@ex.com -From: Example -To: nobody@example.com -Cc: Somebody , - A U Thor -Subject: [PATCH] add master -Date: Sat, 29 Apr 2023 16:51:40 +0000 -Message-Id: <20230429165140.1000-1-nobody@example.com> -X-Mailer: git-send-email 2.30.2 -MIME-Version: 1.0 -Content-Transfer-Encoding: 8bit - -Result: OK -ok 173 - test that sendmail config rejection is specific - -expecting success of 9001.174 'test forbidSendmailVariables behavior override': - test_config sendmail.program sendmail && - test_config sendemail.forbidSendmailVariables false && - git send-email \ - --from="Example " \ - --to=nobody@example.com \ - --smtp-server="$(pwd)/fake.sendmail" \ - HEAD^ - -Subject: [PATCH] add master -/tmp/67lUiTtutl/0001-add-master.patch -(mbox) Adding cc: A U Thor from line 'From: A U Thor ' -OK. Log says: -Sendmail: /build/git-2.30.2/t/trash directory.t9001-send-email/fake.sendmail -i nobody@example.com somebody@ex.com author@example.com other@ex.com -From: Example -To: nobody@example.com -Cc: Somebody , - A U Thor -Subject: [PATCH] add master -Date: Sat, 29 Apr 2023 16:51:42 +0000 -Message-Id: <20230429165142.1201-1-nobody@example.com> -X-Mailer: git-send-email 2.30.2 -MIME-Version: 1.0 -Content-Transfer-Encoding: 8bit - -Result: OK -ok 174 - test forbidSendmailVariables behavior override - -# passed all 174 test(s) -1..174 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t9115-git-svn-dcommit-funky-renames.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9115-git-svn-dcommit-funky-renames/.git/ -expecting success of 9115.1 'load repository with strange names': - svnadmin load -q "$rawsvnrepo" <"$TEST_DIRECTORY"/t9115/funky-names.dump - -ok 1 - load repository with strange names - -expecting success of 9115.2 'init and fetch repository': - git svn init "$svnrepo" && - git svn fetch && - git reset --hard git-svn - - A leading space file - A #{cool_name} - A file name with spaces -W: +empty_dir: leading space -W: +empty_dir: #{bad_directory_name} -W: +empty_dir: dir name with spaces -W: +empty_dir: regular_dir_name -r1 = a10dc9ef404ca520f349a08a0c5c4458d02453d3 (refs/remotes/git-svn) -Checked out HEAD: - file:///build/git-2.30.2/t/trash%20directory.t9115-git-svn-dcommit-funky-renames/svnrepo r1 -creating empty directory: leading space -creating empty directory: #{bad_directory_name} -creating empty directory: dir name with spaces -creating empty directory: regular_dir_name -HEAD is now at a10dc9e what will those wacky people think of next? -ok 2 - init and fetch repository - -expecting success of 9115.3 'create file in existing ugly and empty dir': - mkdir -p "#{bad_directory_name}" && - echo hi > "#{bad_directory_name}/ foo" && - git update-index --add "#{bad_directory_name}/ foo" && - git commit -m "new file in ugly parent" && - git svn dcommit - -[master c4d613a] new file in ugly parent - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 #{bad_directory_name}/ foo -Committing to file:///build/git-2.30.2/t/trash%20directory.t9115-git-svn-dcommit-funky-renames/svnrepo ... - A #{bad_directory_name}/ foo -Committed r2 - A #{bad_directory_name}/ foo -r2 = 27ac849df40f71e56abc02107f49b39bc841f11e (refs/remotes/git-svn) -No changes between c4d613ad6e0fd6394fc01636342a7a590b06697a and refs/remotes/git-svn -Resetting to the latest refs/remotes/git-svn -ok 3 - create file in existing ugly and empty dir - -expecting success of 9115.4 'rename ugly file': - git mv "#{bad_directory_name}/ foo" "file name with feces" && - git commit -m "rename ugly file" && - git svn dcommit - -[master a150032] rename ugly file - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - rename #{bad_directory_name}/ foo => file name with feces (100%) -Committing to file:///build/git-2.30.2/t/trash%20directory.t9115-git-svn-dcommit-funky-renames/svnrepo ... - R #{bad_directory_name}/ foo => file name with feces -Committed r3 - D #{bad_directory_name}/ foo - A file name with feces -W: -empty_dir: #{bad_directory_name}/ foo -r3 = c3abcb4bac20802be4e9802b377a8848f91e7c4a (refs/remotes/git-svn) -No changes between a150032cab3968087c6a488980701f6dd9bd28b1 and refs/remotes/git-svn -Resetting to the latest refs/remotes/git-svn -ok 4 - rename ugly file - -expecting success of 9115.5 'rename pretty file': - echo :x > pretty && - git update-index --add pretty && - git commit -m "pretty :x" && - git svn dcommit && - mkdir -p regular_dir_name && - git mv pretty regular_dir_name/pretty && - git commit -m "moved pretty file" && - git svn dcommit - -[master 5a14675] pretty :x - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 pretty -Committing to file:///build/git-2.30.2/t/trash%20directory.t9115-git-svn-dcommit-funky-renames/svnrepo ... - A pretty -Committed r4 - A pretty -r4 = b09c88667698275ccd36c9fc23cbf406339b7e92 (refs/remotes/git-svn) -No changes between 5a14675ddadea550bb9685226db65475431cfcf8 and refs/remotes/git-svn -Resetting to the latest refs/remotes/git-svn -[master 33a9dad] moved pretty file - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - rename pretty => regular_dir_name/pretty (100%) -Committing to file:///build/git-2.30.2/t/trash%20directory.t9115-git-svn-dcommit-funky-renames/svnrepo ... - R pretty => regular_dir_name/pretty -Committed r5 - D pretty - A regular_dir_name/pretty -W: -empty_dir: pretty -r5 = 89f1fc7b0b2f3ce8f2bffc603b0bcca07efc4337 (refs/remotes/git-svn) -No changes between 33a9dad98d61b1ea3ee1e7da6a32346ddac64133 and refs/remotes/git-svn -Resetting to the latest refs/remotes/git-svn -ok 5 - rename pretty file - -expecting success of 9115.6 'rename pretty file into ugly one': - git mv regular_dir_name/pretty "#{bad_directory_name}/ booboo" && - git commit -m booboo && - git svn dcommit - -[master 031d6de] booboo - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - rename regular_dir_name/pretty => #{bad_directory_name}/ booboo (100%) -Committing to file:///build/git-2.30.2/t/trash%20directory.t9115-git-svn-dcommit-funky-renames/svnrepo ... - R regular_dir_name/pretty => #{bad_directory_name}/ booboo -Committed r6 - A #{bad_directory_name}/ booboo - D regular_dir_name/pretty -W: -empty_dir: regular_dir_name/pretty -r6 = 4bb13e869fc9a56a514f1e152f9033f6249c3149 (refs/remotes/git-svn) -No changes between 031d6de977f658fc9c348ef99e0c107469a29556 and refs/remotes/git-svn -Resetting to the latest refs/remotes/git-svn -ok 6 - rename pretty file into ugly one - -expecting success of 9115.7 'add a file with plus signs': - echo .. > +_+ && - git update-index --add +_+ && - git commit -m plus && - mkdir gtk+ && - git mv +_+ gtk+/_+_ && - git commit -m plus_dir && - git svn dcommit - -[master 1544b1f] plus - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 +_+ -[master 6b16a28] plus_dir - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - rename +_+ => gtk+/_+_ (100%) -Committing to file:///build/git-2.30.2/t/trash%20directory.t9115-git-svn-dcommit-funky-renames/svnrepo ... - A +_+ -Committed r7 - A +_+ -r7 = 816cc00d8ddbca55954f7fb2e10d0ba4bc9e6371 (refs/remotes/git-svn) - R +_+ => gtk+/_+_ -Committed r8 - D +_+ - A gtk+/_+_ -W: -empty_dir: +_+ -r8 = 0b7d913a36b65270182e22f44be0c5ff3133401f (refs/remotes/git-svn) -No changes between 6b16a28ad6ae4fc8e497574794483dd86f95c4c2 and refs/remotes/git-svn -Resetting to the latest refs/remotes/git-svn -ok 7 - add a file with plus signs - -expecting success of 9115.8 'clone the repository to test rebase': - git svn clone "$svnrepo" test-rebase && - ( - cd test-rebase && - echo test-rebase >test-rebase && - git add test-rebase && - git commit -m test-rebase - ) - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9115-git-svn-dcommit-funky-renames/test-rebase/.git/ - A leading space file - A #{cool_name} - A file name with spaces -W: +empty_dir: leading space -W: +empty_dir: #{bad_directory_name} -W: +empty_dir: dir name with spaces -W: +empty_dir: regular_dir_name -r1 = a10dc9ef404ca520f349a08a0c5c4458d02453d3 (refs/remotes/git-svn) - A #{bad_directory_name}/ foo -r2 = 27ac849df40f71e56abc02107f49b39bc841f11e (refs/remotes/git-svn) - D #{bad_directory_name}/ foo - A file name with feces -W: -empty_dir: #{bad_directory_name}/ foo -r3 = c3abcb4bac20802be4e9802b377a8848f91e7c4a (refs/remotes/git-svn) - A pretty -r4 = b09c88667698275ccd36c9fc23cbf406339b7e92 (refs/remotes/git-svn) - D pretty - A regular_dir_name/pretty -W: -empty_dir: pretty -r5 = 89f1fc7b0b2f3ce8f2bffc603b0bcca07efc4337 (refs/remotes/git-svn) - A #{bad_directory_name}/ booboo - D regular_dir_name/pretty -W: -empty_dir: regular_dir_name/pretty -r6 = 4bb13e869fc9a56a514f1e152f9033f6249c3149 (refs/remotes/git-svn) - A +_+ -r7 = 816cc00d8ddbca55954f7fb2e10d0ba4bc9e6371 (refs/remotes/git-svn) - D +_+ - A gtk+/_+_ -W: -empty_dir: +_+ -r8 = 0b7d913a36b65270182e22f44be0c5ff3133401f (refs/remotes/git-svn) -Checked out HEAD: - file:///build/git-2.30.2/t/trash%20directory.t9115-git-svn-dcommit-funky-renames/svnrepo r8 -creating empty directory: leading space -creating empty directory: dir name with spaces -creating empty directory: regular_dir_name -[master 38169e6] test-rebase - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 test-rebase -ok 8 - clone the repository to test rebase - -expecting success of 9115.9 'make a commit to test rebase': - echo test-rebase-main > test-rebase-main && - git add test-rebase-main && - git commit -m test-rebase-main && - git svn dcommit - -[master 3bb2286] test-rebase-main - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 test-rebase-main -Committing to file:///build/git-2.30.2/t/trash%20directory.t9115-git-svn-dcommit-funky-renames/svnrepo ... - A test-rebase-main -Committed r9 - A test-rebase-main -r9 = 82db0515b788597d5e216cd1190ef59d4e55ab6c (refs/remotes/git-svn) -No changes between 3bb22868f0aaca1e3701d48644e8ea3db3114fd4 and refs/remotes/git-svn -Resetting to the latest refs/remotes/git-svn -ok 9 - make a commit to test rebase - -expecting success of 9115.10 'git svn rebase works inside a fresh-cloned repository': - ( - cd test-rebase && - git svn rebase && - test -e test-rebase-main && - test -e test-rebase - ) - A test-rebase-main -r9 = 82db0515b788597d5e216cd1190ef59d4e55ab6c (refs/remotes/git-svn) -Rebasing (1/1) Successfully rebased and updated refs/heads/master. -ok 10 - git svn rebase works inside a fresh-cloned repository - -checking prerequisite: UTF8_NFD_TO_NFC - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-UTF8_NFD_TO_NFC" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-UTF8_NFD_TO_NFC" && - # check whether FS converts nfd unicode to nfc - auml=$(printf "\303\244") - aumlcdiar=$(printf "\141\314\210") - >"$auml" && - test -f "$aumlcdiar" - -) -prerequisite UTF8_NFD_TO_NFC not satisfied -expecting success of 9115.11 'svn.pathnameencoding=cp932 new file on dcommit': - LC_ALL=$a_utf8_locale && - export LC_ALL && - neq=$(printf "\201\202") && - git config svn.pathnameencoding cp932 && - echo neq >"$neq" && - git add "$neq" && - git commit -m "neq" && - git svn dcommit - -[master 64c47eb] neq - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 "\201\202" -Committing to file:///build/git-2.30.2/t/trash%20directory.t9115-git-svn-dcommit-funky-renames/svnrepo ... - A ‚ -Committed r10 - A ‚ -r10 = be90acba38368e9a0ce0de07ffbffeace02511ec (refs/remotes/git-svn) -No changes between 64c47eb6617d5ca471a14381afcdb07cc92e663e and refs/remotes/git-svn -Resetting to the latest refs/remotes/git-svn -ok 11 - svn.pathnameencoding=cp932 new file on dcommit - -expecting success of 9115.12 'svn.pathnameencoding=cp932 rename on dcommit': - LC_ALL=$a_utf8_locale && - export LC_ALL && - inf=$(printf "\201\207") && - git config svn.pathnameencoding cp932 && - echo inf >"$inf" && - git add "$inf" && - git commit -m "inf" && - git svn dcommit && - git mv "$inf" inf && - git commit -m "inf rename" && - git svn dcommit - -[master 4ecaa8a] inf - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 "\201\207" -Committing to file:///build/git-2.30.2/t/trash%20directory.t9115-git-svn-dcommit-funky-renames/svnrepo ... - A ‡ -Committed r11 - A ‡ -r11 = 7c3c4a46fe2143d948eec284bd7234058a68b8d2 (refs/remotes/git-svn) -No changes between 4ecaa8a321de176d2fe7f3dff2d1598096d9fba0 and refs/remotes/git-svn -Resetting to the latest refs/remotes/git-svn -[master b009e47] inf rename - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - rename "\201\207" => inf (100%) -Committing to file:///build/git-2.30.2/t/trash%20directory.t9115-git-svn-dcommit-funky-renames/svnrepo ... - R ‡ => inf -Committed r12 - D ‡ - A inf -W: -empty_dir: ∞ -r12 = a01073dcbdb7e7eb07318a782ed4609d12415fc4 (refs/remotes/git-svn) -No changes between b009e4764c086ba2753b1b05e58d0eaa741b779e and refs/remotes/git-svn -Resetting to the latest refs/remotes/git-svn -ok 12 - svn.pathnameencoding=cp932 rename on dcommit - -# passed all 12 test(s) -1..12 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t9117-git-svn-init-clone.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9117-git-svn-init-clone/.git/ -expecting success of 9117.1 'setup svnrepo': - mkdir project project/trunk project/branches project/tags && - echo foo > project/trunk/foo && - svn_cmd import -m "$test_description" project "$svnrepo"/project && - rm -rf project - -Adding project/branches -Adding project/tags -Adding project/trunk -Adding project/trunk/foo -Committing transaction... -Committed revision 1. -ok 1 - setup svnrepo - -expecting success of 9117.2 'basic clone': - test ! -d trunk && - git svn clone "$svnrepo"/project/trunk && - test -d trunk/.git/svn && - test -e trunk/foo && - rm -rf trunk - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9117-git-svn-init-clone/tmp/trunk/.git/ - A foo -r1 = aab070b46f14814e2a827239aa1c635a0cb16fe4 (refs/remotes/git-svn) -Checked out HEAD: - file:///build/git-2.30.2/t/trash%20directory.t9117-git-svn-init-clone/svnrepo/project/trunk r1 -ok 2 - basic clone - -expecting success of 9117.3 'clone to target directory': - test ! -d target && - git svn clone "$svnrepo"/project/trunk target && - test -d target/.git/svn && - test -e target/foo && - rm -rf target - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9117-git-svn-init-clone/tmp/target/.git/ - A foo -r1 = aab070b46f14814e2a827239aa1c635a0cb16fe4 (refs/remotes/git-svn) -Checked out HEAD: - file:///build/git-2.30.2/t/trash%20directory.t9117-git-svn-init-clone/svnrepo/project/trunk r1 -ok 3 - clone to target directory - -expecting success of 9117.4 'clone with --stdlayout': - test ! -d project && - git svn clone -s "$svnrepo"/project && - test -d project/.git/svn && - test -e project/foo && - rm -rf project - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9117-git-svn-init-clone/tmp/project/.git/ -Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9117-git-svn-init-clone/svnrepo/project => file:///build/git-2.30.2/t/trash%20directory.t9117-git-svn-init-clone/svnrepo - A foo -r1 = aab070b46f14814e2a827239aa1c635a0cb16fe4 (refs/remotes/origin/trunk) -Checked out HEAD: - file:///build/git-2.30.2/t/trash%20directory.t9117-git-svn-init-clone/svnrepo/project/trunk r1 -ok 4 - clone with --stdlayout - -expecting success of 9117.5 'clone to target directory with --stdlayout': - test ! -d target && - git svn clone -s "$svnrepo"/project target && - test -d target/.git/svn && - test -e target/foo && - rm -rf target - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9117-git-svn-init-clone/tmp/target/.git/ -Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9117-git-svn-init-clone/svnrepo/project => file:///build/git-2.30.2/t/trash%20directory.t9117-git-svn-init-clone/svnrepo - A foo -r1 = aab070b46f14814e2a827239aa1c635a0cb16fe4 (refs/remotes/origin/trunk) -Checked out HEAD: - file:///build/git-2.30.2/t/trash%20directory.t9117-git-svn-init-clone/svnrepo/project/trunk r1 -ok 5 - clone to target directory with --stdlayout - -expecting success of 9117.6 'init without -s/-T/-b/-t does not warn': - test ! -d trunk && - git svn init "$svnrepo"/project/trunk trunk 2>warning && - ! grep -q prefix warning && - rm -rf trunk && - rm -f warning - -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9117-git-svn-init-clone/tmp/trunk/.git/ -ok 6 - init without -s/-T/-b/-t does not warn - -expecting success of 9117.7 'clone without -s/-T/-b/-t does not warn': - test ! -d trunk && - git svn clone "$svnrepo"/project/trunk 2>warning && - ! grep -q prefix warning && - rm -rf trunk && - rm -f warning - -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9117-git-svn-init-clone/tmp/trunk/.git/ - A foo -r1 = aab070b46f14814e2a827239aa1c635a0cb16fe4 (refs/remotes/git-svn) -ok 7 - clone without -s/-T/-b/-t does not warn - -expecting success of 9117.8 'init with -s/-T/-b/-t assumes --prefix=origin/': - test ! -d project && - git svn init -s "$svnrepo"/project project 2>warning && - ! grep -q prefix warning && - test_svn_configured_prefix "origin/" && - rm -rf project && - rm -f warning - -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9117-git-svn-init-clone/tmp/project/.git/ -ok 8 - init with -s/-T/-b/-t assumes --prefix=origin/ - -expecting success of 9117.9 'clone with -s/-T/-b/-t assumes --prefix=origin/': - test ! -d project && - git svn clone -s "$svnrepo"/project 2>warning && - ! grep -q prefix warning && - test_svn_configured_prefix "origin/" && - rm -rf project && - rm -f warning - -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9117-git-svn-init-clone/tmp/project/.git/ - A foo -r1 = aab070b46f14814e2a827239aa1c635a0cb16fe4 (refs/remotes/origin/trunk) -ok 9 - clone with -s/-T/-b/-t assumes --prefix=origin/ - -expecting success of 9117.10 'init with -s/-T/-b/-t and --prefix "" still works': - test ! -d project && - git svn init -s "$svnrepo"/project project --prefix "" 2>warning && - ! grep -q prefix warning && - test_svn_configured_prefix "" && - rm -rf project && - rm -f warning - -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9117-git-svn-init-clone/tmp/project/.git/ -ok 10 - init with -s/-T/-b/-t and --prefix "" still works - -expecting success of 9117.11 'clone with -s/-T/-b/-t and --prefix "" still works': - test ! -d project && - git svn clone -s "$svnrepo"/project --prefix "" 2>warning && - ! grep -q prefix warning && - test_svn_configured_prefix "" && - rm -rf project && - rm -f warning - -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9117-git-svn-init-clone/tmp/project/.git/ - A foo -r1 = aab070b46f14814e2a827239aa1c635a0cb16fe4 (refs/remotes/trunk) -ok 11 - clone with -s/-T/-b/-t and --prefix "" still works - -expecting success of 9117.12 'init with -T as a full url works': - test ! -d project && - git svn init -T "$svnrepo"/project/trunk project && - rm -rf project - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9117-git-svn-init-clone/tmp/.git/ -Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9117-git-svn-init-clone/svnrepo/project/trunk => file:///build/git-2.30.2/t/trash%20directory.t9117-git-svn-init-clone/svnrepo -ok 12 - init with -T as a full url works - -# passed all 12 test(s) -1..12 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t9119-git-svn-info.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9119-git-svn-info/.git/ -1..0 # SKIP skipping svn-info test (SVN version: 1.14.1 not supported) -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t9116-git-svn-log.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9116-git-svn-log/.git/ -expecting success of 9116.1 'setup repository and import': - mkdir import && - ( - cd import && - for i in trunk branches/a branches/b tags/0.1 tags/0.2 tags/0.3 - do - mkdir -p $i && - echo hello >>$i/README || - exit 1 - done && - svn_cmd import -m test . "$svnrepo" - ) && - git svn init "$svnrepo" -T trunk -b branches -t tags && - git svn fetch && - git reset --hard origin/trunk && - echo bye >> README && - git commit -a -m bye && - git svn dcommit && - git reset --hard origin/a && - echo why >> FEEDME && - git update-index --add FEEDME && - git commit -m feedme && - git svn dcommit && - git reset --hard origin/trunk && - echo aye >> README && - git commit -a -m aye && - git svn dcommit && - git reset --hard origin/b && - echo spy >> README && - git commit -a -m spy && - echo try >> README && - git commit -a -m try && - git svn dcommit - -Adding branches -Adding branches/a -Adding branches/a/README -Adding branches/b -Adding branches/b/README -Adding tags -Adding tags/0.1 -Adding tags/0.1/README -Adding tags/0.2 -Adding tags/0.2/README -Adding tags/0.3 -Adding tags/0.3/README -Adding trunk -Adding trunk/README -Committing transaction... -Committed revision 1. - A README -r1 = bec4be7ac2e2d4c64cad8df244989b60a4153d0f (refs/remotes/origin/trunk) - A README -r1 = 64c9e378ad1be43e5bcc9d42cfc4e6e0d3834cfc (refs/remotes/origin/b) - A README -r1 = 6f040deab1dee6b83d9bbbddb7e9e492d51661d5 (refs/remotes/origin/a) - A README -r1 = 2a787866f88f6fe1d9cbbaf8e543d9a886627e7b (refs/remotes/origin/tags/0.1) - A README -r1 = 3eb4e43c147830af54635725e3701000cfd154bb (refs/remotes/origin/tags/0.2) - A README -r1 = d47130316498b9ac2b4a15799d2dbc608ad5b863 (refs/remotes/origin/tags/0.3) -Checked out HEAD: - file:///build/git-2.30.2/t/trash%20directory.t9116-git-svn-log/svnrepo/trunk r1 -HEAD is now at bec4be7 test -[master 0e831b9] bye - Author: A U Thor - 1 file changed, 1 insertion(+) -Committing to file:///build/git-2.30.2/t/trash%20directory.t9116-git-svn-log/svnrepo/trunk ... - M README -Committed r2 - M README -r2 = b881148449afd2748180c4b4619bb0563c1a232f (refs/remotes/origin/trunk) -No changes between 0e831b9f7a5248264ba4acda923031ac65956d8a and refs/remotes/origin/trunk -Resetting to the latest refs/remotes/origin/trunk -HEAD is now at 6f040de test -[master 4423d33] feedme - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 FEEDME -Committing to file:///build/git-2.30.2/t/trash%20directory.t9116-git-svn-log/svnrepo/branches/a ... - A FEEDME -Committed r3 - A FEEDME -r3 = 7080d3c3c858485c87f1e21d9366aa5a44b9d31f (refs/remotes/origin/a) -No changes between 4423d335ce6a3992229db2ccc1003c8db6d080ce and refs/remotes/origin/a -Resetting to the latest refs/remotes/origin/a -HEAD is now at b881148 bye -[master 5577139] aye - Author: A U Thor - 1 file changed, 1 insertion(+) -Committing to file:///build/git-2.30.2/t/trash%20directory.t9116-git-svn-log/svnrepo/trunk ... - M README -Committed r4 - M README -r4 = 861e12988035b70cb7ea8b87a1825c0e6fea5cd2 (refs/remotes/origin/trunk) -No changes between 557713918f393ab2eca25ad189ad2f90904fccbc and refs/remotes/origin/trunk -Resetting to the latest refs/remotes/origin/trunk -HEAD is now at 64c9e37 test -[master 1b69bd1] spy - Author: A U Thor - 1 file changed, 1 insertion(+) -[master f2d38a2] try - Author: A U Thor - 1 file changed, 1 insertion(+) -Committing to file:///build/git-2.30.2/t/trash%20directory.t9116-git-svn-log/svnrepo/branches/b ... - M README -Committed r5 - M README -r5 = ff27d956ae4233faf57b40609c5ccd97225109a1 (refs/remotes/origin/b) - M README -Committed r6 - M README -r6 = ff8cff8ed3f47598e35e49bee7794c4ba5f38cfd (refs/remotes/origin/b) -No changes between f2d38a2b61504064c4b0da5a246a80591a5fbd84 and refs/remotes/origin/b -Resetting to the latest refs/remotes/origin/b -ok 1 - setup repository and import - -expecting success of 9116.2 'run log': - git reset --hard origin/a && - git svn log -r2 origin/trunk >out && - grep ^r2 out && - git svn log -r4 origin/trunk >out && - grep ^r4 out && - git svn log -r3 >out && - grep ^r3 out - -HEAD is now at 7080d3c feedme -r2 | pbuilder1 | 2023-04-29 16:51:26 +0000 (Sat, 29 Apr 2023) | 2 lines -r4 | pbuilder1 | 2023-04-29 16:51:32 +0000 (Sat, 29 Apr 2023) | 2 lines -r3 | pbuilder1 | 2023-04-29 16:51:29 +0000 (Sat, 29 Apr 2023) | 2 lines -ok 2 - run log - -expecting success of 9116.3 'run log against a from trunk': - git reset --hard origin/trunk && - git svn log -r3 origin/a >out && - grep ^r3 out - -HEAD is now at 861e129 aye -r3 | pbuilder1 | 2023-04-29 16:51:29 +0000 (Sat, 29 Apr 2023) | 2 lines -ok 3 - run log against a from trunk - -expecting success of 9116.4 'test ascending revision range': - git reset --hard origin/trunk && - git svn log -r 1:4 | grep '^r[0-9]' | cut -d'|' -f1 | test_cmp expected-range-r1-r2-r4 - - -HEAD is now at 861e129 aye -ok 4 - test ascending revision range - -expecting success of 9116.5 'test ascending revision range with --show-commit': - git reset --hard origin/trunk && - git svn log --show-commit -r 1:4 | grep '^r[0-9]' | cut -d'|' -f1 | test_cmp expected-range-r1-r2-r4 - - -HEAD is now at 861e129 aye -ok 5 - test ascending revision range with --show-commit - -expecting success of 9116.6 'test ascending revision range with --show-commit (sha1)': - git svn find-rev r1 >expected-range-r1-r2-r4-sha1 && - git svn find-rev r2 >>expected-range-r1-r2-r4-sha1 && - git svn find-rev r4 >>expected-range-r1-r2-r4-sha1 && - git reset --hard origin/trunk && - git svn log --show-commit -r 1:4 | grep '^r[0-9]' | cut -d'|' -f2 >out && - git rev-parse $(cat out) >actual && - test_cmp expected-range-r1-r2-r4-sha1 actual - -HEAD is now at 861e129 aye -ok 6 - test ascending revision range with --show-commit (sha1) - -expecting success of 9116.7 'test descending revision range': - git reset --hard origin/trunk && - git svn log -r 4:1 | grep '^r[0-9]' | cut -d'|' -f1 | test_cmp expected-range-r4-r2-r1 - - -HEAD is now at 861e129 aye -ok 7 - test descending revision range - -expecting success of 9116.8 'test ascending revision range with unreachable revision': - git reset --hard origin/trunk && - git svn log -r 1:3 | grep '^r[0-9]' | cut -d'|' -f1 | test_cmp expected-range-r1-r2 - - -HEAD is now at 861e129 aye -ok 8 - test ascending revision range with unreachable revision - -expecting success of 9116.9 'test descending revision range with unreachable revision': - git reset --hard origin/trunk && - git svn log -r 3:1 | grep '^r[0-9]' | cut -d'|' -f1 | test_cmp expected-range-r2-r1 - - -HEAD is now at 861e129 aye -ok 9 - test descending revision range with unreachable revision - -expecting success of 9116.10 'test ascending revision range with unreachable upper boundary revision and 1 commit': - git reset --hard origin/trunk && - git svn log -r 2:3 | grep '^r[0-9]' | cut -d'|' -f1 | test_cmp expected-range-r2 - - -HEAD is now at 861e129 aye -ok 10 - test ascending revision range with unreachable upper boundary revision and 1 commit - -expecting success of 9116.11 'test descending revision range with unreachable upper boundary revision and 1 commit': - git reset --hard origin/trunk && - git svn log -r 3:2 | grep '^r[0-9]' | cut -d'|' -f1 | test_cmp expected-range-r2 - - -HEAD is now at 861e129 aye -ok 11 - test descending revision range with unreachable upper boundary revision and 1 commit - -expecting success of 9116.12 'test ascending revision range with unreachable lower boundary revision and 1 commit': - git reset --hard origin/trunk && - git svn log -r 3:4 | grep '^r[0-9]' | cut -d'|' -f1 | test_cmp expected-range-r4 - - -HEAD is now at 861e129 aye -ok 12 - test ascending revision range with unreachable lower boundary revision and 1 commit - -expecting success of 9116.13 'test descending revision range with unreachable lower boundary revision and 1 commit': - git reset --hard origin/trunk && - git svn log -r 4:3 | grep '^r[0-9]' | cut -d'|' -f1 | test_cmp expected-range-r4 - - -HEAD is now at 861e129 aye -ok 13 - test descending revision range with unreachable lower boundary revision and 1 commit - -expecting success of 9116.14 'test ascending revision range with unreachable boundary revisions and no commits': - git reset --hard origin/trunk && - git svn log -r 5:6 | test_cmp expected-separator - - -HEAD is now at 861e129 aye -ok 14 - test ascending revision range with unreachable boundary revisions and no commits - -expecting success of 9116.15 'test descending revision range with unreachable boundary revisions and no commits': - git reset --hard origin/trunk && - git svn log -r 6:5 | test_cmp expected-separator - - -HEAD is now at 861e129 aye -ok 15 - test descending revision range with unreachable boundary revisions and no commits - -expecting success of 9116.16 'test ascending revision range with unreachable boundary revisions and 1 commit': - git reset --hard origin/trunk && - git svn log -r 3:5 | grep '^r[0-9]' | cut -d'|' -f1 | test_cmp expected-range-r4 - - -HEAD is now at 861e129 aye -ok 16 - test ascending revision range with unreachable boundary revisions and 1 commit - -expecting success of 9116.17 'test descending revision range with unreachable boundary revisions and 1 commit': - git reset --hard origin/trunk && - git svn log -r 5:3 | grep '^r[0-9]' | cut -d'|' -f1 | test_cmp expected-range-r4 - - -HEAD is now at 861e129 aye -ok 17 - test descending revision range with unreachable boundary revisions and 1 commit - -# passed all 17 test(s) -1..17 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t9118-git-svn-funky-branch-names.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9118-git-svn-funky-branch-names/.git/ -expecting success of 9118.1 'setup svnrepo': - mkdir project project/trunk project/branches project/tags && - echo foo > project/trunk/foo && - svn_cmd import -m "$test_description" project "$svnrepo/pr ject" && - rm -rf project && - svn_cmd cp -m "fun" "$svnrepo/pr ject/trunk" \ - "$svnrepo/pr ject/branches/fun plugin" && - svn_cmd cp -m "more fun!" "$svnrepo/pr ject/branches/fun plugin" \ - "$svnrepo/pr ject/branches/more fun plugin!" && - svn_cmd cp -m "scary" "$svnrepo/pr ject/branches/fun plugin" \ - "$svnrepo/pr ject/branches/$scary_uri" && - svn_cmd cp -m "leading dot" "$svnrepo/pr ject/trunk" \ - "$svnrepo/pr ject/branches/.leading_dot" && - if test_have_prereq !MINGW - then - svn_cmd cp -m "trailing dot" "$svnrepo/pr ject/trunk" \ - "$svnrepo/pr ject/branches/trailing_dot." - fi && - svn_cmd cp -m "trailing .lock" "$svnrepo/pr ject/trunk" \ - "$svnrepo/pr ject/branches/trailing_dotlock.lock" && - svn_cmd cp -m "reflog" "$svnrepo/pr ject/trunk" \ - "$svnrepo/pr ject/branches/not-a@{0}reflog@" && - maybe_start_httpd - -Adding project/branches -Adding project/tags -Adding project/trunk -Adding project/trunk/foo -Committing transaction... -Committed revision 1. -Committing transaction... -Committed revision 2. -Committing transaction... -Committed revision 3. -Committing transaction... -Committed revision 4. -Committing transaction... -Committed revision 5. -Committing transaction... -Committed revision 6. -Committing transaction... -Committed revision 7. -Committing transaction... -Committed revision 8. -ok 1 - setup svnrepo - -expecting success of 9118.2 'test clone with funky branch names': - git svn clone -s "$svnrepo/pr ject" project && - ( - cd project && - git rev-parse "refs/remotes/origin/fun%20plugin" && - git rev-parse "refs/remotes/origin/more%20fun%20plugin!" && - git rev-parse "refs/remotes/origin/$scary_ref" && - git rev-parse "refs/remotes/origin/%2Eleading_dot" && - if test_have_prereq !MINGW - then - git rev-parse "refs/remotes/origin/trailing_dot%2E" - fi && - git rev-parse "refs/remotes/origin/trailing_dotlock%2Elock" && - git rev-parse "refs/remotes/origin/$non_reflog" - ) - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9118-git-svn-funky-branch-names/project/.git/ -Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9118-git-svn-funky-branch-names/svnrepo/pr%20ject => file:///build/git-2.30.2/t/trash%20directory.t9118-git-svn-funky-branch-names/svnrepo - A foo -r1 = d60598d77d7f9acdf7ba336c3c88fd16a2eb38b6 (refs/remotes/origin/trunk) -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9118-git-svn-funky-branch-names/svnrepo/pr%20ject/trunk => file:///build/git-2.30.2/t/trash%20directory.t9118-git-svn-funky-branch-names/svnrepo/pr%20ject/branches/fun%20plugin, 1 -Found branch parent: (refs/remotes/origin/fun plugin) d60598d77d7f9acdf7ba336c3c88fd16a2eb38b6 -Following parent with do_switch -Successfully followed parent -r2 = b7561f34de4814ce6640a5deaac6174ff11b18a2 (refs/remotes/origin/fun plugin) -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9118-git-svn-funky-branch-names/svnrepo/pr%20ject/branches/fun%20plugin => file:///build/git-2.30.2/t/trash%20directory.t9118-git-svn-funky-branch-names/svnrepo/pr%20ject/branches/more%20fun%20plugin!, 2 -Found branch parent: (refs/remotes/origin/more fun plugin!) b7561f34de4814ce6640a5deaac6174ff11b18a2 -Following parent with do_switch -Successfully followed parent -r3 = de5d514109f2f51b939721b0b4216b3853cbdb68 (refs/remotes/origin/more fun plugin!) -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9118-git-svn-funky-branch-names/svnrepo/pr%20ject/branches/fun%20plugin => file:///build/git-2.30.2/t/trash%20directory.t9118-git-svn-funky-branch-names/svnrepo/pr%20ject/branches/Abo-Uebernahme%20(Bug%20%23994), 3 -Found branch parent: (refs/remotes/origin/Abo-Uebernahme (Bug #994)) b7561f34de4814ce6640a5deaac6174ff11b18a2 -Following parent with do_switch -Successfully followed parent -r4 = d440c341f02918c5c376234382da8bb647011900 (refs/remotes/origin/Abo-Uebernahme (Bug #994)) -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9118-git-svn-funky-branch-names/svnrepo/pr%20ject/trunk => file:///build/git-2.30.2/t/trash%20directory.t9118-git-svn-funky-branch-names/svnrepo/pr%20ject/branches/.leading_dot, 4 -Found branch parent: (refs/remotes/origin/.leading_dot) d60598d77d7f9acdf7ba336c3c88fd16a2eb38b6 -Following parent with do_switch -Successfully followed parent -r5 = 288f04ff7f257f6def35b3aef391d5f1b7867009 (refs/remotes/origin/.leading_dot) -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9118-git-svn-funky-branch-names/svnrepo/pr%20ject/trunk => file:///build/git-2.30.2/t/trash%20directory.t9118-git-svn-funky-branch-names/svnrepo/pr%20ject/branches/trailing_dot., 5 -Found branch parent: (refs/remotes/origin/trailing_dot.) d60598d77d7f9acdf7ba336c3c88fd16a2eb38b6 -Following parent with do_switch -Successfully followed parent -r6 = 063a3529bee379774a11b75aebb19f90e4de3762 (refs/remotes/origin/trailing_dot.) -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9118-git-svn-funky-branch-names/svnrepo/pr%20ject/trunk => file:///build/git-2.30.2/t/trash%20directory.t9118-git-svn-funky-branch-names/svnrepo/pr%20ject/branches/trailing_dotlock.lock, 6 -Found branch parent: (refs/remotes/origin/trailing_dotlock.lock) d60598d77d7f9acdf7ba336c3c88fd16a2eb38b6 -Following parent with do_switch -Successfully followed parent -r7 = 20a53c5ca43191b5fdfac5bfe7a562ac8fcda93c (refs/remotes/origin/trailing_dotlock.lock) -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9118-git-svn-funky-branch-names/svnrepo/pr%20ject/trunk => file:///build/git-2.30.2/t/trash%20directory.t9118-git-svn-funky-branch-names/svnrepo/pr%20ject/branches/not-a@%7B0%7Dreflog, 7 -Found branch parent: (refs/remotes/origin/not-a@{0}reflog) d60598d77d7f9acdf7ba336c3c88fd16a2eb38b6 -Following parent with do_switch -Successfully followed parent -r8 = 76e7dac7a68389d47029862f83d3e2673eaea88d (refs/remotes/origin/not-a@{0}reflog) -Checked out HEAD: - file:///build/git-2.30.2/t/trash%20directory.t9118-git-svn-funky-branch-names/svnrepo/pr%20ject/trunk r1 -b7561f34de4814ce6640a5deaac6174ff11b18a2 -de5d514109f2f51b939721b0b4216b3853cbdb68 -d440c341f02918c5c376234382da8bb647011900 -288f04ff7f257f6def35b3aef391d5f1b7867009 -063a3529bee379774a11b75aebb19f90e4de3762 -20a53c5ca43191b5fdfac5bfe7a562ac8fcda93c -76e7dac7a68389d47029862f83d3e2673eaea88d -ok 2 - test clone with funky branch names - -expecting success of 9118.3 'test dcommit to funky branch': - ( - cd project && - git reset --hard 'refs/remotes/origin/more%20fun%20plugin!' && - echo hello >> foo && - git commit -m 'hello' -- foo && - git svn dcommit - ) - -HEAD is now at de5d514 more fun! -[master 0f0e005] hello - Author: A U Thor - 1 file changed, 1 insertion(+) -Committing to file:///build/git-2.30.2/t/trash%20directory.t9118-git-svn-funky-branch-names/svnrepo/pr%20ject/branches/more%20fun%20plugin! ... - M foo -Committed r9 - M foo -r9 = bdc1a32902ff7f1d8cdd0d80b79d523c4992dfcc (refs/remotes/origin/more fun plugin!) -No changes between 0f0e005d1db6b590ce8c38dc8e6d362563896552 and refs/remotes/origin/more%20fun%20plugin! -Resetting to the latest refs/remotes/origin/more%20fun%20plugin! -ok 3 - test dcommit to funky branch +outdir/0000-cover-letter.patch +outdir/0001-Second.patch +outdir/0002-add-master.patch +ok 140 - --force sends cover letter template anyway -expecting success of 9118.4 'test dcommit to scary branch': - ( - cd project && - git reset --hard "refs/remotes/origin/$scary_ref" && - echo urls are scary >> foo && - git commit -m "eep" -- foo && - git svn dcommit - ) - -HEAD is now at d440c34 scary -[master d0fc158] eep - Author: A U Thor - 1 file changed, 1 insertion(+) -Committing to file:///build/git-2.30.2/t/trash%20directory.t9118-git-svn-funky-branch-names/svnrepo/pr%20ject/branches/Abo-Uebernahme%20(Bug%20%23994) ... - M foo -Committed r10 - M foo -r10 = d556220c8e6e70628e8d06dcd05f9aa558e6765a (refs/remotes/origin/Abo-Uebernahme (Bug #994)) -No changes between d0fc158e8f8afe81b6fb5918f20728be10573424 and refs/remotes/origin/Abo-Uebernahme%20(Bug%20#994) -Resetting to the latest refs/remotes/origin/Abo-Uebernahme%20(Bug%20#994) -ok 4 - test dcommit to scary branch +expecting success of 9001.141 'to-cover adds To to all mail': + test_cover_addresses "To" --to-cover -expecting success of 9118.5 'test dcommit to trailing_dotlock branch': - ( - cd project && - git reset --hard "refs/remotes/origin/trailing_dotlock%2Elock" && - echo who names branches like this anyway? >> foo && - git commit -m "bar" -- foo && - git svn dcommit - ) - -HEAD is now at 20a53c5 trailing .lock -[master db6e1e3] bar - Author: A U Thor - 1 file changed, 1 insertion(+) -Committing to file:///build/git-2.30.2/t/trash%20directory.t9118-git-svn-funky-branch-names/svnrepo/pr%20ject/branches/trailing_dotlock.lock ... - M foo -Committed r11 - M foo -r11 = 41dbbe9c82315e8b8041eee35534e712295c265c (refs/remotes/origin/trailing_dotlock.lock) -No changes between db6e1e304c7a1e0758c08a3e5804cbef5da8c763 and refs/remotes/origin/trailing_dotlock%2Elock -Resetting to the latest refs/remotes/origin/trailing_dotlock%2Elock -ok 5 - test dcommit to trailing_dotlock branch +outdir/0000-cover-letter.patch +outdir/0001-Second.patch +outdir/0002-add-master.patch +ok 141 - to-cover adds To to all mail -# passed all 5 test(s) -1..5 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t9121-git-svn-fetch-renamed-dir.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9121-git-svn-fetch-renamed-dir/.git/ -expecting success of 9121.1 'load repository with renamed directory': - svnadmin load -q "$rawsvnrepo" < "$TEST_DIRECTORY"/t9121/renamed-dir.dump - -ok 1 - load repository with renamed directory +expecting success of 9001.142 'cc-cover adds Cc to all mail': + test_cover_addresses "Cc" --cc-cover -expecting success of 9121.2 'init and fetch repository': - git svn init "$svnrepo/newname" && - git svn fetch - - A a.txt -r2 = ec4b875c72eb6b492589eaac3cb7e8cfe72b4756 (refs/remotes/git-svn) -Checked out HEAD: - file:///build/git-2.30.2/t/trash%20directory.t9121-git-svn-fetch-renamed-dir/svnrepo/newname r2 -ok 2 - init and fetch repository +outdir/0000-cover-letter.patch +outdir/0001-Second.patch +outdir/0002-add-master.patch +ok 142 - cc-cover adds Cc to all mail -# passed all 2 test(s) -1..2 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t9123-git-svn-rebuild-with-rewriteroot.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9123-git-svn-rebuild-with-rewriteroot/.git/ -expecting success of 9123.1 'init, fetch and checkout repository': - git svn init --rewrite-root=http://invalid.invalid/ "$svnrepo" && - git svn fetch && - git checkout -b mybranch remotes/git-svn - - A foo -r1 = 5157bcc8f1b6e8ec9bc17de471641f213b76d8e6 (refs/remotes/git-svn) -Checked out HEAD: - file:///build/git-2.30.2/t/trash%20directory.t9123-git-svn-rebuild-with-rewriteroot/svnrepo r1 -Switched to a new branch 'mybranch' -ok 1 - init, fetch and checkout repository +expecting success of 9001.143 'tocover adds To to all mail': + test_config sendemail.tocover true && + test_cover_addresses "To" -expecting success of 9123.2 'remove rev_map': - rm "$GIT_SVN_DIR"/.rev_map.* - -ok 2 - remove rev_map +outdir/0000-cover-letter.patch +outdir/0001-Second.patch +outdir/0002-add-master.patch +ok 143 - tocover adds To to all mail -expecting success of 9123.3 'rebuild rev_map': - git svn rebase >/dev/null - -ok 3 - rebuild rev_map +expecting success of 9001.144 'cccover adds Cc to all mail': + test_config sendemail.cccover true && + test_cover_addresses "Cc" -# passed all 3 test(s) -1..3 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t9122-git-svn-author.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9122-git-svn-author/.git/ -expecting success of 9122.1 'setup svn repository': - svn_cmd checkout "$svnrepo" work.svn && - ( - cd work.svn && - echo >file && - svn_cmd add file && - svn_cmd commit -m "first commit" file - ) +outdir/0000-cover-letter.patch +outdir/0001-Second.patch +outdir/0002-add-master.patch +ok 144 - cccover adds Cc to all mail -Checked out revision 0. -A file -Adding file -Transmitting file data .done -Committing transaction... -Committed revision 1. -ok 1 - setup svn repository +expecting success of 9001.145 'escaped quotes in sendemail.aliasfiletype=mutt': + clean_fake_sendmail && + echo "alias sbd \\\"Dot U. Sir\\\" " >.mutt && + git config --replace-all sendemail.aliasesfile "$(pwd)/.mutt" && + git config sendemail.aliasfiletype mutt && + git send-email \ + --from="Example " \ + --to=sbd \ + --smtp-server="$(pwd)/fake.sendmail" \ + outdir/0001-*.patch \ + 2>errors >out && + grep "^!somebody@example\.org!$" commandline1 && + grep -F "To: \"Dot U. Sir\" " out -expecting success of 9122.2 'interact with it via git svn': - mkdir work.git && - ( - cd work.git && - git svn init "$svnrepo" && - git svn fetch && +!somebody@example.org! +To: "Dot U. Sir" +ok 145 - escaped quotes in sendemail.aliasfiletype=mutt - echo modification >file && - test_tick && - git commit -a -m second && +expecting success of 9001.146 'sendemail.aliasfiletype=mailrc': + clean_fake_sendmail && + echo "alias sbd somebody@example.org" >.mailrc && + git config --replace-all sendemail.aliasesfile "$(pwd)/.mailrc" && + git config sendemail.aliasfiletype mailrc && + git send-email \ + --from="Example " \ + --to=sbd \ + --smtp-server="$(pwd)/fake.sendmail" \ + outdir/0001-*.patch \ + 2>errors >out && + grep "^!somebody@example\.org!$" commandline1 - test_tick && - git svn dcommit && +!somebody@example.org! +ok 146 - sendemail.aliasfiletype=mailrc - echo "further modification" >file && - test_tick && - git commit -a -m third && +expecting success of 9001.147 'sendemail.aliasfile=~/.mailrc': + clean_fake_sendmail && + echo "alias sbd someone@example.org" >"$HOME/.mailrc" && + git config --replace-all sendemail.aliasesfile "~/.mailrc" && + git config sendemail.aliasfiletype mailrc && + git send-email \ + --from="Example " \ + --to=sbd \ + --smtp-server="$(pwd)/fake.sendmail" \ + outdir/0001-*.patch \ + 2>errors >out && + grep "^!someone@example\.org!$" commandline1 - test_tick && - git svn --add-author-from dcommit && +!someone@example.org! +ok 147 - sendemail.aliasfile=~/.mailrc - echo "yet further modification" >file && - test_tick && - git commit -a -m fourth && +expecting success of 9001.148 '--dump-aliases sendmail format': + clean_fake_sendmail && rm -fr outdir && + git config --replace-all sendemail.aliasesfile \ + "$(pwd)/.tmp-email-aliases" && + git config sendemail.aliasfiletype "$filetype" && + git send-email --dump-aliases 2>errors >actual && + test_cmp expect actual + +ok 148 - --dump-aliases sendmail format - test_tick && - git svn --add-author-from --use-log-author dcommit && +expecting success of 9001.149 '--dump-aliases mutt format': + clean_fake_sendmail && rm -fr outdir && + git config --replace-all sendemail.aliasesfile \ + "$(pwd)/.tmp-email-aliases" && + git config sendemail.aliasfiletype "$filetype" && + git send-email --dump-aliases 2>errors >actual && + test_cmp expect actual + +ok 149 - --dump-aliases mutt format - git log && +expecting success of 9001.150 '--dump-aliases mailrc format': + clean_fake_sendmail && rm -fr outdir && + git config --replace-all sendemail.aliasesfile \ + "$(pwd)/.tmp-email-aliases" && + git config sendemail.aliasfiletype "$filetype" && + git send-email --dump-aliases 2>errors >actual && + test_cmp expect actual + +ok 150 - --dump-aliases mailrc format - git show -s HEAD^^ >../actual.2 && - git show -s HEAD^ >../actual.3 && - git show -s HEAD >../actual.4 +expecting success of 9001.151 '--dump-aliases pine format': + clean_fake_sendmail && rm -fr outdir && + git config --replace-all sendemail.aliasesfile \ + "$(pwd)/.tmp-email-aliases" && + git config sendemail.aliasfiletype "$filetype" && + git send-email --dump-aliases 2>errors >actual && + test_cmp expect actual + +ok 151 - --dump-aliases pine format - ) && +expecting success of 9001.152 '--dump-aliases gnus format': + clean_fake_sendmail && rm -fr outdir && + git config --replace-all sendemail.aliasesfile \ + "$(pwd)/.tmp-email-aliases" && + git config sendemail.aliasfiletype "$filetype" && + git send-email --dump-aliases 2>errors >actual && + test_cmp expect actual + +ok 152 - --dump-aliases gnus format - # Make sure that --add-author-from without --use-log-author - # did not affect the authorship information - myself=$(grep "^Author: " actual.2) && - unaffected=$(grep "^Author: " actual.3) && - test "z$myself" = "z$unaffected" && +expecting success of 9001.153 '--dump-aliases must be used alone': + test_must_fail git send-email --dump-aliases --to=janice@example.com -1 refs/heads/accounting - # Make sure lack of --add-author-from did not add cruft - ! grep "^ From: A U Thor " actual.2 && +--dump-aliases incompatible with other options +ok 153 - --dump-aliases must be used alone - # Make sure --add-author-from added cruft - grep "^ From: A U Thor " actual.3 && - grep "^ From: A U Thor " actual.4 && +expecting success of 9001.154 'aliases and sendemail.identity': + test_must_fail git \ + -c sendemail.identity=cloud \ + -c sendemail.aliasesfile=default-aliases \ + -c sendemail.cloud.aliasesfile=cloud-aliases \ + send-email -1 2>stderr && + test_i18ngrep "cloud-aliases" stderr - # Make sure --add-author-from with --use-log-author affected - # the authorship information - grep "^Author: A U Thor " actual.4 && +checking prerequisite: C_LOCALE_OUTPUT - # Make sure there are no commit messages with excess blank lines - test $(grep "^ " actual.2 | wc -l) = 3 && - test $(grep "^ " actual.3 | wc -l) = 5 && - test $(grep "^ " actual.4 | wc -l) = 5 && +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-C_LOCALE_OUTPUT" && + ! test_bool_env GIT_TEST_GETTEXT_POISON false - # Make sure there are no svn commit messages with excess blank lines - ( - cd work.svn && - svn_cmd up && - - test $(svn_cmd log -r2:2 | wc -l) = 5 && - test $(svn_cmd log -r4:4 | wc -l) = 7 - ) +) +prerequisite C_LOCALE_OUTPUT ok +opening cloud-aliases: No such file or directory +ok 154 - aliases and sendemail.identity -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9122-git-svn-author/work.git/.git/ - A file -r1 = 5ff35491d0e53def932e0771017cfa53acc564c8 (refs/remotes/git-svn) -Checked out HEAD: - file:///build/git-2.30.2/t/trash%20directory.t9122-git-svn-author/svnrepo r1 -[master 9ebee77] second - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -Committing to file:///build/git-2.30.2/t/trash%20directory.t9122-git-svn-author/svnrepo ... - M file -Committed r2 - M file -r2 = 65d8306a5d2de1e038adefe133ec061f222e199b (refs/remotes/git-svn) -No changes between 9ebee77c23b11d6bce57fe35b101b69d4ff1a734 and refs/remotes/git-svn -Resetting to the latest refs/remotes/git-svn -[master 8988943] third - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -Committing to file:///build/git-2.30.2/t/trash%20directory.t9122-git-svn-author/svnrepo ... - M file -Committed r3 - M file -r3 = 096ab2618de95f438e84efe1f00bf96553a94c26 (refs/remotes/git-svn) -No changes between 89889439d847eeebd07786df770e7e9e1a5fa8c3 and refs/remotes/git-svn -Resetting to the latest refs/remotes/git-svn -[master d6378ca] fourth - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -Committing to file:///build/git-2.30.2/t/trash%20directory.t9122-git-svn-author/svnrepo ... - M file -Committed r4 - M file -r4 = 4aa4e785b977a287e86dee65c895d19fa5cae4f4 (refs/remotes/git-svn) -No changes between d6378ca8444aba943b4ae5540a8222bf4c681341 and refs/remotes/git-svn -Resetting to the latest refs/remotes/git-svn -commit 4aa4e785b977a287e86dee65c895d19fa5cae4f4 -Author: A U Thor -Date: Sat Apr 29 16:52:33 2023 +0000 +expecting success of 9001.155 'sendemail.aliasfiletype=sendmail': + clean_fake_sendmail && rm -fr outdir && + git format-patch -1 -o outdir && + git config --replace-all sendemail.aliasesfile \ + "$(pwd)/.tmp-email-aliases" && + git config sendemail.aliasfiletype sendmail && + git send-email \ + --from="Example " \ + --to=alice --to=bcgrp \ + --smtp-server="$(pwd)/fake.sendmail" \ + outdir/0001-*.patch \ + 2>errors >out && + for i in $expect + do + grep "^!$i!$" commandline1 || return 1 + done + +outdir/0001-add-master.patch +!awol@example.com! +!bob@example.com! +!chloe@example.com! +!o@example.com! +ok 155 - sendemail.aliasfiletype=sendmail - fourth - - From: A U Thor - - git-svn-id: file:///build/git-2.30.2/t/trash%20directory.t9122-git-svn-author/svnrepo@4 5bc48ff8-ee38-4cb2-856d-0f3809aeaf7e +expecting success of 9001.156 'sendmail aliases line folding': + clean_fake_sendmail && rm -fr outdir && + git format-patch -1 -o outdir && + git config --replace-all sendemail.aliasesfile \ + "$(pwd)/.tmp-email-aliases" && + git config sendemail.aliasfiletype sendmail && + git send-email \ + --from="Example " \ + --to=alice --to=bcgrp \ + --smtp-server="$(pwd)/fake.sendmail" \ + outdir/0001-*.patch \ + 2>errors >out && + for i in $expect + do + grep "^!$i!$" commandline1 || return 1 + done + +outdir/0001-add-master.patch +!alice1! +!bob1! +!bob2! +!chuck1! +!chuck2! +!darla1! +!darla2! +!darla3! +!elton1! +!elton2! +!elton3! +!fred1! +!fred2! +!greg1! +ok 156 - sendmail aliases line folding -commit 096ab2618de95f438e84efe1f00bf96553a94c26 -Author: pbuilder1 -Date: Sat Apr 29 16:52:29 2023 +0000 +expecting success of 9001.157 'sendmail aliases tolerate bogus line folding': + clean_fake_sendmail && rm -fr outdir && + git format-patch -1 -o outdir && + git config --replace-all sendemail.aliasesfile \ + "$(pwd)/.tmp-email-aliases" && + git config sendemail.aliasfiletype sendmail && + git send-email \ + --from="Example " \ + --to=alice --to=bcgrp \ + --smtp-server="$(pwd)/fake.sendmail" \ + outdir/0001-*.patch \ + 2>errors >out && + for i in $expect + do + grep "^!$i!$" commandline1 || return 1 + done + +outdir/0001-add-master.patch +!alice1! +!bob1! +ok 157 - sendmail aliases tolerate bogus line folding - third - - From: A U Thor - - git-svn-id: file:///build/git-2.30.2/t/trash%20directory.t9122-git-svn-author/svnrepo@3 5bc48ff8-ee38-4cb2-856d-0f3809aeaf7e +expecting success of 9001.158 'sendmail aliases empty': + clean_fake_sendmail && rm -fr outdir && + git format-patch -1 -o outdir && + git config --replace-all sendemail.aliasesfile \ + "$(pwd)/.tmp-email-aliases" && + git config sendemail.aliasfiletype sendmail && + git send-email \ + --from="Example " \ + --to=alice --to=bcgrp \ + --smtp-server="$(pwd)/fake.sendmail" \ + outdir/0001-*.patch \ + 2>errors >out && + for i in $expect + do + grep "^!$i!$" commandline1 || return 1 + done + +outdir/0001-add-master.patch +!alice! +!bcgrp! +ok 158 - sendmail aliases empty -commit 65d8306a5d2de1e038adefe133ec061f222e199b -Author: pbuilder1 -Date: Sat Apr 29 16:52:26 2023 +0000 +expecting success of 9001.159 'alias support in To header': + clean_fake_sendmail && + echo "alias sbd someone@example.org" >.mailrc && + test_config sendemail.aliasesfile ".mailrc" && + test_config sendemail.aliasfiletype mailrc && + git format-patch --stdout -1 --to=sbd >aliased.patch && + git send-email \ + --from="Example " \ + --smtp-server="$(pwd)/fake.sendmail" \ + aliased.patch \ + 2>errors >out && + grep "^!someone@example\.org!$" commandline1 - second - - git-svn-id: file:///build/git-2.30.2/t/trash%20directory.t9122-git-svn-author/svnrepo@2 5bc48ff8-ee38-4cb2-856d-0f3809aeaf7e +!someone@example.org! +ok 159 - alias support in To header -commit 5ff35491d0e53def932e0771017cfa53acc564c8 -Author: pbuilder1 -Date: Sat Apr 29 16:52:20 2023 +0000 +expecting success of 9001.160 'alias support in Cc header': + clean_fake_sendmail && + echo "alias sbd someone@example.org" >.mailrc && + test_config sendemail.aliasesfile ".mailrc" && + test_config sendemail.aliasfiletype mailrc && + git format-patch --stdout -1 --cc=sbd >aliased.patch && + git send-email \ + --from="Example " \ + --smtp-server="$(pwd)/fake.sendmail" \ + aliased.patch \ + 2>errors >out && + grep "^!someone@example\.org!$" commandline1 - first commit - - git-svn-id: file:///build/git-2.30.2/t/trash%20directory.t9122-git-svn-author/svnrepo@1 5bc48ff8-ee38-4cb2-856d-0f3809aeaf7e - From: A U Thor - From: A U Thor -Author: A U Thor -Updating '.': -U file -Updated to revision 4. -ok 2 - interact with it via git svn +!someone@example.org! +ok 160 - alias support in Cc header -# passed all 2 test(s) -1..2 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t9120-git-svn-clone-with-percent-escapes.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9120-git-svn-clone-with-percent-escapes/.git/ -expecting success of 9120.1 'setup svnrepo': - mkdir project project/trunk project/branches project/tags && - echo foo > project/trunk/foo && - svn_cmd import -m "$test_description" project "$svnrepo/pr ject" && - svn_cmd cp -m "branch" "$svnrepo/pr ject/trunk" \ - "$svnrepo/pr ject/branches/b" && - svn_cmd cp -m "tag" "$svnrepo/pr ject/trunk" \ - "$svnrepo/pr ject/tags/v1" && - rm -rf project && - maybe_start_httpd +expecting success of 9001.161 'tocmd works with aliases': + clean_fake_sendmail && + echo "alias sbd someone@example.org" >.mailrc && + test_config sendemail.aliasesfile ".mailrc" && + test_config sendemail.aliasfiletype mailrc && + git format-patch --stdout -1 >tocmd.patch && + echo tocmd--sbd >>tocmd.patch && + git send-email \ + --from="Example " \ + --to-cmd=./tocmd-sed \ + --smtp-server="$(pwd)/fake.sendmail" \ + tocmd.patch \ + 2>errors >out && + grep "^!someone@example\.org!$" commandline1 -Adding project/branches -Adding project/tags -Adding project/trunk -Adding project/trunk/foo -Committing transaction... -Committed revision 1. -Committing transaction... -Committed revision 2. -Committing transaction... -Committed revision 3. -ok 1 - setup svnrepo +!someone@example.org! +ok 161 - tocmd works with aliases -expecting success of 9120.2 'test clone with percent escapes': - git svn clone "$svnrepo/pr%20ject" clone && - ( - cd clone && - git rev-parse refs/remotes/git-svn - ) +expecting success of 9001.162 'cccmd works with aliases': + clean_fake_sendmail && + echo "alias sbd someone@example.org" >.mailrc && + test_config sendemail.aliasesfile ".mailrc" && + test_config sendemail.aliasfiletype mailrc && + git format-patch --stdout -1 >cccmd.patch && + echo cccmd--sbd >>cccmd.patch && + git send-email \ + --from="Example " \ + --cc-cmd=./cccmd-sed \ + --smtp-server="$(pwd)/fake.sendmail" \ + cccmd.patch \ + 2>errors >out && + grep "^!someone@example\.org!$" commandline1 -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9120-git-svn-clone-with-percent-escapes/clone/.git/ - A trunk/foo -W: +empty_dir: branches -W: +empty_dir: tags -r1 = 78b7209ab9d63f7e8c18c485a3d1336b15ffb9f9 (refs/remotes/git-svn) - A branches/b/foo -r2 = b595b6e7bca4b2ba44fce0d178481e03d4a2980e (refs/remotes/git-svn) - A tags/v1/foo -r3 = e37d02ff4b0b26340b03c24b1c97b767ef62c3ed (refs/remotes/git-svn) -Checked out HEAD: - file:///build/git-2.30.2/t/trash%20directory.t9120-git-svn-clone-with-percent-escapes/svnrepo/pr%20ject r3 -e37d02ff4b0b26340b03c24b1c97b767ef62c3ed -ok 2 - test clone with percent escapes +!someone@example.org! +ok 162 - cccmd works with aliases -expecting success of 9120.3 'svn checkout with percent escapes': - svn_cmd checkout "$svnrepo/pr%20ject" svn.percent && - svn_cmd checkout "$svnrepo/pr%20ject/trunk" svn.percent.trunk +expecting success of 9001.163 '--[no-]xmailer without any configuration': + do_xmailer_test 1 "--xmailer" && + do_xmailer_test 0 "--no-xmailer" -A svn.percent/branches -A svn.percent/branches/b -A svn.percent/branches/b/foo -A svn.percent/tags -A svn.percent/tags/v1 -A svn.percent/tags/v1/foo -A svn.percent/trunk -A svn.percent/trunk/foo -Checked out revision 3. -A svn.percent.trunk/foo -Checked out revision 3. -ok 3 - svn checkout with percent escapes +0001-add-master.patch +0001-add-master.patch +ok 163 - --[no-]xmailer without any configuration -expecting success of 9120.4 'svn checkout with space': - svn_cmd checkout "$svnrepo/pr ject" svn.space && - svn_cmd checkout "$svnrepo/pr ject/trunk" svn.space.trunk +expecting success of 9001.164 '--[no-]xmailer with sendemail.xmailer=true': + test_config sendemail.xmailer true && + do_xmailer_test 1 "" && + do_xmailer_test 0 "--no-xmailer" && + do_xmailer_test 1 "--xmailer" -A svn.space/branches -A svn.space/branches/b -A svn.space/branches/b/foo -A svn.space/tags -A svn.space/tags/v1 -A svn.space/tags/v1/foo -A svn.space/trunk -A svn.space/trunk/foo -Checked out revision 3. -A svn.space.trunk/foo -Checked out revision 3. -ok 4 - svn checkout with space +0001-add-master.patch +0001-add-master.patch +0001-add-master.patch +ok 164 - --[no-]xmailer with sendemail.xmailer=true -expecting success of 9120.5 'test clone trunk with percent escapes and minimize-url': - git svn clone --minimize-url "$svnrepo/pr%20ject/trunk" minimize && - ( - cd minimize && - git rev-parse refs/remotes/git-svn - ) +expecting success of 9001.165 '--[no-]xmailer with sendemail.xmailer=false': + test_config sendemail.xmailer false && + do_xmailer_test 0 "" && + do_xmailer_test 0 "--no-xmailer" && + do_xmailer_test 1 "--xmailer" -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9120-git-svn-clone-with-percent-escapes/minimize/.git/ -Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9120-git-svn-clone-with-percent-escapes/svnrepo/pr%20ject/trunk => file:///build/git-2.30.2/t/trash%20directory.t9120-git-svn-clone-with-percent-escapes/svnrepo - A foo -r1 = 9eb798e76c73dfcb71c34b19909fb4d0b9505543 (refs/remotes/git-svn) -Checked out HEAD: - file:///build/git-2.30.2/t/trash%20directory.t9120-git-svn-clone-with-percent-escapes/svnrepo/pr%20ject/trunk r1 -9eb798e76c73dfcb71c34b19909fb4d0b9505543 -ok 5 - test clone trunk with percent escapes and minimize-url +0001-add-master.patch +0001-add-master.patch +0001-add-master.patch +ok 165 - --[no-]xmailer with sendemail.xmailer=false -expecting success of 9120.6 'test clone trunk with percent escapes': - git svn clone "$svnrepo/pr%20ject/trunk" trunk && - ( - cd trunk && - git rev-parse refs/remotes/git-svn - ) +expecting success of 9001.166 'setup expected-list': + git send-email \ + --dry-run \ + --from="Example " \ + --to="To 1 " \ + --to="to2@example.com" \ + --to="to3@example.com" \ + --cc="Cc 1 " \ + --cc="Cc2 " \ + --bcc="bcc1@example.com" \ + --bcc="bcc2@example.com" \ + 0001-add-master.patch | replace_variable_fields \ + >expected-list -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9120-git-svn-clone-with-percent-escapes/trunk/.git/ - A foo -r1 = 9eb798e76c73dfcb71c34b19909fb4d0b9505543 (refs/remotes/git-svn) -Checked out HEAD: - file:///build/git-2.30.2/t/trash%20directory.t9120-git-svn-clone-with-percent-escapes/svnrepo/pr%20ject/trunk r1 -9eb798e76c73dfcb71c34b19909fb4d0b9505543 -ok 6 - test clone trunk with percent escapes +ok 166 - setup expected-list -expecting success of 9120.7 'test clone --stdlayout with percent escapes': - git svn clone --stdlayout "$svnrepo/pr%20ject" percent && - ( - cd percent && - git rev-parse refs/remotes/origin/trunk^0 && - git rev-parse refs/remotes/origin/b^0 && - git rev-parse refs/remotes/origin/tags/v1^0 - ) +expecting success of 9001.167 'use email list in --cc --to and --bcc': + git send-email \ + --dry-run \ + --from="Example " \ + --to="To 1 , to2@example.com" \ + --to="to3@example.com" \ + --cc="Cc 1 , Cc2 " \ + --bcc="bcc1@example.com, bcc2@example.com" \ + 0001-add-master.patch | replace_variable_fields \ + >actual-list && + test_cmp expected-list actual-list -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9120-git-svn-clone-with-percent-escapes/percent/.git/ -Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9120-git-svn-clone-with-percent-escapes/svnrepo/pr%20ject => file:///build/git-2.30.2/t/trash%20directory.t9120-git-svn-clone-with-percent-escapes/svnrepo - A foo -r1 = 9eb798e76c73dfcb71c34b19909fb4d0b9505543 (refs/remotes/origin/trunk) -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9120-git-svn-clone-with-percent-escapes/svnrepo/pr%20ject/trunk => file:///build/git-2.30.2/t/trash%20directory.t9120-git-svn-clone-with-percent-escapes/svnrepo/pr%20ject/branches/b, 1 -Found branch parent: (refs/remotes/origin/b) 9eb798e76c73dfcb71c34b19909fb4d0b9505543 -Following parent with do_switch -Successfully followed parent -r2 = 07736841a3d0a46ccde34681728b5ed8c6441e95 (refs/remotes/origin/b) -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9120-git-svn-clone-with-percent-escapes/svnrepo/pr%20ject/trunk => file:///build/git-2.30.2/t/trash%20directory.t9120-git-svn-clone-with-percent-escapes/svnrepo/pr%20ject/tags/v1, 2 -Found branch parent: (refs/remotes/origin/tags/v1) 9eb798e76c73dfcb71c34b19909fb4d0b9505543 -Following parent with do_switch -Successfully followed parent -r3 = 486bf206f6ce010b890d75f6ab5afdd7dc188c8d (refs/remotes/origin/tags/v1) -Checked out HEAD: - file:///build/git-2.30.2/t/trash%20directory.t9120-git-svn-clone-with-percent-escapes/svnrepo/pr%20ject/trunk r1 -9eb798e76c73dfcb71c34b19909fb4d0b9505543 -07736841a3d0a46ccde34681728b5ed8c6441e95 -486bf206f6ce010b890d75f6ab5afdd7dc188c8d -ok 7 - test clone --stdlayout with percent escapes +ok 167 - use email list in --cc --to and --bcc -expecting success of 9120.8 'test clone -s with unescaped space': - git svn clone -s "$svnrepo/pr ject" --prefix origin/ space && - ( - cd space && - git rev-parse refs/remotes/origin/trunk^0 && - git rev-parse refs/remotes/origin/b^0 && - git rev-parse refs/remotes/origin/tags/v1^0 - ) +expecting success of 9001.168 'aliases work with email list': + echo "alias to2 to2@example.com" >.mutt && + echo "alias cc1 Cc 1 " >>.mutt && + test_config sendemail.aliasesfile ".mutt" && + test_config sendemail.aliasfiletype mutt && + git send-email \ + --dry-run \ + --from="Example " \ + --to="To 1 , to2, to3@example.com" \ + --cc="cc1, Cc2 " \ + --bcc="bcc1@example.com, bcc2@example.com" \ + 0001-add-master.patch | replace_variable_fields \ + >actual-list && + test_cmp expected-list actual-list -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9120-git-svn-clone-with-percent-escapes/space/.git/ -Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9120-git-svn-clone-with-percent-escapes/svnrepo/pr%20ject => file:///build/git-2.30.2/t/trash%20directory.t9120-git-svn-clone-with-percent-escapes/svnrepo - A foo -r1 = 9eb798e76c73dfcb71c34b19909fb4d0b9505543 (refs/remotes/origin/trunk) -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9120-git-svn-clone-with-percent-escapes/svnrepo/pr%20ject/trunk => file:///build/git-2.30.2/t/trash%20directory.t9120-git-svn-clone-with-percent-escapes/svnrepo/pr%20ject/branches/b, 1 -Found branch parent: (refs/remotes/origin/b) 9eb798e76c73dfcb71c34b19909fb4d0b9505543 -Following parent with do_switch -Successfully followed parent -r2 = 07736841a3d0a46ccde34681728b5ed8c6441e95 (refs/remotes/origin/b) -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9120-git-svn-clone-with-percent-escapes/svnrepo/pr%20ject/trunk => file:///build/git-2.30.2/t/trash%20directory.t9120-git-svn-clone-with-percent-escapes/svnrepo/pr%20ject/tags/v1, 2 -Found branch parent: (refs/remotes/origin/tags/v1) 9eb798e76c73dfcb71c34b19909fb4d0b9505543 -Following parent with do_switch -Successfully followed parent -r3 = 486bf206f6ce010b890d75f6ab5afdd7dc188c8d (refs/remotes/origin/tags/v1) -Checked out HEAD: - file:///build/git-2.30.2/t/trash%20directory.t9120-git-svn-clone-with-percent-escapes/svnrepo/pr%20ject/trunk r1 -9eb798e76c73dfcb71c34b19909fb4d0b9505543 -07736841a3d0a46ccde34681728b5ed8c6441e95 -486bf206f6ce010b890d75f6ab5afdd7dc188c8d -ok 8 - test clone -s with unescaped space +ok 168 - aliases work with email list -# passed all 8 test(s) -1..8 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t9126-git-svn-follow-deleted-readded-directory.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9126-git-svn-follow-deleted-readded-directory/.git/ -1..0 # SKIP skipping svnserve test. (set $GIT_TEST_SVNSERVE to enable) -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t9125-git-svn-multi-glob-branch-names.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9125-git-svn-multi-glob-branch-names/.git/ -expecting success of 9125.1 'setup svnrepo': - mkdir project project/trunk project/branches \ - project/branches/v14.1 project/tags && - echo foo > project/trunk/foo && - svn_cmd import -m "$test_description" project "$svnrepo/project" && - rm -rf project && - svn_cmd cp -m "fun" "$svnrepo/project/trunk" \ - "$svnrepo/project/branches/v14.1/beta" && - svn_cmd cp -m "more fun!" "$svnrepo/project/branches/v14.1/beta" \ - "$svnrepo/project/branches/v14.1/gold" - -Adding project/branches -Adding project/branches/v14.1 -Adding project/tags -Adding project/trunk -Adding project/trunk/foo -Committing transaction... -Committed revision 1. -Committing transaction... -Committed revision 2. -Committing transaction... -Committed revision 3. -ok 1 - setup svnrepo +expecting success of 9001.169 'leading and trailing whitespaces are removed': + echo "alias to2 to2@example.com" >.mutt && + echo "alias cc1 Cc 1 " >>.mutt && + test_config sendemail.aliasesfile ".mutt" && + test_config sendemail.aliasfiletype mutt && + TO1=$(echo "QTo 1 " | q_to_tab) && + TO2=$(echo "QZto2" | qz_to_tab_space) && + CC1=$(echo "cc1" | append_cr) && + BCC1=$(echo " bcc1@example.com Q" | q_to_nul) && + git send-email \ + --dry-run \ + --from=" Example " \ + --to="$TO1" \ + --to="$TO2" \ + --to=" to3@example.com " \ + --cc="$CC1" \ + --cc="Cc2 " \ + --bcc="$BCC1" \ + --bcc="bcc2@example.com" \ + 0001-add-master.patch | replace_variable_fields \ + >actual-list && + test_cmp expected-list actual-list -expecting success of 9125.2 'test clone with multi-glob in branch names': - git svn clone -T trunk -b branches/*/* -t tags \ - "$svnrepo/project" project && - (cd project && - git rev-parse "refs/remotes/origin/v14.1/beta" && - git rev-parse "refs/remotes/origin/v14.1/gold" - ) - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9125-git-svn-multi-glob-branch-names/project/.git/ -Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9125-git-svn-multi-glob-branch-names/svnrepo/project => file:///build/git-2.30.2/t/trash%20directory.t9125-git-svn-multi-glob-branch-names/svnrepo - A foo -r1 = 8992319acc6471bc3d727a74e254d3a95a8c54bc (refs/remotes/origin/trunk) -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9125-git-svn-multi-glob-branch-names/svnrepo/project/trunk => file:///build/git-2.30.2/t/trash%20directory.t9125-git-svn-multi-glob-branch-names/svnrepo/project/branches/v14.1/beta, 1 -Found branch parent: (refs/remotes/origin/v14.1/beta) 8992319acc6471bc3d727a74e254d3a95a8c54bc -Following parent with do_switch -Successfully followed parent -r2 = fcc9e283405ee389c789dbbe4f45fa73ef4fd691 (refs/remotes/origin/v14.1/beta) -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9125-git-svn-multi-glob-branch-names/svnrepo/project/branches/v14.1/beta => file:///build/git-2.30.2/t/trash%20directory.t9125-git-svn-multi-glob-branch-names/svnrepo/project/branches/v14.1/gold, 2 -Found branch parent: (refs/remotes/origin/v14.1/gold) fcc9e283405ee389c789dbbe4f45fa73ef4fd691 -Following parent with do_switch -Successfully followed parent -r3 = c2bb3a2ca5e566c5e98bb77ad4f88e28e3bf7fa7 (refs/remotes/origin/v14.1/gold) -Checked out HEAD: - file:///build/git-2.30.2/t/trash%20directory.t9125-git-svn-multi-glob-branch-names/svnrepo/project/trunk r1 -fcc9e283405ee389c789dbbe4f45fa73ef4fd691 -c2bb3a2ca5e566c5e98bb77ad4f88e28e3bf7fa7 -ok 2 - test clone with multi-glob in branch names +./test-lib.sh: line 944: warning: command substitution: ignored null byte in input +ok 169 - leading and trailing whitespaces are removed -expecting success of 9125.3 'test dcommit to multi-globbed branch': - (cd project && - git reset --hard 'refs/remotes/origin/v14.1/gold' && - echo hello >> foo && - git commit -m 'hello' -- foo && - git svn dcommit - ) - -HEAD is now at c2bb3a2 more fun! -[master 8cb0293] hello - Author: A U Thor - 1 file changed, 1 insertion(+) -Committing to file:///build/git-2.30.2/t/trash%20directory.t9125-git-svn-multi-glob-branch-names/svnrepo/project/branches/v14.1/gold ... - M foo -Committed r4 - M foo -r4 = 5fad524a7100eb5607d5492ca144f81c6fff11f8 (refs/remotes/origin/v14.1/gold) -No changes between 8cb0293063b354f7dd279cf8c3e62e6780beb96e and refs/remotes/origin/v14.1/gold -Resetting to the latest refs/remotes/origin/v14.1/gold -ok 3 - test dcommit to multi-globbed branch +expecting success of 9001.170 'invoke hook': + mkdir -p .git/hooks && -# passed all 3 test(s) -1..3 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t9128-git-svn-cmd-branch.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9128-git-svn-cmd-branch/.git/ -skipping test t9128 altogether -1..0 # SKIP skip all tests in t9128 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t9124-git-svn-dcommit-auto-props.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9124-git-svn-dcommit-auto-props/.git/ -expecting success of 9124.1 'initialize git svn': - mkdir import && + write_script .git/hooks/sendemail-validate <<-\EOF && + # test that we have the correct environment variable, pwd, and + # argument + case "$GIT_DIR" in + *.git) + true + ;; + *) + false + ;; + esac && + test -f 0001-add-master.patch && + grep "add master" "$1" + EOF + + mkdir subdir && ( - cd import && - echo foo >foo && - svn_cmd import -m "import for git svn" . "$svnrepo" - ) && - rm -rf import && - git svn init "$svnrepo" && - git svn fetch + # Test that it works even if we are not at the root of the + # working tree + cd subdir && + git send-email \ + --from="Example " \ + --to=nobody@example.com \ + --smtp-server="$(pwd)/../fake.sendmail" \ + ../0001-add-master.patch && -Adding foo -Committing transaction... -Committed revision 1. - A foo -r1 = e29e70231698d5691be7ae277f01e4454f5d7f1f (refs/remotes/git-svn) -Checked out HEAD: - file:///build/git-2.30.2/t/trash%20directory.t9124-git-svn-dcommit-auto-props/svnrepo r1 -ok 1 - initialize git svn + # Verify error message when a patch is rejected by the hook + sed -e "s/add master/x/" ../0001-add-master.patch >../another.patch && + test_must_fail git send-email \ + --from="Example " \ + --to=nobody@example.com \ + --smtp-server="$(pwd)/../fake.sendmail" \ + ../another.patch 2>err && + test_i18ngrep "rejected by sendemail-validate hook" err + ) -expecting success of 9124.2 'enable auto-props config': - mkdir user && - generate_auto_props yes >user/config +Subject: [PATCH] add master +../0001-add-master.patch +(mbox) Adding cc: A U Thor from line 'From: A U Thor ' +OK. Log says: +Sendmail: /build/git-2.30.2/t/trash directory.t9001-send-email/subdir/../fake.sendmail -i nobody@example.com somebody@ex.com author@example.com other@ex.com +From: Example +To: nobody@example.com +Cc: Somebody , + A U Thor +Subject: [PATCH] add master +Date: Sat, 29 Apr 2023 18:48:01 +0000 +Message-Id: <20230429184801.12661-1-nobody@example.com> +X-Mailer: git-send-email 2.30.2 +MIME-Version: 1.0 +Content-Transfer-Encoding: 8bit -ok 2 - enable auto-props config +Result: OK +fatal: ../another.patch: rejected by sendemail-validate hook +ok 170 - invoke hook -expecting success of 9124.3 'add files matching auto-props': - write_script exec1.sh hello.txt && - echo bar >bar && - git add exec1.sh hello.txt bar && - git commit -m "files for enabled auto-props" && - git svn dcommit --config-dir=user +expecting success of 9001.171 'test that send-email works outside a repo': + nongit git send-email \ + --from="Example " \ + --to=nobody@example.com \ + --smtp-server="$(pwd)/fake.sendmail" \ + "$(pwd)/0001-add-master.patch" -[master d432aab] files for enabled auto-props - Author: A U Thor - 3 files changed, 3 insertions(+) - create mode 100644 bar - create mode 100755 exec1.sh - create mode 100644 hello.txt -Committing to file:///build/git-2.30.2/t/trash%20directory.t9124-git-svn-dcommit-auto-props/svnrepo ... - A bar - A exec1.sh - A hello.txt -Committed r2 - A bar - A exec1.sh - A hello.txt -r2 = 3d5f3642f7abf2378508636462391ebdc575dafe (refs/remotes/git-svn) -No changes between d432aab4302c864c01e238afb40bd5269f7a308e and refs/remotes/git-svn -Resetting to the latest refs/remotes/git-svn -ok 3 - add files matching auto-props +/build/git-2.30.2/t/trash directory.t9001-send-email/0001-add-master.patch +(mbox) Adding cc: A U Thor from line 'From: A U Thor ' -expecting success of 9124.4 'disable auto-props config': - generate_auto_props no >user/config +From: Example +To: nobody@example.com +Cc: A U Thor +Subject: [PATCH] add master +Date: Sat, 29 Apr 2023 18:48:08 +0000 +Message-Id: <20230429184808.13239-1-nobody@example.com> +X-Mailer: git-send-email 2.30.2 +MIME-Version: 1.0 +Content-Transfer-Encoding: 8bit -ok 4 - disable auto-props config + The Cc list above has been expanded by additional + addresses found in the patch commit message. By default + send-email prompts before sending whenever this occurs. + This behavior is controlled by the sendemail.confirm + configuration setting. -expecting success of 9124.5 'add files matching disabled auto-props': - write_script exec2.sh world.txt && - echo zot >zot && - git add exec2.sh world.txt zot && - git commit -m "files for disabled auto-props" && - git svn dcommit --config-dir=user + For additional information, run 'git send-email --help'. + To retain the current behavior, but squelch this message, + run 'git config --global sendemail.confirm auto'. -[master 9c3abb2] files for disabled auto-props - Author: A U Thor - 3 files changed, 3 insertions(+) - create mode 100755 exec2.sh - create mode 100644 world.txt - create mode 100644 zot -Committing to file:///build/git-2.30.2/t/trash%20directory.t9124-git-svn-dcommit-auto-props/svnrepo ... - A exec2.sh - A world.txt - A zot -Committed r3 - A exec2.sh - A world.txt - A zot -r3 = aa5410baa32d2024bbedb325a4e16506b299f8d2 (refs/remotes/git-svn) -No changes between 9c3abb2df439f384429bc637a4e04a92bea46073 and refs/remotes/git-svn -Resetting to the latest refs/remotes/git-svn -ok 5 - add files matching disabled auto-props +Send this email? ([y]es|[n]o|[e]dit|[q]uit|[a]ll): +OK. Log says: +Sendmail: /build/git-2.30.2/t/trash directory.t9001-send-email/fake.sendmail -i nobody@example.com author@example.com +From: Example +To: nobody@example.com +Cc: A U Thor +Subject: [PATCH] add master +Date: Sat, 29 Apr 2023 18:48:08 +0000 +Message-Id: <20230429184808.13239-1-nobody@example.com> +X-Mailer: git-send-email 2.30.2 +MIME-Version: 1.0 +Content-Transfer-Encoding: 8bit -expecting success of 9124.6 'check resulting svn repository': -( - mkdir work && - cd work && - svn_cmd co "$svnrepo" && - cd svnrepo && +Result: OK +ok 171 - test that send-email works outside a repo - # Check properties from first commit. - if test_have_prereq POSIXPERM - then - test "x$(svn_cmd propget svn:executable exec1.sh)" = "x*" - fi && - test "x$(svn_cmd propget svn:mime-type exec1.sh)" = \ - "xapplication/x-shellscript" && - test "x$(svn_cmd propget svn:mime-type hello.txt)" = "xtext/plain" && - test "x$(svn_cmd propget svn:eol-style hello.txt)" = "xnative" && - test "x$(svn_cmd propget svn:mime-type bar)" = "x" && +expecting success of 9001.172 'test that sendmail config is rejected': + test_config sendmail.program sendmail && + test_must_fail git send-email \ + --from="Example " \ + --to=nobody@example.com \ + --smtp-server="$(pwd)/fake.sendmail" \ + HEAD^ 2>err && + test_i18ngrep "found configuration options for 'sendmail'" err - # Check properties from second commit. - if test_have_prereq POSIXPERM - then - test "x$(svn_cmd propget svn:executable exec2.sh)" = "x*" - fi && - test "x$(svn_cmd propget svn:mime-type exec2.sh)" = "x" && - test "x$(svn_cmd propget svn:mime-type world.txt)" = "x" && - test "x$(svn_cmd propget svn:eol-style world.txt)" = "x" && - test "x$(svn_cmd propget svn:mime-type zot)" = "x" -) +fatal: found configuration options for 'sendmail' +ok 172 - test that sendmail config is rejected -A svnrepo/bar -A svnrepo/exec1.sh -A svnrepo/exec2.sh -A svnrepo/foo -A svnrepo/hello.txt -A svnrepo/world.txt -A svnrepo/zot -Checked out revision 3. -svn: warning: W200017: Property 'svn:mime-type' not found on 'bar' -svn: E200000: A problem occurred; see other errors for details -svn: warning: W200017: Property 'svn:mime-type' not found on 'exec2.sh' -svn: E200000: A problem occurred; see other errors for details -svn: warning: W200017: Property 'svn:mime-type' not found on 'world.txt' -svn: E200000: A problem occurred; see other errors for details -svn: warning: W200017: Property 'svn:eol-style' not found on 'world.txt' -svn: E200000: A problem occurred; see other errors for details -svn: warning: W200017: Property 'svn:mime-type' not found on 'zot' -svn: E200000: A problem occurred; see other errors for details -ok 6 - check resulting svn repository +expecting success of 9001.173 'test that sendmail config rejection is specific': + test_config resendmail.program sendmail && + git send-email \ + --from="Example " \ + --to=nobody@example.com \ + --smtp-server="$(pwd)/fake.sendmail" \ + HEAD^ -expecting success of 9124.7 'check renamed file': - test -d user && - generate_auto_props yes > user/config && - git mv foo foo.sh && - git commit -m "foo => foo.sh" && - git svn dcommit --config-dir=user && - ( - cd work/svnrepo && - svn_cmd up && - test ! -e foo && - test -e foo.sh && - test "x$(svn_cmd propget svn:mime-type foo.sh)" = \ - "xapplication/x-shellscript" && - test "x$(svn_cmd propget svn:eol-style foo.sh)" = "xLF" - ) +Subject: [PATCH] add master +/tmp/i8zcPEIx56/0001-add-master.patch +(mbox) Adding cc: A U Thor from line 'From: A U Thor ' +OK. Log says: +Sendmail: /build/git-2.30.2/t/trash directory.t9001-send-email/fake.sendmail -i nobody@example.com somebody@ex.com author@example.com other@ex.com +From: Example +To: nobody@example.com +Cc: Somebody , + A U Thor +Subject: [PATCH] add master +Date: Sat, 29 Apr 2023 18:48:15 +0000 +Message-Id: <20230429184815.13811-1-nobody@example.com> +X-Mailer: git-send-email 2.30.2 +MIME-Version: 1.0 +Content-Transfer-Encoding: 8bit -[master fd6950a] foo => foo.sh - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - rename foo => foo.sh (100%) -Committing to file:///build/git-2.30.2/t/trash%20directory.t9124-git-svn-dcommit-auto-props/svnrepo ... - R foo => foo.sh -Committed r4 - D foo - A foo.sh -W: -empty_dir: foo -r4 = e237e1a50e6e884cd0c87bf5a756ff39e7ddea13 (refs/remotes/git-svn) -No changes between fd6950a064b2ff1e8fd8130dd7517498e84c4881 and refs/remotes/git-svn -Resetting to the latest refs/remotes/git-svn -Updating '.': -D foo -A foo.sh -Updated to revision 4. -ok 7 - check renamed file +Result: OK +ok 173 - test that sendmail config rejection is specific -# passed all 7 test(s) -1..7 +expecting success of 9001.174 'test forbidSendmailVariables behavior override': + test_config sendmail.program sendmail && + test_config sendemail.forbidSendmailVariables false && + git send-email \ + --from="Example " \ + --to=nobody@example.com \ + --smtp-server="$(pwd)/fake.sendmail" \ + HEAD^ + +Subject: [PATCH] add master +/tmp/H7NoSM2cBg/0001-add-master.patch +(mbox) Adding cc: A U Thor from line 'From: A U Thor ' +OK. Log says: +Sendmail: /build/git-2.30.2/t/trash directory.t9001-send-email/fake.sendmail -i nobody@example.com somebody@ex.com author@example.com other@ex.com +From: Example +To: nobody@example.com +Cc: Somebody , + A U Thor +Subject: [PATCH] add master +Date: Sat, 29 Apr 2023 18:48:19 +0000 +Message-Id: <20230429184819.14068-1-nobody@example.com> +X-Mailer: git-send-email 2.30.2 +MIME-Version: 1.0 +Content-Transfer-Encoding: 8bit + +Result: OK +ok 174 - test forbidSendmailVariables behavior override + +# passed all 174 test(s) +1..174 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' *** t9127-git-svn-partial-rebuild.sh *** @@ -402877,12 +402708,12 @@ git svn fetch -r1:2 A foo -r1 = 972077edc9779a81b368f80a07bd8284d1ed8116 (refs/remotes/origin/trunk) +r1 = 61b30d17eff81090fddc596ad113367ecbe77109 (refs/remotes/origin/trunk) Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9127-git-svn-partial-rebuild/svnrepo/trunk => file:///build/git-2.30.2/t/trash%20directory.t9127-git-svn-partial-rebuild/svnrepo/branches/a, 1 -Found branch parent: (refs/remotes/origin/a) 972077edc9779a81b368f80a07bd8284d1ed8116 +Found branch parent: (refs/remotes/origin/a) 61b30d17eff81090fddc596ad113367ecbe77109 Following parent with do_switch Successfully followed parent -r2 = bd8073192929dac0ef1c0c611399368d29b0be45 (refs/remotes/origin/a) +r2 = 8372ea20096e3c71671937dd0638bb02f004be1f (refs/remotes/origin/a) Checked out HEAD: file:///build/git-2.30.2/t/trash%20directory.t9127-git-svn-partial-rebuild/svnrepo/trunk r1 ok 2 - import an early SVN revision into git @@ -402909,16 +402740,16 @@ hint: git branch -m Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9127-git-svn-partial-rebuild/mirror/.git/ A foo -r1 = 972077edc9779a81b368f80a07bd8284d1ed8116 (refs/remotes/origin/trunk) +r1 = 61b30d17eff81090fddc596ad113367ecbe77109 (refs/remotes/origin/trunk) Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9127-git-svn-partial-rebuild/svnrepo/trunk => file:///build/git-2.30.2/t/trash%20directory.t9127-git-svn-partial-rebuild/svnrepo/branches/a, 1 -Found branch parent: (refs/remotes/origin/a) 972077edc9779a81b368f80a07bd8284d1ed8116 +Found branch parent: (refs/remotes/origin/a) 61b30d17eff81090fddc596ad113367ecbe77109 Following parent with do_switch Successfully followed parent -r2 = bd8073192929dac0ef1c0c611399368d29b0be45 (refs/remotes/origin/a) +r2 = 8372ea20096e3c71671937dd0638bb02f004be1f (refs/remotes/origin/a) M foo -r3 = e81d4c6417ee3094dc415839104057d7295b92dd (refs/remotes/origin/trunk) +r3 = 6ccff1b709b58d1d4ea4cc2a7513859e2efae94d (refs/remotes/origin/trunk) A a -r4 = 36c0e7946fcd7ab8e7b28facbb303fc44bb5ca60 (refs/remotes/origin/a) +r4 = 4cfa83d64d16169e49644d749db756d73641afef (refs/remotes/origin/a) Checked out HEAD: file:///build/git-2.30.2/t/trash%20directory.t9127-git-svn-partial-rebuild/svnrepo/trunk r3 ok 3 - make full git mirror of SVN @@ -402930,22 +402761,383 @@ git svn fetch From file:///build/git-2.30.2/t/trash directory.t9127-git-svn-partial-rebuild/mirror/ - bd80731..36c0e79 origin/a -> origin/a - 972077e..e81d4c6 origin/trunk -> origin/trunk -Partial-rebuilding .git/svn/refs/remotes/origin/trunk/.rev_map.74db4e8c-9e84-4b53-bbd4-bb7efcc03ad1 ... -Currently at 1 = 972077edc9779a81b368f80a07bd8284d1ed8116 -r3 = e81d4c6417ee3094dc415839104057d7295b92dd -Done rebuilding .git/svn/refs/remotes/origin/trunk/.rev_map.74db4e8c-9e84-4b53-bbd4-bb7efcc03ad1 -Partial-rebuilding .git/svn/refs/remotes/origin/a/.rev_map.74db4e8c-9e84-4b53-bbd4-bb7efcc03ad1 ... -Currently at 2 = bd8073192929dac0ef1c0c611399368d29b0be45 -r4 = 36c0e7946fcd7ab8e7b28facbb303fc44bb5ca60 -Done rebuilding .git/svn/refs/remotes/origin/a/.rev_map.74db4e8c-9e84-4b53-bbd4-bb7efcc03ad1 + 8372ea2..4cfa83d origin/a -> origin/a + 61b30d1..6ccff1b origin/trunk -> origin/trunk +Partial-rebuilding .git/svn/refs/remotes/origin/trunk/.rev_map.3e8c25eb-7ac1-4fcd-869c-9f94179f1830 ... +Currently at 1 = 61b30d17eff81090fddc596ad113367ecbe77109 +r3 = 6ccff1b709b58d1d4ea4cc2a7513859e2efae94d +Done rebuilding .git/svn/refs/remotes/origin/trunk/.rev_map.3e8c25eb-7ac1-4fcd-869c-9f94179f1830 +Partial-rebuilding .git/svn/refs/remotes/origin/a/.rev_map.3e8c25eb-7ac1-4fcd-869c-9f94179f1830 ... +Currently at 2 = 8372ea20096e3c71671937dd0638bb02f004be1f +r4 = 4cfa83d64d16169e49644d749db756d73641afef +Done rebuilding .git/svn/refs/remotes/origin/a/.rev_map.3e8c25eb-7ac1-4fcd-869c-9f94179f1830 ok 4 - fetch from git mirror and partial-rebuild # passed all 4 test(s) 1..4 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t9132-git-svn-broken-symlink.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9132-git-svn-broken-symlink/.git/ +expecting success of 9132.1 'load svn dumpfile': + svnadmin load "$rawsvnrepo" < doink + +K 10 +svn:author +V 12 +normalperson +K 8 +svn:date +V 27 +2008-11-27T03:55:31.601672Z +PROPS-END + +Node-path: bar +Node-kind: file +Node-action: change +Text-content-length: 10 +Text-content-md5: 92ca4fe7a9721f877f765c252dcd66c9 +Content-length: 10 + +link doink + +EOF + +<<< Started new transaction, based on original revision 1 + * editing path : bar ... done. + +------- Committed revision 1 >>> + +<<< Started new transaction, based on original revision 2 + * editing path : bar ... done. + +------- Committed revision 2 >>> + +ok 1 - load svn dumpfile + +expecting success of 9132.2 'clone using git svn': git svn clone -r1 "$svnrepo" x +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9132-git-svn-broken-symlink/x/.git/ +bar has mode 120000 but is not a link + A bar +r1 = b48720e9bcf35e49ceebb1849fe24799b4270b61 (refs/remotes/git-svn) +Checked out HEAD: + file:///build/git-2.30.2/t/trash%20directory.t9132-git-svn-broken-symlink/svnrepo r1 +ok 2 - clone using git svn + +checking prerequisite: SYMLINKS + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && + # test whether the filesystem supports symbolic links + ln -s x y && test -h y + +) +prerequisite SYMLINKS ok +expecting success of 9132.3 '"bar" is a symlink that points to "asdf"': + test -L x/bar && + (cd x && test xasdf = x"$(git cat-file blob HEAD:bar)") + +ok 3 - "bar" is a symlink that points to "asdf" + +expecting success of 9132.4 'get "bar" => symlink fix from svn': + (cd x && git svn rebase) + +Checksum mismatch: bar 5e40c0877058c504203932e5136051cf3cd3519b +expected: 912ec803b2ce49e4a541068d495ab570 + got: 3f9dfa058a15dc34057c51ec4d35393c +Retrying... (possibly a bad symlink from SVN) + M bar +r2 = a36a2c187dab1422872a42a4e9d306812db3c31d (refs/remotes/git-svn) + Successfully rebased and updated refs/heads/master. +ok 4 - get "bar" => symlink fix from svn + +expecting success of 9132.5 '"bar" remains a proper symlink': + test -L x/bar && + (cd x && test xdoink = x"$(git cat-file blob HEAD:bar)") + +ok 5 - "bar" remains a proper symlink + +# passed all 5 test(s) +1..5 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t9131-git-svn-empty-symlink.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9131-git-svn-empty-symlink/.git/ +expecting success of 9131.1 'load svn dumpfile': + svnadmin load "$rawsvnrepo" < doink + +K 10 +svn:author +V 12 +normalperson +K 8 +svn:date +V 27 +2008-11-27T03:55:31.601672Z +PROPS-END + +Node-path: bar +Node-kind: file +Node-action: change +Text-content-length: 10 +Text-content-md5: 92ca4fe7a9721f877f765c252dcd66c9 +Content-length: 10 + +link doink + +EOF + +<<< Started new transaction, based on original revision 1 + * editing path : bar ... done. + +------- Committed revision 1 >>> + +<<< Started new transaction, based on original revision 2 + * editing path : bar ... done. + +------- Committed revision 2 >>> + +ok 1 - load svn dumpfile + +expecting success of 9131.2 'clone using git svn': git svn clone -r1 "$svnrepo" x +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9131-git-svn-empty-symlink/x/.git/ +bar has mode 120000 but it points to nothing +converting to an empty file with mode 100644 + A bar +r1 = 9fa0b689cd2f6ea3e411191c5707ebaa2a1933b7 (refs/remotes/git-svn) +Checked out HEAD: + file:///build/git-2.30.2/t/trash%20directory.t9131-git-svn-empty-symlink/svnrepo r1 +ok 2 - clone using git svn + +expecting success of 9131.3 'enable broken symlink workaround': (cd x && git config svn.brokenSymlinkWorkaround true) +ok 3 - enable broken symlink workaround + +expecting success of 9131.4 '"bar" is an empty file': test_must_be_empty x/bar +ok 4 - "bar" is an empty file + +expecting success of 9131.5 'get "bar" => symlink fix from svn': (cd x && git svn rebase) +Scanning for empty symlinks, this may take a while if you have many empty files +You may disable this with `git config svn.brokenSymlinkWorkaround false'. +This may be done in a different terminal without restarting git svn + M bar +r2 = 1796153192d9bd4e29110d2be57bca1de5ba2463 (refs/remotes/git-svn) + Successfully rebased and updated refs/heads/master. +ok 5 - get "bar" => symlink fix from svn + +checking prerequisite: SYMLINKS + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && + # test whether the filesystem supports symbolic links + ln -s x y && test -h y + +) +prerequisite SYMLINKS ok +expecting success of 9131.6 '"bar" becomes a symlink': test -h x/bar +ok 6 - "bar" becomes a symlink + +expecting success of 9131.7 'clone using git svn': git svn clone -r1 "$svnrepo" y +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9131-git-svn-empty-symlink/y/.git/ +bar has mode 120000 but it points to nothing +converting to an empty file with mode 100644 + A bar +r1 = 9fa0b689cd2f6ea3e411191c5707ebaa2a1933b7 (refs/remotes/git-svn) +Checked out HEAD: + file:///build/git-2.30.2/t/trash%20directory.t9131-git-svn-empty-symlink/svnrepo r1 +ok 7 - clone using git svn + +expecting success of 9131.8 'disable broken symlink workaround': (cd y && git config svn.brokenSymlinkWorkaround false) +ok 8 - disable broken symlink workaround + +expecting success of 9131.9 '"bar" is an empty file': test_must_be_empty y/bar +ok 9 - "bar" is an empty file + +expecting success of 9131.10 'get "bar" => symlink fix from svn': (cd y && git svn rebase) + M bar +r2 = 1aba73863d0bb1a881a9d5fea4ad9db20d9c0978 (refs/remotes/git-svn) + Successfully rebased and updated refs/heads/master. +ok 10 - get "bar" => symlink fix from svn + +expecting success of 9131.11 '"bar" does not become a symlink': ! test -L y/bar +ok 11 - "bar" does not become a symlink + +expecting success of 9131.12 'clone using git svn': git svn clone -r1 "$svnrepo" z +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9131-git-svn-empty-symlink/z/.git/ +bar has mode 120000 but it points to nothing +converting to an empty file with mode 100644 + A bar +r1 = 9fa0b689cd2f6ea3e411191c5707ebaa2a1933b7 (refs/remotes/git-svn) +Checked out HEAD: + file:///build/git-2.30.2/t/trash%20directory.t9131-git-svn-empty-symlink/svnrepo r1 +ok 12 - clone using git svn + +expecting success of 9131.13 '"bar" is an empty file': test_must_be_empty z/bar +ok 13 - "bar" is an empty file + +expecting success of 9131.14 'get "bar" => symlink fix from svn': (cd z && git svn rebase) + M bar +r2 = 1aba73863d0bb1a881a9d5fea4ad9db20d9c0978 (refs/remotes/git-svn) + Successfully rebased and updated refs/heads/master. +ok 14 - get "bar" => symlink fix from svn + +expecting success of 9131.15 '"bar" does not become a symlink': ! test -L z/bar +ok 15 - "bar" does not become a symlink + +# passed all 15 test(s) +1..15 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t9129-git-svn-i18n-commitencoding.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9129-git-svn-i18n-commitencoding/.git/ expecting success of 9129.1 'ISO8859-1 setup': @@ -402966,7 +403158,7 @@ hint: hint: git branch -m Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9129-git-svn-i18n-commitencoding/ISO8859-1/.git/ -r1 = 2d6e769e0bafd1702dba653558d70d0a41d73e81 (refs/remotes/git-svn) +r1 = baec4337256cebe1a5a2ca0466d4ab4ef17c93a9 (refs/remotes/git-svn) Checked out HEAD: file:///build/git-2.30.2/t/trash%20directory.t9129-git-svn-i18n-commitencoding/svnrepo/ISO8859-1 r1 ok 1 - ISO8859-1 setup @@ -402989,7 +403181,7 @@ hint: hint: git branch -m Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9129-git-svn-i18n-commitencoding/eucJP/.git/ -r2 = 744a7e18260237e2b3e3341bb37584196025c1a6 (refs/remotes/git-svn) +r2 = 0fb62fedf923859b13aa6a1e1b4a3f4b823bf27a (refs/remotes/git-svn) Checked out HEAD: file:///build/git-2.30.2/t/trash%20directory.t9129-git-svn-i18n-commitencoding/svnrepo/eucJP r2 ok 2 - eucJP setup @@ -403012,7 +403204,7 @@ hint: hint: git branch -m Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9129-git-svn-i18n-commitencoding/ISO-2022-JP/.git/ -r3 = 8195e72713aa6a69c79cc2d3f31e0d494611ba8b (refs/remotes/git-svn) +r3 = 239fdefa1e7e3ff0994882c199c7f6e304ad6296 (refs/remotes/git-svn) Checked out HEAD: file:///build/git-2.30.2/t/trash%20directory.t9129-git-svn-i18n-commitencoding/svnrepo/ISO-2022-JP r3 ok 3 - ISO-2022-JP setup @@ -403031,7 +403223,7 @@ ) Switched to a new branch 't' -[t fd25c7f] ÄËÑÏÖ +[t 26fb4c7] ÄËÑÏÖ Author: A U Thor 1 file changed, 1 insertion(+) create mode 100644 F @@ -403051,7 +403243,7 @@ ) Switched to a new branch 't' -[t 59d2ef4] ¤Ï¤ì¤Ò¤Û¤Õ +[t 2f16361] ¤Ï¤ì¤Ò¤Û¤Õ Author: A U Thor 1 file changed, 1 insertion(+) create mode 100644 F @@ -403071,7 +403263,7 @@ ) Switched to a new branch 't' -[t b19e32e] $B$O$l$R$[$U(B +[t fee3ddc] $B$O$l$R$[$U(B Author: A U Thor 1 file changed, 1 insertion(+) create mode 100644 F @@ -403091,10 +403283,10 @@ A F Committed r4 A F -r4 = 5e1c972fa7eb840502497cf216f4d249be104464 (refs/remotes/git-svn) -No changes between fd25c7f62c4a27bed63f36b8f0df333710b57833 and refs/remotes/git-svn +r4 = d704028e016e9acdd02d9d8879152c6df086e37c (refs/remotes/git-svn) +No changes between 26fb4c7c5f29bc404febd3192227b1ab33802305 and refs/remotes/git-svn Resetting to the latest refs/remotes/git-svn -git-svn-id: file:///build/git-2.30.2/t/trash%20directory.t9129-git-svn-i18n-commitencoding/svnrepo/ISO8859-1@4 ceebf973-b79e-4841-aed8-72e340ff6f36 +git-svn-id: file:///build/git-2.30.2/t/trash%20directory.t9129-git-svn-i18n-commitencoding/svnrepo/ISO8859-1@4 6bb16277-49ba-4305-aaee-82e56143c06e ok 7 - ISO8859-1 dcommit to svn expecting success of 9129.8 'eucJP dcommit to svn': @@ -403111,10 +403303,10 @@ A F Committed r5 A F -r5 = b417f2539d37bfe2521ccc685dfecbfae54f273c (refs/remotes/git-svn) -No changes between 59d2ef41007932c61e7fa5f0d5818030fe672d23 and refs/remotes/git-svn +r5 = cb77eb6a463943878570afac57878fd67fb9f2fa (refs/remotes/git-svn) +No changes between 2f16361ea06e6dd59899fe4a4495101095e2410c and refs/remotes/git-svn Resetting to the latest refs/remotes/git-svn -git-svn-id: file:///build/git-2.30.2/t/trash%20directory.t9129-git-svn-i18n-commitencoding/svnrepo/eucJP@5 ceebf973-b79e-4841-aed8-72e340ff6f36 +git-svn-id: file:///build/git-2.30.2/t/trash%20directory.t9129-git-svn-i18n-commitencoding/svnrepo/eucJP@5 6bb16277-49ba-4305-aaee-82e56143c06e ok 8 - eucJP dcommit to svn expecting success of 9129.9 'ISO-2022-JP dcommit to svn': @@ -403131,10 +403323,10 @@ A F Committed r6 A F -r6 = 6e78b1f6fecc0594654d23d0289aca740ee05116 (refs/remotes/git-svn) -No changes between b19e32eea3a671c2ac8f990c9ff5e52d2b28d8f4 and refs/remotes/git-svn +r6 = 4b321bf3b12e774c9d4fb28f72f07e6e81f43e89 (refs/remotes/git-svn) +No changes between fee3ddca80af4cc2a4479eab39c7f0ea83e93011 and refs/remotes/git-svn Resetting to the latest refs/remotes/git-svn -git-svn-id: file:///build/git-2.30.2/t/trash%20directory.t9129-git-svn-i18n-commitencoding/svnrepo/ISO-2022-JP@6 ceebf973-b79e-4841-aed8-72e340ff6f36 +git-svn-id: file:///build/git-2.30.2/t/trash%20directory.t9129-git-svn-i18n-commitencoding/svnrepo/ISO-2022-JP@6 6bb16277-49ba-4305-aaee-82e56143c06e ok 9 - ISO-2022-JP dcommit to svn expecting success of 9129.10 'ISO-8859-1 should match UTF-8 in svn': @@ -403198,9 +403390,9 @@ hint: git branch -m Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9130-git-svn-authors-file/x/.git/ W: +empty_dir: aa -r1 = 9a433444c61baccae1c39955a458ef924afc51cc (refs/remotes/git-svn) +r1 = 5dc7ea94cfeded79fd9773584de10384e2ac5609 (refs/remotes/git-svn) W: +empty_dir: bb -r2 = 4459cb3a8c768d6ad6d8654e6bd43cfd73af7cd1 (refs/remotes/git-svn) +r2 = 4d40a067ab61302aa216ca230132ebabb15d528b (refs/remotes/git-svn) W: +empty_dir: cc Author: cc not defined in svn-authors file @@ -403217,8 +403409,8 @@ grep "^author AAAAAAA AAAAAAA " actual ) -author BBBBBBB BBBBBBB 1682787169 +0000 -author AAAAAAA AAAAAAA 1682787169 +0000 +author BBBBBBB BBBBBBB 1682794095 +0000 +author AAAAAAA AAAAAAA 1682794095 +0000 ok 3 - imported 2 revisions successfully expecting success of 9130.4 'continues to import once authors have been added': @@ -403234,17 +403426,17 @@ ) W: +empty_dir: cc -r3 = 1f5c3b5c1b1951a4c0d8b37f8617681f2cb74e9b (refs/remotes/git-svn) +r3 = 4b2331dc94a8634381d5494bbbe5c07f71345dd6 (refs/remotes/git-svn) W: +empty_dir: dd -r4 = 43001102dd1ac6a81f575566a75fdad7cfb5427d (refs/remotes/git-svn) +r4 = 06a0ec60f56988f8667918b7d6ebee2897a29724 (refs/remotes/git-svn) Checked out HEAD: file:///build/git-2.30.2/t/trash%20directory.t9130-git-svn-authors-file/svnrepo r4 creating empty directory: aa creating empty directory: bb creating empty directory: cc creating empty directory: dd -author DDDDDDD DDDDDDD 1682787170 +0000 -author CCCCCCC CCCCCCC 1682787169 +0000 +author DDDDDDD DDDDDDD 1682794096 +0000 +author CCCCCCC CCCCCCC 1682794096 +0000 ok 4 - continues to import once authors have been added expecting success of 9130.5 'authors-file against globs': @@ -403271,7 +403463,7 @@ hint: git branch -m Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9130-git-svn-authors-file/aa-work/.git/ Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9130-git-svn-authors-file/svnrepo/aa => file:///build/git-2.30.2/t/trash%20directory.t9130-git-svn-authors-file/svnrepo -r5 = 4bd42c23c3026d2d975cddedc07b6237ee994e3a (refs/remotes/origin/trunk) +r5 = a9c91a95b74364eb01545090cfd577cabe81235d (refs/remotes/origin/trunk) Checked out HEAD: file:///build/git-2.30.2/t/trash%20directory.t9130-git-svn-authors-file/svnrepo/aa/trunk r5 Committing transaction... @@ -403285,7 +403477,7 @@ expecting success of 9130.6 'fetch fails on ee': ( cd aa-work && test_must_fail git svn fetch --authors-file=../svn-authors ) -r6 = 689b4eed2dcd92fa156ae0ef052cd5cdb65a8f92 (refs/remotes/origin/bb) +r6 = 5b29b1d286200e544de956b8cd928a66d0caa11a (refs/remotes/origin/bb) Author: ee not defined in ../svn-authors file ok 6 - fetch fails on ee @@ -403307,8 +403499,8 @@ test 8 -eq "$(tmp_config_get svn-remote.svn.tags-maxRev)" ) -r7 = e6c9d0dbcfa80697b1de0d45a28f24c4fea73438 (refs/remotes/origin/ee) -r8 = 764eb102e49ec3cbf80cfd01fa3702c75568edaa (refs/remotes/origin/cc) +r7 = f50cd7ee3d1f88e445b89ecb55071148adaaa244 (refs/remotes/origin/ee) +r8 = 4fd4e0bfe50e1b7230b50fecb6c2a0aa1bc6f641 (refs/remotes/origin/cc) ok 8 - fetch continues after authors-file is fixed expecting success of 9130.9 'fresh clone with svn.authors-file in config': @@ -403341,23 +403533,23 @@ hint: git branch -m Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9130-git-svn-authors-file/gitconfig.clone/.git/ W: +empty_dir: aa -r1 = 9a433444c61baccae1c39955a458ef924afc51cc (refs/remotes/git-svn) +r1 = 5dc7ea94cfeded79fd9773584de10384e2ac5609 (refs/remotes/git-svn) W: +empty_dir: bb -r2 = 4459cb3a8c768d6ad6d8654e6bd43cfd73af7cd1 (refs/remotes/git-svn) +r2 = 4d40a067ab61302aa216ca230132ebabb15d528b (refs/remotes/git-svn) W: +empty_dir: cc -r3 = 1f5c3b5c1b1951a4c0d8b37f8617681f2cb74e9b (refs/remotes/git-svn) +r3 = 4b2331dc94a8634381d5494bbbe5c07f71345dd6 (refs/remotes/git-svn) W: +empty_dir: dd -r4 = 43001102dd1ac6a81f575566a75fdad7cfb5427d (refs/remotes/git-svn) +r4 = 06a0ec60f56988f8667918b7d6ebee2897a29724 (refs/remotes/git-svn) W: +empty_dir: aa/branches W: +empty_dir: aa/tags W: +empty_dir: aa/trunk -r5 = 938d482ae41d2a07b0538c9caff801c17c28cf55 (refs/remotes/git-svn) +r5 = bbe8b4087fa18b09c5125540aa74b311a95ed3e5 (refs/remotes/git-svn) W: +empty_dir: aa/branches/bb -r6 = ad9e3ad8b5673419b839d915ecd9beee726f73a5 (refs/remotes/git-svn) +r6 = f99f26ce850ab93b720627896cec469b145ccc11 (refs/remotes/git-svn) W: +empty_dir: aa/branches/ee -r7 = c632626d5dec721147f734c312c55f3b6c59c573 (refs/remotes/git-svn) +r7 = 611de8f51fdffa73f13a8d103d357152e5076b20 (refs/remotes/git-svn) W: +empty_dir: aa/branches/cc -r8 = fb695cc3e96ae249a051b9fb36560eb85f1c990d (refs/remotes/git-svn) +r8 = 25787e633297684a2413a4e9ed668427cb3e5d4e (refs/remotes/git-svn) Checked out HEAD: file:///build/git-2.30.2/t/trash%20directory.t9130-git-svn-authors-file/svnrepo r8 creating empty directory: aa @@ -403383,375 +403575,14 @@ Committing transaction... Committed revision 9. -r9 = 716a52863a260ddd6a606cdd18840c403e230af6 (refs/remotes/origin/ff) -author FFFFFFF FFFFFFF <> 1682787191 +0000 +r9 = fbaa643d4644cc24a96216270676f6bb5cce22ab (refs/remotes/origin/ff) +author FFFFFFF FFFFFFF <> 1682794141 +0000 ok 10 - authors-file imported user without email # passed all 10 test(s) 1..10 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t9131-git-svn-empty-symlink.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9131-git-svn-empty-symlink/.git/ -expecting success of 9131.1 'load svn dumpfile': - svnadmin load "$rawsvnrepo" < doink - -K 10 -svn:author -V 12 -normalperson -K 8 -svn:date -V 27 -2008-11-27T03:55:31.601672Z -PROPS-END - -Node-path: bar -Node-kind: file -Node-action: change -Text-content-length: 10 -Text-content-md5: 92ca4fe7a9721f877f765c252dcd66c9 -Content-length: 10 - -link doink - -EOF - -<<< Started new transaction, based on original revision 1 - * editing path : bar ... done. - -------- Committed revision 1 >>> - -<<< Started new transaction, based on original revision 2 - * editing path : bar ... done. - -------- Committed revision 2 >>> - -ok 1 - load svn dumpfile - -expecting success of 9131.2 'clone using git svn': git svn clone -r1 "$svnrepo" x -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9131-git-svn-empty-symlink/x/.git/ -bar has mode 120000 but it points to nothing -converting to an empty file with mode 100644 - A bar -r1 = 9fa0b689cd2f6ea3e411191c5707ebaa2a1933b7 (refs/remotes/git-svn) -Checked out HEAD: - file:///build/git-2.30.2/t/trash%20directory.t9131-git-svn-empty-symlink/svnrepo r1 -ok 2 - clone using git svn - -expecting success of 9131.3 'enable broken symlink workaround': (cd x && git config svn.brokenSymlinkWorkaround true) -ok 3 - enable broken symlink workaround - -expecting success of 9131.4 '"bar" is an empty file': test_must_be_empty x/bar -ok 4 - "bar" is an empty file - -expecting success of 9131.5 'get "bar" => symlink fix from svn': (cd x && git svn rebase) -Scanning for empty symlinks, this may take a while if you have many empty files -You may disable this with `git config svn.brokenSymlinkWorkaround false'. -This may be done in a different terminal without restarting git svn - M bar -r2 = 1796153192d9bd4e29110d2be57bca1de5ba2463 (refs/remotes/git-svn) - Successfully rebased and updated refs/heads/master. -ok 5 - get "bar" => symlink fix from svn - -checking prerequisite: SYMLINKS - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && - # test whether the filesystem supports symbolic links - ln -s x y && test -h y - -) -prerequisite SYMLINKS ok -expecting success of 9131.6 '"bar" becomes a symlink': test -h x/bar -ok 6 - "bar" becomes a symlink - -expecting success of 9131.7 'clone using git svn': git svn clone -r1 "$svnrepo" y -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9131-git-svn-empty-symlink/y/.git/ -bar has mode 120000 but it points to nothing -converting to an empty file with mode 100644 - A bar -r1 = 9fa0b689cd2f6ea3e411191c5707ebaa2a1933b7 (refs/remotes/git-svn) -Checked out HEAD: - file:///build/git-2.30.2/t/trash%20directory.t9131-git-svn-empty-symlink/svnrepo r1 -ok 7 - clone using git svn - -expecting success of 9131.8 'disable broken symlink workaround': (cd y && git config svn.brokenSymlinkWorkaround false) -ok 8 - disable broken symlink workaround - -expecting success of 9131.9 '"bar" is an empty file': test_must_be_empty y/bar -ok 9 - "bar" is an empty file - -expecting success of 9131.10 'get "bar" => symlink fix from svn': (cd y && git svn rebase) - M bar -r2 = 1aba73863d0bb1a881a9d5fea4ad9db20d9c0978 (refs/remotes/git-svn) - Successfully rebased and updated refs/heads/master. -ok 10 - get "bar" => symlink fix from svn - -expecting success of 9131.11 '"bar" does not become a symlink': ! test -L y/bar -ok 11 - "bar" does not become a symlink - -expecting success of 9131.12 'clone using git svn': git svn clone -r1 "$svnrepo" z -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9131-git-svn-empty-symlink/z/.git/ -bar has mode 120000 but it points to nothing -converting to an empty file with mode 100644 - A bar -r1 = 9fa0b689cd2f6ea3e411191c5707ebaa2a1933b7 (refs/remotes/git-svn) -Checked out HEAD: - file:///build/git-2.30.2/t/trash%20directory.t9131-git-svn-empty-symlink/svnrepo r1 -ok 12 - clone using git svn - -expecting success of 9131.13 '"bar" is an empty file': test_must_be_empty z/bar -ok 13 - "bar" is an empty file - -expecting success of 9131.14 'get "bar" => symlink fix from svn': (cd z && git svn rebase) - M bar -r2 = 1aba73863d0bb1a881a9d5fea4ad9db20d9c0978 (refs/remotes/git-svn) - Successfully rebased and updated refs/heads/master. -ok 14 - get "bar" => symlink fix from svn - -expecting success of 9131.15 '"bar" does not become a symlink': ! test -L z/bar -ok 15 - "bar" does not become a symlink - -# passed all 15 test(s) -1..15 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t9132-git-svn-broken-symlink.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9132-git-svn-broken-symlink/.git/ -expecting success of 9132.1 'load svn dumpfile': - svnadmin load "$rawsvnrepo" < doink - -K 10 -svn:author -V 12 -normalperson -K 8 -svn:date -V 27 -2008-11-27T03:55:31.601672Z -PROPS-END - -Node-path: bar -Node-kind: file -Node-action: change -Text-content-length: 10 -Text-content-md5: 92ca4fe7a9721f877f765c252dcd66c9 -Content-length: 10 - -link doink - -EOF - -<<< Started new transaction, based on original revision 1 - * editing path : bar ... done. - -------- Committed revision 1 >>> - -<<< Started new transaction, based on original revision 2 - * editing path : bar ... done. - -------- Committed revision 2 >>> - -ok 1 - load svn dumpfile - -expecting success of 9132.2 'clone using git svn': git svn clone -r1 "$svnrepo" x -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9132-git-svn-broken-symlink/x/.git/ -bar has mode 120000 but is not a link - A bar -r1 = b48720e9bcf35e49ceebb1849fe24799b4270b61 (refs/remotes/git-svn) -Checked out HEAD: - file:///build/git-2.30.2/t/trash%20directory.t9132-git-svn-broken-symlink/svnrepo r1 -ok 2 - clone using git svn - -checking prerequisite: SYMLINKS - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && - # test whether the filesystem supports symbolic links - ln -s x y && test -h y - -) -prerequisite SYMLINKS ok -expecting success of 9132.3 '"bar" is a symlink that points to "asdf"': - test -L x/bar && - (cd x && test xasdf = x"$(git cat-file blob HEAD:bar)") - -ok 3 - "bar" is a symlink that points to "asdf" - -expecting success of 9132.4 'get "bar" => symlink fix from svn': - (cd x && git svn rebase) - -Checksum mismatch: bar 5e40c0877058c504203932e5136051cf3cd3519b -expected: 912ec803b2ce49e4a541068d495ab570 - got: 3f9dfa058a15dc34057c51ec4d35393c -Retrying... (possibly a bad symlink from SVN) - M bar -r2 = a36a2c187dab1422872a42a4e9d306812db3c31d (refs/remotes/git-svn) - Successfully rebased and updated refs/heads/master. -ok 4 - get "bar" => symlink fix from svn - -expecting success of 9132.5 '"bar" remains a proper symlink': - test -L x/bar && - (cd x && test xdoink = x"$(git cat-file blob HEAD:bar)") - -ok 5 - "bar" remains a proper symlink - -# passed all 5 test(s) -1..5 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' *** t9135-git-svn-moved-branch-empty-file.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9135-git-svn-moved-branch-empty-file/.git/ expecting success of 9135.1 'load svn dumpfile': @@ -403840,6 +403671,88 @@ 1..3 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t9136-git-svn-recreated-branch-empty-file.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9136-git-svn-recreated-branch-empty-file/.git/ +expecting success of 9136.1 'load svn dumpfile': + svnadmin load "$rawsvnrepo" < "${TEST_DIRECTORY}/t9136/svn.dump" + +<<< Started new transaction, based on original revision 1 + * editing path : branches ... done. + * editing path : tags ... done. + * editing path : trunk ... done. + * editing path : trunk/file ... done. + +------- Committed revision 1 >>> + +<<< Started new transaction, based on original revision 2 + * editing path : tags/1.0 ...COPIED... done. + +------- Committed revision 2 >>> + +<<< Started new transaction, based on original revision 3 + * editing path : tags/1.0.1 ...COPIED... done. + +------- Committed revision 3 >>> + +<<< Started new transaction, based on original revision 4 + * editing path : tags/1.0.1 ... done. + +------- Committed revision 4 >>> + +<<< Started new transaction, based on original revision 5 + * editing path : branches/1.0 ...COPIED... done. + +------- Committed revision 5 >>> + +<<< Started new transaction, based on original revision 6 + * editing path : tags/1.0.1 ...COPIED... done. + +------- Committed revision 6 >>> + +ok 1 - load svn dumpfile + +expecting success of 9136.2 'clone using git svn': git svn clone -s "$svnrepo" x +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9136-git-svn-recreated-branch-empty-file/x/.git/ + A file +r1 = 6aed88e217199b419d2d35c4b47aaa4108bd2ffc (refs/remotes/origin/trunk) +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9136-git-svn-recreated-branch-empty-file/svnrepo/trunk => file:///build/git-2.30.2/t/trash%20directory.t9136-git-svn-recreated-branch-empty-file/svnrepo/tags/1.0, 1 +Found branch parent: (refs/remotes/origin/tags/1.0) 6aed88e217199b419d2d35c4b47aaa4108bd2ffc +Following parent with do_switch +Successfully followed parent +r2 = 4a16722caa37293e0b7db4f0ee602f7b6fc6a7b1 (refs/remotes/origin/tags/1.0) +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9136-git-svn-recreated-branch-empty-file/svnrepo/tags/1.0 => file:///build/git-2.30.2/t/trash%20directory.t9136-git-svn-recreated-branch-empty-file/svnrepo/tags/1.0.1, 2 +Found branch parent: (refs/remotes/origin/tags/1.0.1) 4a16722caa37293e0b7db4f0ee602f7b6fc6a7b1 +Following parent with do_switch +Successfully followed parent +r3 = 74d1106a566025258a995a493f43472f8f8dfe18 (refs/remotes/origin/tags/1.0.1) +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9136-git-svn-recreated-branch-empty-file/svnrepo/tags/1.0 => file:///build/git-2.30.2/t/trash%20directory.t9136-git-svn-recreated-branch-empty-file/svnrepo/branches/1.0, 4 +Found branch parent: (refs/remotes/origin/1.0) 4a16722caa37293e0b7db4f0ee602f7b6fc6a7b1 +Following parent with do_switch +Successfully followed parent +r5 = ab0da33683ded2f4e8828ce598ad3fc1108fe33a (refs/remotes/origin/1.0) +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9136-git-svn-recreated-branch-empty-file/svnrepo/branches/1.0 => file:///build/git-2.30.2/t/trash%20directory.t9136-git-svn-recreated-branch-empty-file/svnrepo/tags/1.0.1, 5 +Found branch parent: (refs/remotes/origin/tags/1.0.1) ab0da33683ded2f4e8828ce598ad3fc1108fe33a +Following parent with do_switch +Successfully followed parent +r6 = 3fc3d311fe780c241018ae963ebe250deaa29540 (refs/remotes/origin/tags/1.0.1) +Checked out HEAD: + file:///build/git-2.30.2/t/trash%20directory.t9136-git-svn-recreated-branch-empty-file/svnrepo/trunk r1 +ok 2 - clone using git svn + +# passed all 2 test(s) +1..2 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t9133-git-svn-nested-git-repo.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9133-git-svn-nested-git-repo/.git/ expecting success of 9133.1 'setup repo with a git repo inside it': @@ -403871,33 +403784,33 @@ hint: git branch -m Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9133-git-svn-nested-git-repo/s/.git/ A .git +A .git/config +A .git/branches A .git/objects A .git/objects/info A .git/objects/pack A .git/info A .git/info/exclude A .git/refs -A .git/refs/heads A .git/refs/tags +A .git/refs/heads A .git/a A .git/HEAD -A .git/description A .git/hooks -A .git/hooks/pre-merge-commit.sample +A .git/hooks/pre-push.sample +A .git/hooks/post-update.sample +A .git/hooks/pre-rebase.sample +A .git/hooks/pre-receive.sample +A .git/hooks/prepare-commit-msg.sample A .git/hooks/applypatch-msg.sample +A .git/hooks/pre-merge-commit.sample A .git/hooks/pre-applypatch.sample -A .git/hooks/pre-commit.sample A .git/hooks/commit-msg.sample +A .git/hooks/pre-commit.sample A .git/hooks/fsmonitor-watchman.sample A .git/hooks/push-to-checkout.sample A .git/hooks/update.sample -A .git/hooks/pre-push.sample -A .git/hooks/post-update.sample -A .git/hooks/pre-rebase.sample -A .git/hooks/pre-receive.sample -A .git/hooks/prepare-commit-msg.sample -A .git/branches -A .git/config +A .git/description A a Adding .git Adding .git/HEAD @@ -403958,8 +403871,8 @@ hint: git branch -m Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9133-git-svn-nested-git-repo/g/.git/ A a -r1 = 4550f1fd1d9e7262bfe290d9238c2645677f72fc (refs/remotes/git-svn) -r2 = a107e7f6f2be09af3b7f4da6fa7cf222e015ccd2 (refs/remotes/git-svn) +r1 = 829d8a1e15b4764e4db8998076569034aca0afab (refs/remotes/git-svn) +r2 = 4a4765572f56641f7963f19eddc62edaee8d4086 (refs/remotes/git-svn) Checked out HEAD: file:///build/git-2.30.2/t/trash%20directory.t9133-git-svn-nested-git-repo/svnrepo r2 ok 2 - clone an SVN repo containing a git repo @@ -403993,7 +403906,7 @@ ) M a -r3 = f86ae2708c907836ed0aad504ce543eec0a6c927 (refs/remotes/git-svn) +r3 = 22a2a6b211f3998063b15168d3966555419d1048 (refs/remotes/git-svn) Successfully rebased and updated refs/heads/master. ok 4 - update git svn-cloned repo @@ -404018,20 +403931,20 @@ Date: Fri Apr 1 13:14:15 2005 +0200 add a inside an SVN repo -A (bin) .git/index -A .git/objects/a3 -A (bin) .git/objects/a3/8e8ab7e857af7a7ac6f49fa3d3821f26fedca8 A .git/objects/2c A (bin) .git/objects/2c/8aa43a22d2c918b77cfe09cfecdfbb4dce2117 A .git/objects/42 A (bin) .git/objects/42/2c2b7ab3b3c668038da977e4e93a5fc623169c +A .git/objects/a3 +A (bin) .git/objects/a3/8e8ab7e857af7a7ac6f49fa3d3821f26fedca8 A .git/refs/heads/master A .git/logs -A .git/logs/HEAD A .git/logs/refs A .git/logs/refs/heads A .git/logs/refs/heads/master +A .git/logs/HEAD A .git/COMMIT_EDITMSG +A (bin) .git/index Adding .git/COMMIT_EDITMSG Adding (bin) .git/index Adding .git/logs @@ -404064,7 +403977,7 @@ rm expect ) -r4 = a318c4f975281690f0849f396b089e6d1d86fd77 (refs/remotes/git-svn) +r4 = 7ed3072bc6e8201a5f0b134ed2c627b7d11dc87e (refs/remotes/git-svn) Successfully rebased and updated refs/heads/master. ok 6 - update git svn-cloned repo @@ -404107,7 +404020,7 @@ ) M a -r5 = f0ec20e23dfac427d7605876b791901d5b233110 (refs/remotes/git-svn) +r5 = e4a15de0402628cac74b68a0385e52af09e61bc1 (refs/remotes/git-svn) Successfully rebased and updated refs/heads/master. ok 8 - update git svn-cloned repo again @@ -404115,335 +404028,6 @@ 1..8 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t9136-git-svn-recreated-branch-empty-file.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9136-git-svn-recreated-branch-empty-file/.git/ -expecting success of 9136.1 'load svn dumpfile': - svnadmin load "$rawsvnrepo" < "${TEST_DIRECTORY}/t9136/svn.dump" - -<<< Started new transaction, based on original revision 1 - * editing path : branches ... done. - * editing path : tags ... done. - * editing path : trunk ... done. - * editing path : trunk/file ... done. - -------- Committed revision 1 >>> - -<<< Started new transaction, based on original revision 2 - * editing path : tags/1.0 ...COPIED... done. - -------- Committed revision 2 >>> - -<<< Started new transaction, based on original revision 3 - * editing path : tags/1.0.1 ...COPIED... done. - -------- Committed revision 3 >>> - -<<< Started new transaction, based on original revision 4 - * editing path : tags/1.0.1 ... done. - -------- Committed revision 4 >>> - -<<< Started new transaction, based on original revision 5 - * editing path : branches/1.0 ...COPIED... done. - -------- Committed revision 5 >>> - -<<< Started new transaction, based on original revision 6 - * editing path : tags/1.0.1 ...COPIED... done. - -------- Committed revision 6 >>> - -ok 1 - load svn dumpfile - -expecting success of 9136.2 'clone using git svn': git svn clone -s "$svnrepo" x -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9136-git-svn-recreated-branch-empty-file/x/.git/ - A file -r1 = 6aed88e217199b419d2d35c4b47aaa4108bd2ffc (refs/remotes/origin/trunk) -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9136-git-svn-recreated-branch-empty-file/svnrepo/trunk => file:///build/git-2.30.2/t/trash%20directory.t9136-git-svn-recreated-branch-empty-file/svnrepo/tags/1.0, 1 -Found branch parent: (refs/remotes/origin/tags/1.0) 6aed88e217199b419d2d35c4b47aaa4108bd2ffc -Following parent with do_switch -Successfully followed parent -r2 = 4a16722caa37293e0b7db4f0ee602f7b6fc6a7b1 (refs/remotes/origin/tags/1.0) -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9136-git-svn-recreated-branch-empty-file/svnrepo/tags/1.0 => file:///build/git-2.30.2/t/trash%20directory.t9136-git-svn-recreated-branch-empty-file/svnrepo/tags/1.0.1, 2 -Found branch parent: (refs/remotes/origin/tags/1.0.1) 4a16722caa37293e0b7db4f0ee602f7b6fc6a7b1 -Following parent with do_switch -Successfully followed parent -r3 = 74d1106a566025258a995a493f43472f8f8dfe18 (refs/remotes/origin/tags/1.0.1) -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9136-git-svn-recreated-branch-empty-file/svnrepo/tags/1.0 => file:///build/git-2.30.2/t/trash%20directory.t9136-git-svn-recreated-branch-empty-file/svnrepo/branches/1.0, 4 -Found branch parent: (refs/remotes/origin/1.0) 4a16722caa37293e0b7db4f0ee602f7b6fc6a7b1 -Following parent with do_switch -Successfully followed parent -r5 = ab0da33683ded2f4e8828ce598ad3fc1108fe33a (refs/remotes/origin/1.0) -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9136-git-svn-recreated-branch-empty-file/svnrepo/branches/1.0 => file:///build/git-2.30.2/t/trash%20directory.t9136-git-svn-recreated-branch-empty-file/svnrepo/tags/1.0.1, 5 -Found branch parent: (refs/remotes/origin/tags/1.0.1) ab0da33683ded2f4e8828ce598ad3fc1108fe33a -Following parent with do_switch -Successfully followed parent -r6 = 3fc3d311fe780c241018ae963ebe250deaa29540 (refs/remotes/origin/tags/1.0.1) -Checked out HEAD: - file:///build/git-2.30.2/t/trash%20directory.t9136-git-svn-recreated-branch-empty-file/svnrepo/trunk r1 -ok 2 - clone using git svn - -# passed all 2 test(s) -1..2 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t9134-git-svn-ignore-paths.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9134-git-svn-ignore-paths/.git/ -expecting success of 9134.1 'setup test repository': - svn_cmd co "$svnrepo" s && - ( - cd s && - mkdir qqq www && - echo test_qqq > qqq/test_qqq.txt && - echo test_www > www/test_www.txt && - svn_cmd add qqq && - svn_cmd add www && - svn_cmd commit -m "create some files" && - svn_cmd up && - echo hi >> www/test_www.txt && - svn_cmd commit -m "modify www/test_www.txt" && - svn_cmd up - ) - -Checked out revision 0. -A qqq -A qqq/test_qqq.txt -A www -A www/test_www.txt -Adding qqq -Adding qqq/test_qqq.txt -Adding www -Adding www/test_www.txt -Transmitting file data ..done -Committing transaction... -Committed revision 1. -Updating '.': -At revision 1. -Sending www/test_www.txt -Transmitting file data .done -Committing transaction... -Committed revision 2. -Updating '.': -At revision 2. -ok 1 - setup test repository - -expecting success of 9134.2 'clone an SVN repository with ignored www directory': - git svn clone --ignore-paths="^www" "$svnrepo" g && - echo test_qqq > expect && - for i in g/*/*.txt; do cat $i >> expect2; done && - test_cmp expect expect2 - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9134-git-svn-ignore-paths/g/.git/ - A qqq/test_qqq.txt -r1 = c4ddb5ec4fd00e75034e858a2c951cf638851e6f (refs/remotes/git-svn) -r2 = 0ae2aee5c9c98a0cc0f721a9725aab79f0d58918 (refs/remotes/git-svn) -Checked out HEAD: - file:///build/git-2.30.2/t/trash%20directory.t9134-git-svn-ignore-paths/svnrepo r2 -ok 2 - clone an SVN repository with ignored www directory - -expecting success of 9134.3 'init+fetch an SVN repository with ignored www directory': - git svn init "$svnrepo" c && - ( cd c && git svn fetch --ignore-paths="^www" ) && - rm expect2 && - echo test_qqq > expect && - for i in c/*/*.txt; do cat $i >> expect2; done && - test_cmp expect expect2 - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9134-git-svn-ignore-paths/c/.git/ - A qqq/test_qqq.txt -r1 = c4ddb5ec4fd00e75034e858a2c951cf638851e6f (refs/remotes/git-svn) -r2 = 0ae2aee5c9c98a0cc0f721a9725aab79f0d58918 (refs/remotes/git-svn) -Checked out HEAD: - file:///build/git-2.30.2/t/trash%20directory.t9134-git-svn-ignore-paths/svnrepo r2 -ok 3 - init+fetch an SVN repository with ignored www directory - -expecting success of 9134.4 'verify ignore-paths config saved by clone': - ( - cd g && - git config --get svn-remote.svn.ignore-paths | fgrep "www" - ) - -^www -ok 4 - verify ignore-paths config saved by clone - -expecting success of 9134.5 'SVN-side change outside of www': - ( - cd s && - echo b >> qqq/test_qqq.txt && - svn_cmd commit -m "SVN-side change outside of www" && - svn_cmd up && - svn_cmd log -v | fgrep "SVN-side change outside of www" - ) - -Sending qqq/test_qqq.txt -Transmitting file data .done -Committing transaction... -Committed revision 3. -Updating '.': -At revision 3. -SVN-side change outside of www -ok 5 - SVN-side change outside of www - -expecting success of 9134.6 'update git svn-cloned repo (config ignore)': - ( - cd g && - git svn rebase && - printf "test_qqq\nb\n" > expect && - for i in */*.txt; do cat $i >> expect2; done && - test_cmp expect2 expect && - rm expect expect2 - ) - - M qqq/test_qqq.txt -r3 = e56dcca7bda47f0f0a5035bb03313eec667bf56e (refs/remotes/git-svn) - Successfully rebased and updated refs/heads/master. -ok 6 - update git svn-cloned repo (config ignore) - -expecting success of 9134.7 'update git svn-cloned repo (option ignore)': - ( - cd c && - git svn rebase --ignore-paths="^www" && - printf "test_qqq\nb\n" > expect && - for i in */*.txt; do cat $i >> expect2; done && - test_cmp expect2 expect && - rm expect expect2 - ) - - M qqq/test_qqq.txt -r3 = e56dcca7bda47f0f0a5035bb03313eec667bf56e (refs/remotes/git-svn) - Successfully rebased and updated refs/heads/master. -ok 7 - update git svn-cloned repo (option ignore) - -expecting success of 9134.8 'SVN-side change inside of ignored www': - ( - cd s && - echo zaq >> www/test_www.txt && - svn_cmd commit -m "SVN-side change inside of www/test_www.txt" && - svn_cmd up && - svn_cmd log -v | fgrep "SVN-side change inside of www/test_www.txt" - ) - -Sending www/test_www.txt -Transmitting file data .done -Committing transaction... -Committed revision 4. -Updating '.': -At revision 4. -SVN-side change inside of www/test_www.txt -ok 8 - SVN-side change inside of ignored www - -expecting success of 9134.9 'update git svn-cloned repo (config ignore)': - ( - cd g && - git svn rebase && - printf "test_qqq\nb\n" > expect && - for i in */*.txt; do cat $i >> expect2; done && - test_cmp expect2 expect && - rm expect expect2 - ) - -r4 = a9cede7323bed357d4dcae93d9939aa6845fb353 (refs/remotes/git-svn) - Successfully rebased and updated refs/heads/master. -ok 9 - update git svn-cloned repo (config ignore) - -expecting success of 9134.10 'update git svn-cloned repo (option ignore)': - ( - cd c && - git svn rebase --ignore-paths="^www" && - printf "test_qqq\nb\n" > expect && - for i in */*.txt; do cat $i >> expect2; done && - test_cmp expect2 expect && - rm expect expect2 - ) - -r4 = a9cede7323bed357d4dcae93d9939aa6845fb353 (refs/remotes/git-svn) - Successfully rebased and updated refs/heads/master. -ok 10 - update git svn-cloned repo (option ignore) - -expecting success of 9134.11 'SVN-side change in and out of ignored www': - ( - cd s && - echo cvf >> www/test_www.txt && - echo ygg >> qqq/test_qqq.txt && - svn_cmd commit -m "SVN-side change in and out of ignored www" && - svn_cmd up && - svn_cmd log -v | fgrep "SVN-side change in and out of ignored www" - ) - -Sending qqq/test_qqq.txt -Sending www/test_www.txt -Transmitting file data ..done -Committing transaction... -Committed revision 5. -Updating '.': -At revision 5. -SVN-side change in and out of ignored www -ok 11 - SVN-side change in and out of ignored www - -expecting success of 9134.12 'update git svn-cloned repo again (config ignore)': - ( - cd g && - git svn rebase && - printf "test_qqq\nb\nygg\n" > expect && - for i in */*.txt; do cat $i >> expect2; done && - test_cmp expect2 expect && - rm expect expect2 - ) - - M qqq/test_qqq.txt -r5 = b6b379d1d2bca31ce4cb57d25eb5fd60c397f5a0 (refs/remotes/git-svn) - Successfully rebased and updated refs/heads/master. -ok 12 - update git svn-cloned repo again (config ignore) - -expecting success of 9134.13 'update git svn-cloned repo again (option ignore)': - ( - cd c && - git svn rebase --ignore-paths="^www" && - printf "test_qqq\nb\nygg\n" > expect && - for i in */*.txt; do cat $i >> expect2; done && - test_cmp expect2 expect && - rm expect expect2 - ) - - M qqq/test_qqq.txt -r5 = b6b379d1d2bca31ce4cb57d25eb5fd60c397f5a0 (refs/remotes/git-svn) - Successfully rebased and updated refs/heads/master. -ok 13 - update git svn-cloned repo again (option ignore) - -# passed all 13 test(s) -1..13 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' *** t9137-git-svn-dcommit-clobber-series.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9137-git-svn-dcommit-clobber-series/.git/ expecting success of 9137.1 'initialize repo': @@ -404460,7 +404044,7 @@ Committing transaction... Committed revision 1. A file -r1 = af305bdd64cc03ccd79df4766b786b79cee804c7 (refs/remotes/git-svn) +r1 = 31ff741331ad891b830a79d06379549714b4dc0c (refs/remotes/git-svn) Checked out HEAD: file:///build/git-2.30.2/t/trash%20directory.t9137-git-svn-dcommit-clobber-series/svnrepo r1 ok 1 - initialize repo @@ -404493,11 +404077,11 @@ echo bye >> life && git commit -m bye-life life -[master 1d5be26] hi-life +[master ea3ec49] hi-life Author: A U Thor 1 file changed, 1 insertion(+) create mode 100644 life -[master 93a013d] bye-life +[master 47f3f48] bye-life Author: A U Thor 1 file changed, 1 insertion(+) ok 3 - some unrelated changes to git @@ -404518,28 +404102,28 @@ test x"$(sed -n -e 58p < file)" = x5588 && test x"$(sed -n -e 61p < file)" = x6611 -[master c48830b] 4 => 4444, 7 => 7777 +[master 8267738] 4 => 4444, 7 => 7777 Author: A U Thor 1 file changed, 2 insertions(+), 2 deletions(-) Committing to file:///build/git-2.30.2/t/trash%20directory.t9137-git-svn-dcommit-clobber-series/svnrepo ... A life Committed r3 M file -r2 = 5070ab89f8a94c3c432817ed84a695ca333f361e (refs/remotes/git-svn) +r2 = 965e71f524cab8425202ca5da1221466e0843874 (refs/remotes/git-svn) A life -r3 = dcacaad506b71da6c1b516ac71acfb53b90bec94 (refs/remotes/git-svn) -W: 1d5be26be46b95ed9b4bacafacccbdc4c3ebf484 and refs/remotes/git-svn differ, using rebase: +r3 = cbead39877a3a250fd29051a6b8f701bf8981eab (refs/remotes/git-svn) +W: ea3ec498d092eb761df98ff7f68ff3e78a629210 and refs/remotes/git-svn differ, using rebase: :100644 100644 55200b3d5d7c0e515eaccaf8465a295017e88249 15dcf092297e5fcea41cadcc3eb0a689aaa3e65e M file Rebasing (1/2) Rebasing (2/2) Successfully rebased and updated refs/heads/master. M life Committed r4 M life -r4 = ee213cd973ac2a66052c7533d18aaa7a52d3f262 (refs/remotes/git-svn) +r4 = 4079ab17da02be907f6ac55e11beb20adccd0f9a (refs/remotes/git-svn) M file Committed r5 M file -r5 = c37aa1bcd97da84d3a464691d07d525f7e47ad87 (refs/remotes/git-svn) -No changes between c998198896fb188f3e697d33bd897cd3e851d07c and refs/remotes/git-svn +r5 = 35154ce858df3b930d5391266a2e5d935e3cfacf (refs/remotes/git-svn) +No changes between c537db9c40ec595347067bdb722efd8f6864730c and refs/remotes/git-svn Resetting to the latest refs/remotes/git-svn Updating 'tmp': U tmp/file @@ -404606,17 +404190,17 @@ hint: git branch -m Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9138-git-svn-authors-prog/x/.git/ W: +empty_dir: aa -r1 = f45fbcfa8acbdfe29ec66c99ec27132509baca05 (refs/remotes/git-svn) +r1 = 7ce6af800d60685570a0cfdce63e851ca00ed33b (refs/remotes/git-svn) W: +empty_dir: bb -r2 = 32de06df2e0b0fad44d210c05bb28e77aed1a947 (refs/remotes/git-svn) +r2 = ee71bff26d559db1969ec6510c745b59ce740edb (refs/remotes/git-svn) W: +empty_dir: cc-sub -r3 = 9b4bbefb777ce87cb70db2cc4a31002d000abb7c (refs/remotes/git-svn) +r3 = 7f2332faaf742863b74dd447131ba225de42db1d (refs/remotes/git-svn) W: +empty_dir: dd-sub -r4 = 258dc249962fbf8bc56912c35e1a37fd0447f6e4 (refs/remotes/git-svn) +r4 = e92c0622cbe4e326d29442449f66d2a8df327b13 (refs/remotes/git-svn) W: +empty_dir: ee-foo -r5 = 67633972efd916a747ec6bbb64cf18a46c9aacfa (refs/remotes/git-svn) +r5 = 75a8f10efe46831a11d88707f69a6cce831fbac2 (refs/remotes/git-svn) W: +empty_dir: ff -r6 = 2711c7e9d7b20f5a448855c21edd65f894309781 (refs/remotes/git-svn) +r6 = 54c3f0904d8540b7d818e0cf8ddf9f0c5dad28fc (refs/remotes/git-svn) Checked out HEAD: file:///build/git-2.30.2/t/trash%20directory.t9138-git-svn-authors-prog/svnrepo r6 creating empty directory: aa @@ -404651,11 +404235,11 @@ grep "^author aa " actual ) -author ee-foo 1682787217 +0000 -author dd 1682787217 +0000 -author cc 1682787217 +0000 -author bb 1682787217 +0000 -author aa 1682787216 +0000 +author ee-foo 1682794167 +0000 +author dd 1682794167 +0000 +author cc 1682794167 +0000 +author bb 1682794167 +0000 +author aa 1682794167 +0000 ok 5 - authors-prog ran correctly expecting success of 9138.6 'authors-file overrode authors-prog': @@ -404665,7 +404249,7 @@ grep "^author FFFFFFF FFFFFFF " actual ) -author FFFFFFF FFFFFFF 1682787217 +0000 +author FFFFFFF FFFFFFF 1682794168 +0000 ok 6 - authors-file overrode authors-prog expecting success of 9138.7 'authors-prog imported user without email': @@ -404680,8 +404264,8 @@ Committing transaction... Committed revision 7. W: +empty_dir: gg -r7 = 027e1cb746199a1619a1935d24d74d5baf673a6b (refs/remotes/git-svn) -author gg <> 1682787222 +0000 +r7 = 6158a3ceee58daa8448883c20325e20f8b046677 (refs/remotes/git-svn) +author gg <> 1682794177 +0000 ok 7 - authors-prog imported user without email expecting success of 9138.8 'imported without authors-prog and authors-file': @@ -404698,8 +404282,8 @@ Committing transaction... Committed revision 8. W: +empty_dir: hh -r8 = cf7c511c1edd5efd25f0cfcdfae4702d4bc3c98f (refs/remotes/git-svn) -author hh 1682787224 +0000 +r8 = 7ff61218e32706d1f5b47afe02741eac26aeb7fe (refs/remotes/git-svn) +author hh 1682794183 +0000 ok 8 - imported without authors-prog and authors-file expecting success of 9138.9 'authors-prog handled special characters in username': @@ -404715,8 +404299,8 @@ Committing transaction... Committed revision 9. W: +empty_dir: bad -r9 = 08eae0a9b0fa805975f37271139fe61956f2c34b (refs/remotes/git-svn) -author xyz; touch evil 1682787227 +0000 +r9 = 78b8f9a4f12e782928f5b439b6adbf2c3e073ef4 (refs/remotes/git-svn) +author xyz; touch evil 1682794187 +0000 ok 9 - authors-prog handled special characters in username # passed all 9 test(s) @@ -404743,7 +404327,7 @@ hint: hint: git branch -m Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9139-git-svn-non-utf8-commitencoding/ISO8859-1/.git/ -r1 = c689768012607e12b54b0571284b4c7c38866700 (refs/remotes/git-svn) +r1 = c26605d58502f17b66cc03a18273e54d23906443 (refs/remotes/git-svn) Checked out HEAD: file:///build/git-2.30.2/t/trash%20directory.t9139-git-svn-non-utf8-commitencoding/svnrepo/ISO8859-1 r1 ok 1 - ISO8859-1 setup @@ -404766,7 +404350,7 @@ hint: hint: git branch -m Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9139-git-svn-non-utf8-commitencoding/eucJP/.git/ -r2 = f5e627a415f0003997efda002376ee9be058ade9 (refs/remotes/git-svn) +r2 = d1823f73783bb57ce818a2c79680dc7e42b68c4c (refs/remotes/git-svn) Checked out HEAD: file:///build/git-2.30.2/t/trash%20directory.t9139-git-svn-non-utf8-commitencoding/svnrepo/eucJP r2 ok 2 - eucJP setup @@ -404784,7 +404368,7 @@ ) Switched to a new branch 't' -[t 8ad5a11] ÄËÑÏÖ +[t 6d6f641] ÄËÑÏÖ Author: A U Thor 1 file changed, 1 insertion(+) create mode 100644 F @@ -404803,7 +404387,7 @@ ) Switched to a new branch 't' -[t 7f061fe] ¤Ï¤ì¤Ò¤Û¤Õ +[t 0ca0f1a] ¤Ï¤ì¤Ò¤Û¤Õ Author: A U Thor 1 file changed, 1 insertion(+) create mode 100644 F @@ -404846,6 +404430,253 @@ 1..6 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t9134-git-svn-ignore-paths.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9134-git-svn-ignore-paths/.git/ +expecting success of 9134.1 'setup test repository': + svn_cmd co "$svnrepo" s && + ( + cd s && + mkdir qqq www && + echo test_qqq > qqq/test_qqq.txt && + echo test_www > www/test_www.txt && + svn_cmd add qqq && + svn_cmd add www && + svn_cmd commit -m "create some files" && + svn_cmd up && + echo hi >> www/test_www.txt && + svn_cmd commit -m "modify www/test_www.txt" && + svn_cmd up + ) + +Checked out revision 0. +A qqq +A qqq/test_qqq.txt +A www +A www/test_www.txt +Adding qqq +Adding qqq/test_qqq.txt +Adding www +Adding www/test_www.txt +Transmitting file data ..done +Committing transaction... +Committed revision 1. +Updating '.': +At revision 1. +Sending www/test_www.txt +Transmitting file data .done +Committing transaction... +Committed revision 2. +Updating '.': +At revision 2. +ok 1 - setup test repository + +expecting success of 9134.2 'clone an SVN repository with ignored www directory': + git svn clone --ignore-paths="^www" "$svnrepo" g && + echo test_qqq > expect && + for i in g/*/*.txt; do cat $i >> expect2; done && + test_cmp expect expect2 + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9134-git-svn-ignore-paths/g/.git/ + A qqq/test_qqq.txt +r1 = 038e038d6f8c2a900cff1c6ffb93d819ffe7f6c5 (refs/remotes/git-svn) +r2 = 40f75c63b82a046c0a1df5c8435d13056d926d6a (refs/remotes/git-svn) +Checked out HEAD: + file:///build/git-2.30.2/t/trash%20directory.t9134-git-svn-ignore-paths/svnrepo r2 +ok 2 - clone an SVN repository with ignored www directory + +expecting success of 9134.3 'init+fetch an SVN repository with ignored www directory': + git svn init "$svnrepo" c && + ( cd c && git svn fetch --ignore-paths="^www" ) && + rm expect2 && + echo test_qqq > expect && + for i in c/*/*.txt; do cat $i >> expect2; done && + test_cmp expect expect2 + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9134-git-svn-ignore-paths/c/.git/ + A qqq/test_qqq.txt +r1 = 038e038d6f8c2a900cff1c6ffb93d819ffe7f6c5 (refs/remotes/git-svn) +r2 = 40f75c63b82a046c0a1df5c8435d13056d926d6a (refs/remotes/git-svn) +Checked out HEAD: + file:///build/git-2.30.2/t/trash%20directory.t9134-git-svn-ignore-paths/svnrepo r2 +ok 3 - init+fetch an SVN repository with ignored www directory + +expecting success of 9134.4 'verify ignore-paths config saved by clone': + ( + cd g && + git config --get svn-remote.svn.ignore-paths | fgrep "www" + ) + +^www +ok 4 - verify ignore-paths config saved by clone + +expecting success of 9134.5 'SVN-side change outside of www': + ( + cd s && + echo b >> qqq/test_qqq.txt && + svn_cmd commit -m "SVN-side change outside of www" && + svn_cmd up && + svn_cmd log -v | fgrep "SVN-side change outside of www" + ) + +Sending qqq/test_qqq.txt +Transmitting file data .done +Committing transaction... +Committed revision 3. +Updating '.': +At revision 3. +SVN-side change outside of www +ok 5 - SVN-side change outside of www + +expecting success of 9134.6 'update git svn-cloned repo (config ignore)': + ( + cd g && + git svn rebase && + printf "test_qqq\nb\n" > expect && + for i in */*.txt; do cat $i >> expect2; done && + test_cmp expect2 expect && + rm expect expect2 + ) + + M qqq/test_qqq.txt +r3 = 70cf147fa055d0b0314c23a7b66741a0df0f18e0 (refs/remotes/git-svn) + Successfully rebased and updated refs/heads/master. +ok 6 - update git svn-cloned repo (config ignore) + +expecting success of 9134.7 'update git svn-cloned repo (option ignore)': + ( + cd c && + git svn rebase --ignore-paths="^www" && + printf "test_qqq\nb\n" > expect && + for i in */*.txt; do cat $i >> expect2; done && + test_cmp expect2 expect && + rm expect expect2 + ) + + M qqq/test_qqq.txt +r3 = 70cf147fa055d0b0314c23a7b66741a0df0f18e0 (refs/remotes/git-svn) + Successfully rebased and updated refs/heads/master. +ok 7 - update git svn-cloned repo (option ignore) + +expecting success of 9134.8 'SVN-side change inside of ignored www': + ( + cd s && + echo zaq >> www/test_www.txt && + svn_cmd commit -m "SVN-side change inside of www/test_www.txt" && + svn_cmd up && + svn_cmd log -v | fgrep "SVN-side change inside of www/test_www.txt" + ) + +Sending www/test_www.txt +Transmitting file data .done +Committing transaction... +Committed revision 4. +Updating '.': +At revision 4. +SVN-side change inside of www/test_www.txt +ok 8 - SVN-side change inside of ignored www + +expecting success of 9134.9 'update git svn-cloned repo (config ignore)': + ( + cd g && + git svn rebase && + printf "test_qqq\nb\n" > expect && + for i in */*.txt; do cat $i >> expect2; done && + test_cmp expect2 expect && + rm expect expect2 + ) + +r4 = 70e1ae5d19dae709296c9b776597ca1df532481a (refs/remotes/git-svn) + Successfully rebased and updated refs/heads/master. +ok 9 - update git svn-cloned repo (config ignore) + +expecting success of 9134.10 'update git svn-cloned repo (option ignore)': + ( + cd c && + git svn rebase --ignore-paths="^www" && + printf "test_qqq\nb\n" > expect && + for i in */*.txt; do cat $i >> expect2; done && + test_cmp expect2 expect && + rm expect expect2 + ) + +r4 = 70e1ae5d19dae709296c9b776597ca1df532481a (refs/remotes/git-svn) + Successfully rebased and updated refs/heads/master. +ok 10 - update git svn-cloned repo (option ignore) + +expecting success of 9134.11 'SVN-side change in and out of ignored www': + ( + cd s && + echo cvf >> www/test_www.txt && + echo ygg >> qqq/test_qqq.txt && + svn_cmd commit -m "SVN-side change in and out of ignored www" && + svn_cmd up && + svn_cmd log -v | fgrep "SVN-side change in and out of ignored www" + ) + +Sending qqq/test_qqq.txt +Sending www/test_www.txt +Transmitting file data ..done +Committing transaction... +Committed revision 5. +Updating '.': +At revision 5. +SVN-side change in and out of ignored www +ok 11 - SVN-side change in and out of ignored www + +expecting success of 9134.12 'update git svn-cloned repo again (config ignore)': + ( + cd g && + git svn rebase && + printf "test_qqq\nb\nygg\n" > expect && + for i in */*.txt; do cat $i >> expect2; done && + test_cmp expect2 expect && + rm expect expect2 + ) + + M qqq/test_qqq.txt +r5 = 3a7dd894c3fa47288ff43ebc44c622aba2e8b13a (refs/remotes/git-svn) + Successfully rebased and updated refs/heads/master. +ok 12 - update git svn-cloned repo again (config ignore) + +expecting success of 9134.13 'update git svn-cloned repo again (option ignore)': + ( + cd c && + git svn rebase --ignore-paths="^www" && + printf "test_qqq\nb\nygg\n" > expect && + for i in */*.txt; do cat $i >> expect2; done && + test_cmp expect2 expect && + rm expect expect2 + ) + + M qqq/test_qqq.txt +r5 = 3a7dd894c3fa47288ff43ebc44c622aba2e8b13a (refs/remotes/git-svn) + Successfully rebased and updated refs/heads/master. +ok 13 - update git svn-cloned repo again (option ignore) + +# passed all 13 test(s) +1..13 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t9142-git-svn-shallow-clone.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9142-git-svn-shallow-clone/.git/ expecting success of 9142.1 'setup test repository': @@ -404889,7 +404720,7 @@ hint: hint: git branch -m Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9142-git-svn-shallow-clone/g/.git/ -r1 = 192ad550bd8bdaa068d3199565399c6e27d1da0f (refs/remotes/git-svn) +r1 = b8833b095fd512d11d5897ce78d703c91fdb55dc (refs/remotes/git-svn) Checked out HEAD: file:///build/git-2.30.2/t/trash%20directory.t9142-git-svn-shallow-clone/svnrepo/trunk r1 HEAD @@ -404899,134 +404730,6 @@ 1..2 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t9140-git-svn-reset.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9140-git-svn-reset/.git/ -expecting success of 9140.1 'setup test repository': - svn_cmd co "$svnrepo" s && - ( - cd s && - mkdir vis && - echo always visible > vis/vis.txt && - svn_cmd add vis && - svn_cmd commit -m "create visible files" && - mkdir hid && - echo initially hidden > hid/hid.txt && - svn_cmd add hid && - svn_cmd commit -m "create initially hidden files" && - svn_cmd up && - echo mod >> vis/vis.txt && - svn_cmd commit -m "modify vis" && - svn_cmd up - ) - -Checked out revision 0. -A vis -A vis/vis.txt -Adding vis -Adding vis/vis.txt -Transmitting file data .done -Committing transaction... -Committed revision 1. -A hid -A hid/hid.txt -Adding hid -Adding hid/hid.txt -Transmitting file data .done -Committing transaction... -Committed revision 2. -Updating '.': -At revision 2. -Sending vis/vis.txt -Transmitting file data .done -Committing transaction... -Committed revision 3. -Updating '.': -At revision 3. -ok 1 - setup test repository - -expecting success of 9140.2 'clone SVN repository with hidden directory': - git svn init "$svnrepo" g && - ( cd g && git svn fetch --ignore-paths="^hid" ) - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9140-git-svn-reset/g/.git/ - A vis/vis.txt -r1 = 0ebb211bc8671da055b950ec36ba6e07218e488e (refs/remotes/git-svn) -r2 = d05153606d0dc40d3afe1675d2a0793ac8850190 (refs/remotes/git-svn) - M vis/vis.txt -r3 = 070207cb090d36e5792eb73d34541b745db8249d (refs/remotes/git-svn) -Checked out HEAD: - file:///build/git-2.30.2/t/trash%20directory.t9140-git-svn-reset/svnrepo r3 -ok 2 - clone SVN repository with hidden directory - -expecting success of 9140.3 'modify hidden file in SVN repo': - ( cd s && - echo mod hidden >> hid/hid.txt && - svn_cmd commit -m "modify hid" && - svn_cmd up - ) - -Sending hid/hid.txt -Transmitting file data .done -Committing transaction... -Committed revision 4. -Updating '.': -At revision 4. -ok 3 - modify hidden file in SVN repo - -expecting success of 9140.4 'fetch fails on modified hidden file': - ( cd g && - git svn find-rev refs/remotes/git-svn > ../expect && - test_must_fail git svn fetch 2> ../errors && - git svn find-rev refs/remotes/git-svn > ../expect2 ) && - fgrep "not found in commit" errors && - test_cmp expect expect2 - -hid/hid.txt was not found in commit 070207cb090d36e5792eb73d34541b745db8249d (r3) -ok 4 - fetch fails on modified hidden file - -expecting success of 9140.5 'reset unwinds back to r1': - ( cd g && - git svn reset -r1 && - git svn find-rev refs/remotes/git-svn > ../expect2 ) && - echo 1 >expect && - test_cmp expect expect2 - -r1 = 0ebb211bc8671da055b950ec36ba6e07218e488e (refs/remotes/git-svn) -ok 5 - reset unwinds back to r1 - -expecting success of 9140.6 'refetch succeeds not ignoring any files': - ( cd g && - git svn fetch && - git svn rebase && - fgrep "mod hidden" hid/hid.txt - ) - -Index mismatch: a4b5c203f79112e92d530cb82366ca4d706fa4a8 != 6b5a1244749c8cdb5442eefd0abc3689d666322d -rereading 0ebb211bc8671da055b950ec36ba6e07218e488e - A hid/hid.txt -r2 = 9436df8b3436752f70f5d77c785e0f6eb1aeb203 (refs/remotes/git-svn) - M vis/vis.txt -r3 = 1dfee457ef717412ca569db13b133b360bf4328f (refs/remotes/git-svn) - M hid/hid.txt -r4 = 42a795381fb6d171483b48a3b7d7dca70a99d105 (refs/remotes/git-svn) -Rebasing (1/1) Successfully rebased and updated refs/heads/master. -mod hidden -ok 6 - refetch succeeds not ignoring any files - -# passed all 6 test(s) -1..6 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' *** t9143-git-svn-gc.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9143-git-svn-gc/.git/ expecting success of 9143.1 'setup directories and test repo': @@ -405059,9 +404762,9 @@ expecting success of 9143.5 'Fetch repo': git svn fetch A test.txt -r1 = 77408390515c93388b640ad0b621639e9da5f11d (refs/remotes/git-svn) +r1 = ab8dc639d318fb85b59761dc3c17442faa19e2e9 (refs/remotes/git-svn) M test.txt -r2 = 58c0ed9a17552ddab3cf17add0eb93dbe48b3264 (refs/remotes/git-svn) +r2 = e74c88897c5f506f76f3887013238d67c08d1347 (refs/remotes/git-svn) Checked out HEAD: file:///build/git-2.30.2/t/trash%20directory.t9143-git-svn-gc/svnrepo r2 ok 5 - Fetch repo @@ -405134,11 +404837,11 @@ hint: git branch -m Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9145-git-svn-master-branch/g/.git/ A a -r1 = cc2dde7f04a00abc70f4ce454c3b2ed2a41644aa (refs/remotes/origin/trunk) +r1 = e403cb7820f4156de1bea634982486d4ca074497 (refs/remotes/origin/trunk) A a -r2 = 6480c530a9fa2a10df496cfa5f83cfb0711e1462 (refs/remotes/origin/a) +r2 = 56a6ec7bc0da7619e0b5484bed705a9f2ab8ef31 (refs/remotes/origin/a) A a -r3 = 6cc25819192269c8aabdad95411134a3955b4c35 (refs/remotes/origin/b) +r3 = ff390a1419f81d8caa4651e87fad3d513b0ebf72 (refs/remotes/origin/b) Checked out HEAD: file:///build/git-2.30.2/t/trash%20directory.t9145-git-svn-master-branch/svnrepo/trunk r1 ok 2 - git svn clone --stdlayout sets up trunk as master @@ -405164,7 +404867,7 @@ Committing transaction... Committed revision 1. A a -r1 = 56f3be4e291f54c1c22b04f1ce7d41d9de8d5d16 (refs/remotes/git-svn) +r1 = dd242f9e34af1bcc8962e225051fcbdeba55f2e9 (refs/remotes/git-svn) Checked out HEAD: file:///build/git-2.30.2/t/trash%20directory.t9144-git-svn-old-rev_map/svnrepo r1 ok 1 - setup test repository with old layout @@ -405183,17 +404886,17 @@ Committing transaction... Committed revision 2. A b/a -r2 = 0f569b7939128eb18b2968860e4fa41fd1002d39 (refs/remotes/git-svn) +r2 = 562cdc79a157a4446bec9d2eba7b6c177525a348 (refs/remotes/git-svn) Successfully rebased and updated refs/heads/master. -[master 877088d] - +[master 8f63814] - Author: A U Thor 1 file changed, 1 insertion(+) Committing to file:///build/git-2.30.2/t/trash%20directory.t9144-git-svn-old-rev_map/svnrepo ... M b/a Committed r3 M b/a -r3 = 3573d287508ba4d769fe8f54dce37edb6d4aafbc (refs/remotes/git-svn) -No changes between 877088df6a92efabcdf6f3cbfb6410d8d8626aa3 and refs/remotes/git-svn +r3 = 46edb492e5ea25832a4862b276dcd0b086a76ac8 (refs/remotes/git-svn) +No changes between 8f6381471f67acda02c41cc99e00efe3eced1783 and refs/remotes/git-svn Resetting to the latest refs/remotes/git-svn ok 2 - old layout continues to work @@ -405201,6 +404904,134 @@ 1..2 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t9140-git-svn-reset.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9140-git-svn-reset/.git/ +expecting success of 9140.1 'setup test repository': + svn_cmd co "$svnrepo" s && + ( + cd s && + mkdir vis && + echo always visible > vis/vis.txt && + svn_cmd add vis && + svn_cmd commit -m "create visible files" && + mkdir hid && + echo initially hidden > hid/hid.txt && + svn_cmd add hid && + svn_cmd commit -m "create initially hidden files" && + svn_cmd up && + echo mod >> vis/vis.txt && + svn_cmd commit -m "modify vis" && + svn_cmd up + ) + +Checked out revision 0. +A vis +A vis/vis.txt +Adding vis +Adding vis/vis.txt +Transmitting file data .done +Committing transaction... +Committed revision 1. +A hid +A hid/hid.txt +Adding hid +Adding hid/hid.txt +Transmitting file data .done +Committing transaction... +Committed revision 2. +Updating '.': +At revision 2. +Sending vis/vis.txt +Transmitting file data .done +Committing transaction... +Committed revision 3. +Updating '.': +At revision 3. +ok 1 - setup test repository + +expecting success of 9140.2 'clone SVN repository with hidden directory': + git svn init "$svnrepo" g && + ( cd g && git svn fetch --ignore-paths="^hid" ) + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9140-git-svn-reset/g/.git/ + A vis/vis.txt +r1 = e225472037d04bb5e007223d917bf4675c3fab00 (refs/remotes/git-svn) +r2 = 9e316f79977cb9c835151a41f8363cb89d7d8336 (refs/remotes/git-svn) + M vis/vis.txt +r3 = 8f423e0090a2f06b1fb80d932165b6033403bf57 (refs/remotes/git-svn) +Checked out HEAD: + file:///build/git-2.30.2/t/trash%20directory.t9140-git-svn-reset/svnrepo r3 +ok 2 - clone SVN repository with hidden directory + +expecting success of 9140.3 'modify hidden file in SVN repo': + ( cd s && + echo mod hidden >> hid/hid.txt && + svn_cmd commit -m "modify hid" && + svn_cmd up + ) + +Sending hid/hid.txt +Transmitting file data .done +Committing transaction... +Committed revision 4. +Updating '.': +At revision 4. +ok 3 - modify hidden file in SVN repo + +expecting success of 9140.4 'fetch fails on modified hidden file': + ( cd g && + git svn find-rev refs/remotes/git-svn > ../expect && + test_must_fail git svn fetch 2> ../errors && + git svn find-rev refs/remotes/git-svn > ../expect2 ) && + fgrep "not found in commit" errors && + test_cmp expect expect2 + +hid/hid.txt was not found in commit 8f423e0090a2f06b1fb80d932165b6033403bf57 (r3) +ok 4 - fetch fails on modified hidden file + +expecting success of 9140.5 'reset unwinds back to r1': + ( cd g && + git svn reset -r1 && + git svn find-rev refs/remotes/git-svn > ../expect2 ) && + echo 1 >expect && + test_cmp expect expect2 + +r1 = e225472037d04bb5e007223d917bf4675c3fab00 (refs/remotes/git-svn) +ok 5 - reset unwinds back to r1 + +expecting success of 9140.6 'refetch succeeds not ignoring any files': + ( cd g && + git svn fetch && + git svn rebase && + fgrep "mod hidden" hid/hid.txt + ) + +Index mismatch: a4b5c203f79112e92d530cb82366ca4d706fa4a8 != 6b5a1244749c8cdb5442eefd0abc3689d666322d +rereading e225472037d04bb5e007223d917bf4675c3fab00 + A hid/hid.txt +r2 = 206c978a1f8718a91d981ec914c81e542516f024 (refs/remotes/git-svn) + M vis/vis.txt +r3 = 36d4fdc45eb7a8a2ee457b3fc723ec6e3c08e9d4 (refs/remotes/git-svn) + M hid/hid.txt +r4 = a803806012369e18fce1f8fffd3ad6c5e1447bac (refs/remotes/git-svn) +Rebasing (1/1) Successfully rebased and updated refs/heads/master. +mod hidden +ok 6 - refetch succeeds not ignoring any files + +# passed all 6 test(s) +1..6 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t9141-git-svn-multiple-branches.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9141-git-svn-multiple-branches/.git/ expecting success of 9141.1 'setup svnrepo': @@ -405376,95 +405207,95 @@ Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9141-git-svn-multiple-branches/git_project/.git/ Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9141-git-svn-multiple-branches/svnrepo/project => file:///build/git-2.30.2/t/trash%20directory.t9141-git-svn-multiple-branches/svnrepo A a.file -r1 = 9209d604d9e7b010f53ae0c085502a7673bc9b2c (refs/remotes/origin/trunk) +r1 = 592ef651dea36185b47e9fdca912ab5d2dbc6e33 (refs/remotes/origin/trunk) Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9141-git-svn-multiple-branches/svnrepo/project/trunk => file:///build/git-2.30.2/t/trash%20directory.t9141-git-svn-multiple-branches/svnrepo/project/b_one/first, 1 -Found branch parent: (refs/remotes/origin/first) 9209d604d9e7b010f53ae0c085502a7673bc9b2c +Found branch parent: (refs/remotes/origin/first) 592ef651dea36185b47e9fdca912ab5d2dbc6e33 Following parent with do_switch Successfully followed parent -r2 = cb86706f63ccb03fa5c7103f4bcb70b0d6504371 (refs/remotes/origin/first) +r2 = cedc226c7634aa85400d78baacc6ff5c7c2666b8 (refs/remotes/origin/first) Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9141-git-svn-multiple-branches/svnrepo/project/trunk => file:///build/git-2.30.2/t/trash%20directory.t9141-git-svn-multiple-branches/svnrepo/project/tags_A/1.0, 2 -Found branch parent: (refs/remotes/origin/tags/1.0) 9209d604d9e7b010f53ae0c085502a7673bc9b2c +Found branch parent: (refs/remotes/origin/tags/1.0) 592ef651dea36185b47e9fdca912ab5d2dbc6e33 Following parent with do_switch Successfully followed parent -r3 = 959955caac1718b64116655352a263d1cdc9a8a9 (refs/remotes/origin/tags/1.0) +r3 = de352abd0d59cdae7f8d0b258bd8fe6b34df56fa (refs/remotes/origin/tags/1.0) M a.file -r4 = 1aff436c49b9be9ed8a789b244b8b1ab94656739 (refs/remotes/origin/trunk) +r4 = 43f71a616d1bfd082500bb570e6ee64a5f65a073 (refs/remotes/origin/trunk) Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9141-git-svn-multiple-branches/svnrepo/project/trunk => file:///build/git-2.30.2/t/trash%20directory.t9141-git-svn-multiple-branches/svnrepo/project/b_one/second, 4 -Found branch parent: (refs/remotes/origin/second) 1aff436c49b9be9ed8a789b244b8b1ab94656739 +Found branch parent: (refs/remotes/origin/second) 43f71a616d1bfd082500bb570e6ee64a5f65a073 Following parent with do_switch Successfully followed parent -r5 = 09037dd99bcddea7392ea3cd8e5830a19aeac2e2 (refs/remotes/origin/second) +r5 = 538bd4cd705d9862266c5612babbbff1a167456c (refs/remotes/origin/second) Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9141-git-svn-multiple-branches/svnrepo/project/trunk => file:///build/git-2.30.2/t/trash%20directory.t9141-git-svn-multiple-branches/svnrepo/project/tags_A/2.0, 5 -Found branch parent: (refs/remotes/origin/tags/2.0) 1aff436c49b9be9ed8a789b244b8b1ab94656739 +Found branch parent: (refs/remotes/origin/tags/2.0) 43f71a616d1bfd082500bb570e6ee64a5f65a073 Following parent with do_switch Successfully followed parent -r6 = e964768528c35da3b9c84603b2f5260f242a488e (refs/remotes/origin/tags/2.0) +r6 = 6447043f6c5201b8cf4e1e6733222456fd426762 (refs/remotes/origin/tags/2.0) M a.file -r7 = b8f903fd40d65f550ac5de8bfd0797a1148e2f40 (refs/remotes/origin/trunk) +r7 = f580f758b0268e1383a0e845c3a2e68e4af03297 (refs/remotes/origin/trunk) Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9141-git-svn-multiple-branches/svnrepo/project/trunk => file:///build/git-2.30.2/t/trash%20directory.t9141-git-svn-multiple-branches/svnrepo/project/b_two/1, 7 -Found branch parent: (refs/remotes/origin/1) b8f903fd40d65f550ac5de8bfd0797a1148e2f40 +Found branch parent: (refs/remotes/origin/1) f580f758b0268e1383a0e845c3a2e68e4af03297 Following parent with do_switch Successfully followed parent -r8 = a4bbaba2b5085725950e58da9cfc3676e8fb7787 (refs/remotes/origin/1) +r8 = e03c11dc26c47bf72cefb6a3c7fbc13ae8726b34 (refs/remotes/origin/1) Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9141-git-svn-multiple-branches/svnrepo/project/trunk => file:///build/git-2.30.2/t/trash%20directory.t9141-git-svn-multiple-branches/svnrepo/project/tags_A/3.0, 8 -Found branch parent: (refs/remotes/origin/tags/3.0) b8f903fd40d65f550ac5de8bfd0797a1148e2f40 +Found branch parent: (refs/remotes/origin/tags/3.0) f580f758b0268e1383a0e845c3a2e68e4af03297 Following parent with do_switch Successfully followed parent -r9 = 86027e8e0a0546e6f9b57a293ff81671eaf86df9 (refs/remotes/origin/tags/3.0) +r9 = 0f3717ea9093109d2f6ae0012add5a00b7d4dea8 (refs/remotes/origin/tags/3.0) M a.file -r10 = a91bca00c6dccef482ac293a2c7587b6cffd5224 (refs/remotes/origin/trunk) +r10 = e1a7f30a78e73c436c1955a5e3e8fda5285fe5da (refs/remotes/origin/trunk) Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9141-git-svn-multiple-branches/svnrepo/project/trunk => file:///build/git-2.30.2/t/trash%20directory.t9141-git-svn-multiple-branches/svnrepo/project/b_two/2, 10 -Found branch parent: (refs/remotes/origin/2) a91bca00c6dccef482ac293a2c7587b6cffd5224 +Found branch parent: (refs/remotes/origin/2) e1a7f30a78e73c436c1955a5e3e8fda5285fe5da Following parent with do_switch Successfully followed parent -r11 = 60d09c55c7a780cff11a85b7b54e9070a8b8b0b0 (refs/remotes/origin/2) +r11 = d0651c60c60f01eb8eb3cd2e6e635d4d467d55d4 (refs/remotes/origin/2) Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9141-git-svn-multiple-branches/svnrepo/project/trunk => file:///build/git-2.30.2/t/trash%20directory.t9141-git-svn-multiple-branches/svnrepo/project/tags_A/4.0, 11 -Found branch parent: (refs/remotes/origin/tags/4.0) a91bca00c6dccef482ac293a2c7587b6cffd5224 +Found branch parent: (refs/remotes/origin/tags/4.0) e1a7f30a78e73c436c1955a5e3e8fda5285fe5da Following parent with do_switch Successfully followed parent -r12 = cf49e6d0d845682ee008cc6389bdac3efc1d40e1 (refs/remotes/origin/tags/4.0) +r12 = b8b39e548926c5e4fecd3044ffd64d28e005fa65 (refs/remotes/origin/tags/4.0) M a.file -r13 = 564e5eac0b5bef52a199d3b6ce7b78a484b5f6a5 (refs/remotes/origin/first) +r13 = 6572dd00998204be5b6d240aeee9c9463b66788c (refs/remotes/origin/first) Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9141-git-svn-multiple-branches/svnrepo/project/b_one/first => file:///build/git-2.30.2/t/trash%20directory.t9141-git-svn-multiple-branches/svnrepo/project/tags_B/v5, 13 -Found branch parent: (refs/remotes/origin/tags/v5) 564e5eac0b5bef52a199d3b6ce7b78a484b5f6a5 +Found branch parent: (refs/remotes/origin/tags/v5) 6572dd00998204be5b6d240aeee9c9463b66788c Following parent with do_switch Successfully followed parent -r14 = a7842f3b046e21af34f7ed9262ef0f71b549fe56 (refs/remotes/origin/tags/v5) +r14 = 3e9f568bfd0b5ca82073d91761e10e776090daa9 (refs/remotes/origin/tags/v5) M a.file -r15 = 5355d215fec105e4ba1ee8c8c56f39dc46fb3c30 (refs/remotes/origin/second) +r15 = f44d06c094bcdcb84e3dd8c09de39225c9266be7 (refs/remotes/origin/second) Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9141-git-svn-multiple-branches/svnrepo/project/b_one/second => file:///build/git-2.30.2/t/trash%20directory.t9141-git-svn-multiple-branches/svnrepo/project/tags_B/v6, 15 -Found branch parent: (refs/remotes/origin/tags/v6) 5355d215fec105e4ba1ee8c8c56f39dc46fb3c30 +Found branch parent: (refs/remotes/origin/tags/v6) f44d06c094bcdcb84e3dd8c09de39225c9266be7 Following parent with do_switch Successfully followed parent -r16 = e8ab8e97344226c7f85d47092de9710b365aaf4b (refs/remotes/origin/tags/v6) +r16 = 7c1ee72ed577c14c66f9911730ea30f5257bdbe9 (refs/remotes/origin/tags/v6) M a.file -r17 = 294deae632f7147153414d7a5f5e00e74ae2355c (refs/remotes/origin/1) +r17 = 27a4846648c71454535738d82f86586cb2ff89ba (refs/remotes/origin/1) Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9141-git-svn-multiple-branches/svnrepo/project/b_two/1 => file:///build/git-2.30.2/t/trash%20directory.t9141-git-svn-multiple-branches/svnrepo/project/tags_B/v7, 17 -Found branch parent: (refs/remotes/origin/tags/v7) 294deae632f7147153414d7a5f5e00e74ae2355c +Found branch parent: (refs/remotes/origin/tags/v7) 27a4846648c71454535738d82f86586cb2ff89ba Following parent with do_switch Successfully followed parent -r18 = 04dfff456ca994209c73ba176e821954d207fcad (refs/remotes/origin/tags/v7) +r18 = 63f22c0cf7c3f37a984de1420bd8ca5524a190b5 (refs/remotes/origin/tags/v7) M a.file -r19 = f1b54e2a0d3f8b1dafb919c88a408f4f223b60f8 (refs/remotes/origin/2) +r19 = 361091f42dba86873a4c316300f0a2d6247f679d (refs/remotes/origin/2) Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9141-git-svn-multiple-branches/svnrepo/project/b_two/2 => file:///build/git-2.30.2/t/trash%20directory.t9141-git-svn-multiple-branches/svnrepo/project/tags_B/v8, 19 -Found branch parent: (refs/remotes/origin/tags/v8) f1b54e2a0d3f8b1dafb919c88a408f4f223b60f8 +Found branch parent: (refs/remotes/origin/tags/v8) 361091f42dba86873a4c316300f0a2d6247f679d Following parent with do_switch Successfully followed parent -r20 = 3d5afbdbfbce1d400292f7ec671e53a33972a39f (refs/remotes/origin/tags/v8) +r20 = e0bddbde9f51a87ef45841c76f6f0939224342de (refs/remotes/origin/tags/v8) Checked out HEAD: file:///build/git-2.30.2/t/trash%20directory.t9141-git-svn-multiple-branches/svnrepo/project/trunk r10 -564e5eac0b5bef52a199d3b6ce7b78a484b5f6a5 -5355d215fec105e4ba1ee8c8c56f39dc46fb3c30 -294deae632f7147153414d7a5f5e00e74ae2355c -f1b54e2a0d3f8b1dafb919c88a408f4f223b60f8 -959955caac1718b64116655352a263d1cdc9a8a9 -e964768528c35da3b9c84603b2f5260f242a488e -86027e8e0a0546e6f9b57a293ff81671eaf86df9 -cf49e6d0d845682ee008cc6389bdac3efc1d40e1 -a7842f3b046e21af34f7ed9262ef0f71b549fe56 -e8ab8e97344226c7f85d47092de9710b365aaf4b -04dfff456ca994209c73ba176e821954d207fcad -3d5afbdbfbce1d400292f7ec671e53a33972a39f +6572dd00998204be5b6d240aeee9c9463b66788c +f44d06c094bcdcb84e3dd8c09de39225c9266be7 +27a4846648c71454535738d82f86586cb2ff89ba +361091f42dba86873a4c316300f0a2d6247f679d +de352abd0d59cdae7f8d0b258bd8fe6b34df56fa +6447043f6c5201b8cf4e1e6733222456fd426762 +0f3717ea9093109d2f6ae0012add5a00b7d4dea8 +b8b39e548926c5e4fecd3044ffd64d28e005fa65 +3e9f568bfd0b5ca82073d91761e10e776090daa9 +7c1ee72ed577c14c66f9911730ea30f5257bdbe9 +63f22c0cf7c3f37a984de1420bd8ca5524a190b5 +e0bddbde9f51a87ef45841c76f6f0939224342de ok 2 - clone multiple branch and tag paths expecting success of 9141.3 'Multiple branch or tag paths require -d': @@ -405531,40 +405362,40 @@ Copying file:///build/git-2.30.2/t/trash%20directory.t9141-git-svn-multiple-branches/svnrepo/project/trunk at r10 to file:///build/git-2.30.2/t/trash%20directory.t9141-git-svn-multiple-branches/svnrepo/project/b_one/New1... Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9141-git-svn-multiple-branches/svnrepo/project/trunk => file:///build/git-2.30.2/t/trash%20directory.t9141-git-svn-multiple-branches/svnrepo/project/b_one/New1, 10 -Found branch parent: (refs/remotes/origin/New1) a91bca00c6dccef482ac293a2c7587b6cffd5224 +Found branch parent: (refs/remotes/origin/New1) e1a7f30a78e73c436c1955a5e3e8fda5285fe5da Following parent with do_switch Successfully followed parent -r21 = 1c140cf024e143c399ce19999d2899b191a07e89 (refs/remotes/origin/New1) +r21 = 2b86527ddc4732c2e1262243cb10fcea13e47fe1 (refs/remotes/origin/New1) Updating '.': A b_one/New1 A b_one/New1/a.file Updated to revision 21. Copying file:///build/git-2.30.2/t/trash%20directory.t9141-git-svn-multiple-branches/svnrepo/project/trunk at r10 to file:///build/git-2.30.2/t/trash%20directory.t9141-git-svn-multiple-branches/svnrepo/project/b_two/New2... Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9141-git-svn-multiple-branches/svnrepo/project/trunk => file:///build/git-2.30.2/t/trash%20directory.t9141-git-svn-multiple-branches/svnrepo/project/b_two/New2, 10 -Found branch parent: (refs/remotes/origin/New2) a91bca00c6dccef482ac293a2c7587b6cffd5224 +Found branch parent: (refs/remotes/origin/New2) e1a7f30a78e73c436c1955a5e3e8fda5285fe5da Following parent with do_switch Successfully followed parent -r22 = e10f3c82aa6d1b006437686c0e1107bca8d9810f (refs/remotes/origin/New2) +r22 = b4d64eceb5641eaa3cd675bf522dfb0b13cbb3d7 (refs/remotes/origin/New2) Updating '.': A b_two/New2 A b_two/New2/a.file Updated to revision 22. Copying file:///build/git-2.30.2/t/trash%20directory.t9141-git-svn-multiple-branches/svnrepo/project/trunk at r10 to file:///build/git-2.30.2/t/trash%20directory.t9141-git-svn-multiple-branches/svnrepo/project/tags_A/Tag1... Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9141-git-svn-multiple-branches/svnrepo/project/trunk => file:///build/git-2.30.2/t/trash%20directory.t9141-git-svn-multiple-branches/svnrepo/project/tags_A/Tag1, 10 -Found branch parent: (refs/remotes/origin/tags/Tag1) a91bca00c6dccef482ac293a2c7587b6cffd5224 +Found branch parent: (refs/remotes/origin/tags/Tag1) e1a7f30a78e73c436c1955a5e3e8fda5285fe5da Following parent with do_switch Successfully followed parent -r23 = 16a9208e32fdeb2a1845be0c5d1eb9194eaffde0 (refs/remotes/origin/tags/Tag1) +r23 = 59b7852d427b6c016d4b61d766ec2ea6d757d56a (refs/remotes/origin/tags/Tag1) Updating '.': A tags_A/Tag1 A tags_A/Tag1/a.file Updated to revision 23. Copying file:///build/git-2.30.2/t/trash%20directory.t9141-git-svn-multiple-branches/svnrepo/project/trunk at r10 to file:///build/git-2.30.2/t/trash%20directory.t9141-git-svn-multiple-branches/svnrepo/project/tags_B/Tag2... Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9141-git-svn-multiple-branches/svnrepo/project/trunk => file:///build/git-2.30.2/t/trash%20directory.t9141-git-svn-multiple-branches/svnrepo/project/tags_B/Tag2, 10 -Found branch parent: (refs/remotes/origin/tags/Tag2) a91bca00c6dccef482ac293a2c7587b6cffd5224 +Found branch parent: (refs/remotes/origin/tags/Tag2) e1a7f30a78e73c436c1955a5e3e8fda5285fe5da Following parent with do_switch Successfully followed parent -r24 = 0a33a25255ecb70553a5df8585706012a3e080b0 (refs/remotes/origin/tags/Tag2) +r24 = 03ca895d57539032b1dc5d8d4cbfe28e0c157792 (refs/remotes/origin/tags/Tag2) Updating '.': A tags_B/Tag2 A tags_B/Tag2/a.file @@ -405639,8 +405470,8 @@ hint: git branch -m Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9147-git-svn-include-paths/g/.git/ A qqq/test_qqq.txt -r1 = 7f38849d78d71d9ca1cdc3c3629ca8a0b8a8099a (refs/remotes/git-svn) -r2 = ed3dc09dfef563f1bc99af60a037b6f5db125929 (refs/remotes/git-svn) +r1 = 7a5da8c545ac7e3c826dcb8d4fcfc557e6883dad (refs/remotes/git-svn) +r2 = 1ae711dd065956925600d25f7b78b4b826beef11 (refs/remotes/git-svn) Checked out HEAD: file:///build/git-2.30.2/t/trash%20directory.t9147-git-svn-include-paths/svnrepo r2 ok 2 - clone an SVN repository with filter to include qqq directory @@ -405665,8 +405496,8 @@ hint: git branch -m Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9147-git-svn-include-paths/c/.git/ A qqq/test_qqq.txt -r1 = 7f38849d78d71d9ca1cdc3c3629ca8a0b8a8099a (refs/remotes/git-svn) -r2 = ed3dc09dfef563f1bc99af60a037b6f5db125929 (refs/remotes/git-svn) +r1 = 7a5da8c545ac7e3c826dcb8d4fcfc557e6883dad (refs/remotes/git-svn) +r2 = 1ae711dd065956925600d25f7b78b4b826beef11 (refs/remotes/git-svn) Checked out HEAD: file:///build/git-2.30.2/t/trash%20directory.t9147-git-svn-include-paths/svnrepo r2 ok 3 - init+fetch an SVN repository with included qqq directory @@ -405709,7 +405540,7 @@ ) M qqq/test_qqq.txt -r3 = 9b42ea231cf37a91f8e76f399cd57f96273f36e1 (refs/remotes/git-svn) +r3 = 5bcbba3b9cf93d44ce924555f540552d091ab83d (refs/remotes/git-svn) Successfully rebased and updated refs/heads/master. ok 6 - update git svn-cloned repo (config include) @@ -405724,7 +405555,7 @@ ) M qqq/test_qqq.txt -r3 = 9b42ea231cf37a91f8e76f399cd57f96273f36e1 (refs/remotes/git-svn) +r3 = 5bcbba3b9cf93d44ce924555f540552d091ab83d (refs/remotes/git-svn) Successfully rebased and updated refs/heads/master. ok 7 - update git svn-cloned repo (option include) @@ -405756,7 +405587,7 @@ rm expect expect2 ) -r4 = 936b8b9930dbe683110108b8979ea4b2b820f086 (refs/remotes/git-svn) +r4 = 960a2eed9a71c3b0aa7f26e28b119c752d29ba79 (refs/remotes/git-svn) Successfully rebased and updated refs/heads/master. ok 9 - update git svn-cloned repo (config include) @@ -405770,7 +405601,7 @@ rm expect expect2 ) -r4 = 936b8b9930dbe683110108b8979ea4b2b820f086 (refs/remotes/git-svn) +r4 = 960a2eed9a71c3b0aa7f26e28b119c752d29ba79 (refs/remotes/git-svn) Successfully rebased and updated refs/heads/master. ok 10 - update git svn-cloned repo (option include) @@ -405805,7 +405636,7 @@ ) M qqq/test_qqq.txt -r5 = 5f6ac654bdf28bee52a010a03ed90baf50c0d1f6 (refs/remotes/git-svn) +r5 = 944083eeef9958f353a7251810091c3935ea0c5c (refs/remotes/git-svn) Successfully rebased and updated refs/heads/master. ok 12 - update git svn-cloned repo again (config include) @@ -405820,7 +405651,7 @@ ) M qqq/test_qqq.txt -r5 = 5f6ac654bdf28bee52a010a03ed90baf50c0d1f6 (refs/remotes/git-svn) +r5 = 944083eeef9958f353a7251810091c3935ea0c5c (refs/remotes/git-svn) Successfully rebased and updated refs/heads/master. ok 13 - update git svn-cloned repo again (option include) @@ -405828,6 +405659,169 @@ 1..13 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t9148-git-svn-propset.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9148-git-svn-propset/.git/ +expecting success of 9148.1 'initialize git svn': + git svn init "$svnrepo" + +ok 1 - initialize git svn + +expecting success of 9148.2 'fetch revisions from svn': + git svn fetch + + A foo + A subdir/foo_subdir + A subdir/subdir2/foo_subdir2 +r1 = 6b116bee0ff93a3976a45cb7a871f31b2bccadce (refs/remotes/git-svn) +Checked out HEAD: + file:///build/git-2.30.2/t/trash%20directory.t9148-git-svn-propset/svnrepo r1 +ok 2 - fetch revisions from svn + +expecting success of 9148.3 'add props top level': + set_props "." "foo" "svn:keywords" "FreeBSD=%H" && + git svn dcommit && + svn_cmd co "$svnrepo" svn_project && + confirm_props "." "foo" "svn:keywords" "FreeBSD=%H" && + rm -rf svn_project + +[master fee418e] testing propset + Author: A U Thor + 1 file changed, 1 insertion(+) +Committing to file:///build/git-2.30.2/t/trash%20directory.t9148-git-svn-propset/svnrepo ... + M foo +Committed r2 + M foo +r2 = 134f434e955e22e1d3a8dd47cc32d6176d31b4c9 (refs/remotes/git-svn) +No changes between fee418ec8f79983f73d89caff7ab37641f68ccaa and refs/remotes/git-svn +Resetting to the latest refs/remotes/git-svn +A svn_project/foo +A svn_project/subdir +A svn_project/subdir/foo_subdir +A svn_project/subdir/subdir2 +A svn_project/subdir/subdir2/foo_subdir2 +Checked out revision 2. +ok 3 - add props top level + +expecting success of 9148.4 'add multiple props': + set_props "." "foo" \ + "svn:keywords" "FreeBSD=%H" fbsd:nokeywords yes && + git svn dcommit && + svn_cmd co "$svnrepo" svn_project && + confirm_props "." "foo" \ + "svn:keywords" "FreeBSD=%H" fbsd:nokeywords yes && + rm -rf svn_project + +[master 12a1c49] testing propset + Author: A U Thor + 1 file changed, 1 insertion(+) +Committing to file:///build/git-2.30.2/t/trash%20directory.t9148-git-svn-propset/svnrepo ... + M foo +Committed r3 + M foo +r3 = 43ac9d928eae4c6dfc8276d84923cdbc34efc2a4 (refs/remotes/git-svn) +No changes between 12a1c497c67ee6ae093d19af97cd5b4ab40b257d and refs/remotes/git-svn +Resetting to the latest refs/remotes/git-svn +A svn_project/foo +A svn_project/subdir +A svn_project/subdir/foo_subdir +A svn_project/subdir/subdir2 +A svn_project/subdir/subdir2/foo_subdir2 +Checked out revision 3. +ok 4 - add multiple props + +expecting success of 9148.5 'add props subdir': + set_props "." "$foo_subdir2" svn:keywords "FreeBSD=%H" && + git svn dcommit && + svn_cmd co "$svnrepo" svn_project && + confirm_props "." "$foo_subdir2" "svn:keywords" "FreeBSD=%H" && + rm -rf svn_project + +[master 30c95a2] testing propset + Author: A U Thor + 1 file changed, 1 insertion(+) +Committing to file:///build/git-2.30.2/t/trash%20directory.t9148-git-svn-propset/svnrepo ... + M subdir/subdir2/foo_subdir2 +Committed r4 + M subdir/subdir2/foo_subdir2 +r4 = b97082d34fd4f92a627b676542462570133dd7ca (refs/remotes/git-svn) +No changes between 30c95a25a338ba260457390b3a4c3313adaa06c4 and refs/remotes/git-svn +Resetting to the latest refs/remotes/git-svn +A svn_project/foo +A svn_project/subdir +A svn_project/subdir/foo_subdir +A svn_project/subdir/subdir2 +A svn_project/subdir/subdir2/foo_subdir2 +Checked out revision 4. +ok 5 - add props subdir + +expecting success of 9148.6 'add props relative': + set_props "subdir/subdir2" "../foo_subdir" \ + svn:keywords "FreeBSD=%H" && + git svn dcommit && + svn_cmd co "$svnrepo" svn_project && + confirm_props "subdir/subdir2" "../foo_subdir" \ + svn:keywords "FreeBSD=%H" && + rm -rf svn_project + +[master 8cd8653] testing propset + Author: A U Thor + 1 file changed, 1 insertion(+) +Committing to file:///build/git-2.30.2/t/trash%20directory.t9148-git-svn-propset/svnrepo ... + M subdir/foo_subdir +Committed r5 + M subdir/foo_subdir +r5 = ef715849046bcd79fd38ce681120843be507fbdd (refs/remotes/git-svn) +No changes between 8cd86539d3a483b5fa0a27ae1a4ab63a85643260 and refs/remotes/git-svn +Resetting to the latest refs/remotes/git-svn +A svn_project/foo +A svn_project/subdir +A svn_project/subdir/foo_subdir +A svn_project/subdir/subdir2 +A svn_project/subdir/subdir2/foo_subdir2 +Checked out revision 5. +ok 6 - add props relative + +# passed all 6 test(s) +1..6 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t9150-svk-mergetickets.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9150-svk-mergetickets/.git/ +expecting success of 9150.1 'load svk depot': + svnadmin load -q '/build/git-2.30.2/t/trash directory.t9150-svk-mergetickets/svnrepo' < '/build/git-2.30.2/t/t9150/svk-merge.dump' && + git svn init --minimize-url -R svkmerge --rewrite-root=http://svn.example.org -T trunk -b branches 'file:///build/git-2.30.2/t/trash directory.t9150-svk-mergetickets/svnrepo' && + git svn fetch --all + +r1 = b53c4e1a175ef8929e6e4aab56280e58a0de64a8 (refs/remotes/origin/trunk) + A Makefile +r2 = 90f5e8071f5b77e35b17e90dec357e5c88edec7f (refs/remotes/origin/trunk) +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9150-svk-mergetickets/svnrepo/trunk => file:///build/git-2.30.2/t/trash%20directory.t9150-svk-mergetickets/svnrepo/branches/left, 2 +Found branch parent: (refs/remotes/origin/left) 90f5e8071f5b77e35b17e90dec357e5c88edec7f +Following parent with do_switch +Successfully followed parent +r3 = 79d9656e5bf2f11fc8ec4e9a20e1cea4615a760a (refs/remotes/origin/left) + M Makefile +r4 = 86c978a5a9e208309128c39af65ada54e20c81ab (refs/remotes/origin/left) + M Makefile +r5 = 242969651859ed31ccc35c99fab280c17353acd2 (refs/remotes/origin/trunk) + M Makefile +r6 = 9682859fd9aa34c6573af588d38b75aaaeaa1918 (refs/remotes/origin/left) + M Makefile +Found merge parent (svk:merge ticket): 9682859fd9aa34c6573af588d38b75aaaeaa1918 +r7 = 8f305e8c49bb2f343a16bd4f0bd3386700698bf5 (refs/remotes/origin/trunk) +Checked out HEAD: + file:///build/git-2.30.2/t/trash%20directory.t9150-svk-mergetickets/svnrepo/trunk r7 +ok 1 - load svk depot + +expecting success of 9150.2 'svk merges were represented coming in': + [ 2 -eq 2 ] + +ok 2 - svk merges were represented coming in + +# passed all 2 test(s) +1..2 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t9146-git-svn-empty-dirs.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9146-git-svn-empty-dirs/.git/ expecting success of 9146.1 'initialize repo': @@ -405865,19 +405859,19 @@ hint: git branch -m Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9146-git-svn-empty-dirs/cloned/.git/ W: +empty_dir: a -r1 = 084690e37e27d175639298cf1b769a05e0cad6bb (refs/remotes/git-svn) +r1 = 48d319c95ffe8e3d3b0c14a66d8c0850f1175d20 (refs/remotes/git-svn) W: +empty_dir: b -r2 = 0cd47760409d204405a8057e33de3ae04a2728e3 (refs/remotes/git-svn) +r2 = 735d8da6b56ef853aed05b08079480cea4386032 (refs/remotes/git-svn) W: +empty_dir: c -r3 = 0afcdc9f3bc36388c7e3b0818c3482f33a34f6bf (refs/remotes/git-svn) +r3 = b0b8c29e390886a94feedf32c507afddf7692d23 (refs/remotes/git-svn) W: +empty_dir: d -r4 = af78ec4dac7199ac9ecaf4b7d3d46381d895a63e (refs/remotes/git-svn) +r4 = a0b34c0182f8ec342574c21b2809da3a0f1def72 (refs/remotes/git-svn) W: +empty_dir: d/e -r5 = f814ea78c86317f79685b8921e6209964736df2e (refs/remotes/git-svn) +r5 = 06764f3f2a9f6c8f5a3411c24e8e17321209595f (refs/remotes/git-svn) W: +empty_dir: d/e/f -r6 = e5daf71dad940639cfc2e389390009e03f6101ed (refs/remotes/git-svn) +r6 = 317100859a8969d0fc8681cd50828b58877f6fbe (refs/remotes/git-svn) W: +empty_dir: weird file name -r7 = a39eb7e46165206d775bf6c75a11896d5f8021d6 (refs/remotes/git-svn) +r7 = 700cb93e64a856a995ae86780bab29e74d075308 (refs/remotes/git-svn) Checked out HEAD: file:///build/git-2.30.2/t/trash%20directory.t9146-git-svn-empty-dirs/svnrepo r7 creating empty directory: a @@ -405932,19 +405926,19 @@ hint: git branch -m Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9146-git-svn-empty-dirs/cloned-no-mkdirs/.git/ W: +empty_dir: a -r1 = 084690e37e27d175639298cf1b769a05e0cad6bb (refs/remotes/git-svn) +r1 = 48d319c95ffe8e3d3b0c14a66d8c0850f1175d20 (refs/remotes/git-svn) W: +empty_dir: b -r2 = 0cd47760409d204405a8057e33de3ae04a2728e3 (refs/remotes/git-svn) +r2 = 735d8da6b56ef853aed05b08079480cea4386032 (refs/remotes/git-svn) W: +empty_dir: c -r3 = 0afcdc9f3bc36388c7e3b0818c3482f33a34f6bf (refs/remotes/git-svn) +r3 = b0b8c29e390886a94feedf32c507afddf7692d23 (refs/remotes/git-svn) W: +empty_dir: d -r4 = af78ec4dac7199ac9ecaf4b7d3d46381d895a63e (refs/remotes/git-svn) +r4 = a0b34c0182f8ec342574c21b2809da3a0f1def72 (refs/remotes/git-svn) W: +empty_dir: d/e -r5 = f814ea78c86317f79685b8921e6209964736df2e (refs/remotes/git-svn) +r5 = 06764f3f2a9f6c8f5a3411c24e8e17321209595f (refs/remotes/git-svn) W: +empty_dir: d/e/f -r6 = e5daf71dad940639cfc2e389390009e03f6101ed (refs/remotes/git-svn) +r6 = 317100859a8969d0fc8681cd50828b58877f6fbe (refs/remotes/git-svn) W: +empty_dir: weird file name -r7 = a39eb7e46165206d775bf6c75a11896d5f8021d6 (refs/remotes/git-svn) +r7 = 700cb93e64a856a995ae86780bab29e74d075308 (refs/remotes/git-svn) Checked out HEAD: file:///build/git-2.30.2/t/trash%20directory.t9146-git-svn-empty-dirs/svnrepo r7 ok 4 - option automkdirs set to false @@ -405961,7 +405955,7 @@ test -d cloned/"! !" W: +empty_dir: ! ! -r8 = ebc9936abf04d4f48b1aa89300994b41a5c6f318 (refs/remotes/git-svn) +r8 = 6548b0880250c3c8b0ad6b4dee62f33fa0fcd1aa (refs/remotes/git-svn) Successfully rebased and updated refs/heads/master. creating empty directory: ! ! ok 6 - git svn rebase creates empty directory @@ -406055,11 +406049,11 @@ hint: hint: git branch -m Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9146-git-svn-empty-dirs/trunk/.git/ -r9 = 00e0ecb60cdfa8ac79dec9029a85af19e4b1c2a0 (refs/remotes/origin/trunk) +r9 = 7c007cfb53ab596aef1388695314029a9a797f25 (refs/remotes/origin/trunk) W: +empty_dir: trunk/a -r10 = f6a3f7d14ed5ac84912083601e71385bedb578f0 (refs/remotes/origin/trunk) +r10 = c713bc2d4e767657c5aa87f08bc7a67ae8255f57 (refs/remotes/origin/trunk) W: +empty_dir: trunk/weird file name -r11 = 6dd7584499aba83ce5e41a8af8ef6370064ce788 (refs/remotes/origin/trunk) +r11 = 5aba3420d1cb36e9d4e2341ccf2eec66009d497e (refs/remotes/origin/trunk) Checked out HEAD: file:///build/git-2.30.2/t/trash%20directory.t9146-git-svn-empty-dirs/svnrepo/trunk r11 creating empty directory: a @@ -406105,30 +406099,30 @@ hint: git branch -m Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9146-git-svn-empty-dirs/removed/.git/ W: +empty_dir: a -r1 = 084690e37e27d175639298cf1b769a05e0cad6bb (refs/remotes/git-svn) +r1 = 48d319c95ffe8e3d3b0c14a66d8c0850f1175d20 (refs/remotes/git-svn) W: +empty_dir: b -r2 = 0cd47760409d204405a8057e33de3ae04a2728e3 (refs/remotes/git-svn) +r2 = 735d8da6b56ef853aed05b08079480cea4386032 (refs/remotes/git-svn) W: +empty_dir: c -r3 = 0afcdc9f3bc36388c7e3b0818c3482f33a34f6bf (refs/remotes/git-svn) +r3 = b0b8c29e390886a94feedf32c507afddf7692d23 (refs/remotes/git-svn) W: +empty_dir: d -r4 = af78ec4dac7199ac9ecaf4b7d3d46381d895a63e (refs/remotes/git-svn) +r4 = a0b34c0182f8ec342574c21b2809da3a0f1def72 (refs/remotes/git-svn) W: +empty_dir: d/e -r5 = f814ea78c86317f79685b8921e6209964736df2e (refs/remotes/git-svn) +r5 = 06764f3f2a9f6c8f5a3411c24e8e17321209595f (refs/remotes/git-svn) W: +empty_dir: d/e/f -r6 = e5daf71dad940639cfc2e389390009e03f6101ed (refs/remotes/git-svn) +r6 = 317100859a8969d0fc8681cd50828b58877f6fbe (refs/remotes/git-svn) W: +empty_dir: weird file name -r7 = a39eb7e46165206d775bf6c75a11896d5f8021d6 (refs/remotes/git-svn) +r7 = 700cb93e64a856a995ae86780bab29e74d075308 (refs/remotes/git-svn) W: +empty_dir: ! ! -r8 = ebc9936abf04d4f48b1aa89300994b41a5c6f318 (refs/remotes/git-svn) +r8 = 6548b0880250c3c8b0ad6b4dee62f33fa0fcd1aa (refs/remotes/git-svn) W: +empty_dir: trunk -r9 = 5e2f55b62d03788e1d27f4f552fd2f2ae1660bca (refs/remotes/git-svn) +r9 = 6c85d23fced4ee7ca18ba448a910f1f860732fb9 (refs/remotes/git-svn) W: +empty_dir: trunk/a -r10 = 9e2eaf2563c6f46c074baec8c038aa6c5d1319f8 (refs/remotes/git-svn) +r10 = 360a241a7cd3916932fa5eb4b9e1c64efce3f954 (refs/remotes/git-svn) W: +empty_dir: trunk/weird file name -r11 = 146cd366571636fcd5dc8e443429ade63e7e67a1 (refs/remotes/git-svn) +r11 = 9d4a221ff77c9ae68479ca56373c32ab5dca07a4 (refs/remotes/git-svn) D d W: -empty_dir: d -r12 = e660f5726db1ae2fb51ad7d6b984b8890724b3c3 (refs/remotes/git-svn) +r12 = b5b2be16cb8205d5aff0f16281407f3c5d6aff7a (refs/remotes/git-svn) Checked out HEAD: file:///build/git-2.30.2/t/trash%20directory.t9146-git-svn-empty-dirs/svnrepo r12 creating empty directory: ! ! @@ -406166,9 +406160,9 @@ Committing transaction... Committed revision 13. -HEAD is now at 084690e mkdir a +HEAD is now at 48d319c mkdir a W: +empty_dir: gz -r13 = 2b972e49c86fd27c6400c8266ffa46195806f7c9 (refs/remotes/git-svn) +r13 = e0ca5ecff8d9ff7cfbb76150a965b2b328860b3f (refs/remotes/git-svn) Successfully rebased and updated refs/heads/master. creating empty directory: gz ok 14 - git svn gc-ed files work @@ -406177,198 +406171,6 @@ 1..14 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t9150-svk-mergetickets.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9150-svk-mergetickets/.git/ -expecting success of 9150.1 'load svk depot': - svnadmin load -q '/build/git-2.30.2/t/trash directory.t9150-svk-mergetickets/svnrepo' < '/build/git-2.30.2/t/t9150/svk-merge.dump' && - git svn init --minimize-url -R svkmerge --rewrite-root=http://svn.example.org -T trunk -b branches 'file:///build/git-2.30.2/t/trash directory.t9150-svk-mergetickets/svnrepo' && - git svn fetch --all - -r1 = b53c4e1a175ef8929e6e4aab56280e58a0de64a8 (refs/remotes/origin/trunk) - A Makefile -r2 = 90f5e8071f5b77e35b17e90dec357e5c88edec7f (refs/remotes/origin/trunk) -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9150-svk-mergetickets/svnrepo/trunk => file:///build/git-2.30.2/t/trash%20directory.t9150-svk-mergetickets/svnrepo/branches/left, 2 -Found branch parent: (refs/remotes/origin/left) 90f5e8071f5b77e35b17e90dec357e5c88edec7f -Following parent with do_switch -Successfully followed parent -r3 = 79d9656e5bf2f11fc8ec4e9a20e1cea4615a760a (refs/remotes/origin/left) - M Makefile -r4 = 86c978a5a9e208309128c39af65ada54e20c81ab (refs/remotes/origin/left) - M Makefile -r5 = 242969651859ed31ccc35c99fab280c17353acd2 (refs/remotes/origin/trunk) - M Makefile -r6 = 9682859fd9aa34c6573af588d38b75aaaeaa1918 (refs/remotes/origin/left) - M Makefile -Found merge parent (svk:merge ticket): 9682859fd9aa34c6573af588d38b75aaaeaa1918 -r7 = 8f305e8c49bb2f343a16bd4f0bd3386700698bf5 (refs/remotes/origin/trunk) -Checked out HEAD: - file:///build/git-2.30.2/t/trash%20directory.t9150-svk-mergetickets/svnrepo/trunk r7 -ok 1 - load svk depot - -expecting success of 9150.2 'svk merges were represented coming in': - [ 2 -eq 2 ] - -ok 2 - svk merges were represented coming in - -# passed all 2 test(s) -1..2 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t9148-git-svn-propset.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9148-git-svn-propset/.git/ -expecting success of 9148.1 'initialize git svn': - git svn init "$svnrepo" - -ok 1 - initialize git svn - -expecting success of 9148.2 'fetch revisions from svn': - git svn fetch - - A foo - A subdir/foo_subdir - A subdir/subdir2/foo_subdir2 -r1 = 0bdd643621be4fca0e8a8c4b062e517018b4a0d5 (refs/remotes/git-svn) -Checked out HEAD: - file:///build/git-2.30.2/t/trash%20directory.t9148-git-svn-propset/svnrepo r1 -ok 2 - fetch revisions from svn - -expecting success of 9148.3 'add props top level': - set_props "." "foo" "svn:keywords" "FreeBSD=%H" && - git svn dcommit && - svn_cmd co "$svnrepo" svn_project && - confirm_props "." "foo" "svn:keywords" "FreeBSD=%H" && - rm -rf svn_project - -[master f577a64] testing propset - Author: A U Thor - 1 file changed, 1 insertion(+) -Committing to file:///build/git-2.30.2/t/trash%20directory.t9148-git-svn-propset/svnrepo ... - M foo -Committed r2 - M foo -r2 = 6d182fd83e32d3fb516a27eda642c7f450efabcd (refs/remotes/git-svn) -No changes between f577a6495d524a56c811bccee07330ba4fff17a4 and refs/remotes/git-svn -Resetting to the latest refs/remotes/git-svn -A svn_project/foo -A svn_project/subdir -A svn_project/subdir/foo_subdir -A svn_project/subdir/subdir2 -A svn_project/subdir/subdir2/foo_subdir2 -Checked out revision 2. -ok 3 - add props top level - -expecting success of 9148.4 'add multiple props': - set_props "." "foo" \ - "svn:keywords" "FreeBSD=%H" fbsd:nokeywords yes && - git svn dcommit && - svn_cmd co "$svnrepo" svn_project && - confirm_props "." "foo" \ - "svn:keywords" "FreeBSD=%H" fbsd:nokeywords yes && - rm -rf svn_project - -[master c5236f6] testing propset - Author: A U Thor - 1 file changed, 1 insertion(+) -Committing to file:///build/git-2.30.2/t/trash%20directory.t9148-git-svn-propset/svnrepo ... - M foo -Committed r3 - M foo -r3 = d30e6dd40233dd24d2342b6bbeb09a0e375c335e (refs/remotes/git-svn) -No changes between c5236f6a4de1200cb710d6c583a6b2a9eb5e9406 and refs/remotes/git-svn -Resetting to the latest refs/remotes/git-svn -A svn_project/foo -A svn_project/subdir -A svn_project/subdir/foo_subdir -A svn_project/subdir/subdir2 -A svn_project/subdir/subdir2/foo_subdir2 -Checked out revision 3. -ok 4 - add multiple props - -expecting success of 9148.5 'add props subdir': - set_props "." "$foo_subdir2" svn:keywords "FreeBSD=%H" && - git svn dcommit && - svn_cmd co "$svnrepo" svn_project && - confirm_props "." "$foo_subdir2" "svn:keywords" "FreeBSD=%H" && - rm -rf svn_project - -[master 15c7d67] testing propset - Author: A U Thor - 1 file changed, 1 insertion(+) -Committing to file:///build/git-2.30.2/t/trash%20directory.t9148-git-svn-propset/svnrepo ... - M subdir/subdir2/foo_subdir2 -Committed r4 - M subdir/subdir2/foo_subdir2 -r4 = 9860112fb552bc8bdd9165df4662af66dbca7f78 (refs/remotes/git-svn) -No changes between 15c7d6766c073937d0606d95f85a81248dbad384 and refs/remotes/git-svn -Resetting to the latest refs/remotes/git-svn -A svn_project/foo -A svn_project/subdir -A svn_project/subdir/foo_subdir -A svn_project/subdir/subdir2 -A svn_project/subdir/subdir2/foo_subdir2 -Checked out revision 4. -ok 5 - add props subdir - -expecting success of 9148.6 'add props relative': - set_props "subdir/subdir2" "../foo_subdir" \ - svn:keywords "FreeBSD=%H" && - git svn dcommit && - svn_cmd co "$svnrepo" svn_project && - confirm_props "subdir/subdir2" "../foo_subdir" \ - svn:keywords "FreeBSD=%H" && - rm -rf svn_project - -[master 0308d75] testing propset - Author: A U Thor - 1 file changed, 1 insertion(+) -Committing to file:///build/git-2.30.2/t/trash%20directory.t9148-git-svn-propset/svnrepo ... - M subdir/foo_subdir -Committed r5 - M subdir/foo_subdir -r5 = 827504896c769a55750739ec9377b117ef135bd4 (refs/remotes/git-svn) -No changes between 0308d75dd4cf36e4d5a3289b78fbf3a45d849d7a and refs/remotes/git-svn -Resetting to the latest refs/remotes/git-svn -A svn_project/foo -A svn_project/subdir -A svn_project/subdir/foo_subdir -A svn_project/subdir/subdir2 -A svn_project/subdir/subdir2/foo_subdir2 -Checked out revision 5. -ok 6 - add props relative - -# passed all 6 test(s) -1..6 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t9153-git-svn-rewrite-uuid.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9153-git-svn-rewrite-uuid/.git/ -expecting success of 9153.1 'load svn repo': - svnadmin load -q '/build/git-2.30.2/t/trash directory.t9153-git-svn-rewrite-uuid/svnrepo' < '/build/git-2.30.2/t/t9153/svn.dump' && - git svn init --minimize-url --rewrite-uuid='6cc8ada4-5932-4b4a-8242-3534ed8a3232' 'file:///build/git-2.30.2/t/trash directory.t9153-git-svn-rewrite-uuid/svnrepo' && - git svn fetch - - A foo -r1 = 941a63398c7eeef16c7a90e06c8f5e894133cb3c (refs/remotes/git-svn) - M foo -r2 = 7dd06ed031d77ae14a8eab58bdfe3aac2f6f10ef (refs/remotes/git-svn) -Checked out HEAD: - file:///build/git-2.30.2/t/trash%20directory.t9153-git-svn-rewrite-uuid/svnrepo r2 -ok 1 - load svn repo - -expecting success of 9153.2 'verify uuid': - git cat-file commit refs/remotes/git-svn~0 >actual && - grep '^git-svn-id: .*@2 6cc8ada4-5932-4b4a-8242-3534ed8a3232$' actual && - git cat-file commit refs/remotes/git-svn~1 >actual && - grep '^git-svn-id: .*@1 6cc8ada4-5932-4b4a-8242-3534ed8a3232$' actual - -git-svn-id: file:///build/git-2.30.2/t/trash%20directory.t9153-git-svn-rewrite-uuid/svnrepo@2 6cc8ada4-5932-4b4a-8242-3534ed8a3232 -git-svn-id: file:///build/git-2.30.2/t/trash%20directory.t9153-git-svn-rewrite-uuid/svnrepo@1 6cc8ada4-5932-4b4a-8242-3534ed8a3232 -ok 2 - verify uuid - -# passed all 2 test(s) -1..2 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' *** t9152-svn-empty-dirs-after-gc.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9152-svn-empty-dirs-after-gc/.git/ expecting success of 9152.1 'initialize repo': @@ -406406,19 +406208,19 @@ hint: git branch -m Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9152-svn-empty-dirs-after-gc/cloned/.git/ W: +empty_dir: a -r1 = e2a70f6d276db85bcfec4915aed9aaedb78f66fb (refs/remotes/git-svn) +r1 = 63f151c25cfa294b11d5ceafae7a9385bf65876e (refs/remotes/git-svn) W: +empty_dir: b -r2 = b33ab374d93ab73222907bb361df2a4b2e1b6d95 (refs/remotes/git-svn) +r2 = 59530087bc007c965d3bd6ba345541c17f2ba153 (refs/remotes/git-svn) W: +empty_dir: c -r3 = 2c2d5da1bc76daf880ec8ee45d698012e3b0dd10 (refs/remotes/git-svn) +r3 = 6154b1c01d0fb5d75813194776a2d0b0fb03948b (refs/remotes/git-svn) W: +empty_dir: d -r4 = 506cd789bf18e8c52487c97257bd315a741f9a7e (refs/remotes/git-svn) +r4 = aef817795083eb9bff22adb238fe0df9e943f03e (refs/remotes/git-svn) W: +empty_dir: d/e -r5 = 458995992cca2cb4cb55dd03661392ca706432e7 (refs/remotes/git-svn) +r5 = 12fb6de8c9ba224950788f1b015afdd6d260b4e3 (refs/remotes/git-svn) W: +empty_dir: d/e/f -r6 = 92f6f5be7d5f25df1adb780ea63ff726b7cd2799 (refs/remotes/git-svn) +r6 = 66edfba405cefae51d8cb1288f357807649953e2 (refs/remotes/git-svn) W: +empty_dir: weird file name -r7 = e1ed66be86e0856abb7a50e7d2d38ba274013e31 (refs/remotes/git-svn) +r7 = 1ebbecb2870a5b717d7fe48877bdfbbc47755485 (refs/remotes/git-svn) Checked out HEAD: file:///build/git-2.30.2/t/trash%20directory.t9152-svn-empty-dirs-after-gc/svnrepo r7 creating empty directory: a @@ -406466,6 +406268,35 @@ 1..4 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t9153-git-svn-rewrite-uuid.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9153-git-svn-rewrite-uuid/.git/ +expecting success of 9153.1 'load svn repo': + svnadmin load -q '/build/git-2.30.2/t/trash directory.t9153-git-svn-rewrite-uuid/svnrepo' < '/build/git-2.30.2/t/t9153/svn.dump' && + git svn init --minimize-url --rewrite-uuid='6cc8ada4-5932-4b4a-8242-3534ed8a3232' 'file:///build/git-2.30.2/t/trash directory.t9153-git-svn-rewrite-uuid/svnrepo' && + git svn fetch + + A foo +r1 = 941a63398c7eeef16c7a90e06c8f5e894133cb3c (refs/remotes/git-svn) + M foo +r2 = 7dd06ed031d77ae14a8eab58bdfe3aac2f6f10ef (refs/remotes/git-svn) +Checked out HEAD: + file:///build/git-2.30.2/t/trash%20directory.t9153-git-svn-rewrite-uuid/svnrepo r2 +ok 1 - load svn repo + +expecting success of 9153.2 'verify uuid': + git cat-file commit refs/remotes/git-svn~0 >actual && + grep '^git-svn-id: .*@2 6cc8ada4-5932-4b4a-8242-3534ed8a3232$' actual && + git cat-file commit refs/remotes/git-svn~1 >actual && + grep '^git-svn-id: .*@1 6cc8ada4-5932-4b4a-8242-3534ed8a3232$' actual + +git-svn-id: file:///build/git-2.30.2/t/trash%20directory.t9153-git-svn-rewrite-uuid/svnrepo@2 6cc8ada4-5932-4b4a-8242-3534ed8a3232 +git-svn-id: file:///build/git-2.30.2/t/trash%20directory.t9153-git-svn-rewrite-uuid/svnrepo@1 6cc8ada4-5932-4b4a-8242-3534ed8a3232 +ok 2 - verify uuid + +# passed all 2 test(s) +1..2 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t9155-git-svn-fetch-deleted-tag.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9155-git-svn-fetch-deleted-tag/.git/ expecting success of 9155.1 'setup svn repo': @@ -406545,43 +406376,43 @@ hint: git branch -m Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9155-git-svn-fetch-deleted-tag/git_project/.git/ A subdir/file -r1 = 1794b298c011d8bb21c63a4f686af521fc85a0a1 (refs/remotes/origin/trunk) -r2 = b7132b1eed1d5e89e87dab639a6321abc31522ba (refs/remotes/origin/mybranch) +r1 = 7733c50455a16391328722f5a3df8165342843a7 (refs/remotes/origin/trunk) +r2 = 7078ced1758c8c43d950909fb9e7cfefacc795d8 (refs/remotes/origin/mybranch) A trunk/subdir/file -r3 = d6be3b5f8f30dc57563ec472dd55cf413733099b (refs/remotes/origin/mybranch) +r3 = f82f1ef49c8aa8bb770abffb67364a3b9c804fef (refs/remotes/origin/mybranch) M subdir/file -r4 = beb197926d5d5058ade6e741c964085bab62dacc (refs/remotes/origin/trunk) +r4 = ce026bd68ed0b19ac224dcbe8290b6ac13894b2f (refs/remotes/origin/trunk) M trunk/subdir/file -r5 = db3a1351a4e5fab0231dc097407998aa920676ee (refs/remotes/origin/mybranch) +r5 = cf85266799f992e2995c709027bc8b2c312f1692 (refs/remotes/origin/mybranch) Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9155-git-svn-fetch-deleted-tag/svnrepo/trunk/subdir => file:///build/git-2.30.2/t/trash%20directory.t9155-git-svn-fetch-deleted-tag/svnrepo/tags/mytag, 5 Initializing parent: refs/remotes/origin/tags/mytag@5 A file -r1 = 2bee1e8e816d79013ef76a49321e777fe47299a9 (refs/remotes/origin/tags/mytag@5) +r1 = e2d2424e8e821544a4ed416f5d727e16ff832ced (refs/remotes/origin/tags/mytag@5) M file -r4 = 0e8690b05b460f840d3b6e7f994d967bd4273df7 (refs/remotes/origin/tags/mytag@5) -Found branch parent: (refs/remotes/origin/tags/mytag) 0e8690b05b460f840d3b6e7f994d967bd4273df7 +r4 = 290674dc1b4d2192a264502a378960b92d0f2f3f (refs/remotes/origin/tags/mytag@5) +Found branch parent: (refs/remotes/origin/tags/mytag) 290674dc1b4d2192a264502a378960b92d0f2f3f Following parent with do_switch Successfully followed parent -r6 = 567cb7bf165c439ef8f35268b7b3256638a0a7f4 (refs/remotes/origin/tags/mytag) +r6 = 9f5b2da2d6d2f800657d04179f7c5901fd2b57ae (refs/remotes/origin/tags/mytag) Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9155-git-svn-fetch-deleted-tag/svnrepo/branches/mybranch/trunk/subdir => file:///build/git-2.30.2/t/trash%20directory.t9155-git-svn-fetch-deleted-tag/svnrepo/tags/mytag, 5 Initializing parent: refs/remotes/origin/tags/mytag@5- branch_from: /trunk => /trunk/subdir Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9155-git-svn-fetch-deleted-tag/svnrepo/trunk/subdir => file:///build/git-2.30.2/t/trash%20directory.t9155-git-svn-fetch-deleted-tag/svnrepo/branches/mybranch/trunk/subdir, 2 Initializing parent: refs/remotes/origin/tags/mytag@2 A file -r1 = 2bee1e8e816d79013ef76a49321e777fe47299a9 (refs/remotes/origin/tags/mytag@2) -Found branch parent: (refs/remotes/origin/tags/mytag@5-) 2bee1e8e816d79013ef76a49321e777fe47299a9 +r1 = e2d2424e8e821544a4ed416f5d727e16ff832ced (refs/remotes/origin/tags/mytag@2) +Found branch parent: (refs/remotes/origin/tags/mytag@5-) e2d2424e8e821544a4ed416f5d727e16ff832ced Following parent with do_switch Successfully followed parent -r3 = 7bd4e2a8b9b28fa85ccc52c1fadc9b76829f5b5b (refs/remotes/origin/tags/mytag@5-) +r3 = 28ac886f7f28298d01c251ed29d8ae6a8e032ebb (refs/remotes/origin/tags/mytag@5-) M file -r5 = aab1b323d269de797f2426bd1dd83bb835785c9c (refs/remotes/origin/tags/mytag@5-) -Found branch parent: (refs/remotes/origin/tags/mytag) aab1b323d269de797f2426bd1dd83bb835785c9c +r5 = f884465999fb8bb8da84d4a3ef020c871f6b612f (refs/remotes/origin/tags/mytag@5-) +Found branch parent: (refs/remotes/origin/tags/mytag) f884465999fb8bb8da84d4a3ef020c871f6b612f Index mismatch: 13f9c6ca01f81b94d8eca8eba510eafa2445e890 != 343cf4718d6a013cf33cf3cea8e0dc0a8efa64dc -rereading aab1b323d269de797f2426bd1dd83bb835785c9c +rereading f884465999fb8bb8da84d4a3ef020c871f6b612f Following parent with do_switch Successfully followed parent -r8 = d4ac0f1ef13f2c463582bfd71a3da1cd70043cdf (refs/remotes/origin/tags/mytag) +r8 = ea37d5c057906755ea38094b35782b2ff258ad49 (refs/remotes/origin/tags/mytag) Checked out HEAD: file:///build/git-2.30.2/t/trash%20directory.t9155-git-svn-fetch-deleted-tag/svnrepo/trunk r4 ok 2 - fetch deleted tags from same revision with checksum error @@ -406590,6 +406421,140 @@ 1..2 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t9156-git-svn-fetch-deleted-tag-2.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9156-git-svn-fetch-deleted-tag-2/.git/ +expecting success of 9156.1 'setup svn repo': + mkdir -p import/branches && + mkdir -p import/tags && + mkdir -p import/trunk/subdir1 && + mkdir -p import/trunk/subdir2 && + mkdir -p import/trunk/subdir3 && + echo "file1" >import/trunk/subdir1/file && + echo "file2" >import/trunk/subdir2/file && + echo "file3" >import/trunk/subdir3/file && + svn_cmd import -m "import for git svn" import "$svnrepo" && + rm -rf import && + + svn_cmd co "$svnrepo/trunk" svn_project && + (cd svn_project && + echo "change1" >>subdir1/file && + echo "change2" >>subdir2/file && + echo "change3" >>subdir3/file && + svn_cmd ci -m "change" . + ) && + + svn_cmd cp -m "create mytag 1" -r2 "$svnrepo/trunk/subdir1" "$svnrepo/tags/mytag" && + svn_cmd rm -m "delete mytag 1" "$svnrepo/tags/mytag" && + svn_cmd cp -m "create mytag 2" -r2 "$svnrepo/trunk/subdir2" "$svnrepo/tags/mytag" && + svn_cmd rm -m "delete mytag 2" "$svnrepo/tags/mytag" && + svn_cmd cp -m "create mytag 3" -r2 "$svnrepo/trunk/subdir3" "$svnrepo/tags/mytag" + +Adding import/branches +Adding import/tags +Adding import/trunk +Adding import/trunk/subdir1 +Adding import/trunk/subdir1/file +Adding import/trunk/subdir2 +Adding import/trunk/subdir2/file +Adding import/trunk/subdir3 +Adding import/trunk/subdir3/file +Committing transaction... +Committed revision 1. +A svn_project/subdir1 +A svn_project/subdir1/file +A svn_project/subdir2 +A svn_project/subdir2/file +A svn_project/subdir3 +A svn_project/subdir3/file +Checked out revision 1. +Sending subdir1/file +Sending subdir2/file +Sending subdir3/file +Transmitting file data ...done +Committing transaction... +Committed revision 2. +Committing transaction... +Committed revision 3. +Committing transaction... +Committed revision 4. +Committing transaction... +Committed revision 5. +Committing transaction... +Committed revision 6. +Committing transaction... +Committed revision 7. +ok 1 - setup svn repo + +expecting success of 9156.2 'fetch deleted tags from same revision with no checksum error': + git svn init --stdlayout "$svnrepo" git_project && + cd git_project && + git svn fetch && + + git diff --exit-code master:subdir3/file origin/tags/mytag:file && + git diff --exit-code master:subdir2/file origin/tags/mytag^:file && + git diff --exit-code master:subdir1/file origin/tags/mytag^^:file + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9156-git-svn-fetch-deleted-tag-2/git_project/.git/ + A subdir1/file + A subdir2/file + A subdir3/file +r1 = 4c994840de95c027b2eb9e615b4472ce81bcb856 (refs/remotes/origin/trunk) + M subdir1/file + M subdir2/file + M subdir3/file +r2 = 335d25088676f24e20f95428058a57152139e2b4 (refs/remotes/origin/trunk) +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9156-git-svn-fetch-deleted-tag-2/svnrepo/trunk/subdir1 => file:///build/git-2.30.2/t/trash%20directory.t9156-git-svn-fetch-deleted-tag-2/svnrepo/tags/mytag, 2 +Initializing parent: refs/remotes/origin/tags/mytag@2 + A file +r1 = a6d7483db59f8739efb70ce74b31f59e477a260e (refs/remotes/origin/tags/mytag@2) + M file +r2 = cf116c690957db0928ee032cb816d957aa0caae0 (refs/remotes/origin/tags/mytag@2) +Found branch parent: (refs/remotes/origin/tags/mytag) cf116c690957db0928ee032cb816d957aa0caae0 +Following parent with do_switch +Successfully followed parent +r3 = 29d4d9e965c8ecae61d8038fbdb5758f5a0e03cb (refs/remotes/origin/tags/mytag) +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9156-git-svn-fetch-deleted-tag-2/svnrepo/trunk/subdir2 => file:///build/git-2.30.2/t/trash%20directory.t9156-git-svn-fetch-deleted-tag-2/svnrepo/tags/mytag, 2 +Initializing parent: refs/remotes/origin/tags/mytag@2- + A file +r1 = a7759af3d74de7c82a6e4af5a9590ce61d51b32b (refs/remotes/origin/tags/mytag@2-) + M file +r2 = 5d5c4f9b762456dd5462b369db89c9235fc7b63d (refs/remotes/origin/tags/mytag@2-) +Found branch parent: (refs/remotes/origin/tags/mytag) 5d5c4f9b762456dd5462b369db89c9235fc7b63d +Index mismatch: 03a4eca29b077f8b0867e84854a2c6e71eeac380 != 7745dab6988f4d78b3241eec1b66b56c15e67e83 +rereading 5d5c4f9b762456dd5462b369db89c9235fc7b63d +Following parent with do_switch +Successfully followed parent +r5 = 57dcba018623bbff6d4473b5cc74711692666815 (refs/remotes/origin/tags/mytag) +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9156-git-svn-fetch-deleted-tag-2/svnrepo/trunk/subdir3 => file:///build/git-2.30.2/t/trash%20directory.t9156-git-svn-fetch-deleted-tag-2/svnrepo/tags/mytag, 2 +Initializing parent: refs/remotes/origin/tags/mytag@2-- + A file +r1 = 541342ee3581a8acf51c0a8361a334b1aaff802c (refs/remotes/origin/tags/mytag@2--) + M file +r2 = 76767bfc172e420b2f3366acb74e368fadf2c7cd (refs/remotes/origin/tags/mytag@2--) +Found branch parent: (refs/remotes/origin/tags/mytag) 76767bfc172e420b2f3366acb74e368fadf2c7cd +Index mismatch: de577018db9919b0130637aa9ac28b5dabe70913 != 03a4eca29b077f8b0867e84854a2c6e71eeac380 +rereading 76767bfc172e420b2f3366acb74e368fadf2c7cd +Following parent with do_switch +Successfully followed parent +r7 = 331fba6725d0d3acc84574bc3baab19b90edc277 (refs/remotes/origin/tags/mytag) +Checked out HEAD: + file:///build/git-2.30.2/t/trash%20directory.t9156-git-svn-fetch-deleted-tag-2/svnrepo/trunk r2 +ok 2 - fetch deleted tags from same revision with no checksum error + +# passed all 2 test(s) +1..2 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t9154-git-svn-fancy-glob.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9154-git-svn-fancy-glob/.git/ expecting success of 9154.1 'load svn repo': @@ -406766,7 +406731,7 @@ r20 = d3a5e11772cce14223736862eaae254c6361de52 (refs/remotes/origin/left) A wham_eth Checking svn:mergeinfo changes since r20: 1 sources, 1 changed -W: svn cherry-pick ignored (/branches/left-sub:19) - missing 6 commit(s) (eg acd76c6201c8a7f1ba7539daebe82128902deb28) +W: svn cherry-pick ignored (/branches/left-sub:19) - missing 6 commit(s) (eg 4e8f83f1ab23aef5373017e90af34f1819af8cab) r21 = 26f066648b9fbb8d41953f51720855ea7b504643 (refs/remotes/origin/left) M Makefile A README @@ -406931,140 +406896,6 @@ 1..7 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t9156-git-svn-fetch-deleted-tag-2.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9156-git-svn-fetch-deleted-tag-2/.git/ -expecting success of 9156.1 'setup svn repo': - mkdir -p import/branches && - mkdir -p import/tags && - mkdir -p import/trunk/subdir1 && - mkdir -p import/trunk/subdir2 && - mkdir -p import/trunk/subdir3 && - echo "file1" >import/trunk/subdir1/file && - echo "file2" >import/trunk/subdir2/file && - echo "file3" >import/trunk/subdir3/file && - svn_cmd import -m "import for git svn" import "$svnrepo" && - rm -rf import && - - svn_cmd co "$svnrepo/trunk" svn_project && - (cd svn_project && - echo "change1" >>subdir1/file && - echo "change2" >>subdir2/file && - echo "change3" >>subdir3/file && - svn_cmd ci -m "change" . - ) && - - svn_cmd cp -m "create mytag 1" -r2 "$svnrepo/trunk/subdir1" "$svnrepo/tags/mytag" && - svn_cmd rm -m "delete mytag 1" "$svnrepo/tags/mytag" && - svn_cmd cp -m "create mytag 2" -r2 "$svnrepo/trunk/subdir2" "$svnrepo/tags/mytag" && - svn_cmd rm -m "delete mytag 2" "$svnrepo/tags/mytag" && - svn_cmd cp -m "create mytag 3" -r2 "$svnrepo/trunk/subdir3" "$svnrepo/tags/mytag" - -Adding import/branches -Adding import/tags -Adding import/trunk -Adding import/trunk/subdir1 -Adding import/trunk/subdir1/file -Adding import/trunk/subdir2 -Adding import/trunk/subdir2/file -Adding import/trunk/subdir3 -Adding import/trunk/subdir3/file -Committing transaction... -Committed revision 1. -A svn_project/subdir1 -A svn_project/subdir1/file -A svn_project/subdir2 -A svn_project/subdir2/file -A svn_project/subdir3 -A svn_project/subdir3/file -Checked out revision 1. -Sending subdir1/file -Sending subdir2/file -Sending subdir3/file -Transmitting file data ...done -Committing transaction... -Committed revision 2. -Committing transaction... -Committed revision 3. -Committing transaction... -Committed revision 4. -Committing transaction... -Committed revision 5. -Committing transaction... -Committed revision 6. -Committing transaction... -Committed revision 7. -ok 1 - setup svn repo - -expecting success of 9156.2 'fetch deleted tags from same revision with no checksum error': - git svn init --stdlayout "$svnrepo" git_project && - cd git_project && - git svn fetch && - - git diff --exit-code master:subdir3/file origin/tags/mytag:file && - git diff --exit-code master:subdir2/file origin/tags/mytag^:file && - git diff --exit-code master:subdir1/file origin/tags/mytag^^:file - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9156-git-svn-fetch-deleted-tag-2/git_project/.git/ - A subdir1/file - A subdir2/file - A subdir3/file -r1 = ea051a33aeb165d32c30e957d17bbd56fe99e125 (refs/remotes/origin/trunk) - M subdir1/file - M subdir2/file - M subdir3/file -r2 = a470d12f7f650a38b79f0d7ba6c229c29d4eeb19 (refs/remotes/origin/trunk) -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9156-git-svn-fetch-deleted-tag-2/svnrepo/trunk/subdir1 => file:///build/git-2.30.2/t/trash%20directory.t9156-git-svn-fetch-deleted-tag-2/svnrepo/tags/mytag, 2 -Initializing parent: refs/remotes/origin/tags/mytag@2 - A file -r1 = 3e61dc5ccbb0087676e94372e476160055435d79 (refs/remotes/origin/tags/mytag@2) - M file -r2 = c11e79d06616986e877cdf4fff48cc1bb04bd1d4 (refs/remotes/origin/tags/mytag@2) -Found branch parent: (refs/remotes/origin/tags/mytag) c11e79d06616986e877cdf4fff48cc1bb04bd1d4 -Following parent with do_switch -Successfully followed parent -r3 = f0ffb89267534e26041633cc06a60e96e814da50 (refs/remotes/origin/tags/mytag) -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9156-git-svn-fetch-deleted-tag-2/svnrepo/trunk/subdir2 => file:///build/git-2.30.2/t/trash%20directory.t9156-git-svn-fetch-deleted-tag-2/svnrepo/tags/mytag, 2 -Initializing parent: refs/remotes/origin/tags/mytag@2- - A file -r1 = b02c4389c3bad4c5b620d10cf6bc2ccf7f0b55c6 (refs/remotes/origin/tags/mytag@2-) - M file -r2 = e4d0db30f1c5ff10b4555c98d3e0ae7134ec8098 (refs/remotes/origin/tags/mytag@2-) -Found branch parent: (refs/remotes/origin/tags/mytag) e4d0db30f1c5ff10b4555c98d3e0ae7134ec8098 -Index mismatch: 03a4eca29b077f8b0867e84854a2c6e71eeac380 != 7745dab6988f4d78b3241eec1b66b56c15e67e83 -rereading e4d0db30f1c5ff10b4555c98d3e0ae7134ec8098 -Following parent with do_switch -Successfully followed parent -r5 = 6bc5af7772ceca5dd40da0fd04ed210cce80b407 (refs/remotes/origin/tags/mytag) -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9156-git-svn-fetch-deleted-tag-2/svnrepo/trunk/subdir3 => file:///build/git-2.30.2/t/trash%20directory.t9156-git-svn-fetch-deleted-tag-2/svnrepo/tags/mytag, 2 -Initializing parent: refs/remotes/origin/tags/mytag@2-- - A file -r1 = 7ae15915de9acfcc3d3fec1e26edf3d0b4ae9ad4 (refs/remotes/origin/tags/mytag@2--) - M file -r2 = a466e2e17ee96655c3e5f1ad0301779268148d6b (refs/remotes/origin/tags/mytag@2--) -Found branch parent: (refs/remotes/origin/tags/mytag) a466e2e17ee96655c3e5f1ad0301779268148d6b -Index mismatch: de577018db9919b0130637aa9ac28b5dabe70913 != 03a4eca29b077f8b0867e84854a2c6e71eeac380 -rereading a466e2e17ee96655c3e5f1ad0301779268148d6b -Following parent with do_switch -Successfully followed parent -r7 = 40b476efb14bf487e4d46b895dce68c311a82666 (refs/remotes/origin/tags/mytag) -Checked out HEAD: - file:///build/git-2.30.2/t/trash%20directory.t9156-git-svn-fetch-deleted-tag-2/svnrepo/trunk r2 -ok 2 - fetch deleted tags from same revision with no checksum error - -# passed all 2 test(s) -1..2 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' *** t9157-git-svn-fetch-merge.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9157-git-svn-fetch-merge/.git/ expecting success of 9157.1 'initialize source svn repo': @@ -407172,46 +407003,151 @@ git svn init -s "$svnrepo" && git svn fetch -r1 = a619093b7c9e17109ccd5ae6fc66b86172ce9c69 (refs/remotes/origin/trunk) +r1 = 2c2701f5ea7120ada7d84c661480ed0b6cd6d39d (refs/remotes/origin/trunk) A foo -r3 = 2d607e5f64360bfeb36f4f627a33570d0a49d195 (refs/remotes/origin/trunk) +r3 = d62052a9d8d6f21e98838db2c02d03e53e8c1234 (refs/remotes/origin/trunk) Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9157-git-svn-fetch-merge/svnrepo/trunk => file:///build/git-2.30.2/t/trash%20directory.t9157-git-svn-fetch-merge/svnrepo/branches/branch1, 3 -Found branch parent: (refs/remotes/origin/branch1) 2d607e5f64360bfeb36f4f627a33570d0a49d195 +Found branch parent: (refs/remotes/origin/branch1) d62052a9d8d6f21e98838db2c02d03e53e8c1234 Following parent with do_switch Successfully followed parent -r4 = b2c4f7a3b98e338ac5ea737660d43e9af670bb09 (refs/remotes/origin/branch1) +r4 = b67cf5815c0f13a5dfed31242984b9706edf9fe9 (refs/remotes/origin/branch1) A bar -r5 = bc57373b66f12ec8ce4c16af404d83c797b1c4a4 (refs/remotes/origin/trunk) +r5 = 4efdda8320b5b255c9c3aa1b8cdef9a89f4411bd (refs/remotes/origin/trunk) Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9157-git-svn-fetch-merge/svnrepo/trunk => file:///build/git-2.30.2/t/trash%20directory.t9157-git-svn-fetch-merge/svnrepo/branches/branch2, 5 -Found branch parent: (refs/remotes/origin/branch2) bc57373b66f12ec8ce4c16af404d83c797b1c4a4 +Found branch parent: (refs/remotes/origin/branch2) 4efdda8320b5b255c9c3aa1b8cdef9a89f4411bd Following parent with do_switch Successfully followed parent -r6 = de82b64555beddd347698519a93ee8114f513feb (refs/remotes/origin/branch2) +r6 = de360896cadd6804a9ba4883ed5a06643e4eb041 (refs/remotes/origin/branch2) A baz -r7 = 1b04ff8afe3e2f6b209b3ddfcf90f32a119268ed (refs/remotes/origin/branch1) +r7 = dc357418657ee3d72a56ccf365f600d7622f5b40 (refs/remotes/origin/branch1) A baz Checking svn:mergeinfo changes since r5: 1 sources, 1 changed -Found merge parent (/branches/branch1:4-7): 1b04ff8afe3e2f6b209b3ddfcf90f32a119268ed -r8 = 35a5870fe9d7e3ff612c24414df080b2ee660ec9 (refs/remotes/origin/trunk) +Found merge parent (/branches/branch1:4-7): dc357418657ee3d72a56ccf365f600d7622f5b40 +r8 = f2e4588f9bc69919129b0483d6c2144d57a577f4 (refs/remotes/origin/trunk) A baz Checking svn:mergeinfo changes since r6: 1 sources, 1 changed -Found merge parent (/branches/branch1:4-8): 1b04ff8afe3e2f6b209b3ddfcf90f32a119268ed -r9 = fd7a152400d2089e77559a92dbedda9997436be0 (refs/remotes/origin/branch2) +Found merge parent (/branches/branch1:4-8): dc357418657ee3d72a56ccf365f600d7622f5b40 +r9 = 59a2191224960b9d062b158176ebced315c0113c (refs/remotes/origin/branch2) Checking svn:mergeinfo changes since r8: 2 sources, 2 changed -Found merge parent (/branches/branch2:6-9): fd7a152400d2089e77559a92dbedda9997436be0 -r10 = a8b0e98a22850752be0949a461c3a99cc3ae85c7 (refs/remotes/origin/trunk) +Found merge parent (/branches/branch2:6-9): 59a2191224960b9d062b158176ebced315c0113c +r10 = bbae33fd32598434809dc4271dcd6a11e68ecaf6 (refs/remotes/origin/trunk) Checked out HEAD: file:///build/git-2.30.2/t/trash%20directory.t9157-git-svn-fetch-merge/svnrepo/trunk r10 ok 2 - clone svn repo expecting success of 9157.3 'verify merge commit': git rev-parse HEAD^2 -fd7a152400d2089e77559a92dbedda9997436be0 +59a2191224960b9d062b158176ebced315c0113c ok 3 - verify merge commit # passed all 3 test(s) 1..3 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t9159-git-svn-no-parent-mergeinfo.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9159-git-svn-no-parent-mergeinfo/.git/ +expecting success of 9159.1 'test handling of root commits in merge ranges': + mkdir -p init/trunk init/branches init/tags && + echo "r1" > init/trunk/file.txt && + svn_cmd import -m "initial import" init "$svnrepo" && + svn_cmd co "$svnrepo" tmp && + ( + cd tmp && + echo "r2" > trunk/file.txt && + svn_cmd commit -m "Modify file.txt on trunk" && + svn_cmd cp trunk@1 branches/a && + svn_cmd commit -m "Create branch a from trunk r1" && + svn_cmd propset svn:mergeinfo /trunk:1-2 branches/a && + svn_cmd commit -m "Fake merge of trunk r2 into branch a" && + mkdir branches/b && + echo "r5" > branches/b/file2.txt && + svn_cmd add branches/b && + svn_cmd commit -m "Create branch b from thin air" && + echo "r6" > branches/b/file2.txt && + svn_cmd commit -m "Modify file2.txt on branch b" && + svn_cmd cp branches/b@5 branches/c && + svn_cmd commit -m "Create branch c from branch b r5" && + svn_cmd propset svn:mergeinfo /branches/b:5-6 branches/c && + svn_cmd commit -m "Fake merge of branch b r6 into branch c" + ) && + git svn init -s "$svnrepo" && + git svn fetch + +Adding init/branches +Adding init/tags +Adding init/trunk +Adding init/trunk/file.txt +Committing transaction... +Committed revision 1. +A tmp/branches +A tmp/tags +A tmp/trunk +A tmp/trunk/file.txt +Checked out revision 1. +Sending trunk/file.txt +Transmitting file data .done +Committing transaction... +Committed revision 2. +A branches/a +A branches/a/file.txt +Adding branches/a +Committing transaction... +Committed revision 3. +property 'svn:mergeinfo' set on 'branches/a' +Sending branches/a +Committing transaction... +Committed revision 4. +A branches/b +A branches/b/file2.txt +Adding branches/b +Adding branches/b/file2.txt +Transmitting file data .done +Committing transaction... +Committed revision 5. +Sending branches/b/file2.txt +Transmitting file data .done +Committing transaction... +Committed revision 6. +A branches/c +A branches/c/file2.txt +Adding branches/c +Committing transaction... +Committed revision 7. +property 'svn:mergeinfo' set on 'branches/c' +Sending branches/c +Committing transaction... +Committed revision 8. + A file.txt +r1 = 548d847c4a083df9d7e63d37cbbd065fb739896f (refs/remotes/origin/trunk) + M file.txt +r2 = 5a21d7a83f3e345aee671af581acc05f225f3186 (refs/remotes/origin/trunk) +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9159-git-svn-no-parent-mergeinfo/svnrepo/trunk => file:///build/git-2.30.2/t/trash%20directory.t9159-git-svn-no-parent-mergeinfo/svnrepo/branches/a, 1 +Found branch parent: (refs/remotes/origin/a) 548d847c4a083df9d7e63d37cbbd065fb739896f +Following parent with do_switch +Successfully followed parent +r3 = 55b24537b954da549b70696793895718a92a5c72 (refs/remotes/origin/a) +Checking svn:mergeinfo changes since r3: 1 sources, 1 changed +Found merge parent (/trunk:1-2): 5a21d7a83f3e345aee671af581acc05f225f3186 +r4 = 873e7d77b92d81e43564426d0688f7ea93c7a234 (refs/remotes/origin/a) + A file2.txt +r5 = 4927c4147dffb7b0fe8c4f12eb16867ef4df256e (refs/remotes/origin/b) + M file2.txt +r6 = 9516b71eab364776e1981771680bc70d9e978397 (refs/remotes/origin/b) +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9159-git-svn-no-parent-mergeinfo/svnrepo/branches/b => file:///build/git-2.30.2/t/trash%20directory.t9159-git-svn-no-parent-mergeinfo/svnrepo/branches/c, 5 +Found branch parent: (refs/remotes/origin/c) 4927c4147dffb7b0fe8c4f12eb16867ef4df256e +Following parent with do_switch +Successfully followed parent +r7 = 431da8bae78b3a83eb6afcf04dd32af1a84679a7 (refs/remotes/origin/c) +Checking svn:mergeinfo changes since r7: 1 sources, 1 changed +Found merge parent (/branches/b:5-6): 9516b71eab364776e1981771680bc70d9e978397 +r8 = 78ccd35d0bc374687c3c750a4c53635d26cd33bf (refs/remotes/origin/c) +Checked out HEAD: + file:///build/git-2.30.2/t/trash%20directory.t9159-git-svn-no-parent-mergeinfo/svnrepo/trunk r2 +ok 1 - test handling of root commits in merge ranges + +# passed all 1 test(s) +1..1 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t9158-git-svn-mergeinfo.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9158-git-svn-mergeinfo/.git/ expecting success of 9158.1 'initialize source svn repo': @@ -407239,9 +407175,9 @@ git svn init "$svnrepo"/trunk && git svn fetch -r1 = 502926fb167954cf61eeeb22f1bc2ee1c0da514b (refs/remotes/git-svn) +r1 = b629849c8ec98e85d4600e943d53d041a3619228 (refs/remotes/git-svn) A foo -r2 = 51fce3496289767816fe94d8143bb5fb240990ef (refs/remotes/git-svn) +r2 = e8fd583b96e2dd8812effbff78bc381ddcf1515e (refs/remotes/git-svn) Checked out HEAD: file:///build/git-2.30.2/t/trash%20directory.t9158-git-svn-mergeinfo/svnrepo/trunk r2 ok 2 - clone svn repo @@ -407252,7 +407188,7 @@ git commit -m "bar" && git svn dcommit --mergeinfo="/branches/foo:1-10" -[master a935301] bar +[master 4a71b02] bar Author: A U Thor 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 bar @@ -407262,8 +407198,8 @@ A bar Checking svn:mergeinfo changes since r2: 1 sources, 1 changed Couldn't find revmap for file:///build/git-2.30.2/t/trash%20directory.t9158-git-svn-mergeinfo/svnrepo/trunk/branches/foo -r3 = 1c63ddef50393cc9eb47f103edb4e8613974191e (refs/remotes/git-svn) -No changes between a9353014a59c03aac8d401aaed095b8fb6b8ac01 and refs/remotes/git-svn +r3 = 236a033819d52cfd24cf5dbdf261072e081c5b17 (refs/remotes/git-svn) +No changes between 4a71b02ccbca632258fd71efad9bf2278cea30ef and refs/remotes/git-svn Resetting to the latest refs/remotes/git-svn ok 3 - change svn:mergeinfo @@ -407279,7 +407215,7 @@ git commit -m "baz" && git svn dcommit --mergeinfo="/branches/bar:1-10 /branches/other:3-5,8,10-11" -[master 5bd9fb2] baz +[master 2a5ceaa] baz Author: A U Thor 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 baz @@ -407290,8 +407226,8 @@ Checking svn:mergeinfo changes since r3: 2 sources, 2 changed Couldn't find revmap for file:///build/git-2.30.2/t/trash%20directory.t9158-git-svn-mergeinfo/svnrepo/trunk/branches/bar Couldn't find revmap for file:///build/git-2.30.2/t/trash%20directory.t9158-git-svn-mergeinfo/svnrepo/trunk/branches/other -r4 = 3b0abb2b6decd02d15459b07794f14469c5e4944 (refs/remotes/git-svn) -No changes between 5bd9fb27ae288f2ffb3221471146445cfbe8c03c and refs/remotes/git-svn +r4 = 923a2727526178e2351b7be89f7cd99c8acee96d (refs/remotes/git-svn) +No changes between 2a5ceaabcac6ae5d885165c6be7735999b9771e6 and refs/remotes/git-svn Resetting to the latest refs/remotes/git-svn ok 5 - change svn:mergeinfo multiline @@ -407306,109 +407242,121 @@ 1..6 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t9159-git-svn-no-parent-mergeinfo.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9159-git-svn-no-parent-mergeinfo/.git/ -expecting success of 9159.1 'test handling of root commits in merge ranges': - mkdir -p init/trunk init/branches init/tags && - echo "r1" > init/trunk/file.txt && - svn_cmd import -m "initial import" init "$svnrepo" && - svn_cmd co "$svnrepo" tmp && +*** t9163-git-svn-reset-clears-caches.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9163-git-svn-reset-clears-caches/.git/ +expecting success of 9163.1 'initialize source svn repo': + svn_cmd mkdir -m "create trunk" "$svnrepo"/trunk && + svn_cmd mkdir -m "create branches" "$svnrepo/branches" && + svn_cmd co "$svnrepo"/trunk "$SVN_TREE" && ( - cd tmp && - echo "r2" > trunk/file.txt && - svn_cmd commit -m "Modify file.txt on trunk" && - svn_cmd cp trunk@1 branches/a && - svn_cmd commit -m "Create branch a from trunk r1" && - svn_cmd propset svn:mergeinfo /trunk:1-2 branches/a && - svn_cmd commit -m "Fake merge of trunk r2 into branch a" && - mkdir branches/b && - echo "r5" > branches/b/file2.txt && - svn_cmd add branches/b && - svn_cmd commit -m "Create branch b from thin air" && - echo "r6" > branches/b/file2.txt && - svn_cmd commit -m "Modify file2.txt on branch b" && - svn_cmd cp branches/b@5 branches/c && - svn_cmd commit -m "Create branch c from branch b r5" && - svn_cmd propset svn:mergeinfo /branches/b:5-6 branches/c && - svn_cmd commit -m "Fake merge of branch b r6 into branch c" + cd "$SVN_TREE" && + touch foo && + svn_cmd add foo && + svn_cmd commit -m "a" && + svn_cmd cp -m branch "$svnrepo"/trunk "$svnrepo"/branches/branch1 && + svn_cmd switch "$svnrepo"/branches/branch1 && + touch bar && + svn_cmd add bar && + svn_cmd commit -m b && + svn_cmd switch "$svnrepo"/trunk && + touch baz && + svn_cmd add baz && + svn_cmd commit -m c && + svn_cmd up && + svn_cmd merge "$svnrepo"/branches/branch1 && + svn_cmd commit -m "m" ) && - git svn init -s "$svnrepo" && - git svn fetch - -Adding init/branches -Adding init/tags -Adding init/trunk -Adding init/trunk/file.txt + rm -rf "$SVN_TREE" + Committing transaction... Committed revision 1. -A tmp/branches -A tmp/tags -A tmp/trunk -A tmp/trunk/file.txt -Checked out revision 1. -Sending trunk/file.txt -Transmitting file data .done Committing transaction... Committed revision 2. -A branches/a -A branches/a/file.txt -Adding branches/a +Checked out revision 2. +A foo +Adding foo +Transmitting file data .done Committing transaction... Committed revision 3. -property 'svn:mergeinfo' set on 'branches/a' -Sending branches/a Committing transaction... Committed revision 4. -A branches/b -A branches/b/file2.txt -Adding branches/b -Adding branches/b/file2.txt +At revision 4. +A bar +Adding bar Transmitting file data .done Committing transaction... Committed revision 5. -Sending branches/b/file2.txt +D bar +Updated to revision 5. +A baz +Adding baz Transmitting file data .done Committing transaction... Committed revision 6. -A branches/c -A branches/c/file2.txt -Adding branches/c +Updating '.': +At revision 6. +--- Merging r4 through r6 into '.': +A bar +--- Recording mergeinfo for merge of r4 through r6 into '.': + U . +Sending . +Adding bar Committing transaction... Committed revision 7. -property 'svn:mergeinfo' set on 'branches/c' -Sending branches/c -Committing transaction... -Committed revision 8. - A file.txt -r1 = abb9e5f6f3eb330edc9011d5bf5ba530b3b84da0 (refs/remotes/origin/trunk) - M file.txt -r2 = 4cf8f20db07148c8875d01f9f86d5bc80979b66d (refs/remotes/origin/trunk) -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9159-git-svn-no-parent-mergeinfo/svnrepo/trunk => file:///build/git-2.30.2/t/trash%20directory.t9159-git-svn-no-parent-mergeinfo/svnrepo/branches/a, 1 -Found branch parent: (refs/remotes/origin/a) abb9e5f6f3eb330edc9011d5bf5ba530b3b84da0 -Following parent with do_switch -Successfully followed parent -r3 = 0e9dac159aa7fb6e39dd585a0db6b5403c266b8d (refs/remotes/origin/a) -Checking svn:mergeinfo changes since r3: 1 sources, 1 changed -Found merge parent (/trunk:1-2): 4cf8f20db07148c8875d01f9f86d5bc80979b66d -r4 = 7b316a79dcd8f80925edd387b739c2349f820d77 (refs/remotes/origin/a) - A file2.txt -r5 = 44148eb03af91f082729dfead922a768fd649d0a (refs/remotes/origin/b) - M file2.txt -r6 = 82c6a0cc4916d272dbc5bfcb5ccae9d3ece84181 (refs/remotes/origin/b) -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9159-git-svn-no-parent-mergeinfo/svnrepo/branches/b => file:///build/git-2.30.2/t/trash%20directory.t9159-git-svn-no-parent-mergeinfo/svnrepo/branches/c, 5 -Found branch parent: (refs/remotes/origin/c) 44148eb03af91f082729dfead922a768fd649d0a +ok 1 - initialize source svn repo + +expecting success of 9163.2 'fetch to merge-base (a)': + git svn init -s "$svnrepo" && + git svn fetch --revision BASE:3 + +r1 = b0bf3844e2da5c05aa2f364517d7099ba9196b16 (refs/remotes/origin/trunk) + A foo +r3 = eb91c1ad66612b4d40cf846c2c10bb18d2ae8002 (refs/remotes/origin/trunk) +Checked out HEAD: + file:///build/git-2.30.2/t/trash%20directory.t9163-git-svn-reset-clears-caches/svnrepo/trunk r3 +ok 2 - fetch to merge-base (a) + +expecting success of 9163.3 'rebase looses SVN merge (m)': + git svn rebase && + git svn fetch && + test 1 = $(git cat-file -p master|grep parent|wc -l) + + A baz +r6 = f575425f39985df1e517c2eab10490887115169f (refs/remotes/origin/trunk) + A bar +Checking svn:mergeinfo changes since r6: 1 sources, 1 changed +Couldn't find revmap for file:///build/git-2.30.2/t/trash%20directory.t9163-git-svn-reset-clears-caches/svnrepo/branches/branch1 +r7 = 8cd0cc3b21b23fd48443ac421d51ea7538ffff29 (refs/remotes/origin/trunk) + Successfully rebased and updated refs/heads/master. +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9163-git-svn-reset-clears-caches/svnrepo/trunk => file:///build/git-2.30.2/t/trash%20directory.t9163-git-svn-reset-clears-caches/svnrepo/branches/branch1, 3 +Found branch parent: (refs/remotes/origin/branch1) eb91c1ad66612b4d40cf846c2c10bb18d2ae8002 Following parent with do_switch Successfully followed parent -r7 = db2782d4edc7b1dd49d6d09f5f1700d522e181d7 (refs/remotes/origin/c) -Checking svn:mergeinfo changes since r7: 1 sources, 1 changed -Found merge parent (/branches/b:5-6): 82c6a0cc4916d272dbc5bfcb5ccae9d3ece84181 -r8 = a443858457a9c5dbe4441df3037e048e93455d2a (refs/remotes/origin/c) -Checked out HEAD: - file:///build/git-2.30.2/t/trash%20directory.t9159-git-svn-no-parent-mergeinfo/svnrepo/trunk r2 -ok 1 - test handling of root commits in merge ranges +r4 = 1bd90fb8dd3b8636352286fd17e402188ba7552c (refs/remotes/origin/branch1) + A bar +r5 = da230e0ddd8949a7c7de3edfeec70dd73470a00a (refs/remotes/origin/branch1) +ok 3 - rebase looses SVN merge (m) -# passed all 1 test(s) -1..1 +expecting success of 9163.4 'reset and fetch gets the SVN merge (m) correctly': + git svn reset -r 3 && + git reset --hard origin/trunk && + git svn fetch && + test 2 = $(git cat-file -p origin/trunk|grep parent|wc -l) + +r3 = eb91c1ad66612b4d40cf846c2c10bb18d2ae8002 (refs/remotes/origin/trunk) +HEAD is now at eb91c1a a +Index mismatch: 4d5fcadc293a348e88f777dc0920f11e7d71441c != 4e126a1a1821dd5763468eb219c1ecdb6f7f0fda +rereading eb91c1ad66612b4d40cf846c2c10bb18d2ae8002 + A baz +r6 = f575425f39985df1e517c2eab10490887115169f (refs/remotes/origin/trunk) + A bar +Checking svn:mergeinfo changes since r6: 1 sources, 1 changed +Found merge parent (/branches/branch1:4-6): da230e0ddd8949a7c7de3edfeec70dd73470a00a +r7 = f69b8d6bb59c5272a0e2beb9002134e43e2e83a5 (refs/remotes/origin/trunk) +ok 4 - reset and fetch gets the SVN merge (m) correctly + +# passed all 4 test(s) +1..4 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' *** t9160-git-svn-preserve-empty-dirs.sh *** @@ -407538,43 +407486,43 @@ hint: hint: git branch -m Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9160-git-svn-preserve-empty-dirs/git-svn-repo/.git/ -r1 = a4071ed6e86523ac11fbae1f4213e070faf372bc (refs/remotes/git-svn) +r1 = 3e99e0ea43c9d2360c712e2f85468c0e90ae31b9 (refs/remotes/git-svn) A 2/file1.txt A 2/file2.txt A 3/a/file1.txt A 3/b/file1.txt -r2 = 06e02c0625c4d7ed1bc38ea9f74e4f5cc4fafee3 (refs/remotes/git-svn) +r2 = bbe16ae818b60865b773dea37c5f68aa4bbc227f (refs/remotes/git-svn) D 4/.gitignore W: -empty_dir: 4/.gitignore -r3 = e981133a8f4972f0d68144f8497c4ec17ba503bf (refs/remotes/git-svn) +r3 = 523cbef20e5957b70e4b6c4f8a84dc3594b32eb9 (refs/remotes/git-svn) D 4/a/.gitignore W: -empty_dir: 4/a/.gitignore -r4 = f57e0eacc7cd1f40d0b217adcf2adadf744ca7c4 (refs/remotes/git-svn) +r4 = 2342ca7ed1400c1e84e51e942a0cc58b405dfc3b (refs/remotes/git-svn) D 4/a/b/.gitignore W: -empty_dir: 4/a/b/.gitignore -r5 = 0d9f25c77a0db410b1f501cab8b8e8d696fb03a2 (refs/remotes/git-svn) +r5 = 1b1b280670aa45cd374195ab78e3fe5df9b4605e (refs/remotes/git-svn) D 4/a/b/c/.gitignore A 4/a/b/c/foo W: -empty_dir: 4/a/b/c/.gitignore -r6 = 8cee1fa2bbb4968012f77d947bfa2114ff611322 (refs/remotes/git-svn) +r6 = 9b2c30dac6c4b5500e813f1fef01a500b440cc04 (refs/remotes/git-svn) D 2/file2.txt D 3/b/file1.txt D 3/b/ W: -empty_dir: 2/file2.txt W: -empty_dir: 3/b -r7 = d5800028f38d000a71a84afba565d6e431678af7 (refs/remotes/git-svn) +r7 = eea0ed2df391f81a3dc85eb3a607b383bbf47b55 (refs/remotes/git-svn) D 2/file1.txt D 3/a/file1.txt D 3/a/ W: -empty_dir: 2/file1.txt W: -empty_dir: 3/a -r8 = 56e9a3e101ee04cee7ccaa45c45692e56bf777c0 (refs/remotes/git-svn) +r8 = 2cbd507867d0d3638bab43a31854d6915371b169 (refs/remotes/git-svn) D 5/.gitignore A 5/.placeholder D 6/.gitignore W: -empty_dir: 5/.gitignore W: -empty_dir: 6/.gitignore -r9 = 57d98ef577ab1664a6ef2b305ee4ef65562400d6 (refs/remotes/git-svn) +r9 = 3a353e9ffdb7b9e67398b56e909089020c41b43c (refs/remotes/git-svn) Checked out HEAD: file:///build/git-2.30.2/t/trash%20directory.t9160-git-svn-preserve-empty-dirs/svnrepo/trunk r9 ok 2 - clone svn repo with --preserve-empty-dirs @@ -407624,7 +407572,7 @@ Turn off this advice by setting config variable advice.detachedHead to false -HEAD is now at d580002 delete non-last entry in directory +HEAD is now at eea0ed2 delete non-last entry in directory ok 6 - remove non-last entry from directory expecting success of 9160.7 'clone svn repo with --placeholder-file specified': @@ -407645,47 +407593,47 @@ hint: hint: git branch -m Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9160-git-svn-preserve-empty-dirs/git-svn-repo/.git/ -r1 = a4071ed6e86523ac11fbae1f4213e070faf372bc (refs/remotes/git-svn) +r1 = 3e99e0ea43c9d2360c712e2f85468c0e90ae31b9 (refs/remotes/git-svn) A 2/file1.txt A 2/file2.txt A 3/a/file1.txt A 3/b/file1.txt -r2 = 17541da1fd324be15d7f599f3f549739858c0bce (refs/remotes/git-svn) +r2 = 3b70a631197df4a47340d659659b14f110b9ed33 (refs/remotes/git-svn) D 4/.placeholder W: -empty_dir: 4/.placeholder -r3 = 619af15b90818e477b43e433719acd4f62c4a084 (refs/remotes/git-svn) +r3 = 163a46aaf7100cc3ccd9077b91870d137dfd01ac (refs/remotes/git-svn) D 4/a/.placeholder W: -empty_dir: 4/a/.placeholder -r4 = 699b517bd9ebb428b0069b64ed1cd21d596865a6 (refs/remotes/git-svn) +r4 = 1f645c02536cd3b1de873c497c849561e584511d (refs/remotes/git-svn) D 4/a/b/.placeholder W: -empty_dir: 4/a/b/.placeholder -r5 = aa49d953b61910578815d4514249a1150230816a (refs/remotes/git-svn) +r5 = 24ca36d3a7b13caac842a5e912f1c7ecb5ff70fc (refs/remotes/git-svn) D 4/a/b/c/.placeholder A 4/a/b/c/foo W: -empty_dir: 4/a/b/c/.placeholder -r6 = 49f6decb1077fe3db39c93219072ddf7db4f7c16 (refs/remotes/git-svn) +r6 = 1d44366d0b23903a5675d068b735242934f38335 (refs/remotes/git-svn) D 2/file2.txt D 3/b/file1.txt D 3/b/ W: -empty_dir: 2/file2.txt W: -empty_dir: 3/b -r7 = e894f53a725a19954896040a5f9fcef368caf545 (refs/remotes/git-svn) +r7 = 7a3f40565d1c3c8b92190ae3fff524cafe8d654e (refs/remotes/git-svn) D 2/file1.txt D 3/a/file1.txt D 3/a/ W: -empty_dir: 2/file1.txt W: -empty_dir: 3/a -r8 = bcf3485716a3d171ddc91c23000e5569d86e64e3 (refs/remotes/git-svn) +r8 = ac5f05e73315a7c1f74cb29338d571f93873a553 (refs/remotes/git-svn) A 5/.placeholder D 6/.placeholder -r9 = 32638f6250476ed4c7c59ef8e0a9b835e27f90fb (refs/remotes/git-svn) +r9 = 57ecda375677b3fdc8c08c97ef5f5a925abbc355 (refs/remotes/git-svn) Checked out HEAD: file:///build/git-2.30.2/t/trash%20directory.t9160-git-svn-preserve-empty-dirs/svnrepo/trunk r9 git-svn-repo/3/.placeholder +git-svn-repo/6/.placeholder/.placeholder git-svn-repo/2/.placeholder git-svn-repo/5/.placeholder git-svn-repo/1/.placeholder -git-svn-repo/6/.placeholder/.placeholder ok 7 - clone svn repo with --placeholder-file specified expecting success of 9160.8 'placeholder namespace conflict with file': @@ -407742,7 +407690,7 @@ A 1/file1.txt A 5/file1.txt W: -empty_dir: 1/.placeholder -r10 = 3940eb06bbf428e5c1a18c49f31e2ecb3b98cd0a (refs/remotes/git-svn) +r10 = 3b5845ed803a6f991b670dcb5477008cb8bae94d (refs/remotes/git-svn) Successfully rebased and updated refs/heads/master. ok 10 - second set of svn commits and rebase @@ -407788,10 +407736,10 @@ hint: hint: git branch -m Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9162-git-svn-dcommit-interactive/test-interactive/.git/ -r1 = 9fa431def220d7fef9ab265e697314debddfaf6f (refs/remotes/git-svn) +r1 = fae29c3b1d6a56a6dc252909ab773883bfe97fb0 (refs/remotes/git-svn) Checked out HEAD: file:///build/git-2.30.2/t/trash%20directory.t9162-git-svn-dcommit-interactive/svnrepo/test-interactive r1 -[master 4b237a6] foo: first commit +[master 0d7188b] foo: first commit Author: A U Thor 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 foo @@ -407799,8 +407747,8 @@ A foo Committed r2 A foo -r2 = 9931802d3bf79bdd3ad3a7af3221407cd0a71633 (refs/remotes/git-svn) -No changes between 4b237a6105dd19255f477cb8ba0149e8dc9c348f and refs/remotes/git-svn +r2 = 99afd6d5ffdc57b52dda35f66737017d0f676ac0 (refs/remotes/git-svn) +No changes between 0d7188b523cdfe4135c8b2a2b9f0bd61cb9a07ad and refs/remotes/git-svn Resetting to the latest refs/remotes/git-svn ok 1 - initialize repo @@ -407815,29 +407763,29 @@ test $(git rev-parse HEAD) = $(git rev-parse remotes/git-svn) ) -[master ad0b6da] change #1 +[master 9540076] change #1 Author: A U Thor 1 file changed, 1 insertion(+) -[master cbc424e] change #2 +[master edc891b] change #2 Author: A U Thor 1 file changed, 1 insertion(+) -[master 0a014c6] change #3 +[master a6fb467] change #3 Author: A U Thor 1 file changed, 1 insertion(+) Committing to file:///build/git-2.30.2/t/trash%20directory.t9162-git-svn-dcommit-interactive/svnrepo/test-interactive ... -commit ad0b6da237701c7c279a7c09791f29512ebda75f +commit 9540076ac9b9c533d1363c7ba9e6ce07feb573b4 Author: A U Thor Date: Fri Apr 1 13:14:15 2005 +0200 change #1 -Commit this patch to SVN? ([y]es (default)|[n]o|[q]uit|[a]ll): commit cbc424e8775f4be152345a0a7894a949372a93f1 +Commit this patch to SVN? ([y]es (default)|[n]o|[q]uit|[a]ll): commit edc891b8eb0ce4d93537f45a87a4327ccce2ee51 Author: A U Thor Date: Fri Apr 1 13:14:15 2005 +0200 change #2 -Commit this patch to SVN? ([y]es (default)|[n]o|[q]uit|[a]ll): commit 0a014c69ebbd2d1c283ca115d8230a2f935089b6 +Commit this patch to SVN? ([y]es (default)|[n]o|[q]uit|[a]ll): commit a6fb467a6706d6a848bfb5482a53d70e4b6887a9 Author: A U Thor Date: Fri Apr 1 13:14:15 2005 +0200 @@ -407846,16 +407794,16 @@ Commit this patch to SVN? ([y]es (default)|[n]o|[q]uit|[a]ll): M foo Committed r3 M foo -r3 = a28b8decb8e8de160a5bbd59201e0533dd3d0896 (refs/remotes/git-svn) +r3 = 5b3fe321e85dbe3d22de2e2fe942e92009355cbc (refs/remotes/git-svn) M foo Committed r4 M foo -r4 = 4ccc40a3fda174b34723331b2f159b4ae4a12d20 (refs/remotes/git-svn) +r4 = 2d3935d2f8bf2c78626559197cf9f070853ca60e (refs/remotes/git-svn) M foo Committed r5 M foo -r5 = e2902a192f246ccfa6d22fa36f5e59ae9a674059 (refs/remotes/git-svn) -No changes between 0a014c69ebbd2d1c283ca115d8230a2f935089b6 and refs/remotes/git-svn +r5 = a316cd402b19a761722ac771df08c94f9e0dc671 (refs/remotes/git-svn) +No changes between a6fb467a6706d6a848bfb5482a53d70e4b6887a9 and refs/remotes/git-svn Resetting to the latest refs/remotes/git-svn ok 2 - answers: y [\n] yes @@ -407871,35 +407819,35 @@ git reset --hard remotes/git-svn ) -[master 4ea2963] change #1 +[master aec5b5a] change #1 Author: A U Thor 1 file changed, 1 insertion(+) -[master 74fd15d] change #2 +[master ee25ad7] change #2 Author: A U Thor 1 file changed, 1 insertion(+) -[master f0fe68a] change #3 +[master 171c5ea] change #3 Author: A U Thor 1 file changed, 1 insertion(+) Committing to file:///build/git-2.30.2/t/trash%20directory.t9162-git-svn-dcommit-interactive/svnrepo/test-interactive ... -commit 4ea2963618fc754c4d28d84b688b2e51c882467b +commit aec5b5af56dd7946f8ee680d16590f66fb8a2b35 Author: A U Thor Date: Fri Apr 1 13:14:15 2005 +0200 change #1 -Commit this patch to SVN? ([y]es (default)|[n]o|[q]uit|[a]ll): commit 74fd15d09d27a6b71610b1b0f20706b655740e2c +Commit this patch to SVN? ([y]es (default)|[n]o|[q]uit|[a]ll): commit ee25ad76152e4ec6d1f2f4d0900d176d74c53f0f Author: A U Thor Date: Fri Apr 1 13:14:15 2005 +0200 change #2 -Commit this patch to SVN? ([y]es (default)|[n]o|[q]uit|[a]ll): commit f0fe68a3efb129f12493f4c89dc74f2172ec5e49 +Commit this patch to SVN? ([y]es (default)|[n]o|[q]uit|[a]ll): commit 171c5eafcfdaa4248c6ac8de7159f600b216baca Author: A U Thor Date: Fri Apr 1 13:14:15 2005 +0200 change #3 -Commit this patch to SVN? ([y]es (default)|[n]o|[q]uit|[a]ll): HEAD is now at e2902a1 change #3 +Commit this patch to SVN? ([y]es (default)|[n]o|[q]uit|[a]ll): HEAD is now at a316cd4 change #3 ok 3 - answers: yes yes no expecting success of 9162.4 'answers: yes quit': @@ -407913,29 +407861,29 @@ git reset --hard remotes/git-svn ) -[master 4ea2963] change #1 +[master aec5b5a] change #1 Author: A U Thor 1 file changed, 1 insertion(+) -[master 74fd15d] change #2 +[master ee25ad7] change #2 Author: A U Thor 1 file changed, 1 insertion(+) -[master f0fe68a] change #3 +[master 171c5ea] change #3 Author: A U Thor 1 file changed, 1 insertion(+) Committing to file:///build/git-2.30.2/t/trash%20directory.t9162-git-svn-dcommit-interactive/svnrepo/test-interactive ... -commit 4ea2963618fc754c4d28d84b688b2e51c882467b +commit aec5b5af56dd7946f8ee680d16590f66fb8a2b35 Author: A U Thor Date: Fri Apr 1 13:14:15 2005 +0200 change #1 -Commit this patch to SVN? ([y]es (default)|[n]o|[q]uit|[a]ll): commit 74fd15d09d27a6b71610b1b0f20706b655740e2c +Commit this patch to SVN? ([y]es (default)|[n]o|[q]uit|[a]ll): commit ee25ad76152e4ec6d1f2f4d0900d176d74c53f0f Author: A U Thor Date: Fri Apr 1 13:14:15 2005 +0200 change #2 -Commit this patch to SVN? ([y]es (default)|[n]o|[q]uit|[a]ll): HEAD is now at e2902a1 change #3 +Commit this patch to SVN? ([y]es (default)|[n]o|[q]uit|[a]ll): HEAD is now at a316cd4 change #3 ok 4 - answers: yes quit expecting success of 9162.5 'answers: all': @@ -407948,17 +407896,17 @@ git reset --hard remotes/git-svn ) -[master 4ea2963] change #1 +[master aec5b5a] change #1 Author: A U Thor 1 file changed, 1 insertion(+) -[master 74fd15d] change #2 +[master ee25ad7] change #2 Author: A U Thor 1 file changed, 1 insertion(+) -[master f0fe68a] change #3 +[master 171c5ea] change #3 Author: A U Thor 1 file changed, 1 insertion(+) Committing to file:///build/git-2.30.2/t/trash%20directory.t9162-git-svn-dcommit-interactive/svnrepo/test-interactive ... -commit 4ea2963618fc754c4d28d84b688b2e51c882467b +commit aec5b5af56dd7946f8ee680d16590f66fb8a2b35 Author: A U Thor Date: Fri Apr 1 13:14:15 2005 +0200 @@ -407967,47 +407915,55 @@ Commit this patch to SVN? ([y]es (default)|[n]o|[q]uit|[a]ll): M foo Committed r6 M foo -r6 = 94af2ff0af9f1f5cf22258e1f7d2d3bd240a2962 (refs/remotes/git-svn) +r6 = c619d460eb4ed7db07f6ec74854418442e1b06ed (refs/remotes/git-svn) M foo Committed r7 M foo -r7 = 89d781f49701a3290f6c1843511632d1bdee80e1 (refs/remotes/git-svn) +r7 = cc792e9efc857c2e918dba6926e1f3e9782975e4 (refs/remotes/git-svn) M foo Committed r8 M foo -r8 = 8d52c4673d66526a032f6929034d122c0938926d (refs/remotes/git-svn) -No changes between f0fe68a3efb129f12493f4c89dc74f2172ec5e49 and refs/remotes/git-svn +r8 = 3e4f5ab58f4c8ab1fbff973360745b0281ee3866 (refs/remotes/git-svn) +No changes between 171c5eafcfdaa4248c6ac8de7159f600b216baca and refs/remotes/git-svn Resetting to the latest refs/remotes/git-svn -HEAD is now at 8d52c46 change #3 +HEAD is now at 3e4f5ab change #3 ok 5 - answers: all # passed all 5 test(s) 1..5 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t9163-git-svn-reset-clears-caches.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9163-git-svn-reset-clears-caches/.git/ -expecting success of 9163.1 'initialize source svn repo': - svn_cmd mkdir -m "create trunk" "$svnrepo"/trunk && - svn_cmd mkdir -m "create branches" "$svnrepo/branches" && +*** t9165-git-svn-fetch-merge-branch-of-branch.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9165-git-svn-fetch-merge-branch-of-branch/.git/ +expecting success of 9165.1 'initialize source svn repo': + svn_cmd mkdir -m x "$svnrepo"/trunk && + svn_cmd mkdir -m x "$svnrepo"/branches && svn_cmd co "$svnrepo"/trunk "$SVN_TREE" && ( cd "$SVN_TREE" && touch foo && svn_cmd add foo && - svn_cmd commit -m "a" && + svn_cmd commit -m "initial commit" && svn_cmd cp -m branch "$svnrepo"/trunk "$svnrepo"/branches/branch1 && svn_cmd switch "$svnrepo"/branches/branch1 && touch bar && svn_cmd add bar && - svn_cmd commit -m b && - svn_cmd switch "$svnrepo"/trunk && + svn_cmd commit -m branch1 && + svn_cmd cp -m branch "$svnrepo"/branches/branch1 "$svnrepo"/branches/branch2 && + svn_cmd switch "$svnrepo"/branches/branch2 && touch baz && svn_cmd add baz && - svn_cmd commit -m c && - svn_cmd up && - svn_cmd merge "$svnrepo"/branches/branch1 && - svn_cmd commit -m "m" + svn_cmd commit -m branch2 && + svn_cmd switch "$svnrepo"/trunk && + touch bar2 && + svn_cmd add bar2 && + svn_cmd commit -m trunk && + svn_cmd switch "$svnrepo"/branches/branch2 && + svn_cmd merge "$svnrepo"/trunk && + svn_cmd commit -m "merge trunk" && + svn_cmd switch "$svnrepo"/trunk && + svn_cmd merge --reintegrate "$svnrepo"/branches/branch2 && + svn_cmd commit -m "merge branch2" ) && rm -rf "$SVN_TREE" @@ -408029,77 +407985,210 @@ Transmitting file data .done Committing transaction... Committed revision 5. -D bar -Updated to revision 5. +Committing transaction... +Committed revision 6. +At revision 6. A baz Adding baz Transmitting file data .done Committing transaction... -Committed revision 6. -Updating '.': -At revision 6. ---- Merging r4 through r6 into '.': +Committed revision 7. +D baz +D bar +Updated to revision 7. +A bar2 +Adding bar2 +Transmitting file data .done +Committing transaction... +Committed revision 8. +D bar2 A bar ---- Recording mergeinfo for merge of r4 through r6 into '.': +A baz +Updated to revision 8. +--- Merging r4 through r8 into '.': +A bar2 +--- Recording mergeinfo for merge of r4 through r8 into '.': + U . +Sending . +Adding bar2 +Committing transaction... +Committed revision 9. +D bar +D baz + U . +Updated to revision 9. +--- Merging differences between repository URLs into '.': +A bar +A baz +--- Recording mergeinfo for merge between repository URLs into '.': U . Sending . Adding bar +Adding baz Committing transaction... -Committed revision 7. +Committed revision 10. ok 1 - initialize source svn repo -expecting success of 9163.2 'fetch to merge-base (a)': +expecting success of 9165.2 'clone svn repo': git svn init -s "$svnrepo" && - git svn fetch --revision BASE:3 + git svn fetch -r1 = 5274c4f45c9b4fd4a6538a84a60e35c009d29dc8 (refs/remotes/origin/trunk) +r1 = 913561f7e11ff47f59bbb58b611de308405586b9 (refs/remotes/origin/trunk) A foo -r3 = d20848561d1845106b8f19337188488762222f0d (refs/remotes/origin/trunk) +r3 = 11ccc145d29c5a2c8c076c2fe9bc3bb6643601d5 (refs/remotes/origin/trunk) +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9165-git-svn-fetch-merge-branch-of-branch/svnrepo/trunk => file:///build/git-2.30.2/t/trash%20directory.t9165-git-svn-fetch-merge-branch-of-branch/svnrepo/branches/branch1, 3 +Found branch parent: (refs/remotes/origin/branch1) 11ccc145d29c5a2c8c076c2fe9bc3bb6643601d5 +Following parent with do_switch +Successfully followed parent +r4 = 28c9ad000c0b895d8578ba6d1fbbf3901cb62c40 (refs/remotes/origin/branch1) + A bar +r5 = d8049abd294fc7e6fb426f0db179451a1d1722a9 (refs/remotes/origin/branch1) +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9165-git-svn-fetch-merge-branch-of-branch/svnrepo/branches/branch1 => file:///build/git-2.30.2/t/trash%20directory.t9165-git-svn-fetch-merge-branch-of-branch/svnrepo/branches/branch2, 5 +Found branch parent: (refs/remotes/origin/branch2) d8049abd294fc7e6fb426f0db179451a1d1722a9 +Following parent with do_switch +Successfully followed parent +r6 = b196b5d78a06c56635136f3629996402a4287b3c (refs/remotes/origin/branch2) + A baz +r7 = d33ef62da3c9461450d5b204e896184faa61e0e0 (refs/remotes/origin/branch2) + A bar2 +r8 = 7ac6217c5d5ea0be9be389684c409cf48751b03e (refs/remotes/origin/trunk) + A bar2 +Checking svn:mergeinfo changes since r7: 1 sources, 1 changed +Found merge parent (/trunk:4-8): 7ac6217c5d5ea0be9be389684c409cf48751b03e +r9 = 23f391eee209370ccae02a1d4c0c1eb63a6d261d (refs/remotes/origin/branch2) + A bar + A baz +Checking svn:mergeinfo changes since r8: 2 sources, 2 changed +Found merge parent (/branches/branch1:4-5): d8049abd294fc7e6fb426f0db179451a1d1722a9 +Found merge parent (/branches/branch2:6-9): 23f391eee209370ccae02a1d4c0c1eb63a6d261d +r10 = ff1e308204152287866d567f34efccf8ff86058e (refs/remotes/origin/trunk) Checked out HEAD: - file:///build/git-2.30.2/t/trash%20directory.t9163-git-svn-reset-clears-caches/svnrepo/trunk r3 -ok 2 - fetch to merge-base (a) + file:///build/git-2.30.2/t/trash%20directory.t9165-git-svn-fetch-merge-branch-of-branch/svnrepo/trunk r10 +ok 2 - clone svn repo -expecting success of 9163.3 'rebase looses SVN merge (m)': - git svn rebase && - git svn fetch && - test 1 = $(git cat-file -p master|grep parent|wc -l) +expecting success of 9165.3 'verify merge commit': x=$(git rev-parse HEAD^2) && + y=$(git rev-parse origin/branch2) && + test "x$x" = "x$y" - A baz -r6 = 7e3a82c29c05e2504b642938114028ddbc514d05 (refs/remotes/origin/trunk) +ok 3 - verify merge commit + +# passed all 3 test(s) +1..3 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t9167-git-svn-cmd-branch-subproject.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9167-git-svn-cmd-branch-subproject/.git/ +skipping test t9167 altogether +1..0 # SKIP skip all tests in t9167 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t9166-git-svn-fetch-merge-branch-of-branch2.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9166-git-svn-fetch-merge-branch-of-branch2/.git/ +expecting success of 9166.1 'initialize source svn repo': + svn_cmd mkdir -m x "$svnrepo"/trunk && + svn_cmd mkdir -m x "$svnrepo"/branches && + svn_cmd co "$svnrepo"/trunk "$SVN_TREE" && + ( + cd "$SVN_TREE" && + touch foo && + svn_cmd add foo && + svn_cmd commit -m "initial commit" && + svn_cmd cp -m branch "$svnrepo"/trunk "$svnrepo"/branches/branch1 && + svn_cmd switch "$svnrepo"/branches/branch1 && + touch bar && + svn_cmd add bar && + svn_cmd commit -m branch1 && + svn_cmd cp -m branch "$svnrepo"/branches/branch1 "$svnrepo"/branches/branch2 && + svn_cmd switch "$svnrepo"/branches/branch2 && + touch baz && + svn_cmd add baz && + svn_cmd commit -m branch2 && + svn_cmd switch "$svnrepo"/trunk && + svn_cmd merge --reintegrate "$svnrepo"/branches/branch2 && + svn_cmd commit -m "merge branch2" + ) && + rm -rf "$SVN_TREE" + +Committing transaction... +Committed revision 1. +Committing transaction... +Committed revision 2. +Checked out revision 2. +A foo +Adding foo +Transmitting file data .done +Committing transaction... +Committed revision 3. +Committing transaction... +Committed revision 4. +At revision 4. +A bar +Adding bar +Transmitting file data .done +Committing transaction... +Committed revision 5. +Committing transaction... +Committed revision 6. +At revision 6. +A baz +Adding baz +Transmitting file data .done +Committing transaction... +Committed revision 7. +D baz +D bar +Updated to revision 7. +--- Merging differences between repository URLs into '.': +A bar +A baz +--- Recording mergeinfo for merge between repository URLs into '.': + U . +Sending . +Adding bar +Adding baz +Committing transaction... +Committed revision 8. +ok 1 - initialize source svn repo + +expecting success of 9166.2 'clone svn repo': + git svn init -s "$svnrepo" && + git svn fetch + +r1 = 519315176d7910e46f65ff22b4c4ec3578d43ddd (refs/remotes/origin/trunk) + A foo +r3 = 98e941345a89e7a83fbb0c208b5194d96ffb9ae2 (refs/remotes/origin/trunk) +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9166-git-svn-fetch-merge-branch-of-branch2/svnrepo/trunk => file:///build/git-2.30.2/t/trash%20directory.t9166-git-svn-fetch-merge-branch-of-branch2/svnrepo/branches/branch1, 3 +Found branch parent: (refs/remotes/origin/branch1) 98e941345a89e7a83fbb0c208b5194d96ffb9ae2 +Following parent with do_switch +Successfully followed parent +r4 = e9405c9dc507a3beca0183c6262045b242212d35 (refs/remotes/origin/branch1) A bar -Checking svn:mergeinfo changes since r6: 1 sources, 1 changed -Couldn't find revmap for file:///build/git-2.30.2/t/trash%20directory.t9163-git-svn-reset-clears-caches/svnrepo/branches/branch1 -r7 = 211aa638972883c032a4197871969d24b44edf24 (refs/remotes/origin/trunk) - Successfully rebased and updated refs/heads/master. -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9163-git-svn-reset-clears-caches/svnrepo/trunk => file:///build/git-2.30.2/t/trash%20directory.t9163-git-svn-reset-clears-caches/svnrepo/branches/branch1, 3 -Found branch parent: (refs/remotes/origin/branch1) d20848561d1845106b8f19337188488762222f0d +r5 = 1a01ddc4b9a49f8415cb9ed98b648656e3ab33d0 (refs/remotes/origin/branch1) +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9166-git-svn-fetch-merge-branch-of-branch2/svnrepo/branches/branch1 => file:///build/git-2.30.2/t/trash%20directory.t9166-git-svn-fetch-merge-branch-of-branch2/svnrepo/branches/branch2, 5 +Found branch parent: (refs/remotes/origin/branch2) 1a01ddc4b9a49f8415cb9ed98b648656e3ab33d0 Following parent with do_switch Successfully followed parent -r4 = 455da9d82f7125625e75f493d26172da5c3f488f (refs/remotes/origin/branch1) +r6 = 7bc8de7b1ef234da37c876305b290c749fffbbf0 (refs/remotes/origin/branch2) + A baz +r7 = 2f0fc8cc8fe2a9ab3ecfabeb8eeb90f399265b92 (refs/remotes/origin/branch2) A bar -r5 = 1396fc4088b9828cb490a81e2307300ac5d80ee0 (refs/remotes/origin/branch1) -ok 3 - rebase looses SVN merge (m) + A baz +Checking svn:mergeinfo changes since r3: 2 sources, 2 changed +Found merge parent (/branches/branch1:4-5): 1a01ddc4b9a49f8415cb9ed98b648656e3ab33d0 +Found merge parent (/branches/branch2:6-7): 2f0fc8cc8fe2a9ab3ecfabeb8eeb90f399265b92 +r8 = 1ea291f37e5564b9e430f4cb7ef3258d6a1de3cc (refs/remotes/origin/trunk) +Checked out HEAD: + file:///build/git-2.30.2/t/trash%20directory.t9166-git-svn-fetch-merge-branch-of-branch2/svnrepo/trunk r8 +ok 2 - clone svn repo -expecting success of 9163.4 'reset and fetch gets the SVN merge (m) correctly': - git svn reset -r 3 && - git reset --hard origin/trunk && - git svn fetch && - test 2 = $(git cat-file -p origin/trunk|grep parent|wc -l) +expecting success of 9166.3 'verify merge commit': x=$(git rev-parse HEAD^2) && + y=$(git rev-parse origin/branch2) && + test "x$x" = "x$y" -r3 = d20848561d1845106b8f19337188488762222f0d (refs/remotes/origin/trunk) -HEAD is now at d208485 a -Index mismatch: 4d5fcadc293a348e88f777dc0920f11e7d71441c != 4e126a1a1821dd5763468eb219c1ecdb6f7f0fda -rereading d20848561d1845106b8f19337188488762222f0d - A baz -r6 = 7e3a82c29c05e2504b642938114028ddbc514d05 (refs/remotes/origin/trunk) - A bar -Checking svn:mergeinfo changes since r6: 1 sources, 1 changed -Found merge parent (/branches/branch1:4-6): 1396fc4088b9828cb490a81e2307300ac5d80ee0 -r7 = 2c2ce01c4c9f9105c0cb5bb8c6a7580e22afc80c (refs/remotes/origin/trunk) -ok 4 - reset and fetch gets the SVN merge (m) correctly +ok 3 - verify merge commit -# passed all 4 test(s) -1..4 +# passed all 3 test(s) +1..3 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' *** t9161-git-svn-mergeinfo-push.sh *** @@ -408192,7 +408281,7 @@ A b2file Checking svn:mergeinfo changes since r7: 1 sources, 1 changed Found merge parent (/branches/svnb2:3,8): 84bbe81d8ea6bf01b0b2d76500ebb543c24e77ce -r13 = 606f10ecb9888f159e7499d2c1e09324114f74a0 (refs/remotes/origin/svnb1) +r13 = d2f8343615a9d632e834ae1c91ed4431db3b560e (refs/remotes/origin/svnb1) No changes between 66a6acda4e96f059e230d6c59661f3ce468c62c1 and refs/remotes/origin/svnb1 Resetting to the latest refs/remotes/origin/svnb1 ok 2 - propagate merge information @@ -408208,7 +408297,7 @@ git svn dcommit Merging: -606f10e Merge remote-tracking branch 'origin/svnb2' into HEAD +d2f8343 Merge remote-tracking branch 'origin/svnb2' into HEAD virtual origin/svnb3 found 1 common ancestor: 5de1c85 Base commit @@ -408222,8 +408311,8 @@ A b3file Checking svn:mergeinfo changes since r13: 2 sources, 1 changed Found merge parent (/branches/svnb3:4,9): c791806cb99acbefffed2c53022f96244f6a8a53 -r14 = dbd61154d7d427ae865fbc76341ac8ccf56006db (refs/remotes/origin/svnb1) -No changes between 31f03a5c8f8c69a42aea4ba4bf93f3f14966db0c and refs/remotes/origin/svnb1 +r14 = c8ba3963e346e5f73fd4f1a434163f15a6037f37 (refs/remotes/origin/svnb1) +No changes between b992b13dfeba577b0978f7283c4502b667e14033 and refs/remotes/origin/svnb1 Resetting to the latest refs/remotes/origin/svnb1 ok 4 - merge another branch @@ -408239,7 +408328,7 @@ git svn dcommit Merging: -dbd6115 Merge remote-tracking branch 'origin/svnb3' into HEAD +c8ba396 Merge remote-tracking branch 'origin/svnb3' into HEAD virtual origin/svnb4 found 1 common ancestor: 5de1c85 Base commit @@ -408258,8 +408347,8 @@ Checking svn:mergeinfo changes since r14: 4 sources, 2 changed Found merge parent (/branches/svnb4:5-6,10-12): 19e4d9ea9da9fa77b79be9766ed282577935bc87 Found merge parent (/branches/svnb5:6,11): 1744cb4237da7153f0532f2d6d5485f85bcc0acf -r15 = cc15273010474e1edc2c6a68d21caf7651440485 (refs/remotes/origin/svnb1) -No changes between a418db7a088f4fc08f43bebbc26e369213ff1142 and refs/remotes/origin/svnb1 +r15 = e3d5003e6cbfd66395b2c63e8e5f2a084540f5fe (refs/remotes/origin/svnb1) +No changes between 5824b65f7c0b81d65a45e18cb35c982b46063dbf and refs/remotes/origin/svnb1 Resetting to the latest refs/remotes/origin/svnb1 ok 6 - merge existing merge @@ -408282,7 +408371,7 @@ git commit -m "later b2 commit 2" && git svn dcommit -Previous HEAD position was cc15273 Merge remote-tracking branch 'origin/svnb4' into HEAD +Previous HEAD position was e3d5003 Merge remote-tracking branch 'origin/svnb4' into HEAD HEAD is now at 84bbe81 b2 commit [detached HEAD 18e629a] later b2 commit Author: A U Thor @@ -408296,11 +408385,11 @@ A newb2file Committed r16 A newb2file -r16 = e2d89c9b5ce37dfd9fd9b752e1c544f33815f78d (refs/remotes/origin/svnb2) +r16 = 5e1890730fd1e7bb37bc8e8a1148ff8edad820c0 (refs/remotes/origin/svnb2) A newb2file-2 Committed r17 A newb2file-2 -r17 = 30edb40cf5681ee9055b5b72f1c3c202502db7a1 (refs/remotes/origin/svnb2) +r17 = 0732902c3fe84a77f799e59cc33cf22d9e3c1a37 (refs/remotes/origin/svnb2) No changes between 20354b669c3a0ee533ceaf7a04df7b8ef86bc61e and refs/remotes/origin/svnb2 Resetting to the latest refs/remotes/origin/svnb2 ok 8 - make further commits to branch @@ -408310,10 +408399,10 @@ git merge --no-ff origin/svnb2 && git svn dcommit -Previous HEAD position was 30edb40 later b2 commit 2 -HEAD is now at cc15273 Merge remote-tracking branch 'origin/svnb4' into HEAD +Previous HEAD position was 0732902 later b2 commit 2 +HEAD is now at e3d5003 Merge remote-tracking branch 'origin/svnb4' into HEAD Merging: -cc15273 Merge remote-tracking branch 'origin/svnb4' into HEAD +e3d5003 Merge remote-tracking branch 'origin/svnb4' into HEAD virtual origin/svnb2 found 1 common ancestor: 84bbe81 b2 commit @@ -408330,9 +408419,9 @@ A newb2file A newb2file-2 Checking svn:mergeinfo changes since r15: 4 sources, 1 changed -Found merge parent (/branches/svnb2:8,16-17): 30edb40cf5681ee9055b5b72f1c3c202502db7a1 -r18 = 52db826bc2d8bc2ce3c9d90df9dd00503c901cee (refs/remotes/origin/svnb1) -No changes between 681e66c034dd673d07455f6b9ecd1a2ebd4a2184 and refs/remotes/origin/svnb1 +Found merge parent (/branches/svnb2:8,16-17): 0732902c3fe84a77f799e59cc33cf22d9e3c1a37 +r18 = 8db6ff218ad5c6f7d3b5791ec7d92d1faec9822b (refs/remotes/origin/svnb1) +No changes between bb5770689bf094ac87eaaa3ba020c877f98cba58 and refs/remotes/origin/svnb1 Resetting to the latest refs/remotes/origin/svnb1 ok 9 - second forward merge @@ -408350,7 +408439,7 @@ git merge --no-ff origin/svnb1 && git svn dcommit -Previous HEAD position was 52db826 Merge remote-tracking branch 'origin/svnb2' into HEAD +Previous HEAD position was 8db6ff2 Merge remote-tracking branch 'origin/svnb2' into HEAD HEAD is now at 19e4d9e Merge remote-tracking branch 'svnb5' into HEAD Merging: 19e4d9e Merge remote-tracking branch 'svnb5' into HEAD @@ -408382,11 +408471,11 @@ A newb2file A newb2file-2 Checking svn:mergeinfo changes since r12: 4 sources, 3 changed -Found merge parent (/branches/svnb1:2-4,7-9,13-18): 52db826bc2d8bc2ce3c9d90df9dd00503c901cee -Found merge parent (/branches/svnb2:3,8,16-17): 30edb40cf5681ee9055b5b72f1c3c202502db7a1 +Found merge parent (/branches/svnb1:2-4,7-9,13-18): 8db6ff218ad5c6f7d3b5791ec7d92d1faec9822b +Found merge parent (/branches/svnb2:3,8,16-17): 0732902c3fe84a77f799e59cc33cf22d9e3c1a37 Found merge parent (/branches/svnb3:4,9): c791806cb99acbefffed2c53022f96244f6a8a53 -r19 = 5712cedf8b01510f85ca8239fe7be4df865d3bc9 (refs/remotes/origin/svnb4) -No changes between 43a663343caae9cb764ca7ed3df6c096474b5695 and refs/remotes/origin/svnb4 +r19 = 028fd5dc77bafa0938441099fb3a3e07742a4bad (refs/remotes/origin/svnb4) +No changes between 3fe1a50cef745e062f5948c694b7918312567360 and refs/remotes/origin/svnb4 Resetting to the latest refs/remotes/origin/svnb4 ok 11 - reintegration merge @@ -408407,294 +408496,36 @@ git merge origin/svnb4 && git svn dcommit -Previous HEAD position was 5712ced Merge remote-tracking branch 'origin/svnb1' into HEAD -HEAD is now at 52db826 Merge remote-tracking branch 'origin/svnb2' into HEAD -[detached HEAD 43656b7] a commit +Previous HEAD position was 028fd5d Merge remote-tracking branch 'origin/svnb1' into HEAD +HEAD is now at 8db6ff2 Merge remote-tracking branch 'origin/svnb2' into HEAD +[detached HEAD 2b12ec7] a commit Author: A U Thor 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 anotherfile Merging: -43656b7 a commit +2b12ec7 a commit virtual origin/svnb4 found 1 common ancestor: -52db826 Merge remote-tracking branch 'origin/svnb2' into HEAD +8db6ff2 Merge remote-tracking branch 'origin/svnb2' into HEAD Already up to date! Merge made by the 'recursive' strategy. Committing to file:///build/git-2.30.2/t/trash%20directory.t9161-git-svn-mergeinfo-push/svnrepo/branches/svnb1 ... A anotherfile Committed r20 A anotherfile -r20 = 393723ee450ec6b4238c689931bcf747d3f475c3 (refs/remotes/origin/svnb1) +r20 = a076b8ce0d1dfe2ddfc107d9def52cb0e1dddd48 (refs/remotes/origin/svnb1) Committed r21 No changes -3a497f45a82829555aaf0b6da7d70ba4c8c4c594~1 == 3a497f45a82829555aaf0b6da7d70ba4c8c4c594 +00a2bc944b37cd99900da70554a43128fed463f5~1 == 00a2bc944b37cd99900da70554a43128fed463f5 Checking svn:mergeinfo changes since r20: 4 sources, 1 changed -Found merge parent (/branches/svnb4:10-12,19): 5712cedf8b01510f85ca8239fe7be4df865d3bc9 -r21 = 7295c1b10ded6a4aba00e1911b7e59dcc1f7851a (refs/remotes/origin/svnb1) -No changes between 3a497f45a82829555aaf0b6da7d70ba4c8c4c594 and refs/remotes/origin/svnb1 +Found merge parent (/branches/svnb4:10-12,19): 028fd5dc77bafa0938441099fb3a3e07742a4bad +r21 = 26e2283cf400d7c25aea87cc5c65093adfd43423 (refs/remotes/origin/svnb1) +No changes between 00a2bc944b37cd99900da70554a43128fed463f5 and refs/remotes/origin/svnb1 Resetting to the latest refs/remotes/origin/svnb1 ok 13 - dcommit a merge at the top of a stack - -# passed all 13 test(s) -1..13 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t9165-git-svn-fetch-merge-branch-of-branch.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9165-git-svn-fetch-merge-branch-of-branch/.git/ -expecting success of 9165.1 'initialize source svn repo': - svn_cmd mkdir -m x "$svnrepo"/trunk && - svn_cmd mkdir -m x "$svnrepo"/branches && - svn_cmd co "$svnrepo"/trunk "$SVN_TREE" && - ( - cd "$SVN_TREE" && - touch foo && - svn_cmd add foo && - svn_cmd commit -m "initial commit" && - svn_cmd cp -m branch "$svnrepo"/trunk "$svnrepo"/branches/branch1 && - svn_cmd switch "$svnrepo"/branches/branch1 && - touch bar && - svn_cmd add bar && - svn_cmd commit -m branch1 && - svn_cmd cp -m branch "$svnrepo"/branches/branch1 "$svnrepo"/branches/branch2 && - svn_cmd switch "$svnrepo"/branches/branch2 && - touch baz && - svn_cmd add baz && - svn_cmd commit -m branch2 && - svn_cmd switch "$svnrepo"/trunk && - touch bar2 && - svn_cmd add bar2 && - svn_cmd commit -m trunk && - svn_cmd switch "$svnrepo"/branches/branch2 && - svn_cmd merge "$svnrepo"/trunk && - svn_cmd commit -m "merge trunk" && - svn_cmd switch "$svnrepo"/trunk && - svn_cmd merge --reintegrate "$svnrepo"/branches/branch2 && - svn_cmd commit -m "merge branch2" - ) && - rm -rf "$SVN_TREE" - -Committing transaction... -Committed revision 1. -Committing transaction... -Committed revision 2. -Checked out revision 2. -A foo -Adding foo -Transmitting file data .done -Committing transaction... -Committed revision 3. -Committing transaction... -Committed revision 4. -At revision 4. -A bar -Adding bar -Transmitting file data .done -Committing transaction... -Committed revision 5. -Committing transaction... -Committed revision 6. -At revision 6. -A baz -Adding baz -Transmitting file data .done -Committing transaction... -Committed revision 7. -D baz -D bar -Updated to revision 7. -A bar2 -Adding bar2 -Transmitting file data .done -Committing transaction... -Committed revision 8. -D bar2 -A bar -A baz -Updated to revision 8. ---- Merging r4 through r8 into '.': -A bar2 ---- Recording mergeinfo for merge of r4 through r8 into '.': - U . -Sending . -Adding bar2 -Committing transaction... -Committed revision 9. -D bar -D baz - U . -Updated to revision 9. ---- Merging differences between repository URLs into '.': -A bar -A baz ---- Recording mergeinfo for merge between repository URLs into '.': - U . -Sending . -Adding bar -Adding baz -Committing transaction... -Committed revision 10. -ok 1 - initialize source svn repo - -expecting success of 9165.2 'clone svn repo': - git svn init -s "$svnrepo" && - git svn fetch - -r1 = 14899fb2e1a4753aa618a81bd4c120505c290ca4 (refs/remotes/origin/trunk) - A foo -r3 = 7b790ee4bf0b75439df35ad61edde37d536354dd (refs/remotes/origin/trunk) -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9165-git-svn-fetch-merge-branch-of-branch/svnrepo/trunk => file:///build/git-2.30.2/t/trash%20directory.t9165-git-svn-fetch-merge-branch-of-branch/svnrepo/branches/branch1, 3 -Found branch parent: (refs/remotes/origin/branch1) 7b790ee4bf0b75439df35ad61edde37d536354dd -Following parent with do_switch -Successfully followed parent -r4 = 41498a8bc5569352825a3b2ec31729cab97285a1 (refs/remotes/origin/branch1) - A bar -r5 = b98806ecbf6a1d683ff98c0764f08b04f34da654 (refs/remotes/origin/branch1) -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9165-git-svn-fetch-merge-branch-of-branch/svnrepo/branches/branch1 => file:///build/git-2.30.2/t/trash%20directory.t9165-git-svn-fetch-merge-branch-of-branch/svnrepo/branches/branch2, 5 -Found branch parent: (refs/remotes/origin/branch2) b98806ecbf6a1d683ff98c0764f08b04f34da654 -Following parent with do_switch -Successfully followed parent -r6 = b9ef26035fb74a948f204d12acf270f18ebbee6d (refs/remotes/origin/branch2) - A baz -r7 = cda3571386935d4b454321cf508d648d8ce04a5f (refs/remotes/origin/branch2) - A bar2 -r8 = 022dd1d6f154430d444ee11d5c5754e4803138d7 (refs/remotes/origin/trunk) - A bar2 -Checking svn:mergeinfo changes since r7: 1 sources, 1 changed -Found merge parent (/trunk:4-8): 022dd1d6f154430d444ee11d5c5754e4803138d7 -r9 = 280215749f97df238d941340273efdd912111bb6 (refs/remotes/origin/branch2) - A bar - A baz -Checking svn:mergeinfo changes since r8: 2 sources, 2 changed -Found merge parent (/branches/branch1:4-5): b98806ecbf6a1d683ff98c0764f08b04f34da654 -Found merge parent (/branches/branch2:6-9): 280215749f97df238d941340273efdd912111bb6 -r10 = 72a51a896ede5c2cb1d1af8848ca76c5752a007b (refs/remotes/origin/trunk) -Checked out HEAD: - file:///build/git-2.30.2/t/trash%20directory.t9165-git-svn-fetch-merge-branch-of-branch/svnrepo/trunk r10 -ok 2 - clone svn repo - -expecting success of 9165.3 'verify merge commit': x=$(git rev-parse HEAD^2) && - y=$(git rev-parse origin/branch2) && - test "x$x" = "x$y" - -ok 3 - verify merge commit - -# passed all 3 test(s) -1..3 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t9167-git-svn-cmd-branch-subproject.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9167-git-svn-cmd-branch-subproject/.git/ -skipping test t9167 altogether -1..0 # SKIP skip all tests in t9167 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t9166-git-svn-fetch-merge-branch-of-branch2.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9166-git-svn-fetch-merge-branch-of-branch2/.git/ -expecting success of 9166.1 'initialize source svn repo': - svn_cmd mkdir -m x "$svnrepo"/trunk && - svn_cmd mkdir -m x "$svnrepo"/branches && - svn_cmd co "$svnrepo"/trunk "$SVN_TREE" && - ( - cd "$SVN_TREE" && - touch foo && - svn_cmd add foo && - svn_cmd commit -m "initial commit" && - svn_cmd cp -m branch "$svnrepo"/trunk "$svnrepo"/branches/branch1 && - svn_cmd switch "$svnrepo"/branches/branch1 && - touch bar && - svn_cmd add bar && - svn_cmd commit -m branch1 && - svn_cmd cp -m branch "$svnrepo"/branches/branch1 "$svnrepo"/branches/branch2 && - svn_cmd switch "$svnrepo"/branches/branch2 && - touch baz && - svn_cmd add baz && - svn_cmd commit -m branch2 && - svn_cmd switch "$svnrepo"/trunk && - svn_cmd merge --reintegrate "$svnrepo"/branches/branch2 && - svn_cmd commit -m "merge branch2" - ) && - rm -rf "$SVN_TREE" - -Committing transaction... -Committed revision 1. -Committing transaction... -Committed revision 2. -Checked out revision 2. -A foo -Adding foo -Transmitting file data .done -Committing transaction... -Committed revision 3. -Committing transaction... -Committed revision 4. -At revision 4. -A bar -Adding bar -Transmitting file data .done -Committing transaction... -Committed revision 5. -Committing transaction... -Committed revision 6. -At revision 6. -A baz -Adding baz -Transmitting file data .done -Committing transaction... -Committed revision 7. -D baz -D bar -Updated to revision 7. ---- Merging differences between repository URLs into '.': -A bar -A baz ---- Recording mergeinfo for merge between repository URLs into '.': - U . -Sending . -Adding bar -Adding baz -Committing transaction... -Committed revision 8. -ok 1 - initialize source svn repo - -expecting success of 9166.2 'clone svn repo': - git svn init -s "$svnrepo" && - git svn fetch - -r1 = b23d5a6224a106ae71ef74d153efc9b605cb4c02 (refs/remotes/origin/trunk) - A foo -r3 = 05499c8826c041c7b65e9471323e4d3ba710f3fb (refs/remotes/origin/trunk) -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9166-git-svn-fetch-merge-branch-of-branch2/svnrepo/trunk => file:///build/git-2.30.2/t/trash%20directory.t9166-git-svn-fetch-merge-branch-of-branch2/svnrepo/branches/branch1, 3 -Found branch parent: (refs/remotes/origin/branch1) 05499c8826c041c7b65e9471323e4d3ba710f3fb -Following parent with do_switch -Successfully followed parent -r4 = a85fe19d90f6a341e490fc8a6b85cca6e0eba993 (refs/remotes/origin/branch1) - A bar -r5 = 7fc171d4918982de5f1f2ae4497eaa6041ef52ab (refs/remotes/origin/branch1) -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9166-git-svn-fetch-merge-branch-of-branch2/svnrepo/branches/branch1 => file:///build/git-2.30.2/t/trash%20directory.t9166-git-svn-fetch-merge-branch-of-branch2/svnrepo/branches/branch2, 5 -Found branch parent: (refs/remotes/origin/branch2) 7fc171d4918982de5f1f2ae4497eaa6041ef52ab -Following parent with do_switch -Successfully followed parent -r6 = 017ad38a6147346d4dd251e4bced3080dc81e487 (refs/remotes/origin/branch2) - A baz -r7 = 73ada730a8e08bedf79b8e7c64aa7e709d2a037f (refs/remotes/origin/branch2) - A bar - A baz -Checking svn:mergeinfo changes since r3: 2 sources, 2 changed -Found merge parent (/branches/branch1:4-5): 7fc171d4918982de5f1f2ae4497eaa6041ef52ab -Found merge parent (/branches/branch2:6-7): 73ada730a8e08bedf79b8e7c64aa7e709d2a037f -r8 = 84193cf14d1a9dd060aa8b8be7b7e592ee3ba837 (refs/remotes/origin/trunk) -Checked out HEAD: - file:///build/git-2.30.2/t/trash%20directory.t9166-git-svn-fetch-merge-branch-of-branch2/svnrepo/trunk r8 -ok 2 - clone svn repo - -expecting success of 9166.3 'verify merge commit': x=$(git rev-parse HEAD^2) && - y=$(git rev-parse origin/branch2) && - test "x$x" = "x$y" - -ok 3 - verify merge commit - -# passed all 3 test(s) -1..3 + +# passed all 13 test(s) +1..13 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' *** t9169-git-svn-dcommit-crlf.sh *** @@ -408733,7 +408564,7 @@ hint: git branch -m Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9169-git-svn-dcommit-crlf/work/.git/ W: +empty_dir: dir -r1 = 3f8ad7992aec68dea8f1649c33149e439889556b (refs/remotes/git-svn) +r1 = 3019325982867b93cb67d6915098c8312b890410 (refs/remotes/git-svn) Checked out HEAD: file:///build/git-2.30.2/t/trash%20directory.t9169-git-svn-dcommit-crlf/svnrepo r1 creating empty directory: dir @@ -408741,8 +408572,8 @@ A foo Committed r2 A foo -r2 = ffe9cd3e67f75821eb37d709ff61bafe8c7cd049 (refs/remotes/git-svn) -No changes between b0691408132c6e929b54581650beb9964c18cb81 and refs/remotes/git-svn +r2 = c2cb435826b592ae653f18710bbd385d27d83e59 (refs/remotes/git-svn) +No changes between 6d19e51eb425ab7b68649fc7854520cf9f4363bc and refs/remotes/git-svn Resetting to the latest refs/remotes/git-svn ok 1 - setup commit repository @@ -408750,495 +408581,6 @@ 1..1 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t9164-git-svn-dcommit-concurrent.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9164-git-svn-dcommit-concurrent/.git/ -expecting success of 9164.1 'setup svn repository': - svn_cmd checkout "$svnrepo" work.svn && - ( - cd work.svn && - echo >file && echo > auto_updated_file && - svn_cmd add file auto_updated_file && - svn_cmd commit -m "initial commit" - ) && - svn_cmd checkout "$svnrepo" work-auto-commits.svn - -Checked out revision 0. -A file -A auto_updated_file -Adding auto_updated_file -Adding file -Transmitting file data ..done -Committing transaction... -Committed revision 1. -A work-auto-commits.svn/auto_updated_file -A work-auto-commits.svn/file -Checked out revision 1. -ok 1 - setup svn repository - -expecting success of 9164.2 'check if post-commit hook creates a concurrent commit': - setup_hook post-commit 1 && - ( - cd work.svn && - cp auto_updated_file au_file_saved && - echo 1 >> file && - svn_cmd commit -m "changing file" && - svn_cmd up && - ! test_cmp auto_updated_file au_file_saved - ) - -Sending file -Transmitting file data .done -Committing transaction... -Committed revision 2. -Updating '.': -U auto_updated_file -Updated to revision 3. ---- auto_updated_file 2023-04-29 16:55:40.767404396 +0000 -+++ au_file_saved 2023-04-29 16:55:40.323447461 +0000 -@@ -1,2 +1 @@ - --1657 -ok 2 - check if post-commit hook creates a concurrent commit - -expecting success of 9164.3 'check if pre-commit hook fails': - setup_hook pre-commit 2 && - ( - cd work.svn && - echo 2 >> file && - svn_cmd commit -m "changing file once again" && - echo 3 >> file && - ! svn_cmd commit -m "this commit should fail" && - svn_cmd revert file - ) - -Sending file -Transmitting file data .done -Committing transaction... -Committed revision 4. -Sending file -Transmitting file data .done -Committing transaction... -svn: E165001: Commit failed (details follow): -svn: E165001: Commit blocked by pre-commit hook (exit code 1) with no output. -Reverted 'file' -ok 3 - check if pre-commit hook fails - -expecting success of 9164.4 'dcommit error handling': - setup_hook pre-commit 2 && - next_N && git svn clone "$svnrepo" work$N.git && - ( - cd work$N.git && - echo 1 >> file && git commit -am "commit change $N.1" && - echo 2 >> file && git commit -am "commit change $N.2" && - echo 3 >> file && git commit -am "commit change $N.3" && - # should fail to dcommit 2nd and 3rd change - # but still should leave the repository in reasonable state - test_must_fail git svn dcommit && - git update-index --refresh && - git show HEAD~2 | grep -q git-svn-id && - ! git show HEAD~1 | grep -q git-svn-id && - ! git show HEAD | grep -q git-svn-id - ) - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9164-git-svn-dcommit-concurrent/work1.git/.git/ - A auto_updated_file - A file -r1 = 6f7a9904c0e74fa2a09a23a2e1eba0829ee8db20 (refs/remotes/git-svn) - M file -r2 = ea8a6f2e1010cef12574bf02592317b097d13ba5 (refs/remotes/git-svn) - M auto_updated_file -r3 = 53e618f2cbbc1d363c5a262da764477997ef0dcb (refs/remotes/git-svn) - M file -r4 = 922baa74438b4aee2051b52bdf9157e904589224 (refs/remotes/git-svn) -Checked out HEAD: - file:///build/git-2.30.2/t/trash%20directory.t9164-git-svn-dcommit-concurrent/svnrepo r4 -[master f73764e] commit change 1.1 - Author: A U Thor - 1 file changed, 1 insertion(+) -[master 7c112b9] commit change 1.2 - Author: A U Thor - 1 file changed, 1 insertion(+) -[master 529745f] commit change 1.3 - Author: A U Thor - 1 file changed, 1 insertion(+) -Committing to file:///build/git-2.30.2/t/trash%20directory.t9164-git-svn-dcommit-concurrent/svnrepo ... - M file -Committed r5 - M file -r5 = 2973030c4caaa3aa6b265053cf59ef5eae706d19 (refs/remotes/git-svn) - M file - -ERROR from SVN: -A repository hook failed: Commit blocked by pre-commit hook (exit code 1) with no output. -W: 529745f847f679015b55f90a107eb67adaebabd1 and refs/remotes/git-svn differ, using rebase: -:100644 100644 fb014dd41485c73acf40cd9548cd4cd812fee4ec e6ac0ef8373861d92d8eecf8d88e592606a70872 M file -Rebasing (1/2) Rebasing (2/2) Successfully rebased and updated refs/heads/master. -ERROR: Not all changes have been committed into SVN, however the committed -ones (if any) seem to be successfully integrated into the working tree. -Please see the above messages for details. - -ok 4 - dcommit error handling - -expecting success of 9164.5 'dcommit concurrent change in non-changed file': - setup_hook post-commit 2 && - next_N && git svn clone "$svnrepo" work$N.git && - ( - cd work$N.git && - echo 1 >> file && git commit -am "commit change $N.1" && - echo 2 >> file && git commit -am "commit change $N.2" && - echo 3 >> file && git commit -am "commit change $N.3" && - # should rebase and leave the repository in reasonable state - git svn dcommit && - git update-index --refresh && - check_contents && - git show HEAD~3 | grep -q git-svn-id && - git show HEAD~2 | grep -q git-svn-id && - git show HEAD~1 | grep -q auto-committing && - git show HEAD | grep -q git-svn-id - ) - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9164-git-svn-dcommit-concurrent/work2.git/.git/ - A auto_updated_file - A file -r1 = 6f7a9904c0e74fa2a09a23a2e1eba0829ee8db20 (refs/remotes/git-svn) - M file -r2 = ea8a6f2e1010cef12574bf02592317b097d13ba5 (refs/remotes/git-svn) - M auto_updated_file -r3 = 53e618f2cbbc1d363c5a262da764477997ef0dcb (refs/remotes/git-svn) - M file -r4 = 922baa74438b4aee2051b52bdf9157e904589224 (refs/remotes/git-svn) - M file -r5 = 2973030c4caaa3aa6b265053cf59ef5eae706d19 (refs/remotes/git-svn) -Checked out HEAD: - file:///build/git-2.30.2/t/trash%20directory.t9164-git-svn-dcommit-concurrent/svnrepo r5 -[master 820c7a6] commit change 2.1 - Author: A U Thor - 1 file changed, 1 insertion(+) -[master 0d25c67] commit change 2.2 - Author: A U Thor - 1 file changed, 1 insertion(+) -[master 0926758] commit change 2.3 - Author: A U Thor - 1 file changed, 1 insertion(+) -Committing to file:///build/git-2.30.2/t/trash%20directory.t9164-git-svn-dcommit-concurrent/svnrepo ... - M file -Committed r6 - M file -r6 = 3359c80f71dd6474c444ce555b54ad300bf1b30d (refs/remotes/git-svn) - M file -Committed r7 - M file -r7 = 8cb487635c0f5583bc3c3f97f1cd7893a0a2d782 (refs/remotes/git-svn) - M auto_updated_file -r8 = 449276836e5a5398e150503c8b23920c15ec4760 (refs/remotes/git-svn) -W: 0d25c6784a7953d79bb36cd8a18ea87ce9d4b96c and refs/remotes/git-svn differ, using rebase: -:100644 100644 5668270306d70600a1882b968c563dbddc84379b 9b2270ccd87fc10fe5822a930a1a20fb5718b45c M auto_updated_file -Rebasing (1/1) Successfully rebased and updated refs/heads/master. - M file -Committed r9 - M file -r9 = 87df6a32045bdbcf6886b05086cc437c43c9358c (refs/remotes/git-svn) -No changes between 10f4be616d986fa889301c27d1fd3e961eb72216 and refs/remotes/git-svn -Resetting to the latest refs/remotes/git-svn -Updating '.': -U file -U auto_updated_file -Updated to revision 9. -ok 5 - dcommit concurrent change in non-changed file - -expecting success of 9164.6 'dcommit concurrent non-conflicting change': - setup_hook post-commit 2 && - next_N && git svn clone "$svnrepo" work$N.git && - ( - cd work$N.git && - cat file >> auto_updated_file && - git commit -am "commit change $N.1" && - delete_first_line auto_updated_file && - git commit -am "commit change $N.2" && - delete_first_line auto_updated_file && - git commit -am "commit change $N.3" && - # should rebase and leave the repository in reasonable state - git svn dcommit && - git update-index --refresh && - check_contents && - git show HEAD~3 | grep -q git-svn-id && - git show HEAD~2 | grep -q git-svn-id && - git show HEAD~1 | grep -q auto-committing && - git show HEAD | grep -q git-svn-id - ) - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9164-git-svn-dcommit-concurrent/work3.git/.git/ - A auto_updated_file - A file -r1 = 6f7a9904c0e74fa2a09a23a2e1eba0829ee8db20 (refs/remotes/git-svn) - M file -r2 = ea8a6f2e1010cef12574bf02592317b097d13ba5 (refs/remotes/git-svn) - M auto_updated_file -r3 = 53e618f2cbbc1d363c5a262da764477997ef0dcb (refs/remotes/git-svn) - M file -r4 = 922baa74438b4aee2051b52bdf9157e904589224 (refs/remotes/git-svn) - M file -r5 = 2973030c4caaa3aa6b265053cf59ef5eae706d19 (refs/remotes/git-svn) - M file -r6 = 3359c80f71dd6474c444ce555b54ad300bf1b30d (refs/remotes/git-svn) - M file -r7 = 8cb487635c0f5583bc3c3f97f1cd7893a0a2d782 (refs/remotes/git-svn) - M auto_updated_file -r8 = 449276836e5a5398e150503c8b23920c15ec4760 (refs/remotes/git-svn) - M file -r9 = 87df6a32045bdbcf6886b05086cc437c43c9358c (refs/remotes/git-svn) -Checked out HEAD: - file:///build/git-2.30.2/t/trash%20directory.t9164-git-svn-dcommit-concurrent/svnrepo r9 -[master 2fac362] commit change 3.1 - Author: A U Thor - 1 file changed, 7 insertions(+) -[master 94d9763] commit change 3.2 - Author: A U Thor - 1 file changed, 1 deletion(-) -[master b95aa0b] commit change 3.3 - Author: A U Thor - 1 file changed, 1 deletion(-) -Committing to file:///build/git-2.30.2/t/trash%20directory.t9164-git-svn-dcommit-concurrent/svnrepo ... - M auto_updated_file -Committed r10 - M auto_updated_file -r10 = a68b910c462392e061e0e10ddb033b127ec77357 (refs/remotes/git-svn) - M auto_updated_file -Committed r11 - M auto_updated_file -r11 = 18697d52ccf4441016d9f6dea9601bfb7070980b (refs/remotes/git-svn) - M auto_updated_file -r12 = f0ddd324e08592496a82f15f731e670cce109486 (refs/remotes/git-svn) -W: 94d97632e687846e2c26e3f31b49062471087d2c and refs/remotes/git-svn differ, using rebase: -:100644 100644 9b60869061366a30586da7e37d42d652a7967587 33fe6748113fefd7999aa471a272cea3cd982e76 M auto_updated_file -Rebasing (1/1) Successfully rebased and updated refs/heads/master. - M auto_updated_file -Committed r13 - M auto_updated_file -r13 = c03a1e16c99cf6903c1d192f8b06f196cb0d0323 (refs/remotes/git-svn) -No changes between 58a7214ac9558d9dd78c6f59fa10b95613591ba4 and refs/remotes/git-svn -Resetting to the latest refs/remotes/git-svn -Updating '.': -U auto_updated_file -Updated to revision 13. -ok 6 - dcommit concurrent non-conflicting change - -expecting success of 9164.7 'dcommit --no-rebase concurrent non-conflicting change': - setup_hook post-commit 2 && - next_N && git svn clone "$svnrepo" work$N.git && - ( - cd work$N.git && - cat file >> auto_updated_file && - git commit -am "commit change $N.1" && - delete_first_line auto_updated_file && - git commit -am "commit change $N.2" && - delete_first_line auto_updated_file && - git commit -am "commit change $N.3" && - # should fail as rebase is needed - test_must_fail git svn dcommit --no-rebase && - # but should leave HEAD unchanged - git update-index --refresh && - ! git show HEAD~2 | grep -q git-svn-id && - ! git show HEAD~1 | grep -q git-svn-id && - ! git show HEAD | grep -q git-svn-id - ) - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9164-git-svn-dcommit-concurrent/work4.git/.git/ - A auto_updated_file - A file -r1 = 6f7a9904c0e74fa2a09a23a2e1eba0829ee8db20 (refs/remotes/git-svn) - M file -r2 = ea8a6f2e1010cef12574bf02592317b097d13ba5 (refs/remotes/git-svn) - M auto_updated_file -r3 = 53e618f2cbbc1d363c5a262da764477997ef0dcb (refs/remotes/git-svn) - M file -r4 = 922baa74438b4aee2051b52bdf9157e904589224 (refs/remotes/git-svn) - M file -r5 = 2973030c4caaa3aa6b265053cf59ef5eae706d19 (refs/remotes/git-svn) - M file -r6 = 3359c80f71dd6474c444ce555b54ad300bf1b30d (refs/remotes/git-svn) - M file -r7 = 8cb487635c0f5583bc3c3f97f1cd7893a0a2d782 (refs/remotes/git-svn) - M auto_updated_file -r8 = 449276836e5a5398e150503c8b23920c15ec4760 (refs/remotes/git-svn) - M file -r9 = 87df6a32045bdbcf6886b05086cc437c43c9358c (refs/remotes/git-svn) - M auto_updated_file -r10 = a68b910c462392e061e0e10ddb033b127ec77357 (refs/remotes/git-svn) - M auto_updated_file -r11 = 18697d52ccf4441016d9f6dea9601bfb7070980b (refs/remotes/git-svn) - M auto_updated_file -r12 = f0ddd324e08592496a82f15f731e670cce109486 (refs/remotes/git-svn) - M auto_updated_file -r13 = c03a1e16c99cf6903c1d192f8b06f196cb0d0323 (refs/remotes/git-svn) -Checked out HEAD: - file:///build/git-2.30.2/t/trash%20directory.t9164-git-svn-dcommit-concurrent/svnrepo r13 -[master b458752] commit change 4.1 - Author: A U Thor - 1 file changed, 7 insertions(+) -[master 4be6415] commit change 4.2 - Author: A U Thor - 1 file changed, 1 deletion(-) -[master 1b7c12d] commit change 4.3 - Author: A U Thor - 1 file changed, 1 deletion(-) -Committing to file:///build/git-2.30.2/t/trash%20directory.t9164-git-svn-dcommit-concurrent/svnrepo ... -Attempting to commit more than one change while --no-rebase is enabled. -If these changes depend on each other, re-running without --no-rebase may be required. at /build/git-2.30.2/git-svn line 896. - M auto_updated_file -Committed r14 - M auto_updated_file -r14 = f2ffd2fda69cacf2954ffc47b00fcef9beb89355 (refs/remotes/git-svn) - M auto_updated_file -Committed r15 - M auto_updated_file -r15 = 7f4ffdf8c0aa5e7c75fae9c7875f4eb79da34858 (refs/remotes/git-svn) - M auto_updated_file -r16 = f1ae746b28f45980b6c7241e6e0869f63fdf1c46 (refs/remotes/git-svn) - -ERROR from SVN: -Transaction is out of date: File '/auto_updated_file' is out of date -ERROR: Not all changes have been committed into SVN. -Please see the above messages for details. - -ok 7 - dcommit --no-rebase concurrent non-conflicting change - -expecting success of 9164.8 'dcommit fails on concurrent conflicting change': - setup_hook post-commit 1 && - next_N && git svn clone "$svnrepo" work$N.git && - ( - cd work$N.git && - echo a >> file && - git commit -am "commit change $N.1" && - echo b >> auto_updated_file && - git commit -am "commit change $N.2" && - echo c >> auto_updated_file && - git commit -am "commit change $N.3" && - test_must_fail git svn dcommit && # rebase should fail - test_must_fail git update-index --refresh - ) - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9164-git-svn-dcommit-concurrent/work5.git/.git/ - A auto_updated_file - A file -r1 = 6f7a9904c0e74fa2a09a23a2e1eba0829ee8db20 (refs/remotes/git-svn) - M file -r2 = ea8a6f2e1010cef12574bf02592317b097d13ba5 (refs/remotes/git-svn) - M auto_updated_file -r3 = 53e618f2cbbc1d363c5a262da764477997ef0dcb (refs/remotes/git-svn) - M file -r4 = 922baa74438b4aee2051b52bdf9157e904589224 (refs/remotes/git-svn) - M file -r5 = 2973030c4caaa3aa6b265053cf59ef5eae706d19 (refs/remotes/git-svn) - M file -r6 = 3359c80f71dd6474c444ce555b54ad300bf1b30d (refs/remotes/git-svn) - M file -r7 = 8cb487635c0f5583bc3c3f97f1cd7893a0a2d782 (refs/remotes/git-svn) - M auto_updated_file -r8 = 449276836e5a5398e150503c8b23920c15ec4760 (refs/remotes/git-svn) - M file -r9 = 87df6a32045bdbcf6886b05086cc437c43c9358c (refs/remotes/git-svn) - M auto_updated_file -r10 = a68b910c462392e061e0e10ddb033b127ec77357 (refs/remotes/git-svn) - M auto_updated_file -r11 = 18697d52ccf4441016d9f6dea9601bfb7070980b (refs/remotes/git-svn) - M auto_updated_file -r12 = f0ddd324e08592496a82f15f731e670cce109486 (refs/remotes/git-svn) - M auto_updated_file -r13 = c03a1e16c99cf6903c1d192f8b06f196cb0d0323 (refs/remotes/git-svn) - M auto_updated_file -r14 = f2ffd2fda69cacf2954ffc47b00fcef9beb89355 (refs/remotes/git-svn) - M auto_updated_file -r15 = 7f4ffdf8c0aa5e7c75fae9c7875f4eb79da34858 (refs/remotes/git-svn) - M auto_updated_file -r16 = f1ae746b28f45980b6c7241e6e0869f63fdf1c46 (refs/remotes/git-svn) -Checked out HEAD: - file:///build/git-2.30.2/t/trash%20directory.t9164-git-svn-dcommit-concurrent/svnrepo r16 -[master 0e1dd3e] commit change 5.1 - Author: A U Thor - 1 file changed, 1 insertion(+) -[master 58f88fb] commit change 5.2 - Author: A U Thor - 1 file changed, 1 insertion(+) -[master 788a289] commit change 5.3 - Author: A U Thor - 1 file changed, 1 insertion(+) -Committing to file:///build/git-2.30.2/t/trash%20directory.t9164-git-svn-dcommit-concurrent/svnrepo ... - M file -Committed r17 - M file -r17 = 6de52761bf92db7047f646d922e27febefcdb3a2 (refs/remotes/git-svn) - M auto_updated_file -r18 = a65fc64bb223ee79ffdd1305b26689a3def1df4c (refs/remotes/git-svn) -W: 0e1dd3ea8ba5dc985774e7eb20e07022f088fe44 and refs/remotes/git-svn differ, using rebase: -:100644 100644 e43930fd42419c8a4f8fa3e491411a7a6da8092e 0da9809dd8b6867067225be95e7a5cfb03de4494 M auto_updated_file -Rebasing (1/2) error: could not apply 58f88fb... commit change 5.2 -Resolve all conflicts manually, mark them as resolved with -"git add/rm ", then run "git rebase --continue". -You can instead skip this commit: run "git rebase --skip". -To abort and get back to the state before "git rebase", run "git rebase --abort". -Could not apply 58f88fb... commit change 5.2 -Auto-merging auto_updated_file -CONFLICT (content): Merge conflict in auto_updated_file -rebase refs/remotes/git-svn: command returned error: 1 - -auto_updated_file: needs merge -ok 8 - dcommit fails on concurrent conflicting change - -# passed all 8 test(s) -1..8 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' *** t9168-git-svn-partially-globbed-names.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9168-git-svn-partially-globbed-names/.git/ expecting success of 9168.1 'prepare test refspec prefixed globbing': @@ -409347,22 +408689,22 @@ (required for this version (2.30.2) of git-svn) does not exist. Done migrating from a git-svn v1 layout A readme -r1 = 238398807c5e00e1c70187f234e860e7ac2ee5db (refs/remotes/trunk) +r1 = d35e887c87059c7ae80eeca4c3f21dbd34c8b9f3 (refs/remotes/trunk) branch_from: /trunk => /trunk/src/a Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9168-git-svn-partially-globbed-names/svnrepo/trunk/src/a => file:///build/git-2.30.2/t/trash%20directory.t9168-git-svn-partially-globbed-names/svnrepo/branches/b_start/src/a, 1 -Found branch parent: (refs/remotes/branches/b_start) 238398807c5e00e1c70187f234e860e7ac2ee5db +Found branch parent: (refs/remotes/branches/b_start) d35e887c87059c7ae80eeca4c3f21dbd34c8b9f3 Following parent with do_switch Successfully followed parent -r2 = 5f6ce85c58120fb56a45ffbb8466d3c038266363 (refs/remotes/branches/b_start) +r2 = e70f4cb50bdcbe6cdc31de544deb6a98ad50b9c6 (refs/remotes/branches/b_start) M readme -r3 = 710e29c61670378cc9c5b2b5b8de54a6ead7054c (refs/remotes/branches/b_start) +r3 = 98cce6d7996c47a29b3c96b3c683b8ebaab43fe6 (refs/remotes/branches/b_start) branch_from: /branches/b_start => /branches/b_start/src/a Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9168-git-svn-partially-globbed-names/svnrepo/branches/b_start/src/a => file:///build/git-2.30.2/t/trash%20directory.t9168-git-svn-partially-globbed-names/svnrepo/tags/t_end/src/a, 3 -Found branch parent: (refs/remotes/tags/t_end) 710e29c61670378cc9c5b2b5b8de54a6ead7054c +Found branch parent: (refs/remotes/tags/t_end) 98cce6d7996c47a29b3c96b3c683b8ebaab43fe6 Following parent with do_switch M readme Successfully followed parent -r4 = c1579feefaa67170af4011f375e047e01927dffa (refs/remotes/tags/t_end) +r4 = f7f655f7646ec374a967f57b5fcf1c2b10c04841 (refs/remotes/tags/t_end) Checked out HEAD: file:///build/git-2.30.2/t/trash%20directory.t9168-git-svn-partially-globbed-names/svnrepo/trunk/src/a r1 fatal: ambiguous argument 'refs/remotes/tags/t_end@3': unknown revision or path not in the working tree. @@ -409411,26 +408753,26 @@ A src/a/readme A src/b/readme W: +empty_dir: trunk/doc -r1 = 6b20d41a7f31d8f0c3df6af4e8ade5c9619d2f6b (refs/remotes/two/trunk) +r1 = c1677155f190537a52cec9e3fc307318f4e40c7e (refs/remotes/two/trunk) Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9168-git-svn-partially-globbed-names/svnrepo/trunk => file:///build/git-2.30.2/t/trash%20directory.t9168-git-svn-partially-globbed-names/svnrepo/branches/b_start, 1 -Found branch parent: (refs/remotes/two/branches/b_start) 6b20d41a7f31d8f0c3df6af4e8ade5c9619d2f6b +Found branch parent: (refs/remotes/two/branches/b_start) c1677155f190537a52cec9e3fc307318f4e40c7e Following parent with do_switch Successfully followed parent -r2 = 25b20c27a133930e39e5d79edb956e0126144d64 (refs/remotes/two/branches/b_start) +r2 = 94e45d222a18c1129121e54c408c755b648200a0 (refs/remotes/two/branches/b_start) M src/a/readme M src/b/readme -r3 = 058b200a3c246abf683a2d2d2765438c11ce0d74 (refs/remotes/two/branches/b_start) +r3 = 3f4240630d3d8b9ea311eb9b4e4bc4f960848d95 (refs/remotes/two/branches/b_start) Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9168-git-svn-partially-globbed-names/svnrepo/branches/b_start => file:///build/git-2.30.2/t/trash%20directory.t9168-git-svn-partially-globbed-names/svnrepo/tags/t_end, 3 -Found branch parent: (refs/remotes/two/tags/t_end) 058b200a3c246abf683a2d2d2765438c11ce0d74 +Found branch parent: (refs/remotes/two/tags/t_end) 3f4240630d3d8b9ea311eb9b4e4bc4f960848d95 Following parent with do_switch M src/a/readme M src/b/readme Successfully followed parent -r4 = c7d303562444f7a05a3960820337a9c588152178 (refs/remotes/two/tags/t_end) +r4 = b192125ecd60fdbd66f577435d44bf5f10bdf6f3 (refs/remotes/two/tags/t_end) M src/b/readme -r5 = fcc5ad4f1e9f00f0d08559c4f38eeb1f06ccaa53 (refs/remotes/two/tags/t_end) +r5 = 5fce1f8c2c7850ffa5f8f417e81a545793927aac (refs/remotes/two/tags/t_end) M src/b/readme -r6 = d32b14b4bdba8c878742c5ad17c9e377d02003c2 (refs/remotes/two/tags/t_end) +r6 = be0708c7992e61df5b51519df0b4f307d0fab6f4 (refs/remotes/two/tags/t_end) ok 4 - test left-hand-side only prefixed globbing expecting success of 9168.5 'prepare test prefixed globs match just prefix': @@ -409494,38 +408836,38 @@ A src/a/readme A src/b/readme W: +empty_dir: trunk/doc -r1 = 6b20d41a7f31d8f0c3df6af4e8ade5c9619d2f6b (refs/remotes/three/trunk) +r1 = c1677155f190537a52cec9e3fc307318f4e40c7e (refs/remotes/three/trunk) Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9168-git-svn-partially-globbed-names/svnrepo/trunk => file:///build/git-2.30.2/t/trash%20directory.t9168-git-svn-partially-globbed-names/svnrepo/branches/b_start, 1 -Found branch parent: (refs/remotes/three/branches/b_start) 6b20d41a7f31d8f0c3df6af4e8ade5c9619d2f6b +Found branch parent: (refs/remotes/three/branches/b_start) c1677155f190537a52cec9e3fc307318f4e40c7e Following parent with do_switch Successfully followed parent -r2 = 25b20c27a133930e39e5d79edb956e0126144d64 (refs/remotes/three/branches/b_start) +r2 = 94e45d222a18c1129121e54c408c755b648200a0 (refs/remotes/three/branches/b_start) M src/a/readme M src/b/readme -r3 = 058b200a3c246abf683a2d2d2765438c11ce0d74 (refs/remotes/three/branches/b_start) +r3 = 3f4240630d3d8b9ea311eb9b4e4bc4f960848d95 (refs/remotes/three/branches/b_start) Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9168-git-svn-partially-globbed-names/svnrepo/branches/b_start => file:///build/git-2.30.2/t/trash%20directory.t9168-git-svn-partially-globbed-names/svnrepo/tags/t_end, 3 -Found branch parent: (refs/remotes/three/tags/t_end) 058b200a3c246abf683a2d2d2765438c11ce0d74 +Found branch parent: (refs/remotes/three/tags/t_end) 3f4240630d3d8b9ea311eb9b4e4bc4f960848d95 Following parent with do_switch M src/a/readme M src/b/readme Successfully followed parent -r4 = c7d303562444f7a05a3960820337a9c588152178 (refs/remotes/three/tags/t_end) +r4 = b192125ecd60fdbd66f577435d44bf5f10bdf6f3 (refs/remotes/three/tags/t_end) M src/b/readme -r5 = fcc5ad4f1e9f00f0d08559c4f38eeb1f06ccaa53 (refs/remotes/three/tags/t_end) +r5 = 5fce1f8c2c7850ffa5f8f417e81a545793927aac (refs/remotes/three/tags/t_end) M src/b/readme -r6 = d32b14b4bdba8c878742c5ad17c9e377d02003c2 (refs/remotes/three/tags/t_end) +r6 = be0708c7992e61df5b51519df0b4f307d0fab6f4 (refs/remotes/three/tags/t_end) Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9168-git-svn-partially-globbed-names/svnrepo/trunk => file:///build/git-2.30.2/t/trash%20directory.t9168-git-svn-partially-globbed-names/svnrepo/branches/b_, 3 -Found branch parent: (refs/remotes/three/branches/b_) 6b20d41a7f31d8f0c3df6af4e8ade5c9619d2f6b +Found branch parent: (refs/remotes/three/branches/b_) c1677155f190537a52cec9e3fc307318f4e40c7e Following parent with do_switch M src/a/readme Successfully followed parent -r7 = 9c6f5f8a434502b5d6e04cc51e92cc6e1e87826a (refs/remotes/three/branches/b_) +r7 = 31c9732fec8a79790dabdbe28ab4bb3b58e63752 (refs/remotes/three/branches/b_) Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9168-git-svn-partially-globbed-names/svnrepo/branches/b_ => file:///build/git-2.30.2/t/trash%20directory.t9168-git-svn-partially-globbed-names/svnrepo/tags/t_, 7 -Found branch parent: (refs/remotes/three/tags/t_) 9c6f5f8a434502b5d6e04cc51e92cc6e1e87826a +Found branch parent: (refs/remotes/three/tags/t_) 31c9732fec8a79790dabdbe28ab4bb3b58e63752 Following parent with do_switch M src/a/readme Successfully followed parent -r8 = 11eac97cf655bf26b6f4b5da24a8c572020ea224 (refs/remotes/three/tags/t_) +r8 = 8e94d724e3d0d749b5cf53f5ba6bdbc52d637003 (refs/remotes/three/tags/t_) ok 6 - test prefixed globs match just prefix expecting success of 9168.7 'prepare test disallow prefixed multi-globs': @@ -409623,19 +408965,19 @@ A src/a/readme A src/b/readme W: +empty_dir: trunk/doc -r1 = 6b20d41a7f31d8f0c3df6af4e8ade5c9619d2f6b (refs/remotes/five/trunk) +r1 = c1677155f190537a52cec9e3fc307318f4e40c7e (refs/remotes/five/trunk) Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9168-git-svn-partially-globbed-names/svnrepo/trunk => file:///build/git-2.30.2/t/trash%20directory.t9168-git-svn-partially-globbed-names/svnrepo/branches/abcde, 8 -Found branch parent: (refs/remotes/five/branches/abcde) 6b20d41a7f31d8f0c3df6af4e8ade5c9619d2f6b +Found branch parent: (refs/remotes/five/branches/abcde) c1677155f190537a52cec9e3fc307318f4e40c7e Following parent with do_switch M src/a/readme Successfully followed parent -r10 = 7774744e2a5a9ea15cac21d6c3ad9bbbc8367f54 (refs/remotes/five/branches/abcde) +r10 = 60127aceb2876eaf1dc5ad84a69da86de02f008b (refs/remotes/five/branches/abcde) Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9168-git-svn-partially-globbed-names/svnrepo/branches/abcde => file:///build/git-2.30.2/t/trash%20directory.t9168-git-svn-partially-globbed-names/svnrepo/tags/fghij, 10 -Found branch parent: (refs/remotes/five/tags/fghij) 7774744e2a5a9ea15cac21d6c3ad9bbbc8367f54 +Found branch parent: (refs/remotes/five/tags/fghij) 60127aceb2876eaf1dc5ad84a69da86de02f008b Following parent with do_switch M src/a/readme Successfully followed parent -r11 = a9722e192edc29367d39055f6a15f537ed92c843 (refs/remotes/five/tags/fghij) +r11 = 749033e1a58cee3c13e12bfc0595ec2d19c8ef3b (refs/remotes/five/tags/fghij) ok 10 - test globbing in the middle of the word expecting success of 9168.11 'prepare test disallow multiple asterisks in one word': @@ -409671,522 +409013,717 @@ 1..12 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t9301-fast-import-notes.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9301-fast-import-notes/.git/ -expecting success of 9301.1 'set up master branch': - - git fast-import -Date: Thu Apr 7 15:13:13 2005 -0700 - - fourth commit - -:100755 100755 3c9b917 98d1b63 M bar - -commit dbe3ab44992634d04709231cc00251483e46cff8 -Author: C O Mitter -Date: Thu Apr 7 15:13:13 2005 -0700 - - third commit - -:100644 100644 215df20 634bd2b M foo - -commit bcc89d2db5d163929b6fbd169c2559b47a076acb -Author: C O Mitter -Date: Thu Apr 7 15:13:13 2005 -0700 - - second commit - -:100644 100755 532386d be960bf M baz/xyzzy -:100644 100644 df023b2 215df20 M foo - -commit 49f8b007d515fc33aed8245ee498753d4270cc78 -Author: C O Mitter -Date: Thu Apr 7 15:13:13 2005 -0700 - - first commit - -:000000 100755 0000000 3c9b917 A bar -:000000 100644 0000000 532386d A baz/xyzzy -:000000 100644 0000000 df023b2 A foo -ok 1 - set up master branch - -expecting success of 9301.2 'add notes with simple M command': - - git fast-import actual && - test_cmp expect actual - - -fast-import statistics: ---------------------------------------------------------------------- -Alloc'd objects: 5000 -Total objects: 4 ( 0 duplicates ) - blobs : 2 ( 0 duplicates 0 deltas of 1 attempts) - trees : 1 ( 0 duplicates 0 deltas of 0 attempts) - commits: 1 ( 0 duplicates 0 deltas of 0 attempts) - tags : 0 ( 0 duplicates 0 deltas of 0 attempts) -Total branches: 1 ( 1 loads ) - marks: 1024 ( 0 unique ) - atoms: 2 -Memory total: 2434 KiB - pools: 2122 KiB - objects: 312 KiB ---------------------------------------------------------------------- -pack_report: getpagesize() = 4096 -pack_report: core.packedGitWindowSize = 33554432 -pack_report: core.packedGitLimit = 268435456 -pack_report: pack_used_ctr = 0 -pack_report: pack_mmap_calls = 0 -pack_report: pack_open_windows = 0 / 0 -pack_report: pack_mapped = 0 / 0 ---------------------------------------------------------------------- - -ok 2 - add notes with simple M command - -expecting success of 9301.3 'add notes with simple N command': - - git fast-import actual && - test_cmp expect actual - - -fast-import statistics: ---------------------------------------------------------------------- -Alloc'd objects: 5000 -Total objects: 4 ( 0 duplicates ) - blobs : 2 ( 0 duplicates 0 deltas of 1 attempts) - trees : 1 ( 0 duplicates 0 deltas of 0 attempts) - commits: 1 ( 0 duplicates 0 deltas of 0 attempts) - tags : 0 ( 0 duplicates 0 deltas of 0 attempts) -Total branches: 1 ( 1 loads ) - marks: 1024 ( 0 unique ) - atoms: 4 -Memory total: 2434 KiB - pools: 2122 KiB - objects: 312 KiB ---------------------------------------------------------------------- -pack_report: getpagesize() = 4096 -pack_report: core.packedGitWindowSize = 33554432 -pack_report: core.packedGitLimit = 268435456 -pack_report: pack_used_ctr = 0 -pack_report: pack_mmap_calls = 0 -pack_report: pack_open_windows = 0 / 0 -pack_report: pack_mapped = 0 / 0 ---------------------------------------------------------------------- - -ok 3 - add notes with simple N command - -expecting success of 9301.4 'update existing notes with N command': - - git fast-import actual && - test_cmp expect actual - - -fast-import statistics: ---------------------------------------------------------------------- -Alloc'd objects: 5000 -Total objects: 6 ( 0 duplicates ) - blobs : 4 ( 0 duplicates 0 deltas of 3 attempts) - trees : 1 ( 0 duplicates 0 deltas of 0 attempts) - commits: 1 ( 0 duplicates 0 deltas of 0 attempts) - tags : 0 ( 0 duplicates 0 deltas of 0 attempts) -Total branches: 1 ( 1 loads ) - marks: 1024 ( 0 unique ) - atoms: 4 -Memory total: 2434 KiB - pools: 2122 KiB - objects: 312 KiB ---------------------------------------------------------------------- -pack_report: getpagesize() = 4096 -pack_report: core.packedGitWindowSize = 33554432 -pack_report: core.packedGitLimit = 268435456 -pack_report: pack_used_ctr = 0 -pack_report: pack_mmap_calls = 0 -pack_report: pack_open_windows = 0 / 0 -pack_report: pack_mapped = 0 / 0 ---------------------------------------------------------------------- - -ok 4 - update existing notes with N command - -expecting success of 9301.5 'add concatenation notes with M command': - - git fast-import actual && - test_cmp expect actual - - -fast-import statistics: ---------------------------------------------------------------------- -Alloc'd objects: 5000 -Total objects: 12 ( 0 duplicates ) - blobs : 7 ( 0 duplicates 0 deltas of 6 attempts) - trees : 4 ( 0 duplicates 0 deltas of 0 attempts) - commits: 1 ( 0 duplicates 0 deltas of 0 attempts) - tags : 0 ( 0 duplicates 0 deltas of 0 attempts) -Total branches: 1 ( 1 loads ) - marks: 1024 ( 0 unique ) - atoms: 10 -Memory total: 2434 KiB - pools: 2122 KiB - objects: 312 KiB ---------------------------------------------------------------------- -pack_report: getpagesize() = 4096 -pack_report: core.packedGitWindowSize = 33554432 -pack_report: core.packedGitLimit = 268435456 -pack_report: pack_used_ctr = 0 -pack_report: pack_mmap_calls = 0 -pack_report: pack_open_windows = 0 / 0 -pack_report: pack_mapped = 0 / 0 ---------------------------------------------------------------------- - -ok 5 - add concatenation notes with M command - -expecting success of 9301.6 'verify that deleteall also removes notes': - - git fast-import actual && - test_cmp expect actual - - -fast-import statistics: ---------------------------------------------------------------------- -Alloc'd objects: 5000 -Total objects: 2 ( 0 duplicates ) - blobs : 0 ( 0 duplicates 0 deltas of 0 attempts) - trees : 1 ( 0 duplicates 0 deltas of 0 attempts) - commits: 1 ( 0 duplicates 0 deltas of 0 attempts) - tags : 0 ( 0 duplicates 0 deltas of 0 attempts) -Total branches: 1 ( 1 loads ) - marks: 1024 ( 0 unique ) - atoms: 6 -Memory total: 2434 KiB - pools: 2122 KiB - objects: 312 KiB ---------------------------------------------------------------------- -pack_report: getpagesize() = 4096 -pack_report: core.packedGitWindowSize = 33554432 -pack_report: core.packedGitLimit = 268435456 -pack_report: pack_used_ctr = 0 -pack_report: pack_mmap_calls = 0 -pack_report: pack_open_windows = 0 / 0 -pack_report: pack_mapped = 0 / 0 ---------------------------------------------------------------------- - -ok 6 - verify that deleteall also removes notes - -expecting success of 9301.7 'verify that later N commands override earlier M commands': - - git fast-import actual && - test_cmp expect actual - - -fast-import statistics: ---------------------------------------------------------------------- -Alloc'd objects: 5000 -Total objects: 6 ( 0 duplicates ) - blobs : 4 ( 0 duplicates 0 deltas of 3 attempts) - trees : 1 ( 0 duplicates 0 deltas of 0 attempts) - commits: 1 ( 0 duplicates 0 deltas of 0 attempts) - tags : 0 ( 0 duplicates 0 deltas of 0 attempts) -Total branches: 1 ( 1 loads ) - marks: 1024 ( 0 unique ) - atoms: 2 -Memory total: 2434 KiB - pools: 2122 KiB - objects: 312 KiB ---------------------------------------------------------------------- -pack_report: getpagesize() = 4096 -pack_report: core.packedGitWindowSize = 33554432 -pack_report: core.packedGitLimit = 268435456 -pack_report: pack_used_ctr = 0 -pack_report: pack_mmap_calls = 0 -pack_report: pack_open_windows = 0 / 0 -pack_report: pack_mapped = 0 / 0 ---------------------------------------------------------------------- - -ok 7 - verify that later N commands override earlier M commands - -expecting success of 9301.8 'add lots of commits and notes': - - git fast-import actual && - test_cmp expect actual - - -fast-import statistics: ---------------------------------------------------------------------- -Alloc'd objects: 5000 -Total objects: 1813 ( 0 duplicates ) - blobs : 803 ( 0 duplicates 392 deltas of 695 attempts) - trees : 608 ( 0 duplicates 2 deltas of 401 attempts) - commits: 402 ( 0 duplicates 0 deltas of 0 attempts) - tags : 0 ( 0 duplicates 0 deltas of 0 attempts) -Total branches: 2 ( 2 loads ) - marks: 1024 ( 400 unique ) - atoms: 864 -Memory total: 2434 KiB - pools: 2122 KiB - objects: 312 KiB ---------------------------------------------------------------------- -pack_report: getpagesize() = 4096 -pack_report: core.packedGitWindowSize = 33554432 -pack_report: core.packedGitLimit = 268435456 -pack_report: pack_used_ctr = 4 -pack_report: pack_mmap_calls = 1 -pack_report: pack_open_windows = 1 / 1 -pack_report: pack_mapped = 129374 / 129374 ---------------------------------------------------------------------- - -ok 8 - add lots of commits and notes - -expecting success of 9301.9 'verify that lots of notes trigger a fanout scheme': - hexsz=$(test_oid hexsz) && - - # None of the entries in the top-level notes tree should be a full SHA1 - git ls-tree --name-only refs/notes/many_notes | - while read path - do - if test $(expr length "$path") -ge $hexsz - then - return 1 - fi - done - - -ok 9 - verify that lots of notes trigger a fanout scheme - -expecting success of 9301.10 'verify that importing a notes tree respects the fanout scheme': - git fast-import A/newfile1.txt && + echo hello2 >B/newfile2.txt && + cp "$TEST_DIRECTORY"/test-binary-1.png C/newfile3.png && + cp "$TEST_DIRECTORY"/test-binary-1.png D/newfile4.png && + git add A/newfile1.txt && + git add B/newfile2.txt && + git add C/newfile3.png && + git add D/newfile4.png && + git commit -a -m "Test: New file" && + id=$(git rev-list --max-count=1 HEAD) && + (cd "$CVSWORK" && + git cvsexportcommit -c $id && + check_entries A "newfile1.txt/1.1/" && + check_entries B "newfile2.txt/1.1/" && + check_entries C "newfile3.png/1.1/-kb" && + check_entries D "newfile4.png/1.1/-kb" && + test_cmp A/newfile1.txt ../A/newfile1.txt && + test_cmp B/newfile2.txt ../B/newfile2.txt && + test_cmp C/newfile3.png ../C/newfile3.png && + test_cmp D/newfile4.png ../D/newfile4.png + ) +[master 288d750] Test: New file + Author: A U Thor + 4 files changed, 2 insertions(+) + create mode 100644 A/newfile1.txt + create mode 100644 B/newfile2.txt + create mode 100644 C/newfile3.png + create mode 100644 D/newfile4.png +Checking if patch will apply +Applying +Patch applied successfully. Adding new files and directories to CVS +Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/D put under version control +Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/C put under version control +Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/B put under version control +Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/A put under version control +cvs add: scheduling file `A/newfile1.txt' for addition +cvs add: use `cvs commit' to add this file permanently +cvs add: scheduling file `B/newfile2.txt' for addition +cvs add: use `cvs commit' to add this file permanently +cvs add: scheduling file `C/newfile3.png' for addition +cvs add: use `cvs commit' to add this file permanently +cvs add: scheduling file `D/newfile4.png' for addition +cvs add: use `cvs commit' to add this file permanently +Commit to CVS +Patch title (first comment line): Test: New file +Autocommit + cvs commit -F .msg 'A/newfile1.txt' 'B/newfile2.txt' 'C/newfile3.png' 'D/newfile4.png' +/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/A/newfile1.txt,v <-- A/newfile1.txt +initial revision: 1.1 +/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/B/newfile2.txt,v <-- B/newfile2.txt +initial revision: 1.1 +/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/C/newfile3.png,v <-- C/newfile3.png +initial revision: 1.1 +/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/D/newfile4.png,v <-- D/newfile4.png +initial revision: 1.1 +Committed successfully to CVS +ok 1 - New file - git cat-file -p refs/notes/many_notes:foobar/non-note.txt > actual && - test_cmp expect_non-note1 actual && - git cat-file -p refs/notes/many_notes:deadbeef > actual && - test_cmp expect_non-note2 actual && - git cat-file -p refs/notes/many_notes:de/adbeef > actual && - test_cmp expect_non-note3 actual +expecting success of 9200.2 'Remove two files, add two and update two': echo Hello1 >>A/newfile1.txt && + rm -f B/newfile2.txt && + rm -f C/newfile3.png && + echo Hello5 >E/newfile5.txt && + cp "$TEST_DIRECTORY"/test-binary-2.png D/newfile4.png && + cp "$TEST_DIRECTORY"/test-binary-1.png F/newfile6.png && + git add E/newfile5.txt && + git add F/newfile6.png && + git commit -a -m "Test: Remove, add and update" && + id=$(git rev-list --max-count=1 HEAD) && + (cd "$CVSWORK" && + git cvsexportcommit -c $id && + check_entries A "newfile1.txt/1.2/" && + check_entries B "" && + check_entries C "" && + check_entries D "newfile4.png/1.2/-kb" && + check_entries E "newfile5.txt/1.1/" && + check_entries F "newfile6.png/1.1/-kb" && + test_cmp A/newfile1.txt ../A/newfile1.txt && + test_cmp D/newfile4.png ../D/newfile4.png && + test_cmp E/newfile5.txt ../E/newfile5.txt && + test_cmp F/newfile6.png ../F/newfile6.png + ) +[master 69b0239] Test: Remove, add and update + Author: A U Thor + 5 files changed, 2 insertions(+), 1 deletion(-) + delete mode 100644 B/newfile2.txt + rewrite D/newfile4.png (99%) + create mode 100644 E/newfile5.txt + rename C/newfile3.png => F/newfile6.png (100%) +Checking if patch will apply +Applying +Patch applied successfully. Adding new files and directories to CVS +Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/F put under version control +Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/E put under version control +cvs add: scheduling file `E/newfile5.txt' for addition +cvs add: use `cvs commit' to add this file permanently +cvs add: scheduling file `F/newfile6.png' for addition +cvs add: use `cvs commit' to add this file permanently +cvs remove: scheduling `B/newfile2.txt' for removal +cvs remove: use `cvs commit' to remove this file permanently +cvs remove: scheduling `C/newfile3.png' for removal +cvs remove: use `cvs commit' to remove this file permanently +Commit to CVS +Patch title (first comment line): Test: Remove, add and update +Autocommit + cvs commit -F .msg 'A/newfile1.txt' 'B/newfile2.txt' 'C/newfile3.png' 'D/newfile4.png' 'E/newfile5.txt' 'F/newfile6.png' +/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/A/newfile1.txt,v <-- A/newfile1.txt +new revision: 1.2; previous revision: 1.1 +/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/B/newfile2.txt,v <-- B/newfile2.txt +new revision: delete; previous revision: 1.1 +/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/C/newfile3.png,v <-- C/newfile3.png +new revision: delete; previous revision: 1.1 +/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/D/newfile4.png,v <-- D/newfile4.png +new revision: 1.2; previous revision: 1.1 +/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/E/newfile5.txt,v <-- E/newfile5.txt +initial revision: 1.1 +/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/F/newfile6.png,v <-- F/newfile6.png +initial revision: 1.1 +Committed successfully to CVS +ok 2 - Remove two files, add two and update two +expecting success of 9200.3 'Fail to change binary more than one generation old': cat F/newfile6.png >>D/newfile4.png && + git commit -a -m "generatiion 1" && + cat F/newfile6.png >>D/newfile4.png && + git commit -a -m "generation 2" && + id=$(git rev-list --max-count=1 HEAD) && + (cd "$CVSWORK" && + test_must_fail git cvsexportcommit -c $id + ) +[master 70e0115] generatiion 1 + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) +[master d73a469] generation 2 + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) +Checking if patch will apply +Applying +error: the patch applies to 'D/newfile4.png' (ac22ccbd3ee9f03a3b38249ac8efdbe96b5da2cd), which does not match the current contents. +error: D/newfile4.png: patch does not apply +cannot patch at /build/git-2.30.2/git-cvsexportcommit line 338. +ok 3 - Fail to change binary more than one generation old -ok 11 - verify that non-notes are untouched by a fanout change +expecting success of 9200.4 'Remove only binary files': git reset --hard HEAD^^ && + rm -f D/newfile4.png && + git commit -a -m "test: remove only a binary file" && + id=$(git rev-list --max-count=1 HEAD) && + (cd "$CVSWORK" && + git cvsexportcommit -c $id && + check_entries A "newfile1.txt/1.2/" && + check_entries B "" && + check_entries C "" && + check_entries D "" && + check_entries E "newfile5.txt/1.1/" && + check_entries F "newfile6.png/1.1/-kb" && + test_cmp A/newfile1.txt ../A/newfile1.txt && + test_cmp E/newfile5.txt ../E/newfile5.txt && + test_cmp F/newfile6.png ../F/newfile6.png + ) +HEAD is now at 69b0239 Test: Remove, add and update +[master 2a45f53] test: remove only a binary file + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + delete mode 100644 D/newfile4.png +Checking if patch will apply +Applying +Patch applied successfully. Adding new files and directories to CVS +cvs remove: scheduling `D/newfile4.png' for removal +cvs remove: use `cvs commit' to remove this file permanently +Commit to CVS +Patch title (first comment line): test: remove only a binary file +Autocommit + cvs commit -F .msg 'D/newfile4.png' +/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/D/newfile4.png,v <-- D/newfile4.png +new revision: delete; previous revision: 1.2 +Committed successfully to CVS +ok 4 - Remove only binary files -expecting success of 9301.12 'change a few existing notes': +expecting success of 9200.5 'Remove only a text file': rm -f A/newfile1.txt && + git commit -a -m "test: remove only a binary file" && + id=$(git rev-list --max-count=1 HEAD) && + (cd "$CVSWORK" && + git cvsexportcommit -c $id && + check_entries A "" && + check_entries B "" && + check_entries C "" && + check_entries D "" && + check_entries E "newfile5.txt/1.1/" && + check_entries F "newfile6.png/1.1/-kb" && + test_cmp E/newfile5.txt ../E/newfile5.txt && + test_cmp F/newfile6.png ../F/newfile6.png + ) +[master fa834fd] test: remove only a binary file + Author: A U Thor + 1 file changed, 2 deletions(-) + delete mode 100644 A/newfile1.txt +Checking if patch will apply +Applying +Patch applied successfully. Adding new files and directories to CVS +cvs remove: scheduling `A/newfile1.txt' for removal +cvs remove: use `cvs commit' to remove this file permanently +Commit to CVS +Patch title (first comment line): test: remove only a binary file +Autocommit + cvs commit -F .msg 'A/newfile1.txt' +/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/A/newfile1.txt,v <-- A/newfile1.txt +new revision: delete; previous revision: 1.2 +Committed successfully to CVS +ok 5 - Remove only a text file - git fast-import actual && - test_cmp expect actual +expecting success of 9200.6 'New file with spaces in file name': mkdir "G g" && + echo ok then >"G g/with spaces.txt" && + git add "G g/with spaces.txt" && \ + cp "$TEST_DIRECTORY"/test-binary-1.png "G g/with spaces.png" && \ + git add "G g/with spaces.png" && + git commit -a -m "With spaces" && + id=$(git rev-list --max-count=1 HEAD) && + (cd "$CVSWORK" && + git cvsexportcommit -c $id && + check_entries "G g" "with spaces.png/1.1/-kb|with spaces.txt/1.1/" + ) +[master 7dad360] With spaces + Author: A U Thor + 2 files changed, 1 insertion(+) + create mode 100644 G g/with spaces.png + create mode 100644 G g/with spaces.txt +Checking if patch will apply +Applying +Patch applied successfully. Adding new files and directories to CVS +Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/G g put under version control +cvs add: scheduling file `G g/with spaces.png' for addition +cvs add: use `cvs commit' to add this file permanently +cvs add: scheduling file `G g/with spaces.txt' for addition +cvs add: use `cvs commit' to add this file permanently +Commit to CVS +Patch title (first comment line): With spaces +Autocommit + cvs commit -F .msg G g/with spaces.png G g/with spaces.txt +/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/G g/with spaces.png,v <-- G g/with spaces.png +initial revision: 1.1 +/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/G g/with spaces.txt,v <-- G g/with spaces.txt +initial revision: 1.1 +Committed successfully to CVS +ok 6 - New file with spaces in file name +expecting success of 9200.7 'Update file with spaces in file name': echo Ok then >>"G g/with spaces.txt" && + cat "$TEST_DIRECTORY"/test-binary-1.png >>"G g/with spaces.png" && \ + git add "G g/with spaces.png" && + git commit -a -m "Update with spaces" && + id=$(git rev-list --max-count=1 HEAD) && + (cd "$CVSWORK" && + git cvsexportcommit -c $id && + check_entries "G g" "with spaces.png/1.2/-kb|with spaces.txt/1.2/" + ) +[master 200512b] Update with spaces + Author: A U Thor + 2 files changed, 1 insertion(+) +Checking if patch will apply +Applying +Patch applied successfully. Adding new files and directories to CVS +Commit to CVS +Patch title (first comment line): Update with spaces +Autocommit + cvs commit -F .msg G g/with spaces.png G g/with spaces.txt +/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/G g/with spaces.png,v <-- G g/with spaces.png +new revision: 1.2; previous revision: 1.1 +/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/G g/with spaces.txt,v <-- G g/with spaces.txt +new revision: 1.2; previous revision: 1.1 +Committed successfully to CVS +ok 7 - Update file with spaces in file name -fast-import statistics: ---------------------------------------------------------------------- -Alloc'd objects: 5000 -Total objects: 8 ( 0 duplicates ) - blobs : 3 ( 0 duplicates 2 deltas of 2 attempts) - trees : 4 ( 0 duplicates 0 deltas of 0 attempts) - commits: 1 ( 0 duplicates 0 deltas of 0 attempts) - tags : 0 ( 0 duplicates 0 deltas of 0 attempts) -Total branches: 1 ( 1 loads ) - marks: 1024 ( 0 unique ) - atoms: 608 -Memory total: 2434 KiB - pools: 2122 KiB - objects: 312 KiB ---------------------------------------------------------------------- -pack_report: getpagesize() = 4096 -pack_report: core.packedGitWindowSize = 33554432 -pack_report: core.packedGitLimit = 268435456 -pack_report: pack_used_ctr = 216 -pack_report: pack_mmap_calls = 1 -pack_report: pack_open_windows = 1 / 1 -pack_report: pack_mapped = 129374 / 129374 ---------------------------------------------------------------------- +expecting success of 9200.8 'File with non-ascii file name': mkdir -p Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/Ã¥/ä/ö && + echo Foo >Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/Ã¥/ä/ö/gÃ¥rdetsÃ¥gÃ¥rdet.txt && + git add Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/Ã¥/ä/ö/gÃ¥rdetsÃ¥gÃ¥rdet.txt && + cp "$TEST_DIRECTORY"/test-binary-1.png Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/Ã¥/ä/ö/gÃ¥rdetsÃ¥gÃ¥rdet.png && + git add Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/Ã¥/ä/ö/gÃ¥rdetsÃ¥gÃ¥rdet.png && + git commit -a -m "GÃ¥r det sÃ¥ gÃ¥r det" && \ + id=$(git rev-list --max-count=1 HEAD) && + (cd "$CVSWORK" && + git cvsexportcommit -v -c $id && + check_entries \ + "Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/Ã¥/ä/ö" \ + "gÃ¥rdetsÃ¥gÃ¥rdet.png/1.1/-kb|gÃ¥rdetsÃ¥gÃ¥rdet.txt/1.1/" + ) +[master 2dba919] GÃ¥r det sÃ¥ gÃ¥r det + Author: A U Thor + 2 files changed, 1 insertion(+) + create mode 100644 "\303\205/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/\303\245/\303\244/\303\266/g\303\245rdets\303\245g\303\245rdet.png" + create mode 100644 "\303\205/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/\303\245/\303\244/\303\266/g\303\245rdets\303\245g\303\245rdet.txt" +Applying to CVS commit 2dba9190cda577aa84017fec4349519cd1aadafb from parent 200512bccb19b444ac4f1e098c7d7d3578864bb4 +Checking if patch will apply +Applying +Patch applied successfully. Adding new files and directories to CVS +Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã… put under version control +Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo put under version control +Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a put under version control +Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b put under version control +Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c put under version control +Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d put under version control +Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e put under version control +Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f put under version control +Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g put under version control +Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h put under version control +Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h/i put under version control +Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h/i/j put under version control +Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h/i/j/k put under version control +Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l put under version control +Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m put under version control +Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n put under version control +Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o put under version control +Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p put under version control +Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q put under version control +Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r put under version control +Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s put under version control +Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t put under version control +Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u put under version control +Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v put under version control +Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w put under version control +Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x put under version control +Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y put under version control +Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z put under version control +Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/Ã¥ put under version control +Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/Ã¥/ä put under version control +Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/Ã¥/ä/ö put under version control +cvs add: scheduling file `Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/Ã¥/ä/ö/gÃ¥rdetsÃ¥gÃ¥rdet.png' for addition +cvs add: use `cvs commit' to add this file permanently +cvs add: scheduling file `Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/Ã¥/ä/ö/gÃ¥rdetsÃ¥gÃ¥rdet.txt' for addition +cvs add: use `cvs commit' to add this file permanently +Commit to CVS +Patch title (first comment line): GÃ¥r det sÃ¥ gÃ¥r det +Autocommit + cvs commit -F .msg 'Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/Ã¥/ä/ö/gÃ¥rdetsÃ¥gÃ¥rdet.png' 'Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/Ã¥/ä/ö/gÃ¥rdetsÃ¥gÃ¥rdet.txt' +/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/Ã¥/ä/ö/gÃ¥rdetsÃ¥gÃ¥rdet.png,v <-- Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/Ã¥/ä/ö/gÃ¥rdetsÃ¥gÃ¥rdet.png +initial revision: 1.1 +/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/Ã¥/ä/ö/gÃ¥rdetsÃ¥gÃ¥rdet.txt,v <-- Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/Ã¥/ä/ö/gÃ¥rdetsÃ¥gÃ¥rdet.txt +initial revision: 1.1 +Committed successfully to CVS +ok 8 - File with non-ascii file name -ok 12 - change a few existing notes +expecting success of 9200.9 'Mismatching patch should fail': date >>"E/newfile5.txt" && + git add "E/newfile5.txt" && + git commit -a -m "Update one" && + date >>"E/newfile5.txt" && + git add "E/newfile5.txt" && + git commit -a -m "Update two" && + id=$(git rev-list --max-count=1 HEAD) && + (cd "$CVSWORK" && + test_must_fail git cvsexportcommit -c $id + ) +[master 820f4ff] Update one + Author: A U Thor + 1 file changed, 1 insertion(+) +[master aa94ce2] Update two + Author: A U Thor + 1 file changed, 1 insertion(+) +Checking if patch will apply +Applying +error: patch failed: E/newfile5.txt:1 +error: E/newfile5.txt: patch does not apply +cannot patch at /build/git-2.30.2/git-cvsexportcommit line 338. +ok 9 - Mismatching patch should fail -expecting success of 9301.13 'verify that changing notes respect existing fanout': +checking prerequisite: FILEMODE - # None of the entries in the top-level notes tree should be a full SHA1 - git ls-tree --name-only refs/notes/many_notes | - while read path - do - if test $(expr length "$path") -ge $hexsz - then - return 1 - fi - done +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-FILEMODE" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-FILEMODE" && + test "$(git config --bool core.filemode)" = true +) +prerequisite FILEMODE ok +expecting success of 9200.10 'Retain execute bit': mkdir G && + echo executeon >G/on && + chmod +x G/on && + echo executeoff >G/off && + git add G/on && + git add G/off && + git commit -a -m "Execute test" && + (cd "$CVSWORK" && + git cvsexportcommit -c HEAD && + test -x G/on && + ! test -x G/off + ) +[master 3b14fd5] Execute test + Author: A U Thor + 2 files changed, 2 insertions(+) + create mode 100644 G/off + create mode 100755 G/on +Checking if patch will apply +Applying +Patch applied successfully. Adding new files and directories to CVS +Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/G put under version control +cvs add: scheduling file `G/off' for addition +cvs add: use `cvs commit' to add this file permanently +cvs add: scheduling file `G/on' for addition +cvs add: use `cvs commit' to add this file permanently +Commit to CVS +Patch title (first comment line): Execute test +Autocommit + cvs commit -F .msg 'G/off' 'G/on' +/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/G/off,v <-- G/off +initial revision: 1.1 +/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/G/on,v <-- G/on +initial revision: 1.1 +Committed successfully to CVS +ok 10 - Retain execute bit -ok 13 - verify that changing notes respect existing fanout +expecting success of 9200.11 '-w option should work with relative GIT_DIR': + mkdir W && + echo foobar >W/file1.txt && + echo bazzle >W/file2.txt && + git add W/file1.txt && + git add W/file2.txt && + git commit -m "More updates" && + id=$(git rev-list --max-count=1 HEAD) && + (cd "$GIT_DIR" && + GIT_DIR=. git cvsexportcommit -w "$CVSWORK" -c $id && + check_entries "$CVSWORK/W" "file1.txt/1.1/|file2.txt/1.1/" && + test_cmp "$CVSWORK/W/file1.txt" ../W/file1.txt && + test_cmp "$CVSWORK/W/file2.txt" ../W/file2.txt + ) -expecting success of 9301.14 'remove lots of notes': +[master d686e93] More updates + Author: A U Thor + 2 files changed, 2 insertions(+) + create mode 100644 W/file1.txt + create mode 100644 W/file2.txt +Checking if patch will apply +Applying +Patch applied successfully. Adding new files and directories to CVS +Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/W put under version control +cvs add: scheduling file `W/file1.txt' for addition +cvs add: use `cvs commit' to add this file permanently +cvs add: scheduling file `W/file2.txt' for addition +cvs add: use `cvs commit' to add this file permanently +Commit to CVS +Patch title (first comment line): More updates +Autocommit + cvs commit -F .msg 'W/file1.txt' 'W/file2.txt' +/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/W/file1.txt,v <-- W/file1.txt +initial revision: 1.1 +/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/W/file2.txt,v <-- W/file2.txt +initial revision: 1.1 +Committed successfully to CVS +ok 11 - -w option should work with relative GIT_DIR - git fast-import actual && - test_cmp expect actual +expecting success of 9200.12 'check files before directories': + echo Notes > release-notes && + git add release-notes && + git commit -m "Add release notes" release-notes && + id=$(git rev-parse HEAD) && + git cvsexportcommit -w "$CVSWORK" -c $id && -fast-import statistics: ---------------------------------------------------------------------- -Alloc'd objects: 5000 -Total objects: 3 ( 0 duplicates ) - blobs : 0 ( 0 duplicates 0 deltas of 0 attempts) - trees : 2 ( 0 duplicates 0 deltas of 0 attempts) - commits: 1 ( 0 duplicates 0 deltas of 0 attempts) - tags : 0 ( 0 duplicates 0 deltas of 0 attempts) -Total branches: 1 ( 1 loads ) - marks: 1024 ( 0 unique ) - atoms: 618 -Memory total: 2434 KiB - pools: 2122 KiB - objects: 312 KiB ---------------------------------------------------------------------- -pack_report: getpagesize() = 4096 -pack_report: core.packedGitWindowSize = 33554432 -pack_report: core.packedGitLimit = 268435456 -pack_report: pack_used_ctr = 593 -pack_report: pack_mmap_calls = 1 -pack_report: pack_open_windows = 1 / 1 -pack_report: pack_mapped = 129374 / 129374 ---------------------------------------------------------------------- + echo new > DS && + echo new > E/DS && + echo modified > release-notes && + git add DS E/DS release-notes && + git commit -m "Add two files with the same basename" && + id=$(git rev-parse HEAD) && + git cvsexportcommit -w "$CVSWORK" -c $id && + check_entries "$CVSWORK/E" "DS/1.1/|newfile5.txt/1.1/" && + check_entries "$CVSWORK" "DS/1.1/|release-notes/1.2/" && + test_cmp "$CVSWORK/DS" DS && + test_cmp "$CVSWORK/E/DS" E/DS && + test_cmp "$CVSWORK/release-notes" release-notes -ok 14 - remove lots of notes -expecting success of 9301.15 'verify that removing notes trigger fanout consolidation': - # All entries in the top-level notes tree should be a full SHA1 - git ls-tree --name-only -r refs/notes/many_notes | - while read path - do - # Explicitly ignore the non-note paths - test "$path" = "foobar/non-note.txt" && continue - test "$path" = "deadbeef" && continue - test "$path" = "de/adbeef" && continue +[master 1dcaf4c] Add release notes + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 release-notes +Checking if patch will apply +cvs status: nothing known about `release-notes' +Applying +Patch applied successfully. Adding new files and directories to CVS +cvs add: scheduling file `release-notes' for addition +cvs add: use `cvs commit' to add this file permanently +Commit to CVS +Patch title (first comment line): Add release notes +Autocommit + cvs commit -F .msg 'release-notes' +/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/release-notes,v <-- release-notes +initial revision: 1.1 +Committed successfully to CVS +[master 7458abb] Add two files with the same basename + Author: A U Thor + 3 files changed, 3 insertions(+), 1 deletion(-) + create mode 100644 DS + create mode 100644 E/DS +Checking if patch will apply +cvs status: nothing known about `DS' +cvs status: nothing known about `E/DS' +Applying +Patch applied successfully. Adding new files and directories to CVS +cvs add: scheduling file `DS' for addition +cvs add: use `cvs commit' to add this file permanently +cvs add: scheduling file `E/DS' for addition +cvs add: use `cvs commit' to add this file permanently +Commit to CVS +Patch title (first comment line): Add two files with the same basename +Autocommit + cvs commit -F .msg 'DS' 'E/DS' 'release-notes' +/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/DS,v <-- DS +initial revision: 1.1 +/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/release-notes,v <-- release-notes +new revision: 1.2; previous revision: 1.1 +/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/E/DS,v <-- E/DS +initial revision: 1.1 +Committed successfully to CVS +ok 12 - check files before directories - if test $(expr length "$path") -ne $hexsz - then - return 1 - fi - done +expecting success of 9200.13 're-commit a removed filename which remains in CVS attic': + (cd "$CVSWORK" && + echo >attic_gremlin && + cvs -Q add attic_gremlin && + cvs -Q ci -m "added attic_gremlin" && + rm attic_gremlin && + cvs -Q rm attic_gremlin && + cvs -Q ci -m "removed attic_gremlin") && -ok 15 - verify that removing notes trigger fanout consolidation + echo > attic_gremlin && + git add attic_gremlin && + git commit -m "Added attic_gremlin" && + git cvsexportcommit -w "$CVSWORK" -c HEAD && + (cd "$CVSWORK" && cvs -Q update -d) && + test -f "$CVSWORK/attic_gremlin" -expecting success of 9301.16 'verify that non-notes are untouched by a fanout change': +[master 4bb03b6] Added attic_gremlin + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 attic_gremlin +Checking if patch will apply +Applying +:7: new blank line at EOF. ++ +warning: 1 line adds whitespace errors. +Patch applied successfully. Adding new files and directories to CVS +cvs add: Re-adding file `attic_gremlin' after dead revision 1.2. +cvs add: use `cvs commit' to add this file permanently +Commit to CVS +Patch title (first comment line): Added attic_gremlin +Autocommit + cvs commit -F .msg 'attic_gremlin' +/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/attic_gremlin,v <-- attic_gremlin +new revision: 1.3; previous revision: 1.2 +Committed successfully to CVS +ok 13 - re-commit a removed filename which remains in CVS attic - git cat-file -p refs/notes/many_notes:foobar/non-note.txt > actual && - test_cmp expect_non-note1 actual && - git cat-file -p refs/notes/many_notes:deadbeef > actual && - test_cmp expect_non-note2 actual && - git cat-file -p refs/notes/many_notes:de/adbeef > actual && - test_cmp expect_non-note3 actual +expecting success of 9200.14 'commit a file with leading spaces in the name': + echo space > " space" && + git add " space" && + git commit -m "Add a file with a leading space" && + id=$(git rev-parse HEAD) && + git cvsexportcommit -w "$CVSWORK" -c $id && + check_entries "$CVSWORK" " space/1.1/|DS/1.1/|attic_gremlin/1.3/|release-notes/1.2/" && + test_cmp "$CVSWORK/ space" " space" -ok 16 - verify that non-notes are untouched by a fanout change -expecting success of 9301.17 'add notes to 16 commits in each of 10 refs': +[master 0039ee2] Add a file with a leading space + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 space +Checking if patch will apply +cvs status: nothing known about ` space' +Applying +Patch applied successfully. Adding new files and directories to CVS +cvs add: scheduling file ` space' for addition +cvs add: use `cvs commit' to add this file permanently +Commit to CVS +Patch title (first comment line): Add a file with a leading space +Autocommit + cvs commit -F .msg space +/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/ space,v <-- space +initial revision: 1.1 +Committed successfully to CVS +ok 14 - commit a file with leading spaces in the name - git fast-import --active-branches=5 actual && - test_cmp expect actual +expecting success of 9200.15 'use the same checkout for Git and CVS': + (mkdir shared && + cd shared && + sane_unset GIT_DIR && + cvs co . && + git init && + git add " space" && + git commit -m "fake initial commit" && + echo Hello >> " space" && + git commit -m "Another change" " space" && + git cvsexportcommit -W -p -u -c HEAD && + grep Hello " space" && + git diff-files) -fast-import statistics: ---------------------------------------------------------------------- -Alloc'd objects: 5000 -Total objects: 46 ( 282 duplicates ) - blobs : 8 ( 248 duplicates 0 deltas of 7 attempts) - trees : 2 ( 34 duplicates 1 deltas of 1 attempts) - commits: 36 ( 0 duplicates 0 deltas of 0 attempts) - tags : 0 ( 0 duplicates 0 deltas of 0 attempts) -Total branches: 11 ( 21 loads ) - marks: 1024 ( 16 unique ) - atoms: 17 -Memory total: 2434 KiB - pools: 2122 KiB - objects: 312 KiB ---------------------------------------------------------------------- -pack_report: getpagesize() = 4096 -pack_report: core.packedGitWindowSize = 33554432 -pack_report: core.packedGitLimit = 268435456 -pack_report: pack_used_ctr = 10 -pack_report: pack_mmap_calls = 10 -pack_report: pack_open_windows = 0 / 1 -pack_report: pack_mapped = 0 / 6351 ---------------------------------------------------------------------- -ok 17 - add notes to 16 commits in each of 10 refs +cvs checkout: Updating . +U space +U DS +U attic_gremlin +U release-notes +cvs checkout: Updating A +cvs checkout: Updating B +cvs checkout: Updating C +cvs checkout: Updating CVSROOT +U CVSROOT/checkoutlist +U CVSROOT/commitinfo +U CVSROOT/config +U CVSROOT/cvswrappers +U CVSROOT/loginfo +U CVSROOT/modules +U CVSROOT/notify +U CVSROOT/postadmin +U CVSROOT/postproxy +U CVSROOT/posttag +U CVSROOT/postwatch +U CVSROOT/preproxy +U CVSROOT/rcsinfo +U CVSROOT/taginfo +U CVSROOT/verifymsg +cvs checkout: Updating D +cvs checkout: Updating E +U E/DS +U E/newfile5.txt +cvs checkout: Updating F +U F/newfile6.png +cvs checkout: Updating G +U G/off +U G/on +cvs checkout: Updating G g +U G g/with spaces.png +U G g/with spaces.txt +cvs checkout: Updating W +U W/file1.txt +U W/file2.txt +cvs checkout: Updating Ã… +cvs checkout: Updating Ã…/goo +cvs checkout: Updating Ã…/goo/a +cvs checkout: Updating Ã…/goo/a/b +cvs checkout: Updating Ã…/goo/a/b/c +cvs checkout: Updating Ã…/goo/a/b/c/d +cvs checkout: Updating Ã…/goo/a/b/c/d/e +cvs checkout: Updating Ã…/goo/a/b/c/d/e/f +cvs checkout: Updating Ã…/goo/a/b/c/d/e/f/g +cvs checkout: Updating Ã…/goo/a/b/c/d/e/f/g/h +cvs checkout: Updating Ã…/goo/a/b/c/d/e/f/g/h/i +cvs checkout: Updating Ã…/goo/a/b/c/d/e/f/g/h/i/j +cvs checkout: Updating Ã…/goo/a/b/c/d/e/f/g/h/i/j/k +cvs checkout: Updating Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l +cvs checkout: Updating Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m +cvs checkout: Updating Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n +cvs checkout: Updating Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o +cvs checkout: Updating Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p +cvs checkout: Updating Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q +cvs checkout: Updating Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r +cvs checkout: Updating Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s +cvs checkout: Updating Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t +cvs checkout: Updating Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u +cvs checkout: Updating Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v +cvs checkout: Updating Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w +cvs checkout: Updating Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x +cvs checkout: Updating Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y +cvs checkout: Updating Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z +cvs checkout: Updating Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/Ã¥ +cvs checkout: Updating Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/Ã¥/ä +cvs checkout: Updating Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/Ã¥/ä/ö +U Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/Ã¥/ä/ö/gÃ¥rdetsÃ¥gÃ¥rdet.png +U Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/Ã¥/ä/ö/gÃ¥rdetsÃ¥gÃ¥rdet.txt +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/shared/.git/ +[master (root-commit) 93a1e74] fake initial commit + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 space +[master 6935f1b] Another change + Author: A U Thor + 1 file changed, 1 insertion(+) +Checking if patch will apply +Applying +Patch applied successfully. Adding new files and directories to CVS +Commit to CVS +Patch title (first comment line): Another change +Autocommit + cvs commit -F .msg space +Committed successfully to CVS +HEAD is now at 6935f1b Another change +Hello +ok 15 - use the same checkout for Git and CVS -# passed all 17 test(s) -1..17 +# passed all 15 test(s) +1..15 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' *** t9302-fast-import-unpack-limit.sh *** @@ -410418,7 +409955,7 @@ echo "tag foo" | test_must_fail git fast-import fatal: Expected from command, got -fast-import: dumping crash report to .git/fast_import_crash_12107 +fast-import: dumping crash report to .git/fast_import_crash_11036 ok 2 - truncated stream complains expecting success of 9300.3 'A: create pack from stdin': @@ -410912,7 +410449,7 @@ test_must_fail git fast-import 1234567890 +051800 -fast-import: dumping crash report to .git/fast_import_crash_12686 +fast-import: dumping crash report to .git/fast_import_crash_11723 ok 23 - B: reject invalid timezone expecting success of 9300.24 'B: accept invalid timezone with raw-permissive': @@ -411142,7 +410679,7 @@ test_must_fail git fast-import 1112912233 -0700 -fast-import: dumping crash report to .git/fast_import_crash_12821 +fast-import: dumping crash report to .git/fast_import_crash_11847 ok 26 - B: fail on invalid committer (1) expecting success of 9300.27 'B: fail on invalid committer (2)': @@ -411158,7 +410695,7 @@ test_must_fail git fast-import in ident string: Name 1112912233 -0700 -fast-import: dumping crash report to .git/fast_import_crash_12849 +fast-import: dumping crash report to .git/fast_import_crash_11869 ok 27 - B: fail on invalid committer (2) expecting success of 9300.28 'B: fail on invalid committer (3)': @@ -411174,7 +410711,7 @@ test_must_fail git fast-import in ident string: Name > 1112912233 -0700 -fast-import: dumping crash report to .git/fast_import_crash_12875 +fast-import: dumping crash report to .git/fast_import_crash_11886 ok 28 - B: fail on invalid committer (3) expecting success of 9300.29 'B: fail on invalid committer (4)': @@ -411190,7 +410727,7 @@ test_must_fail git fast-import in ident string: Name 1112912233 -0700 -fast-import: dumping crash report to .git/fast_import_crash_12930 +fast-import: dumping crash report to .git/fast_import_crash_11915 ok 30 - B: fail on invalid committer (5) expecting success of 9300.31 'C: incremental import create pack from stdin': @@ -411439,7 +410976,7 @@ test_must_fail git fast-import --date-format=raw Tue Feb 6 11:22:18 2007 -0500 -fast-import: dumping crash report to .git/fast_import_crash_13251 +fast-import: dumping crash report to .git/fast_import_crash_12235 ok 41 - E: rfc2822 date, --date-format=raw expecting success of 9300.42 'E: rfc2822 date, --date-format=rfc2822': @@ -411838,7 +411375,7 @@ test_must_fail git fast-import file && echo > auto_updated_file && + svn_cmd add file auto_updated_file && + svn_cmd commit -m "initial commit" + ) && + svn_cmd checkout "$svnrepo" work-auto-commits.svn + +Checked out revision 0. +A file +A auto_updated_file +Adding auto_updated_file +Adding file +Transmitting file data ..done +Committing transaction... +Committed revision 1. +A work-auto-commits.svn/auto_updated_file +A work-auto-commits.svn/file +Checked out revision 1. +ok 1 - setup svn repository + +expecting success of 9164.2 'check if post-commit hook creates a concurrent commit': + setup_hook post-commit 1 && + ( + cd work.svn && + cp auto_updated_file au_file_saved && + echo 1 >> file && + svn_cmd commit -m "changing file" && + svn_cmd up && + ! test_cmp auto_updated_file au_file_saved + ) + +Sending file +Transmitting file data .done +Committing transaction... +Committed revision 2. +Updating '.': +U auto_updated_file +Updated to revision 3. +--- auto_updated_file 2023-04-29 18:53:41.547805912 +0000 ++++ au_file_saved 2023-04-29 18:53:40.371916985 +0000 +@@ -1,2 +1 @@ + +-6797 +ok 2 - check if post-commit hook creates a concurrent commit + +expecting success of 9164.3 'check if pre-commit hook fails': + setup_hook pre-commit 2 && + ( + cd work.svn && + echo 2 >> file && + svn_cmd commit -m "changing file once again" && + echo 3 >> file && + ! svn_cmd commit -m "this commit should fail" && + svn_cmd revert file + ) + +Sending file +Transmitting file data .done +Committing transaction... +Committed revision 4. +Sending file +Transmitting file data .done +Committing transaction... +svn: E165001: Commit failed (details follow): +svn: E165001: Commit blocked by pre-commit hook (exit code 1) with no output. +Reverted 'file' +ok 3 - check if pre-commit hook fails + +expecting success of 9164.4 'dcommit error handling': + setup_hook pre-commit 2 && + next_N && git svn clone "$svnrepo" work$N.git && + ( + cd work$N.git && + echo 1 >> file && git commit -am "commit change $N.1" && + echo 2 >> file && git commit -am "commit change $N.2" && + echo 3 >> file && git commit -am "commit change $N.3" && + # should fail to dcommit 2nd and 3rd change + # but still should leave the repository in reasonable state + test_must_fail git svn dcommit && + git update-index --refresh && + git show HEAD~2 | grep -q git-svn-id && + ! git show HEAD~1 | grep -q git-svn-id && + ! git show HEAD | grep -q git-svn-id + ) + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9164-git-svn-dcommit-concurrent/work1.git/.git/ + A auto_updated_file + A file +r1 = 5d940e55271b93697ea2728010e68e508ead27a6 (refs/remotes/git-svn) + M file +r2 = ade3331b12f4e3a4c713cd982027857426df58c7 (refs/remotes/git-svn) + M auto_updated_file +r3 = 79b62b51b116ae5e1db455be804454bbcfe26d7a (refs/remotes/git-svn) + M file +r4 = 24e73d5ddc3b93a7a265033f0a7221533278dd9c (refs/remotes/git-svn) +Checked out HEAD: + file:///build/git-2.30.2/t/trash%20directory.t9164-git-svn-dcommit-concurrent/svnrepo r4 +[master 11c99be] commit change 1.1 + Author: A U Thor + 1 file changed, 1 insertion(+) +[master 6198bfd] commit change 1.2 + Author: A U Thor + 1 file changed, 1 insertion(+) +[master 0e587e7] commit change 1.3 + Author: A U Thor + 1 file changed, 1 insertion(+) +Committing to file:///build/git-2.30.2/t/trash%20directory.t9164-git-svn-dcommit-concurrent/svnrepo ... + M file +Committed r5 + M file +r5 = 12b15de38baad55adc7d701c25aee05536494355 (refs/remotes/git-svn) + M file + +ERROR from SVN: +A repository hook failed: Commit blocked by pre-commit hook (exit code 1) with no output. +W: 0e587e7cc2e092017c3c9ff453752dd9d9b82015 and refs/remotes/git-svn differ, using rebase: +:100644 100644 fb014dd41485c73acf40cd9548cd4cd812fee4ec e6ac0ef8373861d92d8eecf8d88e592606a70872 M file +Rebasing (1/2) Rebasing (2/2) Successfully rebased and updated refs/heads/master. +ERROR: Not all changes have been committed into SVN, however the committed +ones (if any) seem to be successfully integrated into the working tree. +Please see the above messages for details. + +ok 4 - dcommit error handling + +expecting success of 9164.5 'dcommit concurrent change in non-changed file': + setup_hook post-commit 2 && + next_N && git svn clone "$svnrepo" work$N.git && + ( + cd work$N.git && + echo 1 >> file && git commit -am "commit change $N.1" && + echo 2 >> file && git commit -am "commit change $N.2" && + echo 3 >> file && git commit -am "commit change $N.3" && + # should rebase and leave the repository in reasonable state + git svn dcommit && + git update-index --refresh && + check_contents && + git show HEAD~3 | grep -q git-svn-id && + git show HEAD~2 | grep -q git-svn-id && + git show HEAD~1 | grep -q auto-committing && + git show HEAD | grep -q git-svn-id + ) + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9164-git-svn-dcommit-concurrent/work2.git/.git/ + A auto_updated_file + A file +r1 = 5d940e55271b93697ea2728010e68e508ead27a6 (refs/remotes/git-svn) + M file +r2 = ade3331b12f4e3a4c713cd982027857426df58c7 (refs/remotes/git-svn) + M auto_updated_file +r3 = 79b62b51b116ae5e1db455be804454bbcfe26d7a (refs/remotes/git-svn) + M file +r4 = 24e73d5ddc3b93a7a265033f0a7221533278dd9c (refs/remotes/git-svn) + M file +r5 = 12b15de38baad55adc7d701c25aee05536494355 (refs/remotes/git-svn) +Checked out HEAD: + file:///build/git-2.30.2/t/trash%20directory.t9164-git-svn-dcommit-concurrent/svnrepo r5 +[master 9ca8b2e] commit change 2.1 + Author: A U Thor + 1 file changed, 1 insertion(+) +[master 9b21e26] commit change 2.2 + Author: A U Thor + 1 file changed, 1 insertion(+) +[master 3a34206] commit change 2.3 + Author: A U Thor + 1 file changed, 1 insertion(+) +Committing to file:///build/git-2.30.2/t/trash%20directory.t9164-git-svn-dcommit-concurrent/svnrepo ... + M file +Committed r6 + M file +r6 = d85d5c173dd853864fd4875900b8e242c5a33275 (refs/remotes/git-svn) + M file +Committed r7 + M file +r7 = 9b60fb5a695060dba6fae736489aaa90fbd0543d (refs/remotes/git-svn) + M auto_updated_file +r8 = 2a2c1a438decb6c5cf2df0326ff94dcfbce52f79 (refs/remotes/git-svn) +W: 9b21e26727112db7d21484ca385aa81a6a60dc33 and refs/remotes/git-svn differ, using rebase: +:100644 100644 201ed4918e68a42c12d4c957c6c0a616c94ff250 e8428812c396dbe67b77f815cf928fe776b34676 M auto_updated_file +Rebasing (1/1) Successfully rebased and updated refs/heads/master. + M file +Committed r9 + M file +r9 = e7adb2133ed2b1e83dd77c2b73ed7ae4bf873caf (refs/remotes/git-svn) +No changes between 831f3c165fa93badcd898ca0db7f5da1d817dc67 and refs/remotes/git-svn +Resetting to the latest refs/remotes/git-svn +Updating '.': +U file +U auto_updated_file +Updated to revision 9. +ok 5 - dcommit concurrent change in non-changed file + +expecting success of 9164.6 'dcommit concurrent non-conflicting change': + setup_hook post-commit 2 && + next_N && git svn clone "$svnrepo" work$N.git && + ( + cd work$N.git && + cat file >> auto_updated_file && + git commit -am "commit change $N.1" && + delete_first_line auto_updated_file && + git commit -am "commit change $N.2" && + delete_first_line auto_updated_file && + git commit -am "commit change $N.3" && + # should rebase and leave the repository in reasonable state + git svn dcommit && + git update-index --refresh && + check_contents && + git show HEAD~3 | grep -q git-svn-id && + git show HEAD~2 | grep -q git-svn-id && + git show HEAD~1 | grep -q auto-committing && + git show HEAD | grep -q git-svn-id + ) + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9164-git-svn-dcommit-concurrent/work3.git/.git/ + A auto_updated_file + A file +r1 = 5d940e55271b93697ea2728010e68e508ead27a6 (refs/remotes/git-svn) + M file +r2 = ade3331b12f4e3a4c713cd982027857426df58c7 (refs/remotes/git-svn) + M auto_updated_file +r3 = 79b62b51b116ae5e1db455be804454bbcfe26d7a (refs/remotes/git-svn) + M file +r4 = 24e73d5ddc3b93a7a265033f0a7221533278dd9c (refs/remotes/git-svn) + M file +r5 = 12b15de38baad55adc7d701c25aee05536494355 (refs/remotes/git-svn) + M file +r6 = d85d5c173dd853864fd4875900b8e242c5a33275 (refs/remotes/git-svn) + M file +r7 = 9b60fb5a695060dba6fae736489aaa90fbd0543d (refs/remotes/git-svn) + M auto_updated_file +r8 = 2a2c1a438decb6c5cf2df0326ff94dcfbce52f79 (refs/remotes/git-svn) + M file +r9 = e7adb2133ed2b1e83dd77c2b73ed7ae4bf873caf (refs/remotes/git-svn) +Checked out HEAD: + file:///build/git-2.30.2/t/trash%20directory.t9164-git-svn-dcommit-concurrent/svnrepo r9 +[master 33a239c] commit change 3.1 + Author: A U Thor + 1 file changed, 7 insertions(+) +[master 8b30ff5] commit change 3.2 + Author: A U Thor + 1 file changed, 1 deletion(-) +[master e59f9ae] commit change 3.3 + Author: A U Thor + 1 file changed, 1 deletion(-) +Committing to file:///build/git-2.30.2/t/trash%20directory.t9164-git-svn-dcommit-concurrent/svnrepo ... + M auto_updated_file +Committed r10 + M auto_updated_file +r10 = a52cd2ce9a25030c1b2eb8a8da05eab967d4fee6 (refs/remotes/git-svn) + M auto_updated_file +Committed r11 + M auto_updated_file +r11 = 50abbcd24d7584d56263662cc352163ce72d8c9f (refs/remotes/git-svn) + M auto_updated_file +r12 = 9911f03385ca98154f342df596deb5b5fc7962d0 (refs/remotes/git-svn) +W: 8b30ff5acbc9190a4a8cc461582cbe8bc6e44682 and refs/remotes/git-svn differ, using rebase: +:100644 100644 8b26d04a8ebb4c9fcbfa2a0c19001a3d0b54263c 943bdb432d03a1d5bf105183a4e828b9599ca8cf M auto_updated_file +Rebasing (1/1) Successfully rebased and updated refs/heads/master. + M auto_updated_file +Committed r13 + M auto_updated_file +r13 = 8289e42a934738cb6997b865796240c334089998 (refs/remotes/git-svn) +No changes between 355b894224948a78c493b355145e8d6330f07a77 and refs/remotes/git-svn +Resetting to the latest refs/remotes/git-svn +Updating '.': +U auto_updated_file +Updated to revision 13. +ok 6 - dcommit concurrent non-conflicting change + +expecting success of 9164.7 'dcommit --no-rebase concurrent non-conflicting change': + setup_hook post-commit 2 && + next_N && git svn clone "$svnrepo" work$N.git && + ( + cd work$N.git && + cat file >> auto_updated_file && + git commit -am "commit change $N.1" && + delete_first_line auto_updated_file && + git commit -am "commit change $N.2" && + delete_first_line auto_updated_file && + git commit -am "commit change $N.3" && + # should fail as rebase is needed + test_must_fail git svn dcommit --no-rebase && + # but should leave HEAD unchanged + git update-index --refresh && + ! git show HEAD~2 | grep -q git-svn-id && + ! git show HEAD~1 | grep -q git-svn-id && + ! git show HEAD | grep -q git-svn-id + ) + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9164-git-svn-dcommit-concurrent/work4.git/.git/ + A auto_updated_file + A file +r1 = 5d940e55271b93697ea2728010e68e508ead27a6 (refs/remotes/git-svn) + M file +r2 = ade3331b12f4e3a4c713cd982027857426df58c7 (refs/remotes/git-svn) + M auto_updated_file +r3 = 79b62b51b116ae5e1db455be804454bbcfe26d7a (refs/remotes/git-svn) + M file +r4 = 24e73d5ddc3b93a7a265033f0a7221533278dd9c (refs/remotes/git-svn) + M file +r5 = 12b15de38baad55adc7d701c25aee05536494355 (refs/remotes/git-svn) + M file +r6 = d85d5c173dd853864fd4875900b8e242c5a33275 (refs/remotes/git-svn) + M file +r7 = 9b60fb5a695060dba6fae736489aaa90fbd0543d (refs/remotes/git-svn) + M auto_updated_file +r8 = 2a2c1a438decb6c5cf2df0326ff94dcfbce52f79 (refs/remotes/git-svn) + M file +r9 = e7adb2133ed2b1e83dd77c2b73ed7ae4bf873caf (refs/remotes/git-svn) + M auto_updated_file +r10 = a52cd2ce9a25030c1b2eb8a8da05eab967d4fee6 (refs/remotes/git-svn) + M auto_updated_file +r11 = 50abbcd24d7584d56263662cc352163ce72d8c9f (refs/remotes/git-svn) + M auto_updated_file +r12 = 9911f03385ca98154f342df596deb5b5fc7962d0 (refs/remotes/git-svn) + M auto_updated_file +r13 = 8289e42a934738cb6997b865796240c334089998 (refs/remotes/git-svn) +Checked out HEAD: + file:///build/git-2.30.2/t/trash%20directory.t9164-git-svn-dcommit-concurrent/svnrepo r13 +[master 23cbd41] commit change 4.1 + Author: A U Thor + 1 file changed, 7 insertions(+) +[master 99f1615] commit change 4.2 + Author: A U Thor + 1 file changed, 1 deletion(-) +[master 617bfb6] commit change 4.3 + Author: A U Thor + 1 file changed, 1 deletion(-) +Committing to file:///build/git-2.30.2/t/trash%20directory.t9164-git-svn-dcommit-concurrent/svnrepo ... +Attempting to commit more than one change while --no-rebase is enabled. +If these changes depend on each other, re-running without --no-rebase may be required. at /build/git-2.30.2/git-svn line 896. + M auto_updated_file +Committed r14 + M auto_updated_file +r14 = f6e245137f3d286f71886749cc1bc12213afd365 (refs/remotes/git-svn) + M auto_updated_file +Committed r15 + M auto_updated_file +r15 = 4351e7d1ca8a4ae8f5a528e54befb684997a4584 (refs/remotes/git-svn) + M auto_updated_file +r16 = e39bae35205a221290927dc8bd930a30931762bd (refs/remotes/git-svn) + +ERROR from SVN: +Transaction is out of date: File '/auto_updated_file' is out of date +ERROR: Not all changes have been committed into SVN. +Please see the above messages for details. + +ok 7 - dcommit --no-rebase concurrent non-conflicting change + +expecting success of 9164.8 'dcommit fails on concurrent conflicting change': + setup_hook post-commit 1 && + next_N && git svn clone "$svnrepo" work$N.git && + ( + cd work$N.git && + echo a >> file && + git commit -am "commit change $N.1" && + echo b >> auto_updated_file && + git commit -am "commit change $N.2" && + echo c >> auto_updated_file && + git commit -am "commit change $N.3" && + test_must_fail git svn dcommit && # rebase should fail + test_must_fail git update-index --refresh + ) + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9164-git-svn-dcommit-concurrent/work5.git/.git/ + A auto_updated_file + A file +r1 = 5d940e55271b93697ea2728010e68e508ead27a6 (refs/remotes/git-svn) + M file +r2 = ade3331b12f4e3a4c713cd982027857426df58c7 (refs/remotes/git-svn) + M auto_updated_file +r3 = 79b62b51b116ae5e1db455be804454bbcfe26d7a (refs/remotes/git-svn) + M file +r4 = 24e73d5ddc3b93a7a265033f0a7221533278dd9c (refs/remotes/git-svn) + M file +r5 = 12b15de38baad55adc7d701c25aee05536494355 (refs/remotes/git-svn) + M file +r6 = d85d5c173dd853864fd4875900b8e242c5a33275 (refs/remotes/git-svn) + M file +r7 = 9b60fb5a695060dba6fae736489aaa90fbd0543d (refs/remotes/git-svn) + M auto_updated_file +r8 = 2a2c1a438decb6c5cf2df0326ff94dcfbce52f79 (refs/remotes/git-svn) + M file +r9 = e7adb2133ed2b1e83dd77c2b73ed7ae4bf873caf (refs/remotes/git-svn) + M auto_updated_file +r10 = a52cd2ce9a25030c1b2eb8a8da05eab967d4fee6 (refs/remotes/git-svn) + M auto_updated_file +r11 = 50abbcd24d7584d56263662cc352163ce72d8c9f (refs/remotes/git-svn) + M auto_updated_file +r12 = 9911f03385ca98154f342df596deb5b5fc7962d0 (refs/remotes/git-svn) + M auto_updated_file +r13 = 8289e42a934738cb6997b865796240c334089998 (refs/remotes/git-svn) + M auto_updated_file +r14 = f6e245137f3d286f71886749cc1bc12213afd365 (refs/remotes/git-svn) + M auto_updated_file +r15 = 4351e7d1ca8a4ae8f5a528e54befb684997a4584 (refs/remotes/git-svn) + M auto_updated_file +r16 = e39bae35205a221290927dc8bd930a30931762bd (refs/remotes/git-svn) +Checked out HEAD: + file:///build/git-2.30.2/t/trash%20directory.t9164-git-svn-dcommit-concurrent/svnrepo r16 +[master 2915016] commit change 5.1 + Author: A U Thor + 1 file changed, 1 insertion(+) +[master 3cc7a71] commit change 5.2 + Author: A U Thor + 1 file changed, 1 insertion(+) +[master 0693a0f] commit change 5.3 + Author: A U Thor + 1 file changed, 1 insertion(+) +Committing to file:///build/git-2.30.2/t/trash%20directory.t9164-git-svn-dcommit-concurrent/svnrepo ... + M file +Committed r17 + M file +r17 = de542bf7978d77f44e682f3c631a7e8bdfc9ee7d (refs/remotes/git-svn) + M auto_updated_file +r18 = 24644f5a51a665b8306551b8d1157d434482c479 (refs/remotes/git-svn) +W: 2915016812ad91718033359bdf2b95c15fbdf898 and refs/remotes/git-svn differ, using rebase: +:100644 100644 709ad6f1fef3514739d62ce2b7b1f3965dddf502 492b1ade42647df9a6c74a2a60eb21d621e741c2 M auto_updated_file +Rebasing (1/2) error: could not apply 3cc7a71... commit change 5.2 +Resolve all conflicts manually, mark them as resolved with +"git add/rm ", then run "git rebase --continue". +You can instead skip this commit: run "git rebase --skip". +To abort and get back to the state before "git rebase", run "git rebase --abort". +Could not apply 3cc7a71... commit change 5.2 +Auto-merging auto_updated_file +CONFLICT (content): Merge conflict in auto_updated_file +rebase refs/remotes/git-svn: command returned error: 1 + +auto_updated_file: needs merge +ok 8 - dcommit fails on concurrent conflicting change + +# passed all 8 test(s) +1..8 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t9303-fast-import-compression.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9303-fast-import-compression/.git/ expecting success of 9303.1 'fast-import (packed) with -c core.compression=0': @@ -417331,8 +417357,8 @@ test_line_count = 1 unique && ! test_cmp authors committers ---- authors 2023-04-29 16:56:38.141841214 +0000 -+++ committers 2023-04-29 16:56:38.153840051 +0000 +--- authors 2023-04-29 18:55:52.395446749 +0000 ++++ committers 2023-04-29 18:55:52.483438438 +0000 @@ -1,6 +1,6 @@ -User 1 -User 1 @@ -418303,8 +418329,8 @@ test_cmp expected output ) ---- expected 2023-04-29 16:56:39.589700884 +0000 -+++ output 2023-04-29 16:56:39.609698946 +0000 +--- expected 2023-04-29 18:56:02.346506872 +0000 ++++ output 2023-04-29 18:56:02.498492517 +0000 @@ -8,8 +8,7 @@ data 3 hi @@ -418902,717 +418928,522 @@ 1..49 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t9200-git-cvsexportcommit.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/.git/ -checking prerequisite: NOT_ROOT +*** t9301-fast-import-notes.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9301-fast-import-notes/.git/ +expecting success of 9301.1 'set up master branch': -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-NOT_ROOT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-NOT_ROOT" && - uid=$(id -u) && - test "$uid" != 0 + git fast-import A/newfile1.txt && - echo hello2 >B/newfile2.txt && - cp "$TEST_DIRECTORY"/test-binary-1.png C/newfile3.png && - cp "$TEST_DIRECTORY"/test-binary-1.png D/newfile4.png && - git add A/newfile1.txt && - git add B/newfile2.txt && - git add C/newfile3.png && - git add D/newfile4.png && - git commit -a -m "Test: New file" && - id=$(git rev-list --max-count=1 HEAD) && - (cd "$CVSWORK" && - git cvsexportcommit -c $id && - check_entries A "newfile1.txt/1.1/" && - check_entries B "newfile2.txt/1.1/" && - check_entries C "newfile3.png/1.1/-kb" && - check_entries D "newfile4.png/1.1/-kb" && - test_cmp A/newfile1.txt ../A/newfile1.txt && - test_cmp B/newfile2.txt ../B/newfile2.txt && - test_cmp C/newfile3.png ../C/newfile3.png && - test_cmp D/newfile4.png ../D/newfile4.png - ) -[master 288d750] Test: New file - Author: A U Thor - 4 files changed, 2 insertions(+) - create mode 100644 A/newfile1.txt - create mode 100644 B/newfile2.txt - create mode 100644 C/newfile3.png - create mode 100644 D/newfile4.png -Checking if patch will apply -Applying -Patch applied successfully. Adding new files and directories to CVS -Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/D put under version control -Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/C put under version control -Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/B put under version control -Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/A put under version control -cvs add: scheduling file `A/newfile1.txt' for addition -cvs add: use `cvs commit' to add this file permanently -cvs add: scheduling file `B/newfile2.txt' for addition -cvs add: use `cvs commit' to add this file permanently -cvs add: scheduling file `C/newfile3.png' for addition -cvs add: use `cvs commit' to add this file permanently -cvs add: scheduling file `D/newfile4.png' for addition -cvs add: use `cvs commit' to add this file permanently -Commit to CVS -Patch title (first comment line): Test: New file -Autocommit - cvs commit -F .msg 'A/newfile1.txt' 'B/newfile2.txt' 'C/newfile3.png' 'D/newfile4.png' -/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/A/newfile1.txt,v <-- A/newfile1.txt -initial revision: 1.1 -/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/B/newfile2.txt,v <-- B/newfile2.txt -initial revision: 1.1 -/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/C/newfile3.png,v <-- C/newfile3.png -initial revision: 1.1 -/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/D/newfile4.png,v <-- D/newfile4.png -initial revision: 1.1 -Committed successfully to CVS -ok 1 - New file +fast-import statistics: +--------------------------------------------------------------------- +Alloc'd objects: 5000 +Total objects: 17 ( 0 duplicates ) + blobs : 7 ( 0 duplicates 0 deltas of 6 attempts) + trees : 6 ( 0 duplicates 3 deltas of 4 attempts) + commits: 4 ( 0 duplicates 0 deltas of 0 attempts) + tags : 0 ( 0 duplicates 0 deltas of 0 attempts) +Total branches: 1 ( 1 loads ) + marks: 1024 ( 0 unique ) + atoms: 4 +Memory total: 2434 KiB + pools: 2122 KiB + objects: 312 KiB +--------------------------------------------------------------------- +pack_report: getpagesize() = 4096 +pack_report: core.packedGitWindowSize = 33554432 +pack_report: core.packedGitLimit = 268435456 +pack_report: pack_used_ctr = 0 +pack_report: pack_mmap_calls = 0 +pack_report: pack_open_windows = 0 / 0 +pack_report: pack_mapped = 0 / 0 +--------------------------------------------------------------------- -expecting success of 9200.2 'Remove two files, add two and update two': echo Hello1 >>A/newfile1.txt && - rm -f B/newfile2.txt && - rm -f C/newfile3.png && - echo Hello5 >E/newfile5.txt && - cp "$TEST_DIRECTORY"/test-binary-2.png D/newfile4.png && - cp "$TEST_DIRECTORY"/test-binary-1.png F/newfile6.png && - git add E/newfile5.txt && - git add F/newfile6.png && - git commit -a -m "Test: Remove, add and update" && - id=$(git rev-list --max-count=1 HEAD) && - (cd "$CVSWORK" && - git cvsexportcommit -c $id && - check_entries A "newfile1.txt/1.2/" && - check_entries B "" && - check_entries C "" && - check_entries D "newfile4.png/1.2/-kb" && - check_entries E "newfile5.txt/1.1/" && - check_entries F "newfile6.png/1.1/-kb" && - test_cmp A/newfile1.txt ../A/newfile1.txt && - test_cmp D/newfile4.png ../D/newfile4.png && - test_cmp E/newfile5.txt ../E/newfile5.txt && - test_cmp F/newfile6.png ../F/newfile6.png - ) -[master 69b0239] Test: Remove, add and update - Author: A U Thor - 5 files changed, 2 insertions(+), 1 deletion(-) - delete mode 100644 B/newfile2.txt - rewrite D/newfile4.png (99%) - create mode 100644 E/newfile5.txt - rename C/newfile3.png => F/newfile6.png (100%) -Checking if patch will apply -Applying -Patch applied successfully. Adding new files and directories to CVS -Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/F put under version control -Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/E put under version control -cvs add: scheduling file `E/newfile5.txt' for addition -cvs add: use `cvs commit' to add this file permanently -cvs add: scheduling file `F/newfile6.png' for addition -cvs add: use `cvs commit' to add this file permanently -cvs remove: scheduling `B/newfile2.txt' for removal -cvs remove: use `cvs commit' to remove this file permanently -cvs remove: scheduling `C/newfile3.png' for removal -cvs remove: use `cvs commit' to remove this file permanently -Commit to CVS -Patch title (first comment line): Test: Remove, add and update -Autocommit - cvs commit -F .msg 'A/newfile1.txt' 'B/newfile2.txt' 'C/newfile3.png' 'D/newfile4.png' 'E/newfile5.txt' 'F/newfile6.png' -/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/A/newfile1.txt,v <-- A/newfile1.txt -new revision: 1.2; previous revision: 1.1 -/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/B/newfile2.txt,v <-- B/newfile2.txt -new revision: delete; previous revision: 1.1 -/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/C/newfile3.png,v <-- C/newfile3.png -new revision: delete; previous revision: 1.1 -/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/D/newfile4.png,v <-- D/newfile4.png -new revision: 1.2; previous revision: 1.1 -/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/E/newfile5.txt,v <-- E/newfile5.txt -initial revision: 1.1 -/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/F/newfile6.png,v <-- F/newfile6.png -initial revision: 1.1 -Committed successfully to CVS -ok 2 - Remove two files, add two and update two +commit 9a93771a958bca801f51ff270bc677be08b70970 +Author: C O Mitter +Date: Thu Apr 7 15:13:13 2005 -0700 -expecting success of 9200.3 'Fail to change binary more than one generation old': cat F/newfile6.png >>D/newfile4.png && - git commit -a -m "generatiion 1" && - cat F/newfile6.png >>D/newfile4.png && - git commit -a -m "generation 2" && - id=$(git rev-list --max-count=1 HEAD) && - (cd "$CVSWORK" && - test_must_fail git cvsexportcommit -c $id - ) -[master 70e0115] generatiion 1 - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) -[master d73a469] generation 2 - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) -Checking if patch will apply -Applying -error: the patch applies to 'D/newfile4.png' (ac22ccbd3ee9f03a3b38249ac8efdbe96b5da2cd), which does not match the current contents. -error: D/newfile4.png: patch does not apply -cannot patch at /build/git-2.30.2/git-cvsexportcommit line 338. -ok 3 - Fail to change binary more than one generation old + fourth commit -expecting success of 9200.4 'Remove only binary files': git reset --hard HEAD^^ && - rm -f D/newfile4.png && - git commit -a -m "test: remove only a binary file" && - id=$(git rev-list --max-count=1 HEAD) && - (cd "$CVSWORK" && - git cvsexportcommit -c $id && - check_entries A "newfile1.txt/1.2/" && - check_entries B "" && - check_entries C "" && - check_entries D "" && - check_entries E "newfile5.txt/1.1/" && - check_entries F "newfile6.png/1.1/-kb" && - test_cmp A/newfile1.txt ../A/newfile1.txt && - test_cmp E/newfile5.txt ../E/newfile5.txt && - test_cmp F/newfile6.png ../F/newfile6.png - ) -HEAD is now at 69b0239 Test: Remove, add and update -[master 2a45f53] test: remove only a binary file - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - delete mode 100644 D/newfile4.png -Checking if patch will apply -Applying -Patch applied successfully. Adding new files and directories to CVS -cvs remove: scheduling `D/newfile4.png' for removal -cvs remove: use `cvs commit' to remove this file permanently -Commit to CVS -Patch title (first comment line): test: remove only a binary file -Autocommit - cvs commit -F .msg 'D/newfile4.png' -/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/D/newfile4.png,v <-- D/newfile4.png -new revision: delete; previous revision: 1.2 -Committed successfully to CVS -ok 4 - Remove only binary files +:100755 100755 3c9b917 98d1b63 M bar -expecting success of 9200.5 'Remove only a text file': rm -f A/newfile1.txt && - git commit -a -m "test: remove only a binary file" && - id=$(git rev-list --max-count=1 HEAD) && - (cd "$CVSWORK" && - git cvsexportcommit -c $id && - check_entries A "" && - check_entries B "" && - check_entries C "" && - check_entries D "" && - check_entries E "newfile5.txt/1.1/" && - check_entries F "newfile6.png/1.1/-kb" && - test_cmp E/newfile5.txt ../E/newfile5.txt && - test_cmp F/newfile6.png ../F/newfile6.png - ) -[master fa834fd] test: remove only a binary file - Author: A U Thor - 1 file changed, 2 deletions(-) - delete mode 100644 A/newfile1.txt -Checking if patch will apply -Applying -Patch applied successfully. Adding new files and directories to CVS -cvs remove: scheduling `A/newfile1.txt' for removal -cvs remove: use `cvs commit' to remove this file permanently -Commit to CVS -Patch title (first comment line): test: remove only a binary file -Autocommit - cvs commit -F .msg 'A/newfile1.txt' -/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/A/newfile1.txt,v <-- A/newfile1.txt -new revision: delete; previous revision: 1.2 -Committed successfully to CVS -ok 5 - Remove only a text file +commit dbe3ab44992634d04709231cc00251483e46cff8 +Author: C O Mitter +Date: Thu Apr 7 15:13:13 2005 -0700 -expecting success of 9200.6 'New file with spaces in file name': mkdir "G g" && - echo ok then >"G g/with spaces.txt" && - git add "G g/with spaces.txt" && \ - cp "$TEST_DIRECTORY"/test-binary-1.png "G g/with spaces.png" && \ - git add "G g/with spaces.png" && - git commit -a -m "With spaces" && - id=$(git rev-list --max-count=1 HEAD) && - (cd "$CVSWORK" && - git cvsexportcommit -c $id && - check_entries "G g" "with spaces.png/1.1/-kb|with spaces.txt/1.1/" - ) -[master 7dad360] With spaces - Author: A U Thor - 2 files changed, 1 insertion(+) - create mode 100644 G g/with spaces.png - create mode 100644 G g/with spaces.txt -Checking if patch will apply -Applying -Patch applied successfully. Adding new files and directories to CVS -Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/G g put under version control -cvs add: scheduling file `G g/with spaces.png' for addition -cvs add: use `cvs commit' to add this file permanently -cvs add: scheduling file `G g/with spaces.txt' for addition -cvs add: use `cvs commit' to add this file permanently -Commit to CVS -Patch title (first comment line): With spaces -Autocommit - cvs commit -F .msg G g/with spaces.png G g/with spaces.txt -/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/G g/with spaces.png,v <-- G g/with spaces.png -initial revision: 1.1 -/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/G g/with spaces.txt,v <-- G g/with spaces.txt -initial revision: 1.1 -Committed successfully to CVS -ok 6 - New file with spaces in file name + third commit -expecting success of 9200.7 'Update file with spaces in file name': echo Ok then >>"G g/with spaces.txt" && - cat "$TEST_DIRECTORY"/test-binary-1.png >>"G g/with spaces.png" && \ - git add "G g/with spaces.png" && - git commit -a -m "Update with spaces" && - id=$(git rev-list --max-count=1 HEAD) && - (cd "$CVSWORK" && - git cvsexportcommit -c $id && - check_entries "G g" "with spaces.png/1.2/-kb|with spaces.txt/1.2/" - ) -[master 200512b] Update with spaces - Author: A U Thor - 2 files changed, 1 insertion(+) -Checking if patch will apply -Applying -Patch applied successfully. Adding new files and directories to CVS -Commit to CVS -Patch title (first comment line): Update with spaces -Autocommit - cvs commit -F .msg G g/with spaces.png G g/with spaces.txt -/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/G g/with spaces.png,v <-- G g/with spaces.png -new revision: 1.2; previous revision: 1.1 -/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/G g/with spaces.txt,v <-- G g/with spaces.txt -new revision: 1.2; previous revision: 1.1 -Committed successfully to CVS -ok 7 - Update file with spaces in file name +:100644 100644 215df20 634bd2b M foo -expecting success of 9200.8 'File with non-ascii file name': mkdir -p Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/Ã¥/ä/ö && - echo Foo >Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/Ã¥/ä/ö/gÃ¥rdetsÃ¥gÃ¥rdet.txt && - git add Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/Ã¥/ä/ö/gÃ¥rdetsÃ¥gÃ¥rdet.txt && - cp "$TEST_DIRECTORY"/test-binary-1.png Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/Ã¥/ä/ö/gÃ¥rdetsÃ¥gÃ¥rdet.png && - git add Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/Ã¥/ä/ö/gÃ¥rdetsÃ¥gÃ¥rdet.png && - git commit -a -m "GÃ¥r det sÃ¥ gÃ¥r det" && \ - id=$(git rev-list --max-count=1 HEAD) && - (cd "$CVSWORK" && - git cvsexportcommit -v -c $id && - check_entries \ - "Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/Ã¥/ä/ö" \ - "gÃ¥rdetsÃ¥gÃ¥rdet.png/1.1/-kb|gÃ¥rdetsÃ¥gÃ¥rdet.txt/1.1/" - ) -[master 2dba919] GÃ¥r det sÃ¥ gÃ¥r det - Author: A U Thor - 2 files changed, 1 insertion(+) - create mode 100644 "\303\205/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/\303\245/\303\244/\303\266/g\303\245rdets\303\245g\303\245rdet.png" - create mode 100644 "\303\205/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/\303\245/\303\244/\303\266/g\303\245rdets\303\245g\303\245rdet.txt" -Applying to CVS commit 2dba9190cda577aa84017fec4349519cd1aadafb from parent 200512bccb19b444ac4f1e098c7d7d3578864bb4 -Checking if patch will apply -Applying -Patch applied successfully. Adding new files and directories to CVS -Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã… put under version control -Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo put under version control -Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a put under version control -Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b put under version control -Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c put under version control -Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d put under version control -Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e put under version control -Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f put under version control -Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g put under version control -Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h put under version control -Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h/i put under version control -Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h/i/j put under version control -Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h/i/j/k put under version control -Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l put under version control -Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m put under version control -Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n put under version control -Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o put under version control -Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p put under version control -Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q put under version control -Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r put under version control -Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s put under version control -Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t put under version control -Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u put under version control -Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v put under version control -Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w put under version control -Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x put under version control -Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y put under version control -Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z put under version control -Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/Ã¥ put under version control -Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/Ã¥/ä put under version control -Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/Ã¥/ä/ö put under version control -cvs add: scheduling file `Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/Ã¥/ä/ö/gÃ¥rdetsÃ¥gÃ¥rdet.png' for addition -cvs add: use `cvs commit' to add this file permanently -cvs add: scheduling file `Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/Ã¥/ä/ö/gÃ¥rdetsÃ¥gÃ¥rdet.txt' for addition -cvs add: use `cvs commit' to add this file permanently -Commit to CVS -Patch title (first comment line): GÃ¥r det sÃ¥ gÃ¥r det -Autocommit - cvs commit -F .msg 'Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/Ã¥/ä/ö/gÃ¥rdetsÃ¥gÃ¥rdet.png' 'Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/Ã¥/ä/ö/gÃ¥rdetsÃ¥gÃ¥rdet.txt' -/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/Ã¥/ä/ö/gÃ¥rdetsÃ¥gÃ¥rdet.png,v <-- Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/Ã¥/ä/ö/gÃ¥rdetsÃ¥gÃ¥rdet.png -initial revision: 1.1 -/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/Ã¥/ä/ö/gÃ¥rdetsÃ¥gÃ¥rdet.txt,v <-- Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/Ã¥/ä/ö/gÃ¥rdetsÃ¥gÃ¥rdet.txt -initial revision: 1.1 -Committed successfully to CVS -ok 8 - File with non-ascii file name +commit bcc89d2db5d163929b6fbd169c2559b47a076acb +Author: C O Mitter +Date: Thu Apr 7 15:13:13 2005 -0700 -expecting success of 9200.9 'Mismatching patch should fail': date >>"E/newfile5.txt" && - git add "E/newfile5.txt" && - git commit -a -m "Update one" && - date >>"E/newfile5.txt" && - git add "E/newfile5.txt" && - git commit -a -m "Update two" && - id=$(git rev-list --max-count=1 HEAD) && - (cd "$CVSWORK" && - test_must_fail git cvsexportcommit -c $id - ) -[master 1ff3c33] Update one - Author: A U Thor - 1 file changed, 1 insertion(+) -[master d64a076] Update two - Author: A U Thor - 1 file changed, 1 insertion(+) -Checking if patch will apply -Applying -error: patch failed: E/newfile5.txt:1 -error: E/newfile5.txt: patch does not apply -cannot patch at /build/git-2.30.2/git-cvsexportcommit line 338. -ok 9 - Mismatching patch should fail + second commit -checking prerequisite: FILEMODE +:100644 100755 532386d be960bf M baz/xyzzy +:100644 100644 df023b2 215df20 M foo -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-FILEMODE" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-FILEMODE" && - test "$(git config --bool core.filemode)" = true +commit 49f8b007d515fc33aed8245ee498753d4270cc78 +Author: C O Mitter +Date: Thu Apr 7 15:13:13 2005 -0700 -) -prerequisite FILEMODE ok -expecting success of 9200.10 'Retain execute bit': mkdir G && - echo executeon >G/on && - chmod +x G/on && - echo executeoff >G/off && - git add G/on && - git add G/off && - git commit -a -m "Execute test" && - (cd "$CVSWORK" && - git cvsexportcommit -c HEAD && - test -x G/on && - ! test -x G/off - ) -[master b797f9b] Execute test - Author: A U Thor - 2 files changed, 2 insertions(+) - create mode 100644 G/off - create mode 100755 G/on -Checking if patch will apply -Applying -Patch applied successfully. Adding new files and directories to CVS -Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/G put under version control -cvs add: scheduling file `G/off' for addition -cvs add: use `cvs commit' to add this file permanently -cvs add: scheduling file `G/on' for addition -cvs add: use `cvs commit' to add this file permanently -Commit to CVS -Patch title (first comment line): Execute test -Autocommit - cvs commit -F .msg 'G/off' 'G/on' -/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/G/off,v <-- G/off -initial revision: 1.1 -/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/G/on,v <-- G/on -initial revision: 1.1 -Committed successfully to CVS -ok 10 - Retain execute bit + first commit -expecting success of 9200.11 '-w option should work with relative GIT_DIR': - mkdir W && - echo foobar >W/file1.txt && - echo bazzle >W/file2.txt && - git add W/file1.txt && - git add W/file2.txt && - git commit -m "More updates" && - id=$(git rev-list --max-count=1 HEAD) && - (cd "$GIT_DIR" && - GIT_DIR=. git cvsexportcommit -w "$CVSWORK" -c $id && - check_entries "$CVSWORK/W" "file1.txt/1.1/|file2.txt/1.1/" && - test_cmp "$CVSWORK/W/file1.txt" ../W/file1.txt && - test_cmp "$CVSWORK/W/file2.txt" ../W/file2.txt - ) +:000000 100755 0000000 3c9b917 A bar +:000000 100644 0000000 532386d A baz/xyzzy +:000000 100644 0000000 df023b2 A foo +ok 1 - set up master branch -[master 99f6403] More updates - Author: A U Thor - 2 files changed, 2 insertions(+) - create mode 100644 W/file1.txt - create mode 100644 W/file2.txt -Checking if patch will apply -Applying -Patch applied successfully. Adding new files and directories to CVS -Directory /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/W put under version control -cvs add: scheduling file `W/file1.txt' for addition -cvs add: use `cvs commit' to add this file permanently -cvs add: scheduling file `W/file2.txt' for addition -cvs add: use `cvs commit' to add this file permanently -Commit to CVS -Patch title (first comment line): More updates -Autocommit - cvs commit -F .msg 'W/file1.txt' 'W/file2.txt' -/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/W/file1.txt,v <-- W/file1.txt -initial revision: 1.1 -/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/W/file2.txt,v <-- W/file2.txt -initial revision: 1.1 -Committed successfully to CVS -ok 11 - -w option should work with relative GIT_DIR +expecting success of 9301.2 'add notes with simple M command': -expecting success of 9200.12 'check files before directories': + git fast-import actual && + test_cmp expect actual - echo Notes > release-notes && - git add release-notes && - git commit -m "Add release notes" release-notes && - id=$(git rev-parse HEAD) && - git cvsexportcommit -w "$CVSWORK" -c $id && - echo new > DS && - echo new > E/DS && - echo modified > release-notes && - git add DS E/DS release-notes && - git commit -m "Add two files with the same basename" && - id=$(git rev-parse HEAD) && - git cvsexportcommit -w "$CVSWORK" -c $id && - check_entries "$CVSWORK/E" "DS/1.1/|newfile5.txt/1.1/" && - check_entries "$CVSWORK" "DS/1.1/|release-notes/1.2/" && - test_cmp "$CVSWORK/DS" DS && - test_cmp "$CVSWORK/E/DS" E/DS && - test_cmp "$CVSWORK/release-notes" release-notes +fast-import statistics: +--------------------------------------------------------------------- +Alloc'd objects: 5000 +Total objects: 4 ( 0 duplicates ) + blobs : 2 ( 0 duplicates 0 deltas of 1 attempts) + trees : 1 ( 0 duplicates 0 deltas of 0 attempts) + commits: 1 ( 0 duplicates 0 deltas of 0 attempts) + tags : 0 ( 0 duplicates 0 deltas of 0 attempts) +Total branches: 1 ( 1 loads ) + marks: 1024 ( 0 unique ) + atoms: 2 +Memory total: 2434 KiB + pools: 2122 KiB + objects: 312 KiB +--------------------------------------------------------------------- +pack_report: getpagesize() = 4096 +pack_report: core.packedGitWindowSize = 33554432 +pack_report: core.packedGitLimit = 268435456 +pack_report: pack_used_ctr = 0 +pack_report: pack_mmap_calls = 0 +pack_report: pack_open_windows = 0 / 0 +pack_report: pack_mapped = 0 / 0 +--------------------------------------------------------------------- +ok 2 - add notes with simple M command -[master e738d27] Add release notes - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 release-notes -Checking if patch will apply -cvs status: nothing known about `release-notes' -Applying -Patch applied successfully. Adding new files and directories to CVS -cvs add: scheduling file `release-notes' for addition -cvs add: use `cvs commit' to add this file permanently -Commit to CVS -Patch title (first comment line): Add release notes -Autocommit - cvs commit -F .msg 'release-notes' -/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/release-notes,v <-- release-notes -initial revision: 1.1 -Committed successfully to CVS -[master 52ca47e] Add two files with the same basename - Author: A U Thor - 3 files changed, 3 insertions(+), 1 deletion(-) - create mode 100644 DS - create mode 100644 E/DS -Checking if patch will apply -cvs status: nothing known about `E/DS' -cvs status: nothing known about `DS' -Applying -Patch applied successfully. Adding new files and directories to CVS -cvs add: scheduling file `DS' for addition -cvs add: use `cvs commit' to add this file permanently -cvs add: scheduling file `E/DS' for addition -cvs add: use `cvs commit' to add this file permanently -Commit to CVS -Patch title (first comment line): Add two files with the same basename -Autocommit - cvs commit -F .msg 'DS' 'E/DS' 'release-notes' -/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/DS,v <-- DS -initial revision: 1.1 -/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/release-notes,v <-- release-notes -new revision: 1.2; previous revision: 1.1 -/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/E/DS,v <-- E/DS -initial revision: 1.1 -Committed successfully to CVS -ok 12 - check files before directories +expecting success of 9301.3 'add notes with simple N command': -expecting success of 9200.13 're-commit a removed filename which remains in CVS attic': + git fast-import actual && + test_cmp expect actual - (cd "$CVSWORK" && - echo >attic_gremlin && - cvs -Q add attic_gremlin && - cvs -Q ci -m "added attic_gremlin" && - rm attic_gremlin && - cvs -Q rm attic_gremlin && - cvs -Q ci -m "removed attic_gremlin") && - echo > attic_gremlin && - git add attic_gremlin && - git commit -m "Added attic_gremlin" && - git cvsexportcommit -w "$CVSWORK" -c HEAD && - (cd "$CVSWORK" && cvs -Q update -d) && - test -f "$CVSWORK/attic_gremlin" +fast-import statistics: +--------------------------------------------------------------------- +Alloc'd objects: 5000 +Total objects: 4 ( 0 duplicates ) + blobs : 2 ( 0 duplicates 0 deltas of 1 attempts) + trees : 1 ( 0 duplicates 0 deltas of 0 attempts) + commits: 1 ( 0 duplicates 0 deltas of 0 attempts) + tags : 0 ( 0 duplicates 0 deltas of 0 attempts) +Total branches: 1 ( 1 loads ) + marks: 1024 ( 0 unique ) + atoms: 4 +Memory total: 2434 KiB + pools: 2122 KiB + objects: 312 KiB +--------------------------------------------------------------------- +pack_report: getpagesize() = 4096 +pack_report: core.packedGitWindowSize = 33554432 +pack_report: core.packedGitLimit = 268435456 +pack_report: pack_used_ctr = 0 +pack_report: pack_mmap_calls = 0 +pack_report: pack_open_windows = 0 / 0 +pack_report: pack_mapped = 0 / 0 +--------------------------------------------------------------------- -[master ad70476] Added attic_gremlin - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 attic_gremlin -Checking if patch will apply -Applying -:7: new blank line at EOF. -+ -warning: 1 line adds whitespace errors. -Patch applied successfully. Adding new files and directories to CVS -cvs add: Re-adding file `attic_gremlin' after dead revision 1.2. -cvs add: use `cvs commit' to add this file permanently -Commit to CVS -Patch title (first comment line): Added attic_gremlin -Autocommit - cvs commit -F .msg 'attic_gremlin' -/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/attic_gremlin,v <-- attic_gremlin -new revision: 1.3; previous revision: 1.2 -Committed successfully to CVS -ok 13 - re-commit a removed filename which remains in CVS attic +ok 3 - add notes with simple N command -expecting success of 9200.14 'commit a file with leading spaces in the name': +expecting success of 9301.4 'update existing notes with N command': - echo space > " space" && - git add " space" && - git commit -m "Add a file with a leading space" && - id=$(git rev-parse HEAD) && - git cvsexportcommit -w "$CVSWORK" -c $id && - check_entries "$CVSWORK" " space/1.1/|DS/1.1/|attic_gremlin/1.3/|release-notes/1.2/" && - test_cmp "$CVSWORK/ space" " space" + git fast-import actual && + test_cmp expect actual -[master 5173018] Add a file with a leading space - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 space -Checking if patch will apply -cvs status: nothing known about ` space' -Applying -Patch applied successfully. Adding new files and directories to CVS -cvs add: scheduling file ` space' for addition -cvs add: use `cvs commit' to add this file permanently -Commit to CVS -Patch title (first comment line): Add a file with a leading space -Autocommit - cvs commit -F .msg space -/build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/tmpcvsroot/ space,v <-- space -initial revision: 1.1 -Committed successfully to CVS -ok 14 - commit a file with leading spaces in the name +fast-import statistics: +--------------------------------------------------------------------- +Alloc'd objects: 5000 +Total objects: 6 ( 0 duplicates ) + blobs : 4 ( 0 duplicates 0 deltas of 3 attempts) + trees : 1 ( 0 duplicates 0 deltas of 0 attempts) + commits: 1 ( 0 duplicates 0 deltas of 0 attempts) + tags : 0 ( 0 duplicates 0 deltas of 0 attempts) +Total branches: 1 ( 1 loads ) + marks: 1024 ( 0 unique ) + atoms: 4 +Memory total: 2434 KiB + pools: 2122 KiB + objects: 312 KiB +--------------------------------------------------------------------- +pack_report: getpagesize() = 4096 +pack_report: core.packedGitWindowSize = 33554432 +pack_report: core.packedGitLimit = 268435456 +pack_report: pack_used_ctr = 0 +pack_report: pack_mmap_calls = 0 +pack_report: pack_open_windows = 0 / 0 +pack_report: pack_mapped = 0 / 0 +--------------------------------------------------------------------- -expecting success of 9200.15 'use the same checkout for Git and CVS': +ok 4 - update existing notes with N command - (mkdir shared && - cd shared && - sane_unset GIT_DIR && - cvs co . && - git init && - git add " space" && - git commit -m "fake initial commit" && - echo Hello >> " space" && - git commit -m "Another change" " space" && - git cvsexportcommit -W -p -u -c HEAD && - grep Hello " space" && - git diff-files) +expecting success of 9301.5 'add concatenation notes with M command': + git fast-import actual && + test_cmp expect actual -cvs checkout: Updating . -U space -U DS -U attic_gremlin -U release-notes -cvs checkout: Updating A -cvs checkout: Updating B -cvs checkout: Updating C -cvs checkout: Updating CVSROOT -U CVSROOT/checkoutlist -U CVSROOT/commitinfo -U CVSROOT/config -U CVSROOT/cvswrappers -U CVSROOT/loginfo -U CVSROOT/modules -U CVSROOT/notify -U CVSROOT/postadmin -U CVSROOT/postproxy -U CVSROOT/posttag -U CVSROOT/postwatch -U CVSROOT/preproxy -U CVSROOT/rcsinfo -U CVSROOT/taginfo -U CVSROOT/verifymsg -cvs checkout: Updating D -cvs checkout: Updating E -U E/DS -U E/newfile5.txt -cvs checkout: Updating F -U F/newfile6.png -cvs checkout: Updating G -U G/off -U G/on -cvs checkout: Updating G g -U G g/with spaces.png -U G g/with spaces.txt -cvs checkout: Updating W -U W/file1.txt -U W/file2.txt -cvs checkout: Updating Ã… -cvs checkout: Updating Ã…/goo -cvs checkout: Updating Ã…/goo/a -cvs checkout: Updating Ã…/goo/a/b -cvs checkout: Updating Ã…/goo/a/b/c -cvs checkout: Updating Ã…/goo/a/b/c/d -cvs checkout: Updating Ã…/goo/a/b/c/d/e -cvs checkout: Updating Ã…/goo/a/b/c/d/e/f -cvs checkout: Updating Ã…/goo/a/b/c/d/e/f/g -cvs checkout: Updating Ã…/goo/a/b/c/d/e/f/g/h -cvs checkout: Updating Ã…/goo/a/b/c/d/e/f/g/h/i -cvs checkout: Updating Ã…/goo/a/b/c/d/e/f/g/h/i/j -cvs checkout: Updating Ã…/goo/a/b/c/d/e/f/g/h/i/j/k -cvs checkout: Updating Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l -cvs checkout: Updating Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m -cvs checkout: Updating Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n -cvs checkout: Updating Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o -cvs checkout: Updating Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p -cvs checkout: Updating Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q -cvs checkout: Updating Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r -cvs checkout: Updating Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s -cvs checkout: Updating Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t -cvs checkout: Updating Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u -cvs checkout: Updating Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v -cvs checkout: Updating Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w -cvs checkout: Updating Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x -cvs checkout: Updating Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y -cvs checkout: Updating Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z -cvs checkout: Updating Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/Ã¥ -cvs checkout: Updating Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/Ã¥/ä -cvs checkout: Updating Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/Ã¥/ä/ö -U Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/Ã¥/ä/ö/gÃ¥rdetsÃ¥gÃ¥rdet.png -U Ã…/goo/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/Ã¥/ä/ö/gÃ¥rdetsÃ¥gÃ¥rdet.txt -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9200-git-cvsexportcommit/shared/.git/ -[master (root-commit) 93a1e74] fake initial commit - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 space -[master 6935f1b] Another change - Author: A U Thor - 1 file changed, 1 insertion(+) -Checking if patch will apply -Applying -Patch applied successfully. Adding new files and directories to CVS -Commit to CVS -Patch title (first comment line): Another change -Autocommit - cvs commit -F .msg space -Committed successfully to CVS -HEAD is now at 6935f1b Another change -Hello -ok 15 - use the same checkout for Git and CVS -# passed all 15 test(s) -1..15 +fast-import statistics: +--------------------------------------------------------------------- +Alloc'd objects: 5000 +Total objects: 12 ( 0 duplicates ) + blobs : 7 ( 0 duplicates 0 deltas of 6 attempts) + trees : 4 ( 0 duplicates 0 deltas of 0 attempts) + commits: 1 ( 0 duplicates 0 deltas of 0 attempts) + tags : 0 ( 0 duplicates 0 deltas of 0 attempts) +Total branches: 1 ( 1 loads ) + marks: 1024 ( 0 unique ) + atoms: 10 +Memory total: 2434 KiB + pools: 2122 KiB + objects: 312 KiB +--------------------------------------------------------------------- +pack_report: getpagesize() = 4096 +pack_report: core.packedGitWindowSize = 33554432 +pack_report: core.packedGitLimit = 268435456 +pack_report: pack_used_ctr = 0 +pack_report: pack_mmap_calls = 0 +pack_report: pack_open_windows = 0 / 0 +pack_report: pack_mapped = 0 / 0 +--------------------------------------------------------------------- + +ok 5 - add concatenation notes with M command + +expecting success of 9301.6 'verify that deleteall also removes notes': + + git fast-import actual && + test_cmp expect actual + + +fast-import statistics: +--------------------------------------------------------------------- +Alloc'd objects: 5000 +Total objects: 2 ( 0 duplicates ) + blobs : 0 ( 0 duplicates 0 deltas of 0 attempts) + trees : 1 ( 0 duplicates 0 deltas of 0 attempts) + commits: 1 ( 0 duplicates 0 deltas of 0 attempts) + tags : 0 ( 0 duplicates 0 deltas of 0 attempts) +Total branches: 1 ( 1 loads ) + marks: 1024 ( 0 unique ) + atoms: 6 +Memory total: 2434 KiB + pools: 2122 KiB + objects: 312 KiB +--------------------------------------------------------------------- +pack_report: getpagesize() = 4096 +pack_report: core.packedGitWindowSize = 33554432 +pack_report: core.packedGitLimit = 268435456 +pack_report: pack_used_ctr = 0 +pack_report: pack_mmap_calls = 0 +pack_report: pack_open_windows = 0 / 0 +pack_report: pack_mapped = 0 / 0 +--------------------------------------------------------------------- + +ok 6 - verify that deleteall also removes notes + +expecting success of 9301.7 'verify that later N commands override earlier M commands': + + git fast-import actual && + test_cmp expect actual + + +fast-import statistics: +--------------------------------------------------------------------- +Alloc'd objects: 5000 +Total objects: 6 ( 0 duplicates ) + blobs : 4 ( 0 duplicates 0 deltas of 3 attempts) + trees : 1 ( 0 duplicates 0 deltas of 0 attempts) + commits: 1 ( 0 duplicates 0 deltas of 0 attempts) + tags : 0 ( 0 duplicates 0 deltas of 0 attempts) +Total branches: 1 ( 1 loads ) + marks: 1024 ( 0 unique ) + atoms: 2 +Memory total: 2434 KiB + pools: 2122 KiB + objects: 312 KiB +--------------------------------------------------------------------- +pack_report: getpagesize() = 4096 +pack_report: core.packedGitWindowSize = 33554432 +pack_report: core.packedGitLimit = 268435456 +pack_report: pack_used_ctr = 0 +pack_report: pack_mmap_calls = 0 +pack_report: pack_open_windows = 0 / 0 +pack_report: pack_mapped = 0 / 0 +--------------------------------------------------------------------- + +ok 7 - verify that later N commands override earlier M commands + +expecting success of 9301.8 'add lots of commits and notes': + + git fast-import actual && + test_cmp expect actual + + +fast-import statistics: +--------------------------------------------------------------------- +Alloc'd objects: 5000 +Total objects: 1813 ( 0 duplicates ) + blobs : 803 ( 0 duplicates 392 deltas of 695 attempts) + trees : 608 ( 0 duplicates 2 deltas of 401 attempts) + commits: 402 ( 0 duplicates 0 deltas of 0 attempts) + tags : 0 ( 0 duplicates 0 deltas of 0 attempts) +Total branches: 2 ( 2 loads ) + marks: 1024 ( 400 unique ) + atoms: 864 +Memory total: 2434 KiB + pools: 2122 KiB + objects: 312 KiB +--------------------------------------------------------------------- +pack_report: getpagesize() = 4096 +pack_report: core.packedGitWindowSize = 33554432 +pack_report: core.packedGitLimit = 268435456 +pack_report: pack_used_ctr = 4 +pack_report: pack_mmap_calls = 1 +pack_report: pack_open_windows = 1 / 1 +pack_report: pack_mapped = 129374 / 129374 +--------------------------------------------------------------------- + +ok 8 - add lots of commits and notes + +expecting success of 9301.9 'verify that lots of notes trigger a fanout scheme': + hexsz=$(test_oid hexsz) && + + # None of the entries in the top-level notes tree should be a full SHA1 + git ls-tree --name-only refs/notes/many_notes | + while read path + do + if test $(expr length "$path") -ge $hexsz + then + return 1 + fi + done + + +ok 9 - verify that lots of notes trigger a fanout scheme + +expecting success of 9301.10 'verify that importing a notes tree respects the fanout scheme': + git fast-import actual && + test_cmp expect_non-note1 actual && + git cat-file -p refs/notes/many_notes:deadbeef > actual && + test_cmp expect_non-note2 actual && + git cat-file -p refs/notes/many_notes:de/adbeef > actual && + test_cmp expect_non-note3 actual + + +ok 11 - verify that non-notes are untouched by a fanout change + +expecting success of 9301.12 'change a few existing notes': + + git fast-import actual && + test_cmp expect actual + + +fast-import statistics: +--------------------------------------------------------------------- +Alloc'd objects: 5000 +Total objects: 8 ( 0 duplicates ) + blobs : 3 ( 0 duplicates 2 deltas of 2 attempts) + trees : 4 ( 0 duplicates 0 deltas of 0 attempts) + commits: 1 ( 0 duplicates 0 deltas of 0 attempts) + tags : 0 ( 0 duplicates 0 deltas of 0 attempts) +Total branches: 1 ( 1 loads ) + marks: 1024 ( 0 unique ) + atoms: 608 +Memory total: 2434 KiB + pools: 2122 KiB + objects: 312 KiB +--------------------------------------------------------------------- +pack_report: getpagesize() = 4096 +pack_report: core.packedGitWindowSize = 33554432 +pack_report: core.packedGitLimit = 268435456 +pack_report: pack_used_ctr = 216 +pack_report: pack_mmap_calls = 1 +pack_report: pack_open_windows = 1 / 1 +pack_report: pack_mapped = 129374 / 129374 +--------------------------------------------------------------------- + +ok 12 - change a few existing notes + +expecting success of 9301.13 'verify that changing notes respect existing fanout': + + # None of the entries in the top-level notes tree should be a full SHA1 + git ls-tree --name-only refs/notes/many_notes | + while read path + do + if test $(expr length "$path") -ge $hexsz + then + return 1 + fi + done + + +ok 13 - verify that changing notes respect existing fanout + +expecting success of 9301.14 'remove lots of notes': + + git fast-import actual && + test_cmp expect actual + + +fast-import statistics: +--------------------------------------------------------------------- +Alloc'd objects: 5000 +Total objects: 3 ( 0 duplicates ) + blobs : 0 ( 0 duplicates 0 deltas of 0 attempts) + trees : 2 ( 0 duplicates 0 deltas of 0 attempts) + commits: 1 ( 0 duplicates 0 deltas of 0 attempts) + tags : 0 ( 0 duplicates 0 deltas of 0 attempts) +Total branches: 1 ( 1 loads ) + marks: 1024 ( 0 unique ) + atoms: 618 +Memory total: 2434 KiB + pools: 2122 KiB + objects: 312 KiB +--------------------------------------------------------------------- +pack_report: getpagesize() = 4096 +pack_report: core.packedGitWindowSize = 33554432 +pack_report: core.packedGitLimit = 268435456 +pack_report: pack_used_ctr = 593 +pack_report: pack_mmap_calls = 1 +pack_report: pack_open_windows = 1 / 1 +pack_report: pack_mapped = 129374 / 129374 +--------------------------------------------------------------------- + +ok 14 - remove lots of notes + +expecting success of 9301.15 'verify that removing notes trigger fanout consolidation': + # All entries in the top-level notes tree should be a full SHA1 + git ls-tree --name-only -r refs/notes/many_notes | + while read path + do + # Explicitly ignore the non-note paths + test "$path" = "foobar/non-note.txt" && continue + test "$path" = "deadbeef" && continue + test "$path" = "de/adbeef" && continue + + if test $(expr length "$path") -ne $hexsz + then + return 1 + fi + done + + +ok 15 - verify that removing notes trigger fanout consolidation + +expecting success of 9301.16 'verify that non-notes are untouched by a fanout change': + + git cat-file -p refs/notes/many_notes:foobar/non-note.txt > actual && + test_cmp expect_non-note1 actual && + git cat-file -p refs/notes/many_notes:deadbeef > actual && + test_cmp expect_non-note2 actual && + git cat-file -p refs/notes/many_notes:de/adbeef > actual && + test_cmp expect_non-note3 actual + + +ok 16 - verify that non-notes are untouched by a fanout change + +expecting success of 9301.17 'add notes to 16 commits in each of 10 refs': + + git fast-import --active-branches=5 actual && + test_cmp expect actual + + +fast-import statistics: +--------------------------------------------------------------------- +Alloc'd objects: 5000 +Total objects: 46 ( 282 duplicates ) + blobs : 8 ( 248 duplicates 0 deltas of 7 attempts) + trees : 2 ( 34 duplicates 1 deltas of 1 attempts) + commits: 36 ( 0 duplicates 0 deltas of 0 attempts) + tags : 0 ( 0 duplicates 0 deltas of 0 attempts) +Total branches: 11 ( 21 loads ) + marks: 1024 ( 16 unique ) + atoms: 17 +Memory total: 2434 KiB + pools: 2122 KiB + objects: 312 KiB +--------------------------------------------------------------------- +pack_report: getpagesize() = 4096 +pack_report: core.packedGitWindowSize = 33554432 +pack_report: core.packedGitLimit = 268435456 +pack_report: pack_used_ctr = 10 +pack_report: pack_mmap_calls = 10 +pack_report: pack_open_windows = 0 / 1 +pack_report: pack_mapped = 0 / 6351 +--------------------------------------------------------------------- + +ok 17 - add notes to 16 commits in each of 10 refs + +# passed all 17 test(s) +1..17 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' *** t9401-git-cvsserver-crlf.sh *** @@ -419752,10 +419583,10 @@ 6d431cd..faca8d4 master -> master Use of uninitialized value $wrev in string ne at /build/git-2.30.2/git-cvsserver line 1266. Use of uninitialized value $wrev in string ne at /build/git-2.30.2/git-cvsserver line 1311. -U binfile.bin -cvs update: `cvs.log' is no longer in the repository Use of uninitialized value $wrev in string ne at /build/git-2.30.2/git-cvsserver line 1266. Use of uninitialized value $wrev in string ne at /build/git-2.30.2/git-cvsserver line 1311. +U binfile.bin +cvs update: `cvs.log' is no longer in the repository cvs update: `subdir/cvs.log' is no longer in the repository U subdir/file.h U subdir/newfile.bin @@ -420546,217 +420377,1221 @@ revision 1.4 date: 2005/04/01 13:14:15; author: author; state: Exp; lines: +2 -3 -Merge test (no-op) - ----------------------------- -revision 1.3 -date: 2005/04/01 13:14:15; author: author; state: Exp; lines: +2 -3 +Merge test (no-op) + +---------------------------- +revision 1.3 +date: 2005/04/01 13:14:15; author: author; state: Exp; lines: +2 -3 + +Merge test (conflict) + +---------------------------- +revision 1.2 +date: 2005/04/01 13:14:15; author: author; state: Exp; lines: +2 -3 + +Merge test (merge) + +---------------------------- +revision 1.1 +date: 2005/04/01 13:14:15; author: author; state: Exp; lines: +2 -3 + +Merge test (pre-merge) + +============================================================================= +ok 45 - cvs server can run with recommended config + +# still have 1 known breakage(s) +# passed all remaining 44 test(s) +1..45 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t9502-gitweb-standalone-parse-output.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9502-gitweb-standalone-parse-output/.git/ +expecting success of 9502.1 'setup': + test_commit first foo && + git branch xx/test && + FULL_ID=$(git rev-parse --verify HEAD) && + SHORT_ID=$(git rev-parse --verify --short=7 HEAD) + +[master (root-commit) 1005c80] first + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 foo +ok 1 - setup + +expecting success of 9502.2 'snapshot: full sha1': + gitweb_run "p=.git;a=snapshot;h=$FULL_ID;sf=tar" && + check_snapshot ".git-$SHORT_ID" + +basename=.git-1005c80 +ok 2 - snapshot: full sha1 + +expecting success of 9502.3 'snapshot: shortened sha1': + gitweb_run "p=.git;a=snapshot;h=$SHORT_ID;sf=tar" && + check_snapshot ".git-$SHORT_ID" + +basename=.git-1005c80 +ok 3 - snapshot: shortened sha1 + +expecting success of 9502.4 'snapshot: almost full sha1': + ID=$(git rev-parse --short=30 HEAD) && + gitweb_run "p=.git;a=snapshot;h=$ID;sf=tar" && + check_snapshot ".git-$SHORT_ID" + +basename=.git-1005c80 +ok 4 - snapshot: almost full sha1 + +expecting success of 9502.5 'snapshot: HEAD': + gitweb_run "p=.git;a=snapshot;h=HEAD;sf=tar" && + check_snapshot ".git-HEAD-$SHORT_ID" + +basename=.git-HEAD-1005c80 +ok 5 - snapshot: HEAD + +expecting success of 9502.6 'snapshot: short branch name (master)': + gitweb_run "p=.git;a=snapshot;h=master;sf=tar" && + ID=$(git rev-parse --verify --short=7 master) && + check_snapshot ".git-master-$ID" + +basename=.git-master-1005c80 +ok 6 - snapshot: short branch name (master) + +expecting success of 9502.7 'snapshot: short tag name (first)': + gitweb_run "p=.git;a=snapshot;h=first;sf=tar" && + ID=$(git rev-parse --verify --short=7 first) && + check_snapshot ".git-first-$ID" + +basename=.git-first-1005c80 +ok 7 - snapshot: short tag name (first) + +expecting success of 9502.8 'snapshot: full branch name (refs/heads/master)': + gitweb_run "p=.git;a=snapshot;h=refs/heads/master;sf=tar" && + ID=$(git rev-parse --verify --short=7 master) && + check_snapshot ".git-master-$ID" + +basename=.git-master-1005c80 +ok 8 - snapshot: full branch name (refs/heads/master) + +expecting success of 9502.9 'snapshot: full tag name (refs/tags/first)': + gitweb_run "p=.git;a=snapshot;h=refs/tags/first;sf=tar" && + check_snapshot ".git-first" + +basename=.git-first +ok 9 - snapshot: full tag name (refs/tags/first) + +expecting success of 9502.10 'snapshot: hierarchical branch name (xx/test)': + gitweb_run "p=.git;a=snapshot;h=xx/test;sf=tar" && + ! grep "filename=.*/" gitweb.headers + +ok 10 - snapshot: hierarchical branch name (xx/test) + +expecting success of 9502.11 'forks: setup': + git init --bare foo.git && + echo file > file && + git --git-dir=foo.git --work-tree=. add file && + git --git-dir=foo.git --work-tree=. commit -m "Initial commit" && + echo "foo" > foo.git/description && + git clone --bare foo.git foo.bar.git && + echo "foo.bar" > foo.bar.git/description && + git clone --bare foo.git foo_baz.git && + echo "foo_baz" > foo_baz.git/description && + rm -fr foo && + mkdir -p foo && + ( + cd foo && + git clone --shared --bare ../foo.git foo-forked.git && + echo "fork of foo" > foo-forked.git/description + ) + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9502-gitweb-standalone-parse-output/foo.git/ +[master (root-commit) d29c088] Initial commit + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file +Cloning into bare repository 'foo.bar.git'... +done. +Cloning into bare repository 'foo_baz.git'... +done. +Cloning into bare repository 'foo-forked.git'... +done. +ok 11 - forks: setup + +expecting success of 9502.12 'forks: not skipped unless "forks" feature enabled': + gitweb_run "a=project_list" && + grep -q ">\\.git<" gitweb.body && + grep -q ">foo\\.git<" gitweb.body && + grep -q ">foo_baz\\.git<" gitweb.body && + grep -q ">foo\\.bar\\.git<" gitweb.body && + grep -q ">foo_baz\\.git<" gitweb.body && + grep -q ">foo/foo-forked\\.git<" gitweb.body && + grep -q ">fork of .*<" gitweb.body + +ok 12 - forks: not skipped unless "forks" feature enabled + +expecting success of 9502.13 'enable forks feature': + cat >>gitweb_config.perl <<-\EOF + $feature{"forks"}{"default"} = [1]; + EOF + +ok 13 - enable forks feature + +expecting success of 9502.14 'forks: forks skipped if "forks" feature enabled': + gitweb_run "a=project_list" && + grep -q ">\\.git<" gitweb.body && + grep -q ">foo\\.git<" gitweb.body && + grep -q ">foo_baz\\.git<" gitweb.body && + grep -q ">foo\\.bar\\.git<" gitweb.body && + grep -q ">foo_baz\\.git<" gitweb.body && + grep -v ">foo/foo-forked\\.git<" gitweb.body && + grep -v ">fork of .*<" gitweb.body + + + + + + + + + + +[localhost] + + + + + + + +
+
+ + + +
+List all projects
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ProjectDescriptionOwnerLast Change
.gitt9502-gitweb-standalone-parse... second user18 years ago
foo.bar.gitfoo.barsecond user18 years ago
+foo.gitfoosecond user18 years ago
foo_baz.gitfoo_bazsecond user18 years ago
+ + + + + + + + + + + + + + +[localhost] + + + + + + + +
+
+ + + +
+List all projects
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ProjectDescriptionOwnerLast Change
.gitt9502-gitweb-standalone-parse... second user18 years ago
foo.bar.gitfoo.barsecond user18 years ago
+foo.gitfoosecond user18 years ago
foo_baz.gitfoo_bazsecond user18 years ago
+ + + + + +ok 14 - forks: forks skipped if "forks" feature enabled + +expecting success of 9502.15 'forks: "forks" action for forked repository': + gitweb_run "p=foo.git;a=forks" && + grep -q ">foo/foo-forked\\.git<" gitweb.body && + grep -q ">fork of foo<" gitweb.body + +ok 15 - forks: "forks" action for forked repository + +expecting success of 9502.16 'forks: can access forked repository': + gitweb_run "p=foo/foo-forked.git;a=summary" && + grep -q "200 OK" gitweb.headers && + grep -q ">fork of foo<" gitweb.body + +ok 16 - forks: can access forked repository + +expecting success of 9502.17 'forks: project_index lists all projects (incl. forks)': + cat >expected <<-\EOF && + .git + foo.bar.git + foo.git + foo/foo-forked.git + foo_baz.git + EOF + gitweb_run "a=project_index" && + sed -e "s/ .*//" actual && + test_cmp expected actual + +ok 17 - forks: project_index lists all projects (incl. forks) + +expecting success of 9502.18 'xss checks': + TAG="" && + xss "a=rss&p=$TAG" && + xss "a=rss&p=foo.git&f=$TAG" && + xss "" "$TAG+" + +Checking a=rss&p=... +Checking a=rss&p=foo.git&f=... +Checking +... +ok 18 - xss checks + +# passed all 18 test(s) +1..18 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t9501-gitweb-standalone-http-status.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9501-gitweb-standalone-http-status/.git/ +expecting success of 9501.1 'setup': + test_commit 'SnapshotTests' 'i can has snapshot' + +[master (root-commit) cea0920] SnapshotTests + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 i can has snapshot +ok 1 - setup + +expecting success of 9501.2 'snapshots: tgz only default format enabled': gitweb_run "p=.git;a=snapshot;h=HEAD;sf=tgz" && + grep "Status: 200 OK" gitweb.output && + gitweb_run "p=.git;a=snapshot;h=HEAD;sf=tbz2" && + grep "403 - Unsupported snapshot format" gitweb.output && + gitweb_run "p=.git;a=snapshot;h=HEAD;sf=txz" && + grep "403 - Snapshot format not allowed" gitweb.output && + gitweb_run "p=.git;a=snapshot;h=HEAD;sf=zip" && + grep "403 - Unsupported snapshot format" gitweb.output +grep: gitweb.output: binary file matches +403 - Unsupported snapshot format +403 - Snapshot format not allowed +403 - Unsupported snapshot format +ok 2 - snapshots: tgz only default format enabled + +expecting success of 9501.3 'snapshots: all enabled in default, use default disabled value': gitweb_run "p=.git;a=snapshot;h=HEAD;sf=tgz" && + grep "Status: 200 OK" gitweb.output && + gitweb_run "p=.git;a=snapshot;h=HEAD;sf=tbz2" && + grep "Status: 200 OK" gitweb.output && + gitweb_run "p=.git;a=snapshot;h=HEAD;sf=txz" && + grep "403 - Snapshot format not allowed" gitweb.output && + gitweb_run "p=.git;a=snapshot;h=HEAD;sf=zip" && + grep "Status: 200 OK" gitweb.output +grep: gitweb.output: binary file matches +grep: gitweb.output: binary file matches +403 - Snapshot format not allowed +grep: gitweb.output: binary file matches +ok 3 - snapshots: all enabled in default, use default disabled value + +expecting success of 9501.4 'snapshots: zip explicitly disabled': gitweb_run "p=.git;a=snapshot;h=HEAD;sf=zip" && + grep "403 - Snapshot format not allowed" gitweb.output +403 - Snapshot format not allowed +ok 4 - snapshots: zip explicitly disabled + +expecting success of 9501.5 'snapshots: tgz explicitly enabled': gitweb_run "p=.git;a=snapshot;h=HEAD;sf=tgz" && + grep "Status: 200 OK" gitweb.output +grep: gitweb.output: binary file matches +ok 5 - snapshots: tgz explicitly enabled + +expecting success of 9501.6 'snapshots: good tree-ish id': + gitweb_run "p=.git;a=snapshot;h=master;sf=tgz" && + grep "Status: 200 OK" gitweb.output + +grep: gitweb.output: binary file matches +ok 6 - snapshots: good tree-ish id + +expecting success of 9501.7 'snapshots: bad tree-ish id': + gitweb_run "p=.git;a=snapshot;h=frizzumFrazzum;sf=tgz" && + grep "404 - Object does not exist" gitweb.output + +404 - Object does not exist +ok 7 - snapshots: bad tree-ish id + +expecting success of 9501.8 'snapshots: bad tree-ish id (tagged object)': + echo object > tag-object && + git add tag-object && + test_tick && git commit -m "Object to be tagged" && + git tag tagged-object $(git hash-object tag-object) && + gitweb_run "p=.git;a=snapshot;h=tagged-object;sf=tgz" && + grep "400 - Object is not a tree-ish" gitweb.output + +[master 031b7cf] Object to be tagged + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 tag-object +400 - Object is not a tree-ish +ok 8 - snapshots: bad tree-ish id (tagged object) + +expecting success of 9501.9 'snapshots: good object id': + ID=$(git rev-parse --verify HEAD) && + gitweb_run "p=.git;a=snapshot;h=$ID;sf=tgz" && + grep "Status: 200 OK" gitweb.output + +grep: gitweb.output: binary file matches +ok 9 - snapshots: good object id + +expecting success of 9501.10 'snapshots: bad object id': + gitweb_run "p=.git;a=snapshot;h=abcdef01234;sf=tgz" && + grep "404 - Object does not exist" gitweb.output + +404 - Object does not exist +ok 10 - snapshots: bad object id + +expecting success of 9501.11 'modification: feed last-modified': + gitweb_run "p=.git;a=atom;h=master" && + grep "Status: 200 OK" gitweb.headers && + grep "Last-modified: Thu, 7 Apr 2005 22:14:13 +0000" gitweb.headers + +Status: 200 OK +Last-modified: Thu, 7 Apr 2005 22:14:13 +0000 +ok 11 - modification: feed last-modified + +expecting success of 9501.12 'modification: feed if-modified-since (modified)': + HTTP_IF_MODIFIED_SINCE="Wed, 6 Apr 2005 22:14:13 +0000" && + export HTTP_IF_MODIFIED_SINCE && + test_when_finished "unset HTTP_IF_MODIFIED_SINCE" && + gitweb_run "p=.git;a=atom;h=master" && + grep "Status: 200 OK" gitweb.headers + +Status: 200 OK +ok 12 - modification: feed if-modified-since (modified) + +expecting success of 9501.13 'modification: feed if-modified-since (unmodified)': + HTTP_IF_MODIFIED_SINCE="Thu, 7 Apr 2005 22:14:13 +0000" && + export HTTP_IF_MODIFIED_SINCE && + test_when_finished "unset HTTP_IF_MODIFIED_SINCE" && + gitweb_run "p=.git;a=atom;h=master" && + grep "Status: 304 Not Modified" gitweb.headers + +Status: 304 Not Modified +ok 13 - modification: feed if-modified-since (unmodified) + +expecting success of 9501.14 'modification: snapshot last-modified': + gitweb_run "p=.git;a=snapshot;h=master;sf=tgz" && + grep "Status: 200 OK" gitweb.headers && + grep "Last-modified: Thu, 7 Apr 2005 22:14:13 +0000" gitweb.headers + +Status: 200 OK +Last-modified: Thu, 7 Apr 2005 22:14:13 +0000 +ok 14 - modification: snapshot last-modified + +expecting success of 9501.15 'modification: snapshot if-modified-since (modified)': + HTTP_IF_MODIFIED_SINCE="Wed, 6 Apr 2005 22:14:13 +0000" && + export HTTP_IF_MODIFIED_SINCE && + test_when_finished "unset HTTP_IF_MODIFIED_SINCE" && + gitweb_run "p=.git;a=snapshot;h=master;sf=tgz" && + grep "Status: 200 OK" gitweb.headers + +Status: 200 OK +ok 15 - modification: snapshot if-modified-since (modified) + +expecting success of 9501.16 'modification: snapshot if-modified-since (unmodified)': + HTTP_IF_MODIFIED_SINCE="Thu, 7 Apr 2005 22:14:13 +0000" && + export HTTP_IF_MODIFIED_SINCE && + test_when_finished "unset HTTP_IF_MODIFIED_SINCE" && + gitweb_run "p=.git;a=snapshot;h=master;sf=tgz" && + grep "Status: 304 Not Modified" gitweb.headers + +Status: 304 Not Modified +ok 16 - modification: snapshot if-modified-since (unmodified) + +expecting success of 9501.17 'modification: tree snapshot': + ID=$(git rev-parse --verify HEAD^{tree}) && + HTTP_IF_MODIFIED_SINCE="Wed, 6 Apr 2005 22:14:13 +0000" && + export HTTP_IF_MODIFIED_SINCE && + test_when_finished "unset HTTP_IF_MODIFIED_SINCE" && + gitweb_run "p=.git;a=snapshot;h=$ID;sf=tgz" && + grep "Status: 200 OK" gitweb.headers && + ! grep -i "last-modified" gitweb.headers + +Status: 200 OK +ok 17 - modification: tree snapshot + +expecting success of 9501.18 'load checking: load too high (default action)': + gitweb_run "p=.git" && + grep "Status: 503 Service Unavailable" gitweb.headers && + grep "503 - The load average on the server is too high" gitweb.body + +Status: 503 Service Unavailable +503 - The load average on the server is too high +ok 18 - load checking: load too high (default action) + +expecting success of 9501.19 'invalid arguments: invalid regexp (in project search)': + gitweb_run "a=project_list;s=*\.git;sr=1" && + grep "Status: 400" gitweb.headers && + grep "400 - Invalid.*regexp" gitweb.body + +Status: 400 Bad Request +400 - Invalid search regexp '*\.git' +ok 19 - invalid arguments: invalid regexp (in project search) + +# passed all 19 test(s) +1..19 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t9601-cvsimport-vendor-branch.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9601-cvsimport-vendor-branch/.git/ +expecting success of 9601.1 'import a module with a vendor branch': + + git cvsimport -C module-git module + + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9601-cvsimport-vendor-branch/module-git/.git/ +Skipping #CVSPS_NO_BRANCH +ok 1 - import a module with a vendor branch + +expecting success of 9601.2 'check HEAD out of cvs repository': test_cvs_co master +cvs checkout: Updating module-cvs-master +U module-cvs-master/added-imported.txt +U module-cvs-master/imported-anonymously.txt +U module-cvs-master/imported-modified-imported.txt +U module-cvs-master/imported-modified.txt +U module-cvs-master/imported-once.txt +U module-cvs-master/imported-twice.txt +ok 2 - check HEAD out of cvs repository + +expecting success of 9601.3 'check master out of git repository': test_git_co master +Already on 'master' +ok 3 - check master out of git repository + +expecting success of 9601.4 'check a file that was imported once': + + test_cmp_branch_file master imported-once.txt + + +ok 4 - check a file that was imported once + +checking known breakage of 9601.5 'check a file that was imported twice': + + test_cmp_branch_file master imported-twice.txt + + +--- module-cvs-master/imported-twice.txt 2004-02-09 15:43:13.000000000 +0000 ++++ module-git/imported-twice.txt 2023-04-29 18:58:08.374604093 +0000 +@@ -1 +1 @@ +-This is vtag-2 (on vbranchA) of imported-twice.txt. ++This is vtag-1 (on vbranchA) of imported-twice.txt. +not ok 5 - check a file that was imported twice # TODO known breakage + +expecting success of 9601.6 'check a file that was imported then modified on HEAD': + + test_cmp_branch_file master imported-modified.txt + + +ok 6 - check a file that was imported then modified on HEAD + +expecting success of 9601.7 'check a file that was imported, modified, then imported again': + + test_cmp_branch_file master imported-modified-imported.txt + + +ok 7 - check a file that was imported, modified, then imported again + +expecting success of 9601.8 'check a file that was added to HEAD then imported': + + test_cmp_branch_file master added-imported.txt + + +ok 8 - check a file that was added to HEAD then imported + +expecting success of 9601.9 'a vendor branch whose tag has been removed': + + test_cmp_branch_file master imported-anonymously.txt + + +ok 9 - a vendor branch whose tag has been removed + +# still have 1 known breakage(s) +# passed all remaining 8 test(s) +1..9 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t9600-cvsimport.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9600-cvsimport/.git/ +checking prerequisite: NOT_ROOT + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-NOT_ROOT" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-NOT_ROOT" && + uid=$(id -u) && + test "$uid" != 0 + +) +prerequisite NOT_ROOT ok +expecting success of 9600.1 'setup cvsroot environment': + CVSROOT=$(pwd)/cvsroot && + export CVSROOT + +ok 1 - setup cvsroot environment + +expecting success of 9600.2 'setup cvsroot': $CVS init +ok 2 - setup cvsroot + +expecting success of 9600.3 'setup a cvs module': + + mkdir "$CVSROOT/module" && + $CVS co -d module-cvs module && + (cd module-cvs && + cat <o_fortuna && +O Fortuna +velut luna +statu variabilis, + +semper crescis +aut decrescis; +vita detestabilis + +nunc obdurat +et tunc curat +ludo mentis aciem, + +egestatem, +potestatem +dissolvit ut glaciem. +EOF + $CVS add o_fortuna && + cat <message && +add "O Fortuna" lyrics + +These public domain lyrics make an excellent sample text. +EOF + $CVS commit -F message + ) + +cvs checkout: Updating module-cvs +cvs add: scheduling file `o_fortuna' for addition +cvs add: use `cvs commit' to add this file permanently +cvs commit: Examining . +/build/git-2.30.2/t/trash directory.t9600-cvsimport/cvsroot/module/o_fortuna,v <-- o_fortuna +initial revision: 1.1 +ok 3 - setup a cvs module + +expecting success of 9600.4 'import a trivial module': + + git cvsimport -a -R -z 0 -C module-git module && + test_cmp module-cvs/o_fortuna module-git/o_fortuna + + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9600-cvsimport/module-git/.git/ +ok 4 - import a trivial module + +expecting success of 9600.5 'pack refs': (cd module-git && git gc) +ok 5 - pack refs + +expecting success of 9600.6 'initial import has correct .git/cvs-revisions': + + (cd module-git && + git log --format="o_fortuna 1.1 %H" -1) > expected && + test_cmp expected module-git/.git/cvs-revisions + +ok 6 - initial import has correct .git/cvs-revisions + +expecting success of 9600.7 'update cvs module': + (cd module-cvs && + cat <o_fortuna && +O Fortune, +like the moon +you are changeable, + +ever waxing +and waning; +hateful life + +first oppresses +and then soothes +as fancy takes it; + +poverty +and power +it melts them like ice. +EOF + cat <message && +translate to English + +My Latin is terrible. +EOF + $CVS commit -F message + ) + +cvs commit: Examining . +/build/git-2.30.2/t/trash directory.t9600-cvsimport/cvsroot/module/o_fortuna,v <-- o_fortuna +new revision: 1.2; previous revision: 1.1 +ok 7 - update cvs module + +expecting success of 9600.8 'update git module': + + (cd module-git && + git config cvsimport.trackRevisions true && + git cvsimport -a -z 0 module && + git merge origin + ) && + test_cmp module-cvs/o_fortuna module-git/o_fortuna + + +Updating ebd90de..0ea8448 +Fast-forward (no commit created; -m option ignored) + o_fortuna | 24 ++++++++++++------------ + 1 file changed, 12 insertions(+), 12 deletions(-) +Already up to date. +ok 8 - update git module + +expecting success of 9600.9 'update has correct .git/cvs-revisions': + + (cd module-git && + git log --format="o_fortuna 1.1 %H" -1 HEAD^ && + git log --format="o_fortuna 1.2 %H" -1 HEAD) > expected && + test_cmp expected module-git/.git/cvs-revisions + +ok 9 - update has correct .git/cvs-revisions + +expecting success of 9600.10 'update cvs module': + + (cd module-cvs && + echo 1 >tick && + $CVS add tick && + $CVS commit -m 1 + ) + +cvs add: scheduling file `tick' for addition +cvs add: use `cvs commit' to add this file permanently +cvs commit: Examining . +/build/git-2.30.2/t/trash directory.t9600-cvsimport/cvsroot/module/tick,v <-- tick +initial revision: 1.1 +ok 10 - update cvs module + +expecting success of 9600.11 'cvsimport.module config works': + + (cd module-git && + git config cvsimport.module module && + git config cvsimport.trackRevisions true && + git cvsimport -a -z0 && + git merge origin + ) && + test_cmp module-cvs/tick module-git/tick + + +Updating 0ea8448..4729a3e +Fast-forward (no commit created; -m option ignored) + tick | 1 + + 1 file changed, 1 insertion(+) + create mode 100644 tick +Already up to date. +ok 11 - cvsimport.module config works + +expecting success of 9600.12 'second update has correct .git/cvs-revisions': + + (cd module-git && + git log --format="o_fortuna 1.1 %H" -1 HEAD^^ && + git log --format="o_fortuna 1.2 %H" -1 HEAD^ && + git log --format="tick 1.1 %H" -1 HEAD) > expected && + test_cmp expected module-git/.git/cvs-revisions + +ok 12 - second update has correct .git/cvs-revisions + +expecting success of 9600.13 'import from a CVS working tree': + + $CVS co -d import-from-wt module && + (cd import-from-wt && + git config cvsimport.trackRevisions false && + git cvsimport -a -z0 && + echo 1 >expect && + git log -1 --pretty=format:%s%n >actual && + test_cmp expect actual + ) + + +cvs checkout: Updating import-from-wt +U import-from-wt/o_fortuna +U import-from-wt/tick +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9600-cvsimport/import-from-wt/.git/ +ok 13 - import from a CVS working tree + +expecting success of 9600.14 'no .git/cvs-revisions created by default': + + ! test -e import-from-wt/.git/cvs-revisions + + +ok 14 - no .git/cvs-revisions created by default + +expecting success of 9600.15 'test entire HEAD': test_cmp_branch_tree master +cvs checkout: Updating module-cvs-master +U module-cvs-master/o_fortuna +U module-cvs-master/tick +Already on 'master' +ok 15 - test entire HEAD + +# passed all 15 test(s) +1..15 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t9603-cvsimport-patchsets.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9603-cvsimport-patchsets/.git/ +checking known breakage of 9603.1 'import with criss cross times on revisions': + git cvsimport -p"-x" -C module-git module && + ( + cd module-git && + git log --pretty=format:%s > ../actual-master && + git log A~2..A --pretty="format:%s %ad" -- > ../actual-A && + echo "" >> ../actual-master && + echo "" >> ../actual-A + ) && + echo "Rev 4 +Rev 3 +Rev 2 +Rev 1" > expect-master && + test_cmp expect-master actual-master && + + echo "Rev 5 Branch A Wed Mar 11 19:09:10 2009 +0000 +Rev 4 Branch A Wed Mar 11 19:03:52 2009 +0000" > expect-A && + test_cmp expect-A actual-A + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9603-cvsimport-patchsets/module-git/.git/ +--- expect-master 2023-04-29 18:58:28.300722256 +0000 ++++ actual-master 2023-04-29 18:58:28.300722256 +0000 +@@ -1,4 +1,4 @@ + Rev 4 + Rev 3 +-Rev 2 + Rev 1 ++Rev 2 +not ok 1 - import with criss cross times on revisions # TODO known breakage + +# still have 1 known breakage(s) +1..1 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' +*** t9602-cvsimport-branches-tags.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9602-cvsimport-branches-tags/.git/ +expecting success of 9602.1 'import module': + + git cvsimport -C module-git module + + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9602-cvsimport-branches-tags/module-git/.git/ +ok 1 - import module + +expecting success of 9602.2 'test branch master': + + test_cmp_branch_tree master + + +cvs checkout: Updating module-cvs-master +U module-cvs-master/default +cvs checkout: Updating module-cvs-master/sub1 +U module-cvs-master/sub1/default +cvs checkout: Updating module-cvs-master/sub1/subsubA +U module-cvs-master/sub1/subsubA/default +cvs checkout: Updating module-cvs-master/sub1/subsubB +U module-cvs-master/sub1/subsubB/default +cvs checkout: Updating module-cvs-master/sub2 +U module-cvs-master/sub2/default +cvs checkout: Updating module-cvs-master/sub2/subsubA +U module-cvs-master/sub2/subsubA/default +cvs checkout: Updating module-cvs-master/sub3 +U module-cvs-master/sub3/default +Already on 'master' +ok 2 - test branch master + +expecting success of 9602.3 'test branch vendorbranch': + + test_cmp_branch_tree vendorbranch + + +cvs checkout: Updating module-cvs-vendorbranch +U module-cvs-vendorbranch/default +cvs checkout: Updating module-cvs-vendorbranch/sub1 +U module-cvs-vendorbranch/sub1/default +cvs checkout: Updating module-cvs-vendorbranch/sub1/subsubA +U module-cvs-vendorbranch/sub1/subsubA/default +cvs checkout: Updating module-cvs-vendorbranch/sub1/subsubB +U module-cvs-vendorbranch/sub1/subsubB/default +cvs checkout: Updating module-cvs-vendorbranch/sub2 +U module-cvs-vendorbranch/sub2/default +cvs checkout: Updating module-cvs-vendorbranch/sub2/subsubA +U module-cvs-vendorbranch/sub2/subsubA/default +cvs checkout: Updating module-cvs-vendorbranch/sub3 +U module-cvs-vendorbranch/sub3/default +Switched to branch 'vendorbranch' +ok 3 - test branch vendorbranch + +checking known breakage of 9602.4 'test branch B_FROM_INITIALS': -Merge test (conflict) - ----------------------------- -revision 1.2 -date: 2005/04/01 13:14:15; author: author; state: Exp; lines: +2 -3 + test_cmp_branch_tree B_FROM_INITIALS -Merge test (merge) - ----------------------------- -revision 1.1 -date: 2005/04/01 13:14:15; author: author; state: Exp; lines: +2 -3 -Merge test (pre-merge) - -============================================================================= -ok 45 - cvs server can run with recommended config +cvs checkout: Updating module-cvs-B_FROM_INITIALS +U module-cvs-B_FROM_INITIALS/default +cvs checkout: Updating module-cvs-B_FROM_INITIALS/sub1 +U module-cvs-B_FROM_INITIALS/sub1/default +cvs checkout: Updating module-cvs-B_FROM_INITIALS/sub1/subsubA +U module-cvs-B_FROM_INITIALS/sub1/subsubA/default +cvs checkout: Updating module-cvs-B_FROM_INITIALS/sub1/subsubB +U module-cvs-B_FROM_INITIALS/sub1/subsubB/default +cvs checkout: Updating module-cvs-B_FROM_INITIALS/sub2 +U module-cvs-B_FROM_INITIALS/sub2/default +cvs checkout: Updating module-cvs-B_FROM_INITIALS/sub2/subsubA +U module-cvs-B_FROM_INITIALS/sub2/subsubA/default +cvs checkout: Updating module-cvs-B_FROM_INITIALS/sub3 +U module-cvs-B_FROM_INITIALS/sub3/default +error: pathspec 'B_FROM_INITIALS' did not match any file(s) known to git +not ok 4 - test branch B_FROM_INITIALS # TODO known breakage -# still have 1 known breakage(s) -# passed all remaining 44 test(s) -1..45 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t9501-gitweb-standalone-http-status.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9501-gitweb-standalone-http-status/.git/ -expecting success of 9501.1 'setup': - test_commit 'SnapshotTests' 'i can has snapshot' +checking known breakage of 9602.5 'test branch B_FROM_INITIALS_BUT_ONE': -[master (root-commit) cea0920] SnapshotTests - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 i can has snapshot -ok 1 - setup + test_cmp_branch_tree B_FROM_INITIALS_BUT_ONE -expecting success of 9501.2 'snapshots: tgz only default format enabled': gitweb_run "p=.git;a=snapshot;h=HEAD;sf=tgz" && - grep "Status: 200 OK" gitweb.output && - gitweb_run "p=.git;a=snapshot;h=HEAD;sf=tbz2" && - grep "403 - Unsupported snapshot format" gitweb.output && - gitweb_run "p=.git;a=snapshot;h=HEAD;sf=txz" && - grep "403 - Snapshot format not allowed" gitweb.output && - gitweb_run "p=.git;a=snapshot;h=HEAD;sf=zip" && - grep "403 - Unsupported snapshot format" gitweb.output -grep: gitweb.output: binary file matches -403 - Unsupported snapshot format -403 - Snapshot format not allowed -403 - Unsupported snapshot format -ok 2 - snapshots: tgz only default format enabled -expecting success of 9501.3 'snapshots: all enabled in default, use default disabled value': gitweb_run "p=.git;a=snapshot;h=HEAD;sf=tgz" && - grep "Status: 200 OK" gitweb.output && - gitweb_run "p=.git;a=snapshot;h=HEAD;sf=tbz2" && - grep "Status: 200 OK" gitweb.output && - gitweb_run "p=.git;a=snapshot;h=HEAD;sf=txz" && - grep "403 - Snapshot format not allowed" gitweb.output && - gitweb_run "p=.git;a=snapshot;h=HEAD;sf=zip" && - grep "Status: 200 OK" gitweb.output -grep: gitweb.output: binary file matches -grep: gitweb.output: binary file matches -403 - Snapshot format not allowed -grep: gitweb.output: binary file matches -ok 3 - snapshots: all enabled in default, use default disabled value +cvs checkout: Updating module-cvs-B_FROM_INITIALS_BUT_ONE +U module-cvs-B_FROM_INITIALS_BUT_ONE/default +cvs checkout: Updating module-cvs-B_FROM_INITIALS_BUT_ONE/sub1 +U module-cvs-B_FROM_INITIALS_BUT_ONE/sub1/default +cvs checkout: Updating module-cvs-B_FROM_INITIALS_BUT_ONE/sub1/subsubA +U module-cvs-B_FROM_INITIALS_BUT_ONE/sub1/subsubA/default +cvs checkout: Updating module-cvs-B_FROM_INITIALS_BUT_ONE/sub1/subsubB +cvs checkout: Updating module-cvs-B_FROM_INITIALS_BUT_ONE/sub2 +U module-cvs-B_FROM_INITIALS_BUT_ONE/sub2/default +cvs checkout: Updating module-cvs-B_FROM_INITIALS_BUT_ONE/sub2/subsubA +U module-cvs-B_FROM_INITIALS_BUT_ONE/sub2/subsubA/default +cvs checkout: Updating module-cvs-B_FROM_INITIALS_BUT_ONE/sub3 +U module-cvs-B_FROM_INITIALS_BUT_ONE/sub3/default +error: pathspec 'B_FROM_INITIALS_BUT_ONE' did not match any file(s) known to git +not ok 5 - test branch B_FROM_INITIALS_BUT_ONE # TODO known breakage -expecting success of 9501.4 'snapshots: zip explicitly disabled': gitweb_run "p=.git;a=snapshot;h=HEAD;sf=zip" && - grep "403 - Snapshot format not allowed" gitweb.output -403 - Snapshot format not allowed -ok 4 - snapshots: zip explicitly disabled +checking known breakage of 9602.6 'test branch B_MIXED': -expecting success of 9501.5 'snapshots: tgz explicitly enabled': gitweb_run "p=.git;a=snapshot;h=HEAD;sf=tgz" && - grep "Status: 200 OK" gitweb.output -grep: gitweb.output: binary file matches -ok 5 - snapshots: tgz explicitly enabled + test_cmp_branch_tree B_MIXED -expecting success of 9501.6 'snapshots: good tree-ish id': - gitweb_run "p=.git;a=snapshot;h=master;sf=tgz" && - grep "Status: 200 OK" gitweb.output -grep: gitweb.output: binary file matches -ok 6 - snapshots: good tree-ish id +cvs checkout: Updating module-cvs-B_MIXED +U module-cvs-B_MIXED/default +cvs checkout: Updating module-cvs-B_MIXED/sub1 +U module-cvs-B_MIXED/sub1/default +cvs checkout: Updating module-cvs-B_MIXED/sub1/subsubA +U module-cvs-B_MIXED/sub1/subsubA/default +cvs checkout: Updating module-cvs-B_MIXED/sub1/subsubB +U module-cvs-B_MIXED/sub1/subsubB/default +cvs checkout: Updating module-cvs-B_MIXED/sub2 +U module-cvs-B_MIXED/sub2/branch_B_MIXED_only +U module-cvs-B_MIXED/sub2/default +cvs checkout: Updating module-cvs-B_MIXED/sub2/subsubA +U module-cvs-B_MIXED/sub2/subsubA/default +cvs checkout: Updating module-cvs-B_MIXED/sub3 +U module-cvs-B_MIXED/sub3/default +Switched to branch 'B_MIXED' +--- module-cvs-B_MIXED/./sub3/default 2003-05-23 00:15:26.000000000 +0000 ++++ module-git/./sub3/default 2023-04-29 18:58:25.113023303 +0000 +@@ -3,3 +3,5 @@ + Every directory in the `proj' project has a file named `default'. + + This line was added by the first commit (affecting two files). ++ ++This line was added in the second commit (affecting all 7 files). +not ok 6 - test branch B_MIXED # TODO known breakage -expecting success of 9501.7 'snapshots: bad tree-ish id': - gitweb_run "p=.git;a=snapshot;h=frizzumFrazzum;sf=tgz" && - grep "404 - Object does not exist" gitweb.output +expecting success of 9602.7 'test branch B_SPLIT': -404 - Object does not exist -ok 7 - snapshots: bad tree-ish id + test_cmp_branch_tree B_SPLIT -expecting success of 9501.8 'snapshots: bad tree-ish id (tagged object)': - echo object > tag-object && - git add tag-object && - test_tick && git commit -m "Object to be tagged" && - git tag tagged-object $(git hash-object tag-object) && - gitweb_run "p=.git;a=snapshot;h=tagged-object;sf=tgz" && - grep "400 - Object is not a tree-ish" gitweb.output -[master 031b7cf] Object to be tagged - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 tag-object -400 - Object is not a tree-ish -ok 8 - snapshots: bad tree-ish id (tagged object) +cvs checkout: Updating module-cvs-B_SPLIT +U module-cvs-B_SPLIT/default +cvs checkout: Updating module-cvs-B_SPLIT/sub1 +U module-cvs-B_SPLIT/sub1/default +cvs checkout: Updating module-cvs-B_SPLIT/sub1/subsubA +U module-cvs-B_SPLIT/sub1/subsubA/default +cvs checkout: Updating module-cvs-B_SPLIT/sub1/subsubB +U module-cvs-B_SPLIT/sub1/subsubB/default +cvs checkout: Updating module-cvs-B_SPLIT/sub2 +U module-cvs-B_SPLIT/sub2/default +cvs checkout: Updating module-cvs-B_SPLIT/sub2/subsubA +U module-cvs-B_SPLIT/sub2/subsubA/default +cvs checkout: Updating module-cvs-B_SPLIT/sub3 +U module-cvs-B_SPLIT/sub3/default +Switched to branch 'B_SPLIT' +ok 7 - test branch B_SPLIT -expecting success of 9501.9 'snapshots: good object id': - ID=$(git rev-parse --verify HEAD) && - gitweb_run "p=.git;a=snapshot;h=$ID;sf=tgz" && - grep "Status: 200 OK" gitweb.output +checking known breakage of 9602.8 'test tag vendortag': -grep: gitweb.output: binary file matches -ok 9 - snapshots: good object id + test_cmp_branch_tree vendortag -expecting success of 9501.10 'snapshots: bad object id': - gitweb_run "p=.git;a=snapshot;h=abcdef01234;sf=tgz" && - grep "404 - Object does not exist" gitweb.output -404 - Object does not exist -ok 10 - snapshots: bad object id +cvs checkout: Updating module-cvs-vendortag +U module-cvs-vendortag/default +cvs checkout: Updating module-cvs-vendortag/sub1 +U module-cvs-vendortag/sub1/default +cvs checkout: Updating module-cvs-vendortag/sub1/subsubA +U module-cvs-vendortag/sub1/subsubA/default +cvs checkout: Updating module-cvs-vendortag/sub1/subsubB +U module-cvs-vendortag/sub1/subsubB/default +cvs checkout: Updating module-cvs-vendortag/sub2 +U module-cvs-vendortag/sub2/default +cvs checkout: Updating module-cvs-vendortag/sub2/subsubA +U module-cvs-vendortag/sub2/subsubA/default +cvs checkout: Updating module-cvs-vendortag/sub3 +U module-cvs-vendortag/sub3/default +error: pathspec 'vendortag' did not match any file(s) known to git +not ok 8 - test tag vendortag # TODO known breakage -expecting success of 9501.11 'modification: feed last-modified': - gitweb_run "p=.git;a=atom;h=master" && - grep "Status: 200 OK" gitweb.headers && - grep "Last-modified: Thu, 7 Apr 2005 22:14:13 +0000" gitweb.headers +expecting success of 9602.9 'test tag T_ALL_INITIAL_FILES': -Status: 200 OK -Last-modified: Thu, 7 Apr 2005 22:14:13 +0000 -ok 11 - modification: feed last-modified + test_cmp_branch_tree T_ALL_INITIAL_FILES -expecting success of 9501.12 'modification: feed if-modified-since (modified)': - HTTP_IF_MODIFIED_SINCE="Wed, 6 Apr 2005 22:14:13 +0000" && - export HTTP_IF_MODIFIED_SINCE && - test_when_finished "unset HTTP_IF_MODIFIED_SINCE" && - gitweb_run "p=.git;a=atom;h=master" && - grep "Status: 200 OK" gitweb.headers -Status: 200 OK -ok 12 - modification: feed if-modified-since (modified) +cvs checkout: Updating module-cvs-T_ALL_INITIAL_FILES +U module-cvs-T_ALL_INITIAL_FILES/default +cvs checkout: Updating module-cvs-T_ALL_INITIAL_FILES/sub1 +U module-cvs-T_ALL_INITIAL_FILES/sub1/default +cvs checkout: Updating module-cvs-T_ALL_INITIAL_FILES/sub1/subsubA +U module-cvs-T_ALL_INITIAL_FILES/sub1/subsubA/default +cvs checkout: Updating module-cvs-T_ALL_INITIAL_FILES/sub1/subsubB +U module-cvs-T_ALL_INITIAL_FILES/sub1/subsubB/default +cvs checkout: Updating module-cvs-T_ALL_INITIAL_FILES/sub2 +U module-cvs-T_ALL_INITIAL_FILES/sub2/default +cvs checkout: Updating module-cvs-T_ALL_INITIAL_FILES/sub2/subsubA +U module-cvs-T_ALL_INITIAL_FILES/sub2/subsubA/default +cvs checkout: Updating module-cvs-T_ALL_INITIAL_FILES/sub3 +U module-cvs-T_ALL_INITIAL_FILES/sub3/default +Note: switching to 'T_ALL_INITIAL_FILES'. -expecting success of 9501.13 'modification: feed if-modified-since (unmodified)': - HTTP_IF_MODIFIED_SINCE="Thu, 7 Apr 2005 22:14:13 +0000" && - export HTTP_IF_MODIFIED_SINCE && - test_when_finished "unset HTTP_IF_MODIFIED_SINCE" && - gitweb_run "p=.git;a=atom;h=master" && - grep "Status: 304 Not Modified" gitweb.headers +You are in 'detached HEAD' state. You can look around, make experimental +changes and commit them, and you can discard any commits you make in this +state without impacting any branches by switching back to a branch. -Status: 304 Not Modified -ok 13 - modification: feed if-modified-since (unmodified) +If you want to create a new branch to retain commits you create, you may +do so (now or later) by using -c with the switch command. Example: -expecting success of 9501.14 'modification: snapshot last-modified': - gitweb_run "p=.git;a=snapshot;h=master;sf=tgz" && - grep "Status: 200 OK" gitweb.headers && - grep "Last-modified: Thu, 7 Apr 2005 22:14:13 +0000" gitweb.headers + git switch -c -Status: 200 OK -Last-modified: Thu, 7 Apr 2005 22:14:13 +0000 -ok 14 - modification: snapshot last-modified +Or undo this operation with: -expecting success of 9501.15 'modification: snapshot if-modified-since (modified)': - HTTP_IF_MODIFIED_SINCE="Wed, 6 Apr 2005 22:14:13 +0000" && - export HTTP_IF_MODIFIED_SINCE && - test_when_finished "unset HTTP_IF_MODIFIED_SINCE" && - gitweb_run "p=.git;a=snapshot;h=master;sf=tgz" && - grep "Status: 200 OK" gitweb.headers + git switch - -Status: 200 OK -ok 15 - modification: snapshot if-modified-since (modified) +Turn off this advice by setting config variable advice.detachedHead to false -expecting success of 9501.16 'modification: snapshot if-modified-since (unmodified)': - HTTP_IF_MODIFIED_SINCE="Thu, 7 Apr 2005 22:14:13 +0000" && - export HTTP_IF_MODIFIED_SINCE && - test_when_finished "unset HTTP_IF_MODIFIED_SINCE" && - gitweb_run "p=.git;a=snapshot;h=master;sf=tgz" && - grep "Status: 304 Not Modified" gitweb.headers +HEAD is now at e9bb65d Initial import. +ok 9 - test tag T_ALL_INITIAL_FILES -Status: 304 Not Modified -ok 16 - modification: snapshot if-modified-since (unmodified) +checking known breakage of 9602.10 'test tag T_ALL_INITIAL_FILES_BUT_ONE': -expecting success of 9501.17 'modification: tree snapshot': - ID=$(git rev-parse --verify HEAD^{tree}) && - HTTP_IF_MODIFIED_SINCE="Wed, 6 Apr 2005 22:14:13 +0000" && - export HTTP_IF_MODIFIED_SINCE && - test_when_finished "unset HTTP_IF_MODIFIED_SINCE" && - gitweb_run "p=.git;a=snapshot;h=$ID;sf=tgz" && - grep "Status: 200 OK" gitweb.headers && - ! grep -i "last-modified" gitweb.headers + test_cmp_branch_tree T_ALL_INITIAL_FILES_BUT_ONE -Status: 200 OK -ok 17 - modification: tree snapshot -expecting success of 9501.18 'load checking: load too high (default action)': - gitweb_run "p=.git" && - grep "Status: 503 Service Unavailable" gitweb.headers && - grep "503 - The load average on the server is too high" gitweb.body +cvs checkout: Updating module-cvs-T_ALL_INITIAL_FILES_BUT_ONE +U module-cvs-T_ALL_INITIAL_FILES_BUT_ONE/default +cvs checkout: Updating module-cvs-T_ALL_INITIAL_FILES_BUT_ONE/sub1 +U module-cvs-T_ALL_INITIAL_FILES_BUT_ONE/sub1/default +cvs checkout: Updating module-cvs-T_ALL_INITIAL_FILES_BUT_ONE/sub1/subsubA +U module-cvs-T_ALL_INITIAL_FILES_BUT_ONE/sub1/subsubA/default +cvs checkout: Updating module-cvs-T_ALL_INITIAL_FILES_BUT_ONE/sub1/subsubB +cvs checkout: Updating module-cvs-T_ALL_INITIAL_FILES_BUT_ONE/sub2 +U module-cvs-T_ALL_INITIAL_FILES_BUT_ONE/sub2/default +cvs checkout: Updating module-cvs-T_ALL_INITIAL_FILES_BUT_ONE/sub2/subsubA +U module-cvs-T_ALL_INITIAL_FILES_BUT_ONE/sub2/subsubA/default +cvs checkout: Updating module-cvs-T_ALL_INITIAL_FILES_BUT_ONE/sub3 +U module-cvs-T_ALL_INITIAL_FILES_BUT_ONE/sub3/default +error: pathspec 'T_ALL_INITIAL_FILES_BUT_ONE' did not match any file(s) known to git +not ok 10 - test tag T_ALL_INITIAL_FILES_BUT_ONE # TODO known breakage -Status: 503 Service Unavailable -503 - The load average on the server is too high -ok 18 - load checking: load too high (default action) +checking known breakage of 9602.11 'test tag T_MIXED': -expecting success of 9501.19 'invalid arguments: invalid regexp (in project search)': - gitweb_run "a=project_list;s=*\.git;sr=1" && - grep "Status: 400" gitweb.headers && - grep "400 - Invalid.*regexp" gitweb.body + test_cmp_branch_tree T_MIXED -Status: 400 Bad Request -400 - Invalid search regexp '*\.git' -ok 19 - invalid arguments: invalid regexp (in project search) -# passed all 19 test(s) -1..19 +cvs checkout: Updating module-cvs-T_MIXED +U module-cvs-T_MIXED/default +cvs checkout: Updating module-cvs-T_MIXED/sub1 +U module-cvs-T_MIXED/sub1/default +cvs checkout: Updating module-cvs-T_MIXED/sub1/subsubA +U module-cvs-T_MIXED/sub1/subsubA/default +cvs checkout: Updating module-cvs-T_MIXED/sub1/subsubB +U module-cvs-T_MIXED/sub1/subsubB/default +cvs checkout: Updating module-cvs-T_MIXED/sub2 +U module-cvs-T_MIXED/sub2/default +cvs checkout: Updating module-cvs-T_MIXED/sub2/subsubA +U module-cvs-T_MIXED/sub2/subsubA/default +cvs checkout: Updating module-cvs-T_MIXED/sub3 +U module-cvs-T_MIXED/sub3/default +Previous HEAD position was e9bb65d Initial import. +HEAD is now at d875d54 Second commit to proj, affecting all 7 files. +--- module-cvs-T_MIXED/./sub2/subsubA/default 2003-05-22 23:20:19.000000000 +0000 ++++ module-git/./sub2/subsubA/default 2023-04-29 18:58:30.100552280 +0000 +@@ -1,3 +1,5 @@ + This is sub2/subsub2/default. + + Every directory in the `proj' project has a file named `default'. ++ ++This line was added in the second commit (affecting all 7 files). +not ok 11 - test tag T_MIXED # TODO known breakage + +# still have 6 known breakage(s) +# passed all remaining 5 test(s) +1..11 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' *** t9402-git-cvsserver-refs.sh *** @@ -421300,826 +422135,6 @@ 1..37 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t9600-cvsimport.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9600-cvsimport/.git/ -checking prerequisite: NOT_ROOT - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-NOT_ROOT" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-NOT_ROOT" && - uid=$(id -u) && - test "$uid" != 0 - -) -prerequisite NOT_ROOT ok -expecting success of 9600.1 'setup cvsroot environment': - CVSROOT=$(pwd)/cvsroot && - export CVSROOT - -ok 1 - setup cvsroot environment - -expecting success of 9600.2 'setup cvsroot': $CVS init -ok 2 - setup cvsroot - -expecting success of 9600.3 'setup a cvs module': - - mkdir "$CVSROOT/module" && - $CVS co -d module-cvs module && - (cd module-cvs && - cat <o_fortuna && -O Fortuna -velut luna -statu variabilis, - -semper crescis -aut decrescis; -vita detestabilis - -nunc obdurat -et tunc curat -ludo mentis aciem, - -egestatem, -potestatem -dissolvit ut glaciem. -EOF - $CVS add o_fortuna && - cat <message && -add "O Fortuna" lyrics - -These public domain lyrics make an excellent sample text. -EOF - $CVS commit -F message - ) - -cvs checkout: Updating module-cvs -cvs add: scheduling file `o_fortuna' for addition -cvs add: use `cvs commit' to add this file permanently -cvs commit: Examining . -/build/git-2.30.2/t/trash directory.t9600-cvsimport/cvsroot/module/o_fortuna,v <-- o_fortuna -initial revision: 1.1 -ok 3 - setup a cvs module - -expecting success of 9600.4 'import a trivial module': - - git cvsimport -a -R -z 0 -C module-git module && - test_cmp module-cvs/o_fortuna module-git/o_fortuna - - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9600-cvsimport/module-git/.git/ -ok 4 - import a trivial module - -expecting success of 9600.5 'pack refs': (cd module-git && git gc) -ok 5 - pack refs - -expecting success of 9600.6 'initial import has correct .git/cvs-revisions': - - (cd module-git && - git log --format="o_fortuna 1.1 %H" -1) > expected && - test_cmp expected module-git/.git/cvs-revisions - -ok 6 - initial import has correct .git/cvs-revisions - -expecting success of 9600.7 'update cvs module': - (cd module-cvs && - cat <o_fortuna && -O Fortune, -like the moon -you are changeable, - -ever waxing -and waning; -hateful life - -first oppresses -and then soothes -as fancy takes it; - -poverty -and power -it melts them like ice. -EOF - cat <message && -translate to English - -My Latin is terrible. -EOF - $CVS commit -F message - ) - -cvs commit: Examining . -/build/git-2.30.2/t/trash directory.t9600-cvsimport/cvsroot/module/o_fortuna,v <-- o_fortuna -new revision: 1.2; previous revision: 1.1 -ok 7 - update cvs module - -expecting success of 9600.8 'update git module': - - (cd module-git && - git config cvsimport.trackRevisions true && - git cvsimport -a -z 0 module && - git merge origin - ) && - test_cmp module-cvs/o_fortuna module-git/o_fortuna - - -Updating 0883dc6..2a158ee -Fast-forward (no commit created; -m option ignored) - o_fortuna | 24 ++++++++++++------------ - 1 file changed, 12 insertions(+), 12 deletions(-) -Already up to date. -ok 8 - update git module - -expecting success of 9600.9 'update has correct .git/cvs-revisions': - - (cd module-git && - git log --format="o_fortuna 1.1 %H" -1 HEAD^ && - git log --format="o_fortuna 1.2 %H" -1 HEAD) > expected && - test_cmp expected module-git/.git/cvs-revisions - -ok 9 - update has correct .git/cvs-revisions - -expecting success of 9600.10 'update cvs module': - - (cd module-cvs && - echo 1 >tick && - $CVS add tick && - $CVS commit -m 1 - ) - -cvs add: scheduling file `tick' for addition -cvs add: use `cvs commit' to add this file permanently -cvs commit: Examining . -/build/git-2.30.2/t/trash directory.t9600-cvsimport/cvsroot/module/tick,v <-- tick -initial revision: 1.1 -ok 10 - update cvs module - -expecting success of 9600.11 'cvsimport.module config works': - - (cd module-git && - git config cvsimport.module module && - git config cvsimport.trackRevisions true && - git cvsimport -a -z0 && - git merge origin - ) && - test_cmp module-cvs/tick module-git/tick - - -Updating 2a158ee..8e25617 -Fast-forward (no commit created; -m option ignored) - tick | 1 + - 1 file changed, 1 insertion(+) - create mode 100644 tick -Already up to date. -ok 11 - cvsimport.module config works - -expecting success of 9600.12 'second update has correct .git/cvs-revisions': - - (cd module-git && - git log --format="o_fortuna 1.1 %H" -1 HEAD^^ && - git log --format="o_fortuna 1.2 %H" -1 HEAD^ && - git log --format="tick 1.1 %H" -1 HEAD) > expected && - test_cmp expected module-git/.git/cvs-revisions - -ok 12 - second update has correct .git/cvs-revisions - -expecting success of 9600.13 'import from a CVS working tree': - - $CVS co -d import-from-wt module && - (cd import-from-wt && - git config cvsimport.trackRevisions false && - git cvsimport -a -z0 && - echo 1 >expect && - git log -1 --pretty=format:%s%n >actual && - test_cmp expect actual - ) - - -cvs checkout: Updating import-from-wt -U import-from-wt/o_fortuna -U import-from-wt/tick -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9600-cvsimport/import-from-wt/.git/ -ok 13 - import from a CVS working tree - -expecting success of 9600.14 'no .git/cvs-revisions created by default': - - ! test -e import-from-wt/.git/cvs-revisions - - -ok 14 - no .git/cvs-revisions created by default - -expecting success of 9600.15 'test entire HEAD': test_cmp_branch_tree master -cvs checkout: Updating module-cvs-master -U module-cvs-master/o_fortuna -U module-cvs-master/tick -Already on 'master' -ok 15 - test entire HEAD - -# passed all 15 test(s) -1..15 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t9502-gitweb-standalone-parse-output.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9502-gitweb-standalone-parse-output/.git/ -expecting success of 9502.1 'setup': - test_commit first foo && - git branch xx/test && - FULL_ID=$(git rev-parse --verify HEAD) && - SHORT_ID=$(git rev-parse --verify --short=7 HEAD) - -[master (root-commit) 1005c80] first - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 foo -ok 1 - setup - -expecting success of 9502.2 'snapshot: full sha1': - gitweb_run "p=.git;a=snapshot;h=$FULL_ID;sf=tar" && - check_snapshot ".git-$SHORT_ID" - -basename=.git-1005c80 -ok 2 - snapshot: full sha1 - -expecting success of 9502.3 'snapshot: shortened sha1': - gitweb_run "p=.git;a=snapshot;h=$SHORT_ID;sf=tar" && - check_snapshot ".git-$SHORT_ID" - -basename=.git-1005c80 -ok 3 - snapshot: shortened sha1 - -expecting success of 9502.4 'snapshot: almost full sha1': - ID=$(git rev-parse --short=30 HEAD) && - gitweb_run "p=.git;a=snapshot;h=$ID;sf=tar" && - check_snapshot ".git-$SHORT_ID" - -basename=.git-1005c80 -ok 4 - snapshot: almost full sha1 - -expecting success of 9502.5 'snapshot: HEAD': - gitweb_run "p=.git;a=snapshot;h=HEAD;sf=tar" && - check_snapshot ".git-HEAD-$SHORT_ID" - -basename=.git-HEAD-1005c80 -ok 5 - snapshot: HEAD - -expecting success of 9502.6 'snapshot: short branch name (master)': - gitweb_run "p=.git;a=snapshot;h=master;sf=tar" && - ID=$(git rev-parse --verify --short=7 master) && - check_snapshot ".git-master-$ID" - -basename=.git-master-1005c80 -ok 6 - snapshot: short branch name (master) - -expecting success of 9502.7 'snapshot: short tag name (first)': - gitweb_run "p=.git;a=snapshot;h=first;sf=tar" && - ID=$(git rev-parse --verify --short=7 first) && - check_snapshot ".git-first-$ID" - -basename=.git-first-1005c80 -ok 7 - snapshot: short tag name (first) - -expecting success of 9502.8 'snapshot: full branch name (refs/heads/master)': - gitweb_run "p=.git;a=snapshot;h=refs/heads/master;sf=tar" && - ID=$(git rev-parse --verify --short=7 master) && - check_snapshot ".git-master-$ID" - -basename=.git-master-1005c80 -ok 8 - snapshot: full branch name (refs/heads/master) - -expecting success of 9502.9 'snapshot: full tag name (refs/tags/first)': - gitweb_run "p=.git;a=snapshot;h=refs/tags/first;sf=tar" && - check_snapshot ".git-first" - -basename=.git-first -ok 9 - snapshot: full tag name (refs/tags/first) - -expecting success of 9502.10 'snapshot: hierarchical branch name (xx/test)': - gitweb_run "p=.git;a=snapshot;h=xx/test;sf=tar" && - ! grep "filename=.*/" gitweb.headers - -ok 10 - snapshot: hierarchical branch name (xx/test) - -expecting success of 9502.11 'forks: setup': - git init --bare foo.git && - echo file > file && - git --git-dir=foo.git --work-tree=. add file && - git --git-dir=foo.git --work-tree=. commit -m "Initial commit" && - echo "foo" > foo.git/description && - git clone --bare foo.git foo.bar.git && - echo "foo.bar" > foo.bar.git/description && - git clone --bare foo.git foo_baz.git && - echo "foo_baz" > foo_baz.git/description && - rm -fr foo && - mkdir -p foo && - ( - cd foo && - git clone --shared --bare ../foo.git foo-forked.git && - echo "fork of foo" > foo-forked.git/description - ) - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9502-gitweb-standalone-parse-output/foo.git/ -[master (root-commit) d29c088] Initial commit - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -Cloning into bare repository 'foo.bar.git'... -done. -Cloning into bare repository 'foo_baz.git'... -done. -Cloning into bare repository 'foo-forked.git'... -done. -ok 11 - forks: setup - -expecting success of 9502.12 'forks: not skipped unless "forks" feature enabled': - gitweb_run "a=project_list" && - grep -q ">\\.git<" gitweb.body && - grep -q ">foo\\.git<" gitweb.body && - grep -q ">foo_baz\\.git<" gitweb.body && - grep -q ">foo\\.bar\\.git<" gitweb.body && - grep -q ">foo_baz\\.git<" gitweb.body && - grep -q ">foo/foo-forked\\.git<" gitweb.body && - grep -q ">fork of .*<" gitweb.body - -ok 12 - forks: not skipped unless "forks" feature enabled - -expecting success of 9502.13 'enable forks feature': - cat >>gitweb_config.perl <<-\EOF - $feature{"forks"}{"default"} = [1]; - EOF - -ok 13 - enable forks feature - -expecting success of 9502.14 'forks: forks skipped if "forks" feature enabled': - gitweb_run "a=project_list" && - grep -q ">\\.git<" gitweb.body && - grep -q ">foo\\.git<" gitweb.body && - grep -q ">foo_baz\\.git<" gitweb.body && - grep -q ">foo\\.bar\\.git<" gitweb.body && - grep -q ">foo_baz\\.git<" gitweb.body && - grep -v ">foo/foo-forked\\.git<" gitweb.body && - grep -v ">fork of .*<" gitweb.body - - - - - - - - - - -[localhost] - - - - - - - -
-
- - - -
-List all projects
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ProjectDescriptionOwnerLast Change
.gitt9502-gitweb-standalone-parse... 18 years ago
foo.bar.gitfoo.bar18 years ago
+foo.gitfoo18 years ago
foo_baz.gitfoo_baz18 years ago
- - - - - - - - - - - - - - -[localhost] - - - - - - - -
-
- - - -
-List all projects
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ProjectDescriptionOwnerLast Change
.gitt9502-gitweb-standalone-parse... 18 years ago
foo.bar.gitfoo.bar18 years ago
+foo.gitfoo18 years ago
foo_baz.gitfoo_baz18 years ago
- - - - - -ok 14 - forks: forks skipped if "forks" feature enabled - -expecting success of 9502.15 'forks: "forks" action for forked repository': - gitweb_run "p=foo.git;a=forks" && - grep -q ">foo/foo-forked\\.git<" gitweb.body && - grep -q ">fork of foo<" gitweb.body - -ok 15 - forks: "forks" action for forked repository - -expecting success of 9502.16 'forks: can access forked repository': - gitweb_run "p=foo/foo-forked.git;a=summary" && - grep -q "200 OK" gitweb.headers && - grep -q ">fork of foo<" gitweb.body - -ok 16 - forks: can access forked repository - -expecting success of 9502.17 'forks: project_index lists all projects (incl. forks)': - cat >expected <<-\EOF && - .git - foo.bar.git - foo.git - foo/foo-forked.git - foo_baz.git - EOF - gitweb_run "a=project_index" && - sed -e "s/ .*//" actual && - test_cmp expected actual - -ok 17 - forks: project_index lists all projects (incl. forks) - -expecting success of 9502.18 'xss checks': - TAG="" && - xss "a=rss&p=$TAG" && - xss "a=rss&p=foo.git&f=$TAG" && - xss "" "$TAG+" - -Checking a=rss&p=... -Checking a=rss&p=foo.git&f=... -Checking +... -ok 18 - xss checks - -# passed all 18 test(s) -1..18 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t9601-cvsimport-vendor-branch.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9601-cvsimport-vendor-branch/.git/ -expecting success of 9601.1 'import a module with a vendor branch': - - git cvsimport -C module-git module - - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9601-cvsimport-vendor-branch/module-git/.git/ -Skipping #CVSPS_NO_BRANCH -ok 1 - import a module with a vendor branch - -expecting success of 9601.2 'check HEAD out of cvs repository': test_cvs_co master -cvs checkout: Updating module-cvs-master -U module-cvs-master/added-imported.txt -U module-cvs-master/imported-anonymously.txt -U module-cvs-master/imported-modified-imported.txt -U module-cvs-master/imported-modified.txt -U module-cvs-master/imported-once.txt -U module-cvs-master/imported-twice.txt -ok 2 - check HEAD out of cvs repository - -expecting success of 9601.3 'check master out of git repository': test_git_co master -Already on 'master' -ok 3 - check master out of git repository - -expecting success of 9601.4 'check a file that was imported once': - - test_cmp_branch_file master imported-once.txt - - -ok 4 - check a file that was imported once - -checking known breakage of 9601.5 'check a file that was imported twice': - - test_cmp_branch_file master imported-twice.txt - - ---- module-cvs-master/imported-twice.txt 2004-02-09 15:43:13.000000000 +0000 -+++ module-git/imported-twice.txt 2023-04-29 16:57:24.217376854 +0000 -@@ -1 +1 @@ --This is vtag-2 (on vbranchA) of imported-twice.txt. -+This is vtag-1 (on vbranchA) of imported-twice.txt. -not ok 5 - check a file that was imported twice # TODO known breakage - -expecting success of 9601.6 'check a file that was imported then modified on HEAD': - - test_cmp_branch_file master imported-modified.txt - - -ok 6 - check a file that was imported then modified on HEAD - -expecting success of 9601.7 'check a file that was imported, modified, then imported again': - - test_cmp_branch_file master imported-modified-imported.txt - - -ok 7 - check a file that was imported, modified, then imported again - -expecting success of 9601.8 'check a file that was added to HEAD then imported': - - test_cmp_branch_file master added-imported.txt - - -ok 8 - check a file that was added to HEAD then imported - -expecting success of 9601.9 'a vendor branch whose tag has been removed': - - test_cmp_branch_file master imported-anonymously.txt - - -ok 9 - a vendor branch whose tag has been removed - -# still have 1 known breakage(s) -# passed all remaining 8 test(s) -1..9 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t9603-cvsimport-patchsets.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9603-cvsimport-patchsets/.git/ -checking known breakage of 9603.1 'import with criss cross times on revisions': - git cvsimport -p"-x" -C module-git module && - ( - cd module-git && - git log --pretty=format:%s > ../actual-master && - git log A~2..A --pretty="format:%s %ad" -- > ../actual-A && - echo "" >> ../actual-master && - echo "" >> ../actual-A - ) && - echo "Rev 4 -Rev 3 -Rev 2 -Rev 1" > expect-master && - test_cmp expect-master actual-master && - - echo "Rev 5 Branch A Wed Mar 11 19:09:10 2009 +0000 -Rev 4 Branch A Wed Mar 11 19:03:52 2009 +0000" > expect-A && - test_cmp expect-A actual-A - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9603-cvsimport-patchsets/module-git/.git/ ---- expect-master 2023-04-29 16:57:26.153189351 +0000 -+++ actual-master 2023-04-29 16:57:26.153189351 +0000 -@@ -1,4 +1,4 @@ - Rev 4 - Rev 3 --Rev 2 - Rev 1 -+Rev 2 -not ok 1 - import with criss cross times on revisions # TODO known breakage - -# still have 1 known breakage(s) -1..1 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t9604-cvsimport-timestamps.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9604-cvsimport-timestamps/.git/ -expecting success of 9604.1 'check timestamps are UTC (TZ=CST6CDT)': - - TZ=CST6CDT git cvsimport -p"-x" -C module-1 module && - git cvsimport -p"-x" -C module-1 module && - ( - cd module-1 && - git log --format="%s %ai" - ) >actual-1 && - cat >expect-1 <<-EOF && - Rev 16 2006-10-29 07:00:01 +0000 - Rev 15 2006-10-29 06:59:59 +0000 - Rev 14 2006-04-02 08:00:01 +0000 - Rev 13 2006-04-02 07:59:59 +0000 - Rev 12 2005-12-01 00:00:00 +0000 - Rev 11 2005-11-01 00:00:00 +0000 - Rev 10 2005-10-01 00:00:00 +0000 - Rev 9 2005-09-01 00:00:00 +0000 - Rev 8 2005-08-01 00:00:00 +0000 - Rev 7 2005-07-01 00:00:00 +0000 - Rev 6 2005-06-01 00:00:00 +0000 - Rev 5 2005-05-01 00:00:00 +0000 - Rev 4 2005-04-01 00:00:00 +0000 - Rev 3 2005-03-01 00:00:00 +0000 - Rev 2 2005-02-01 00:00:00 +0000 - Rev 1 2005-01-01 00:00:00 +0000 - EOF - test_cmp expect-1 actual-1 - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9604-cvsimport-timestamps/module-1/.git/ -Already up to date. -ok 1 - check timestamps are UTC (TZ=CST6CDT) - -expecting success of 9604.2 'check timestamps with author-specific timezones': - - cat >cvs-authors <<-EOF && - user1=User One - user2=User Two CST6CDT - user3=User Three EST5EDT - user4=User Four MST7MDT - EOF - git cvsimport -p"-x" -A cvs-authors -C module-2 module && - ( - cd module-2 && - git log --format="%s %ai %an" - ) >actual-2 && - cat >expect-2 <<-EOF && - Rev 16 2006-10-29 01:00:01 -0600 User Two - Rev 15 2006-10-29 01:59:59 -0500 User Two - Rev 14 2006-04-02 03:00:01 -0500 User Two - Rev 13 2006-04-02 01:59:59 -0600 User Two - Rev 12 2005-11-30 17:00:00 -0700 User Four - Rev 11 2005-10-31 19:00:00 -0500 User Three - Rev 10 2005-09-30 19:00:00 -0500 User Two - Rev 9 2005-09-01 00:00:00 +0000 User One - Rev 8 2005-07-31 18:00:00 -0600 User Four - Rev 7 2005-06-30 20:00:00 -0400 User Three - Rev 6 2005-05-31 19:00:00 -0500 User Two - Rev 5 2005-05-01 00:00:00 +0000 User One - Rev 4 2005-03-31 17:00:00 -0700 User Four - Rev 3 2005-02-28 19:00:00 -0500 User Three - Rev 2 2005-01-31 18:00:00 -0600 User Two - Rev 1 2005-01-01 00:00:00 +0000 User One - EOF - test_cmp expect-2 actual-2 - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9604-cvsimport-timestamps/module-2/.git/ -ok 2 - check timestamps with author-specific timezones - -# passed all 2 test(s) -1..2 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' *** t9700-perl-git.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9700-perl-git/.git/ expecting success of 9700.1 'set up test repository': echo "test file 1" > file1 && @@ -422292,6 +422307,100 @@ 1..0 # SKIP skipping git p4 tests; no p4 or p4d make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t9604-cvsimport-timestamps.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9604-cvsimport-timestamps/.git/ +expecting success of 9604.1 'check timestamps are UTC (TZ=CST6CDT)': + + TZ=CST6CDT git cvsimport -p"-x" -C module-1 module && + git cvsimport -p"-x" -C module-1 module && + ( + cd module-1 && + git log --format="%s %ai" + ) >actual-1 && + cat >expect-1 <<-EOF && + Rev 16 2006-10-29 07:00:01 +0000 + Rev 15 2006-10-29 06:59:59 +0000 + Rev 14 2006-04-02 08:00:01 +0000 + Rev 13 2006-04-02 07:59:59 +0000 + Rev 12 2005-12-01 00:00:00 +0000 + Rev 11 2005-11-01 00:00:00 +0000 + Rev 10 2005-10-01 00:00:00 +0000 + Rev 9 2005-09-01 00:00:00 +0000 + Rev 8 2005-08-01 00:00:00 +0000 + Rev 7 2005-07-01 00:00:00 +0000 + Rev 6 2005-06-01 00:00:00 +0000 + Rev 5 2005-05-01 00:00:00 +0000 + Rev 4 2005-04-01 00:00:00 +0000 + Rev 3 2005-03-01 00:00:00 +0000 + Rev 2 2005-02-01 00:00:00 +0000 + Rev 1 2005-01-01 00:00:00 +0000 + EOF + test_cmp expect-1 actual-1 + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9604-cvsimport-timestamps/module-1/.git/ +Already up to date. +ok 1 - check timestamps are UTC (TZ=CST6CDT) + +expecting success of 9604.2 'check timestamps with author-specific timezones': + + cat >cvs-authors <<-EOF && + user1=User One + user2=User Two CST6CDT + user3=User Three EST5EDT + user4=User Four MST7MDT + EOF + git cvsimport -p"-x" -A cvs-authors -C module-2 module && + ( + cd module-2 && + git log --format="%s %ai %an" + ) >actual-2 && + cat >expect-2 <<-EOF && + Rev 16 2006-10-29 01:00:01 -0600 User Two + Rev 15 2006-10-29 01:59:59 -0500 User Two + Rev 14 2006-04-02 03:00:01 -0500 User Two + Rev 13 2006-04-02 01:59:59 -0600 User Two + Rev 12 2005-11-30 17:00:00 -0700 User Four + Rev 11 2005-10-31 19:00:00 -0500 User Three + Rev 10 2005-09-30 19:00:00 -0500 User Two + Rev 9 2005-09-01 00:00:00 +0000 User One + Rev 8 2005-07-31 18:00:00 -0600 User Four + Rev 7 2005-06-30 20:00:00 -0400 User Three + Rev 6 2005-05-31 19:00:00 -0500 User Two + Rev 5 2005-05-01 00:00:00 +0000 User One + Rev 4 2005-03-31 17:00:00 -0700 User Four + Rev 3 2005-02-28 19:00:00 -0500 User Three + Rev 2 2005-01-31 18:00:00 -0600 User Two + Rev 1 2005-01-01 00:00:00 +0000 User One + EOF + test_cmp expect-2 actual-2 + +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9604-cvsimport-timestamps/module-2/.git/ +ok 2 - check timestamps with author-specific timezones + +# passed all 2 test(s) +1..2 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t9818-git-p4-block.sh *** 1..0 # SKIP skipping git p4 tests; no p4 or p4d make[4]: Leaving directory '/build/git-2.30.2/t' @@ -422459,284 +422568,6 @@ 1..5 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' -*** t9602-cvsimport-branches-tags.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9602-cvsimport-branches-tags/.git/ -expecting success of 9602.1 'import module': - - git cvsimport -C module-git module - - -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9602-cvsimport-branches-tags/module-git/.git/ -ok 1 - import module - -expecting success of 9602.2 'test branch master': - - test_cmp_branch_tree master - - -cvs checkout: Updating module-cvs-master -U module-cvs-master/default -cvs checkout: Updating module-cvs-master/sub1 -U module-cvs-master/sub1/default -cvs checkout: Updating module-cvs-master/sub1/subsubA -U module-cvs-master/sub1/subsubA/default -cvs checkout: Updating module-cvs-master/sub1/subsubB -U module-cvs-master/sub1/subsubB/default -cvs checkout: Updating module-cvs-master/sub2 -U module-cvs-master/sub2/default -cvs checkout: Updating module-cvs-master/sub2/subsubA -U module-cvs-master/sub2/subsubA/default -cvs checkout: Updating module-cvs-master/sub3 -U module-cvs-master/sub3/default -Already on 'master' -ok 2 - test branch master - -expecting success of 9602.3 'test branch vendorbranch': - - test_cmp_branch_tree vendorbranch - - -cvs checkout: Updating module-cvs-vendorbranch -U module-cvs-vendorbranch/default -cvs checkout: Updating module-cvs-vendorbranch/sub1 -U module-cvs-vendorbranch/sub1/default -cvs checkout: Updating module-cvs-vendorbranch/sub1/subsubA -U module-cvs-vendorbranch/sub1/subsubA/default -cvs checkout: Updating module-cvs-vendorbranch/sub1/subsubB -U module-cvs-vendorbranch/sub1/subsubB/default -cvs checkout: Updating module-cvs-vendorbranch/sub2 -U module-cvs-vendorbranch/sub2/default -cvs checkout: Updating module-cvs-vendorbranch/sub2/subsubA -U module-cvs-vendorbranch/sub2/subsubA/default -cvs checkout: Updating module-cvs-vendorbranch/sub3 -U module-cvs-vendorbranch/sub3/default -Switched to branch 'vendorbranch' -ok 3 - test branch vendorbranch - -checking known breakage of 9602.4 'test branch B_FROM_INITIALS': - - test_cmp_branch_tree B_FROM_INITIALS - - -cvs checkout: Updating module-cvs-B_FROM_INITIALS -U module-cvs-B_FROM_INITIALS/default -cvs checkout: Updating module-cvs-B_FROM_INITIALS/sub1 -U module-cvs-B_FROM_INITIALS/sub1/default -cvs checkout: Updating module-cvs-B_FROM_INITIALS/sub1/subsubA -U module-cvs-B_FROM_INITIALS/sub1/subsubA/default -cvs checkout: Updating module-cvs-B_FROM_INITIALS/sub1/subsubB -U module-cvs-B_FROM_INITIALS/sub1/subsubB/default -cvs checkout: Updating module-cvs-B_FROM_INITIALS/sub2 -U module-cvs-B_FROM_INITIALS/sub2/default -cvs checkout: Updating module-cvs-B_FROM_INITIALS/sub2/subsubA -U module-cvs-B_FROM_INITIALS/sub2/subsubA/default -cvs checkout: Updating module-cvs-B_FROM_INITIALS/sub3 -U module-cvs-B_FROM_INITIALS/sub3/default -error: pathspec 'B_FROM_INITIALS' did not match any file(s) known to git -not ok 4 - test branch B_FROM_INITIALS # TODO known breakage - -checking known breakage of 9602.5 'test branch B_FROM_INITIALS_BUT_ONE': - - test_cmp_branch_tree B_FROM_INITIALS_BUT_ONE - - -cvs checkout: Updating module-cvs-B_FROM_INITIALS_BUT_ONE -U module-cvs-B_FROM_INITIALS_BUT_ONE/default -cvs checkout: Updating module-cvs-B_FROM_INITIALS_BUT_ONE/sub1 -U module-cvs-B_FROM_INITIALS_BUT_ONE/sub1/default -cvs checkout: Updating module-cvs-B_FROM_INITIALS_BUT_ONE/sub1/subsubA -U module-cvs-B_FROM_INITIALS_BUT_ONE/sub1/subsubA/default -cvs checkout: Updating module-cvs-B_FROM_INITIALS_BUT_ONE/sub1/subsubB -cvs checkout: Updating module-cvs-B_FROM_INITIALS_BUT_ONE/sub2 -U module-cvs-B_FROM_INITIALS_BUT_ONE/sub2/default -cvs checkout: Updating module-cvs-B_FROM_INITIALS_BUT_ONE/sub2/subsubA -U module-cvs-B_FROM_INITIALS_BUT_ONE/sub2/subsubA/default -cvs checkout: Updating module-cvs-B_FROM_INITIALS_BUT_ONE/sub3 -U module-cvs-B_FROM_INITIALS_BUT_ONE/sub3/default -error: pathspec 'B_FROM_INITIALS_BUT_ONE' did not match any file(s) known to git -not ok 5 - test branch B_FROM_INITIALS_BUT_ONE # TODO known breakage - -checking known breakage of 9602.6 'test branch B_MIXED': - - test_cmp_branch_tree B_MIXED - - -cvs checkout: Updating module-cvs-B_MIXED -U module-cvs-B_MIXED/default -cvs checkout: Updating module-cvs-B_MIXED/sub1 -U module-cvs-B_MIXED/sub1/default -cvs checkout: Updating module-cvs-B_MIXED/sub1/subsubA -U module-cvs-B_MIXED/sub1/subsubA/default -cvs checkout: Updating module-cvs-B_MIXED/sub1/subsubB -U module-cvs-B_MIXED/sub1/subsubB/default -cvs checkout: Updating module-cvs-B_MIXED/sub2 -U module-cvs-B_MIXED/sub2/branch_B_MIXED_only -U module-cvs-B_MIXED/sub2/default -cvs checkout: Updating module-cvs-B_MIXED/sub2/subsubA -U module-cvs-B_MIXED/sub2/subsubA/default -cvs checkout: Updating module-cvs-B_MIXED/sub3 -U module-cvs-B_MIXED/sub3/default -Switched to branch 'B_MIXED' ---- module-cvs-B_MIXED/./sub3/default 2003-05-23 00:15:26.000000000 +0000 -+++ module-git/./sub3/default 2023-04-29 16:57:30.028813974 +0000 -@@ -3,3 +3,5 @@ - Every directory in the `proj' project has a file named `default'. - - This line was added by the first commit (affecting two files). -+ -+This line was added in the second commit (affecting all 7 files). -not ok 6 - test branch B_MIXED # TODO known breakage - -expecting success of 9602.7 'test branch B_SPLIT': - - test_cmp_branch_tree B_SPLIT - - -cvs checkout: Updating module-cvs-B_SPLIT -U module-cvs-B_SPLIT/default -cvs checkout: Updating module-cvs-B_SPLIT/sub1 -U module-cvs-B_SPLIT/sub1/default -cvs checkout: Updating module-cvs-B_SPLIT/sub1/subsubA -U module-cvs-B_SPLIT/sub1/subsubA/default -cvs checkout: Updating module-cvs-B_SPLIT/sub1/subsubB -U module-cvs-B_SPLIT/sub1/subsubB/default -cvs checkout: Updating module-cvs-B_SPLIT/sub2 -U module-cvs-B_SPLIT/sub2/default -cvs checkout: Updating module-cvs-B_SPLIT/sub2/subsubA -U module-cvs-B_SPLIT/sub2/subsubA/default -cvs checkout: Updating module-cvs-B_SPLIT/sub3 -U module-cvs-B_SPLIT/sub3/default -Switched to branch 'B_SPLIT' -ok 7 - test branch B_SPLIT - -checking known breakage of 9602.8 'test tag vendortag': - - test_cmp_branch_tree vendortag - - -cvs checkout: Updating module-cvs-vendortag -U module-cvs-vendortag/default -cvs checkout: Updating module-cvs-vendortag/sub1 -U module-cvs-vendortag/sub1/default -cvs checkout: Updating module-cvs-vendortag/sub1/subsubA -U module-cvs-vendortag/sub1/subsubA/default -cvs checkout: Updating module-cvs-vendortag/sub1/subsubB -U module-cvs-vendortag/sub1/subsubB/default -cvs checkout: Updating module-cvs-vendortag/sub2 -U module-cvs-vendortag/sub2/default -cvs checkout: Updating module-cvs-vendortag/sub2/subsubA -U module-cvs-vendortag/sub2/subsubA/default -cvs checkout: Updating module-cvs-vendortag/sub3 -U module-cvs-vendortag/sub3/default -error: pathspec 'vendortag' did not match any file(s) known to git -not ok 8 - test tag vendortag # TODO known breakage - -expecting success of 9602.9 'test tag T_ALL_INITIAL_FILES': - - test_cmp_branch_tree T_ALL_INITIAL_FILES - - -cvs checkout: Updating module-cvs-T_ALL_INITIAL_FILES -U module-cvs-T_ALL_INITIAL_FILES/default -cvs checkout: Updating module-cvs-T_ALL_INITIAL_FILES/sub1 -U module-cvs-T_ALL_INITIAL_FILES/sub1/default -cvs checkout: Updating module-cvs-T_ALL_INITIAL_FILES/sub1/subsubA -U module-cvs-T_ALL_INITIAL_FILES/sub1/subsubA/default -cvs checkout: Updating module-cvs-T_ALL_INITIAL_FILES/sub1/subsubB -U module-cvs-T_ALL_INITIAL_FILES/sub1/subsubB/default -cvs checkout: Updating module-cvs-T_ALL_INITIAL_FILES/sub2 -U module-cvs-T_ALL_INITIAL_FILES/sub2/default -cvs checkout: Updating module-cvs-T_ALL_INITIAL_FILES/sub2/subsubA -U module-cvs-T_ALL_INITIAL_FILES/sub2/subsubA/default -cvs checkout: Updating module-cvs-T_ALL_INITIAL_FILES/sub3 -U module-cvs-T_ALL_INITIAL_FILES/sub3/default -Note: switching to 'T_ALL_INITIAL_FILES'. - -You are in 'detached HEAD' state. You can look around, make experimental -changes and commit them, and you can discard any commits you make in this -state without impacting any branches by switching back to a branch. - -If you want to create a new branch to retain commits you create, you may -do so (now or later) by using -c with the switch command. Example: - - git switch -c - -Or undo this operation with: - - git switch - - -Turn off this advice by setting config variable advice.detachedHead to false - -HEAD is now at e9bb65d Initial import. -ok 9 - test tag T_ALL_INITIAL_FILES - -checking known breakage of 9602.10 'test tag T_ALL_INITIAL_FILES_BUT_ONE': - - test_cmp_branch_tree T_ALL_INITIAL_FILES_BUT_ONE - - -cvs checkout: Updating module-cvs-T_ALL_INITIAL_FILES_BUT_ONE -U module-cvs-T_ALL_INITIAL_FILES_BUT_ONE/default -cvs checkout: Updating module-cvs-T_ALL_INITIAL_FILES_BUT_ONE/sub1 -U module-cvs-T_ALL_INITIAL_FILES_BUT_ONE/sub1/default -cvs checkout: Updating module-cvs-T_ALL_INITIAL_FILES_BUT_ONE/sub1/subsubA -U module-cvs-T_ALL_INITIAL_FILES_BUT_ONE/sub1/subsubA/default -cvs checkout: Updating module-cvs-T_ALL_INITIAL_FILES_BUT_ONE/sub1/subsubB -cvs checkout: Updating module-cvs-T_ALL_INITIAL_FILES_BUT_ONE/sub2 -U module-cvs-T_ALL_INITIAL_FILES_BUT_ONE/sub2/default -cvs checkout: Updating module-cvs-T_ALL_INITIAL_FILES_BUT_ONE/sub2/subsubA -U module-cvs-T_ALL_INITIAL_FILES_BUT_ONE/sub2/subsubA/default -cvs checkout: Updating module-cvs-T_ALL_INITIAL_FILES_BUT_ONE/sub3 -U module-cvs-T_ALL_INITIAL_FILES_BUT_ONE/sub3/default -error: pathspec 'T_ALL_INITIAL_FILES_BUT_ONE' did not match any file(s) known to git -not ok 10 - test tag T_ALL_INITIAL_FILES_BUT_ONE # TODO known breakage - -checking known breakage of 9602.11 'test tag T_MIXED': - - test_cmp_branch_tree T_MIXED - - -cvs checkout: Updating module-cvs-T_MIXED -U module-cvs-T_MIXED/default -cvs checkout: Updating module-cvs-T_MIXED/sub1 -U module-cvs-T_MIXED/sub1/default -cvs checkout: Updating module-cvs-T_MIXED/sub1/subsubA -U module-cvs-T_MIXED/sub1/subsubA/default -cvs checkout: Updating module-cvs-T_MIXED/sub1/subsubB -U module-cvs-T_MIXED/sub1/subsubB/default -cvs checkout: Updating module-cvs-T_MIXED/sub2 -U module-cvs-T_MIXED/sub2/default -cvs checkout: Updating module-cvs-T_MIXED/sub2/subsubA -U module-cvs-T_MIXED/sub2/subsubA/default -cvs checkout: Updating module-cvs-T_MIXED/sub3 -U module-cvs-T_MIXED/sub3/default -Previous HEAD position was e9bb65d Initial import. -HEAD is now at d875d54 Second commit to proj, affecting all 7 files. ---- module-cvs-T_MIXED/./sub2/subsubA/default 2003-05-22 23:20:19.000000000 +0000 -+++ module-git/./sub2/subsubA/default 2023-04-29 16:57:35.028329772 +0000 -@@ -1,3 +1,5 @@ - This is sub2/subsub2/default. - - Every directory in the `proj' project has a file named `default'. -+ -+This line was added in the second commit (affecting all 7 files). -not ok 11 - test tag T_MIXED # TODO known breakage - -# still have 6 known breakage(s) -# passed all remaining 5 test(s) -1..11 -make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' *** t9903-bash-prompt.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9903-bash-prompt/.git/ expecting success of 9903.1 'setup for prompt tests': @@ -423847,6 +423678,758 @@ 1..66 make[4]: Leaving directory '/build/git-2.30.2/t' make[4]: Entering directory '/build/git-2.30.2/t' +*** t9500-gitweb-standalone-no-errors.sh *** +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9500-gitweb-standalone-no-errors/.git/ +expecting success of 9500.1 'no commits: projects_list (implicit)': gitweb_run +ok 1 - no commits: projects_list (implicit) + +expecting success of 9500.2 'no commits: projects_index': gitweb_run "a=project_index" +ok 2 - no commits: projects_index + +expecting success of 9500.3 'no commits: .git summary (implicit)': gitweb_run "p=.git" +ok 3 - no commits: .git summary (implicit) + +expecting success of 9500.4 'no commits: .git commit (implicit HEAD)': gitweb_run "p=.git;a=commit" +ok 4 - no commits: .git commit (implicit HEAD) + +expecting success of 9500.5 'no commits: .git commitdiff (implicit HEAD)': gitweb_run "p=.git;a=commitdiff" +ok 5 - no commits: .git commitdiff (implicit HEAD) + +expecting success of 9500.6 'no commits: .git tree (implicit HEAD)': gitweb_run "p=.git;a=tree" +ok 6 - no commits: .git tree (implicit HEAD) + +expecting success of 9500.7 'no commits: .git heads': gitweb_run "p=.git;a=heads" +ok 7 - no commits: .git heads + +expecting success of 9500.8 'no commits: .git tags': gitweb_run "p=.git;a=tags" +ok 8 - no commits: .git tags + +expecting success of 9500.9 'Make initial commit': echo "Not an empty file." >file && + git add file && + git commit -a -m "Initial commit." && + git branch b +[master (root-commit) f6e1c08] Initial commit. + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file +ok 9 - Make initial commit + +expecting success of 9500.10 'projects_list (implicit)': gitweb_run +ok 10 - projects_list (implicit) + +expecting success of 9500.11 'projects_index': gitweb_run "a=project_index" +ok 11 - projects_index + +expecting success of 9500.12 '.git summary (implicit)': gitweb_run "p=.git" +ok 12 - .git summary (implicit) + +expecting success of 9500.13 '.git commit (implicit HEAD)': gitweb_run "p=.git;a=commit" +ok 13 - .git commit (implicit HEAD) + +expecting success of 9500.14 '.git commitdiff (implicit HEAD, root commit)': gitweb_run "p=.git;a=commitdiff" +ok 14 - .git commitdiff (implicit HEAD, root commit) + +expecting success of 9500.15 '.git commitdiff_plain (implicit HEAD, root commit)': gitweb_run "p=.git;a=commitdiff_plain" +ok 15 - .git commitdiff_plain (implicit HEAD, root commit) + +expecting success of 9500.16 '.git commit (HEAD)': gitweb_run "p=.git;a=commit;h=HEAD" +ok 16 - .git commit (HEAD) + +expecting success of 9500.17 '.git tree (implicit HEAD)': gitweb_run "p=.git;a=tree" +ok 17 - .git tree (implicit HEAD) + +expecting success of 9500.18 '.git blob (file)': gitweb_run "p=.git;a=blob;f=file" +ok 18 - .git blob (file) + +expecting success of 9500.19 '.git blob_plain (file)': gitweb_run "p=.git;a=blob_plain;f=file" +ok 19 - .git blob_plain (file) + +expecting success of 9500.20 '.git commit (non-existent)': gitweb_run "p=.git;a=commit;h=non-existent" +ok 20 - .git commit (non-existent) + +expecting success of 9500.21 '.git commitdiff (non-existent)': gitweb_run "p=.git;a=commitdiff;h=non-existent" +ok 21 - .git commitdiff (non-existent) + +expecting success of 9500.22 '.git commitdiff (non-existent vs HEAD)': gitweb_run "p=.git;a=commitdiff;hp=non-existent;h=HEAD" +ok 22 - .git commitdiff (non-existent vs HEAD) + +expecting success of 9500.23 '.git tree (0000000000000000000000000000000000000000)': gitweb_run "p=.git;a=tree;h=0000000000000000000000000000000000000000" +ok 23 - .git tree (0000000000000000000000000000000000000000) + +expecting success of 9500.24 '.git tag (0000000000000000000000000000000000000000)': gitweb_run "p=.git;a=tag;h=0000000000000000000000000000000000000000" +ok 24 - .git tag (0000000000000000000000000000000000000000) + +expecting success of 9500.25 '.git blob (non-existent)': gitweb_run "p=.git;a=blob;f=non-existent" +ok 25 - .git blob (non-existent) + +expecting success of 9500.26 '.git blob_plain (non-existent)': gitweb_run "p=.git;a=blob_plain;f=non-existent" +ok 26 - .git blob_plain (non-existent) + +expecting success of 9500.27 'commitdiff(0): root': gitweb_run "p=.git;a=commitdiff" +ok 27 - commitdiff(0): root + +expecting success of 9500.28 'commitdiff(0): file added': echo "New file" >new_file && + git add new_file && + git commit -a -m "File added." && + gitweb_run "p=.git;a=commitdiff" +[master aef3daf] File added. + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 new_file +ok 28 - commitdiff(0): file added + +expecting success of 9500.29 'commitdiff(0): mode change': test_chmod +x new_file && + git commit -a -m "Mode changed." && + gitweb_run "p=.git;a=commitdiff" +[master 4d63074] Mode changed. + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + mode change 100644 => 100755 new_file +ok 29 - commitdiff(0): mode change + +expecting success of 9500.30 'commitdiff(0): file renamed': git mv new_file renamed_file && + git commit -a -m "File renamed." && + gitweb_run "p=.git;a=commitdiff" +[master c3af6e3] File renamed. + Author: A U Thor + 1 file changed, 0 insertions(+), 0 deletions(-) + rename new_file => renamed_file (100%) +ok 30 - commitdiff(0): file renamed + +expecting success of 9500.31 'commitdiff(0): file to symlink': rm renamed_file && + test_ln_s_add file renamed_file && + git commit -a -m "File to symlink." && + gitweb_run "p=.git;a=commitdiff" +checking prerequisite: SYMLINKS + +mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && +( + cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && + # test whether the filesystem supports symbolic links + ln -s x y && test -h y + +) +prerequisite SYMLINKS ok +[master 9d683f7] File to symlink. + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) + rewrite renamed_file (100%) + mode change 100755 => 120000 +ok 31 - commitdiff(0): file to symlink + +expecting success of 9500.32 'commitdiff(0): file deleted': git rm renamed_file && + rm -f renamed_file && + git commit -a -m "File removed." && + gitweb_run "p=.git;a=commitdiff" +rm 'renamed_file' +[master a32c3dd] File removed. + Author: A U Thor + 1 file changed, 1 deletion(-) + delete mode 120000 renamed_file +ok 32 - commitdiff(0): file deleted + +expecting success of 9500.33 'commitdiff(0): file copied / new file': cp file file2 && + git add file2 && + git commit -a -m "File copied." && + gitweb_run "p=.git;a=commitdiff" +[master 13afdf6] File copied. + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 file2 +ok 33 - commitdiff(0): file copied / new file + +expecting success of 9500.34 'commitdiff(0): mode change and modified': echo "New line" >>file2 && + test_chmod +x file2 && + git commit -a -m "Mode change and modification." && + gitweb_run "p=.git;a=commitdiff" +[master b2fe804] Mode change and modification. + Author: A U Thor + 1 file changed, 1 insertion(+) + mode change 100644 => 100755 file2 +ok 34 - commitdiff(0): mode change and modified + +expecting success of 9500.35 'commitdiff(0): renamed and modified': cat >file2<>file3 && + git commit -a -m "File rename and modification." && + gitweb_run "p=.git;a=commitdiff" +[master ce1348f] File added. + Author: A U Thor + 1 file changed, 7 insertions(+), 2 deletions(-) +[master 763e503] File rename and modification. + Author: A U Thor + 1 file changed, 1 insertion(+) + rename file2 => file3 (90%) +ok 35 - commitdiff(0): renamed and modified + +expecting success of 9500.36 'commitdiff(0): renamed, mode change and modified': git mv file3 file2 && + echo "Propter nomen suum." >>file2 && + test_chmod +x file2 && + git commit -a -m "File rename, mode change and modification." && + gitweb_run "p=.git;a=commitdiff" +[master 54200a9] File rename, mode change and modification. + Author: A U Thor + 1 file changed, 1 insertion(+) + rename file3 => file2 (91%) +ok 36 - commitdiff(0): renamed, mode change and modified + +expecting success of 9500.37 'setup typechange commits': + echo "hello world" >foo && + echo "hi planet" >bar && + git update-index --add foo bar && + git commit -m initial && + git branch initial && + rm -f foo && + test_ln_s_add bar foo && + git commit -m "foo symlinked to bar" && + git branch foo-symlinked-to-bar && + rm -f foo && + echo "how far is the sun?" >foo && + git update-index foo && + git commit -m "foo back to file" && + git branch foo-back-to-file && + rm -f foo && + git update-index --remove foo && + mkdir foo && + echo "if only I knew" >foo/baz && + git update-index --add foo/baz && + git commit -m "foo becomes a directory" && + git branch "foo-becomes-a-directory" && + echo "hello world" >foo/baz && + git update-index foo/baz && + git commit -m "foo/baz is the original foo" && + git branch foo-baz-renamed-from-foo + +[master 1c15952] initial + Author: A U Thor + 2 files changed, 2 insertions(+) + create mode 100644 bar + create mode 100644 foo +[master fc2bb47] foo symlinked to bar + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) + rewrite foo (100%) + mode change 100644 => 120000 +[master 4ac81f8] foo back to file + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) + rewrite foo (100%) + mode change 120000 => 100644 +[master e02950a] foo becomes a directory + Author: A U Thor + 2 files changed, 1 insertion(+), 1 deletion(-) + delete mode 100644 foo + create mode 100644 foo/baz +[master 758ecec] foo/baz is the original foo + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +ok 37 - setup typechange commits + +expecting success of 9500.38 'commitdiff(2): file renamed from foo to foo/baz': gitweb_run "p=.git;a=commitdiff;hp=initial;h=foo-baz-renamed-from-foo" +ok 38 - commitdiff(2): file renamed from foo to foo/baz + +expecting success of 9500.39 'commitdiff(2): file renamed from foo/baz to foo': gitweb_run "p=.git;a=commitdiff;hp=foo-baz-renamed-from-foo;h=initial" +ok 39 - commitdiff(2): file renamed from foo/baz to foo + +expecting success of 9500.40 'commitdiff(2): directory becomes file': gitweb_run "p=.git;a=commitdiff;hp=foo-becomes-a-directory;h=initial" +ok 40 - commitdiff(2): directory becomes file + +expecting success of 9500.41 'commitdiff(2): file becomes directory': gitweb_run "p=.git;a=commitdiff;hp=initial;h=foo-becomes-a-directory" +ok 41 - commitdiff(2): file becomes directory + +expecting success of 9500.42 'commitdiff(2): file becomes symlink': gitweb_run "p=.git;a=commitdiff;hp=initial;h=foo-symlinked-to-bar" +ok 42 - commitdiff(2): file becomes symlink + +expecting success of 9500.43 'commitdiff(2): symlink becomes file': gitweb_run "p=.git;a=commitdiff;hp=foo-symlinked-to-bar;h=foo-back-to-file" +ok 43 - commitdiff(2): symlink becomes file + +expecting success of 9500.44 'commitdiff(2): symlink becomes directory': gitweb_run "p=.git;a=commitdiff;hp=foo-symlinked-to-bar;h=foo-becomes-a-directory" +ok 44 - commitdiff(2): symlink becomes directory + +expecting success of 9500.45 'commitdiff(2): directory becomes symlink': gitweb_run "p=.git;a=commitdiff;hp=foo-becomes-a-directory;h=foo-symlinked-to-bar" +ok 45 - commitdiff(2): directory becomes symlink + +expecting success of 9500.46 'setup incomplete lines': + cat >file<<-\EOF && + Dominus regit me, + et nihil mihi deerit. + In loco pascuae ibi me collocavit, + super aquam refectionis educavit me; + animam meam convertit, + deduxit me super semitas jusitiae, + propter nomen suum. + CHANGE_ME + EOF + git commit -a -m "Preparing for incomplete lines" && + echo "incomplete" | tr -d "\\012" >>file && + git commit -a -m "Add incomplete line" && + git tag incomplete_lines_add && + sed -e s/CHANGE_ME/change_me/ file+ && + mv -f file+ file && + git commit -a -m "Incomplete context line" && + git tag incomplete_lines_ctx && + echo "Dominus regit me," >file && + echo "incomplete line" | tr -d "\\012" >>file && + git commit -a -m "Change incomplete line" && + git tag incomplete_lines_chg && + echo "Dominus regit me," >file && + git commit -a -m "Remove incomplete line" && + git tag incomplete_lines_rem + +[master 726d325] Preparing for incomplete lines + Author: A U Thor + 1 file changed, 8 insertions(+), 1 deletion(-) +[master 5ece9db] Add incomplete line + Author: A U Thor + 1 file changed, 1 insertion(+) +[master 7182367] Incomplete context line + Author: A U Thor + 1 file changed, 1 insertion(+), 1 deletion(-) +[master 19ad71b] Change incomplete line + Author: A U Thor + 1 file changed, 1 insertion(+), 8 deletions(-) +[master 08fef32] Remove incomplete line + Author: A U Thor + 1 file changed, 1 deletion(-) +ok 46 - setup incomplete lines + +expecting success of 9500.47 'commitdiff(1): addition of incomplete line': + gitweb_run "p=.git;a=commitdiff;h=incomplete_lines_add" + +ok 47 - commitdiff(1): addition of incomplete line + +expecting success of 9500.48 'commitdiff(1): incomplete line as context line': + gitweb_run "p=.git;a=commitdiff;h=incomplete_lines_ctx" + +ok 48 - commitdiff(1): incomplete line as context line + +expecting success of 9500.49 'commitdiff(1): change incomplete line': + gitweb_run "p=.git;a=commitdiff;h=incomplete_lines_chg" + +ok 49 - commitdiff(1): change incomplete line + +expecting success of 9500.50 'commitdiff(1): removal of incomplete line': + gitweb_run "p=.git;a=commitdiff;h=incomplete_lines_rem" + +ok 50 - commitdiff(1): removal of incomplete line + +expecting success of 9500.51 'Create a merge': git checkout b && + echo "Branch" >>b && + git add b && + git commit -a -m "On branch" && + git checkout master && + git merge b && + git tag merge_commit +Switched to branch 'b' +[b 3f8100f] On branch + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 b +Switched to branch 'master' +Merging: +08fef32 Remove incomplete line +virtual b +found 1 common ancestor: +f6e1c08 Initial commit. +Merge made by the 'recursive' strategy. + b | 1 + + 1 file changed, 1 insertion(+) + create mode 100644 b +ok 51 - Create a merge + +expecting success of 9500.52 'commit(0): merge commit': gitweb_run "p=.git;a=commit" +ok 52 - commit(0): merge commit + +expecting success of 9500.53 'commitdiff(0): merge commit': gitweb_run "p=.git;a=commitdiff" +ok 53 - commitdiff(0): merge commit + +expecting success of 9500.54 'Prepare large commit': git checkout b && + echo "To be changed" >01-change && + echo "To be renamed" >02-pure-rename-from && + echo "To be deleted" >03-delete && + echo "To be renamed and changed" >04-rename-from && + echo "To have mode changed" >05-mode-change && + echo "File to symlink" >06-file-or-symlink && + echo "To be changed and have mode changed" >07-change-mode-change && + git add 0* && + git commit -a -m "Prepare large commit" && + echo "Changed" >01-change && + git mv 02-pure-rename-from 02-pure-rename-to && + git rm 03-delete && rm -f 03-delete && + echo "A new file" >03-new && + git add 03-new && + git mv 04-rename-from 04-rename-to && + echo "Changed" >>04-rename-to && + test_chmod +x 05-mode-change && + rm -f 06-file-or-symlink && + test_ln_s_add 01-change 06-file-or-symlink && + echo "Changed and have mode changed" >07-change-mode-change && + test_chmod +x 07-change-mode-change && + git commit -a -m "Large commit" && + git checkout master +Switched to branch 'b' +[b 42d1b13] Prepare large commit + Author: A U Thor + 7 files changed, 7 insertions(+) + create mode 100644 01-change + create mode 100644 02-pure-rename-from + create mode 100644 03-delete + create mode 100644 04-rename-from + create mode 100644 05-mode-change + create mode 100644 06-file-or-symlink + create mode 100644 07-change-mode-change +rm '03-delete' +[b a99c658] Large commit + Author: A U Thor + 8 files changed, 5 insertions(+), 4 deletions(-) + rename 02-pure-rename-from => 02-pure-rename-to (100%) + delete mode 100644 03-delete + create mode 100644 03-new + rename 04-rename-from => 04-rename-to (76%) + mode change 100644 => 100755 05-mode-change + rewrite 06-file-or-symlink (100%) + mode change 100644 => 120000 + mode change 100644 => 100755 07-change-mode-change +Switched to branch 'master' +ok 54 - Prepare large commit + +expecting success of 9500.55 'commit(1): large commit': gitweb_run "p=.git;a=commit;h=b" +ok 55 - commit(1): large commit + +expecting success of 9500.56 'commitdiff(1): large commit': gitweb_run "p=.git;a=commitdiff;h=b" +ok 56 - commitdiff(1): large commit + +expecting success of 9500.57 'side-by-side: addition of incomplete line': + gitweb_run "p=.git;a=commitdiff;h=incomplete_lines_add;ds=sidebyside" + +ok 57 - side-by-side: addition of incomplete line + +expecting success of 9500.58 'side-by-side: incomplete line as context line': + gitweb_run "p=.git;a=commitdiff;h=incomplete_lines_ctx;ds=sidebyside" + +ok 58 - side-by-side: incomplete line as context line + +expecting success of 9500.59 'side-by-side: changed incomplete line': + gitweb_run "p=.git;a=commitdiff;h=incomplete_lines_chg;ds=sidebyside" + +ok 59 - side-by-side: changed incomplete line + +expecting success of 9500.60 'side-by-side: removal of incomplete line': + gitweb_run "p=.git;a=commitdiff;h=incomplete_lines_rem;ds=sidebyside" + +ok 60 - side-by-side: removal of incomplete line + +expecting success of 9500.61 'side-by-side: merge commit': + gitweb_run "p=.git;a=commitdiff;h=merge_commit;ds=sidebyside" + +ok 61 - side-by-side: merge commit + +expecting success of 9500.62 'tags: list of different types of tags': git checkout master && + git tag -a -m "Tag commit object" tag-commit HEAD && + git tag -a -m "" tag-commit-nomessage HEAD && + git tag -a -m "Tag tag object" tag-tag tag-commit && + git tag -a -m "Tag tree object" tag-tree HEAD^{tree} && + git tag -a -m "Tag blob object" tag-blob HEAD:file && + git tag lightweight/tag-commit HEAD && + git tag lightweight/tag-tag tag-commit && + git tag lightweight/tag-tree HEAD^{tree} && + git tag lightweight/tag-blob HEAD:file && + gitweb_run "p=.git;a=tags" +Already on 'master' +hint: You have created a nested tag. The object referred to by your new tag is +hint: already a tag. If you meant to tag the object that it points to, use: +hint: +hint: git tag -f tag-tag tag-commit^{} +hint: Disable this message with "git config advice.nestedTag false" +ok 62 - tags: list of different types of tags + +expecting success of 9500.63 'tag: Tag to commit object': gitweb_run "p=.git;a=tag;h=tag-commit" +ok 63 - tag: Tag to commit object + +expecting success of 9500.64 'tag: on lightweight tag (invalid)': gitweb_run "p=.git;a=tag;h=lightweight/tag-commit" +ok 64 - tag: on lightweight tag (invalid) + +expecting success of 9500.65 'logs: log (implicit HEAD)': gitweb_run "p=.git;a=log" +ok 65 - logs: log (implicit HEAD) + +expecting success of 9500.66 'logs: shortlog (implicit HEAD)': gitweb_run "p=.git;a=shortlog" +ok 66 - logs: shortlog (implicit HEAD) + +expecting success of 9500.67 'logs: history (implicit HEAD, file)': gitweb_run "p=.git;a=history;f=file" +ok 67 - logs: history (implicit HEAD, file) + +expecting success of 9500.68 'logs: history (implicit HEAD, non-existent file)': gitweb_run "p=.git;a=history;f=non-existent" +ok 68 - logs: history (implicit HEAD, non-existent file) + +expecting success of 9500.69 'logs: history (implicit HEAD, deleted file)': git checkout master && + echo "to be deleted" >deleted_file && + git add deleted_file && + git commit -m "Add file to be deleted" && + git rm deleted_file && + git commit -m "Delete file" && + gitweb_run "p=.git;a=history;f=deleted_file" +Already on 'master' +[master 0b30cc4] Add file to be deleted + Author: A U Thor + 1 file changed, 1 insertion(+) + create mode 100644 deleted_file +rm 'deleted_file' +[master 07aeaf6] Delete file + Author: A U Thor + 1 file changed, 1 deletion(-) + delete mode 100644 deleted_file +ok 69 - logs: history (implicit HEAD, deleted file) + +expecting success of 9500.70 'path_info: project': gitweb_run "" "/.git" +ok 70 - path_info: project + +expecting success of 9500.71 'path_info: project/branch': gitweb_run "" "/.git/b" +ok 71 - path_info: project/branch + +expecting success of 9500.72 'path_info: project/branch:file': gitweb_run "" "/.git/master:file" +ok 72 - path_info: project/branch:file + +expecting success of 9500.73 'path_info: project/branch:dir/': gitweb_run "" "/.git/master:foo/" +ok 73 - path_info: project/branch:dir/ + +expecting success of 9500.74 'path_info: project/branch (non-existent)': gitweb_run "" "/.git/non-existent" +ok 74 - path_info: project/branch (non-existent) + +expecting success of 9500.75 'path_info: project/branch:filename (non-existent branch)': gitweb_run "" "/.git/non-existent:non-existent" +ok 75 - path_info: project/branch:filename (non-existent branch) + +expecting success of 9500.76 'path_info: project/branch:file (non-existent)': gitweb_run "" "/.git/master:non-existent" +ok 76 - path_info: project/branch:file (non-existent) + +expecting success of 9500.77 'path_info: project/branch:dir/ (non-existent)': gitweb_run "" "/.git/master:non-existent/" +ok 77 - path_info: project/branch:dir/ (non-existent) + +expecting success of 9500.78 'path_info: project/branch:/file': gitweb_run "" "/.git/master:/file" +ok 78 - path_info: project/branch:/file + +expecting success of 9500.79 'path_info: project/:/file (implicit HEAD)': gitweb_run "" "/.git/:/file" +ok 79 - path_info: project/:/file (implicit HEAD) + +expecting success of 9500.80 'path_info: project/:/ (implicit HEAD, top tree)': gitweb_run "" "/.git/:/" +ok 80 - path_info: project/:/ (implicit HEAD, top tree) + +expecting success of 9500.81 'feeds: OPML': gitweb_run "a=opml" +ok 81 - feeds: OPML + +expecting success of 9500.82 'feed: RSS': gitweb_run "p=.git;a=rss" +ok 82 - feed: RSS + +expecting success of 9500.83 'feed: Atom': gitweb_run "p=.git;a=atom" +ok 83 - feed: Atom + +expecting success of 9500.84 'encode(commit): utf8': . "$TEST_DIRECTORY"/t3901/utf8.txt && + test_when_finished "GIT_AUTHOR_NAME=\"A U Thor\"" && + test_when_finished "GIT_COMMITTER_NAME=\"C O Mitter\"" && + echo "UTF-8" >>file && + git add file && + git commit -F "$TEST_DIRECTORY"/t3900/1-UTF-8.txt && + gitweb_run "p=.git;a=commit" +[master 18589a2] ÄËÑÃÖ + Author: Ãéí óú + 1 file changed, 1 insertion(+) +ok 84 - encode(commit): utf8 + +expecting success of 9500.85 'encode(commit): iso-8859-1': . "$TEST_DIRECTORY"/t3901/8859-1.txt && + test_when_finished "GIT_AUTHOR_NAME=\"A U Thor\"" && + test_when_finished "GIT_COMMITTER_NAME=\"C O Mitter\"" && + echo "ISO-8859-1" >>file && + git add file && + test_config i18n.commitencoding ISO-8859-1 && + git commit -F "$TEST_DIRECTORY"/t3900/ISO8859-1.txt && + gitweb_run "p=.git;a=commit" +[master c6c3c80] ÄËÑÃÖ + Author: Áéí óú + 1 file changed, 1 insertion(+) +ok 85 - encode(commit): iso-8859-1 + +expecting success of 9500.86 'encode(log): utf-8 and iso-8859-1': gitweb_run "p=.git;a=log" +ok 86 - encode(log): utf-8 and iso-8859-1 + +expecting success of 9500.87 'opt: log --no-merges': gitweb_run "p=.git;a=log;opt=--no-merges" +ok 87 - opt: log --no-merges + +expecting success of 9500.88 'opt: atom --no-merges': gitweb_run "p=.git;a=log;opt=--no-merges" +ok 88 - opt: atom --no-merges + +expecting success of 9500.89 'opt: "file" history --no-merges': gitweb_run "p=.git;a=history;f=file;opt=--no-merges" +ok 89 - opt: "file" history --no-merges + +expecting success of 9500.90 'opt: log --no-such-option (invalid option)': gitweb_run "p=.git;a=log;opt=--no-such-option" +ok 90 - opt: log --no-such-option (invalid option) + +expecting success of 9500.91 'opt: tree --no-merges (invalid option for action)': gitweb_run "p=.git;a=tree;opt=--no-merges" +ok 91 - opt: tree --no-merges (invalid option for action) + +expecting success of 9500.92 'URL: no project URLs, no base URL': gitweb_run "p=.git;a=summary" +ok 92 - URL: no project URLs, no base URL + +expecting success of 9500.93 'URL: project URLs via gitweb.url': git config --add gitweb.url git://example.com/git/trash.git && + git config --add gitweb.url http://example.com/git/trash.git && + gitweb_run "p=.git;a=summary" +ok 93 - URL: project URLs via gitweb.url + +expecting success of 9500.94 'URL: project URLs via cloneurl file': gitweb_run "p=.git;a=summary" +ok 94 - URL: project URLs via cloneurl file + +expecting success of 9500.95 'config override: projects list (implicit)': gitweb_run +ok 95 - config override: projects list (implicit) + +expecting success of 9500.96 'config override: tree view, features not overridden in repo config': gitweb_run "p=.git;a=tree" +ok 96 - config override: tree view, features not overridden in repo config + +expecting success of 9500.97 'config override: tree view, features disabled in repo config': git config gitweb.blame no && + git config gitweb.snapshot none && + git config gitweb.avatar gravatar && + gitweb_run "p=.git;a=tree" +ok 97 - config override: tree view, features disabled in repo config + +expecting success of 9500.98 'config override: tree view, features enabled in repo config (1)': git config gitweb.blame yes && + git config gitweb.snapshot "zip,tgz, tbz2" && + gitweb_run "p=.git;a=tree" +ok 98 - config override: tree view, features enabled in repo config (1) + +expecting success of 9500.99 'setup': + version=$(git config core.repositoryformatversion) && + algo=$(test_might_fail git config extensions.objectformat) && + cat >.git/config <<-\EOF && + # testing noval and alternate separator + [gitweb] + blame + snapshot = zip tgz + EOF + git config core.repositoryformatversion "$version" && + if test -n "$algo" + then + git config extensions.objectformat "$algo" + fi + +ok 99 - setup + +expecting success of 9500.100 'config override: tree view, features enabled in repo config (2)': gitweb_run "p=.git;a=tree" +ok 100 - config override: tree view, features enabled in repo config (2) + +expecting success of 9500.101 'search: preparation': echo "1st MATCH" >>file && + echo "2nd MATCH" >>file && + echo "MATCH" >>bar && + git add file bar && + git commit -m "Added MATCH word" +[master 13113e4] Added MATCH word + Author: A U Thor + 2 files changed, 3 insertions(+) +ok 101 - search: preparation + +expecting success of 9500.102 'search: commit author': gitweb_run "p=.git;a=search;h=HEAD;st=author;s=A+U+Thor" +ok 102 - search: commit author + +expecting success of 9500.103 'search: commit message': gitweb_run "p=.git;a=search;h=HEAD;st=commitr;s=MATCH" +ok 103 - search: commit message + +expecting success of 9500.104 'search: grep': gitweb_run "p=.git;a=search;h=HEAD;st=grep;s=MATCH" +ok 104 - search: grep + +expecting success of 9500.105 'search: pickaxe': gitweb_run "p=.git;a=search;h=HEAD;st=pickaxe;s=MATCH" +ok 105 - search: pickaxe + +expecting success of 9500.106 'search: projects': gitweb_run "a=project_list;s=.git" +ok 106 - search: projects + +expecting success of 9500.107 'README.html with non-ASCII characters (utf-8)': echo "UTF-8 example:
" >.git/README.html && + cat "$TEST_DIRECTORY"/t3900/1-UTF-8.txt >>.git/README.html && + gitweb_run "p=.git;a=summary" +ok 107 - README.html with non-ASCII characters (utf-8) + +Skipping syntax highlighting tests: 'highlight' not found +ok 108 # skip syntax highlighting (no highlight, unknown syntax) (missing HIGHLIGHT) + +ok 109 # skip syntax highlighting (highlighted, shell script) (missing HIGHLIGHT) + +ok 110 # skip syntax highlighting (highlighter language autodetection) (missing HIGHLIGHT) + +expecting success of 9500.111 'forks: prepare': git init --bare foo.git && + git --git-dir=foo.git --work-tree=. add file && + git --git-dir=foo.git --work-tree=. commit -m "Initial commit" && + echo "foo" >foo.git/description && + mkdir -p foo && + (cd foo && + git clone --shared --bare ../foo.git foo-forked.git && + echo "fork of foo" >foo-forked.git/description) +hint: Using 'master' as the name for the initial branch. This default branch name +hint: is subject to change. To configure the initial branch name to use in all +hint: of your new repositories, which will suppress this warning, call: +hint: +hint: git config --global init.defaultBranch +hint: +hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +hint: 'development'. The just-created branch can be renamed via this command: +hint: +hint: git branch -m +Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9500-gitweb-standalone-no-errors/foo.git/ +[master (root-commit) cae743e] Initial commit + Author: A U Thor + 1 file changed, 5 insertions(+) + create mode 100644 file +Cloning into bare repository 'foo-forked.git'... +done. +ok 111 - forks: prepare + +expecting success of 9500.112 'forks: projects list': gitweb_run +ok 112 - forks: projects list + +expecting success of 9500.113 'forks: forks action': gitweb_run "p=foo.git;a=forks" +ok 113 - forks: forks action + +expecting success of 9500.114 'ctags: tag cloud in projects list': mkdir .git/ctags && + echo "2" >.git/ctags/foo && + echo "1" >.git/ctags/bar && + gitweb_run +ok 114 - ctags: tag cloud in projects list + +expecting success of 9500.115 'ctags: search projects by existing tag': gitweb_run "by_tag=foo" +ok 115 - ctags: search projects by existing tag + +expecting success of 9500.116 'ctags: search projects by non existent tag': gitweb_run "by_tag=non-existent" +ok 116 - ctags: search projects by non existent tag + +expecting success of 9500.117 'ctags: malformed tag weights': mkdir -p .git/ctags && + echo "not-a-number" >.git/ctags/nan && + echo "not-a-number-2" >.git/ctags/nan2 && + echo "0.1" >.git/ctags/floating-point && + gitweb_run +ok 117 - ctags: malformed tag weights + +expecting success of 9500.118 'categories: projects list, only default category': echo "\$projects_list_group_categories = 1;" >>gitweb_config.perl && + gitweb_run +ok 118 - categories: projects list, only default category + +expecting success of 9500.119 'unborn HEAD: "summary" page (with "heads" subview)': { + git checkout orphan_branch || + git checkout --orphan orphan_branch + } && + test_when_finished "git checkout master" && + gitweb_run "p=.git;a=summary" +error: pathspec 'orphan_branch' did not match any file(s) known to git +Switched to a new branch 'orphan_branch' +Switched to branch 'master' +ok 119 - unborn HEAD: "summary" page (with "heads" subview) + +# passed all 119 test(s) +1..119 +make[4]: Leaving directory '/build/git-2.30.2/t' +make[4]: Entering directory '/build/git-2.30.2/t' *** t9902-completion.sh *** Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9902-completion/.git/ expecting success of 9902.1 'setup for __git_find_repo_path/__gitdir tests': @@ -426223,8 +426806,8 @@ hint: hint: git branch -m Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9902-completion/tmp/.git/ ---- expected 2023-04-29 16:57:46.311237147 +0000 -+++ out_sorted 2023-04-29 16:57:46.323235985 +0000 +--- expected 2023-04-29 18:59:51.028909617 +0000 ++++ out_sorted 2023-04-29 18:59:51.112901685 +0000 @@ -1 +1 @@ -~/tmp/file + @@ -426266,8 +426849,8 @@ ) && test_cmp expected out ---- expected 2023-04-29 16:57:46.467222043 +0000 -+++ out 2023-04-29 16:57:46.479220881 +0000 +--- expected 2023-04-29 18:59:51.740842386 +0000 ++++ out 2023-04-29 18:59:51.812835587 +0000 @@ -1 +1 @@ -main-in-other +main @@ -426299,8 +426882,8 @@ ) && test_cmp expected out ---- expected 2023-04-29 16:57:46.551213910 +0000 -+++ out 2023-04-29 16:57:46.563212748 +0000 +--- expected 2023-04-29 18:59:52.136804993 +0000 ++++ out 2023-04-29 18:59:52.204798572 +0000 @@ -1 +1 @@ -main-in-other +main @@ -426410,765 +426993,13 @@ # passed all remaining 203 test(s) 1..206 make[4]: Leaving directory '/build/git-2.30.2/t' -make[4]: Entering directory '/build/git-2.30.2/t' -*** t9500-gitweb-standalone-no-errors.sh *** -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9500-gitweb-standalone-no-errors/.git/ -expecting success of 9500.1 'no commits: projects_list (implicit)': gitweb_run -ok 1 - no commits: projects_list (implicit) - -expecting success of 9500.2 'no commits: projects_index': gitweb_run "a=project_index" -ok 2 - no commits: projects_index - -expecting success of 9500.3 'no commits: .git summary (implicit)': gitweb_run "p=.git" -ok 3 - no commits: .git summary (implicit) - -expecting success of 9500.4 'no commits: .git commit (implicit HEAD)': gitweb_run "p=.git;a=commit" -ok 4 - no commits: .git commit (implicit HEAD) - -expecting success of 9500.5 'no commits: .git commitdiff (implicit HEAD)': gitweb_run "p=.git;a=commitdiff" -ok 5 - no commits: .git commitdiff (implicit HEAD) - -expecting success of 9500.6 'no commits: .git tree (implicit HEAD)': gitweb_run "p=.git;a=tree" -ok 6 - no commits: .git tree (implicit HEAD) - -expecting success of 9500.7 'no commits: .git heads': gitweb_run "p=.git;a=heads" -ok 7 - no commits: .git heads - -expecting success of 9500.8 'no commits: .git tags': gitweb_run "p=.git;a=tags" -ok 8 - no commits: .git tags - -expecting success of 9500.9 'Make initial commit': echo "Not an empty file." >file && - git add file && - git commit -a -m "Initial commit." && - git branch b -[master (root-commit) f6e1c08] Initial commit. - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file -ok 9 - Make initial commit - -expecting success of 9500.10 'projects_list (implicit)': gitweb_run -ok 10 - projects_list (implicit) - -expecting success of 9500.11 'projects_index': gitweb_run "a=project_index" -ok 11 - projects_index - -expecting success of 9500.12 '.git summary (implicit)': gitweb_run "p=.git" -ok 12 - .git summary (implicit) - -expecting success of 9500.13 '.git commit (implicit HEAD)': gitweb_run "p=.git;a=commit" -ok 13 - .git commit (implicit HEAD) - -expecting success of 9500.14 '.git commitdiff (implicit HEAD, root commit)': gitweb_run "p=.git;a=commitdiff" -ok 14 - .git commitdiff (implicit HEAD, root commit) - -expecting success of 9500.15 '.git commitdiff_plain (implicit HEAD, root commit)': gitweb_run "p=.git;a=commitdiff_plain" -ok 15 - .git commitdiff_plain (implicit HEAD, root commit) - -expecting success of 9500.16 '.git commit (HEAD)': gitweb_run "p=.git;a=commit;h=HEAD" -ok 16 - .git commit (HEAD) - -expecting success of 9500.17 '.git tree (implicit HEAD)': gitweb_run "p=.git;a=tree" -ok 17 - .git tree (implicit HEAD) - -expecting success of 9500.18 '.git blob (file)': gitweb_run "p=.git;a=blob;f=file" -ok 18 - .git blob (file) - -expecting success of 9500.19 '.git blob_plain (file)': gitweb_run "p=.git;a=blob_plain;f=file" -ok 19 - .git blob_plain (file) - -expecting success of 9500.20 '.git commit (non-existent)': gitweb_run "p=.git;a=commit;h=non-existent" -ok 20 - .git commit (non-existent) - -expecting success of 9500.21 '.git commitdiff (non-existent)': gitweb_run "p=.git;a=commitdiff;h=non-existent" -ok 21 - .git commitdiff (non-existent) - -expecting success of 9500.22 '.git commitdiff (non-existent vs HEAD)': gitweb_run "p=.git;a=commitdiff;hp=non-existent;h=HEAD" -ok 22 - .git commitdiff (non-existent vs HEAD) - -expecting success of 9500.23 '.git tree (0000000000000000000000000000000000000000)': gitweb_run "p=.git;a=tree;h=0000000000000000000000000000000000000000" -ok 23 - .git tree (0000000000000000000000000000000000000000) - -expecting success of 9500.24 '.git tag (0000000000000000000000000000000000000000)': gitweb_run "p=.git;a=tag;h=0000000000000000000000000000000000000000" -ok 24 - .git tag (0000000000000000000000000000000000000000) - -expecting success of 9500.25 '.git blob (non-existent)': gitweb_run "p=.git;a=blob;f=non-existent" -ok 25 - .git blob (non-existent) - -expecting success of 9500.26 '.git blob_plain (non-existent)': gitweb_run "p=.git;a=blob_plain;f=non-existent" -ok 26 - .git blob_plain (non-existent) - -expecting success of 9500.27 'commitdiff(0): root': gitweb_run "p=.git;a=commitdiff" -ok 27 - commitdiff(0): root - -expecting success of 9500.28 'commitdiff(0): file added': echo "New file" >new_file && - git add new_file && - git commit -a -m "File added." && - gitweb_run "p=.git;a=commitdiff" -[master aef3daf] File added. - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 new_file -ok 28 - commitdiff(0): file added - -expecting success of 9500.29 'commitdiff(0): mode change': test_chmod +x new_file && - git commit -a -m "Mode changed." && - gitweb_run "p=.git;a=commitdiff" -[master 4d63074] Mode changed. - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - mode change 100644 => 100755 new_file -ok 29 - commitdiff(0): mode change - -expecting success of 9500.30 'commitdiff(0): file renamed': git mv new_file renamed_file && - git commit -a -m "File renamed." && - gitweb_run "p=.git;a=commitdiff" -[master c3af6e3] File renamed. - Author: A U Thor - 1 file changed, 0 insertions(+), 0 deletions(-) - rename new_file => renamed_file (100%) -ok 30 - commitdiff(0): file renamed - -expecting success of 9500.31 'commitdiff(0): file to symlink': rm renamed_file && - test_ln_s_add file renamed_file && - git commit -a -m "File to symlink." && - gitweb_run "p=.git;a=commitdiff" -checking prerequisite: SYMLINKS - -mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && -( - cd "$TRASH_DIRECTORY/prereq-test-dir-SYMLINKS" && - # test whether the filesystem supports symbolic links - ln -s x y && test -h y - -) -prerequisite SYMLINKS ok -[master 9d683f7] File to symlink. - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) - rewrite renamed_file (100%) - mode change 100755 => 120000 -ok 31 - commitdiff(0): file to symlink - -expecting success of 9500.32 'commitdiff(0): file deleted': git rm renamed_file && - rm -f renamed_file && - git commit -a -m "File removed." && - gitweb_run "p=.git;a=commitdiff" -rm 'renamed_file' -[master a32c3dd] File removed. - Author: A U Thor - 1 file changed, 1 deletion(-) - delete mode 120000 renamed_file -ok 32 - commitdiff(0): file deleted - -expecting success of 9500.33 'commitdiff(0): file copied / new file': cp file file2 && - git add file2 && - git commit -a -m "File copied." && - gitweb_run "p=.git;a=commitdiff" -[master 13afdf6] File copied. - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 file2 -ok 33 - commitdiff(0): file copied / new file - -expecting success of 9500.34 'commitdiff(0): mode change and modified': echo "New line" >>file2 && - test_chmod +x file2 && - git commit -a -m "Mode change and modification." && - gitweb_run "p=.git;a=commitdiff" -[master b2fe804] Mode change and modification. - Author: A U Thor - 1 file changed, 1 insertion(+) - mode change 100644 => 100755 file2 -ok 34 - commitdiff(0): mode change and modified - -expecting success of 9500.35 'commitdiff(0): renamed and modified': cat >file2<>file3 && - git commit -a -m "File rename and modification." && - gitweb_run "p=.git;a=commitdiff" -[master ce1348f] File added. - Author: A U Thor - 1 file changed, 7 insertions(+), 2 deletions(-) -[master 763e503] File rename and modification. - Author: A U Thor - 1 file changed, 1 insertion(+) - rename file2 => file3 (90%) -ok 35 - commitdiff(0): renamed and modified - -expecting success of 9500.36 'commitdiff(0): renamed, mode change and modified': git mv file3 file2 && - echo "Propter nomen suum." >>file2 && - test_chmod +x file2 && - git commit -a -m "File rename, mode change and modification." && - gitweb_run "p=.git;a=commitdiff" -[master 54200a9] File rename, mode change and modification. - Author: A U Thor - 1 file changed, 1 insertion(+) - rename file3 => file2 (91%) -ok 36 - commitdiff(0): renamed, mode change and modified - -expecting success of 9500.37 'setup typechange commits': - echo "hello world" >foo && - echo "hi planet" >bar && - git update-index --add foo bar && - git commit -m initial && - git branch initial && - rm -f foo && - test_ln_s_add bar foo && - git commit -m "foo symlinked to bar" && - git branch foo-symlinked-to-bar && - rm -f foo && - echo "how far is the sun?" >foo && - git update-index foo && - git commit -m "foo back to file" && - git branch foo-back-to-file && - rm -f foo && - git update-index --remove foo && - mkdir foo && - echo "if only I knew" >foo/baz && - git update-index --add foo/baz && - git commit -m "foo becomes a directory" && - git branch "foo-becomes-a-directory" && - echo "hello world" >foo/baz && - git update-index foo/baz && - git commit -m "foo/baz is the original foo" && - git branch foo-baz-renamed-from-foo - -[master 1c15952] initial - Author: A U Thor - 2 files changed, 2 insertions(+) - create mode 100644 bar - create mode 100644 foo -[master fc2bb47] foo symlinked to bar - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) - rewrite foo (100%) - mode change 100644 => 120000 -[master 4ac81f8] foo back to file - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) - rewrite foo (100%) - mode change 120000 => 100644 -[master e02950a] foo becomes a directory - Author: A U Thor - 2 files changed, 1 insertion(+), 1 deletion(-) - delete mode 100644 foo - create mode 100644 foo/baz -[master 758ecec] foo/baz is the original foo - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -ok 37 - setup typechange commits - -expecting success of 9500.38 'commitdiff(2): file renamed from foo to foo/baz': gitweb_run "p=.git;a=commitdiff;hp=initial;h=foo-baz-renamed-from-foo" -ok 38 - commitdiff(2): file renamed from foo to foo/baz - -expecting success of 9500.39 'commitdiff(2): file renamed from foo/baz to foo': gitweb_run "p=.git;a=commitdiff;hp=foo-baz-renamed-from-foo;h=initial" -ok 39 - commitdiff(2): file renamed from foo/baz to foo - -expecting success of 9500.40 'commitdiff(2): directory becomes file': gitweb_run "p=.git;a=commitdiff;hp=foo-becomes-a-directory;h=initial" -ok 40 - commitdiff(2): directory becomes file - -expecting success of 9500.41 'commitdiff(2): file becomes directory': gitweb_run "p=.git;a=commitdiff;hp=initial;h=foo-becomes-a-directory" -ok 41 - commitdiff(2): file becomes directory - -expecting success of 9500.42 'commitdiff(2): file becomes symlink': gitweb_run "p=.git;a=commitdiff;hp=initial;h=foo-symlinked-to-bar" -ok 42 - commitdiff(2): file becomes symlink - -expecting success of 9500.43 'commitdiff(2): symlink becomes file': gitweb_run "p=.git;a=commitdiff;hp=foo-symlinked-to-bar;h=foo-back-to-file" -ok 43 - commitdiff(2): symlink becomes file - -expecting success of 9500.44 'commitdiff(2): symlink becomes directory': gitweb_run "p=.git;a=commitdiff;hp=foo-symlinked-to-bar;h=foo-becomes-a-directory" -ok 44 - commitdiff(2): symlink becomes directory - -expecting success of 9500.45 'commitdiff(2): directory becomes symlink': gitweb_run "p=.git;a=commitdiff;hp=foo-becomes-a-directory;h=foo-symlinked-to-bar" -ok 45 - commitdiff(2): directory becomes symlink - -expecting success of 9500.46 'setup incomplete lines': - cat >file<<-\EOF && - Dominus regit me, - et nihil mihi deerit. - In loco pascuae ibi me collocavit, - super aquam refectionis educavit me; - animam meam convertit, - deduxit me super semitas jusitiae, - propter nomen suum. - CHANGE_ME - EOF - git commit -a -m "Preparing for incomplete lines" && - echo "incomplete" | tr -d "\\012" >>file && - git commit -a -m "Add incomplete line" && - git tag incomplete_lines_add && - sed -e s/CHANGE_ME/change_me/ file+ && - mv -f file+ file && - git commit -a -m "Incomplete context line" && - git tag incomplete_lines_ctx && - echo "Dominus regit me," >file && - echo "incomplete line" | tr -d "\\012" >>file && - git commit -a -m "Change incomplete line" && - git tag incomplete_lines_chg && - echo "Dominus regit me," >file && - git commit -a -m "Remove incomplete line" && - git tag incomplete_lines_rem - -[master 726d325] Preparing for incomplete lines - Author: A U Thor - 1 file changed, 8 insertions(+), 1 deletion(-) -[master 5ece9db] Add incomplete line - Author: A U Thor - 1 file changed, 1 insertion(+) -[master 7182367] Incomplete context line - Author: A U Thor - 1 file changed, 1 insertion(+), 1 deletion(-) -[master 19ad71b] Change incomplete line - Author: A U Thor - 1 file changed, 1 insertion(+), 8 deletions(-) -[master 08fef32] Remove incomplete line - Author: A U Thor - 1 file changed, 1 deletion(-) -ok 46 - setup incomplete lines - -expecting success of 9500.47 'commitdiff(1): addition of incomplete line': - gitweb_run "p=.git;a=commitdiff;h=incomplete_lines_add" - -ok 47 - commitdiff(1): addition of incomplete line - -expecting success of 9500.48 'commitdiff(1): incomplete line as context line': - gitweb_run "p=.git;a=commitdiff;h=incomplete_lines_ctx" - -ok 48 - commitdiff(1): incomplete line as context line - -expecting success of 9500.49 'commitdiff(1): change incomplete line': - gitweb_run "p=.git;a=commitdiff;h=incomplete_lines_chg" - -ok 49 - commitdiff(1): change incomplete line - -expecting success of 9500.50 'commitdiff(1): removal of incomplete line': - gitweb_run "p=.git;a=commitdiff;h=incomplete_lines_rem" - -ok 50 - commitdiff(1): removal of incomplete line - -expecting success of 9500.51 'Create a merge': git checkout b && - echo "Branch" >>b && - git add b && - git commit -a -m "On branch" && - git checkout master && - git merge b && - git tag merge_commit -Switched to branch 'b' -[b 3f8100f] On branch - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 b -Switched to branch 'master' -Merging: -08fef32 Remove incomplete line -virtual b -found 1 common ancestor: -f6e1c08 Initial commit. -Merge made by the 'recursive' strategy. - b | 1 + - 1 file changed, 1 insertion(+) - create mode 100644 b -ok 51 - Create a merge - -expecting success of 9500.52 'commit(0): merge commit': gitweb_run "p=.git;a=commit" -ok 52 - commit(0): merge commit - -expecting success of 9500.53 'commitdiff(0): merge commit': gitweb_run "p=.git;a=commitdiff" -ok 53 - commitdiff(0): merge commit - -expecting success of 9500.54 'Prepare large commit': git checkout b && - echo "To be changed" >01-change && - echo "To be renamed" >02-pure-rename-from && - echo "To be deleted" >03-delete && - echo "To be renamed and changed" >04-rename-from && - echo "To have mode changed" >05-mode-change && - echo "File to symlink" >06-file-or-symlink && - echo "To be changed and have mode changed" >07-change-mode-change && - git add 0* && - git commit -a -m "Prepare large commit" && - echo "Changed" >01-change && - git mv 02-pure-rename-from 02-pure-rename-to && - git rm 03-delete && rm -f 03-delete && - echo "A new file" >03-new && - git add 03-new && - git mv 04-rename-from 04-rename-to && - echo "Changed" >>04-rename-to && - test_chmod +x 05-mode-change && - rm -f 06-file-or-symlink && - test_ln_s_add 01-change 06-file-or-symlink && - echo "Changed and have mode changed" >07-change-mode-change && - test_chmod +x 07-change-mode-change && - git commit -a -m "Large commit" && - git checkout master -Switched to branch 'b' -[b 42d1b13] Prepare large commit - Author: A U Thor - 7 files changed, 7 insertions(+) - create mode 100644 01-change - create mode 100644 02-pure-rename-from - create mode 100644 03-delete - create mode 100644 04-rename-from - create mode 100644 05-mode-change - create mode 100644 06-file-or-symlink - create mode 100644 07-change-mode-change -rm '03-delete' -[b a99c658] Large commit - Author: A U Thor - 8 files changed, 5 insertions(+), 4 deletions(-) - rename 02-pure-rename-from => 02-pure-rename-to (100%) - delete mode 100644 03-delete - create mode 100644 03-new - rename 04-rename-from => 04-rename-to (76%) - mode change 100644 => 100755 05-mode-change - rewrite 06-file-or-symlink (100%) - mode change 100644 => 120000 - mode change 100644 => 100755 07-change-mode-change -Switched to branch 'master' -ok 54 - Prepare large commit - -expecting success of 9500.55 'commit(1): large commit': gitweb_run "p=.git;a=commit;h=b" -ok 55 - commit(1): large commit - -expecting success of 9500.56 'commitdiff(1): large commit': gitweb_run "p=.git;a=commitdiff;h=b" -ok 56 - commitdiff(1): large commit - -expecting success of 9500.57 'side-by-side: addition of incomplete line': - gitweb_run "p=.git;a=commitdiff;h=incomplete_lines_add;ds=sidebyside" - -ok 57 - side-by-side: addition of incomplete line - -expecting success of 9500.58 'side-by-side: incomplete line as context line': - gitweb_run "p=.git;a=commitdiff;h=incomplete_lines_ctx;ds=sidebyside" - -ok 58 - side-by-side: incomplete line as context line - -expecting success of 9500.59 'side-by-side: changed incomplete line': - gitweb_run "p=.git;a=commitdiff;h=incomplete_lines_chg;ds=sidebyside" - -ok 59 - side-by-side: changed incomplete line - -expecting success of 9500.60 'side-by-side: removal of incomplete line': - gitweb_run "p=.git;a=commitdiff;h=incomplete_lines_rem;ds=sidebyside" - -ok 60 - side-by-side: removal of incomplete line - -expecting success of 9500.61 'side-by-side: merge commit': - gitweb_run "p=.git;a=commitdiff;h=merge_commit;ds=sidebyside" - -ok 61 - side-by-side: merge commit - -expecting success of 9500.62 'tags: list of different types of tags': git checkout master && - git tag -a -m "Tag commit object" tag-commit HEAD && - git tag -a -m "" tag-commit-nomessage HEAD && - git tag -a -m "Tag tag object" tag-tag tag-commit && - git tag -a -m "Tag tree object" tag-tree HEAD^{tree} && - git tag -a -m "Tag blob object" tag-blob HEAD:file && - git tag lightweight/tag-commit HEAD && - git tag lightweight/tag-tag tag-commit && - git tag lightweight/tag-tree HEAD^{tree} && - git tag lightweight/tag-blob HEAD:file && - gitweb_run "p=.git;a=tags" -Already on 'master' -hint: You have created a nested tag. The object referred to by your new tag is -hint: already a tag. If you meant to tag the object that it points to, use: -hint: -hint: git tag -f tag-tag tag-commit^{} -hint: Disable this message with "git config advice.nestedTag false" -ok 62 - tags: list of different types of tags - -expecting success of 9500.63 'tag: Tag to commit object': gitweb_run "p=.git;a=tag;h=tag-commit" -ok 63 - tag: Tag to commit object - -expecting success of 9500.64 'tag: on lightweight tag (invalid)': gitweb_run "p=.git;a=tag;h=lightweight/tag-commit" -ok 64 - tag: on lightweight tag (invalid) - -expecting success of 9500.65 'logs: log (implicit HEAD)': gitweb_run "p=.git;a=log" -ok 65 - logs: log (implicit HEAD) - -expecting success of 9500.66 'logs: shortlog (implicit HEAD)': gitweb_run "p=.git;a=shortlog" -ok 66 - logs: shortlog (implicit HEAD) - -expecting success of 9500.67 'logs: history (implicit HEAD, file)': gitweb_run "p=.git;a=history;f=file" -ok 67 - logs: history (implicit HEAD, file) - -expecting success of 9500.68 'logs: history (implicit HEAD, non-existent file)': gitweb_run "p=.git;a=history;f=non-existent" -ok 68 - logs: history (implicit HEAD, non-existent file) - -expecting success of 9500.69 'logs: history (implicit HEAD, deleted file)': git checkout master && - echo "to be deleted" >deleted_file && - git add deleted_file && - git commit -m "Add file to be deleted" && - git rm deleted_file && - git commit -m "Delete file" && - gitweb_run "p=.git;a=history;f=deleted_file" -Already on 'master' -[master 0b30cc4] Add file to be deleted - Author: A U Thor - 1 file changed, 1 insertion(+) - create mode 100644 deleted_file -rm 'deleted_file' -[master 07aeaf6] Delete file - Author: A U Thor - 1 file changed, 1 deletion(-) - delete mode 100644 deleted_file -ok 69 - logs: history (implicit HEAD, deleted file) - -expecting success of 9500.70 'path_info: project': gitweb_run "" "/.git" -ok 70 - path_info: project - -expecting success of 9500.71 'path_info: project/branch': gitweb_run "" "/.git/b" -ok 71 - path_info: project/branch - -expecting success of 9500.72 'path_info: project/branch:file': gitweb_run "" "/.git/master:file" -ok 72 - path_info: project/branch:file - -expecting success of 9500.73 'path_info: project/branch:dir/': gitweb_run "" "/.git/master:foo/" -ok 73 - path_info: project/branch:dir/ - -expecting success of 9500.74 'path_info: project/branch (non-existent)': gitweb_run "" "/.git/non-existent" -ok 74 - path_info: project/branch (non-existent) - -expecting success of 9500.75 'path_info: project/branch:filename (non-existent branch)': gitweb_run "" "/.git/non-existent:non-existent" -ok 75 - path_info: project/branch:filename (non-existent branch) - -expecting success of 9500.76 'path_info: project/branch:file (non-existent)': gitweb_run "" "/.git/master:non-existent" -ok 76 - path_info: project/branch:file (non-existent) - -expecting success of 9500.77 'path_info: project/branch:dir/ (non-existent)': gitweb_run "" "/.git/master:non-existent/" -ok 77 - path_info: project/branch:dir/ (non-existent) - -expecting success of 9500.78 'path_info: project/branch:/file': gitweb_run "" "/.git/master:/file" -ok 78 - path_info: project/branch:/file - -expecting success of 9500.79 'path_info: project/:/file (implicit HEAD)': gitweb_run "" "/.git/:/file" -ok 79 - path_info: project/:/file (implicit HEAD) - -expecting success of 9500.80 'path_info: project/:/ (implicit HEAD, top tree)': gitweb_run "" "/.git/:/" -ok 80 - path_info: project/:/ (implicit HEAD, top tree) - -expecting success of 9500.81 'feeds: OPML': gitweb_run "a=opml" -ok 81 - feeds: OPML - -expecting success of 9500.82 'feed: RSS': gitweb_run "p=.git;a=rss" -ok 82 - feed: RSS - -expecting success of 9500.83 'feed: Atom': gitweb_run "p=.git;a=atom" -ok 83 - feed: Atom - -expecting success of 9500.84 'encode(commit): utf8': . "$TEST_DIRECTORY"/t3901/utf8.txt && - test_when_finished "GIT_AUTHOR_NAME=\"A U Thor\"" && - test_when_finished "GIT_COMMITTER_NAME=\"C O Mitter\"" && - echo "UTF-8" >>file && - git add file && - git commit -F "$TEST_DIRECTORY"/t3900/1-UTF-8.txt && - gitweb_run "p=.git;a=commit" -[master 18589a2] ÄËÑÃÖ - Author: Ãéí óú - 1 file changed, 1 insertion(+) -ok 84 - encode(commit): utf8 - -expecting success of 9500.85 'encode(commit): iso-8859-1': . "$TEST_DIRECTORY"/t3901/8859-1.txt && - test_when_finished "GIT_AUTHOR_NAME=\"A U Thor\"" && - test_when_finished "GIT_COMMITTER_NAME=\"C O Mitter\"" && - echo "ISO-8859-1" >>file && - git add file && - test_config i18n.commitencoding ISO-8859-1 && - git commit -F "$TEST_DIRECTORY"/t3900/ISO8859-1.txt && - gitweb_run "p=.git;a=commit" -[master c6c3c80] ÄËÑÃÖ - Author: Áéí óú - 1 file changed, 1 insertion(+) -ok 85 - encode(commit): iso-8859-1 - -expecting success of 9500.86 'encode(log): utf-8 and iso-8859-1': gitweb_run "p=.git;a=log" -ok 86 - encode(log): utf-8 and iso-8859-1 - -expecting success of 9500.87 'opt: log --no-merges': gitweb_run "p=.git;a=log;opt=--no-merges" -ok 87 - opt: log --no-merges - -expecting success of 9500.88 'opt: atom --no-merges': gitweb_run "p=.git;a=log;opt=--no-merges" -ok 88 - opt: atom --no-merges - -expecting success of 9500.89 'opt: "file" history --no-merges': gitweb_run "p=.git;a=history;f=file;opt=--no-merges" -ok 89 - opt: "file" history --no-merges - -expecting success of 9500.90 'opt: log --no-such-option (invalid option)': gitweb_run "p=.git;a=log;opt=--no-such-option" -ok 90 - opt: log --no-such-option (invalid option) - -expecting success of 9500.91 'opt: tree --no-merges (invalid option for action)': gitweb_run "p=.git;a=tree;opt=--no-merges" -ok 91 - opt: tree --no-merges (invalid option for action) - -expecting success of 9500.92 'URL: no project URLs, no base URL': gitweb_run "p=.git;a=summary" -ok 92 - URL: no project URLs, no base URL - -expecting success of 9500.93 'URL: project URLs via gitweb.url': git config --add gitweb.url git://example.com/git/trash.git && - git config --add gitweb.url http://example.com/git/trash.git && - gitweb_run "p=.git;a=summary" -ok 93 - URL: project URLs via gitweb.url - -expecting success of 9500.94 'URL: project URLs via cloneurl file': gitweb_run "p=.git;a=summary" -ok 94 - URL: project URLs via cloneurl file - -expecting success of 9500.95 'config override: projects list (implicit)': gitweb_run -ok 95 - config override: projects list (implicit) - -expecting success of 9500.96 'config override: tree view, features not overridden in repo config': gitweb_run "p=.git;a=tree" -ok 96 - config override: tree view, features not overridden in repo config - -expecting success of 9500.97 'config override: tree view, features disabled in repo config': git config gitweb.blame no && - git config gitweb.snapshot none && - git config gitweb.avatar gravatar && - gitweb_run "p=.git;a=tree" -ok 97 - config override: tree view, features disabled in repo config - -expecting success of 9500.98 'config override: tree view, features enabled in repo config (1)': git config gitweb.blame yes && - git config gitweb.snapshot "zip,tgz, tbz2" && - gitweb_run "p=.git;a=tree" -ok 98 - config override: tree view, features enabled in repo config (1) - -expecting success of 9500.99 'setup': - version=$(git config core.repositoryformatversion) && - algo=$(test_might_fail git config extensions.objectformat) && - cat >.git/config <<-\EOF && - # testing noval and alternate separator - [gitweb] - blame - snapshot = zip tgz - EOF - git config core.repositoryformatversion "$version" && - if test -n "$algo" - then - git config extensions.objectformat "$algo" - fi - -ok 99 - setup - -expecting success of 9500.100 'config override: tree view, features enabled in repo config (2)': gitweb_run "p=.git;a=tree" -ok 100 - config override: tree view, features enabled in repo config (2) - -expecting success of 9500.101 'search: preparation': echo "1st MATCH" >>file && - echo "2nd MATCH" >>file && - echo "MATCH" >>bar && - git add file bar && - git commit -m "Added MATCH word" -[master 13113e4] Added MATCH word - Author: A U Thor - 2 files changed, 3 insertions(+) -ok 101 - search: preparation - -expecting success of 9500.102 'search: commit author': gitweb_run "p=.git;a=search;h=HEAD;st=author;s=A+U+Thor" -ok 102 - search: commit author - -expecting success of 9500.103 'search: commit message': gitweb_run "p=.git;a=search;h=HEAD;st=commitr;s=MATCH" -ok 103 - search: commit message - -expecting success of 9500.104 'search: grep': gitweb_run "p=.git;a=search;h=HEAD;st=grep;s=MATCH" -ok 104 - search: grep - -expecting success of 9500.105 'search: pickaxe': gitweb_run "p=.git;a=search;h=HEAD;st=pickaxe;s=MATCH" -ok 105 - search: pickaxe - -expecting success of 9500.106 'search: projects': gitweb_run "a=project_list;s=.git" -ok 106 - search: projects - -expecting success of 9500.107 'README.html with non-ASCII characters (utf-8)': echo "UTF-8 example:
" >.git/README.html && - cat "$TEST_DIRECTORY"/t3900/1-UTF-8.txt >>.git/README.html && - gitweb_run "p=.git;a=summary" -ok 107 - README.html with non-ASCII characters (utf-8) - -Skipping syntax highlighting tests: 'highlight' not found -ok 108 # skip syntax highlighting (no highlight, unknown syntax) (missing HIGHLIGHT) - -ok 109 # skip syntax highlighting (highlighted, shell script) (missing HIGHLIGHT) - -ok 110 # skip syntax highlighting (highlighter language autodetection) (missing HIGHLIGHT) - -expecting success of 9500.111 'forks: prepare': git init --bare foo.git && - git --git-dir=foo.git --work-tree=. add file && - git --git-dir=foo.git --work-tree=. commit -m "Initial commit" && - echo "foo" >foo.git/description && - mkdir -p foo && - (cd foo && - git clone --shared --bare ../foo.git foo-forked.git && - echo "fork of foo" >foo-forked.git/description) -hint: Using 'master' as the name for the initial branch. This default branch name -hint: is subject to change. To configure the initial branch name to use in all -hint: of your new repositories, which will suppress this warning, call: -hint: -hint: git config --global init.defaultBranch -hint: -hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and -hint: 'development'. The just-created branch can be renamed via this command: -hint: -hint: git branch -m -Initialized empty Git repository in /build/git-2.30.2/t/trash directory.t9500-gitweb-standalone-no-errors/foo.git/ -[master (root-commit) cae743e] Initial commit - Author: A U Thor - 1 file changed, 5 insertions(+) - create mode 100644 file -Cloning into bare repository 'foo-forked.git'... -done. -ok 111 - forks: prepare - -expecting success of 9500.112 'forks: projects list': gitweb_run -ok 112 - forks: projects list - -expecting success of 9500.113 'forks: forks action': gitweb_run "p=foo.git;a=forks" -ok 113 - forks: forks action - -expecting success of 9500.114 'ctags: tag cloud in projects list': mkdir .git/ctags && - echo "2" >.git/ctags/foo && - echo "1" >.git/ctags/bar && - gitweb_run -ok 114 - ctags: tag cloud in projects list - -expecting success of 9500.115 'ctags: search projects by existing tag': gitweb_run "by_tag=foo" -ok 115 - ctags: search projects by existing tag - -expecting success of 9500.116 'ctags: search projects by non existent tag': gitweb_run "by_tag=non-existent" -ok 116 - ctags: search projects by non existent tag - -expecting success of 9500.117 'ctags: malformed tag weights': mkdir -p .git/ctags && - echo "not-a-number" >.git/ctags/nan && - echo "not-a-number-2" >.git/ctags/nan2 && - echo "0.1" >.git/ctags/floating-point && - gitweb_run -ok 117 - ctags: malformed tag weights - -expecting success of 9500.118 'categories: projects list, only default category': echo "\$projects_list_group_categories = 1;" >>gitweb_config.perl && - gitweb_run -ok 118 - categories: projects list, only default category - -expecting success of 9500.119 'unborn HEAD: "summary" page (with "heads" subview)': { - git checkout orphan_branch || - git checkout --orphan orphan_branch - } && - test_when_finished "git checkout master" && - gitweb_run "p=.git;a=summary" -error: pathspec 'orphan_branch' did not match any file(s) known to git -Switched to a new branch 'orphan_branch' -Switched to branch 'master' -ok 119 - unborn HEAD: "summary" page (with "heads" subview) - -# passed all 119 test(s) -1..119 -make[4]: Leaving directory '/build/git-2.30.2/t' /usr/bin/make aggregate-results make[5]: Entering directory '/build/git-2.30.2/t' for f in 'test-results'/t*-*.counts; do \ echo "$f"; \ done | '/bin/sh' ./aggregate-results.sh fixed 0 -success 22679 +success 22678 failed 0 broken 249 total 23230 @@ -427228,9 +427059,9 @@ git checkout remotes/origin/trunk A foo -r1 = f68e11e1f4d8a985351e6c7a71133e174c877e13 (refs/remotes/origin/trunk) +r1 = 384fe92ef8022747e001fa58b844e00f30ad3166 (refs/remotes/origin/trunk) M foo -r2 = b9dab82f94090d71e80eeb31a5f9a559bbc8e1d7 (refs/remotes/origin/trunk) +r2 = 75324f4d48f5933fd5a39b7e0f4a13a8df01b503 (refs/remotes/origin/trunk) Checked out HEAD: file:///build/git-2.30.2/t/trash%20directory.t9167-git-svn-cmd-branch-subproject/svnrepo/trunk/project r2 Note: switching to 'remotes/origin/trunk'. @@ -427250,7 +427081,7 @@ Turn off this advice by setting config variable advice.detachedHead to false -HEAD is now at b9dab82 updated trunk +HEAD is now at 75324f4 updated trunk ok 2 - import into git expecting success of 9167.3 'git svn branch tests': @@ -427269,40 +427100,40 @@ Creating parent folder file:///build/git-2.30.2/t/trash%20directory.t9167-git-svn-cmd-branch-subproject/svnrepo/branches/a ... Copying file:///build/git-2.30.2/t/trash%20directory.t9167-git-svn-cmd-branch-subproject/svnrepo/trunk/project at r2 to file:///build/git-2.30.2/t/trash%20directory.t9167-git-svn-cmd-branch-subproject/svnrepo/branches/a/project... Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9167-git-svn-cmd-branch-subproject/svnrepo/trunk/project => file:///build/git-2.30.2/t/trash%20directory.t9167-git-svn-cmd-branch-subproject/svnrepo/branches/a/project, 2 -Found branch parent: (refs/remotes/origin/a) b9dab82f94090d71e80eeb31a5f9a559bbc8e1d7 +Found branch parent: (refs/remotes/origin/a) 75324f4d48f5933fd5a39b7e0f4a13a8df01b503 Following parent with do_switch Successfully followed parent -r4 = 58e090247fa9e7ffebb6e901ca4b42bc381476f2 (refs/remotes/origin/a) +r4 = e8e032f1d8be66ebcedc4fd798a96da27c707acf (refs/remotes/origin/a) Copying file:///build/git-2.30.2/t/trash%20directory.t9167-git-svn-cmd-branch-subproject/svnrepo/trunk/project at r2 to file:///build/git-2.30.2/t/trash%20directory.t9167-git-svn-cmd-branch-subproject/svnrepo/tags/tag1/project... Filesystem has no item: File not found: transaction '4-5', path '/tags/tag1/project' at /build/git-2.30.2/git-svn line 1207. Creating parent folder file:///build/git-2.30.2/t/trash%20directory.t9167-git-svn-cmd-branch-subproject/svnrepo/tags/tag1 ... Copying file:///build/git-2.30.2/t/trash%20directory.t9167-git-svn-cmd-branch-subproject/svnrepo/trunk/project at r2 to file:///build/git-2.30.2/t/trash%20directory.t9167-git-svn-cmd-branch-subproject/svnrepo/tags/tag1/project... Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9167-git-svn-cmd-branch-subproject/svnrepo/trunk/project => file:///build/git-2.30.2/t/trash%20directory.t9167-git-svn-cmd-branch-subproject/svnrepo/tags/tag1/project, 2 -Found branch parent: (refs/remotes/origin/tags/tag1) b9dab82f94090d71e80eeb31a5f9a559bbc8e1d7 +Found branch parent: (refs/remotes/origin/tags/tag1) 75324f4d48f5933fd5a39b7e0f4a13a8df01b503 Following parent with do_switch Successfully followed parent -r6 = 9fd0665a11420da7b9d5ccdd14b7b4e437a9fc0f (refs/remotes/origin/tags/tag1) +r6 = 008243dcfe20d462c8124536be2b32ae3a293b83 (refs/remotes/origin/tags/tag1) Copying file:///build/git-2.30.2/t/trash%20directory.t9167-git-svn-cmd-branch-subproject/svnrepo/trunk/project at r2 to file:///build/git-2.30.2/t/trash%20directory.t9167-git-svn-cmd-branch-subproject/svnrepo/tags/tag2/project... Filesystem has no item: File not found: transaction '6-8', path '/tags/tag2/project' at /build/git-2.30.2/git-svn line 1207. Creating parent folder file:///build/git-2.30.2/t/trash%20directory.t9167-git-svn-cmd-branch-subproject/svnrepo/tags/tag2 ... Copying file:///build/git-2.30.2/t/trash%20directory.t9167-git-svn-cmd-branch-subproject/svnrepo/trunk/project at r2 to file:///build/git-2.30.2/t/trash%20directory.t9167-git-svn-cmd-branch-subproject/svnrepo/tags/tag2/project... Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9167-git-svn-cmd-branch-subproject/svnrepo/trunk/project => file:///build/git-2.30.2/t/trash%20directory.t9167-git-svn-cmd-branch-subproject/svnrepo/tags/tag2/project, 2 -Found branch parent: (refs/remotes/origin/tags/tag2) b9dab82f94090d71e80eeb31a5f9a559bbc8e1d7 +Found branch parent: (refs/remotes/origin/tags/tag2) 75324f4d48f5933fd5a39b7e0f4a13a8df01b503 Following parent with do_switch Successfully followed parent -r8 = 8eaf4d2f36a9935c2eef16c3a97f60cf905f5844 (refs/remotes/origin/tags/tag2) +r8 = c623f2c04391428165b08627779f6e00d715fa5b (refs/remotes/origin/tags/tag2) Copying file:///build/git-2.30.2/t/trash%20directory.t9167-git-svn-cmd-branch-subproject/svnrepo/trunk/project at r2 to file:///build/git-2.30.2/t/trash%20directory.t9167-git-svn-cmd-branch-subproject/svnrepo/tags/tag3/project... Filesystem has no item: File not found: transaction '8-b', path '/tags/tag3/project' at /build/git-2.30.2/git-svn line 1207. Creating parent folder file:///build/git-2.30.2/t/trash%20directory.t9167-git-svn-cmd-branch-subproject/svnrepo/tags/tag3 ... Copying file:///build/git-2.30.2/t/trash%20directory.t9167-git-svn-cmd-branch-subproject/svnrepo/trunk/project at r2 to file:///build/git-2.30.2/t/trash%20directory.t9167-git-svn-cmd-branch-subproject/svnrepo/tags/tag3/project... Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9167-git-svn-cmd-branch-subproject/svnrepo/trunk/project => file:///build/git-2.30.2/t/trash%20directory.t9167-git-svn-cmd-branch-subproject/svnrepo/tags/tag3/project, 2 -Found branch parent: (refs/remotes/origin/tags/tag3) b9dab82f94090d71e80eeb31a5f9a559bbc8e1d7 +Found branch parent: (refs/remotes/origin/tags/tag3) 75324f4d48f5933fd5a39b7e0f4a13a8df01b503 Following parent with do_switch Successfully followed parent -r10 = c4d23980a12b0de2c0630332fedf82ccfebdcc45 (refs/remotes/origin/tags/tag3) +r10 = e79b6c52cdc1db0701436836d11f06d7edae470f (refs/remotes/origin/tags/tag3) ok 3 - git svn branch tests # passed all 3 test(s) @@ -427344,9 +427175,9 @@ git checkout remotes/origin/trunk A foo -r1 = 95097bdb5f7508768076a4b0e03fbed36b220648 (refs/remotes/origin/trunk) +r1 = 71873075fbe611fd6b35d09bb279bde68659ca56 (refs/remotes/origin/trunk) M foo -r2 = b301f1dd13e99ffbcc32e96e5307584ec0ef9368 (refs/remotes/origin/trunk) +r2 = 443b3e02d319248ef3aa95ac1f805301bc971e16 (refs/remotes/origin/trunk) Checked out HEAD: file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/trunk r2 Note: switching to 'remotes/origin/trunk'. @@ -427366,7 +427197,7 @@ Turn off this advice by setting config variable advice.detachedHead to false -HEAD is now at b301f1d updated trunk +HEAD is now at 443b3e0 updated trunk ok 2 - import into git expecting success of 9128.3 'git svn branch tests': @@ -427394,16 +427225,16 @@ Copying file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/trunk at r2 to file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/branches/a... Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/trunk => file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/branches/a, 2 -Found branch parent: (refs/remotes/origin/a) b301f1dd13e99ffbcc32e96e5307584ec0ef9368 +Found branch parent: (refs/remotes/origin/a) 443b3e02d319248ef3aa95ac1f805301bc971e16 Following parent with do_switch Successfully followed parent -r3 = 7e24ac3999d0c34c75f6c2303c4f9173638f958b (refs/remotes/origin/a) +r3 = a44d43086781d532f78a452795081841c575e8d9 (refs/remotes/origin/a) Copying file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/trunk at r2 to file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/branches/b... Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/trunk => file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/branches/b, 2 -Found branch parent: (refs/remotes/origin/b) b301f1dd13e99ffbcc32e96e5307584ec0ef9368 +Found branch parent: (refs/remotes/origin/b) 443b3e02d319248ef3aa95ac1f805301bc971e16 Following parent with do_switch Successfully followed parent -r4 = 231f18bca3568ad697e788e9b3ffe36d94f71bca (refs/remotes/origin/b) +r4 = dbfa6335cdc75614d4939f851c979c09ac887981 (refs/remotes/origin/b) fatal: Invalid branch name: 'HEAD' Copying file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/trunk at r2 to file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/branches/c... fatal: ambiguous argument 'remotes/origin/c': unknown revision or path not in the working tree. @@ -427414,28 +427245,28 @@ Copying file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/trunk at r2 to file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/tags/tag1... Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/trunk => file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/tags/tag1, 2 -Found branch parent: (refs/remotes/origin/tags/tag1) b301f1dd13e99ffbcc32e96e5307584ec0ef9368 +Found branch parent: (refs/remotes/origin/tags/tag1) 443b3e02d319248ef3aa95ac1f805301bc971e16 Following parent with do_switch Successfully followed parent -r5 = 8756e761b549450b26c18481d04bfdcc1a6f8d63 (refs/remotes/origin/tags/tag1) +r5 = df304bcc0bff96f2af4c073cb367ebaa580ca0fa (refs/remotes/origin/tags/tag1) Copying file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/trunk at r2 to file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/tags/tag2... Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/trunk => file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/tags/tag2, 2 -Found branch parent: (refs/remotes/origin/tags/tag2) b301f1dd13e99ffbcc32e96e5307584ec0ef9368 +Found branch parent: (refs/remotes/origin/tags/tag2) 443b3e02d319248ef3aa95ac1f805301bc971e16 Following parent with do_switch Successfully followed parent -r6 = 79bbb1c43e73efd6528291fe670835edfc3ff75f (refs/remotes/origin/tags/tag2) +r6 = d1fca720c1d5eb58122acfd8ffd746f8883a772f (refs/remotes/origin/tags/tag2) Copying file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/trunk at r2 to file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/tags/tag3... Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/trunk => file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/tags/tag3, 2 -Found branch parent: (refs/remotes/origin/tags/tag3) b301f1dd13e99ffbcc32e96e5307584ec0ef9368 +Found branch parent: (refs/remotes/origin/tags/tag3) 443b3e02d319248ef3aa95ac1f805301bc971e16 Following parent with do_switch Successfully followed parent -r7 = 0c7eefee851054f3b057acac1bc7e48780ccece3 (refs/remotes/origin/tags/tag3) +r7 = 853c51c9068fb09e2828ffc5a37d2468905ec85d (refs/remotes/origin/tags/tag3) Copying file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/trunk at r2 to file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/tags/tag4... Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/trunk => file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/tags/tag4, 2 -Found branch parent: (refs/remotes/origin/tags/tag4) b301f1dd13e99ffbcc32e96e5307584ec0ef9368 +Found branch parent: (refs/remotes/origin/tags/tag4) 443b3e02d319248ef3aa95ac1f805301bc971e16 Following parent with do_switch Successfully followed parent -r8 = eb93f8ea3f2f131629f17e192f18317d50d1efab (refs/remotes/origin/tags/tag4) +r8 = 0bf4dc10057c40309948231a0f0052e26d9707e8 (refs/remotes/origin/tags/tag4) tag name required Copying file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/trunk at r2 to file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/tags/tag5... @@ -427493,55 +427324,55 @@ Committing transaction... Committed revision 9. Using higher level of URL: file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/mirror => file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo -branch_from: /tags => /tags/tag3 -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/tags/tag3 => file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/mirror/tags/tag3, 8 -Found branch parent: (refs/remotes/mirror/tags/tag3) 0c7eefee851054f3b057acac1bc7e48780ccece3 +branch_from: /branches => /branches/a +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/branches/a => file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/mirror/branches/a, 8 +Found branch parent: (refs/remotes/mirror/a) a44d43086781d532f78a452795081841c575e8d9 Following parent with do_switch Successfully followed parent -r9 = 13d73852a66a5eefa0d07c4bfbd392898ef96779 (refs/remotes/mirror/tags/tag3) -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/trunk => file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/mirror/trunk, 8 -Found branch parent: (refs/remotes/mirror/trunk) b301f1dd13e99ffbcc32e96e5307584ec0ef9368 +r9 = 4bb69da3349ea1607e3890d20fce73d80e3a39d6 (refs/remotes/mirror/a) +branch_from: /tags => /tags/tag1 +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/tags/tag1 => file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/mirror/tags/tag1, 8 +Found branch parent: (refs/remotes/mirror/tags/tag1) df304bcc0bff96f2af4c073cb367ebaa580ca0fa Following parent with do_switch Successfully followed parent -r9 = 1f097b5a00896ccd34e404465c58eeae6bb916b6 (refs/remotes/mirror/trunk) +r9 = 01fb78c48ea23e9274fd5d00307f3a9ecffbcfa0 (refs/remotes/mirror/tags/tag1) branch_from: /tags => /tags/tag4 Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/tags/tag4 => file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/mirror/tags/tag4, 8 -Found branch parent: (refs/remotes/mirror/tags/tag4) eb93f8ea3f2f131629f17e192f18317d50d1efab +Found branch parent: (refs/remotes/mirror/tags/tag4) 0bf4dc10057c40309948231a0f0052e26d9707e8 Following parent with do_switch Successfully followed parent -r9 = ecefe10ad4129919bf25d5990ea2d0e33d9223ce (refs/remotes/mirror/tags/tag4) -branch_from: /tags => /tags/tag1 -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/tags/tag1 => file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/mirror/tags/tag1, 8 -Found branch parent: (refs/remotes/mirror/tags/tag1) 8756e761b549450b26c18481d04bfdcc1a6f8d63 +r9 = 5cb16c361cc0a20bcc0279c99b554d69d4d83976 (refs/remotes/mirror/tags/tag4) +branch_from: /branches => /branches/b +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/branches/b => file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/mirror/branches/b, 8 +Found branch parent: (refs/remotes/mirror/b) dbfa6335cdc75614d4939f851c979c09ac887981 Following parent with do_switch Successfully followed parent -r9 = 9c3192c0d6949d6d3acd7ff58a73a5e335e198cd (refs/remotes/mirror/tags/tag1) -branch_from: /tags => /tags/tag2 -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/tags/tag2 => file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/mirror/tags/tag2, 8 -Found branch parent: (refs/remotes/mirror/tags/tag2) 79bbb1c43e73efd6528291fe670835edfc3ff75f +r9 = f1d47b0dd8bd811fac497916241140472ed10c15 (refs/remotes/mirror/b) +branch_from: /tags => /tags/tag3 +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/tags/tag3 => file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/mirror/tags/tag3, 8 +Found branch parent: (refs/remotes/mirror/tags/tag3) 853c51c9068fb09e2828ffc5a37d2468905ec85d Following parent with do_switch Successfully followed parent -r9 = 44ce9bfcb477cdc243fcb3069ae9ae703f6897ae (refs/remotes/mirror/tags/tag2) -branch_from: /branches => /branches/a -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/branches/a => file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/mirror/branches/a, 8 -Found branch parent: (refs/remotes/mirror/a) 7e24ac3999d0c34c75f6c2303c4f9173638f958b +r9 = 9e4d3ca9b9eafb1afe2a3de609b649d596f24fb7 (refs/remotes/mirror/tags/tag3) +branch_from: /tags => /tags/tag2 +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/tags/tag2 => file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/mirror/tags/tag2, 8 +Found branch parent: (refs/remotes/mirror/tags/tag2) d1fca720c1d5eb58122acfd8ffd746f8883a772f Following parent with do_switch Successfully followed parent -r9 = 20204a473e209cdd5d467ebb9d8207dfed3cb220 (refs/remotes/mirror/a) -branch_from: /branches => /branches/b -Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/branches/b => file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/mirror/branches/b, 8 -Found branch parent: (refs/remotes/mirror/b) 231f18bca3568ad697e788e9b3ffe36d94f71bca +r9 = ca88abb39914cbe5d2d313f55e8fed1cf9ec2250 (refs/remotes/mirror/tags/tag2) +Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/trunk => file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/mirror/trunk, 8 +Found branch parent: (refs/remotes/mirror/trunk) 443b3e02d319248ef3aa95ac1f805301bc971e16 Following parent with do_switch Successfully followed parent -r9 = b063c254d1e883dfa3b3996c04add9186c1bceed (refs/remotes/mirror/b) -Previous HEAD position was b301f1d updated trunk -HEAD is now at 1f097b5 made mirror +r9 = 6a49adf3cb4063c93061823504319722c07b9c0b (refs/remotes/mirror/trunk) +Previous HEAD position was 443b3e0 updated trunk +HEAD is now at 6a49adf made mirror Copying file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/mirror/trunk at r9 to file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/mirror/branches/d... Found possible branch point: file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/mirror/trunk => file:///build/git-2.30.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/mirror/branches/d, 9 -Found branch parent: (refs/remotes/mirror/d) 1f097b5a00896ccd34e404465c58eeae6bb916b6 +Found branch parent: (refs/remotes/mirror/d) 6a49adf3cb4063c93061823504319722c07b9c0b Following parent with do_switch Successfully followed parent -r10 = a1ff7052e3a084141edf4665e52cc76e28f85f9c (refs/remotes/mirror/d) +r10 = 02f0b927f302262ce91fe708f6330af8c4aa288e (refs/remotes/mirror/d) fatal: ambiguous argument 'remotes/d': unknown revision or path not in the working tree. Use '--' to separate paths from revisions, like this: 'git [...] -- [...]' @@ -429805,16 +429636,16 @@ make[1]: Leaving directory '/build/git-2.30.2' DESTDIR='/build/git-2.30.2/debian/git' /usr/bin/make install NO_OPENSSL=1 prefix=/usr gitexecdir=/usr/lib/git-core libexecdir=/usr/lib/git-core mandir=/usr/share/man htmldir=/usr/share/doc/git/html INSTALLDIRS=vendor SANE_TOOL_PATH= INSTALL=install TAR=tar NO_CROSS_DIRECTORY_HARDLINKS=1 NO_INSTALL_HARDLINKS=1 NO_PERL_CPAN_FALLBACKS=1 PYTHON_PATH=/usr/bin/python3 DEFAULT_PAGER=pager DEFAULT_EDITOR=editor CC='gcc' CFLAGS='-Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2' LDFLAGS='-Wl,-z,relro' HOST_CPU='arm' V=1 USE_LIBPCRE2=1 make[2]: Entering directory '/build/git-2.30.2' -rm -f git-archimport git-archimport+ && \ +rm -f git-add--interactive git-add--interactive+ && \ sed -e '1{' \ -e ' s|#!.*perl|#!/usr/bin/perl|' \ -e ' r GIT-PERL-HEADER' \ -e ' G' \ -e '}' \ -e 's/@@GIT_VERSION@@/2.30.2/g' \ - git-archimport.perl >git-archimport+ && \ -chmod +x git-archimport+ && \ -mv git-archimport+ git-archimport + git-add--interactive.perl >git-add--interactive+ && \ +chmod +x git-add--interactive+ && \ +mv git-add--interactive+ git-add--interactive make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' rm -f git-cvsexportcommit git-cvsexportcommit+ && \ @@ -429829,28 +429660,28 @@ mv git-cvsexportcommit+ git-cvsexportcommit make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -rm -f git-add--interactive git-add--interactive+ && \ +rm -f git-cvsserver git-cvsserver+ && \ sed -e '1{' \ -e ' s|#!.*perl|#!/usr/bin/perl|' \ -e ' r GIT-PERL-HEADER' \ -e ' G' \ -e '}' \ -e 's/@@GIT_VERSION@@/2.30.2/g' \ - git-add--interactive.perl >git-add--interactive+ && \ -chmod +x git-add--interactive+ && \ -mv git-add--interactive+ git-add--interactive + git-cvsserver.perl >git-cvsserver+ && \ +chmod +x git-cvsserver+ && \ +mv git-cvsserver+ git-cvsserver make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -rm -f git-send-email git-send-email+ && \ +rm -f git-archimport git-archimport+ && \ sed -e '1{' \ -e ' s|#!.*perl|#!/usr/bin/perl|' \ -e ' r GIT-PERL-HEADER' \ -e ' G' \ -e '}' \ -e 's/@@GIT_VERSION@@/2.30.2/g' \ - git-send-email.perl >git-send-email+ && \ -chmod +x git-send-email+ && \ -mv git-send-email+ git-send-email + git-archimport.perl >git-archimport+ && \ +chmod +x git-archimport+ && \ +mv git-archimport+ git-archimport make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' rm -f git-cvsimport git-cvsimport+ && \ @@ -429865,16 +429696,16 @@ mv git-cvsimport+ git-cvsimport make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' -rm -f git-cvsserver git-cvsserver+ && \ +rm -f git-send-email git-send-email+ && \ sed -e '1{' \ -e ' s|#!.*perl|#!/usr/bin/perl|' \ -e ' r GIT-PERL-HEADER' \ -e ' G' \ -e '}' \ -e 's/@@GIT_VERSION@@/2.30.2/g' \ - git-cvsserver.perl >git-cvsserver+ && \ -chmod +x git-cvsserver+ && \ -mv git-cvsserver+ git-cvsserver + git-send-email.perl >git-send-email+ && \ +chmod +x git-send-email+ && \ +mv git-send-email+ git-send-email make[2]: Leaving directory '/build/git-2.30.2' make[2]: Entering directory '/build/git-2.30.2' rm -f git-svn git-svn+ && \ @@ -430042,7 +429873,6 @@ make[1]: Leaving directory '/build/git-2.30.2' debian/rules override_dh_auto_install-indep DESTDIR='/build/git-2.30.2/debian/tmp' /usr/bin/make install install-doc NO_OPENSSL=1 prefix=/usr gitexecdir=/usr/lib/git-core libexecdir=/usr/lib/git-core mandir=/usr/share/man htmldir=/usr/share/doc/git/html INSTALLDIRS=vendor SANE_TOOL_PATH= INSTALL=install TAR=tar NO_CROSS_DIRECTORY_HARDLINKS=1 NO_INSTALL_HARDLINKS=1 NO_PERL_CPAN_FALLBACKS=1 PYTHON_PATH=/usr/bin/python3 DEFAULT_PAGER=pager DEFAULT_EDITOR=editor CC='gcc' CFLAGS='-Wall -g -O2 -fdebug-prefix-map=/build/git-2.30.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2' LDFLAGS='-Wl,-z,relro' HOST_CPU='arm' V=1 USE_LIBPCRE2=1 -/usr/bin/make -C git-gui gitexecdir='/usr/lib/git-core' all make[2]: Entering directory '/build/git-2.30.2' mkdir -p perl/build/man/man3/ && \ pod2man perl/Git.pm perl/build/man/man3/Git.3pm @@ -430053,11 +429883,13 @@ (cd '/build/git-2.30.2/debian/tmp/usr/share/man/man3' && umask 022 && tar xof -) make[2]: Leaving directory '/build/git-2.30.2' /usr/bin/make -C Documentation install +/usr/bin/make -C git-gui gitexecdir='/usr/lib/git-core' all /usr/bin/make -C gitk-git all /usr/bin/make -C templates SHELL_PATH='/bin/sh' PERL_PATH='/usr/bin/perl' make[3]: Entering directory '/build/git-2.30.2/templates' : no custom templates yet make[3]: Leaving directory '/build/git-2.30.2/templates' +/usr/bin/make -C ../ GIT-VERSION-FILE make[2]: Entering directory '/build/git-2.30.2' install -d -m 755 '/build/git-2.30.2/debian/tmp/usr/bin' install -d -m 755 '/build/git-2.30.2/debian/tmp/usr/lib/git-core' @@ -430074,6 +429906,11 @@ (cd blt && tar cf - .) | \ (cd '/build/git-2.30.2/debian/tmp/usr/share/git-core/templates' && umask 022 && tar xof -) make[3]: Leaving directory '/build/git-2.30.2/templates' +make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f doc.dep+ doc.dep && \ +/usr/bin/perl ./build-docdep.perl >doc.dep+ && \ +mv doc.dep+ doc.dep +make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2' install -d -m 755 '/build/git-2.30.2/debian/tmp/usr/lib/git-core/mergetools' install -m 644 mergetools/* '/build/git-2.30.2/debian/tmp/usr/lib/git-core/mergetools' @@ -430086,12 +429923,9 @@ make[2]: Leaving directory '/build/git-2.30.2' /usr/bin/make -C gitweb install /usr/bin/make -C ../ GIT-VERSION-FILE +make[4]: 'GIT-VERSION-FILE' is up to date. /usr/bin/make -C ../ GIT-VERSION-FILE -make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f doc.dep+ doc.dep && \ -/usr/bin/perl ./build-docdep.perl >doc.dep+ && \ -mv doc.dep+ doc.dep -make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[4]: 'GIT-VERSION-FILE' is up to date. make[4]: 'GIT-VERSION-FILE' is up to date. make[3]: Entering directory '/build/git-2.30.2/gitweb' install -d -m 755 '/build/git-2.30.2/debian/tmp/usr/share/gitweb' @@ -430100,6 +429934,9 @@ install -m 644 static/gitweb.js static/gitweb.css static/git-logo.png static/git-favicon.png '/build/git-2.30.2/debian/tmp/usr/share/gitweb/static' make[3]: Leaving directory '/build/git-2.30.2/gitweb' /usr/bin/make -C gitk-git install +make[3]: Entering directory '/build/git-2.30.2/Documentation' + * new asciidoc flags +make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/gitk-git' install -d -m 755 '/build/git-2.30.2/debian/tmp/usr/bin' install -m 755 gitk-wish '/build/git-2.30.2/debian/tmp/usr/bin'/gitk @@ -430107,8 +429944,6 @@ install -m 644 po/bg.msg '/build/git-2.30.2/debian/tmp/usr/share/gitk/lib/msgs' && install -m 644 po/ca.msg '/build/git-2.30.2/debian/tmp/usr/share/gitk/lib/msgs' && install -m 644 po/de.msg '/build/git-2.30.2/debian/tmp/usr/share/gitk/lib/msgs' && install -m 644 po/es.msg '/build/git-2.30.2/debian/tmp/usr/share/gitk/lib/msgs' && install -m 644 po/fr.msg '/build/git-2.30.2/debian/tmp/usr/share/gitk/lib/msgs' && install -m 644 po/hu.msg '/build/git-2.30.2/debian/tmp/usr/share/gitk/lib/msgs' && install -m 644 po/it.msg '/build/git-2.30.2/debian/tmp/usr/share/gitk/lib/msgs' && install -m 644 po/ja.msg '/build/git-2.30.2/debian/tmp/usr/share/gitk/lib/msgs' && install -m 644 po/pt_br.msg '/build/git-2.30.2/debian/tmp/usr/share/gitk/lib/msgs' && install -m 644 po/pt_pt.msg '/build/git-2.30.2/debian/tmp/usr/share/gitk/lib/msgs' && install -m 644 po/ru.msg '/build/git-2.30.2/debian/tmp/usr/share/gitk/lib/msgs' && install -m 644 po/sv.msg '/build/git-2.30.2/debian/tmp/usr/share/gitk/lib/msgs' && install -m 644 po/vi.msg '/build/git-2.30.2/debian/tmp/usr/share/gitk/lib/msgs' && install -m 644 po/zh_cn.msg '/build/git-2.30.2/debian/tmp/usr/share/gitk/lib/msgs' && true make[3]: Leaving directory '/build/git-2.30.2/gitk-git' /usr/bin/make -C git-gui gitexecdir='/usr/lib/git-core' install -make[4]: 'GIT-VERSION-FILE' is up to date. -/usr/bin/make -C ../ GIT-VERSION-FILE make[3]: Entering directory '/build/git-2.30.2/git-gui' install -d -m 755 '/build/git-2.30.2/debian/tmp/usr/lib/git-core' install -m 755 git-gui '/build/git-2.30.2/debian/tmp/usr/lib/git-core' @@ -430120,10 +429955,6 @@ install -d -m 755 '/build/git-2.30.2/debian/tmp/usr/share/git-gui/lib/msgs' install -m 644 po/bg.msg '/build/git-2.30.2/debian/tmp/usr/share/git-gui/lib/msgs' && install -m 644 po/de.msg '/build/git-2.30.2/debian/tmp/usr/share/git-gui/lib/msgs' && install -m 644 po/el.msg '/build/git-2.30.2/debian/tmp/usr/share/git-gui/lib/msgs' && install -m 644 po/fr.msg '/build/git-2.30.2/debian/tmp/usr/share/git-gui/lib/msgs' && install -m 644 po/hu.msg '/build/git-2.30.2/debian/tmp/usr/share/git-gui/lib/msgs' && install -m 644 po/it.msg '/build/git-2.30.2/debian/tmp/usr/share/git-gui/lib/msgs' && install -m 644 po/ja.msg '/build/git-2.30.2/debian/tmp/usr/share/git-gui/lib/msgs' && install -m 644 po/nb.msg '/build/git-2.30.2/debian/tmp/usr/share/git-gui/lib/msgs' && install -m 644 po/pt_br.msg '/build/git-2.30.2/debian/tmp/usr/share/git-gui/lib/msgs' && install -m 644 po/pt_pt.msg '/build/git-2.30.2/debian/tmp/usr/share/git-gui/lib/msgs' && install -m 644 po/ru.msg '/build/git-2.30.2/debian/tmp/usr/share/git-gui/lib/msgs' && install -m 644 po/sv.msg '/build/git-2.30.2/debian/tmp/usr/share/git-gui/lib/msgs' && install -m 644 po/vi.msg '/build/git-2.30.2/debian/tmp/usr/share/git-gui/lib/msgs' && install -m 644 po/zh_cn.msg '/build/git-2.30.2/debian/tmp/usr/share/git-gui/lib/msgs' && true make[3]: Leaving directory '/build/git-2.30.2/git-gui' -make[4]: 'GIT-VERSION-FILE' is up to date. -make[3]: Entering directory '/build/git-2.30.2/Documentation' - * new asciidoc flags -make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2' bindir=$(cd '/build/git-2.30.2/debian/tmp/usr/bin' && pwd) && \ execdir=$(cd '/build/git-2.30.2/debian/tmp/usr/lib/git-core' && pwd) && \ @@ -430172,31 +430003,31 @@ ./check_bindir "z$bindir" "z$execdir" "$bindir/git-add" make[2]: Leaving directory '/build/git-2.30.2' make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-annotate.xml+ git-annotate.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-annotate.xml+ git-annotate.txt && \ +mv git-annotate.xml+ git-annotate.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-am.xml+ git-am.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-am.xml+ git-am.txt && \ mv git-am.xml+ git-am.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-apply.xml+ git-apply.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-apply.xml+ git-apply.txt && \ +mv git-apply.xml+ git-apply.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-add.xml+ git-add.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-add.xml+ git-add.txt && \ mv git-add.xml+ git-add.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-annotate.xml+ git-annotate.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-annotate.xml+ git-annotate.txt && \ -mv git-annotate.xml+ git-annotate.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-archimport.xml+ git-archimport.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-archimport.xml+ git-archimport.txt && \ mv git-archimport.xml+ git-archimport.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-apply.xml+ git-apply.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-apply.xml+ git-apply.txt && \ -mv git-apply.xml+ git-apply.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-archive.xml+ git-archive.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-archive.xml+ git-archive.txt && \ mv git-archive.xml+ git-archive.xml @@ -430207,9 +430038,9 @@ mv git-bisect.xml+ git-bisect.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-branch.xml+ git-branch.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-branch.xml+ git-branch.txt && \ -mv git-branch.xml+ git-branch.xml +rm -f git-bugreport.xml+ git-bugreport.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-bugreport.xml+ git-bugreport.txt && \ +mv git-bugreport.xml+ git-bugreport.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-blame.xml+ git-blame.xml && \ @@ -430217,19 +430048,14 @@ mv git-blame.xml+ git-blame.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-bugreport.xml+ git-bugreport.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-bugreport.xml+ git-bugreport.txt && \ -mv git-bugreport.xml+ git-bugreport.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-bundle.xml+ git-bundle.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-bundle.xml+ git-bundle.txt && \ mv git-bundle.xml+ git-bundle.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-cat-file.xml+ git-cat-file.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-cat-file.xml+ git-cat-file.txt && \ -mv git-cat-file.xml+ git-cat-file.xml +rm -f git-branch.xml+ git-branch.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-branch.xml+ git-branch.txt && \ +mv git-branch.xml+ git-branch.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-check-attr.xml+ git-check-attr.xml && \ @@ -430242,6 +430068,11 @@ mv git-check-ignore.xml+ git-check-ignore.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-cat-file.xml+ git-cat-file.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-cat-file.xml+ git-cat-file.txt && \ +mv git-cat-file.xml+ git-cat-file.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-check-mailmap.xml+ git-check-mailmap.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-check-mailmap.xml+ git-check-mailmap.txt && \ mv git-check-mailmap.xml+ git-check-mailmap.xml @@ -430257,16 +430088,16 @@ mv git-checkout-index.xml+ git-checkout-index.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-cherry-pick.xml+ git-cherry-pick.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-cherry-pick.xml+ git-cherry-pick.txt && \ -mv git-cherry-pick.xml+ git-cherry-pick.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-checkout.xml+ git-checkout.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-checkout.xml+ git-checkout.txt && \ mv git-checkout.xml+ git-checkout.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-cherry-pick.xml+ git-cherry-pick.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-cherry-pick.xml+ git-cherry-pick.txt && \ +mv git-cherry-pick.xml+ git-cherry-pick.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-cherry.xml+ git-cherry.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-cherry.xml+ git-cherry.txt && \ mv git-cherry.xml+ git-cherry.xml @@ -430287,16 +430118,16 @@ mv git-column.xml+ git-column.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-clone.xml+ git-clone.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-clone.xml+ git-clone.txt && \ -mv git-clone.xml+ git-clone.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-commit-graph.xml+ git-commit-graph.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-commit-graph.xml+ git-commit-graph.txt && \ mv git-commit-graph.xml+ git-commit-graph.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-clone.xml+ git-clone.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-clone.xml+ git-clone.txt && \ +mv git-clone.xml+ git-clone.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-commit-tree.xml+ git-commit-tree.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-commit-tree.xml+ git-commit-tree.txt && \ mv git-commit-tree.xml+ git-commit-tree.xml @@ -430307,16 +430138,16 @@ mv git-count-objects.xml+ git-count-objects.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-commit.xml+ git-commit.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-commit.xml+ git-commit.txt && \ -mv git-commit.xml+ git-commit.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-credential-cache--daemon.xml+ git-credential-cache--daemon.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-credential-cache--daemon.xml+ git-credential-cache--daemon.txt && \ mv git-credential-cache--daemon.xml+ git-credential-cache--daemon.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-commit.xml+ git-commit.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-commit.xml+ git-commit.txt && \ +mv git-commit.xml+ git-commit.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-credential-cache.xml+ git-credential-cache.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-credential-cache.xml+ git-credential-cache.txt && \ mv git-credential-cache.xml+ git-credential-cache.xml @@ -430362,31 +430193,31 @@ mv git-diff-files.xml+ git-diff-files.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-diff-index.xml+ git-diff-index.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-diff-index.xml+ git-diff-index.txt && \ -mv git-diff-index.xml+ git-diff-index.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-config.xml+ git-config.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-config.xml+ git-config.txt && \ mv git-config.xml+ git-config.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-diff-index.xml+ git-diff-index.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-diff-index.xml+ git-diff-index.txt && \ +mv git-diff-index.xml+ git-diff-index.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-diff-tree.xml+ git-diff-tree.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-diff-tree.xml+ git-diff-tree.txt && \ mv git-diff-tree.xml+ git-diff-tree.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-difftool.xml+ git-difftool.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-difftool.xml+ git-difftool.txt && \ -mv git-difftool.xml+ git-difftool.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-diff.xml+ git-diff.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-diff.xml+ git-diff.txt && \ mv git-diff.xml+ git-diff.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-difftool.xml+ git-difftool.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-difftool.xml+ git-difftool.txt && \ +mv git-difftool.xml+ git-difftool.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-fast-export.xml+ git-fast-export.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-fast-export.xml+ git-fast-export.txt && \ mv git-fast-export.xml+ git-fast-export.xml @@ -430397,9 +430228,9 @@ mv git-fetch-pack.xml+ git-fetch-pack.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-fast-import.xml+ git-fast-import.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-fast-import.xml+ git-fast-import.txt && \ -mv git-fast-import.xml+ git-fast-import.xml +rm -f git-fetch.xml+ git-fetch.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-fetch.xml+ git-fetch.txt && \ +mv git-fetch.xml+ git-fetch.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-filter-branch.xml+ git-filter-branch.xml && \ @@ -430407,9 +430238,9 @@ mv git-filter-branch.xml+ git-filter-branch.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-fetch.xml+ git-fetch.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-fetch.xml+ git-fetch.txt && \ -mv git-fetch.xml+ git-fetch.xml +rm -f git-fast-import.xml+ git-fast-import.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-fast-import.xml+ git-fast-import.txt && \ +mv git-fast-import.xml+ git-fast-import.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-fmt-merge-msg.xml+ git-fmt-merge-msg.xml && \ @@ -430437,11 +430268,6 @@ mv git-fsck.xml+ git-fsck.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-get-tar-commit-id.xml+ git-get-tar-commit-id.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-get-tar-commit-id.xml+ git-get-tar-commit-id.txt && \ -mv git-get-tar-commit-id.xml+ git-get-tar-commit-id.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-format-patch.xml+ git-format-patch.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-format-patch.xml+ git-format-patch.txt && \ mv git-format-patch.xml+ git-format-patch.xml @@ -430452,9 +430278,9 @@ mv git-gc.xml+ git-gc.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-hash-object.xml+ git-hash-object.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-hash-object.xml+ git-hash-object.txt && \ -mv git-hash-object.xml+ git-hash-object.xml +rm -f git-get-tar-commit-id.xml+ git-get-tar-commit-id.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-get-tar-commit-id.xml+ git-get-tar-commit-id.txt && \ +mv git-get-tar-commit-id.xml+ git-get-tar-commit-id.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-gui.xml+ git-gui.xml && \ @@ -430467,6 +430293,11 @@ mv git-grep.xml+ git-grep.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-hash-object.xml+ git-hash-object.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-hash-object.xml+ git-hash-object.txt && \ +mv git-hash-object.xml+ git-hash-object.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-help.xml+ git-help.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-help.xml+ git-help.txt && \ mv git-help.xml+ git-help.xml @@ -430487,9 +430318,9 @@ mv git-http-push.xml+ git-http-push.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-imap-send.xml+ git-imap-send.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-imap-send.xml+ git-imap-send.txt && \ -mv git-imap-send.xml+ git-imap-send.xml +rm -f git-init-db.xml+ git-init-db.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-init-db.xml+ git-init-db.txt && \ +mv git-init-db.xml+ git-init-db.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-index-pack.xml+ git-index-pack.xml && \ @@ -430497,14 +430328,9 @@ mv git-index-pack.xml+ git-index-pack.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-init-db.xml+ git-init-db.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-init-db.xml+ git-init-db.txt && \ -mv git-init-db.xml+ git-init-db.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-init.xml+ git-init.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-init.xml+ git-init.txt && \ -mv git-init.xml+ git-init.xml +rm -f git-imap-send.xml+ git-imap-send.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-imap-send.xml+ git-imap-send.txt && \ +mv git-imap-send.xml+ git-imap-send.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-instaweb.xml+ git-instaweb.xml && \ @@ -430512,6 +430338,11 @@ mv git-instaweb.xml+ git-instaweb.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-init.xml+ git-init.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-init.xml+ git-init.txt && \ +mv git-init.xml+ git-init.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-interpret-trailers.xml+ git-interpret-trailers.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-interpret-trailers.xml+ git-interpret-trailers.txt && \ mv git-interpret-trailers.xml+ git-interpret-trailers.xml @@ -430522,21 +430353,31 @@ mv git-ls-remote.xml+ git-ls-remote.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-ls-files.xml+ git-ls-files.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-ls-files.xml+ git-ls-files.txt && \ -mv git-ls-files.xml+ git-ls-files.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-ls-tree.xml+ git-ls-tree.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-ls-tree.xml+ git-ls-tree.txt && \ mv git-ls-tree.xml+ git-ls-tree.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-ls-files.xml+ git-ls-files.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-ls-files.xml+ git-ls-files.txt && \ +mv git-ls-files.xml+ git-ls-files.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-mailinfo.xml+ git-mailinfo.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-mailinfo.xml+ git-mailinfo.txt && \ mv git-mailinfo.xml+ git-mailinfo.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-log.xml+ git-log.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-log.xml+ git-log.txt && \ +mv git-log.xml+ git-log.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-merge-base.xml+ git-merge-base.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-merge-base.xml+ git-merge-base.txt && \ +mv git-merge-base.xml+ git-merge-base.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-mailsplit.xml+ git-mailsplit.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-mailsplit.xml+ git-mailsplit.txt && \ mv git-mailsplit.xml+ git-mailsplit.xml @@ -430547,31 +430388,21 @@ mv git-maintenance.xml+ git-maintenance.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-merge-one-file.xml+ git-merge-one-file.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-merge-one-file.xml+ git-merge-one-file.txt && \ +mv git-merge-one-file.xml+ git-merge-one-file.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-merge-file.xml+ git-merge-file.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-merge-file.xml+ git-merge-file.txt && \ mv git-merge-file.xml+ git-merge-file.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-merge-base.xml+ git-merge-base.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-merge-base.xml+ git-merge-base.txt && \ -mv git-merge-base.xml+ git-merge-base.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-log.xml+ git-log.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-log.xml+ git-log.txt && \ -mv git-log.xml+ git-log.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-merge-index.xml+ git-merge-index.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-merge-index.xml+ git-merge-index.txt && \ mv git-merge-index.xml+ git-merge-index.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-merge-one-file.xml+ git-merge-one-file.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-merge-one-file.xml+ git-merge-one-file.txt && \ -mv git-merge-one-file.xml+ git-merge-one-file.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-merge-tree.xml+ git-merge-tree.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-merge-tree.xml+ git-merge-tree.txt && \ mv git-merge-tree.xml+ git-merge-tree.xml @@ -430582,19 +430413,14 @@ mv git-mergetool--lib.xml+ git-mergetool--lib.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-mergetool.xml+ git-mergetool.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-mergetool.xml+ git-mergetool.txt && \ -mv git-mergetool.xml+ git-mergetool.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-mktag.xml+ git-mktag.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-mktag.xml+ git-mktag.txt && \ mv git-mktag.xml+ git-mktag.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-merge.xml+ git-merge.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-merge.xml+ git-merge.txt && \ -mv git-merge.xml+ git-merge.xml +rm -f git-mergetool.xml+ git-mergetool.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-mergetool.xml+ git-mergetool.txt && \ +mv git-mergetool.xml+ git-mergetool.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-mktree.xml+ git-mktree.xml && \ @@ -430607,6 +430433,11 @@ mv git-multi-pack-index.xml+ git-multi-pack-index.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-merge.xml+ git-merge.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-merge.xml+ git-merge.txt && \ +mv git-merge.xml+ git-merge.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-mv.xml+ git-mv.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-mv.xml+ git-mv.txt && \ mv git-mv.xml+ git-mv.xml @@ -430617,11 +430448,21 @@ mv git-name-rev.xml+ git-name-rev.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-pack-redundant.xml+ git-pack-redundant.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-pack-redundant.xml+ git-pack-redundant.txt && \ +mv git-pack-redundant.xml+ git-pack-redundant.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-notes.xml+ git-notes.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-notes.xml+ git-notes.txt && \ mv git-notes.xml+ git-notes.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-pack-refs.xml+ git-pack-refs.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-pack-refs.xml+ git-pack-refs.txt && \ +mv git-pack-refs.xml+ git-pack-refs.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-pack-objects.xml+ git-pack-objects.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-pack-objects.xml+ git-pack-objects.txt && \ mv git-pack-objects.xml+ git-pack-objects.xml @@ -430632,16 +430473,6 @@ mv git-p4.xml+ git-p4.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-pack-redundant.xml+ git-pack-redundant.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-pack-redundant.xml+ git-pack-redundant.txt && \ -mv git-pack-redundant.xml+ git-pack-redundant.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-pack-refs.xml+ git-pack-refs.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-pack-refs.xml+ git-pack-refs.txt && \ -mv git-pack-refs.xml+ git-pack-refs.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-patch-id.xml+ git-patch-id.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-patch-id.xml+ git-patch-id.txt && \ mv git-patch-id.xml+ git-patch-id.xml @@ -430672,19 +430503,14 @@ mv git-pull.xml+ git-pull.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-range-diff.xml+ git-range-diff.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-range-diff.xml+ git-range-diff.txt && \ -mv git-range-diff.xml+ git-range-diff.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-read-tree.xml+ git-read-tree.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-read-tree.xml+ git-read-tree.txt && \ mv git-read-tree.xml+ git-read-tree.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-reflog.xml+ git-reflog.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-reflog.xml+ git-reflog.txt && \ -mv git-reflog.xml+ git-reflog.xml +rm -f git-range-diff.xml+ git-range-diff.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-range-diff.xml+ git-range-diff.txt && \ +mv git-range-diff.xml+ git-range-diff.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-receive-pack.xml+ git-receive-pack.xml && \ @@ -430692,9 +430518,14 @@ mv git-receive-pack.xml+ git-receive-pack.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-remote-fd.xml+ git-remote-fd.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-remote-fd.xml+ git-remote-fd.txt && \ -mv git-remote-fd.xml+ git-remote-fd.xml +rm -f git-rebase.xml+ git-rebase.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-rebase.xml+ git-rebase.txt && \ +mv git-rebase.xml+ git-rebase.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-reflog.xml+ git-reflog.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-reflog.xml+ git-reflog.txt && \ +mv git-reflog.xml+ git-reflog.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-remote-ext.xml+ git-remote-ext.xml && \ @@ -430702,9 +430533,9 @@ mv git-remote-ext.xml+ git-remote-ext.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-rebase.xml+ git-rebase.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-rebase.xml+ git-rebase.txt && \ -mv git-rebase.xml+ git-rebase.xml +rm -f git-remote-fd.xml+ git-remote-fd.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-remote-fd.xml+ git-remote-fd.txt && \ +mv git-remote-fd.xml+ git-remote-fd.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-repack.xml+ git-repack.xml && \ @@ -430712,16 +430543,16 @@ mv git-repack.xml+ git-repack.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-replace.xml+ git-replace.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-replace.xml+ git-replace.txt && \ -mv git-replace.xml+ git-replace.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-remote.xml+ git-remote.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-remote.xml+ git-remote.txt && \ mv git-remote.xml+ git-remote.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-replace.xml+ git-replace.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-replace.xml+ git-replace.txt && \ +mv git-replace.xml+ git-replace.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-request-pull.xml+ git-request-pull.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-request-pull.xml+ git-request-pull.txt && \ mv git-request-pull.xml+ git-request-pull.xml @@ -430747,14 +430578,24 @@ mv git-revert.xml+ git-revert.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-rm.xml+ git-rm.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-rm.xml+ git-rm.txt && \ +mv git-rm.xml+ git-rm.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-rev-parse.xml+ git-rev-parse.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-rev-parse.xml+ git-rev-parse.txt && \ mv git-rev-parse.xml+ git-rev-parse.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-rm.xml+ git-rm.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-rm.xml+ git-rm.txt && \ -mv git-rm.xml+ git-rm.xml +rm -f git-rev-list.xml+ git-rev-list.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-rev-list.xml+ git-rev-list.txt && \ +mv git-rev-list.xml+ git-rev-list.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-sh-i18n--envsubst.xml+ git-sh-i18n--envsubst.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-sh-i18n--envsubst.xml+ git-sh-i18n--envsubst.txt && \ +mv git-sh-i18n--envsubst.xml+ git-sh-i18n--envsubst.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-send-pack.xml+ git-send-pack.xml && \ @@ -430767,34 +430608,19 @@ mv git-send-email.xml+ git-send-email.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-sh-i18n--envsubst.xml+ git-sh-i18n--envsubst.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-sh-i18n--envsubst.xml+ git-sh-i18n--envsubst.txt && \ -mv git-sh-i18n--envsubst.xml+ git-sh-i18n--envsubst.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-rev-list.xml+ git-rev-list.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-rev-list.xml+ git-rev-list.txt && \ -mv git-rev-list.xml+ git-rev-list.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-sh-i18n.xml+ git-sh-i18n.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-sh-i18n.xml+ git-sh-i18n.txt && \ mv git-sh-i18n.xml+ git-sh-i18n.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-sh-setup.xml+ git-sh-setup.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-sh-setup.xml+ git-sh-setup.txt && \ -mv git-sh-setup.xml+ git-sh-setup.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-shell.xml+ git-shell.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-shell.xml+ git-shell.txt && \ mv git-shell.xml+ git-shell.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-show-index.xml+ git-show-index.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-show-index.xml+ git-show-index.txt && \ -mv git-show-index.xml+ git-show-index.xml +rm -f git-sh-setup.xml+ git-sh-setup.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-sh-setup.xml+ git-sh-setup.txt && \ +mv git-sh-setup.xml+ git-sh-setup.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-show-branch.xml+ git-show-branch.xml && \ @@ -430802,19 +430628,19 @@ mv git-show-branch.xml+ git-show-branch.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-show-ref.xml+ git-show-ref.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-show-ref.xml+ git-show-ref.txt && \ -mv git-show-ref.xml+ git-show-ref.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-shortlog.xml+ git-shortlog.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-shortlog.xml+ git-shortlog.txt && \ mv git-shortlog.xml+ git-shortlog.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-stage.xml+ git-stage.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-stage.xml+ git-stage.txt && \ -mv git-stage.xml+ git-stage.xml +rm -f git-show-index.xml+ git-show-index.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-show-index.xml+ git-show-index.txt && \ +mv git-show-index.xml+ git-show-index.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-show-ref.xml+ git-show-ref.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-show-ref.xml+ git-show-ref.txt && \ +mv git-show-ref.xml+ git-show-ref.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-sparse-checkout.xml+ git-sparse-checkout.xml && \ @@ -430827,14 +430653,9 @@ mv git-stash.xml+ git-stash.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-status.xml+ git-status.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-status.xml+ git-status.txt && \ -mv git-status.xml+ git-status.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-show.xml+ git-show.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-show.xml+ git-show.txt && \ -mv git-show.xml+ git-show.xml +rm -f git-stage.xml+ git-stage.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-stage.xml+ git-stage.txt && \ +mv git-stage.xml+ git-stage.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-stripspace.xml+ git-stripspace.xml && \ @@ -430842,11 +430663,21 @@ mv git-stripspace.xml+ git-stripspace.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-status.xml+ git-status.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-status.xml+ git-status.txt && \ +mv git-status.xml+ git-status.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-submodule.xml+ git-submodule.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-submodule.xml+ git-submodule.txt && \ mv git-submodule.xml+ git-submodule.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-show.xml+ git-show.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-show.xml+ git-show.txt && \ +mv git-show.xml+ git-show.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-symbolic-ref.xml+ git-symbolic-ref.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-symbolic-ref.xml+ git-symbolic-ref.txt && \ mv git-symbolic-ref.xml+ git-symbolic-ref.xml @@ -430857,19 +430688,14 @@ mv git-switch.xml+ git-switch.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-svn.xml+ git-svn.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-svn.xml+ git-svn.txt && \ -mv git-svn.xml+ git-svn.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-unpack-file.xml+ git-unpack-file.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-unpack-file.xml+ git-unpack-file.txt && \ mv git-unpack-file.xml+ git-unpack-file.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-tag.xml+ git-tag.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-tag.xml+ git-tag.txt && \ -mv git-tag.xml+ git-tag.xml +rm -f git-svn.xml+ git-svn.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-svn.xml+ git-svn.txt && \ +mv git-svn.xml+ git-svn.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-unpack-objects.xml+ git-unpack-objects.xml && \ @@ -430877,9 +430703,14 @@ mv git-unpack-objects.xml+ git-unpack-objects.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-update-ref.xml+ git-update-ref.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-update-ref.xml+ git-update-ref.txt && \ -mv git-update-ref.xml+ git-update-ref.xml +rm -f git-tag.xml+ git-tag.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-tag.xml+ git-tag.txt && \ +mv git-tag.xml+ git-tag.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-upload-archive.xml+ git-upload-archive.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-upload-archive.xml+ git-upload-archive.txt && \ +mv git-upload-archive.xml+ git-upload-archive.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-update-server-info.xml+ git-update-server-info.xml && \ @@ -430887,16 +430718,16 @@ mv git-update-server-info.xml+ git-update-server-info.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-update-ref.xml+ git-update-ref.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-update-ref.xml+ git-update-ref.txt && \ +mv git-update-ref.xml+ git-update-ref.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-update-index.xml+ git-update-index.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-update-index.xml+ git-update-index.txt && \ mv git-update-index.xml+ git-update-index.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-upload-archive.xml+ git-upload-archive.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-upload-archive.xml+ git-upload-archive.txt && \ -mv git-upload-archive.xml+ git-upload-archive.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-upload-pack.xml+ git-upload-pack.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o git-upload-pack.xml+ git-upload-pack.txt && \ mv git-upload-pack.xml+ git-upload-pack.xml @@ -430957,6 +430788,11 @@ mv gitattributes.xml+ gitattributes.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f githooks.xml+ githooks.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o githooks.xml+ githooks.txt && \ +mv githooks.xml+ githooks.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f gitignore.xml+ gitignore.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o gitignore.xml+ gitignore.txt && \ mv gitignore.xml+ gitignore.xml @@ -430967,9 +430803,9 @@ mv git.xml+ git.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f githooks.xml+ githooks.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o githooks.xml+ githooks.txt && \ -mv githooks.xml+ githooks.xml +rm -f gitrepository-layout.xml+ gitrepository-layout.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o gitrepository-layout.xml+ gitrepository-layout.txt && \ +mv gitrepository-layout.xml+ gitrepository-layout.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f gitmodules.xml+ gitmodules.xml && \ @@ -430977,21 +430813,11 @@ mv gitmodules.xml+ gitmodules.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f gitrepository-layout.xml+ gitrepository-layout.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o gitrepository-layout.xml+ gitrepository-layout.txt && \ -mv gitrepository-layout.xml+ gitrepository-layout.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f gitcli.xml+ gitcli.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o gitcli.xml+ gitcli.txt && \ mv gitcli.xml+ gitcli.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f gitcredentials.xml+ gitcredentials.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o gitcredentials.xml+ gitcredentials.txt && \ -mv gitcredentials.xml+ gitcredentials.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f gitweb.conf.xml+ gitweb.conf.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o gitweb.conf.xml+ gitweb.conf.txt && \ mv gitweb.conf.xml+ gitweb.conf.xml @@ -431002,6 +430828,11 @@ mv gitcvs-migration.xml+ gitcvs-migration.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f gitcredentials.xml+ gitcredentials.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o gitcredentials.xml+ gitcredentials.txt && \ +mv gitcredentials.xml+ gitcredentials.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f gitdiffcore.xml+ gitdiffcore.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o gitdiffcore.xml+ gitdiffcore.txt && \ mv gitdiffcore.xml+ gitdiffcore.xml @@ -431012,16 +430843,16 @@ mv gitcore-tutorial.xml+ gitcore-tutorial.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f giteveryday.xml+ giteveryday.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o giteveryday.xml+ giteveryday.txt && \ -mv giteveryday.xml+ giteveryday.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f gitfaq.xml+ gitfaq.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o gitfaq.xml+ gitfaq.txt && \ mv gitfaq.xml+ gitfaq.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f giteveryday.xml+ giteveryday.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o giteveryday.xml+ giteveryday.txt && \ +mv giteveryday.xml+ giteveryday.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f gitnamespaces.xml+ gitnamespaces.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o gitnamespaces.xml+ gitnamespaces.txt && \ mv gitnamespaces.xml+ gitnamespaces.xml @@ -431042,14 +430873,19 @@ mv gitsubmodules.xml+ gitsubmodules.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f gittutorial-2.xml+ gittutorial-2.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o gittutorial-2.xml+ gittutorial-2.txt && \ +mv gittutorial-2.xml+ gittutorial-2.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f gitremote-helpers.xml+ gitremote-helpers.xml && \ asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o gitremote-helpers.xml+ gitremote-helpers.txt && \ mv gitremote-helpers.xml+ gitremote-helpers.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f gittutorial-2.xml+ gittutorial-2.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o gittutorial-2.xml+ gittutorial-2.txt && \ -mv gittutorial-2.xml+ gittutorial-2.xml +rm -f gittutorial.xml+ gittutorial.xml && \ +asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o gittutorial.xml+ gittutorial.txt && \ +mv gittutorial.xml+ gittutorial.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f gitworkflows.xml+ gitworkflows.xml && \ @@ -431057,9 +430893,8 @@ mv gitworkflows.xml+ gitworkflows.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f gittutorial.xml+ gittutorial.xml && \ -asciidoc -a 'git-default-pager=pager' -a 'git-default-editor=editor' -f asciidoc.conf -amanversion=2.30.2 -amanmanual='Git Manual' -amansource='Git' -b docbook -d manpage -o gittutorial.xml+ gittutorial.txt && \ -mv gittutorial.xml+ gittutorial.xml +rm -f git-am.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-am.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-add.1 && \ @@ -431070,30 +430905,26 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-annotate.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-am.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-am.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-apply.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-apply.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-archive.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-archive.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-archimport.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-archimport.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-bisect.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-bisect.xml +rm -f git-archive.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-archive.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-blame.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-blame.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-bisect.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-bisect.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-branch.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-branch.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' @@ -431106,10 +430937,6 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-bundle.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-check-attr.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-check-attr.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-cat-file.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-cat-file.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' @@ -431118,26 +430945,30 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-check-ignore.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-check-mailmap.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-check-mailmap.xml +rm -f git-check-attr.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-check-attr.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-check-ref-format.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-check-ref-format.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-checkout-index.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-checkout-index.xml +rm -f git-check-mailmap.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-check-mailmap.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-cherry-pick.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-cherry-pick.xml +rm -f git-checkout-index.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-checkout-index.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-checkout.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-checkout.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-cherry-pick.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-cherry-pick.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-cherry.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-cherry.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' @@ -431178,14 +431009,14 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-credential-cache--daemon.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-credential-cache.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-credential-cache.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-credential-store.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-credential-store.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-credential-cache.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-credential-cache.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-credential.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-credential.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' @@ -431206,14 +431037,14 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-cvsserver.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-describe.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-describe.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-daemon.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-daemon.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-describe.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-describe.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-diff-files.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-diff-files.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' @@ -431222,22 +431053,22 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-diff-index.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-diff-tree.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-diff-tree.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-difftool.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-difftool.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-fast-export.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-fast-export.xml +rm -f git-diff-tree.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-diff-tree.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-diff.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-diff.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-fast-export.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-fast-export.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-fetch-pack.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-fetch-pack.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' @@ -431250,14 +431081,14 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-fast-import.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-fmt-merge-msg.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-fmt-merge-msg.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-filter-branch.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-filter-branch.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-fmt-merge-msg.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-fmt-merge-msg.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-for-each-ref.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-for-each-ref.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' @@ -431286,14 +431117,14 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-get-tar-commit-id.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-gui.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-gui.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-grep.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-grep.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-gui.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-gui.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-hash-object.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-hash-object.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' @@ -431302,14 +431133,18 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-http-fetch.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-help.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-help.xml +rm -f git-http-push.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-http-push.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-http-backend.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-http-backend.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-help.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-help.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-imap-send.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-imap-send.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' @@ -431318,22 +431153,18 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-index-pack.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-http-push.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-http-push.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-init-db.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-init-db.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-instaweb.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-instaweb.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-init.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-init.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-instaweb.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-instaweb.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-interpret-trailers.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-interpret-trailers.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' @@ -431346,14 +431177,14 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-log.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-ls-tree.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-ls-tree.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-ls-remote.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-ls-remote.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-ls-tree.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-ls-tree.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-mailinfo.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-mailinfo.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' @@ -431366,24 +431197,24 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-maintenance.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-merge-index.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-merge-index.xml +rm -f git-merge-base.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-merge-base.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-merge-file.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-merge-file.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-merge-base.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-merge-base.xml +rm -f git-merge-one-file.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-merge-one-file.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-merge-tree.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-merge-tree.xml +rm -f git-merge-index.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-merge-index.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-merge-one-file.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-merge-one-file.xml +rm -f git-merge-tree.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-merge-tree.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-merge.1 && \ @@ -431406,14 +431237,14 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-mktree.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-multi-pack-index.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-multi-pack-index.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-mv.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-mv.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-multi-pack-index.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-multi-pack-index.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-name-rev.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-name-rev.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' @@ -431422,10 +431253,6 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-notes.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-p4.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-p4.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-pack-redundant.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-pack-redundant.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' @@ -431434,12 +431261,12 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-pack-refs.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-pack-objects.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-pack-objects.xml +rm -f git-p4.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-p4.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-prune.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-prune.xml +rm -f git-pack-objects.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-pack-objects.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-prune-packed.1 && \ @@ -431450,18 +431277,18 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-patch-id.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-quiltimport.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-quiltimport.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-push.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-push.xml +rm -f git-prune.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-prune.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-pull.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-pull.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-quiltimport.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-quiltimport.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-range-diff.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-range-diff.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' @@ -431470,6 +431297,10 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-read-tree.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-push.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-push.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-receive-pack.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-receive-pack.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' @@ -431490,14 +431321,14 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-remote-fd.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-remote.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-remote.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-repack.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-repack.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-remote.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-remote.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-replace.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-replace.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' @@ -431506,58 +431337,58 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-request-pull.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-reset.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-reset.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-restore.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-restore.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-reset.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-reset.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-rerere.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-rerere.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-revert.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-revert.xml +rm -f git-rm.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-rm.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-rev-parse.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-rev-parse.xml +rm -f git-revert.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-revert.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-rev-list.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-rev-list.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-rm.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-rm.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-send-pack.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-send-pack.xml +rm -f git-rev-parse.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-rev-parse.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-send-email.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-send-email.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-sh-i18n.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-sh-i18n.xml +rm -f git-send-pack.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-send-pack.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-sh-i18n--envsubst.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-sh-i18n--envsubst.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-sh-setup.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-sh-setup.xml +rm -f git-sh-i18n.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-sh-i18n.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-shell.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-shell.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-sh-setup.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-sh-setup.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-show-branch.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-show-branch.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' @@ -431566,62 +431397,62 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-shortlog.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-show-ref.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-show-ref.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-show-index.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-show-index.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-stage.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-stage.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-show.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-show.xml +rm -f git-show-ref.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-show-ref.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-sparse-checkout.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-sparse-checkout.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-stripspace.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-stripspace.xml +rm -f git-stage.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-stage.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-stash.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-stash.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-show.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-show.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-status.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-status.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-submodule.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-submodule.xml +rm -f git-stripspace.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-stripspace.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-switch.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-switch.xml +rm -f git-submodule.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-submodule.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-svn.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-svn.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-symbolic-ref.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-symbolic-ref.xml +rm -f git-switch.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-switch.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-tag.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-tag.xml +rm -f git-symbolic-ref.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-symbolic-ref.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-unpack-file.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-unpack-file.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f git-tag.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-tag.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-unpack-objects.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-unpack-objects.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' @@ -431650,10 +431481,6 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-var.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-verify-pack.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-verify-pack.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-verify-commit.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-verify-commit.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' @@ -431662,36 +431489,36 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-verify-tag.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-whatchanged.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-whatchanged.xml +rm -f git-verify-pack.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-verify-pack.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-web--browse.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-web--browse.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f git-worktree.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-worktree.xml +rm -f git-whatchanged.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-whatchanged.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git-write-tree.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-write-tree.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f gitk.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man gitk.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f gitweb.1 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man gitweb.xml +rm -f git-worktree.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git-worktree.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f git.1 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man git.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f gitignore.5 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man gitignore.xml +rm -f gitk.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man gitk.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f gitweb.1 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man gitweb.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f gitattributes.5 && \ @@ -431702,8 +431529,8 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man githooks.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f gitweb.conf.5 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man gitweb.conf.xml +rm -f gitignore.5 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man gitignore.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f gitmodules.5 && \ @@ -431714,6 +431541,10 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man gitrepository-layout.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f gitweb.conf.5 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man gitweb.conf.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f gitcli.7 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man gitcli.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' @@ -431738,10 +431569,6 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man giteveryday.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f gitnamespaces.7 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man gitnamespaces.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f gitfaq.7 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man gitfaq.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' @@ -431750,6 +431577,10 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man gitglossary.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f gitnamespaces.7 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man gitnamespaces.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f gitrevisions.7 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man gitrevisions.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' @@ -431766,14 +431597,14 @@ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man gittutorial-2.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' -rm -f gittutorial.7 && \ -xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man gittutorial.xml -make[3]: Leaving directory '/build/git-2.30.2/Documentation' -make[3]: Entering directory '/build/git-2.30.2/Documentation' rm -f gitworkflows.7 && \ xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man gitworkflows.xml make[3]: Leaving directory '/build/git-2.30.2/Documentation' make[3]: Entering directory '/build/git-2.30.2/Documentation' +rm -f gittutorial.7 && \ +xmlto -m manpage-normal.xsl -m manpage-bold-literal.xsl -m manpage-base-url.xsl man gittutorial.xml +make[3]: Leaving directory '/build/git-2.30.2/Documentation' +make[3]: Entering directory '/build/git-2.30.2/Documentation' install -d -m 755 /build/git-2.30.2/debian/tmp/usr/share/man/man1 install -d -m 755 /build/git-2.30.2/debian/tmp/usr/share/man/man5 install -d -m 755 /build/git-2.30.2/debian/tmp/usr/share/man/man7 @@ -431827,6 +431658,9 @@ ASCIIDOC git-annotate.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' + ASCIIDOC git-apply.html +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC git-am.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' @@ -431836,10 +431670,10 @@ ASCIIDOC git-archimport.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-apply.html + ASCIIDOC git-archive.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-archive.html + ASCIIDOC git-bugreport.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC git-bisect.html @@ -431851,16 +431685,13 @@ ASCIIDOC git-branch.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-bugreport.html -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC git-bundle.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-check-attr.html + ASCIIDOC git-cat-file.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-cat-file.html + ASCIIDOC git-check-attr.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC git-check-ignore.html @@ -431875,16 +431706,16 @@ ASCIIDOC git-checkout-index.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-cherry-pick.html + ASCIIDOC git-cherry.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-cherry.html + ASCIIDOC git-citool.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-checkout.html + ASCIIDOC git-cherry-pick.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-citool.html + ASCIIDOC git-checkout.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC git-clean.html @@ -431893,10 +431724,10 @@ ASCIIDOC git-column.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-clone.html + ASCIIDOC git-commit-graph.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-commit-graph.html + ASCIIDOC git-clone.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC git-commit-tree.html @@ -431917,10 +431748,10 @@ ASCIIDOC git-credential-store.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-cvsexportcommit.html + ASCIIDOC git-credential.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-credential.html + ASCIIDOC git-cvsexportcommit.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC git-cvsimport.html @@ -431929,46 +431760,46 @@ ASCIIDOC git-cvsserver.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-daemon.html -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC git-describe.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-diff-files.html + ASCIIDOC git-daemon.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC git-diff-index.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-diff.html + ASCIIDOC git-diff-files.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-diff-tree.html + ASCIIDOC git-difftool.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-config.html + ASCIIDOC git-diff-tree.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-difftool.html + ASCIIDOC git-fast-export.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC git-fetch-pack.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-fast-export.html + ASCIIDOC git-diff.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-filter-branch.html + ASCIIDOC git-config.html +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' + ASCIIDOC git-fast-import.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC git-fmt-merge-msg.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-fetch.html + ASCIIDOC git-filter-branch.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-fast-import.html + ASCIIDOC git-fetch.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC git-for-each-repo.html @@ -431980,31 +431811,31 @@ ASCIIDOC git-fsck-objects.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-fsck.html + ASCIIDOC git-get-tar-commit-id.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-gc.html + ASCIIDOC git-fsck.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-get-tar-commit-id.html + ASCIIDOC git-gc.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC git-format-patch.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-hash-object.html + ASCIIDOC git-grep.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC git-gui.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-grep.html + ASCIIDOC git-hash-object.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-help.html + ASCIIDOC git-http-fetch.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-http-fetch.html + ASCIIDOC git-help.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC git-http-backend.html @@ -432022,16 +431853,13 @@ ASCIIDOC git-init-db.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-instaweb.html -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC git-init.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-interpret-trailers.html + ASCIIDOC git-instaweb.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-ls-files.html + ASCIIDOC git-interpret-trailers.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC git-ls-remote.html @@ -432040,6 +431868,9 @@ ASCIIDOC git-ls-tree.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' + ASCIIDOC git-ls-files.html +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC git-mailinfo.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' @@ -432049,67 +431880,67 @@ ASCIIDOC git-maintenance.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-merge-base.html -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC git-merge-file.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-merge-one-file.html + ASCIIDOC git-merge-base.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC git-merge-index.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-merge-tree.html + ASCIIDOC git-merge-one-file.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-mergetool--lib.html + ASCIIDOC git-merge-tree.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC git-log.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-mergetool.html + ASCIIDOC git-mergetool--lib.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-merge.html + ASCIIDOC git-mktag.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-mktag.html + ASCIIDOC git-mergetool.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC git-mktree.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-multi-pack-index.html + ASCIIDOC git-merge.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC git-mv.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' + ASCIIDOC git-multi-pack-index.html +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC git-name-rev.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC git-notes.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-pack-objects.html + ASCIIDOC git-pack-redundant.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-pack-redundant.html + ASCIIDOC git-pack-objects.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC git-p4.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-pack-refs.html + ASCIIDOC git-patch-id.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-prune-packed.html + ASCIIDOC git-pack-refs.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-patch-id.html + ASCIIDOC git-prune-packed.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC git-prune.html @@ -432121,13 +431952,13 @@ ASCIIDOC git-range-diff.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-push.html + ASCIIDOC git-read-tree.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-pull.html + ASCIIDOC git-push.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-read-tree.html + ASCIIDOC git-pull.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC git-reflog.html @@ -432136,27 +431967,27 @@ ASCIIDOC git-receive-pack.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-remote-fd.html -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC git-remote-ext.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-remote.html + ASCIIDOC git-remote-fd.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-repack.html + ASCIIDOC git-remote.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC git-rebase.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-request-pull.html + ASCIIDOC git-repack.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC git-replace.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' + ASCIIDOC git-request-pull.html +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC git-rerere.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' @@ -432178,13 +432009,13 @@ ASCIIDOC git-send-pack.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-rev-list.html + ASCIIDOC git-send-email.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-sh-i18n--envsubst.html + ASCIIDOC git-rev-list.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-send-email.html + ASCIIDOC git-sh-i18n--envsubst.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC git-sh-i18n.html @@ -432196,10 +432027,10 @@ ASCIIDOC git-shell.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-show-index.html + ASCIIDOC git-show-branch.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-show-branch.html + ASCIIDOC git-show-index.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC git-show-ref.html @@ -432208,25 +432039,22 @@ ASCIIDOC git-shortlog.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-sparse-checkout.html -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC git-stage.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-stash.html + ASCIIDOC git-sparse-checkout.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC git-status.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-stripspace.html + ASCIIDOC git-stash.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-show.html + ASCIIDOC git-stripspace.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-submodule.html + ASCIIDOC git-show.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC git-switch.html @@ -432235,24 +432063,27 @@ ASCIIDOC git-symbolic-ref.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-unpack-file.html + ASCIIDOC git-submodule.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-unpack-objects.html + ASCIIDOC git-unpack-file.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-tag.html + ASCIIDOC git-unpack-objects.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC git-svn.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-update-server-info.html + ASCIIDOC git-tag.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC git-update-ref.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' + ASCIIDOC git-update-server-info.html +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC git-upload-archive.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' @@ -432268,18 +432099,18 @@ ASCIIDOC git-verify-commit.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-verify-pack.html -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC git-verify-tag.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git-whatchanged.html + ASCIIDOC git-verify-pack.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC git-web--browse.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' + ASCIIDOC git-whatchanged.html +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC git-write-tree.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' @@ -432292,19 +432123,19 @@ ASCIIDOC gitweb.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC gitattributes.html + ASCIIDOC githooks.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC githooks.html + ASCIIDOC gitattributes.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC git.html + ASCIIDOC gitmodules.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC gitignore.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC gitmodules.html + ASCIIDOC git.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC gitrepository-layout.html @@ -432322,10 +432153,10 @@ ASCIIDOC gitcvs-migration.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC gitdiffcore.html + ASCIIDOC gitcore-tutorial.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC gitcore-tutorial.html + ASCIIDOC gitdiffcore.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC giteveryday.html @@ -432337,13 +432168,13 @@ ASCIIDOC gitnamespaces.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC gitglossary.html + ASCIIDOC gitremote-helpers.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC gitrevisions.html + ASCIIDOC gitglossary.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC gitremote-helpers.html + ASCIIDOC gitrevisions.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC gitsubmodules.html @@ -432352,15 +432183,15 @@ ASCIIDOC gittutorial-2.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC gitworkflows.html -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC gittutorial.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC howto/new-command.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' + ASCIIDOC gitworkflows.html +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC howto/revert-branch-rebase.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' @@ -432382,91 +432213,91 @@ ASCIIDOC howto/setup-git-server-over-http.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC howto/recover-corrupted-blob-object.html -make[2]: Leaving directory '/build/git-2.30.2/Documentation' -make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC howto/revert-a-faulty-merge.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC howto/rebuild-from-update-hook.html + ASCIIDOC howto/recover-corrupted-blob-object.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC howto/recover-corrupted-object-harder.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC howto/rebase-from-internal-branch.html + ASCIIDOC howto/rebuild-from-update-hook.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC howto/keep-canonical-history-correct.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC technical/api-error-handling.html + ASCIIDOC howto/rebase-from-internal-branch.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC howto/maintain-git.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC technical/api-merge.html + ASCIIDOC technical/api-error-handling.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC technical/api-parse-options.html + ASCIIDOC technical/api-merge.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC user-manual.xml make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC technical/api-trace2.html + ASCIIDOC technical/api-parse-options.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC MyFirstObjectWalk.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC MyFirstContribution.html + ASCIIDOC technical/api-trace2.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC SubmittingPatches.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC technical/index-format.html + ASCIIDOC MyFirstContribution.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC technical/hash-function-transition.html + ASCIIDOC technical/index-format.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC technical/http-protocol.html + ASCIIDOC technical/long-running-process-protocol.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC technical/long-running-process-protocol.html + ASCIIDOC technical/hash-function-transition.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC technical/multi-pack-index.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' + ASCIIDOC technical/http-protocol.html +make[2]: Leaving directory '/build/git-2.30.2/Documentation' +make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC technical/pack-format.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC technical/pack-heuristics.html + ASCIIDOC technical/partial-clone.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC technical/pack-protocol.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC technical/partial-clone.html + ASCIIDOC technical/pack-heuristics.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC technical/protocol-common.html + ASCIIDOC technical/protocol-capabilities.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC technical/protocol-capabilities.html + ASCIIDOC technical/protocol-common.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC technical/racy-git.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC technical/protocol-v2.html + ASCIIDOC technical/send-pack-pipeline.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC technical/send-pack-pipeline.html + ASCIIDOC technical/protocol-v2.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC technical/shallow.html @@ -432475,10 +432306,10 @@ ASCIIDOC technical/signature-format.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC technical/trivial-merge.html + ASCIIDOC technical/reftable.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' - ASCIIDOC technical/reftable.html + ASCIIDOC technical/trivial-merge.html make[2]: Leaving directory '/build/git-2.30.2/Documentation' make[2]: Entering directory '/build/git-2.30.2/Documentation' ASCIIDOC technical/api-index.html @@ -432574,23 +432405,23 @@ dh_perl dh_link dh_strip_nondeterminism - Normalized debian/git/usr/share/locale/ru/LC_MESSAGES/git.mo - Normalized debian/git/usr/share/locale/it/LC_MESSAGES/git.mo - Normalized debian/git/usr/share/locale/fr/LC_MESSAGES/git.mo + Normalized debian/git/usr/share/locale/el/LC_MESSAGES/git.mo + Normalized debian/git/usr/share/locale/pl/LC_MESSAGES/git.mo Normalized debian/git/usr/share/locale/pt_PT/LC_MESSAGES/git.mo - Normalized debian/git/usr/share/locale/is/LC_MESSAGES/git.mo - Normalized debian/git/usr/share/locale/ca/LC_MESSAGES/git.mo - Normalized debian/git/usr/share/locale/tr/LC_MESSAGES/git.mo + Normalized debian/git/usr/share/locale/it/LC_MESSAGES/git.mo Normalized debian/git/usr/share/locale/ko/LC_MESSAGES/git.mo - Normalized debian/git/usr/share/locale/pl/LC_MESSAGES/git.mo - Normalized debian/git/usr/share/locale/vi/LC_MESSAGES/git.mo Normalized debian/git/usr/share/locale/zh_TW/LC_MESSAGES/git.mo Normalized debian/git/usr/share/locale/zh_CN/LC_MESSAGES/git.mo + Normalized debian/git/usr/share/locale/vi/LC_MESSAGES/git.mo Normalized debian/git/usr/share/locale/es/LC_MESSAGES/git.mo - Normalized debian/git/usr/share/locale/el/LC_MESSAGES/git.mo + Normalized debian/git/usr/share/locale/ca/LC_MESSAGES/git.mo Normalized debian/git/usr/share/locale/bg/LC_MESSAGES/git.mo - Normalized debian/git/usr/share/locale/de/LC_MESSAGES/git.mo + Normalized debian/git/usr/share/locale/fr/LC_MESSAGES/git.mo + Normalized debian/git/usr/share/locale/tr/LC_MESSAGES/git.mo + Normalized debian/git/usr/share/locale/ru/LC_MESSAGES/git.mo Normalized debian/git/usr/share/locale/sv/LC_MESSAGES/git.mo + Normalized debian/git/usr/share/locale/is/LC_MESSAGES/git.mo + Normalized debian/git/usr/share/locale/de/LC_MESSAGES/git.mo debian/rules override_dh_compress make[1]: Entering directory '/build/git-2.30.2' dh_compress -X.txt -Xcontrib @@ -432602,29 +432433,29 @@ dh_shlibdeps dh_installdeb dh_gencontrol -dpkg-gencontrol: warning: package git-mediawiki: substitution variable ${perl:Depends} unused, but is defined +dpkg-gencontrol: warning: package git-svn: substitution variable ${perl:Depends} unused, but is defined dpkg-gencontrol: warning: package git: substitution variable ${perl:Depends} unused, but is defined +dpkg-gencontrol: warning: package git-mediawiki: substitution variable ${perl:Depends} unused, but is defined dpkg-gencontrol: warning: package git-email: substitution variable ${perl:Depends} unused, but is defined dpkg-gencontrol: warning: package git: substitution variable ${perl:Depends} unused, but is defined dpkg-gencontrol: warning: package git-cvs: substitution variable ${perl:Depends} unused, but is defined -dpkg-gencontrol: warning: package git-svn: substitution variable ${perl:Depends} unused, but is defined dh_md5sums dh_builddeb -dpkg-deb: building package 'git-svn' in '../git-svn_2.30.2-1+deb11u2_all.deb'. -dpkg-deb: building package 'git-gui' in '../git-gui_2.30.2-1+deb11u2_all.deb'. dpkg-deb: building package 'git' in '../git_2.30.2-1+deb11u2_armhf.deb'. -dpkg-deb: building package 'git-mediawiki' in '../git-mediawiki_2.30.2-1+deb11u2_all.deb'. -dpkg-deb: building package 'git-email' in '../git-email_2.30.2-1+deb11u2_all.deb'. -dpkg-deb: building package 'gitk' in '../gitk_2.30.2-1+deb11u2_all.deb'. +dpkg-deb: building package 'git-cvs' in '../git-cvs_2.30.2-1+deb11u2_all.deb'. +dpkg-deb: building package 'git-el' in '../git-el_2.30.2-1+deb11u2_all.deb'. dpkg-deb: building package 'git-daemon-run' in '../git-daemon-run_2.30.2-1+deb11u2_all.deb'. dpkg-deb: building package 'git-daemon-sysvinit' in '../git-daemon-sysvinit_2.30.2-1+deb11u2_all.deb'. -dpkg-deb: building package 'git-el' in '../git-el_2.30.2-1+deb11u2_all.deb'. dpkg-deb: building package 'gitweb' in '../gitweb_2.30.2-1+deb11u2_all.deb'. +dpkg-deb: building package 'git-svn' in '../git-svn_2.30.2-1+deb11u2_all.deb'. +dpkg-deb: building package 'git-gui' in '../git-gui_2.30.2-1+deb11u2_all.deb'. dpkg-deb: building package 'git-all' in '../git-all_2.30.2-1+deb11u2_all.deb'. +dpkg-deb: building package 'git-mediawiki' in '../git-mediawiki_2.30.2-1+deb11u2_all.deb'. +dpkg-deb: building package 'git-email' in '../git-email_2.30.2-1+deb11u2_all.deb'. +dpkg-deb: building package 'gitk' in '../gitk_2.30.2-1+deb11u2_all.deb'. dpkg-deb: building package 'git-dbgsym' in '../git-dbgsym_2.30.2-1+deb11u2_armhf.deb'. dpkg-deb: building package 'git-man' in '../git-man_2.30.2-1+deb11u2_all.deb'. dpkg-deb: building package 'git-doc' in '../git-doc_2.30.2-1+deb11u2_all.deb'. -dpkg-deb: building package 'git-cvs' in '../git-cvs_2.30.2-1+deb11u2_all.deb'. dpkg-genbuildinfo --build=binary dpkg-genchanges --build=binary >../git_2.30.2-1+deb11u2_armhf.changes dpkg-genchanges: info: binary-only upload (no source code included) @@ -432632,12 +432463,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: not including original source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/28469/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/28469/tmp/hooks/B01_cleanup finished I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env -I: removing directory /srv/workspace/pbuilder/2970 and its subdirectories -I: Current time: Sat Apr 29 05:12:41 -12 2023 -I: pbuilder-time-stamp: 1682788361 +I: removing directory /srv/workspace/pbuilder/28469 and its subdirectories +I: Current time: Sun Apr 30 09:27:24 +14 2023 +I: pbuilder-time-stamp: 1682796444